for ($i=1; $i<=$iterationsLimit; $i++) { $results = $db->arrayQuery($sql); if (count($results) <= 0) { break; } // construct ids table with all ezpending id and $nodeList with all node to clear from varnish side $ids = array(); $nodeList = array(); foreach ($results as $result) { $ids[] = $result["id"]; $nodeList[$result['param_int']][] = $result['param']; } foreach ($nodeList as $key => $item) { $nodeList[$key] = array_unique($nodeList[$key]); } // clear varnish for all node id $varnishControl = new VarnishControl(); $varnishControl->banNodes($nodeList); $sqlDelete = sprintf("DELETE FROM ezpending_actions WHERE id IN (%s)", implode(',', $ids)); $db->query($sqlDelete); $cli->output("Removed $clearLimit items, $i/$iterationsLimit"); sleep(1); }
catch (Exception $e) { $cli->output($e->getMessage()); } } //get XML $xml = getXML(); if(!empty($xml)) { //fetch objects parent node /* @type $parentObject eZContentObject */ /* @type $parentNode eZContentObjectTreeNode */ $parentObject = eZContentObject::fetchByRemoteID( 'congress_report_rss_folder' ); $parentNode = $parentObject->mainNode(); //delete parent node childrens deleteNodes($parentNode); //convert XML string into eZ Publish objects XMLToHTMLObjects($parentNode, $xml); //clear homepage varnish cache $varnishControl = new VarnishControl(); $varnishControl->banNodes($parentNode->attribute('parent_node_id')); //clear parent view cache eZContentCacheManager::clearObjectViewCache( $parentObject->attribute('id'), true ); }