예제 #1
0
 public static function getMainList($documentId, $moduleName, $page = 1, $filter = null)
 {
     try {
         if ($moduleName == "Tag") {
             $moduleName = "Admin";
         }
         $mainList = XMLParser::getXMLdataValues(sfConfig::get('sf_root_dir') . "/apps/backend/modules/" . strtolower($moduleName) . "/config/mainList.xml");
         $displayedObjects = array();
         foreach ($mainList as $obj) {
             if ($obj['tag'] == 'OBJECT' && $obj['type'] == 'complete') {
                 $displayedObjects[] = $obj['value'];
             }
         }
         $c = new Criteria();
         if (empty($filter)) {
             if ($documentId > 0) {
                 $context = sfContext::getInstance();
                 $user = $context->getUser();
                 $user->setAttribute('search_keys', false);
                 $owner = $user->getSubscriber();
                 $ownerId = $owner->getId();
                 /*if($owner->getType() != "admin")
                 		{
                 			$c->addJoin(RelationPeer::ID2, DocumentPeer::ID, Criteria::LEFT_JOIN );
                 			$c->add(DocumentPeer::DOCUMENT_AUTHOR, $ownerId);
                 		}*/
                 $pager = new sfPropelPager("Relation", 50);
                 $c->add(RelationPeer::ID1, $documentId);
                 $c->add(RelationPeer::DOCUMENT_MODEL2, $displayedObjects, Criteria::IN);
                 $c->addAscendingOrderByColumn(RelationPeer::SORT_ORDER);
             } else {
                 $results['children'] = null;
                 $results['pager'] = null;
                 return $results;
             }
         } else {
             BackendFilters::$filter($c, $pager);
             if (!is_object($pager)) {
                 $pager = new sfPropelPager($pager, 50);
             }
         }
         if (get_class($c) == "Criteria") {
             $pager->setCriteria($c);
         } else {
             $pager->setResults($c);
         }
         $pager->setPage($page);
         $pager->init();
         if (empty($filter)) {
             foreach ($pager->getResults() as $relation) {
                 $id = $relation->getId2();
                 $children[] = Document::getDocumentInstance($id);
             }
         } else {
             $children = $pager->getResults();
         }
         $results['children'] = $children;
         $results['pager'] = $pager;
         return $results;
     } catch (Exception $e) {
         exit($e->getMessage());
     }
 }
예제 #2
0
파일: UtilsHelper.php 프로젝트: kotow/work
 public static function pager($model, $criteria = null, $limit = 10)
 {
     $request = sfContext::getInstance()->getRequest();
     $pager = new sfPropelPager($model, $limit);
     if (is_array($criteria)) {
         $pager->setResults($criteria);
     } else {
         if (is_null($criteria)) {
             $criteria = new Criteria();
         }
         $pager->setCriteria($criteria);
     }
     $request = sfContext::getInstance()->getRequest();
     $pager->setPage($request->getParameter('page'));
     $pager->init();
     return $pager;
 }
예제 #3
0
 public static function getMainList(&$documentId, $moduleName, $page = 1)
 {
     $moduleName = strtolower($moduleName);
     try {
         if ($moduleName == "settings") {
             $settingsArr = array();
             if (is_readable(sfConfig::get('sf_root_dir') . "/config/settings.xml")) {
                 $objects = XMLParser::getXMLdataValues(sfConfig::get('sf_root_dir') . "/config/settings.xml");
             }
             foreach ($objects as $obj) {
                 if ($obj['tag'] == 'ELEMENT' && $obj['type'] == 'open') {
                     $objName = $obj['attributes']['LABEL'];
                     $objDescription = $obj['attributes']['DESCRIPTION'];
                 }
                 if ($obj['tag'] == 'ITEM' && $obj['type'] == 'complete') {
                     //$val = $obj['attributes']['VALUE'];
                     $settingName = $objName;
                     //$settingName = strtolower($objName);
                     $settingsArr[$settingName] = $objDescription;
                 }
             }
             $pager = new sfPropelPager("Relation", 20);
             $pager->setResults($settingsArr);
             $pager->setPage($page);
             $pager->init();
             foreach ($pager->getResults() as $name => $label) {
                 $res['children'][$name] = $label;
             }
             $res['paging'] = $pager->paging(true);
             return $res;
         }
         if ($moduleName == "labels") {
             $localesArr = array();
             if (is_readable(sfConfig::get('sf_root_dir') . "/config/locales.xml")) {
                 $objects = XMLParser::getXMLdataValues(sfConfig::get('sf_root_dir') . "/config/locales.xml");
                 foreach ($objects as $obj) {
                     if ($obj['tag'] == 'LOCALE' && $obj['type'] == 'open') {
                         $objName = $obj['attributes']['LABEL'];
                         if ($obj['attributes']['DESCRIPTION']) {
                             $objDescription = $obj['attributes']['DESCRIPTION'];
                         } else {
                             $objDescription = '[' . $obj['attributes']['LABEL'] . ']';
                         }
                     }
                     if ($obj['tag'] == 'ITEM' && $obj['type'] == 'complete') {
                         //$val = $obj['attributes']['VALUE'];
                         $localeName = $objName;
                         //$localeName = strtolower($objName);
                         $localesArr[$localeName] = $objDescription;
                     }
                 }
             }
             $pager = new sfPropelPager("Relation", 20);
             $pager->setResults($localesArr);
             $pager->setPage($page);
             $pager->init();
             foreach ($pager->getResults() as $name => $label) {
                 $res['children'][$name] = $label;
             }
             $res['paging'] = $pager->paging(true);
             return $res;
         }
         $mainList = XMLParser::getXMLdataValues(sfConfig::get('sf_root_dir') . "/apps/panel/modules/" . $moduleName . "/config/mainList.xml");
         $displayedObjects = array();
         $rootId = null;
         foreach ($mainList as $obj) {
             if ($obj['tag'] == 'OBJECT' && $obj['type'] == 'complete') {
                 $displayedObjects[] = $obj['value'];
             }
             // check overwrite RootID
             if ($obj['tag'] == 'OBJECTS' && $obj['type'] == 'open') {
                 if (array_key_exists("attributes", $obj) && array_key_exists("PARENT", $obj['attributes'])) {
                     $rootName = $obj['attributes']['PARENT'];
                     $rootDocument = Rootfolder::getRootfolderByModule($rootName);
                     if ($rootDocument) {
                         $rootId = $rootDocument->getId();
                     }
                 }
                 if (array_key_exists("attributes", $obj) && array_key_exists("TAG", $obj['attributes'])) {
                     $tag = $obj['attributes']['TAG'];
                     $rootDocument = Document::getDocumentByExclusiveTag($tag);
                     if ($rootDocument) {
                         $rootId = $rootDocument->getId();
                     }
                 }
             }
         }
         $children = array();
         $res = array('children' => array(), 'paging' => '');
         $c = new Criteria();
         if (!$documentId) {
             if ($rootId) {
                 $documentId = $rootId;
             } else {
                 $document = Rootfolder::getRootfolderByModule($moduleName);
                 if ($document) {
                     $documentId = $document->getId();
                 }
             }
         }
         //echo "rootId = $rootId; moduleName = $moduleName;";
         if ($documentId) {
             $pager = new sfPropelPager("Relation", 20);
             $c->add(RelationPeer::ID1, $documentId);
             $c->add(RelationPeer::DOCUMENT_MODEL2, $displayedObjects, Criteria::IN);
             $c->addAscendingOrderByColumn(RelationPeer::SORT_ORDER);
             $pager->setCriteria($c);
             $pager->setPage($page);
             $pager->init();
             foreach ($pager->getResults() as $relation) {
                 $id = $relation->getId2();
                 $res['children'][] = Document::getDocumentInstance($id);
             }
         }
         $res['paging'] = $pager->paging(true);
         return $res;
     } catch (Exception $e) {
         throw $e;
     }
 }