Удаление заказов по выборке средствами API и работы с объектами — различия между версиями
Материал из Umicms
Mad grant (обсуждение | вклад) |
Mad grant (обсуждение | вклад) |
||
Строка 5: | Строка 5: | ||
Для этого необходимо написать следующий кастом, откроем ~\clases\modules\custom.php. и поместим в него код: | Для этого необходимо написать следующий кастом, откроем ~\clases\modules\custom.php. и поместим в него код: | ||
− | + | <source="php">public function delOrders($m=0,$y=0){ | |
− | public function delOrders($m=0,$y=0){ | ||
$orders = new selector('objects'); | $orders = new selector('objects'); | ||
$objectsCollection = umiObjectsCollection::getInstance(); | $objectsCollection = umiObjectsCollection::getInstance(); | ||
Строка 25: | Строка 24: | ||
} | } | ||
return "done"; | return "done"; | ||
− | } | + | }</source="php"> |
где m и y это месяц и год соответственно. | где m и y это месяц и год соответственно. |
Версия 11:14, 30 октября 2012
Так как в административной панели удаление заказов возможно только вручную, при накоплении нескольких тысяч заказов, их удаление будет проблематичным.
В качестве примера, рассмотрим как произвести удаление всех заказов, сделанных ранее заданного года и месяца. Для этого необходимо написать следующий кастом, откроем ~\clases\modules\custom.php. и поместим в него код:
<source="php">public function delOrders($m=0,$y=0){
$orders = new selector('objects'); $objectsCollection = umiObjectsCollection::getInstance(); $orders->types('object-type')->name('emarket','order'); foreach($orders as $order){ $date=$order->order_date; echo $order->id."
"; $parsDate=explode('-',$date); if(($parsDate[0]<$y)){ $objectsCollection->delObject($order->id); } if(($parsDate[1]<$m)){ $objectsCollection->delObject($order->id); } if((!$parsDate[0])&&(!$parsDate[1])){ $objectsCollection->delObject($order->id); } } return "done"; }</source="php">
где m и y это месяц и год соответственно.