Ejemplo n.º 1
0
 public function archivesAction()
 {
     $this->init();
     $arcUrl = $this->params('arc');
     $arc = new \ATPComic\Model\Arc();
     $arcs = $arc->loadMultiple(array('where' => !empty($arcUrl) ? "url = ?" : "parent_arc_id is null OR parent_arc_id = 0", 'orderBy' => 'sort_order ASC', 'data' => !empty($arcUrl) ? array($arcUrl) : array()));
     return new \Zend\View\Model\ViewModel(array('arcs' => $arcs));
 }
 public function __invoke()
 {
     $arcId = $this->getView()->siteParam('comic-default-arc');
     $arc = new \ATPComic\Model\Arc();
     $arc->loadById($arcId);
     $node = $arc->firstNode();
     return $this->getView()->url('comic/page', $node->getRoutingData());
 }
Ejemplo n.º 3
0
 public function postSave()
 {
     if (isset($this->arcAssignments)) {
         $newArcIds = $this->arcAssignments;
         $nodes = (array) $this->getNodes();
         //Determine nodes to delete
         $nodesToDelete = array_filter($nodes, function ($node) use($newArcIds) {
             return !in_array($node->arcId, $newArcIds);
         });
         //Determine arcs to add
         $arcsToAdd = array_filter($newArcIds, function ($id) use($nodes) {
             foreach ($nodes as $node) {
                 if ($node->arcId == $id) {
                     return false;
                 }
             }
             return true;
         });
         //Delete unneeded nodes
         foreach ($nodesToDelete as $node) {
             //Delete the node
             $node->delete();
             //Update page numbers on subsequent pages
             $db = $node->getAdapter();
             $sql = "UPDATE atpcomic_nodes SET page_number = page_number-1 WHERE page_number > ? AND arc_id = ?";
             $db->query($sql, array($node->pageNumber, $node->arcId));
         }
         //Add new arcs
         foreach ($arcsToAdd as $arcId) {
             //Get the last node in the arc
             $arc = new \ATPComic\Model\Arc();
             $arc->loadById($arcId);
             $lastNode = $arc->lastNode(false);
             $newNode = new \ATPComic\Model\Node();
             $newNode->arc = $arc;
             $newNode->page = $this;
             $newNode->pageNumber = $lastNode ? $lastNode->pageNumber + 1 : 1;
             $newNode->isActive = $this->isActive;
             $newNode->save();
         }
     }
     //Update active flag on nodes
     foreach ($this->getNodes() as $node) {
         $node->isActive = $this->isActive;
         $node->save();
     }
 }