public static function getExtraFieldsByArticle($article, $params = null) { if (is_numeric($article)) { $article = TZ_Portfolio_PlusContentHelper::getArticleById($article); } $groupid = self::getFieldGroupsByArticleId($article->id); $groupid = JArrayHelper::getColumn($groupid, 'id'); $storeId = md5(__METHOD__ . '::' . implode(',', $groupid) . '::' . $article->id); if (!isset(self::$cache[$storeId])) { $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select('f.*'); $query->from('#__tz_portfolio_plus_fields AS f'); $query->join('INNER', '#__tz_portfolio_plus_field_content_map AS m ON m.fieldsid = f.id'); $query->join('INNER', '#__tz_portfolio_plus_content AS c ON c.id = m.contentid'); $query->join('INNER', '#__tz_portfolio_plus_field_fieldgroup_map AS fm ON fm.fieldsid = f.id'); $query->join('INNER', '#__tz_portfolio_plus_extensions AS e ON e.element = f.type')->where('e.type = ' . $db->quote('tz_portfolio_plus-plugin'))->where('e.folder = ' . $db->quote('extrafields'))->where('e.published = 1'); if (count($groupid)) { $query->where('fm.groupid IN(' . implode(',', $groupid) . ')'); } $query->where('c.id = ' . $article->id); $query->where('f.published = 1'); $query->group('f.id'); $db->setQuery($query); if ($fields = $db->loadObjectList()) { self::$cache[$storeId] = $fields; return $fields; } self::$cache[$storeId] = false; } return self::$cache[$storeId]; }
public function loadArticle($article, $resetCache = false) { if (is_numeric($article) && $article > 0) { $_article = TZ_Portfolio_PlusContentHelper::getArticleById($article, $resetCache); if (is_object($_article)) { $article = clone $_article; } } if (is_object($article) || is_null($article)) { $this->article = $article; } }