Index: trunk/core/units/general/cat_tag_processor.php =================================================================== diff -u -r8415 -r8428 --- trunk/core/units/general/cat_tag_processor.php (.../cat_tag_processor.php) (revision 8415) +++ trunk/core/units/general/cat_tag_processor.php (.../cat_tag_processor.php) (revision 8428) @@ -261,6 +261,34 @@ return in_array($object->GetDBField('Status'), $pending_status); } + function IsFavorite($params) + { + static $favorite_status = null; + + $object =& $this->getObject($params); + /* @var $object kDBList */ + + if (!isset($favorite_status)) { + $resource_ids = $object->GetCol('ResourceId'); + + $user_id = $this->Application->RecallVar('user_id'); + $sql = 'SELECT FavoriteId, ResourceId + FROM '.$this->Application->getUnitOption('fav', 'TableName').' + WHERE (PortalUserId = '.$user_id.') AND (ResourceId IN ('.implode(',', $resource_ids).'))'; + $favorite_status = $this->Conn->GetCol($sql, 'ResourceId'); + } + + return isset($favorite_status[$object->GetDBField('ResourceId')]); + } + + function FavoriteToggleLink($params) + { + $fav_prefix = $this->Prefix.'-fav'; + $params['pass'] = implode(',', Array('m', $this->Prefix, $fav_prefix)); + $params[$fav_prefix.'_event'] = 'OnFavoriteToggle'; + return $this->Application->ProcessParsedTag('m', 'Link', $params); + } + } ?> \ No newline at end of file