cronjobs hide /unhide

Author Message

Jorge estévez

Wednesday 17 February 2010 5:35:53 am

Hello,

I am trying to make an unHide cronjob so I made some changes for unhide.php based on the hide.php as follows (I added comments to the changed lines), please also check my other comment at http://share.ez.no/forums/developer/cronjobs-hide-unhide

<code>

<?php
//
// Created on: <21-Jan-05 16:00:52 kk>
//
// SOFTWARE NAME: eZ publish
// SOFTWARE RELEASE: 3.10.0
// BUILD VERSION: 20254
// COPYRIGHT NOTICE: Copyright (C) 1999-2007 eZ systems AS
// SOFTWARE LICENSE: GNU General Public License v2.0
// NOTICE: >
// This program is free software; you can redistribute it and/or
// modify it under the terms of version 2.0 of the GNU General
// Public License as published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of version 2.0 of the GNU General
// Public License along with this program; if not, write to the Free
// Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
// MA 02110-1301, USA.
//
//
/*! \file hide.php
*/
include_once( "kernel/classes/ezcontentobjecttreenode.php" );
include_once( "lib/ezutils/classes/ezini.php" );
$ini =& eZINI::instance( 'content.ini' );
$rootNodeIDList = $ini->variable( 'HideSettings','RootNodeList' );
$hideAttributeArray = $ini->variable( 'HideSettings', 'HideDateAttributeList' );
$hideClasses = array_keys( $hideAttributeArray );
$currrentDate = time();
$offset = 0;
$limit = 20;
foreach( $rootNodeIDList as $nodeID )
{
$rootNode = eZContentObjectTreeNode::fetch( $nodeID );
while( true )
{
$nodeArray =& $rootNode->subTree( array( 'ClassFilterType' => 'include',
'ClassFilterArray' => $hideClasses,
'Offset' => $offset,
'Limit' => $limit ) );
if ( !$nodeArray ||
count( $nodeArray ) == 0 )
{
break;
}
$offset += $limit;
foreach ( array_keys( $nodeArray ) as $key )
{
$node =& $nodeArray[$key];
$dataMap =& $node->attribute( 'data_map' );
$dateAttributeName = $hideAttributeArray[$node->attribute( 'class_identifier' )];
if ( !$dateAttributeName )
{
continue;
}
$dateAttribute =& $dataMap[$dateAttributeName];
if ( is_null( $dateAttribute ) || !$dateAttribute->hasContent() )
{
continue;
}
$date = $dateAttribute->content();
$retractDate = $date->attribute( 'timestamp' );

///////////////////////// changed !$node->attribute( 'is_hidden' ) to $node->attribute( 'is_hidden' )
if ( $retractDate > 0 && $retractDate < $currrentDate && $node->attribute( 'is_hidden' ) )
{
///////////////////////// changed hideSubTree to unhideSubTree
eZContentObjectTreeNode::unhideSubTree( $node );
if ( !$isQuiet )
{
$cli->output( 'unHiding node : ' . $node->attribute( 'node_id' ) );
}
}
}
}
}
?>
?>

</code>

It's a project using ezp 3.10 version!

Q: Could this work for me (please take a look at http://share.ez.no/forums/developer/cronjobs-hide-unhide) ?

Thanks

Diseño Web Cuba
Web Design Cuba
www.elfosdesign.com

Jorge estévez

Wednesday 17 February 2010 7:13:25 am

Hello again,

I got deeper and made some slight changes to the unhide.php specially:

if ( $retractDate > 0 && $currrentDate > $retractDate )

I have unhide.php running, but I encountered a problem: While searching for nodes It does not consider a hidded nodes, I need to take those hidden nodes into consideration (in fact those are the ones I need to process) cause the main issue here is to unhide them....
I assume that this is where I need to make changes to include hidden nodes:

$nodeArray =& $rootNode->subTree( array( 'ClassFilterType' => 'include',
'ClassFilterArray' => $unhideClasses,
'Offset' => $offset,
'Limit' => $limit ) );

How?
I need some help... thanks

Diseño Web Cuba
Web Design Cuba
www.elfosdesign.com

Jorge estévez

Wednesday 17 February 2010 7:51:34 am

I added:

<code>

$fetchHidden = true;

$nodeArray =& $rootNode->subTree( array( 'ClassFilterType' => 'include',
'ClassFilterArray' => $unhideClasses,
'Offset' => $offset,
'Limit' => $limit,
'FetchHidden' => $fetchHidden ) );

</code>

Hidden nodes are not fetched...

Diseño Web Cuba
Web Design Cuba
www.elfosdesign.com

SEBBANE Alexandre

Wednesday 17 February 2010 1:49:01 pm

Hello,

there already something about unhide .

check here http://www.mugo.ca/Products/Hide-Until-Date

Paris, France

Georg Franz

Thursday 18 February 2010 2:03:24 am

Hi,

the hide cronjob is useless for big sites, see bug report: http://issues.ez.no/IssueView.php?Id=14831&activeItem=1

Best wishes,
Georg.

--
http://www.schicksal.com Horoskop website which uses eZ Publish since 2004

Jorge estévez

Friday 19 February 2010 8:16:36 am

Hello,

I think I have the solution, I have posted all at http://issues.ez.no/IssueView.php?Id=14831& the scripts to hide and unhide nodes and it's childs.

Thanks to all...

I think it will work for versions 3.10+

Diseño Web Cuba
Web Design Cuba
www.elfosdesign.com

Powered by eZ Publish™ CMS Open Source Web Content Management. Copyright © 1999-2014 eZ Systems AS (except where otherwise noted). All rights reserved.

eZ debug

Timing: Jan 18 2025 02:13:44
Script start
Timing: Jan 18 2025 02:13:44
Module start 'layout'
Timing: Jan 18 2025 02:13:44
Module start 'content'
Timing: Jan 18 2025 02:13:45
Module end 'content'
Timing: Jan 18 2025 02:13:45
Script end

Main resources:

Total runtime1.6124 sec
Peak memory usage4,096.0000 KB
Database Queries69

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0180 589.0234152.6094
Module start 'layout' 0.01800.0034 741.632839.4141
Module start 'content' 0.02141.5895 781.0469632.1719
Module end 'content' 1.61090.0015 1,413.218820.1875
Script end 1.6124  1,433.4063 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00330.2021160.0002
Check MTime0.00130.0824160.0001
Mysql Total
Database connection0.00600.373910.0060
Mysqli_queries1.504093.2721690.0218
Looping result0.00080.0481670.0000
Template Total1.568797.320.7843
Template load0.00190.117920.0010
Template processing1.566897.167420.7834
Template load and register function0.00030.021510.0003
states
state_id_array0.00110.069510.0011
state_identifier_array0.00100.064120.0005
Override
Cache load0.00210.13221320.0000
Sytem overhead
Fetch class attribute can translate value0.00060.035930.0002
Fetch class attribute name0.00230.143080.0003
XML
Image XML parsing0.00180.113330.0006
class_abstraction
Instantiating content class attribute0.00000.001380.0000
General
dbfile0.00160.0984220.0001
String conversion0.00000.000640.0000
Note: percentages do not add up to 100% because some accumulators overlap

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
6content/datatype/view/ezxmltext.tpl<No override>extension/community_design/design/suncana/templates/content/datatype/view/ezxmltext.tplEdit templateOverride template
12content/datatype/view/ezxmltags/paragraph.tpl<No override>extension/ezwebin/design/ezwebin/templates/content/datatype/view/ezxmltags/paragraph.tplEdit templateOverride template
5content/datatype/view/ezxmltags/line.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/line.tplEdit templateOverride template
2content/datatype/view/ezimage.tpl<No override>extension/sevenx/design/simple/templates/content/datatype/view/ezimage.tplEdit templateOverride template
1content/datatype/view/ezxmltags/link.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/link.tplEdit templateOverride template
1print_pagelayout.tpl<No override>extension/community/design/community/templates/print_pagelayout.tplEdit templateOverride template
 Number of times templates used: 28
 Number of unique templates used: 7

Time used to render debug report: 0.0001 secs