/** * description * * @return Schema * * @param string $uri * */ public static function retrieveByUri($uri) { $criteria = new Criteria(); $criteria->add(self::URI, $uri); $criteria->addOr(self::URI, $uri . "#"); $criteria->addOr(self::URI, $uri . "/"); return self::doSelectOne($criteria); }
function createSearchCriteria($phrase, $where = false) { $c = new Criteria(); if ($phrase) { $rawPhrase = addslashes($phrase); $phrase = strtr($phrase, '+-><()~*"', ' '); $words = preg_split("#\\s+#", $phrase); $booleanOperator = Config::get("searchEngineWordDefaultOperator") == "AND" ? "+" : ""; $phrase = $booleanOperator . implode(" " . $booleanOperator, $words); $phrase = addslashes($phrase); $searchEngineSearchInFields = explode("|", Config::get("searchEngineSearchIn")); $fullTextSearchFields = array("siteTitle", "description"); $searchInFields = ""; foreach ($fullTextSearchFields as $field) { if (in_array($field, $searchEngineSearchInFields)) { if ($searchInFields) { $searchInFields .= ", "; } $searchInFields .= $field; } } if ($searchInFields) { $cc = new Criteria(); $cc->add("MATCH ({$searchInFields}) AGAINST ('{$phrase}' IN BOOLEAN MODE)"); $searchEngineLikeMethodEnabled = Config::get('searchEngineLikeMethodEnabled'); $searchEngineLikeMethodWordMinLength = Config::get('searchEngineLikeMethodWordMinLength'); $searchEngineLikeMethodWordMaxLength = Config::get('searchEngineLikeMethodWordMaxLength'); if ($searchEngineLikeMethodEnabled) { $conjunction = Config::get("searchEngineWordDefaultOperator") == 'AND' ? 'AND' : 'OR'; foreach ($words as $word) { $strlen = strlen($word); if ($strlen <= $searchEngineLikeMethodWordMaxLength && $strlen >= $searchEngineLikeMethodWordMinLength) { foreach ($fullTextSearchFields as $field) { if (in_array($field, $searchEngineSearchInFields)) { $cc->add($field, "%" . str_replace(array("%", "?"), "", $word) . "%", "LIKE", $conjunction); } } } } } if (in_array("url", $searchEngineSearchInFields)) { $cc->addOr("LOCATE( '{$rawPhrase}', url ) > 0 "); } $c->add($cc); } } if ($where) { $rawWhere = addslashes($where); $c2 = new Criteria(); $c2->addOr("LOCATE( '{$rawWhere}', address ) > 0 "); $c2->addOr("LOCATE( '{$rawWhere}', city ) > 0 "); $c2->addOr("LOCATE( '{$rawWhere}', zipCode ) > 0 "); $c->add($c2); } return $c; }
/** * description * * @return return_type * @param var_type $var */ public static function retrieveByUri($uri) { $con = Propel::getConnection(self::DATABASE_NAME); $criteria = new Criteria(VocabularyPeer::DATABASE_NAME); $criteria->add(self::URI, $uri); $criteria->addOr(self::URI, $uri . "#"); $criteria->addOr(self::URI, $uri . "/"); $v = VocabularyPeer::doSelect($criteria, $con); return !empty($v) > 0 ? $v[0] : null; }
function del(Criteria $c) { $condition = $c->getCondition("categoryId"); $categoryId = $condition['value']; $childCategoriesIds = array_map(create_function('$category', 'return $category[\'categoryId\'];'), $this->getChilds($categoryId, true)); $parentIds = array_map(create_function('$category', 'return $category[\'categoryId\'];'), $this->getParents($categoryId)); //creating list of items to delete $c = new Criteria(); $c->add("categoryId", $childCategoriesIds, "IN"); $itemIds = $this->site->getArray($c, "siteId", false); //delete all categories and subcategoeis $c = new Criteria(); $c->add("categoryId", $childCategoriesIds, "IN"); parent::del($c); $this->extraFieldCategory->del($c); $c = new Criteria(); $c->add("childId", $childCategoriesIds, "IN"); $c->addOr("parentId", $childCategoriesIds, "IN"); $this->categoryParent->del($c); //deleting items foreach ($itemIds as $itemId) { $c = new Criteria(); $c->add("siteId", $itemId); $this->site->del($c, false); } $this->updateValidatedSitesCount($parentIds); Cacher::getInstance()->clean("tag", array("category", "site")); }
public function getEmailAccounts() { $criteria = new Criteria(); $criteria->add(self::STATUS, 'activated'); $criteria->addOr(self::STATUS, 'disactivated'); return self::doSelect($criteria); }
function setAdOnPage($data) { $c = new Criteria(); $c->add("page", $data['page']); $c->add("place", $data['place']); if ($data['adCriterionId'] == 0 && !in_array($data['place'], array("general", "predefine"))) { $this->del($c); } else { $ad = $this->ad->find($c); if ($ad) { $ad->adCriterionId = $data['adCriterionId']; $ad->save(); } else { $ad = new AdRecord(); $ad->fromArray($data); $ad->save(); } } //if globall switch was set delete category specified settings if ($data['place'] == "general" && preg_match("#^predefine(Category|Site|Keyword|Letter|Tag)#", $data['page'], $match)) { $pagePrefix = strtolower($match[1]); $c = new Criteria(); $c->add("page LIKE '{$pagePrefix}%'"); $c2 = new Criteria(); $c2->add("place", "general"); $c2->addOr("place", "predefine"); $c->add($c2); $this->del($c); } }
public static function getCriterioNoBorrado($atributo) { $c = new Criteria(); $c->add($atributo, null, Criteria::ISNULL); $c->addOr($atributo, '0000-00-00 00:00:00', Criteria::EQUAL); return $c; }
public function calculate($user) { $c = new Criteria(); $c->add('user_id', $user->getUserId()); $c->addOr('target_user_id', $user->getUserId()); $count = DB_ContactPeer::instance()->selectCount($c); return $count; }
public function executeAbout(sfWebRequest $request) { $c = new Criteria(); //1,2,4,5,6,7 $c->add(sfGuardUserPeer::ID, 1); $c->addOr(sfGuardUserPeer::ID, 2); $c->addOr(sfGuardUserPeer::ID, 4); $c->addOr(sfGuardUserPeer::ID, 5); $c->addOr(sfGuardUserPeer::ID, 22); $c->addOr(sfGuardUserPeer::ID, 7); $c->addOr(sfGuardUserPeer::ID, 31); $c->addOr(sfGuardUserPeer::ID, 180); $c->addOr(sfGuardUserPeer::ID, 9); $c->addOr(sfGuardUserPeer::ID, 738); $c->addOr(sfGuardUserPeer::ID, 27); $c->addOr(sfGuardUserPeer::ID, 447); $c->addAscendingOrderByColumn(sfGuardUserPeer::ID); $users = sfGuardUserPeer::doSelect($c); $this->users = array(); foreach ($users as $user) { $this->users[$user->getid()] = $user; } $this->title = sfContext::getInstance()->getI18N()->__('Sobre Voota - Quiénes somos', array()); $this->response->setTitle($this->title); }
public function getDueDate() { $c = new Criteria(); $c->add(CirHistoryPeer::COL_ITEM_ID, $this->getId()); $c->add(CirHistoryPeer::RETURN_DATE, null, Criteria::EQUAL); $c->addOr(CirHistoryPeer::RETURN_DATE, '', Criteria::EQUAL); $ch = CirHistoryPeer::doSelectOne($c); return $ch->getDueDate('d-m-Y H:i:s'); }
public function countValidCourseSubjectStudentMarks() { $c = new Criteria(); $criterion = $c->getNewCriterion(CourseSubjectStudentMarkPeer::IS_FREE, true, Criteria::EQUAL); $criterion->addOr($c->getNewCriterion(CourseSubjectStudentMarkPeer::IS_CLOSED, true, Criteria::EQUAL)); $criterion->addOr($c->getNewCriterion(CourseSubjectStudentMarkPeer::MARK, null, Criteria::ISNOTNULL)); $c->addOr($criterion); return $this->countCourseSubjectStudentMarks($c); }
public static function getTestHijos($padres) { $criteria = new Criteria(); foreach ($padres as $padre) { $criteria->addOr(TestsPeer::TESTS_ID, $padre->getTests()->getId(), Criteria::IN); } $criteria->addAscendingOrderByColumn(self::TITULO); return self::doSelectJoinAll($criteria); }
public function getUnusedPaidOne($c) { $c2 = new Criteria(); $c2->add("status", "paid"); $c2->addOr("status", "pending"); $c->add($c2); $c->add("used", 0); $c->addOrder("paymentId"); return $this->find($c); }
public static function getFilesByExternalKeys($filedescs) { $fileCriteria = new Criteria(); sfContext::getInstance()->getLogger()->info('foobar: build criteria start'); foreach ($filedescs as $key => $file) { $tracknr = $file->getTracknr(); $fileCriteria->addOr($fileCriteria->getNewCriterion(FilePeer::EXTERNAL_KEY, $tracknr)); } sfContext::getInstance()->getLogger()->info('foobar: build criteria done'); $files = FilePeer::doSelect($fileCriteria); sfContext::getInstance()->getLogger()->info('foobar: query finished'); return $files; }
public function testAddOrEmptyCriteria() { $table1 = "myTable1"; $column1 = "myColumn1"; $value1 = "myValue1"; $key1 = "{$table1}.{$column1}"; $this->c->addOr($key1, $value1, Criteria::EQUAL); $expect = "SELECT FROM myTable1 WHERE myTable1.myColumn1=:p1"; $params = array(); $result = BasePeer::createSelectSql($this->c, $params); $expect_params = array(array('table' => 'myTable1', 'column' => 'myColumn1', 'value' => 'myValue1')); $this->assertEquals($expect, $result, 'addOr() called on an empty Criteria adds a criterion to the criteria'); $this->assertEquals($expect_params, $params, 'addOr() called on an empty Criteria adds a criterion to the criteria'); }
public function testCombineCriterionOrLessSimple() { $this->c->addCond('cond1', "INVOICE.COST1", "1000", Criteria::GREATER_EQUAL); $this->c->addCond('cond2', "INVOICE.COST2", "2000", Criteria::LESS_EQUAL); $this->c->add("INVOICE.COST3", "8000", Criteria::GREATER_EQUAL); $this->c->combine(array('cond1', 'cond2'), Criteria::LOGICAL_OR); $this->c->addOr("INVOICE.COST4", "9000", Criteria::LESS_EQUAL); $expect = "SELECT FROM INVOICE WHERE INVOICE.COST3>=:p1 AND ((INVOICE.COST1>=:p2 OR INVOICE.COST2<=:p3) OR INVOICE.COST4<=:p4)"; $expect_params = array(array('table' => 'INVOICE', 'column' => 'COST3', 'value' => '8000'), array('table' => 'INVOICE', 'column' => 'COST1', 'value' => '1000'), array('table' => 'INVOICE', 'column' => 'COST2', 'value' => '2000'), array('table' => 'INVOICE', 'column' => 'COST4', 'value' => '9000')); $params = array(); $result = BasePeer::createSelectSql($this->c, $params); $this->assertEquals($expect, $result); $this->assertEquals($expect_params, $params); }
/** * Searches contact requests * @param int $max Maximum contact per page * @param int $page * @return sfPropelPager */ public static function getPager($max = 10, $page = 1, $grater_than_one = 0) { $c = new Criteria(); $c->add(self::PROCESSED, 0, Criteria::EQUAL); $c->addOr(self::PROCESSED, null, Criteria::ISNULL); if ($grater_than_one) { $c->add(ContactRequestPeer::REQUEST_DATE, 'ABS(DATEDIFF( NOW( \'Y-m-d\' ),' . ContactRequestPeer::REQUEST_DATE . ') ) > 1', Criteria::CUSTOM); } $c->addDescendingOrderByColumn(self::REQUEST_DATE); $pager = new sfPropelPager('ContactRequest', $max); $pager->setCriteria($c); $pager->setPage($page); $pager->init(); return $pager; }
public static function getCredentialCriteria($credentials, $credroles) { $c = new Criteria(); if ($credroles['superadmin']) { $c->add(sfBreadNavPeer::TREE_LEFT, 1, Criteria::NOT_EQUAL); return $c; } $cton = $c->getNewCriterion(sfBreadNavPeer::CREDENTIAL, array_pop($credentials)); foreach ($credentials as $credential) { $cton->addOr($c->getNewCriterion(sfBreadNavPeer::CREDENTIAL, $credential)); } //filter out root node $c->add(sfBreadNavPeer::TREE_LEFT, 1, Criteria::NOT_EQUAL); //filter by user credentials $c->addOr($cton); return $c; }
public static function retrieveRegisteredServerNodesArrayByPKs($pks, PropelPDO $con = null) { if (empty($pks)) { $objs = array(); } else { $criteria = new Criteria(ServerNodePeer::DATABASE_NAME); $criteria->add(ServerNodePeer::ID, $pks, Criteria::IN); $criteria->add(ServerNodePeer::STATUS, ServerNodeStatus::ACTIVE); $criteria->add(ServerNodePeer::HEARTBEAT_TIME, time() - ServerNode::SERVER_NODE_TTL_TIME, Criteria::GREATER_EQUAL); $criteria->addOr(ServerNodePeer::HEARTBEAT_TIME, null); $orderBy = "FIELD (" . self::ID . "," . implode(",", $pks) . ")"; // first take the pattner_id and then the rest $criteria->addAscendingOrderByColumn($orderBy); $objs = ServerNodePeer::doSelect($criteria, $con); } return $objs; }
/** * Verify that AND and OR criterion are nested correctly. */ public function testPrecedence() { $cn1 = $this->c->getNewCriterion("INVOICE.COST", "1000", Criteria::GREATER_EQUAL); $cn2 = $this->c->getNewCriterion("INVOICE.COST", "2000", Criteria::LESS_EQUAL); $cn3 = $this->c->getNewCriterion("INVOICE.COST", "8000", Criteria::GREATER_EQUAL); $cn4 = $this->c->getNewCriterion("INVOICE.COST", "9000", Criteria::LESS_EQUAL); $this->c->add($cn1->addAnd($cn2)); $this->c->addOr($cn3->addAnd($cn4)); $expect = "SELECT FROM INVOICE WHERE " . "((INVOICE.COST>=:p1 AND INVOICE.COST<=:p2) " . "OR (INVOICE.COST>=:p3 AND INVOICE.COST<=:p4))"; $expect_params = array(array('table' => 'INVOICE', 'column' => 'COST', 'value' => '1000'), array('table' => 'INVOICE', 'column' => 'COST', 'value' => '2000'), array('table' => 'INVOICE', 'column' => 'COST', 'value' => '8000'), array('table' => 'INVOICE', 'column' => 'COST', 'value' => '9000')); try { $params = array(); $result = BasePeer::createSelectSql($this->c, $params); } catch (PropelException $e) { $this->fail("PropelException thrown in BasePeer::createSelectSql()"); } $this->assertEquals($expect, $result); $this->assertEquals($expect_params, $params); }
public function configure() { unset($this['note_entry_id']); $this->widgetSchema['delete'] = new sfWidgetFormInputHidden(array('default' => '0')); $this->validatorSchema['delete'] = new sfValidatorBoolean(); $employee = EmployeePeer::retrieveByPK($this->getOption('employee_id')); $c = new Criteria(); $c->add(AreaOfConcernPeer::JOB_ID, $employee->getJobId()); // if job_id = special instruction (7), they also need to see speech (8) if ($employee->getJobId() == 7) { $c->addOr(AreaOfConcernPeer::JOB_ID, 8); } $this->widgetSchema['area_of_concern_id']->setOption('criteria', $c); $c = new Criteria(); $c->add(PromptPeer::ID, 44, Criteria::GREATER_EQUAL); $this->widgetSchema['prompt_id']->setOption('criteria', $c); $this->widgetSchema['accuracy'] = new sfWidgetFormSelect(array('choices' => EntryConcernPeer::getAccuracyChoices())); $this->widgetSchema->setLabels(array('area_of_concern_id' => 'Area of concern', 'objective_id' => 'Objective', 'prompt_id' => 'Prompt', 'level_id' => 'Level', 'accuracy' => 'Accuracy')); }
/** * * @param Cessiomaterial $OCESSIO * @return array('HORARIS','CESSIONS') */ public static function isDisponible(CessiomaterialForm $OCESSIO) { //Mirem si l'article que volem cedir, està disponible a la data de cessio i fins data de retorn (dins els cedits). //Mirem que no s'utilitzi a cap esdeveniment //com saber si un període està pel mig d'un altre. Di1 = HORARIS.DIA // DrI DrF // DpI DpF $ret = array(); $dC = $OCESSIO->getValue('DataCessio'); $dR = $OCESSIO->getValue('DataRetorn'); $idM = $OCESSIO->getValue('Material_idMaterial'); $idC = $OCESSIO->getValue('idCessioMaterial'); //Si un dia d'horaris encaixa pel mig del període de cessió, és dolent. $C = new Criteria(); $C1 = $C->getNewCriterion(HorarisPeer::DIA, $dC, CRITERIA::GREATER_EQUAL); $C2 = $C->getNewCriterion(HorarisPeer::DIA, $dR, CRITERIA::LESS_EQUAL); $C1->addAnd($C2); $C->addOr($C1); $C->addJoin(HorarisPeer::HORARISID, HorarisespaisPeer::HORARIS_HORARISID); $C->add(HorarisespaisPeer::MATERIAL_IDMATERIAL, $idM); $ret['HORARIS'] = HorarisPeer::doSelect($C); //Mirem que no l'haguem cedit algun dia d'aquests $C = new Criteria(); $C3 = $C->getNewCriterion(self::DATACESSIO, $dC, CRITERIA::GREATER_EQUAL); $C4 = $C->getNewCriterion(self::DATACESSIO, $dR, CRITERIA::LESS_EQUAL); $C3->addAnd($C4); $C5 = $C->getNewCriterion(self::DATARETORN, $dR, CRITERIA::LESS_EQUAL); $C6 = $C->getNewCriterion(self::DATARETORN, $dC, CRITERIA::GREATER_EQUAL); $C5->addAnd($C6); $C7 = $C->getNewCriterion(self::DATACESSIO, $dC, CRITERIA::GREATER_EQUAL); $C8 = $C->getNewCriterion(self::DATARETORN, $dR, CRITERIA::LESS_EQUAL); $C7->addAnd($C8); $C3->addOr($C5); $C3->addOr($C7); $C->add($C3); $C->add(self::MATERIAL_IDMATERIAL, $idM, CRITERIA::EQUAL); $C->add(self::IDCESSIOMATERIAL, $idC, CRITERIA::NOT_EQUAL); $C->add(self::RETORNAT, false); $ret['CESSIONS'] = self::doSelect($C); return $ret; }
public function getCamposFormularioEmpresaTabla($solo_en_lista = false) { $c = new Criteria(); $c->addJoin(CampoPeer::ID_CAMPO, RelCampoTablaPeer::ID_CAMPO, Criteria::JOIN); $c->addJoin(RelCampoTablaPeer::ID_TABLA, TablaPeer::ID_TABLA, Criteria::JOIN); $cr1 = $c->getNewCriterion(TablaPeer::ID_EMPRESA, $this->getIdEmpresa(), Criteria::EQUAL); $cr2 = $c->getNewCriterion(CampoPeer::ES_GENERAL, true, Criteria::EQUAL); $cr1->addAnd($cr2); $c->addOr($cr1); $c->addAscendingOrderByColumn(CampoPeer::ORDEN); $campos_generales_empresa = CampoPeer::doSelect($c); $cb = new Criteria(); $cb->addJoin(CampoPeer::ID_CAMPO, RelCampoTablaPeer::ID_CAMPO); $cb->add(RelCampoTablaPeer::ID_TABLA, $this->getIdTabla()); if ($solo_en_lista) { $c->addAnd(CampoPeer::EN_LISTA, true, Criteria::EQUAL); } $cb->addAscendingOrderByColumn(CampoPeer::ORDEN); $campos_tabla = CampoPeer::doSelect($cb); $campos = array_merge($campos_generales_empresa, $campos_tabla); return $campos; }
public static function getAvailableInstructorsForCourseIdAndYear($courseId, $year, PropelPDO $conn) { $query = "SELECT DISTINCT %s as i FROM %s JOIN %s ON %s=%s WHERE %s='%s' AND %s=%s"; $query = sprintf($query, CourseInstructorAssociationPeer::ID, AutoCourseRatingPeer::TABLE_NAME, CourseInstructorAssociationPeer::TABLE_NAME, AutoCourseRatingPeer::COURSE_INS_ID, CourseInstructorAssociationPeer::ID, CourseInstructorAssociationPeer::COURSE_ID, $courseId, CourseInstructorAssociationPeer::YEAR, $year); $statement = $conn->prepare($query); $statement->execute(); $ids = $statement->fetchAll(PDO::FETCH_COLUMN, 0); $results = array(); $c = new Criteria(); $c->addJoin(CourseInstructorAssociationPeer::INSTRUCTOR_ID, InstructorPeer::ID); foreach ($ids as $id) { $crit = $c->getNewCriterion(CourseInstructorAssociationPeer::ID, $id); $c->addOr($crit); } $c->addAscendingOrderByColumn(InstructorPeer::LAST_NAME); $c->addAscendingOrderByColumn(InstructorPeer::FIRST_NAME); $raw = CourseInstructorAssociationPeer::doSelectJoinInstructor($c, $conn); foreach ($raw as $obj) { $results[] = $obj->getInstructor(); } return $results; }
public static function getRootfolderByModule($module) { $found = false; $searchModule = $module; if (strtolower($searchModule) == 'tag') { $searchModule = 'admin'; } $formFile = sfConfig::get('sf_root_dir') . "/config/form.xml"; if (is_readable($formFile)) { $objects = XMLParser::getXMLdataValues($formFile); foreach ($objects as $obj) { if ($obj['tag'] == 'OBJECT' && $obj['type'] == 'open') { if (strtoupper($obj['attributes']['MODULE']) == strtoupper($searchModule)) { $found = true; break; } } } } if (!$found) { //echo "getRootfolderByModule($module): not_found!"; return null; } try { $c = new Criteria(); $c->add(RootfolderPeer::LABEL, $module); $c->addOr(RootfolderPeer::LABEL, ucfirst($module)); $rootFolder = RootfolderPeer::doSelectOne($c); if (!$rootFolder) { $rootFolder = new Rootfolder(); $rootFolder->setLabel(ucfirst($module)); $rootFolder->save(); } return $rootFolder; } catch (Exception $e) { throw $e; } }
/** * Method perform a DELETE on the database, given a ExamCommentDig or Criteria object OR a primary key value. * * @param mixed $values Criteria or ExamCommentDig object or primary key or array of primary keys * which is used to create the DELETE statement * @param PropelPDO $con the connection to use * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows * if supported by native driver or if emulated using Propel. * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doDelete($values, PropelPDO $con = null) { if ($con === null) { $con = Propel::getConnection(ExamCommentDigPeer::DATABASE_NAME, Propel::CONNECTION_WRITE); } if ($values instanceof Criteria) { // invalidate the cache for all objects of this type, since we have no // way of knowing (without running a query) what objects should be invalidated // from the cache based on this Criteria. ExamCommentDigPeer::clearInstancePool(); // rename for clarity $criteria = clone $values; } elseif ($values instanceof ExamCommentDig) { // invalidate the cache for this single object ExamCommentDigPeer::removeInstanceFromPool($values); // create criteria based on pk values $criteria = $values->buildPkeyCriteria(); } else { // it must be the primary key $criteria = new Criteria(self::DATABASE_NAME); // primary key is composite; we therefore, expect // the primary key passed to be an array of pkey // values if (count($values) == count($values, COUNT_RECURSIVE)) { // array is not multi-dimensional $values = array($values); } foreach ($values as $value) { $criterion = $criteria->getNewCriterion(ExamCommentDigPeer::IP, $value[0]); $criterion->addAnd($criteria->getNewCriterion(ExamCommentDigPeer::COMMENT_ID, $value[1])); $criteria->addOr($criterion); // we can invalidate the cache for this single PK ExamCommentDigPeer::removeInstanceFromPool($value); } } // Set the correct dbName $criteria->setDbName(self::DATABASE_NAME); $affectedRows = 0; // initialize var to track total num of affected rows try { // use transaction because $criteria could contain info // for more than one table or we could emulating ON DELETE CASCADE, etc. $con->beginTransaction(); $affectedRows += BasePeer::doDelete($criteria, $con); $con->commit(); return $affectedRows; } catch (PropelException $e) { $con->rollBack(); throw $e; } }
public function build($runData) { $pl = $runData->getParameterList(); $this->_pl = $pl; $site = $runData->getTemp("site"); $categoryName = $this->_readParameter(array('category', 'categories'), false); $categoryName = strtolower($categoryName); $startPage = $this->_readParameter(array('startPage', 'targetPage')); if (!$startPage) { /* Get curent page. */ $startPage = $runData->getTemp('pageUnixName'); if (!$startPage) { $startPage = $pl->getParameterValue('page_unix_name'); // from preview } } $categories = array(); $categoryNames = array(); if ($categoryName != '*') { if (!$categoryName) { /* No category name specified, use the current category! */ $pageUnixName = $runData->getTemp('pageUnixName'); if (!$pageUnixName) { $pageUnixName = $pl->getParameterValue('page_unix_name'); // from preview } if (strpos($pageUnixName, ":") != false) { $tmp0 = explode(':', $pageUnixName); $categoryName = $tmp0[0]; } else { $categoryName = "_default"; } } foreach (preg_split('/[,;\\s]+?/', $categoryName) as $cn) { $category = DB_CategoryPeer::instance()->selectByName($cn, $site->getSiteId()); if ($category) { $categories[] = $category; $categoryNames[] = $category->getName(); } } if (count($categories) == 0) { throw new ProcessException('The requested categories do not (yet) exist.'); } } //if(count($categories) == 0){ // throw new ProcessException(_("The category can not be found.")); //} $attrUrlPrefix = $pl->getParameterValue('urlAttrPrefix'); // now select pages according to the specified criteria $c = new Criteria(); $c->add("site_id", $site->getSiteId()); if (count($categories) > 0) { $ccat = new Criteria(); foreach ($categories as $cat) { $ccat->addOr('category_id', $cat->getCategoryId()); } $c->addCriteriaAnd($ccat); } $c->add('unix_name', '(^|:)_', '!~'); /* Handle tags! */ $tagString = $this->_readParameter(array('tag', 'tags'), true); //var_dump($tagString); if ($tagString) { /* Split tags. */ $tags = preg_split(';[\\s,\\;]+;', $tagString); $tagsAny = array(); $tagsAll = array(); $tagsNone = array(); foreach ($tags as $t) { if (substr($t, 0, 1) == '+') { $tagsAll[] = substr($t, 1); } elseif (substr($t, 0, 1) == '-') { $tagsNone[] = substr($t, 1); } elseif ($t == '=') { /* It means: any tags of the current page. */ if ($runData->getTemp('page')) { $pageId = $runData->getTemp('page')->getPageId(); $co = new Criteria(); $co->add("page_id", $pageId); $co->addOrderAscending("tag"); $tagso = DB_PageTagPeer::instance()->select($co); foreach ($tagso as $to) { $tagsAny[] = $to->getTag(); } if (count($tagsAny) == 0) { /* * If someone uses the '=' tag, the line below guarantees that * only pages that DO have tags and share at least one similar tag with the * current page are listed. */ $tagsAny[] = ' '; } } } else { $tagsAny[] = $t; } } /* ANY */ if (count($tagsAny) > 0) { $t = array(); foreach ($tagsAny as $tag0) { $t[] = 'tag = \'' . db_escape_string($tag0) . '\''; } $tagQuery = "SELECT count(*) FROM page_tag " . "WHERE page_tag.page_id=page.page_id " . "AND (" . implode(' OR ', $t) . ")"; $c->add('(' . $tagQuery . ')', 1, '>='); } /* ALL */ if (count($tagsAll) > 0) { $t = array(); foreach ($tagsAll as $tag0) { $t[] = 'tag = \'' . db_escape_string($tag0) . '\''; } $tagQuery = "SELECT count(*) FROM page_tag " . "WHERE page_tag.page_id=page.page_id " . "AND (" . implode(' OR ', $t) . ")"; $c->add('(' . $tagQuery . ')', count($tagsAll)); } /* NONE */ if (count($tagsNone) > 0) { $t = array(); foreach ($tagsNone as $tag0) { $t[] = 'tag = \'' . db_escape_string($tag0) . '\''; } $tagQuery = "SELECT count(*) FROM page_tag " . "WHERE page_tag.page_id=page.page_id " . "AND (" . implode(' OR ', $t) . ")"; $c->add('(' . $tagQuery . ')', 0); } } $c->addGroupBy('datestring'); $db = Database::connection(); $corig = clone $c; $c->setExplicitFields("EXTRACT(YEAR FROM date_created)::varchar || '.' || EXTRACT(MONTH FROM date_created)::varchar as datestring, count(*) as c"); //$c->addOrderDescending("regexp_replace(datestring, '\.[0-9]+$', '')::integer"); //$c->addOrderDescending("regexp_replace(datestring, '^[0-9]+\.', '')::integer"); $q = DB_PagePeer::instance()->criteriaToQuery($c); $r = $db->query($q); $r = $r->fetchAll(); if ($r === false) { $r = array(); } $postCount = array(); if ($lang == 'pl') { $locale = 'pl_PL'; } setlocale(LC_TIME, $locale); foreach ($r as $mo) { $spl = explode('.', $mo['datestring']); $year = $spl[0]; $month = $spl[1]; $postCount[$year]['months'][$month]['count'] = $mo['c']; /* Month names. */ $lang = $site->getLanguage(); $locale = 'en_US'; $postCount[$year]['months'][$month]['name'] = strftime('%B', mktime(6, 6, 6, $month, 6, $year)); } //$c = clone($corig); $c->setExplicitFields("EXTRACT(YEAR FROM date_created)::varchar as datestring, count(*) as c"); $q = DB_PagePeer::instance()->criteriaToQuery($c); $r = $db->query($q); $r = $r->fetchAll(); if ($r === false) { $r = array(); } foreach ($r as $mo) { $postCount[$mo['datestring']]['count'] = $mo['c']; } /* Order the results. */ /* Order years. */ krsort($postCount, SORT_NUMERIC); foreach ($postCount as &$year) { krsort($year['months'], SORT_NUMERIC); } $uprefix = ''; if ($attrUrlPrefix) { $uprefix = $attrUrlPrefix . '_'; } /* Get current (selected) date (if any). */ $date = $this->_pl->getParameterValue($uprefix . "date", "GET"); $dateA = array(); if (preg_match(';^[0-9]{4}$;', $date)) { $dateA['year'] = $date; if (isset($postCount[$date])) { $postCount[$date]['selected'] = true; } } if (preg_match(';^[0-9]{4}\\.[0-9]{1,2}$;', $date)) { $dateS = explode('.', $date); $dateA['year'] = $dateS[0]; $dateA['month'] = $dateS[1]; if (isset($postCount[$dateA['year']]['months'][$dateA['month']])) { $postCount[$dateA['year']]['months'][$dateA['month']]['selected'] = true; } } $runData->contextAdd('postCount', $postCount); $startUrlBase = '/' . $startPage; if ($tagString) { $startUrlBase .= '/' . $uprefix . 'tag/' . urldecode($tagString); } $startUrlBase .= '/' . $uprefix . 'date/'; $runData->contextAdd('startUrlBase', $startUrlBase); //var_dump($postCount); $runData->contextAdd('attrUrlPrefix', $attrUrlPrefix); return; }
function getSitesInCategory($categoryId, Criteria $c = null) { if ($c === null) { $c = new Criteria(); } $prefix = Config::get('DB_PREFIX'); $c2 = new Criteria(); if (Config::get('sitesInParentCategoriesEnabled')) { $c2->add("EXISTS(\n SELECT * FROM {$prefix}categoryparents cp\n WHERE cp.childId = {$prefix}sites.categoryId\n AND cp.parentId = " . intval($categoryId) . ')'); } else { $c2->add('categoryId', $categoryId); } $c3 = new Criteria(); $c3->add('categoryId', $categoryId); $siteIds = $this->siteAdditionalCategory->getArray($c3, 'siteId', false); if ($siteIds) { $c2->addOr('sites.siteId', $siteIds, 'IN'); } $c->add($c2); $c->addOrder("sites.reversePriority"); $this->addDefaultSortingOrder($c); return $this->selectWithNewFlag($c); }
DbManager::setConfig($dbConf); DbManager::initialize(); if (count($argv) !== 2) { die('pleas provide partner id as input' . PHP_EOL . 'to run script: ' . basename(__FILE__) . ' X' . PHP_EOL . 'whereas X is partner id' . PHP_EOL); } $partner_id = @$argv[1]; $partner = PartnerPeer::retrieveByPK($partner_id); if (!$partner) { die('no such partner.' . PHP_EOL); } $partner->setAppearInSearch(mySearchUtils::DISPLAY_IN_SEARCH_KALTURA_NETWORK); $partner->save(); $c = new Criteria(); $c->add(entryPeer::PARTNER_ID, $partner_id); $c->add(entryPeer::DISPLAY_IN_SEARCH, mySearchUtils::DISPLAY_IN_SEARCH_PARTNER_ONLY); $c->addOr(entryPeer::DISPLAY_IN_SEARCH, mySearchUtils::DISPLAY_IN_SEARCH_NONE); $c->setLimit(200); $con = myDbHelper::getConnection(myDbHelper::DB_HELPER_CONN_PROPEL2); $entries = entryPeer::doSelect($c, $con); $changedEntriesCounter = 0; while (count($entries)) { $changedEntriesCounter += count($entries); foreach ($entries as $entry) { echo "changed DISPLAY_IN_SEARCH for entry: " . $entry->getId() . "\n"; $entry->setDisplayInSearch(mySearchUtils::DISPLAY_IN_SEARCH_KALTURA_NETWORK); $entry->save(); } entryPeer::clearInstancePool(); $entries = entryPeer::doSelect($c, $con); } echo "Done. {$changedEntriesCounter} entries where changed";
/** * This function returns a pager object holding the specified list of user favorites, * sorted by a given sort order. * the $mine_flag param decides if to return favorite people or fans */ public static function getUserFavoritesOrderedPager($order, $pageSize, $page, $kuserId, $mine_flag) { $c = new Criteria(); if ($mine_flag) { $c->addJoin(kuserPeer::ID, favoritePeer::SUBJECT_ID, Criteria::INNER_JOIN); $c->add(favoritePeer::KUSER_ID, $kuserId); } else { $c->addJoin(kuserPeer::ID, favoritePeer::KUSER_ID, Criteria::INNER_JOIN); $c->add(favoritePeer::SUBJECT_ID, $kuserId); } $c->add(favoritePeer::SUBJECT_TYPE, favorite::SUBJECT_TYPE_USER); // TODO: take privacy into account $privacy = favorite::PRIVACY_TYPE_USER; $c->add(favoritePeer::PRIVACY, $privacy); // our assumption is that a request for private favorites should include public ones too if ($privacy == favorite::PRIVACY_TYPE_USER) { $c->addOr(favoritePeer::PRIVACY, favorite::PRIVACY_TYPE_WORLD); } switch ($order) { case kuser::KUSER_SORT_MOST_VIEWED: $c->addDescendingOrderByColumn(kuserPeer::VIEWS); break; case kuser::KUSER_SORT_MOST_RECENT: $c->addAscendingOrderByColumn(kuserPeer::CREATED_AT); break; case kuser::KUSER_SORT_NAME: $c->addAscendingOrderByColumn(kuserPeer::SCREEN_NAME); break; case kuser::KUSER_SORT_AGE: $c->addAscendingOrderByColumn(kuserPeer::DATE_OF_BIRTH); break; case kuser::KUSER_SORT_COUNTRY: $c->addAscendingOrderByColumn(kuserPeer::COUNTRY); break; case kuser::KUSER_SORT_CITY: $c->addAscendingOrderByColumn(kuserPeer::CITY); break; case kuser::KUSER_SORT_GENDER: $c->addAscendingOrderByColumn(kuserPeer::GENDER); break; case kuser::KUSER_SORT_PRODUCED_KSHOWS: $c->addDescendingOrderByColumn(kuserPeer::PRODUCED_KSHOWS); break; default: $c->addAscendingOrderByColumn(kuserPeer::SCREEN_NAME); } $c->setDistinct(); $pager = new sfPropelPager('kuser', $pageSize); $pager->setCriteria($c); $pager->setPage($page); $pager->init(); return $pager; }