/** * return the flavor params the best fits the fileFormat for a given partner_id * * @param int $partnerId * @param string $fileFormat * @return FlavorParams */ public static function getFlavorParamsFromFileFormat($partnerId, $fileFormat, $ignoreSourceTag = true) { $defaultCriteria = assetParamsPeer::getCriteriaFilter()->getFilter(); $defaultCriteria->remove(assetParamsPeer::PARTNER_ID); // assetParamsPeer::allowAccessToPartner0AndPartnerX($partnerId); // the flavor params can be from partner 0 too $c = new Criteria(); $c->addAnd(assetParamsPeer::PARTNER_ID, array($partnerId, 0), Criteria::IN); // $c->add ( assetParamsPeer::FORMAT , $fileFormat ); $possible_flavor_params = assetParamsPeer::doSelect($c); myPartnerUtils::resetPartnerFilter('assetParams'); $best_fp = null; foreach ($possible_flavor_params as $fp) { if ($fileFormat != $fp->getFormat()) { continue; } if ($ignoreSourceTag && $fp->hasTag(flavorParams::TAG_SOURCE)) { continue; } if (!$best_fp) { $best_fp = $fp; } if ($fp->getPartnerId() != $partnerId) { continue; } // same format for the partner $best_fp = $fp; break; } // if not fount any - choose the first flavor params from the list if (!$best_fp) { $best_fp = $possible_flavor_params[0]; } return $best_fp; }
/** * the filterCriteria will filter out all the doSelect methods - ONLY if the filter is turned on. * IMPORTANT - the filter is turend on by default and when switched off - should be turned on again manually . * * @param Criteria $criteria The Criteria object used to build the SELECT statement. */ protected static function attachCriteriaFilter(Criteria $criteria) { assetParamsPeer::getCriteriaFilter()->applyFilter($criteria); }
public static function filterSelectResults(&$selectResults, Criteria $criteria) { $criteria_filter = assetParamsPeer::getCriteriaFilter(); if (!$criteria_filter->isEnabled() || !self::$filterPartner) { return; } $selectResults = array_filter($selectResults, array('assetParamsPeer', 'filterSelectResultsCallback')); }
/** * Overrides parent populateObjects method * Force partner required permissions * * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function populateObjects(PDOStatement $stmt) { $criteria_filter = assetParamsPeer::getCriteriaFilter(); $results = array(); // populate the object(s) while ($row = $stmt->fetch(PDO::FETCH_NUM)) { $key = assetParamsPeer::getPrimaryKeyHashFromRow($row, 0); if (null !== ($obj = assetParamsPeer::getInstanceFromPool($key))) { // We no longer rehydrate the object, since this can cause data loss. // See http://propel.phpdb.org/trac/ticket/509 // $obj->hydrate($row, 0, true); // rehydrate $results[] = $obj; } else { // class must be set each time from the record row $cls = assetParamsPeer::getOMClass($row, 0); $cls = substr('.' . $cls, strrpos('.' . $cls, '.') + 1); $obj = new $cls(); $obj->hydrate($row); if ($criteria_filter->isEnabled() && self::$filterPartner) { $requiredPermissions = $obj->getRequiredPermissions(); if ($requiredPermissions && count($requiredPermissions)) { foreach ($requiredPermissions as $requiredPermission) { if (!PermissionPeer::isValidForPartner($requiredPermission, self::$filterPartner)) { self::excludeId($obj->getId()); $obj = null; } } } } if ($obj) { $results[] = $obj; assetParamsPeer::addInstanceToPool($obj, $key); } } // if key exists } $stmt->closeCursor(); return $results; }