Planet eZ publish


A roadmap for the next eZ Publish releases is now available. eZ Publish 4.1, the next major release, will include the new Online Editor, as was previously mentioned in Community Newsletter #1/2008. The new Online Editor will have various enhancements regarding usability and the user interface, and will support Internet Explorer 7 for Windows Vista. eZ Publish 4.1 is expected to be released in the first quarter of 2008.
Lately we've been having this discussion with André about different suggestions regarding ways to improve eZ content model:
http://ez.no/developer/forum/suggestions/in...
It was started by my own suggestion to introduce an additional flag that would sort of require objects attributes to be present (or, in other words, impossible to remove from the presentation/XHTML layer). And that actually resulted from my early eZ days questions on how does eZ Publish actually deal with missing attributes...
Well, I finally found some time to look at it again, especially into the eZ Publish kernel. I followed the path that an attribute takes from the edit view all the way to the datatype itself. Actually, I found out that no matter what you do, no matter how you manipulate the presentation layer, the attributes of a content class always reach input validation function in their datatype. So it is up to the given datatype to take further steps, but it's already a good news: it is possible to force attributes without any kernel/lib modifications! Here's an example (ezstring datatype):
function validateObjectAttributeHTTPInput( $http, $base, $contentObjectAttribute )
{
if ( $http->hasPostVariable( $base . '_ezstring_data_text_' . $contentObjectAttribute->attribute( 'id' ) ) )
{
// THE REST OF THE CODE
}
$contentObjectAttribute->setValidationError( ezi18n( 'kernel/classes/datatypes', 'Attribute missing in the presentation layer!' ) );
return eZInputValidator::STATE_INVALID;
}
A quick update on my four points above: I still believe the new flag would be a useful solution. I still believe there's space for both "required flags". I'm still not sure why checking an attributes presence is not default behavior in most (or all) out-of-the-box datatypes. But at least now I have it under control! ;)
And here's how the new flag could work:
function validateObjectAttributeHTTPInput( $http, $base, $contentObjectAttribute )
{
if ( $http->hasPostVariable( $base . '_ezstring_data_text_' . $contentObjectAttribute->attribute( 'id' ) ) )
{
// THE REST OF THE CODE
// Including use of: $contentObjectAttribute->validateIsRequired()...
}
elseif( $contentObjectAttribute->attributeIsRequired() )
{
$contentObjectAttribute->setValidationError( ezi18n( 'kernel/classes/datatypes', 'Attribute missing in the presentation layer!' ) );
return eZInputValidator::STATE_INVALID;
}
}
What do you think?

LA is wearing her typical veil of grey-brown smog. I’ve been here for enough hours that I can’t really smell it anymore – or much of anything else, for that matter. I’m at the LA Airport Weston with the rest of the SCALE 6x attendees.
I’m sitting in Steve Oualline’s session on Linux in Early Education. I know Steve from his excellent Vim cookbook (and other books.)
There 50+ people attending. Steve Oualline is joined by the cute-as-a-cute-button daughter Grace Oualline, who is four years old.
Point form, here are some messy notes on what Steve covered in the session.


Welcome! This past week saw the release of SHARE! Magazine, a new monthly community newsletter that features interviews, stories, reviews, and more about the eZ Ecosystem. Other interesting news this week includes the release of a new article on ez.no about using SVN in eZ Publish projects, a roadmap for eZ Components 2008.1, and an improvement to the login process for eZ Projects. Happy reading!
eZ My Collected Info extension gives front-end access to one's collected info. The ownership of the collections is determined based on the ownership of the content object that collected the information. In other words, it is not who sent the information, but whose object it was sent to, that is considered the owner, and thus can browse/read, and optionally delete.
The extension makes it possible to browse though the collections by class and then by object (a tree-like menu is provided for easy access). A detailed class-level configuration is possible to allow/disallow collection deletion, custom identifiers, and custom/default templates.
The extension comes with two module views and two access functions for a flexible management. The standard browsing view can be accessed through: /index.php/siteaccess/mycollectedinfo/browse
Read the settings/mycollectedinfo.ini file's comments for more information.
You can download the extension from: http://ez.no/developer/contribs/hacks/ez_my_collected_info

After our release just before Christmas we've been working towards a roadmap for the new 2008.1 release. In the new release we will be addressing some importing parts of Web applications: RSS/Atom feeds, Document conversion, Search and Translations. The full roadmap can be found on the eZ Components website page.
There are many other things that we're interested at in having as part of the eZ Components, but at the moment don't have the time for to implement. If you are interested in contributing, have a look at the issues that we've marked open for contributions in our issue tracker. If you're interested, let us know through our mailing list.
