Forums / General / Empty a very big trash

Empty a very big trash

Author Message

Guillaume Kulakowski

Thursday 03 February 2011 8:52:22 am

Hi,

is there a script to empty a very large trash ? There is no option for that in flatten...

Thx

My blog : http://www.llaumgui.com (not in eZ Publish ;-))
eZC on RHEL : http://blog.famillecollet.com/pages/Config-en
eZC on Fedora : just "yum install php-channel-ezc"

Ivo Lukac

Thursday 03 February 2011 9:15:36 am

Oh yea :)

#!/usr/bin/env php
<?php
set_time_limit( 0 );
require 'autoload.php';
$cli = eZCLI::instance();
$script = eZScript::instance( array( 'debug-message' => '', 'description' => ( "Empty trash" ), 'use-session' => false, 'use-modules' => true,  'use-extensions' => true ) );
$script->startup();
$options = $script->getOptions();
$script->initialize();
$script->setIterationData( '.', '~' );
$user = eZUser::fetch( 14 );
if ( !$user )    $script->shutdown( 1 );
eZUser::setCurrentlyLoggedInUser( $user, 14 );
eZExecution::registerShutdownHandler();
$db = eZDB::instance();
$def = eZContentObject::definition();
$conds = array( 'status' => eZContentObject::STATUS_ARCHIVED );
$count = eZPersistentObject::count( $def, $conds, 'id' );
$script->resetIteration( $count );
$offset=0;
$limit=1000;
$objectList = eZPersistentObject::fetchObjectList( $def,  null, $conds, null, array( 'offset' => $offset, 'length' => $limit ),true );
while (count($objectList)) {    
 $db->begin();
 foreach ( $objectList as $object ){        
  $object->purge();        
  $script->iterate( $cli, true );
 }    
 $db->commit();
 $offset=$offset + $limit;
 $objectList = eZPersistentObject::fetchObjectList( $def,  null, $conds, null, array( 'offset' => $offset, 'length' => $limit ),true );
}
$script->shutdown();
?>

http://www.linkedin.com/in/ivolukac
http://www.netgen.hr/eng/blog
http://twitter.com/ilukac

Damien Pobel

Thursday 03 February 2011 12:38:23 pm

There's another script in the last comment of this issue : http://issues.ez.no/10827

Cheers

Damien
Planet eZ Publish.fr : http://www.planet-ezpublish.fr
Certification : http://auth.ez.no/certification/verify/372448
Publications about eZ Publish : http://pwet.fr/tags/keywords/weblog/ez_publish

Marko Žmak

Saturday 05 February 2011 8:03:02 am

I think that the "right" way to fetch the trash nodes for iteration is this:

$objectList = eZContentObjectTrashNode::trashList( array( 'Limit' => $limit, 'Offset' => $offset ) ) ;

Besides being the right way of doing it I believe there's also a slight performance difference. Fetching trash nodes with eZContentObjectTrashNode::trashList() should be faster.

--
Nothing is impossible. Not if you can imagine it!

Hubert Farnsworth

eZ debug

Timing: Jan 17 2025 23:53:06
Script start
Timing: Jan 17 2025 23:53:06
Module start 'content'
Timing: Jan 17 2025 23:53:07
Module end 'content'
Timing: Jan 17 2025 23:53:07
Script end

Main resources:

Total runtime0.7995 sec
Peak memory usage4,096.0000 KB
Database Queries202

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0062 589.0313180.8594
Module start 'content' 0.00620.6571 769.8906657.0859
Module end 'content' 0.66330.1361 1,426.9766337.3906
Script end 0.7994  1,764.3672 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00430.5318210.0002
Check MTime0.00150.1929210.0001
Mysql Total
Database connection0.00080.095710.0008
Mysqli_queries0.696687.13272020.0034
Looping result0.00230.28392000.0000
Template Total0.775397.020.3877
Template load0.00200.255420.0010
Template processing0.773396.724920.3866
Template load and register function0.00030.031510.0003
states
state_id_array0.00080.099710.0008
state_identifier_array0.00110.131620.0005
Override
Cache load0.00170.2170210.0001
Sytem overhead
Fetch class attribute can translate value0.00100.121450.0002
Fetch class attribute name0.00090.117780.0001
XML
Image XML parsing0.01071.334650.0021
class_abstraction
Instantiating content class attribute0.00000.001580.0000
General
dbfile0.02082.6028490.0004
String conversion0.00000.000830.0000
Note: percentages do not add up to 100% because some accumulators overlap

CSS/JS files loaded with "ezjscPacker" during request:

CacheTypePacklevelSourceFiles
CSS0extension/community/design/community/stylesheets/ext/jquery.autocomplete.css
extension/community_design/design/suncana/stylesheets/scrollbars.css
extension/community_design/design/suncana/stylesheets/tabs.css
extension/community_design/design/suncana/stylesheets/roadmap.css
extension/community_design/design/suncana/stylesheets/content.css
extension/community_design/design/suncana/stylesheets/star-rating.css
extension/community_design/design/suncana/stylesheets/syntax_and_custom_tags.css
extension/community_design/design/suncana/stylesheets/buttons.css
extension/community_design/design/suncana/stylesheets/tweetbox.css
extension/community_design/design/suncana/stylesheets/jquery.fancybox-1.3.4.css
extension/bcsmoothgallery/design/standard/stylesheets/magnific-popup.css
extension/sevenx/design/simple/stylesheets/star_rating.css
extension/sevenx/design/simple/stylesheets/libs/fontawesome/css/all.min.css
extension/sevenx/design/simple/stylesheets/main.v02.css
extension/sevenx/design/simple/stylesheets/main.v02.res.css
JS0extension/ezjscore/design/standard/lib/yui/3.17.2/build/yui/yui-min.js
extension/ezjscore/design/standard/javascript/jquery-3.7.0.min.js
extension/community_design/design/suncana/javascript/jquery.ui.core.min.js
extension/community_design/design/suncana/javascript/jquery.ui.widget.min.js
extension/community_design/design/suncana/javascript/jquery.easing.1.3.js
extension/community_design/design/suncana/javascript/jquery.ui.tabs.js
extension/community_design/design/suncana/javascript/jquery.hoverIntent.min.js
extension/community_design/design/suncana/javascript/jquery.popmenu.js
extension/community_design/design/suncana/javascript/jScrollPane.js
extension/community_design/design/suncana/javascript/jquery.mousewheel.js
extension/community_design/design/suncana/javascript/jquery.cycle.all.js
extension/sevenx/design/simple/javascript/jquery.scrollTo.js
extension/community_design/design/suncana/javascript/jquery.cookie.js
extension/community_design/design/suncana/javascript/ezstarrating_jquery.js
extension/community_design/design/suncana/javascript/jquery.initboxes.js
extension/community_design/design/suncana/javascript/app.js
extension/community_design/design/suncana/javascript/twitterwidget.js
extension/community_design/design/suncana/javascript/community.js
extension/community_design/design/suncana/javascript/roadmap.js
extension/community_design/design/suncana/javascript/ez.js
extension/community_design/design/suncana/javascript/ezshareevents.js
extension/sevenx/design/simple/javascript/main.js

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1node/view/full.tplfull/forum_topic.tplextension/sevenx/design/simple/override/templates/full/forum_topic.tplEdit templateOverride template
4content/datatype/view/ezimage.tpl<No override>extension/sevenx/design/simple/templates/content/datatype/view/ezimage.tplEdit templateOverride template
4content/datatype/view/ezxmltext.tpl<No override>extension/community_design/design/suncana/templates/content/datatype/view/ezxmltext.tplEdit templateOverride template
5content/datatype/view/ezxmltags/paragraph.tpl<No override>extension/ezwebin/design/ezwebin/templates/content/datatype/view/ezxmltags/paragraph.tplEdit templateOverride template
2content/datatype/view/ezxmltags/literal.tpl<No override>extension/community/design/standard/templates/content/datatype/view/ezxmltags/literal.tplEdit templateOverride template
1content/datatype/view/ezxmltags/link.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/link.tplEdit templateOverride template
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 18
 Number of unique templates used: 7

Time used to render debug report: 0.0002 secs