Come cambiare un attributo in ezPublish tramite uno script php

Rate this post

Questo è uno snippet che ho usato per cambiare buona parte degli oggetti su ezPublish in modo da togliere la spunta a “Usa la lingua principale se non ci sono traduzioni prioritarie.”

[php]
error_reporting(0);

require ‘autoload.php';
define("STDERR",fopen(‘php://stderr’, ‘w’));
$script = eZScript::instance( array( ‘description’ => ( "Random Description"),
‘use-session’ => false,
‘use-modules’ => true,
‘use-extensions’ => true,
‘debug-output’ => false,
‘debug-message’ =>false) );

$script->initialize();

//trovo ini
$ini = eZINI::instance();

$nodes = eZContentObjectTreeNode::subTreeByNodeID(array(
‘Depth’ => 10,
‘ClassFilterType’ => ‘include’,
‘ClassFilterArray’ => array(
‘folder’,
‘article’,
‘new_event’,
‘hotel’,
‘last_minute’,
‘last_minute_base’,
‘locale’,
‘monumento’,
‘negozio’,
‘percorsogps’,
‘risto’,
‘gallery_hotel’,
‘mappa_scheda_hotel’,
‘last_scheda_hotel’,
‘prezzi_hotel’,
‘servizi_hotel’,
‘video_hotel’,
‘video’,
‘virtual’,
)
),2);
foreach ($nodes as $node){
/** @var eZContentObjectTreeNode **/
$node;
try {
/** @var eZContentObject **/
$nodo = $node->ContentObject;
$maskData = eZContentLanguage::decodeLanguageMask($nodo->LanguageMask);
if ($maskData[‘always_available’] != 1){
continue;
}

$mask = 0;
foreach( $maskData[‘language_list’] as $id )
$mask += $id;

$nodo->setAttribute("language_mask",$mask);
$nodo->store();
$nodo->expireAllCache();
} catch (Exception $ex){
echo $ex->getMessage() ."\n";
}

}
$script->shutdown();
[/php]

You may also like...

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">