Example #1
0
 public function getAllCategories()
 {
     $params = $this->getState('params');
     $orderby = null;
     // Order by artilce
     switch ($params->get('orderby_pri')) {
         case 'alpha':
             $orderby = 'c.title';
             break;
         case 'ralpha':
             $orderby = 'c.title DESC';
             break;
         case 'order':
             $orderby = 'c.lft';
             break;
     }
     if ($catid = $params->get('catid')) {
         $catid = array_unique($catid);
         $catid = array_filter($catid);
         if (count($catid) && ($categories = TZ_Portfolio_PlusFrontHelperCategories::getCategoriesById($catid, array('second_by_article' => true, 'orderby' => $orderby)))) {
             return $categories;
         } else {
             return TZ_Portfolio_PlusFrontHelperCategories::getAllCategories(array('second_by_article' => true, 'orderby' => $orderby));
         }
     }
     return false;
 }
Example #2
0
    function display($tpl = null)
    {
        $doc = JFactory::getDocument();
        $menus = JMenu::getInstance('site');
        $active = $menus->getActive();
        $state = $this->get('State');
        $this->state = $state;
        $params = $state->params;
        // Set value again for option tz_portfolio_plus_redirect
        if ($params->get('tz_portfolio_plus_redirect') == 'default') {
            $params->set('tz_portfolio_plus_redirect', 'article');
        }
        $items = $this->get('Items');
        if ($items) {
            $user = JFactory::getUser();
            $userId = $user->get('id');
            $guest = $user->get('guest');
            $content_ids = array();
            if ($items) {
                $content_ids = JArrayHelper::getColumn($items, 'id');
            }
            $mainCategories = TZ_Portfolio_PlusFrontHelperCategories::getCategoriesByArticleId($content_ids, array('main' => true));
            $second_categories = TZ_Portfolio_PlusFrontHelperCategories::getCategoriesByArticleId($content_ids, array('main' => false));
            $tags = null;
            if (count($content_ids) && $params->get('show_tags', 1)) {
                $tags = TZ_Portfolio_PlusFrontHelperTags::getTagsByArticleId($content_ids, array('orderby' => 'm.contentid', 'reverse_contentid' => true));
            }
            $dispatcher = JDispatcher::getInstance();
            JPluginHelper::importPlugin('content');
            TZ_Portfolio_PlusPluginHelper::importPlugin('content');
            TZ_Portfolio_PlusPluginHelper::importPlugin('mediatype');
            $dispatcher->trigger('onAlwaysLoadDocument', array('com_tz_portfolio_plus.users'));
            $dispatcher->trigger('onLoadData', array('com_tz_portfolio_plus.users', $items, $params));
            foreach ($items as $i => &$item) {
                if ($mainCategories && isset($mainCategories[$item->id])) {
                    $mainCategory = $mainCategories[$item->id];
                    if ($mainCategory) {
                        $item->catid = $mainCategory->id;
                        $item->category_title = $mainCategory->title;
                        $item->catslug = $mainCategory->id . ':' . $mainCategory->alias;
                        $item->category_link = $mainCategory->link;
                    }
                } else {
                    // Create main category's link
                    $item->category_link = TZ_Portfolio_PlusHelperRoute::getCategoryRoute($item->catid);
                }
                // Get all second categories
                $item->second_categories = null;
                if (isset($second_categories[$item->id])) {
                    $item->second_categories = $second_categories[$item->id];
                }
                // Get article's tags
                $item->tags = null;
                if ($tags && count($tags) && isset($tags[$item->id])) {
                    $item->tags = $tags[$item->id];
                }
                /*** New source ***/
                $tmpl = null;
                if ($item->params->get('tz_use_lightbox', 0)) {
                    $tmpl = '&tmpl=component';
                }
                $config = JFactory::getConfig();
                $ssl = -1;
                if ($config->get('force_ssl')) {
                    $ssl = 1;
                }
                // Create article link
                $item->link = JRoute::_(TZ_Portfolio_PlusHelperRoute::getArticleRoute($item->slug, $item->catid) . $tmpl);
                $item->fullLink = JRoute::_(TZ_Portfolio_PlusHelperRoute::getArticleRoute($item->slug, $item->catid), true, $ssl);
                // Create author link
                $item->author_link = JRoute::_(TZ_Portfolio_PlusHelperRoute::getUserRoute($item->created_by, $params->get('user_menu_active', 'auto')));
                // Compute the asset access permissions.
                // Technically guest could edit an article, but lets not check that to improve performance a little.
                if (!$guest) {
                    $asset = 'com_tz_portfolio_plus.article.' . $item->id;
                    // Check general edit permission first.
                    if ($user->authorise('core.edit', $asset)) {
                        $item->params->set('access-edit', true);
                    } elseif (!empty($userId) && $user->authorise('core.edit.own', $asset)) {
                        // Check for a valid user and that they are the owner.
                        if ($userId == $item->created_by) {
                            $item->params->set('access-edit', true);
                        }
                    }
                }
                // Old plugins: Ensure that text property is available
                if (!isset($item->text)) {
                    $item->text = $item->introtext;
                }
                if (version_compare(COM_TZ_PORTFOLIO_PLUS_VERSION, '3.1.7', '<')) {
                    $item->text = null;
                    if ($params->get('show_intro', 1)) {
                        $item->text = $item->introtext;
                    }
                }
                $item->event = new stdClass();
                //Call trigger in group content
                $results = $dispatcher->trigger('onContentPrepare', array('com_tz_portfolio_plus.users', &$item, &$params, $state->get('offset')));
                $item->introtext = $item->text;
                $results = $dispatcher->trigger('onContentAfterTitle', array('com_tz_portfolio_plus.users', &$item, &$params, $state->get('offset')));
                $item->event->afterDisplayTitle = trim(implode("\n", $results));
                $results = $dispatcher->trigger('onContentBeforeDisplay', array('com_tz_portfolio_plus.users', &$item, &$params, $state->get('offset')));
                $item->event->beforeDisplayContent = trim(implode("\n", $results));
                $results = $dispatcher->trigger('onContentAfterDisplay', array('com_tz_portfolio_plus.users', &$item, &$params, $state->get('offset')));
                $item->event->afterDisplayContent = trim(implode("\n", $results));
                $results = $dispatcher->trigger('onContentTZPortfolioVote', array('com_tz_portfolio_plus.users', &$item, &$params, $state->get('offset')));
                $item->event->TZPortfolioVote = trim(implode("\n", $results));
                // Process the tz portfolio's content plugins.
                $results = $dispatcher->trigger('onContentDisplayVote', array('com_tz_portfolio_plus.users', &$item, &$params, $state->get('offset')));
                $item->event->contentDisplayVote = trim(implode("\n", $results));
                $results = $dispatcher->trigger('onBeforeDisplayAdditionInfo', array('com_tz_portfolio_plus.users', &$item, &$params, $state->get('offset')));
                $item->event->beforeDisplayAdditionInfo = trim(implode("\n", $results));
                $results = $dispatcher->trigger('onAfterDisplayAdditionInfo', array('com_tz_portfolio_plus.users', &$item, &$params, $state->get('offset')));
                $item->event->afterDisplayAdditionInfo = trim(implode("\n", $results));
                $results = $dispatcher->trigger('onContentDisplayListView', array('com_tz_portfolio_plus.users', &$item, &$params, $state->get('offset')));
                $item->event->contentDisplayListView = trim(implode("\n", $results));
                //Call trigger in group tz_portfolio_plus_mediatype
                $results = $dispatcher->trigger('onContentDisplayMediaType', array('com_tz_portfolio_plus.users', &$item, &$params, $state->get('offset')));
                if ($item) {
                    $item->event->onContentDisplayMediaType = trim(implode("\n", $results));
                    if ($results = $dispatcher->trigger('onAddMediaType')) {
                        $mediatypes = array();
                        foreach ($results as $result) {
                            if (isset($result->special) && $result->special) {
                                $mediatypes[] = $result->value;
                            }
                        }
                        $item->mediatypes = $mediatypes;
                    }
                } else {
                    unset($items[$i]);
                }
            }
        }
        //Escape strings for HTML output
        $this->pageclass_sfx = htmlspecialchars($params->get('pageclass_sfx'));
        if ($active) {
            $params->def('page_heading', $params->get('page_title', $active->title));
        } else {
            $params->def('page_heading', JText::_('JGLOBAL_ARTICLES'));
        }
        $this->items = $items;
        $this->params = $params;
        $this->assign('mediaParams', $params);
        $this->assign('pagination', $this->get('Pagination'));
        if ($author = JFactory::getUser($state->get('users.id'))) {
            $author_registry = $author->getParameters();
            $author_info = new stdClass();
            $author_info->id = $author->id;
            $author_info->url = $author_registry->get('tz_portfolio_plus_user_url');
            $author_info->email = $author->email;
            $author_info->gender = $author_registry->get('tz_portfolio_plus_user_gender');
            $author_info->avatar = $author_registry->get('tz_portfolio_plus_user_avatar');
            $author_info->social_links = null;
            if ($social_links = $author_registry->get('tz_portfolio_plus_user_social_link')) {
                foreach ($social_links as &$social_link) {
                    $social_link = json_decode($social_link);
                }
                $author_info->social_links = $social_links;
            }
            $author_info->description = $author_registry->get('tz_portfolio_plus_user_description');
            $author_info->author = $author->name;
            $author_info->author_link = JRoute::_(TZ_Portfolio_PlusHelperRoute::getUserRoute($state->get('users.id'), $params->get('user_menu_active', 'auto')));
            $this->item_author = $author_info;
        }
        $params = $state->params;
        JModelLegacy::addIncludePath(COM_TZ_PORTFOLIO_PLUS_PATH_SITE . DIRECTORY_SEPARATOR . 'models');
        $model = JModelLegacy::getInstance('Portfolio', 'TZ_Portfolio_PlusModel', array('ignore_request' => true));
        $model->setState('params', $params);
        $model->setState('filter.userId', $state->get('users.id'));
        $this->char = $state->get('filter.char');
        $this->availLetter = $model->getAvailableLetter();
        if ($params->get('tz_use_lightbox', 0) == 1) {
            $doc->addCustomTag('<script type="text/javascript" src="components/com_tz_portfolio_plus/js' . '/jquery.fancybox.pack.js"></script>');
            $doc->addStyleSheet('components/com_tz_portfolio_plus/css/fancybox.min.css');
            $width = null;
            $height = null;
            $autosize = null;
            if ($params->get('tz_lightbox_width')) {
                if (preg_match('/%|px/', $params->get('tz_lightbox_width'))) {
                    $width = 'width:\'' . $params->get('tz_lightbox_width') . '\',';
                } else {
                    $width = 'width:' . $params->get('tz_lightbox_width') . ',';
                }
            }
            if ($params->get('tz_lightbox_height')) {
                if (preg_match('/%|px/', $params->get('tz_lightbox_height'))) {
                    $height = 'height:\'' . $params->get('tz_lightbox_height') . '\',';
                } else {
                    $height = 'height:' . $params->get('tz_lightbox_height') . ',';
                }
            }
            if ($width || $height) {
                $autosize = 'fitToView: false,autoSize: false,';
            }
            $scrollHidden = null;
            if ($params->get('use_custom_scrollbar', 1)) {
                $scrollHidden = ',scrolling: "no"
                                    ,iframe: {
                                        scrolling : "no",
                                    }';
            }
            $doc->addCustomTag('<script type="text/javascript">
                jQuery(\'.fancybox\').fancybox({
                    type:\'iframe\',
                    openSpeed:' . $params->get('tz_lightbox_speed', 350) . ',
                    openEffect: "' . $params->get('tz_lightbox_transition', 'elastic') . '",
                    ' . $width . $height . $autosize . '
		            helpers:  {
                        title : {
                            type : "inside"
                        },
                        overlay : {
                            css : {background: "rgba(0,0,0,' . $params->get('tz_lightbox_opacity', 0.75) . ')"}
                        }
                    }' . $scrollHidden . '
                });
                </script>
            ');
        }
        $doc->addStyleSheet('components/com_tz_portfolio_plus/css/tzportfolioplus.min.css');
        $this->_prepareDocument();
        // Add feed links
        if ($params->get('show_feed_link', 1)) {
            $link = '&format=feed&limitstart=';
            $attribs = array('type' => 'application/rss+xml', 'title' => 'RSS 2.0');
            $doc->addHeadLink(JRoute::_($link . '&type=rss'), 'alternate', 'rel', $attribs);
            $attribs = array('type' => 'application/atom+xml', 'title' => 'Atom 1.0');
            $doc->addHeadLink(JRoute::_($link . '&type=atom'), 'alternate', 'rel', $attribs);
        }
        parent::display($tpl);
    }
Example #3
0
 public function display($tpl = null)
 {
     $app = JFactory::getApplication();
     $user = JFactory::getUser();
     $doc = JFactory::getDocument();
     $doc->addStyleSheet('components/com_tz_portfolio_plus/css/tzportfolioplus.min.css');
     // Get some data from the models
     $state = $this->get('State');
     $params = $state->params;
     // Set value again for option tz_portfolio_plus_redirect
     if ($params->get('tz_portfolio_plus_redirect') == 'default') {
         $params->set('tz_portfolio_plus_redirect', 'article');
     }
     $items = $this->get('Items');
     $parent = $this->get('Parent');
     $pagination = $this->get('Pagination');
     // Check for errors.
     if (count($errors = $this->get('Errors'))) {
         JError::raiseError(500, implode("\n", $errors));
         return false;
     }
     // Check whether category access level allows access.
     $user = JFactory::getUser();
     $content_ids = array();
     if ($items) {
         $content_ids = JArrayHelper::getColumn($items, 'id');
     }
     $tags = null;
     if (count($content_ids) && $params->get('show_tags', 1)) {
         $tags = TZ_Portfolio_PlusFrontHelperTags::getTagsByArticleId($content_ids, array('orderby' => 'm.contentid', 'reverse_contentid' => true));
     }
     $_params = null;
     $dispatcher = JDispatcher::getInstance();
     $mainCategories = TZ_Portfolio_PlusFrontHelperCategories::getCategoriesByArticleId($content_ids, array('main' => true));
     $second_categories = TZ_Portfolio_PlusFrontHelperCategories::getCategoriesByArticleId($content_ids, array('main' => false));
     JPluginHelper::importPlugin('content');
     TZ_Portfolio_PlusPluginHelper::importPlugin('content');
     TZ_Portfolio_PlusPluginHelper::importPlugin('mediatype');
     $dispatcher->trigger('onAlwaysLoadDocument', array('com_tz_portfolio_plus.date'));
     $dispatcher->trigger('onLoadData', array('com_tz_portfolio_plus.date', $items, $params));
     $mediatypes = array();
     if ($results = $dispatcher->trigger('onAddMediaType')) {
         foreach ($results as $result) {
             if (isset($result->special) && $result->special) {
                 $mediatypes[] = $result->value;
             }
         }
     }
     for ($i = 0, $n = count($items); $i < $n; $i++) {
         $item =& $items[$i];
         if ($mainCategories && isset($mainCategories[$item->id])) {
             $mainCategory = $mainCategories[$item->id];
             if ($mainCategory) {
                 $item->catid = $mainCategory->id;
                 $item->category_title = $mainCategory->title;
                 $item->catslug = $mainCategory->id . ':' . $mainCategory->alias;
                 $item->category_link = $mainCategory->link;
             }
         } else {
             // Create main category's link
             $item->category_link = TZ_Portfolio_PlusHelperRoute::getCategoryRoute($item->catid);
         }
         // Get all second categories
         $item->second_categories = null;
         if (isset($second_categories[$item->id])) {
             $item->second_categories = $second_categories[$item->id];
         }
         // Get article's tags
         $item->tags = null;
         if ($tags && count($tags) && isset($tags[$item->id])) {
             $item->tags = $tags[$item->id];
         }
         /*** New source ***/
         $tmpl = null;
         if ($item->params->get('tz_use_lightbox', 0)) {
             $tmpl = '&tmpl=component';
         }
         $config = JFactory::getConfig();
         $ssl = -1;
         if ($config->get('force_ssl')) {
             $ssl = 1;
         }
         // Create article link
         $item->link = JRoute::_(TZ_Portfolio_PlusHelperRoute::getArticleRoute($item->slug, $item->catid) . $tmpl);
         $item->fullLink = JRoute::_(TZ_Portfolio_PlusHelperRoute::getArticleRoute($item->slug, $item->catid), true, $ssl);
         // Create author link
         $item->author_link = JRoute::_(TZ_Portfolio_PlusHelperRoute::getUserRoute($item->created_by, $params->get('user_menu_active', 'auto')));
         // No link for ROOT category
         if ($item->parent_alias == 'root') {
             $item->parent_slug = null;
         }
         $item->event = new stdClass();
         // Old plugins: Ensure that text property is available
         if (!isset($item->text)) {
             $item->text = $item->introtext;
         }
         //Call trigger in group content
         $results = $dispatcher->trigger('onContentPrepare', array('com_tz_portfolio_plus.date', &$item, &$item->params, 0));
         $item->introtext = $item->text;
         $results = $dispatcher->trigger('onContentAfterTitle', array('com_tz_portfolio_plus.date', &$item, &$item->params, 0));
         $item->event->afterDisplayTitle = trim(implode("\n", $results));
         $results = $dispatcher->trigger('onContentBeforeDisplay', array('com_tz_portfolio_plus.date', &$item, &$item->params, 0));
         $item->event->beforeDisplayContent = trim(implode("\n", $results));
         $results = $dispatcher->trigger('onContentAfterDisplay', array('com_tz_portfolio_plus.date', &$item, &$item->params, 0));
         $item->event->afterDisplayContent = trim(implode("\n", $results));
         // Process the tz portfolio's content plugins.
         $results = $dispatcher->trigger('onContentDisplayVote', array('com_tz_portfolio_plus.date', &$item, &$item->params, 0));
         $item->event->contentDisplayVote = trim(implode("\n", $results));
         $results = $dispatcher->trigger('onBeforeDisplayAdditionInfo', array('com_tz_portfolio_plus.date', &$item, &$item->params, 0));
         $item->event->beforeDisplayAdditionInfo = trim(implode("\n", $results));
         $results = $dispatcher->trigger('onAfterDisplayAdditionInfo', array('com_tz_portfolio_plus.date', &$item, &$item->params, 0));
         $item->event->afterDisplayAdditionInfo = trim(implode("\n", $results));
         $results = $dispatcher->trigger('onContentDisplayListView', array('com_tz_portfolio_plus.date', &$item, &$item->params, 0));
         $item->event->contentDisplayListView = trim(implode("\n", $results));
         //Call trigger in group tz_portfolio_plus_mediatype
         if ($item) {
             $results = $dispatcher->trigger('onContentDisplayMediaType', array('com_tz_portfolio_plus.date', &$item, &$item->params, 0));
             if ($item) {
                 $item->event->onContentDisplayMediaType = trim(implode("\n", $results));
                 if ($results = $dispatcher->trigger('onAddMediaType')) {
                     $mediatypes = array();
                     foreach ($results as $result) {
                         if (isset($result->special) && $result->special) {
                             $mediatypes[] = $result->value;
                         }
                     }
                     $item->mediatypes = $mediatypes;
                 }
             } else {
                 unset($items[$i]);
             }
         }
     }
     //Escape strings for HTML output
     $this->pageclass_sfx = htmlspecialchars($params->get('pageclass_sfx'));
     $this->state = $state;
     $this->params = $params;
     $this->items = $items;
     $this->pagination = $pagination;
     $this->assignRef('user', $user);
     $this->assign('listImage', $this->get('CatImages'));
     JModelLegacy::addIncludePath(COM_TZ_PORTFOLIO_PLUS_PATH_SITE . DIRECTORY_SEPARATOR . 'models');
     $model = JModelLegacy::getInstance('Portfolio', 'TZ_Portfolio_PlusModel', array('ignore_request' => true));
     $pParams = clone $params;
     $pParams->set('tz_catid', $params->get('tz_catid', array()));
     $model->setState('params', $pParams);
     $model->setState('filter.year', $state->get('filter.year'));
     $model->setState('filter.month', $state->get('filter.month'));
     $this->char = $state->get('filter.char');
     $this->availLetter = $model->getAvailableLetter();
     $this->assign('mediaParams', $params);
     if ($params->get('tz_use_lightbox', 0) == 1) {
         $doc->addCustomTag('<script type="text/javascript" src="components/com_tz_portfolio_plus/js' . '/jquery.fancybox.pack.js"></script>');
         $doc->addStyleSheet('components/com_tz_portfolio_plus/css/fancybox.min.css');
         $width = null;
         $height = null;
         $autosize = null;
         if ($params->get('tz_lightbox_width')) {
             if (preg_match('/%|px/', $params->get('tz_lightbox_width'))) {
                 $width = 'width:\'' . $params->get('tz_lightbox_width') . '\',';
             } else {
                 $width = 'width:' . $params->get('tz_lightbox_width') . ',';
             }
         }
         if ($params->get('tz_lightbox_height')) {
             if (preg_match('/%|px/', $params->get('tz_lightbox_height'))) {
                 $height = 'height:\'' . $params->get('tz_lightbox_height') . '\',';
             } else {
                 $height = 'height:' . $params->get('tz_lightbox_height') . ',';
             }
         }
         if ($width || $height) {
             $autosize = 'fitToView: false,autoSize: false,';
         }
         $scrollHidden = null;
         if ($params->get('use_custom_scrollbar', 1)) {
             $scrollHidden = ',scrolling: "no"
                                 ,iframe: {
                                     scrolling : "no",
                                 }';
         }
         $doc->addCustomTag('<script type="text/javascript">
             jQuery(\'.fancybox\').fancybox({
                 type:\'iframe\',
                 openSpeed:' . $params->get('tz_lightbox_speed', 350) . ',
                 openEffect: "' . $params->get('tz_lightbox_transition', 'elastic') . '",
                 ' . $width . $height . $autosize . '
                 helpers:  {
                     title : {
                         type : "inside"
                     },
                     overlay : {
                         css : {background: "rgba(0,0,0,' . $params->get('tz_lightbox_opacity', 0.75) . ')"}
                     }
                 }' . $scrollHidden . '
             });
             </script>
         ');
     }
     $doc->addStyleSheet('components/com_tz_portfolio_plus/css/tzportfolioplus.min.css');
     //        $this->_prepareDocument();
     // Add feed links
     if ($this->params->get('show_feed_link', 1)) {
         $link = '&format=feed&limitstart=';
         $attribs = array('type' => 'application/rss+xml', 'title' => 'RSS 2.0');
         $this->document->addHeadLink(JRoute::_($link . '&type=rss'), 'alternate', 'rel', $attribs);
         $attribs = array('type' => 'application/atom+xml', 'title' => 'Atom 1.0');
         $this->document->addHeadLink(JRoute::_($link . '&type=atom'), 'alternate', 'rel', $attribs);
     }
     parent::display($tpl);
 }
Example #4
0
 function display($tpl = null)
 {
     // Initialise variables.
     $app = JFactory::getApplication();
     $doc = JFactory::getDocument();
     $doc->addStyleSheet('components/com_tz_portfolio_plus/css/tzportfolioplus.min.css');
     $tmpl = $app->input->getString('tmpl');
     if ($tmpl) {
         JHtml::_('bootstrap.framework');
         JHtml::_('jquery.framework');
     }
     $user = JFactory::getUser();
     $dispatcher = JDispatcher::getInstance();
     $this->state = $this->get('State');
     $params = $this->state->get('params');
     $this->item = $this->get('Item');
     $offset = $this->state->get('list.offset');
     $related = $this->get('ItemRelated');
     // Merge article params. If this is single-article view, menu params override article params
     // Otherwise, article params override menu item params
     $this->params = $this->state->get('params');
     $active = $app->getMenu()->getActive();
     $temp = clone $this->params;
     $tempR = clone $this->params;
     JPluginHelper::importPlugin('content');
     TZ_Portfolio_PlusPluginHelper::importPlugin('mediatype');
     TZ_Portfolio_PlusPluginHelper::importPlugin('content');
     if ($this->item->id && $params->get('show_tags', 1)) {
         $this->listTags = TZ_Portfolio_PlusFrontHelperTags::getTagsByArticleId($this->item->id, array('orderby' => 'm.contentid', 'menuActive' => $params->get('menu_active', 'auto')));
     }
     $mediatypes = array();
     if ($results = $dispatcher->trigger('onAddMediaType')) {
         foreach ($results as $result) {
             if (isset($result->special) && $result->special) {
                 $mediatypes[] = $result->value;
             }
         }
     }
     if ($tmpl) {
         $tmpl = '&amp;tmpl=' . $tmpl;
     }
     if ($params->get('tz_use_lightbox', 0) && !$tmpl) {
         $tmpl = '&amp;tmpl=component';
     }
     $this->print = $app->input->getBool('print');
     $this->user = $user;
     // Check for errors.
     if (count($errors = $this->get('Errors'))) {
         JError::raiseWarning(500, implode("\n", $errors));
         return false;
     }
     // Create a shortcut for $item.
     $item =& $this->item;
     // Get second categories
     $second_categories = TZ_Portfolio_PlusFrontHelperCategories::getCategoriesByArticleId($item->id, array('main' => false, 'reverse_contentid' => false));
     $item->second_categories = $second_categories;
     // Add router helpers.
     $item->slug = $item->alias ? $item->id . ':' . $item->alias : $item->id;
     $item->catslug = $item->category_alias ? $item->catid . ':' . $item->category_alias : $item->catid;
     $item->parent_slug = $item->category_alias ? $item->parent_id . ':' . $item->parent_alias : $item->parent_id;
     // TODO: Change based on shownoauth
     $item->readmore_link = null;
     // Check to see which parameters should take priority
     if ($active) {
         $currentLink = $active->link;
         // If the current view is the active item and an article view for this article, then the menu item params take priority
         if (strpos($currentLink, 'view=article') && strpos($currentLink, '&id=' . (string) $item->id)) {
             // $item->params are the article params, $temp are the menu item params
             // Merge so that the menu item params take priority
             $item->params->merge($temp);
             // Load layout from active query (in case it is an alternative menu item)
             if (isset($active->query['layout'])) {
                 $this->setLayout($active->query['layout']);
             }
         } else {
             // Current view is not a single article, so the article params take priority here
             // Merge the menu item params with the article params so that the article params take priority
             $temp->merge($item->params);
             $item->params = $temp;
             // Check for alternative layouts (since we are not in a single-article menu item)
             // Single-article menu item layout takes priority over alt layout for an article
             if ($layout = $item->params->get('article_layout')) {
                 $this->setLayout($layout);
             }
         }
     } else {
         // Merge so that article params take priority
         $temp->merge($item->params);
         $item->params = $temp;
         // Check for alternative layouts (since we are not in a single-article menu item)
         // Single-article menu item layout takes priority over alt layout for an article
         if ($layout = $item->params->get('article_layout')) {
             $this->setLayout($layout);
         }
     }
     $item->params->set('show_cat_icons', $item->params->get('show_icons'));
     // Create "link" and "fullLink" for article object
     $tmpl = null;
     if ($item->params->get('tz_use_lightbox', 0)) {
         $tmpl = '&amp;tmpl=component';
     }
     $config = JFactory::getConfig();
     $ssl = -1;
     if ($config->get('force_ssl')) {
         $ssl = 1;
     }
     $item->link = JRoute::_(TZ_Portfolio_PlusHelperRoute::getArticleRoute($item->slug, $item->catid) . $tmpl, true, $ssl);
     $item->fullLink = JRoute::_(TZ_Portfolio_PlusHelperRoute::getArticleRoute($item->slug, $item->catid), true, $ssl);
     $item->parent_link = JRoute::_(TZ_Portfolio_PlusHelperRoute::getCategoryRoute($item->parent_slug));
     $item->category_link = JRoute::_(TZ_Portfolio_PlusHelperRoute::getCategoryRoute($item->catslug));
     $item->author_link = JRoute::_(TZ_Portfolio_PlusHelperRoute::getUserRoute($item->created_by, $params->get('user_menu_active', 'auto')));
     $url = JURI::getInstance()->toString();
     $this->assign('linkCurrent', $url);
     // Check the view access to the article (the model has already computed the values).
     if ($item->params->get('access-view') != true && ($item->params->get('show_noauth') != true && $user->get('guest'))) {
         JError::raiseWarning(403, JText::_('JERROR_ALERTNOAUTHOR'));
         return;
     }
     //
     // Process the content plugins.
     //
     $dispatcher->trigger('onAlwaysLoadDocument', array('com_tz_portfolio_plus.portfolio'));
     $dispatcher->trigger('onLoadData', array('com_tz_portfolio_plus.portfolio', $this->item, $params));
     if ($item->params->get('show_intro', 1)) {
         $item->text = $item->introtext . ' ' . $item->fulltext;
     } elseif ($item->fulltext) {
         $item->text = $item->fulltext;
     } else {
         $item->text = $item->introtext;
     }
     if ($item->params->get('show_intro', 1)) {
         $text = $item->introtext . ' ' . $item->fulltext;
     } elseif ($item->fulltext) {
         $text = $item->fulltext;
     } else {
         $text = $item->introtext;
     }
     if ($item->introtext && !empty($item->introtext)) {
         $item->text = $item->introtext;
         $results = $dispatcher->trigger('onContentPrepare', array('com_tz_portfolio_plus.article', &$item, &$this->params, $offset));
         $results = $dispatcher->trigger('onContentAfterTitle', array('com_tz_portfolio_plus.article', &$item, &$this->params, $offset));
         $results = $dispatcher->trigger('onContentBeforeDisplay', array('com_tz_portfolio_plus.article', &$item, &$this->params, $offset));
         $results = $dispatcher->trigger('onContentAfterDisplay', array('com_tz_portfolio_plus.article', &$item, &$this->params, $offset));
         $item->introtext = $item->text;
     }
     if ($item->fulltext && !empty($item->fulltext)) {
         $item->text = $item->fulltext;
         $results = $dispatcher->trigger('onContentPrepare', array('com_tz_portfolio_plus.article', &$item, &$this->params, $offset));
         $results = $dispatcher->trigger('onContentAfterTitle', array('com_tz_portfolio_plus.article', &$item, &$this->params, $offset));
         $results = $dispatcher->trigger('onContentBeforeDisplay', array('com_tz_portfolio_plus.article', &$item, &$this->params, $offset));
         $results = $dispatcher->trigger('onContentAfterDisplay', array('com_tz_portfolio_plus.article', &$item, &$this->params, $offset));
         $item->fulltext = $item->text;
     }
     $item->text = $text;
     $results = $dispatcher->trigger('onContentPrepare', array('com_tz_portfolio_plus.article', &$item, &$this->params, $offset));
     $item->event = new stdClass();
     $results = $dispatcher->trigger('onContentAfterTitle', array('com_tz_portfolio_plus.article', &$item, &$this->params, $offset));
     $item->event->afterDisplayTitle = trim(implode("\n", $results));
     $results = $dispatcher->trigger('onContentBeforeDisplay', array('com_tz_portfolio_plus.article', &$item, &$this->params, $offset));
     $item->event->beforeDisplayContent = trim(implode("\n", $results));
     $results = $dispatcher->trigger('onContentAfterDisplay', array('com_tz_portfolio_plus.article', &$item, &$this->params, $offset));
     $item->event->afterDisplayContent = trim(implode("\n", $results));
     // Trigger portfolio's plugin
     $results = $dispatcher->trigger('onContentDisplayCommentCount', array('com_tz_portfolio_plus.article', &$item, &$item->params, $offset));
     $item->event->contentDisplayCommentCountCount = trim(implode("\n", $results));
     $results = $dispatcher->trigger('onContentDisplayVote', array('com_tz_portfolio_plus.article', &$item, &$item->params, $offset));
     $item->event->contentDisplayVote = trim(implode("\n", $results));
     $results = $dispatcher->trigger('onBeforeDisplayAdditionInfo', array('com_tz_portfolio_plus.article', &$item, &$item->params, $offset));
     $item->event->beforeDisplayAdditionInfo = trim(implode("\n", $results));
     $results = $dispatcher->trigger('onAfterDisplayAdditionInfo', array('com_tz_portfolio_plus.article', &$item, &$item->params, $offset));
     $item->event->afterDisplayAdditionInfo = trim(implode("\n", $results));
     $results = $dispatcher->trigger('onContentDisplayMediaType', array('com_tz_portfolio_plus.article', &$item, &$item->params, $offset));
     $item->event->onContentDisplayMediaType = trim(implode("\n", $results));
     if ($template = TZ_Portfolio_PlusTemplate::getTemplate(true)) {
         $tplparams = $template->params;
         if (!$tplparams->get('use_single_layout_builder', 1)) {
             $results = $dispatcher->trigger('onContentDisplayArticleView', array('com_tz_portfolio_plus.article', &$item, &$item->params, $offset));
             $item->event->contentDisplayArticleView = trim(implode("\n", $results));
         }
     }
     // Increment the hit counter of the article.
     if (!$this->params->get('intro_only') && $offset == 0) {
         $model = $this->getModel();
         $model->hit();
     }
     foreach ($related as $i => &$itemR) {
         $itemR->link = JRoute::_(TZ_Portfolio_PlusHelperRoute::getArticleRoute($itemR->slug, $itemR->catid) . $tmpl);
         $media = $itemR->media;
         $registry = new JRegistry();
         $registry->loadString($media);
         $media = $registry->toObject();
         $itemR->media = $media;
         $itemR->event = new stdClass();
         $results = $dispatcher->trigger('onContentDisplayMediaType', array('com_tz_portfolio_plus.article', &$itemR, &$item->params, $offset, 'related'));
         if ($itemR) {
             $itemR->event->onContentDisplayMediaType = trim(implode("\n", $results));
             $itemR->mediatypes = $mediatypes;
         } else {
             unset($related[$i]);
         }
     }
     $this->itemsRelated = $related;
     // Get article's extrafields
     JLoader::import('extrafields', COM_TZ_PORTFOLIO_PLUS_SITE_HELPERS_PATH);
     $extraFields = TZ_Portfolio_PlusFrontHelperExtraFields::getExtraFields($this->item, $params);
     $this->item->extrafields = $extraFields;
     //Escape strings for HTML output
     $this->pageclass_sfx = htmlspecialchars($this->item->params->get('pageclass_sfx'));
     $this->_prepareDocument();
     $this->generateLayout($item, $params, $dispatcher);
     parent::display($tpl);
 }
Example #5
0
 public static function getCategoriesByArticle($params)
 {
     if ($articles = modTZ_Portfolio_PlusArticlesHelper::getList($params)) {
         $contentId = modTZ_Portfolio_PlusArticlesHelper::__getArticleByKey($articles, 'content_id');
         return TZ_Portfolio_PlusFrontHelperCategories::getCategoriesByArticleId($contentId, array('reverse_contentid' => true));
     }
     return false;
 }