Classes et attributs non traduisibles
Publié le 04 novembre 2009 | 1 commentaire(s) | Tags : langue |
Sur les sites eZ publish multi langues, nous pouvons définir pour une classe qu'un attribut ne soit pas traduisible. L'attribut ne sera modifiable que via la langue principale de l'objet.
Une fois que tous les contenus sont importants, il est relativement compliqué de modifier une classe, et que les modifications soient prises en compte.
Si vous avez déjà du contenu traduit, et que vous modifiez vos classes en modifiant des attributs en attribute non traduisible, eZpublish vous fournit une méthode simple pour mettre à jour vos attributs.
Dans cet exemple, j'ai limité mon fetch sur la classe "Folder". Voici le script PHP qui permet de gérer le problème :
<?php require 'autoload.php'; $cli = eZCLI::instance(); $script = eZScript::instance( array( 'description' => 'test', 'use-session' => false, 'use-modules' => false, 'use-extensions' => true ) ); $script->startup(); $script->initialize(); $params = array( 'ClassFilterType' => 'include', 'ClassFilterArray' => array( 'folder' ) ); $nodeList = eZContentObjectTreeNode::subTreeByNodeID( $params, 2 ); foreach( $nodeList as $contentNode ) { $contentObjectID = $contentNode->attribute( 'contentobject_id' ); $currentVersion = $contentNode->attribute( 'contentobject_version' ); eZContentOperationCollection::updateNontranslatableAttributes( $contentObjectID, $currentVersion ); } $script->shutdown( 1 );
Commentaires
#1 - Le 21 déc 11 par Beats By Dre
Ajouter un commentaire