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()); } }
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; }
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; } }