public function getRatingTypeCacheData()
{
$ratingTypes = $this->finder('SV\ContentRatings:RatingType')
->order(['display_order', 'title'])
->whereOr(['visible' => 1], ['usable' => 1])
->fetch();
$cache = [];
foreach ($ratingTypes as $ratingTypeId => $ratingType)
{
// cache the entire object, as we re-hydrate into an entity later and don't want to accidentally wipe disabled settings
$cache[$ratingTypeId] = $ratingType->toArray();
}
return $cache;
}
public function getRatingTypesAsEntities()
{
// this can be called multiple times per rateable content being displayed, so keep a local cache
if ($this->_ratingEntities === null)
{
$ratingEntities = [];
$ratingTypes = $this->getRatingTypes();
foreach($ratingTypes as $ratingTypeId => $ratingType)
{
$ratingEntities[$ratingTypeId] = $this->em->instantiateEntity('SV\ContentRatings:RatingType', $ratingType);
}
$this->_ratingEntities = $ratingEntities;
}
return $this->_ratingEntities;
}