/
Optimize HasAdditionalImages tag
Optimize HasAdditionalImages tag
Imported From: http://groups.google.com/group/in-portal-dev/browse_thread/thread/0dc2f6487f72107a#
I propose to make category item tag HasAdditionalImages look like this:
/** * Allows to detect if item has any additional images available * * @param Array $params * @return string */ function HasAdditionalImages($params) { static $cache = null; $object =& $this->getObject($params); /* @var $object kDBList */ if (!isset($cache)) { $resource_ids = $object->GetCol('ResourceId'); $sql = 'SELECT ImageId, ResourceId FROM ' . $this->Application->getUnitOption('img', 'TableName') . ' WHERE ResourceId IN (' . implode(',', $resource_ids) . ') AND DefaultImg != 1 AND Enabled = 1 GROUP BY ResourceId'; $cache = $this->Conn->GetCol($sql, 'ResourceId'); } $resource_id = $object->GetDBField('ResourceId'); return array_key_exists($resource_id, $cache) ? $cache[$resource_id] : false; }
This will allow to check for category item additional images during list printing without additional sql for each printed category item.