Snippets for eZ publish 3: Script to delete all nodes under a node in content structure

|
|
Next article
 »

Table of contents:

This is compatible with eZ Publish 3.

About

This is a script to delete all nodes under some tree.
Please note that this script may use large amounts of memory.

A better solution has been developed called, 'batchtool'. Try using batchtool instead of this script snippet example.

Source

<?php
 
include_once( 'lib/ezutils/classes/ezcli.php' );
include_once( 'kernel/classes/ezscript.php' );
include_once( 'kernel/classes/ezcontentobjecttreenode.php' );
 
 
function deleteNodes( $classID, $parentNodeID, $depth )
{
    global $db;
 
    $deleteIDArray = array();
    $nodeArray =& eZContentObjectTreeNode::subTree( array( 'ClassFilterType' => 'include', 'ClassFilterArray' => $classID, 'Depth' => $depth, ), $parentNodeID );
 
    print("Deleting " . count($nodeArray) . " nodes. If that is not what you want it would be good to press ctrl-c now.. deleting starts in 20 seconds!!\n\n");
     sleep(20);
 
     $deletecount = 0;
    $deleteIDArray = array();
 
     foreach ( $nodeArray as $node )
    {
        print("Deleting node " . $node->attribute( 'main_node_id' ) . ' , "' . $node->attribute( 'url_alias' ) . "'\n");
        eZContentObjectTreeNode::removeSubtrees( array( $node->attribute( 'main_node_id' ) ), false );
        $deletecount++;
        print("$deletecount, ");
    }
}
 
$cli =& eZCLI::instance();
 
// change the admin-password! see below ...
 
$script =& eZScript::instance( array( 'description' => ( "delete nodes ...\n\n"."delete main nodes ...,\n" ),
'use-session' => false,
'use-modules' => true,
'use-extensions' => true,
'user' => array ( 'login' => 'admin', 'password' => 'ADMINPASS' ),
) );
 
$script->startup();
$options = $script->getOptions();
 
$script->initialize();
set_time_limit( 0 );
 
 
// 'deleteNodes' function, used to remove all nodes under passed node_id
// example usage of 'deleteNodes' function: deleteNodes( $classID, $parentNodeID, $depth )
 
deleteNodes( array( 'article' ), 6713, 10 );
 
?>