eZ Publish / Releases / eZ publish 3.4 / eZ publish 3-4-0

eZ publish 3-4-0

eZ publish 3.4.0

Changelog

Changelog 3.4.0

Changes from 3.3-5 to 3.4.0

Kernel

  • Added user specified template values.
  • Added PathPrefix functionality to be able to remove selected parts of the url in the url alias
  • Added storeData() function for eZContentObjectAttribute, this function is safe for datatypes to call (unlike store() ). Merged in from 3.3 stable (Rev. 4817)
  • Added wildcard search to eZSearchPlugin. This feature is disabled by default, but can be enabled in site.ini->SearchSettings->EnableWildcard.
  • Added edit button link for class view.
  • Added support for fetching a class by the identifier (fetchByIdentifier) eZContentClass.
  • Added support for class identifiers in addition to the existing class ids in content/action. Use ClassIdentifier instead of ClassID to get this functionality.
  • New fetch function in content module for checking access types on an object called access.
  • Added support for the new variable system in the URLs for google.tpl, that means (offset)/10 instead of offset/10, this also works with nice urls.
  • Added class_identifier as design/override key to content/view.
  • Added data_map support for eZContentClass, this means that all attributes are returned as an associative array with the identifier as the key.
  • Added support for sending the class identifier as a string to the content/class fetch function.
  • Added content/pdf for on the fly generation of PDF based on current node. Utilizes normal content caching.
  • Added setting for adjusting default value of ezdatetime datatype based on current date
  • Added ezcontentobject_tree.modified_subnode to eZContentObjectTreeNode to make fetches of last modified subtree faster.
  • Added MD5 check of distribution files. Both scripts and GUI for checking files added.
  • Added function to view/edit ini settings in admin interface.
  • Added configureable object 'common ini settings' under admin setup.
  • Added support for overriding on class_identifier on templates included in node_view_gui ( e.g. embedded objects ).
  • Made ezdesign and ezimage operator check for design resources in extensions
  • Made the treemenu operator sort by the current node's sort array instead of always using priority.
  • Rewritten user permissions checking to minimize overhead.
  • Added Role assignment to user based on limited criteria.
  • Change loading of datatypes, they are now loaded on demand only.
  • Added removal of session data when removing or disabling user, to automaticly log out invalid user.
  • Removed possibility to remove user to trash, not possible to clean up properly for user in trash.
  • Added Worlflow filtering when listing triggers, to only show allowed triggers according to workflows.
  • Changed the eZMySQLDB to check the $this->IsConnected variable directly to get rid of un-needed function calls.
  • Changed content view to not use operations if read workflows are disabled. Saved approx 500KB of memory on every view page.
  • Added menu config admin page which can edit the settings for which menu to use. This will only work with pagelayouts which uses this setup.
  • Added toolbar config admin page which could edit the settings of toolbar in page layuout.
  • Added support for or (|) logic in object name pattern, you can now specify firstname|lastname this will then set the object name to the value of lastname attribute if firstname is empty.
  • Optimized eZPersistentObject::fill it now uses much less function calls it reduces approx 600+ function calls on a simple view page.
  • Made eZExpiryHandler not use eZPHPCreator a bit faster and we may be able to remove the eZPHPCreator include.
  • Optimized eZContentCache to save a bit more efficient cache files and removing the need to eZPHPCreator, using PHP serialize function instead.
  • Made eZRole::fetchIDListByUser() sort the roles by id thus preventing the need for doing this sorting in PHP when doing view caching.
  • Changed extension of cache files to .cache for template-block and view cache. This prevents PHP Accelerator and friends to cache these files, which causes problems on large sites.
  • Added the possibility to set attributes in eZWorkflowType. (Merged from stable/3.3 rev. 5534)
  • Create new script sqldiff.php which can be used to figure out differences between two databases (even database type). It uses the eZDBSchema library to compute the differences.
  • Added 'Delayed Indexing' of published objects; when activated a lost of not indexed objects are kept, and being processed by a cronjob.
  • Added missing definition of class_identifier in eZContentObject which made hasAttribute() always return false. This made it impossible to have class identifier overrides of node children.
  • Added {$requested_uri_string} variable to pagelayout which will contain the untranslated requested URL. Useful for keys and subtree checks.
  • Made sure it is not possible to move, remove or add locations for top level objects. (Merged from stable/3.3 rev. 5577)
  • Added class_identification override key for embeded objects in XML text.
  • Made the default object.tpl add div for object alignment
  • Fixed support for attribute_keys for object forwarding.
  • Added support for setting global overrides in eZTemplateDesignResource.
  • Added support for inherited roles from top to bottom.
  • Added operator mimetype_icon() which will take a mimetype string as an argument and return an icon for that mimetype.
  • Added is_empty attribute to ezauthor datatype to have simple checking for an empty author list in the template.
  • Some changes to the month_overview template operator, the classes set for week days are changed and day, month and year parameter are passed using the new url parameter system.
  • Fixed treemenu operator to fetch sort_array from the current node instead of always using priority sorting.
  • Fixed ezimage operator to check also avialable extensions. Added eZTemplateDesignResource::allDesignBases().
  • Added the possibility to fetch a node by it's url alias (path), this is also possible in the fetch operator content/node.
  • Made sure eZContentClass::fetchByIdentifier returns null when the content class could not be fetched.
  • New entry in content.ini (SetupRootNode) which controls which node is the setup node.
  • Made sure eZScript will exit with code 1 when it is not run in CLI mode.
  • Added fetch functions for counting logged-in and anonymous users.
  • Added fetch function for listing logged-in users (just name or as eZUser)
  • Added fetch function for checking if a specific user is logged-in.
  • Added remote id field to content class.
  • Added remote id field to content tree node.
  • Added package install handler.
  • Added support for content object package creation and import.
  • Added fetchListCount and fetchList functions to eZContentObjectTreeNode which can be used to fetch nodes regardless of structure.
  • Added class_identifier override key to collectedinformation e-mail template.
  • Added fetch function for listing override template for content classes
  • Added "do not edit" comment to all standard templates + functionality that removes this comment when creating an override based on a standard template.
  • Added object_count attribute to eZContentClass
  • Added object count in class list and class view
  • Merged the ezuser_session_link table into the ezsession table.
  • New setting for sessions ActivityTimeout which controls how long it takes before a session is considered inactive (or logged out). The default is 3600 seconds (1 hour)
  • Changed the default sorting of node assignments to be published objects first.
  • Fixed bug with mime type in ezbinaryhandler (was allways set to application/octet-stream)
  • Added listing roles when browsing user groups.
  • Added member_of operator to fetch(user, ex: fetch(user, memeber_of, hash( id, 42 )).
  • Added fetch function user_role in user module ( ex: fetch(user, user_role, hash( user_id, 14 )).
  • Added decoding support in ldap login if the ldap server is utf-8 encoded.
  • Added template override key for class attribute identifier.
  • Added support for setting the current system locale using a setting in site.ini (RegionalSettings/SystemLocale), this can be set to get PHP to handle language specific properly.
  • Added function to pre generate the view cache. This feature is turned off by default, set PreViewCache=enabled in site.ini to enable it.
  • Show more info when giving "Access denied". New entry to site.ini (ShowAccessDeniedReason) controlls if some of this information should be shown in the view also (not only in the debug output)
  • Added 20 stylesheet themes to the base site.
  • Fixed extension of view cache files. They were named .php which is obsolete and broke the clearing of view cache.
  • New setting DebugSettings/ShellDebugOutput which controls whether scripts should show debug or not. It is turned off by default.
  • Made sure the design override cache is unique per siteaccess not just designs.
  • Fixed problem where cache was not removed when a class was created. The new content cache ignored the expiry time.
  • New script ezexec.php which can be used to include/execute other PHP scripts. When the scripts are called the necessary eZ publish initialization is already done.
  • Changed the date format of the serialized content objects to use the rfc 1123 date, this ensures dates are properly exported across timezones.
  • Made sure the priority values of nodes are updated after the an object is published when importing content objects from packages.
  • Changed setup wizard to use the published, modified and created dates found in the packages, without this multiple objects would the same dates.
  • Added support for not showing the change and versions button by configuring content.ini.
  • Fixed image.tpl and weblog.tpl to use the sorting value from the parent node when fetching next and previous item.
  • Added support for setting sort_by in node_list tool, this is published by default but can be changed.
  • The versionview page will now set the $versionview_mode variable when including full template.
  • Fixed the version number check in package creator to allow version of the form 3.4.0beta1
  • Added can_read, can_create and can_delete attributes to kernel/classes/ezcontentobjecttreenode.php
  • Made menu.ini part of the standard distribution, can be copied when setting up site manually.
  • Fixed bug in content/class and content/check_access fetch function, it previously checked if an ID was string, correct is to check if it is not a numeric.
  • Changed template creation system to use class identifier as match key instead of class ID.
  • Added command line support for contentobject exporting.
  • Added class ezoe.php which has function to return required OE version.
  • Updated webdav content server to use the new policy checking.
  • Added listitem template for link class in base design.
  • Added parameters to eztc.php (template compiler) to set the www-dir, index-file and access-path.

eZ PersistentObject

  • Redone the attributes, hasAttribute, attribute and setAttribute functions to properly include support for function_attributes and custom functions. With this it is no longer necesary to implent the function calling yourself, eZPersistentObject will handle the function call.
  • Made sure the dirty flag is only set when an attribute is actually changed, that means either the type or content is changed.
  • Fixed storeObject() to not do any updates when the number of keys is 0.
  • Fixed a bug in storeObject() which could cause definitions with 1 key to not insert into the database but just do an update.
  • Fixed a bug which caused some classes to only produce insert statements.

Database

  • Moved the 'Anonymous' role assignment from the 'Anonymous User' to the 'Anonymous users' user group.

Design

  • Fixed wrong forum color in theme 8
  • Made sure the base templates hides some elements when in version view mode.

Unit testing

  • Created a new system for doing automated unit testing. It has a basic framework and a plugin based structure to handle the test cases.

DataType

  • New function hasObjectAttributeContent (attribute.has_content in template) which returns true if the attribute is to be considered to have any content.
  • Fixed a define typo in ezurltype.php
  • eZBinaryFile now uses eZMimeType for mime type handling.
  • eZMedia now uses eZMimeType for mime type handling. Merged in from stable/3.3 rev. 5380.
  • Made sure eZOption and eZRangeOption does no initialization when an attribute is copied (e.g. on when creating a new version).
  • Made sure eZImage, eZMedia and eZENUM only copies attribute data when supplied version is non-false.
  • Added attribute is_enabled to eZUser.
  • Added information collector support for the eZEmail datatype.

eZ INI

  • Made sure the recreated array line includes all elements not just the first and second. (Merged from stable/3.3 rev. 5872).

eZ ObjectRelation

  • Added support for choosing relation in a dropdown (combobox) where items are taken from a specific folder (list or tree)
  • Added support for text field when having dropdown, the text field will allow for fuzzy matches with the names in the dropdown.

eZ Identifier

  • Added serialization support.

Shop

  • Added list of customers.
  • Added order list and product list for each custom.
  • Added reports on monthly/yearly basis for sales.
  • Changed Custom name from user object name to account name which is generated from shopaccounthandler. For each handler ez*shopaccoundhandler.php, it must implement function accountName().

Libraries

  • Fixed case bug in the Timeout variable in eZSOAPClient.

eZ Utils

  • Added function to redirect client to other URL, with POST parameters. eZHTTPTool::sendHTTPRequest()
  • Use TRUNCATE TABLE instead of DELETE FROM, which is a faster alternative and works on MySQL, PostGreSQL and Oracle.http://ez.no/community/bug_reports/ezsession_truncate_instead_of_delete
  • Added eZMath library.
  • Added function to find the absolute Path to the eZ publish root directory. eZSys::rootDir()
  • Added functions for creating an ANSI string which stores and restores the position in eZCLI.
  • Added function for creating an ANSI string which moves the text to a specific column in eZCLI.
  • Added 'header' style to eZCLI.

eZ XML

  • Added array to XML to array support.

eZ Mail

eZ PDF

  • Added more functionality.
  • Added text wrap around images.

eZ INI

  • Optimized storing of .ini file cache to use about 1/3 less memory when loading cached .ini files

eZ DB

  • Made sure the connect string puts the connection values in single quotes

eZ Template

  • Implemented template compilation for almost all template operators and functions.
  • Added automated unit tests for eztemplate functionality.
  • Added the option to turn off all caching and compilation when fetching templates. This is currently used to test if template compilation works as expected.
  • Added reset() and resetElements() function which calls a reset function on all functions and operators. This ensures that the run-once function can be reused for automated testing.
  • Two new element types (array and boolean) created to help in template compilation optimization.
  • The behaviour of the template operators sum, sub, inc, dec, div, mod, mul, max, min, abs, ceil, floor, round, int, float, count and roman has changed. Objects and arrays are no longer been given special treatment (these features were never used anyway). Now all parameters are treated as scalar values.
  • The template operators sum and sub no longer accepts an array as input value. A new operator array_sum was created to handle this case (sub is no longer support for arrays). Code depending on this must be changed.
  • The switch function no longer requires a default case, and has an additional argument 'var' which controls the naming of the variable which contains the value of the match (which was formerly always '$match').
  • New class eZTemplateToolbarFunction which support template syntac {tool_bar name=$toolbar_name view=$viewmode}.
  • New class eZTemplateMenuFunction which support template syntac {menu name=$menuName}.
  • Added the subtree_expiry option to {cache-block}.
  • Fixed numeric parser to properly recognize float and integers, previously all numbers were float.
  • Fixed a major bug in the si operator, the calculations and prefixes were wrong in many cases.
  • Made the si operator use the current locale settings when displaying numbers.
  • Added parameter tool_id and offset for toolbar function.

eZ Locale

  • Made the number and currency settings availabe as methods and attributes.
  • New class eZDateUtils which has some static member functions for handling dates.
  • Added rfc 1123 and rfc 850 date creation to eZDateUtils.
  • Added function for turning a date string into a timestamp.

eZ CLI

  • Added 'failure' style which is similar to error.

eZ File

  • Added function to remove files match a given pattern in class eZDir.
  • Added static function to get suffix from file.

eZ Debug

  • Made sure the dumpVariable function don't mess up any existing output buffers or start a new unneeded one. (Merged in changes from stable/3.3 rev. 5539)
  • Added the possibility to put "commandline" to your IP list settings to receive debug information. This will make debug messages show up when starting scripts from the command line. Implements workaround for:http://ez.no/community/bug_reports/ezdebug_trigger_error

eZ DB Schema

  • New library for checking schemas between databases.

eZ Image

  • Added GIF support to the eZImageInterface

eZ PHP creator

  • New creation type 'define' which creates a define() expression. Takes the name, value and optionally if it should be case sensitive.
  • Added optional parameter support to include, comment and code piece.
  • Added support for spacing to include, comment, code piece, variable, variable unset, method call and define. The spacing will be added before each line in the generated text.
  • Added default value of 0 to the second parameter ($column) of variableText().
  • Added new static function prependSpacing() which is used to prepend the proper spacing to a text block.
  • Added new function fetch() which renders all elements to a string and returns it.
  • Created new private function writeElements() which writes all elements to the text array, this function is now used in both store() and fetch().

Bugs

Admin

  • Added "Session admin" (clear all sessions or timed out/old sessions)
  • Reorganized setup menu (alphabetic list + some elements moved to advanced)
  • Added assign limited on section on roles.
  • Removed "Remove" button from misc. preview templates (dangerous)
  • Added list for sessions in "Session admin"