Example #1
0
 protected function _setPriority()
 {
     if (!($parent_id = $this->getParentId())) {
         $parent_id = lmbCmsDocument::findRoot()->getId();
     }
     $sql = "SELECT MAX(priority) FROM " . $this->_db_table_name . " WHERE parent_id = " . $parent_id;
     $max_priority = lmbDBAL::fetchOneValue($sql);
     $this->setPriority($max_priority + 10);
 }
 function testDispatch_FoundInDb()
 {
     $document = $this->_createDocument('news', lmbCmsDocument::findRoot());
     $document->setIsPublished(1);
     $document->save();
     $result = $this->_createDispatcher();
     $this->assertEqual($result['controller'], 'document');
     $this->assertEqual($result['action'], 'item');
     $this->assertEqual($result['id'], $document->getId());
 }
 function doDisplay()
 {
     if (!($id = $this->request->getInteger('id'))) {
         $this->is_root = true;
         $criteria = new lmbSQLCriteria('parent_id > 0');
         $criteria->addAnd(new lmbSQLCriteria('level = 1'));
         $this->item = lmbCmsDocument::findRoot();
     } else {
         $this->is_root = false;
         if (!($this->item = $this->_getObjectByRequestedId())) {
             return $this->forwardTo404();
         }
         $criteria = new lmbSQLCriteria('parent_id = ' . $this->item->getId());
     }
     $this->items = lmbActiveRecord::find($this->_object_class_name, array('criteria' => $criteria, 'sort' => array('priority' => 'ASC')));
     $this->_applySortParams();
 }
 protected function _generateDocument($identifier, $parent_document = false)
 {
     $document = new lmbCmsDocument();
     $document->setIdentifier($identifier);
     $document->setTitle('title_' . microtime(true));
     $document->setContent('content_' . microtime(true));
     if (!$parent_document) {
         $parent_document = lmbCmsDocument::findRoot();
     }
     $document->setParent($parent_document);
     return $document;
 }
 function dispatch($request)
 {
     $path = $request->getUriPath();
     if ($path == '/') {
         return;
     }
     if (!($document = lmbCmsDocument::findByUri($path))) {
         return;
     }
     if (!$document->getIsPublished()) {
         if (lmbToolkit::instance()->isWebAppDebugEnabled()) {
             throw new lmbException('Page not published');
         } else {
             return;
         }
     }
     return array('controller' => 'document', 'action' => 'item', 'id' => $document->getId());
 }
Example #6
0
 /**
  * @param string $identifier
  * @return lmbCmsDocument
  */
 function _createDocument($identifier = false, $parent_document = false)
 {
     $this->identifier++;
     if (!$identifier) {
         $identifier = 'identifier_' . microtime(true) . $this->identifier;
     }
     $document = new lmbCmsDocument();
     $document->setIdentifier($identifier);
     $document->setTitle('title_' . microtime(true));
     $document->setContent('content_' . microtime(true));
     if (!$parent_document) {
         $parent_document = lmbCmsDocument::findRoot();
     }
     $document->setParent($parent_document);
     $document->save();
     return $document;
 }
 function testGetParents()
 {
     $root = lmbCmsDocument::findRoot();
     $parent1 = $this->_createDocument('parent1', $root);
     $parent2 = $this->_createDocument('parent2', $root);
     $parent3 = $this->_createDocument('parent3', $root);
     $child_1_1 = $this->_createDocument('child_1_1', $parent1);
     $child_1_2 = $this->_createDocument('child_1_2', $parent1);
     $child_2_1 = $this->_createDocument('child_2_1', $parent2);
     $child_2_2 = $this->_createDocument('child_2_2', $parent2);
     $child_2_3 = $this->_createDocument('child_2_3', $parent2);
     $child_3_1 = $this->_createDocument('child_3_1', $parent3);
     $child_3_2 = $this->_createDocument('child_3_2', $parent3);
     $child_2_2_1 = $this->_createDocument('child_2_2_1', $child_2_2);
     $child_2_2_2 = $this->_createDocument('child_2_2_2', $child_2_2);
     $child_2_2_3 = $this->_createDocument('child_2_2_3', $child_2_2);
     $child_2_2_4 = $this->_createDocument('child_2_2_4', $child_2_2);
     $child_2_2_3_1 = $this->_createDocument('child_2_2_3_1', $child_2_2_3);
     $child_2_2_3_2 = $this->_createDocument('child_2_2_3_2', $child_2_2_3);
     $child_2_2_3_3 = $this->_createDocument('child_2_2_3_3', $child_2_2_3);
     $assert = array($root['id'], $parent2['id'], $child_2_2['id']);
     foreach ($child_2_2_3->getParents() as $node) {
         $this->assertTrue(in_array($node['id'], $assert));
         $this->assertEqual('lmbCmsDocument', get_class($node));
     }
 }