/** * Reloads this object from datastore based on primary key and (optionally) resets all associated objects. * * This will only work if the object has been saved and has a valid primary key set. * * @param boolean $deep (optional) Whether to also de-associated any related objects. * @param PropelPDO $con (optional) The PropelPDO connection to use. * @return void * @throws PropelException - if this object is deleted, unsaved or doesn't have pk match in db */ public function reload($deep = false, PropelPDO $con = null) { if ($this->isDeleted()) { throw new PropelException("Cannot reload a deleted object."); } if ($this->isNew()) { throw new PropelException("Cannot reload an unsaved object."); } if ($con === null) { $con = Propel::getConnection(TagPeer::DATABASE_NAME, Propel::CONNECTION_READ); } // We don't need to alter the object instance pool; we're just modifying this instance // already in the pool. TagPeer::setUseCriteriaFilter(false); $stmt = TagPeer::doSelectStmt($this->buildPkeyCriteria(), $con); TagPeer::setUseCriteriaFilter(true); $row = $stmt->fetch(PDO::FETCH_NUM); $stmt->closeCursor(); if (!$row) { throw new PropelException('Cannot find matching row in the database to reload object values.'); } $this->hydrate($row, 0, true); // rehydrate if ($deep) { // also de-associate any related objects? } // if (deep) }
/** * @action indexCategoryEntryTags * * @param int $categoryId * @param string $pcToDecrement * @param string $pcToIncrement */ public function indexCategoryEntryTagsAction($categoryId, $pcToDecrement, $pcToIncrement) { $pcToDecrementArray = explode(',', $pcToDecrement); $c = KalturaCriteria::create(TagPeer::OM_CLASS); $c->add(TagPeer::PARTNER_ID, kCurrentContext::getCurrentPartnerId()); $c->add(TagPeer::PRIVACY_CONTEXT, $pcToDecrementArray, KalturaCriteria::IN); TagPeer::setUseCriteriaFilter(false); $tagsToDecrement = TagPeer::doSelect($c); TagPeer::setUseCriteriaFilter(true); foreach ($tagsToDecrement as $tag) { /* @var $tag Tag */ $tag->decrementInstanceCount(); } $pcToIncrementArray = explode(',', $pcToIncrement); $tagsToIncrement = array(); $c = new Criteria(); $c->add(categoryEntryPeer::CATEGORY_ID, $categoryId); $catEntries = categoryEntryPeer::doSelect($c); foreach ($catEntries as $catEntry) { /* @var $catEntry categoryEntry */ $entry = entryPeer::retrieveByPK($catEntry->getEntryId()); if ($entry) { $tagsToIncrement = array_merge($tagsToIncrement, explode(',', $entry->getTags())); } } $tagsToIncrement = array_unique($tagsToIncrement); kTagFlowManager::addOrIncrementTags(implode(",", $tagsToIncrement), kCurrentContext::getCurrentPartnerId(), "entry", $pcToIncrementArray); }
<?php chdir(dirname(__FILE__)); require_once __DIR__ . '/../../bootstrap.php'; $c = new Criteria(); if ($argc > 1 && is_numeric($argv[1])) { $c->add(TagPeer::ID, $argv[1], Criteria::GREATER_EQUAL); } if ($argc > 2 && is_numeric($argv[2])) { $c->add(TagPeer::PARTNER_ID, $argv[2], Criteria::EQUAL); } if ($argc > 3) { TagPeer::setUseCriteriaFilter((bool) $argv[3]); } $c->addAscendingOrderByColumn(TagPeer::ID); $c->setLimit(10000); $con = myDbHelper::getConnection(myDbHelper::DB_HELPER_CONN_PROPEL2); //$sphinxCon = DbManager::getSphinxConnection(); $tags = TagPeer::doSelect($c, $con); $sphinx = new kSphinxSearchManager(); while (count($tags)) { foreach ($tags as $tag) { /* @var $tag Tag */ KalturaLog::log('tag id ' . $tag->getId() . ' tag string [' . $tag->getTag() . '] crc id[' . $sphinx->getSphinxId($tag) . ']'); try { $ret = $sphinx->saveToSphinx($tag, true); } catch (Exception $e) { KalturaLog::err($e->getMessage()); exit - 1; } }
/** * Decrements instance count of tags found on a deleted object * @param string $tagsToCheck * @param int $partnerId * @param string $objectClass * @param array $privacyContexts */ public static function decrementExistingTagsInstanceCount($tagsToCheck, $partnerId, $objectClass, $privacyContexts = null) { $objectTags = self::trimObjectTags($tagsToCheck); if (!count($objectTags)) { return; } $c = self::getTagObjectsByTagStringsCriteria($objectTags, self::getObjectTypeByClassName($objectClass), $partnerId); if (!is_null($privacyContexts)) { if (count($privacyContexts)) { $c->addAnd(TagPeer::PRIVACY_CONTEXT, $privacyContexts, Criteria::IN); } } else { $c->addAnd(TagPeer::PRIVACY_CONTEXT, self::NULL_PC); } TagPeer::setUseCriteriaFilter(false); $tagsToDecrement = TagPeer::doSelect($c); TagPeer::setUseCriteriaFilter(true); foreach ($tagsToDecrement as $tag) { /* @var $tag Tag */ $tag->decrementInstanceCount(); } }
<?php chdir(dirname(__FILE__)); require_once __DIR__ . '/../../bootstrap.php'; $c = KalturaCriteria::create(TagPeer::OM_CLASS); $filter = new TagFilter(); $filter->set('_eq_instance_count', 0); $filter->attachToCriteria($c); $count = $c->getRecordsCount(); if (!$count) { die('No tags pending for deletion.'); } TagPeer::setUseCriteriaFilter(false); $tagsForDelete = TagPeer::doSelect($c); TagPeer::setUseCriteriaFilter(true); foreach ($tagsForDelete as $tag) { /* @var $tag Tag */ switch ($tag->getObjectType()) { case taggedObjectType::ENTRY: resolveEntryTag($tag); break; case taggedObjectType::CATEGORY: resolveCategoryTag($tag); break; } } function resolveEntryTag(Tag $tag) { $c = KalturaCriteria::create(entryPeer::OM_CLASS); $c->add(entryPeer::PARTNER_ID, $tag->getPartnerId()); if ($tag->getPrivacyContext() != kTagFlowManager::NULL_PC) {