/** * 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 = flavorParamsPeer::getCriteriaFilter()->getFilter(); $defaultCriteria->remove(flavorParamsPeer::PARTNER_ID); // flavorParamsPeer::allowAccessToPartner0AndPartnerX($partnerId); // the flavor params can be from partner 0 too $c = new Criteria(); $c->addAnd(flavorParamsPeer::PARTNER_ID, array($partnerId, 0), Criteria::IN); // $c->add ( flavorParamsPeer::FORMAT , $fileFormat ); $possible_flavor_params = flavorParamsPeer::doSelect($c); flavorParamsPeer::setDefaultCriteriaFilter(); $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; }