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.
--
Best Regards,