eZ Publish / Releases / eZ Publish 4.3 / ez-publish-4-3-0

ez-publish-4-3-0

eZ publish 4.3.0

Requirements

Version : Release date : Requirements :
4.3.0
OE 5.1.0
March 30, 2009 PHP >= 5.2.1
MySQL >= 5.0
PostgreSQL >= 8.x

Upgrade Notes

https://doc.ez.no/eZ-Publish/Upgrading/Upgrading-to-4.3/Upgrading-from-4.2.x-to-4.3.x

Upgrading from 4.2.x to 4.3.x

This section describes how to upgrade your existing eZ Publish 4.2.x installation to version 4.3. The upgrade procedure described below is generic and does not cover any specific cases (for example, running eZ Publish in a clustered environment).

Make sure that you have a working backup of the site before you do the actual upgrade.

Important upgrade notes:

The procedure for upgrading directly from version 4.2.x to 4.3 consists of the following steps:

  1. Upgrade the distribution files to 4.3
  2. Upgrade custom extensions
  3. Upgrade the database to 4.3
  4. Regenerate the autoload array for extensions
  5. Run the system upgrade scripts for 4.3
  6. (Optional) Enable Admin2 design for the eZ Publish Administration interface
  7. Clear the caches

Check for requirements

The eZ Components 2009.1 requirements

With eZ Publish 4.2, eZ Components 2009.2.1 is the minimum version required. When downloading eZ Publish 4.3 it is possible to choose between a package bundled with eZ Components 2009.2.1, or a package without eZ Components. If you choose the latter, you must install eZ Components separately. For more information see http://ezcomponents.org/docs/install

The PHP requirements

eZ Publish 4.3 is now also compatible with PHP version 5.3. For more information regarding system requirements check out http://ez.no/ezpublish/requirements

Step 1: Upgrade the distribution files

The easiest way to upgrade the distribution files is to unpack eZ Publish 4.3 to a separate directory and then copy the directories that contain site-specific files from the existing installation. Make sure that you copy the following directories:

  •  design/ example
  •  design/ example_admin
  •  var
  •  settings/siteaccess
  •  settings/override

Replace "example" and "example_admin" with the actual names of your site accesses.

Important note

Because the new directory has replaced the original directory, the directory permissions need to be fixed. Use the following commands to do this.

(You have the choice between Shell commands or Alternative shell commands):

  •  Shell commands

These shell commands will give proper permission to the web server:

<span class="line">cd </path/to/your/eZ/Publish/directory></span><span class="line"> </span><span class="line">chmod -R a+rwx design  extension settings var</span>
  •  Alternative shell commands

These commands will setup the permission more correctly, but require knowledge about the running web server.

<span class="line">chmod -R og+rwx design extension settings var</span><span class="line"> </span><span class="line">chown -R nouser:nouser  design extension settings var</span>

Step 2: Custom extensions

If you are using custom extensions, the sub directories inside the "extension" directory will also have to be copied. However, make sure that you do not overwrite any extensions that are included in eZ Publish, which currently are eZ Online Editor (5.x), eZ OpenOffice.org (2.x) and eZ JSCore (1.x). Note that upgrading the distribution files will overwrite the autoload arrays for extensions. You will need to re-generate the autoload arrays for active extensions later.

See below for dedicated upgrade instructions for eZ Flow and eZ Webin.

The updated versions of eZ Flow and eZ Website Interface will also install the following extensions:

  •  eZ Website Toolbar
  •  eZ Star Rating
  •  eZ Google Maps Location

For eZ OE 5.x and eZ JS Core you will need to replace the following rewrite rules when using Virtual Hosts:

<span class="line">RewriteRule ^/var/cache/texttoimage/.* - [L]</span><span class="line"> </span><span class="line">RewriteRule  ^/var/[^/]+/cache/(texttoimage|public)/.* - [L]</span>

with:

<span class="line">RewriteRule ^/var/([^/]+/)?cache/(texttoimage|public)/.* - [L]</span>

For more detailed instructions, see the dedicated eZ OE and eZ JS Core doc pages.

Step 3: Upgrade the database

The update script for the database is located in

<span class="line"><eZP  root>/update/database/<mysql|postgresql>/4.3/dbupdate-4.2.0-to-4.3.0.sql</span>

You can run this with the appropriate command line tool or application

Step 4: Regenerate the autoload array for extensions

The autoload system also has some changes, for example the autoload array for extensions is now placed in var/autoload of your eZ Publish installation (along the class changes in extensions itself).

To regenerate the autoload array, execute the following script from the root of your eZ Publish directory:

<span class="line">php bin/php/ezpgenerateautoloads.php --extension</span>

Step 5: Run the system upgrade scripts

Run the following command from the root of your eZ Publish directory:

<span class="line">php update/common/scripts/4.3/updatenodeassignment.php</span>

Step 6: [optional] Enable admin2 design for eZ Publish Administration interface

To enable admin2 open site.ini for your admin site access. For an eZ Flow site this would for instance be:

<span class="line">settings/siteaccess/ezflow_site_admin/site.ini.append.php</span>

In this file include AdditionalSiteDesignList[]=admin2 to your [DesignSettings]. It is important that you add the admin2 design before the admin design, in order to let extensions that have admin templates to continue to work. On an eZ Flow site, it would mean changing the settings from:

<span class="line">[DesignSettings]</span><span class="line">SiteDesign=ezflow_site_admin</span><span class="line">AdditionalSiteDesignList[]=admin</span><span class="line">AdditionalSiteDesignList[]=ezflow</span>

to

<span class="line">[DesignSettings]SiteDesign=ezflow_site_admin</span><span class="line">AdditionalSiteDesignList[]=admin2</span><span class="line">AdditionalSiteDesignList[]=admin</span><span class="line">AdditionalSiteDesignList[]=ezflow</span>

When using a plain or eZ Webin install you should make the same changes. In this case you will of course have a different SiteDesign setting and no AdditionalSiteDesignList[]=ezflow line.

To enable users to change their Administration Interface preferences (for example their preview tab preferences), add the following line to the [Toolbar_admin_right] block in settings/siteaccess/<siteaccess_name>/toolbar.ini.append.php:

<span class="line">Tool[]=admin_preferences</span>

So the block will then look like this:

<span class="line">[Toolbar_admin_right]</span><span class="line">Tool[]</span><span class="line">Tool[]=admin_current_user</span><span class="line">Tool[]=admin_bookmarks</span><span class="line">Tool[]=admin_preferences</span>

Last step is to make sure ezjscore (extension) is enabled. For enabling extensions in general, look here, for 4.3 just make sure ezjscore is before ezwebin in ActiveExtensions if you use webin.

Step 7: Clear the caches

Whenever an eZ Publish solution is upgraded, all caches must be cleared in a proper way. Note: You should not be a root user when you start the caching process (refer to http://issues.ez.no/15823). The caching should be done from within a system shell:

  1.  Navigate into the eZ Publish 4.3 directory.
  2. Run the script using the following shell command:

    <span class="line">php bin/php/ezcache.php --clear-all --purge</span>

Purging ensures that the caches are physically removed. When the "--purge" parameter is not specified, the caches will be expired but not removed.

Sometimes the script is unable to clear all cache files because of restrictive file/directory permission settings. Make sure that all cache files have been cleared by inspecting the contents of the various cache sub directories within the "var" directory (typically the "var/cache/" and "var/<name_of_siteaccess>/cache/" directories). If there are any cache files left, you need to remove them manually.

Upgrade eZ Flow and/or Website Interface separately

Please visit the eZ Flow and eZ Webin upgrade documentation for more info.

Written by:Ester Heylen (30/03/2010 12:25 pm)

Last updated by:Geir Arne Waaler (06/06/2011 12:46 pm)

Maintainers:Ester Heylen, Geir Arne Waaler, André R.

Changelog

Changelog 4.2.0 to 4.3.0

Kernel

  • Implemented enhancement #15490: LDAP login handler improvements
  • Implemented enhancement #11988: Add debug to email feature
  • Implemented enhancement #11244: Fetch function for shop orders
  • Implemented enhancement #15630: Avoid fatal error when fetching nodes from inconsistent databases
  • Implemented enhancement #15631: Improve the debug message in eZImageAliasHandler::initializeFromFile()
  • Implemented enhancement #11997: Add time measurement to runcronjobs.php
  • Implemented enhancement #15643: Warnings about non existing cache files should be Debug
  • Implemented enhancement #15644: eZURLAliasFilter should take benefit of the autoload system
  • Implemented enhancement #13730: file_exists optimization - cache the location of design base directories
  • Implemented enhancement #15672: Use ini setting for menu items in admin
  • Implemented enhancement #15670: Hide webshop tab by default
  • Implemented enhancement #15671: Hide Design tab by default
  • Implemented enhancement #15364: Cache-blocks expiration by class
  • Implemented enhancement #15701: Add ATOM support for exporting RSS feeds
  • Implemented enhancement #15707: Simplify creating new RSS feed from a node
  • Implemented enhancement #15716: RSS Export description should be optional
  • Implemented enhancement #15739: Better image / media / file support in RSS export ([enclosure] and [description])
  • Implemented enhancement #15812: Improve debug output of template foreach function
  • Implemented enhancement #15641: BCC - sending problem with the notification mail
  • Implemented enhancement #12490: let session clean up in admin interface work without grinding db to a halt
  • Implemented enhancement #14858: Make errors more newbie friendly, like "the debug output is present below"
  • Implemented enhancement #15968: Replace smtp class with ezcMailSmtpTransport
  • Implemented enhancement #3005: Increase performance eZTreeMenuOperator
  • Implemented enhancement #16012: Clean up bread crumb (view path) usage in class module
  • Implemented enhancement #1785: ezpreferences redirect isn't working if no referer is given
  • Implemented enhancement #15511: Use getenv() instead of $_ENV for better PHP 5.3 compatibility
  • Implemented enhancement #16043: Browse from default location on Add Object in ezobjectrelation like ezobjectrelationlist does
  • Implemented enhancement #16049: Add support for adding relations more easily on ezobjectrelationlist in browse mode
  • Implemented enhancement #11716: Allow "objectrelationlist" datatype inheriting by using non static syntax for non static methods
  • Implemented enhancement #16027: Class editor always set focus on class name insted of new created attribute
  • Implemented enhancement #11183: class edit: attribute numbers could be a multiple of 10
  • Implemented enhancement #14745: deprecate eZCacheClearContentTreeMenu in favour of eZCache::ClearContentTreeMenu
  • Implemented enhancement #16051: Class edit: Allow moving attributes up/down withouth page refresh
  • Implemented enhancement #12860: A noninvasive (non-hack) way of extending the cache clear list
  • Implemented enhancement #1895: Add description field for class & class attributes
  • Implemented enhancement #16056: Add class attribute category field for data map grouping
  • Implemented enhancement #16057: Add data_text_i18n to class attributes for translatable class attribute data use
  • Implemented enhancement #16059: DEPRECATED CSSFileList|JavaScriptList in favour of [Frontend|Backend][CSSFileList|JavaScriptList] settings
  • Implemented enhancement #16062: Add setting to control content structure menu persistence to be able to disable it
  • Implemented enhancement #16066: Create a configurable dashboard for the eZ Publish backend and frontend
  • Implemented enhancement #15339: Add view_parameters support in user/edit
  • Implemented enhancement #15693: Possibility to specify required permissions on admin menu items and tab links
  • Implemented enhancement #16067: Provide list of module objects to role/createpolizy1.tpl for ajax use
  • Implemented enhancement #16071: Backend search result with context menu (line view) (patch)
  • Implemented enhancement #14998: Split popupmenu/popup_menu.tpl into smaller templates
  • Implemented enhancement #15741: Optimize templates to not call count and fetch without checking count value first
  • Implemented enhancement #16133: Putting the logic of content objects modifications in a handler when content class get modified
  • Implemented enhancement #16124: eZContentObjectTreeNode::createPermissionCheckingSQL() should define an index in temporary table
  • Implemented enhancement #15371: object_count_by_user_id counts empty-non-published drafts
  • Implemented enhancement #16192: Remove deprecated eZArchiveHandler class and sub classes
  • Implemented enhancement #16193: Remove deprecated eZModuleManager and eZImportLookupTable classes
  • Implemented enhancement #16200: Deprecate kernel/common/ezincludefunctions.php
  • Implemented enhancement #15441: eZDBSchemaInterface subclasses do not allow to dump/rebuild a proper schema: table columns are always sorted
  • Updated bug #16197: Editing a class makes it loose it's class group
  • Implemented enhancement #16202: Deprecate imageInit()
  • Implemented enhancement #16216: Deprecate templateInit()
  • Implemented enhancement #16228: Rename ezpI18n::translate() to something shorter like ezpI18n::tr()
  • Implemented enhancement #15793: eZDFS: Image files and aliases are not removed when a objectversion is deleted
  • Implemented enhancement #16226: Translation of custom admin menu items - improved
  • Implemented enhancement #16351: Add date picker on ezdate and ezdatetime in admin2 (same as in webin)
  • Implemented enhancement #16352: Don't enforce convention on classes users are allowed to create, let policies define that instead

Design

eZTemplate

  • Added user display styles to hide/show user limited items in a view cached environnement

Scripts

  • Fixed bug #15522: Upgrade script for node assignments which are left behind

Bugfixes

  • Fixed bug #15454: Make eZSession::getUserSessionHash() to return default hash instead of empty string
  • Fixed bug #15467: ezenum datatype always resets the multiple choice settings when the class is edited
  • Fixed bug #14939: odd workflow behaviour when redirects
  • Fixed bug #15478: Node assignment is not removed when removing node from child list
  • Fixed bug #14389: In ezldapuser.php, LDAPLoginAttribute and LDAPGroupNameAttribute ini variables with upper case caracters unread
  • Fixed bug #15485: Deleted LDAP user nodes are not recreated
  • Fixed bug #14927: simplify operator has a different behaviour depending on TemplateCompile settings
  • Fixed bug #15530: Existing ezp users are not synced with ldap users
  • Fixed bug #15532: Bug with eZHTTPTool::getDataByURL and output buffering
  • Fixed bug #14456: ezselection.tpl produces invalid XHTML
  • Fixed bug #15584: Correct serializeContentObjectAttribute in ezdatetimetype.php file
  • Fixed bug #15231: Bad links in /content/versionview/
  • Fixed bug #15601: Template error: No such attribute for array(2): additional_info
  • Fixed bug #15624: LDAP login handler creates node assignments with wrong versions
  • Fixed bug #13394: allow google news to index ezpublish web site (static cache compatible)
  • Fixed bug #15646: Ugly display when use the "create here" function
  • Fixed bug #15678: Template compiler causes warning if node has not URI map
  • Fixed bug #14616: classattributeidentifiers cache doesn't work (at all) with clustering + ezdb
  • Fixed bug #15724: Custom remove action does not work in ezauthortype when using different base name
  • Fixed bug #15725: ez2fs - user cache don't work
  • Fixed bug #15639: remote_id of a node is changed at various places
  • Fixed bug #14865: ezcache.php --purge disregards --expiry
  • Fixed bug #15848: Syntax error in ezdebug.php
  • Fixed bug #15740: Current imagemanager can`t execute image aliases that have different image handler`s filters.
  • Fixed bug #15045: Fix for updateviewcount.php when using PathPrefix
  • Fixed bug #15142: Related object counted even if it is moved to trash
  • Fixed bug #15862: Register user can create duplicate entry
  • Fixed bug #10687: Empty trash always fails on huge number of objects
  • Fixed bug #14354: Strict standards: Declaration of eZOrderItem::remove() should be compatible with that of eZPersistentObject::remove()
  • Fixed bug #14983: Files are still available when object is moved to trash
  • Fixed bug #14983: Files are still available when object is moved to trash (second fix)
  • Fixed bug #14331: user/register - RegistrationEmail to Admin without EmailSender
  • Fixed bug #15911: Still inconsistent use of the name "eZ Publish"
  • Fixed bug #15733: ezcontentobjecttrashnode generate an sql error
  • Fixed bug #15921: In-memory cache for eZContentClass is not cleared on expireCache()
  • Fixed bug #13503: Labels tags don't have for attribute
  • Fixed bug #15852: PHP Warning: str_repeat() warning with negative count parameter
  • Fixed bug #15744: Permission Error in eZContentClass::instantiate
  • Fixed bug #12719: setting RenderParagraphInTableCells doesn't work for th
  • Fixed bug #15983: Allowing kernel override in config.php may cause a Fatal Error
  • Fixed bug #15991: When registering with an empty password, validation error displays "The passwords do not match."
  • Fixed bug #12890: (Caching-)File problems when using sysmlinks in an installation
  • Fixed bug #16002: Redirect after a login on SSO system (with an SSO Handler extension) is done with a meta redirect
  • Fixed bug #15572: User registration validation error text is incomplete (when password length [ minpasswordlength)
  • Fixed bug #16009: SSO handlers can lead to an infinite loop on user/logout
  • Fixed bug #16011: invalid html using attribute(show)
  • Fixed bug #16038: "Notice: Undefined index: strict[-end]" in cli
  • Fixed bug #8991: JavaScript window.onload event often gets confiscated by one single function
  • Fixed bug #16037 Undefined variable: contentVersion in kernel\classes\ezworkflowprocess.php on line 521
  • Fixed bug #15979: ActiveExtensions Array order in site.ini changes on autoload generation
  • Fixed bug #16085: Only variable references should be returned by reference in \lib\ezutils\classes\ezsys.php on line 739
  • Fixed bug #16088: Make contenttreemenu and content/treemenu use system url if url is empty
  • Fixed bug #11532: it is not possible to use " in title of site without corupting html
  • Fixed bug #16089: All redirects to node 2 (content root node) end up on Dashboard page
  • Fixed bug #15970: Characters appended to node view urls are used in view cache tree structure
  • Fixed bug #15418: France is listed twice in content.ini/[CountrySettings]/Countries
  • Fixed bug #15070: Wrong error code if database is unavailable
  • Fixed bug #014940: eZLocale::countryList(..) and eZLocale::languageList() return array with not unique items
  • Fixed bug #16022: Bad parameter order for some imagemagick version
  • Fixed bug #16105: Duplicate code in eZObjectRelationListType::validateObjectAttributeHTTPInput()
  • Fixed bug #16093: "Your Drafts" information
  • Fixed bug #16094: "Your pending Items"
  • Fixed bug #16126: availableClassesJsArray wrongly defined as static causing create here menu on sub items to fail
  • Fixed bug #16158: eZ JSCore should be enabled by default after running the setup wizard
  • Fixed bug #11038: eZP might go into an infinite loop if MySQL closes it connections causing apache to segfault (now also fixed for mysqli)
  • Fixed bug #14615: Database errors in search engine logic using PHP 5.2.9
  • Fixed bug #15146: eZXMLText::outputHandler never returns eZPDFXMLOutput
  • Fixed bug #15823: Running cache clearing procedure from upgrade 4.2.0 using root removes all linux system files
  • Fixed bug #16180: Site structure on dashboard is buggy
  • Fixed bug #16160: Call to undefined function ezi18n()
  • Fixed bug #15673: eZCollaborationItemHandler::handleCollaborationEvent() not oracle compatible
  • Fixed bug #16207: Does not work to restore design tab in admin
  • Fixed bug #15845: eZDir does not accept the root directory
  • Fixed bug #16184: Regression in renderParagraph() after preserveWhiteSpace=false was removed with block tags
  • Fixed bug #16213: dashboard generate very slow queries
  • Fixed bug #15665: Site fails when activating TemplateCompile-setting
  • Fixed bug #12655: Variable Repository in [FlagIcons] doesn't seem to be used
  • Fixed bug #15842: Running eZScript scripts as root should be discouraged
  • Fixed bug #14370: Inserting non break space doesn't work
  • Fixed bug #15157: admin history page, 'object information' tab, show wrong data
  • Fixed bug #16244: Dashboard templates only available in admin2
  • Fixed bug #16267: IIS setup process
  • Fixed bug #16114: Check that eZCache items that are clustered are defined as such
  • Fixed bug #16078: Discarding translated draft removes original image
  • Fixed bug #16290: eZDFSFileHandlerTest incorrectly restore settings which causes other tests to fail
  • Fixed bug #15891: ezjscore - file names are cutted
  • Fixed bug #16289: Preview tab disabled by default
  • Fixed bug #16285: Parent setUp() function should be called after testing whether a test should be skipped
  • Fixed bug #16313: CachedViewPreferences[] contains preferences that are not used in viewcached pages decreasing cache efficiency in backend
  • Fixed bug #16248: wrong use of array_intersect() in ezsubtreenotificationrule.php
  • Fixed bug #16048: eZTextFileUser login fail on mysql master/slave
  • Fixed bug #16288: New mail transport classes can not be placed inside extension
  • Fixed bug #16272: Formatting of SQL queries causes warnings in Postgresql
  • Fixed bug #16327: Normalise the error handling across mysql, mysqli and postgresql
  • Fixed bug #16334: Database connection shouldn't be closed twice with MySQL/MySQLi backends
  • Fixed bug #16332: In-memory cache for eZContentClass when clearing class identifier cache
  • Fixed bug #16322: eZTextFileUser makes user names with newline (with patch)
  • Fixed bug #16357: Javascript in error in admin2 if LoadFromCDN is disabled
  • Fixed bug #16358: Missing comment indicator at menu.ini file
  • Fixed bug #16355: TC-102 - Adding a "Section" returns a Fatal Error
  • Fixed bug #16156: Modification of attribute category leads to database transaction error (ezscheduled_script table missing?)
  • Fixed bug #16319: deprecate cronjob ldapusermanage.php
  • Fixed bug #16340: DB Deadlocks on ezcontentobject_tree when updating subnode (needs SQL IN() statement)
  • Fixed bug #16140: Wrong permissions in var inside tarball
  • Fixed bug #16291: Media library without access to create folders
  • Fixed bug #8994: Database consistency check suggest to drop extension tables
  • Fixed bug #16400: Content of an ezmedia attribute is deleted from published version when a new draft is deleted
  • Fixed bug #16399: ezmbpaex : Not able to send notification emails
  • Fixed bug #16389: Fatal error if SMTP configuration is wrong
  • Fixed bug #16401: email for confirming when anonymous is subscribing to comments is in plain text, but with html tags
  • Fixed bug #16328: Wrong hash stored in database on hash update in ezUser.php
  • Fixed bug #016190: Adding ezmbpax attribute to userclass creates PHP notice
  • Fixed bug #016426: When removing an object's main location from subitems, none of the other locations are set as main
  • Fixed bug #014371: Workflow template repeat broken by security patch Missing patch part from last release
  • Fixed bug #015727: Workflow status STATUS_FETCH_TEMPLATE_REPEAT disappeared