Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Version History

Version 1 Next »

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,

http://www.in-portal.com
http://www.alex-time.com

  • No labels