/**
  * 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);
 }
Example #2
0
 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;
 }
Example #4
0
 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"));
 }
Example #5
0
 public function getEmailAccounts()
 {
     $criteria = new Criteria();
     $criteria->add(self::STATUS, 'activated');
     $criteria->addOr(self::STATUS, 'disactivated');
     return self::doSelect($criteria);
 }
Example #6
0
 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;
 }
Example #8
0
 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;
 }
Example #9
0
 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);
 }
Example #10
0
 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');
 }
Example #11
0
 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);
 }
Example #12
0
 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);
 }
Example #13
0
 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);
 }
Example #14
0
 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;
 }
Example #15
0
 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);
 }
Example #17
0
 /**
  * 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;
 }
Example #18
0
 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;
 }
Example #19
0
 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);
 }
Example #21
0
 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'));
 }
Example #22
0
 /**
  * 
  * @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;
 }
Example #23
0
 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;
 }
Example #25
0
 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;
     }
 }
Example #27
0
 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;
 }
Example #28
0
 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";
Example #30
0
 /**
  * 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;
 }