eZ Publish / Releases / eZ Publish 4.2 / ez-publish-4-2-0

ez-publish-4-2-0

eZ publish 4.2.0

Requirements

Version : Release date : Requirements :
4.2.0
OE 5.0.4
September 29, 2009 PHP = 5.2.1 to 5.2.8 or >=5.2.10
MySQL >= 5.0
PostgreSQL >= 8.x

Extensions

ezfind-extension-2.1.tar.gz 12.07 MB

Upgrade Notes

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

Upgrading from 4.1.x to 4.2.y

This section describes how to upgrade your existing eZ Publish 4.1.x installation to version 4.2. If you are upgrading from version earlier than 4.0.3, you first need to upgrade to 4.0.3 before you can upgrade to 4.2 (Refer to either "Upgrading from 3.10.x to 4.0.y" or "Upgrading from 4.0.x to 4.0.y" depending on which version you are currently running.)

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:

You need to run "updateimagesystem.php" before the "dbupdate" scripts, otherwise the tables being upgraded will be removed.

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

  1. Upgrading the distribution files to 4.2
  2. Upgrading custom extensions
  3. Updating image system
  4. Upgrading the database to 4.2
  5. Regenerate the autoload array for extensions
  6. Running the system upgrade scripts for versions from 4.0.x to 4.2
  7. Clearing the caches

Check for requirements

The eZ Components 2009.1 requirements

With eZ Publish 4.2, eZ Components 2009.1 is the minimum version required. If you installed a previous version with PEAR, please upgrade to version 2009.1. For more information also seehttp://ezcomponents.org/docs/install

The PHP requirements

Although a PHP version 5.2.x is listed as required (with the exception of PHP 5.2.9 which has a serious regression in the array_unique() call), full PHP version 5.3 compatibility is also provided.

For more information regarding system requirements check out http://ez.no/ezpublish/requirements

Step 1: Upgrading the distribution files

The easiest way to upgrade the distribution files is to unpack eZ Publish 4.2 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 siteaccesses.

Step 2: Custom extensions

If you are using custom extensions, the subdirectories inside the "extension" directory will also have to be copied. However, make sure that you do not overwrite any extensions that come with eZ Publish, which currently are eZ Online Editor (5.0.4) and eZ OpenOffice.org (2.4.0). 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.

Note that ezdhtml is now replaced by ezoe, so you should not copy it over.

For eZ OE 5.x you will need to have the following rewrite rule if using Virtual Hosts:

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

For more detailed instructions, see the dedicated doc page:http://ez.no/doc/extensions/online_editor/5_x/installation

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

  • eZ Website Toolbar (separated from eZ Web site)
  • eZ JS Core (base library for client side Javascript and Ajax functions)
  • eZ Star Rating
  • eZ Google Maps Location

Step 3: updateimagesystem.php

This script is necessary to run if you have data of the 'ezimage' datatype, dating from before eZ Publish 3.3, in version 3.3 a new image system took over based on ezimagealiashandler.

If you are upgrading to the 4.2 series of eZ Publish for the first time, and the installation at hand has been running since prior to eZ Publish 3.3 then you need to run the updateimagesystem.php script before running any of the dbupdate scripts for version 4.2.

If the installation at hand is a new installation or based on any eZ Publish version since 3.3 then you can skip running the updateimagesystem.php script.

Step 4: Upgrading the database

The update script for the database is located in

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

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

Step 5: 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

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

 Step 6: Running the system upgrade scripts

Run the following two upgrade scripts:

The update script in <root of ez publish installation>/update/common/scripts/4.1 is:

  • correctxmlalign.php: after upgrading to 4.1 the default alignment for embedded images in ezxmltext datatype is removed, this script will allow you to have the correct xmlalignment.

The update script in <root of ez publish installation>/update/common/scripts/4.2 is:

  • fixorphanimages.php: this script will delete images from the storage directory that are no longer connected to any content object attribute

Step 7: Clearing the caches

Whenever an eZ Publish solution is upgraded, all caches must be cleared in a proper way. This should be done from within a system shell:

  1. Navigate into the eZ Publish 4.2 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.

Upgrading eZ Flow and/or Website Interface separately

Step 1: Backup

Before you will start the Website Interface or eZ Flow upgrading process make sure that you have a backup of the existing website state including database, extensions, INI settings, etc. During the upgrade process existing eZ Flow and eZ Webin extensions will be removed and replaced with a new version. Website Interface and eZ Flow default content classes will be replaced as well. Upgrade script will also change some of the existing INI settings and add new ones which are required by latest version.

Step 2: eZ Flow upgrade

For information regarding upgrading to eZ Flow 2.0 please visit the following extension upgrading page.

To get more information about available upgrade options, execute ezflowupgrade.php script with –help parameter:

<span class="line">php bin/php/ezflowupgrade.php --help</span>

 Step 3: Re-write rules

Users running their eZ Flow sites in VH mode should update their extension related re-write rules to the following:

<span class="line">Rewriterule ^/extension/[^/]+/design/[^/]+/(stylesheets|flash|images|lib|javascripts?)/.* - [L]</span>

 Step 4: Website Interface upgrade

For more information regarding upgrading to eZ Webin 1.5 please visit the following extension upgrading page.

To get more information about available upgrade options, execute ezwebinupgrade.php script with –help parameter:

<span class="line">php bin/php/ezwebinupgrade.php --help</span>

 Step 5: 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:

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

 Step 6: Cache

Once the upgrade script is done, you need to clear the cache by executing following command from eZ Publish root folder:

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

Written by:Ester Heylen (24/09/2009 4:30 pm)

Last updated by:Geir Arne Waaler (01/06/2011 1:14 pm)

Maintainers:Ester Heylen, Geir Arne Waaler

Changelog

Changelog 4.1.0 to 4.2.0

Kernel

Design

  • Implemented enhancement #14654: Admin Interface - include custom navigationpart menu template automatically
  • Implemented enhancement #15440: Add page_head_[style|script].tpl in admin design

Scripts

  • Added script update/common/scripts/4.2/fixorphanimages.php Cleans up the image alias files that weren't removed due to issue #15155

Translations

Bugfixes

  • Fixed bug #14622: role & group session cache is not correctly cleaned on login in 4.1
  • Fixed bug #14627: Setting object states and view cache
  • Fixed bug #14625: Undefined index: HTTP_USER_AGENT in ezsession.php
  • Fixed bug #12850: soap.php and multiple siteaccesses (patch included) # Also clear soap.ini cache after loading new siteaccess and extensions
  • Fixed bug #14640: Php 4.4 mentioned in php version check in installer
  • Fixed bug #14628: Check that required eZ Components are installed during setup wizard
  • Fixed bug #14609 Allow eZSession to read session from post variable for flash requests to work on firefox # Use post before cookie, flash appends cookie if it has one even if the session might be invalid for the current user.
  • Fixed bug #14033: has_content of an eZInteger attribute is always true
  • Fixed bug #14663: has_content of an eZFloat attribute is always true
  • Fixed bug #14662: kernel override autoload
  • Fixed bug #14643: eZFSFileHandler: wrong var in debug output
  • Fixed bug #14345: Wrong character set destroy xml in eZ Image Alias Handler.
  • Fixed bug #14677: Invalid rules on eZ Webin (ezoe) for editor user
  • Fixed bug #14574: eZMySQLiDB ignores Port setting
  • Fixed bug #12740: kernel/content/node_edit.php contains unused vars and other crud
  • Fixed bug #12284: open_basedir warning not displayed when no other system checks fail
  • Fixed bug #14660: LDAP: not authenticated with the user requested
  • Fixed bug #14686: Double session start
  • Fixed bug #13162: Open_basedir warnings
  • Fixed bug #13421: Non-static method eZContentFunctionCollection::fetchReverseRelatedObjects
  • Fixed bug #13422: Non-static method eZContentFunctionCollection::contentobjectRelationTypeMask
  • Implemented further enhancements asked for in #12235: config.php documentation
  • Fixed bug #14712: OE5 does not always use full width when translation content
  • Fixed bug #14718: Improve debug output from default exception handler to support debug by ip
  • Fixed bug #10720: [patch included] Session lost if siteaccess contains dot in name
  • Fixed bug #14642: eZContentObject::fetchByNodeID is producing fatal errors
  • Fixed bug #14729: Query problem in eZContentObject::allowedAssignStateIDList()
  • Fixed bug #14392: fatal error in ezcontentmanager.php
  • Fixed bug #14632: warnings at deleting a content object
  • Fixed bug #14741: 4.1 user subscription fatal error
  • Fixed bug #08123: Query error on ezworkflow_event with multiplexer and a selection of many classes
  • Fixed bug #14704: Error in addlockstategroup.php update script
  • Fixed bug #14698: Check iconv availability in setup wizard
  • Fixed bug #14624: upgrade 4.0 -] 4.1: addlockstategroup.php fails if sql mode is set to strict
  • Fixed bug #14678: Translation : missing i18n
  • Fixed bug #14630: Autoload classes are not refreshed on clean install, so OE does not work out of the box
  • Fixed bug #14766: Installer thinks postgres is installed but it's not.
  • Fixed bug #14635: For a discount with decimal component shop/basket cuts off the decimal
  • Fixed bug #11055: $object.name and $node.name not translated
  • Fixed bug #14656: Access Denied Error when view not found
  • Fixed bug #14787: Url alias errors when changing translation currently shared with other translations.
  • Fixed bug #13087: dit\ezobjectrelationlist.tpl: wrong id for div tag
  • Fixed bug #14795: Problem with mime-type for swf files in mime.ini
  • Fixed bug #12833: /user/success redirects to /user/register
  • Fixed bug #14796: System Locale shaking the admin interface
  • Fixed bug #14652: Image alias create JPE file
  • Fixed bug #10944: preview cache - fatal error
  • Fixed bug #14703: wrong usage of productOptionInformation
  • Fixed bug #14520: eZPreferences - inconsistencies between database- and session-stored escaped values during initial session
  • Fixed bug #14802: Problem with url alias entries when shifting a combined entry to a previously used name.
  • Fixed bug #14805: Language switcher would leave out parts of an URL which was not translated in the destination locale.
  • Fixed bug #14343: Transaction error in eZURLAliasML::setLangMaskAlwaysAvailable()
  • Fixed bug #14719: Exclamation mark at end of URL does not work in emails (w/patch)
  • Fixed bug #14812: multiprice templates have untranslateable strings
  • Fixed bug #14815: Wrong function call breaks multiprice logic
  • Fixed bug #13045: updateviewcount.php problems with url's
  • Fixed bug #14816: Continous troubles with invalid url module (with fix)
  • Fixed bug #12481: Allow clearing of texttoimage cache with ezcache.php cli script and setup/cache view
  • Fixed bug #14751: eZWorflowProcess::createKey() if one of the process parameters is array, generated key is incorrect.
  • Fixed bug #14824: Check for allowed classes to instantiate based on ParentOwner limitation incorrect in eZContentObject
  • Fixed bug #14822: Object states suppression
  • Fixed bug #14830: eZPHPCreator::canRestore() doesn't use the file expiry API
  • Fixed bug #13593: # in links (content_structure_menu_dynamic.tpl) should be javascript:void(0)
  • Fixed bug #14874: Admin layout breaks when left menu != smal as regression to #14796
  • Fixed bug #14828: is_logged_in cookie always set removed even if not currently set
  • Fixed bug #14883: fixnoderemoteid script does not work with PostgreSQL
  • Fixed bug #14852: fromString & ezinisettings
  • Fixed bug #14879: Fatal error while creating new content object package
  • Fixed bug #14904: Too long query time in eZSubtreeNotificationRule::fetchUserList()
  • Fixed bug #14860: Strict standards: Only variables should be assigned by reference in kernel/classes/ezsslzone.php on line 144
  • Fixed bug #14730: PHP version check should be removed from index.php
  • Fixed bug #14890: SmartCacheClear ClearCacheMethod "keyword" doesn't work as expected [patch]
  • Fixed bug #14836: INI cache inconsistencies (w/patch)
  • Fixed bug #14884: Missing svn:executable property for update scripts
  • Fixed bug #14897: Object/class name pattern and cache issues [patch]
  • Fixed bug #14917: eZ not able to parse new QT Linguist XML format [patch]
  • Fixed bug #14885: Single-view modules are broken by fix for #14656
  • Fixed bug #14896: Error on PostgreSQL 8.3 when DelayedIndexing is enabled
  • Fixed bug #14888: Problems with SQL updates on user_hash on postgres
  • Fixed bug #14758: Installer loops, if INI file time check is disabled.
  • Fixed bug #14980 :make runcronjobs.php use ezcli/escript option parsing code
  • Fixed bug #15005: Database transaction failed in cronjob notification.php (wrong query)
  • Fixed bug #15047: Textfile based authentication doesn't work anymore
  • Fixed bug #14366: Duplicate remote_id in ezcontentobject_tree - for LDAP users
  • Fixed bug #15046: WebDav not working on 4.1.2 (patch).
  • Fixed bug #11695: Return correct hostname when behing a proxy
  • Fixed bug #12412: Redirect from secure zones causes redirection twice which messes up urls with special characters
  • Fixed bug #11695: Return correct hostname when behing a proxy (2nd fix, allow multiple hosts)
  • Fixed bug #15055: Preview modos doesn`t execatly look as the frontend
  • Fixed bug #15056: matrix datatype bug
  • Fixed bug #15054: Index on table ezkeyword_attribute_link
  • Fixed bug #15051: Fatal Error accessing collection information (infocollector/overview)
  • Fixed bug #15058: globBrace() in lib/ezutils/classes/ezsys.php does not work using Solaris
  • Fixed bug #15059: Wrong version tag in dbupdate for ezsession (patch)
  • Fixed bug #15051: Fatal Error accessing collection information (infocollector/overview) # Added missing schema definition
  • Fixed bug #15054: Index on table ezkeyword_attribute_link # Added missing schema definition
  • Fixed bug #15082: eZDFS does not like sql-mode=STRICT_ALL_TABLE
  • Fixed bug #15083: No warning is given when uploading file and size exeeds post_max_size [PATCH]
  • Fixed bug #15090: DateTime format in finnish (fin-FI) locale is bad
  • Fixed bug #15091: The rss module should return 304 not-modified
  • Fixed bug #12261: remote_id is not considered in eZContentFunctions::createAndPublishObject()
  • Fixed bug #13980: Allow to set section with eZContentFunctions::createAndPublishObject()
  • Fixed bug #15105: template.ini.[CharsetSettings].DefaultTemplateCharset is set to iso-8859-1
  • Fixed bug #14937: loose products from basket after login / loose session after login?!
  • Fixed bug #15027: fixclassremoteid.php is failing with custom datatypes
  • Fixed bug #11148: Cluster query error on mysql 5.1 using strict mode
  • Fixed bug #14493: Missing indexes on 3 tables
  • Fixed bug #15110: duplicate design bases in the list of template design resources
  • Fixed bug #14227: Languages are loaded from database in all pages
  • Fixed bug #15132: Some overrides do not work
  • Fixed bug #15083: No warning is given when uploading file and size exeeds post_max_size [PATCH]
  • Fixed bug #15140: Warning: get_class() expects parameter 1 to be object, null given in ezworkflowprocess.php on line 301
  • Fixed bug #14328: Nested embedding override issue
  • Fixed bug #14037: javadoc bug for eZHTTPTool::sendHTTPRequest # including regression for $passthrough variable caused by Rev. 22781
  • Fixed bug #14911: Untranslatable datatypes appears as translatable in class view and edit [patch]
  • Fixed bug #14982: Odd translation warning
  • Fixed bug #13400: ezlupdate always writes to "stderr"
  • Fixed bug #15141: Warning raised by ezauthor datatype
  • Fixed bug #14727: forgot password mail: problem with html mails
  • Fixed bug #15245: metaData for ezobjectrelation attributes is not always using the right translation
  • Fixed bug #15200: RSS Feed's won't work with Firefox 3.5x
  • Fixed bug #15249: Handle ezc exceptions in setup/info
  • Fixed bug #13828: staticcache_cleanup.php cronjob is inconsistent with ezstaticcache
  • Fixed bug #14893: remote_id is defined as integer and not string in content, node|object fetches
  • Fixed bug #15253: Avoid failure of SQL statement in ezrole.php
  • Fixed bug #14467: Objects are imported with "unknown section"
  • Fixed bug #15254: Cancel button in notification/settings is deprecated, should be removed from templates as well
  • Fixed bug #15037: performance issue due to table lock in ezidentifier datatype
  • Fixed bug #15001: strict warning in eZObjectRelationType::classAttributeContent
  • Fixed bug #15266: cleanup.php script causes PHP warning
  • Fixed bug #15269: Problem with Flash objects in eZ Publish 4.1.3. and Internet Explorer
  • Fixed bug #15280: Avoid warning and bad stylesheet syntax caused in ezdebug.php
  • Fixed bug #15282: A SOAP response can not be created with an empty namespace
  • Fixed bug #13371: eZImageType::fromString() doesn't support alternative image text
  • Fixed bug #14558: eZMySQLiDB::createDatabase() references non-existing method in mysqli extension.
  • Fixed bug #15310: preserveWhiteSpace removes whitespace between some ezxml tags when viewed
  • Fixed bug #15329: begins_with operator doesn't work as expected with strings
  • Fixed bug #15229: Bug in eZContentOperationCollection::registerSearchObject() in eZ Publish 4.1.3
  • Fixed bug #14763: Fetching a non existing node by path results in a warning while fetching by id doesn't
  • Fixed bug #14515: Disabled & Hidden users still get notifications
  • Fixed bug #15353: Fetch doesn't deliver proper result when usign language limitation and parent and child have a different language
  • Fixed bug #13888: Don't fetch wildcard cache from cluster on each page request
  • Fixed bug #14850: cache_ttl=0 and stalecache conflict
  • Fixed bug #14569: Install consistently(?) creates AdditionalLoginFormActionURL error
  • Fixed bug #13497: attribute operator throws a PHP fatal error on a node without parent in a displayable language
  • Fixed bug #15328: Problem in function validateObjectAttributeHTTPInput in class ezemailtype.php
  • Fixed bug #15288: eZContentBrowseRecent executed/updated on shell
  • Fixed bug #15211: php fatal error when fetchalias called without second param
  • Fixed bug #15230: php fatal error in fetch reverse_related_object
  • Fixed bug #15120: ezoracle : Fatal error when defining currencies
  • Fixed bug #15252: Search while using content/browse work not correctly
  • Fixed bug #15062: impossible to delete content on oracle
  • Fixed bug #13308: Copy an object with fatal error
  • Fixed bug #13520: Next / previous links in Forum not working properly
  • Fixed bug #14603: Custom install scripts - DOMDocument-]root() - ezinstallscriptpackageinstaller.php
  • Fixed bug #15156: Fatal error when runnning notification cronjob | Node without a parent node
  • Fixed bug #15125: PHP Warning in lib\ezdbschema\classes\ezmysqlschema.php on line 169
  • Fixed bug #15016: replace all direct usage of implodeWithTypeCast() with generateSQLINStatement()
  • Fixed bug #15437: index_image_dfsmysql.php is missing from the distribution
  • Fixed bug #15411: Traces of mangled byte in multiprice test, caused invalid byte sequence when inserting data to PostgreSQL
  • Fixed bug #15445: The result of eZPostgreSQLDB-]lastSerialID() is expected to be an int.
  • Fixed bug #15153: Apply changes with custom design
  • Fixed bug #14371: Workflow template repeat broken by security patch
  • Fixed bug #14864: Cast error in eZTemplateAttributeOperator
  • Fixed bug #15155: eZImageType::deleteStoredObjectAttribute doesn't clean original image
  • Fixed bug #15089: eZ Simplified XML input does not handle whitespace in XML attribute definitions
  • Fixed bug #15454: Make eZSession::getUserSessionHash() to return default hash instead of empty string
  • Fixed bug #15484: Fatal error when installing plain and choosing "Map to language"
  • Fixed bug #15388: Warning in eznotificationtransport.php when $transportImpl is null
  • Fixed bug #15478: Node assignment is not removed when removing node from child list
  • Fixed bug #15523: New objects of content classes installed by the package system have incorrect names and url aliases
  • Fixed bug #15263: After package import, object name is empty
  • Fixed bug #15561: eZContentObjectTreeNode::fetch() SQL error when conditions argument is given
  • Fixed bug #15579: VersionManagement.VersionHistoryClass doesn't work