Example #1
0
 /**
  * @param Page $page
  */
 protected function ensureOrderByDate($page)
 {
     $items = $page->getParentDocument()->getChildren();
     $itemsByDate = array();
     /** @var $item Page */
     foreach ($items as $item) {
         $itemsByDate[$item->getDate()->format('U')][$item->getPublishStartDate()->format('U')][] = $item;
     }
     if ('asc' == $this->sortOrder) {
         ksort($itemsByDate);
     } else {
         krsort($itemsByDate);
     }
     $sortedItems = array();
     foreach ($itemsByDate as $itemsForDate) {
         if ('asc' == $this->sortOrder) {
             ksort($itemsForDate);
         } else {
             krsort($itemsForDate);
         }
         foreach ($itemsForDate as $itemsForPublishDate) {
             foreach ($itemsForPublishDate as $item) {
                 $sortedItems[$item->getName()] = $item;
             }
         }
     }
     if ($sortedItems !== $items->getKeys()) {
         $items->clear();
         foreach ($sortedItems as $key => $item) {
             $items[$key] = $item;
         }
     }
 }