You've already forked joomla_test
							
							
		
			
	
	
		
			291 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			291 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @version		$Id: view.feed.php 1930 2013-02-13 14:11:07Z joomlaworks $
							 | 
						||
| 
								 | 
							
								 * @package		K2
							 | 
						||
| 
								 | 
							
								 * @author		JoomlaWorks http://www.joomlaworks.net
							 | 
						||
| 
								 | 
							
								 * @copyright	Copyright (c) 2006 - 2013 JoomlaWorks Ltd. All rights reserved.
							 | 
						||
| 
								 | 
							
								 * @license		GNU/GPL license: http://www.gnu.org/copyleft/gpl.html
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// no direct access
							 | 
						||
| 
								 | 
							
								defined('_JEXEC') or die;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								jimport('joomla.application.component.view');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class K2ViewItemlist extends K2View
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function display($tpl = null)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $mainframe = JFactory::getApplication();
							 | 
						||
| 
								 | 
							
								        $params = K2HelperUtilities::getParams('com_k2');
							 | 
						||
| 
								 | 
							
								        $document = JFactory::getDocument();
							 | 
						||
| 
								 | 
							
								        $model = $this->getModel('itemlist');
							 | 
						||
| 
								 | 
							
								        $limitstart = JRequest::getInt('limitstart');
							 | 
						||
| 
								 | 
							
								        $moduleID = JRequest::getInt('moduleID');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if ($moduleID)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $result = $model->getModuleItems($moduleID);
							 | 
						||
| 
								 | 
							
								            $items = $result->items;
							 | 
						||
| 
								 | 
							
								            $title = $result->title;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        else
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            //Get data depending on task
							 | 
						||
| 
								 | 
							
								            $task = JRequest::getCmd('task');
							 | 
						||
| 
								 | 
							
								            switch ($task)
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                case 'category' :
							 | 
						||
| 
								 | 
							
								                    //Get category
							 | 
						||
| 
								 | 
							
								                    $id = JRequest::getInt('id');
							 | 
						||
| 
								 | 
							
								                    JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables');
							 | 
						||
| 
								 | 
							
								                    $category = JTable::getInstance('K2Category', 'Table');
							 | 
						||
| 
								 | 
							
								                    $category->load($id);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    // State check
							 | 
						||
| 
								 | 
							
								                    if (!$category->published || $category->trash)
							 | 
						||
| 
								 | 
							
								                    {
							 | 
						||
| 
								 | 
							
								                        JError::raiseError(404, JText::_('K2_CATEGORY_NOT_FOUND'));
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    //Access check
							 | 
						||
| 
								 | 
							
								                    $user = JFactory::getUser();
							 | 
						||
| 
								 | 
							
								                    if (K2_JVERSION != '15')
							 | 
						||
| 
								 | 
							
								                    {
							 | 
						||
| 
								 | 
							
								                        if (!in_array($category->access, $user->getAuthorisedViewLevels()))
							 | 
						||
| 
								 | 
							
								                        {
							 | 
						||
| 
								 | 
							
								                            if ($user->guest)
							 | 
						||
| 
								 | 
							
								                            {
							 | 
						||
| 
								 | 
							
								                                $uri = JFactory::getURI();
							 | 
						||
| 
								 | 
							
								                                $url = 'index.php?option=com_users&view=login&return='.base64_encode($uri->toString());
							 | 
						||
| 
								 | 
							
								                                $mainframe->redirect(JRoute::_($url, false), JText::_('K2_YOU_NEED_TO_LOGIN_FIRST'));
							 | 
						||
| 
								 | 
							
								                            }
							 | 
						||
| 
								 | 
							
								                            else
							 | 
						||
| 
								 | 
							
								                            {
							 | 
						||
| 
								 | 
							
								                                JError::raiseError(403, JText::_('K2_ALERTNOTAUTH'));
							 | 
						||
| 
								 | 
							
								                                return;
							 | 
						||
| 
								 | 
							
								                            }
							 | 
						||
| 
								 | 
							
								                        }
							 | 
						||
| 
								 | 
							
								                        $languageFilter = $mainframe->getLanguageFilter();
							 | 
						||
| 
								 | 
							
								                        $languageTag = JFactory::getLanguage()->getTag();
							 | 
						||
| 
								 | 
							
								                        if ($languageFilter && $category->language != $languageTag && $category->language != '*')
							 | 
						||
| 
								 | 
							
								                        {
							 | 
						||
| 
								 | 
							
								                            return;
							 | 
						||
| 
								 | 
							
								                        }
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                    else
							 | 
						||
| 
								 | 
							
								                    {
							 | 
						||
| 
								 | 
							
								                        if ($category->access > $user->get('aid', 0))
							 | 
						||
| 
								 | 
							
								                        {
							 | 
						||
| 
								 | 
							
								                            if ($user->guest)
							 | 
						||
| 
								 | 
							
								                            {
							 | 
						||
| 
								 | 
							
								                                $uri = JFactory::getURI();
							 | 
						||
| 
								 | 
							
								                                $url = 'index.php?option=com_user&view=login&return='.base64_encode($uri->toString());
							 | 
						||
| 
								 | 
							
								                                $mainframe->redirect(JRoute::_($url, false), JText::_('K2_YOU_NEED_TO_LOGIN_FIRST'));
							 | 
						||
| 
								 | 
							
								                            }
							 | 
						||
| 
								 | 
							
								                            else
							 | 
						||
| 
								 | 
							
								                            {
							 | 
						||
| 
								 | 
							
								                                JError::raiseError(403, JText::_('K2_ALERTNOTAUTH'));
							 | 
						||
| 
								 | 
							
								                                return;
							 | 
						||
| 
								 | 
							
								                            }
							 | 
						||
| 
								 | 
							
								                        }
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    //Merge params
							 | 
						||
| 
								 | 
							
								                    $cparams = class_exists('JParameter') ? new JParameter($category->params) : new JRegistry($category->params);
							 | 
						||
| 
								 | 
							
								                    if ($cparams->get('inheritFrom'))
							 | 
						||
| 
								 | 
							
								                    {
							 | 
						||
| 
								 | 
							
								                        $masterCategory = JTable::getInstance('K2Category', 'Table');
							 | 
						||
| 
								 | 
							
								                        $masterCategory->load($cparams->get('inheritFrom'));
							 | 
						||
| 
								 | 
							
								                        $cparams = class_exists('JParameter') ? new JParameter($masterCategory->params) : new JRegistry($masterCategory->params);
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                    $params->merge($cparams);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    //Category link
							 | 
						||
| 
								 | 
							
								                    $category->link = urldecode(JRoute::_(K2HelperRoute::getCategoryRoute($category->id.':'.urlencode($category->alias))));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    //Set featured flag
							 | 
						||
| 
								 | 
							
								                    JRequest::setVar('featured', $params->get('catFeaturedItems'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    //Set title
							 | 
						||
| 
								 | 
							
								                    $title = $category->name;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    // Set ordering
							 | 
						||
| 
								 | 
							
								                    if ($params->get('singleCatOrdering'))
							 | 
						||
| 
								 | 
							
								                    {
							 | 
						||
| 
								 | 
							
								                        $ordering = $params->get('singleCatOrdering');
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                    else
							 | 
						||
| 
								 | 
							
								                    {
							 | 
						||
| 
								 | 
							
								                        $ordering = $params->get('catOrdering');
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    break;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                case 'user' :
							 | 
						||
| 
								 | 
							
								                    //Get user
							 | 
						||
| 
								 | 
							
								                    $id = JRequest::getInt('id');
							 | 
						||
| 
								 | 
							
								                    $userObject = JFactory::getUser($id);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    //Check user status
							 | 
						||
| 
								 | 
							
								                    if ($userObject->block)
							 | 
						||
| 
								 | 
							
								                    {
							 | 
						||
| 
								 | 
							
								                        JError::raiseError(404, JText::_('K2_USER_NOT_FOUND'));
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    //Set title
							 | 
						||
| 
								 | 
							
								                    $title = $userObject->name;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    // Set ordering
							 | 
						||
| 
								 | 
							
								                    $ordering = $params->get('userOrdering');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    break;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                case 'tag' :
							 | 
						||
| 
								 | 
							
								                    //set title
							 | 
						||
| 
								 | 
							
								                    $title = JText::_('K2_DISPLAYING_ITEMS_BY_TAG').' '.JRequest::getVar('tag');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    // Set ordering
							 | 
						||
| 
								 | 
							
								                    $ordering = $params->get('tagOrdering');
							 | 
						||
| 
								 | 
							
								                    break;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                case 'search' :
							 | 
						||
| 
								 | 
							
								                    //Set title
							 | 
						||
| 
								 | 
							
								                    $title = JText::_('K2_SEARCH_RESULTS_FOR').' '.JRequest::getVar('searchword');
							 | 
						||
| 
								 | 
							
								                    break;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                case 'date' :
							 | 
						||
| 
								 | 
							
								                    // Set title
							 | 
						||
| 
								 | 
							
								                    if (JRequest::getInt('day'))
							 | 
						||
| 
								 | 
							
								                    {
							 | 
						||
| 
								 | 
							
								                        $date = strtotime(JRequest::getInt('year').'-'.JRequest::getInt('month').'-'.JRequest::getInt('day'));
							 | 
						||
| 
								 | 
							
								                        $dateFormat = (K2_JVERSION == '15') ? '%A, %d %B %Y' : 'l, d F Y';
							 | 
						||
| 
								 | 
							
								                        $title = JText::_('K2_ITEMS_FILTERED_BY_DATE').' '.JHTML::_('date', $date, $dateFormat);
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                    else
							 | 
						||
| 
								 | 
							
								                    {
							 | 
						||
| 
								 | 
							
								                        $date = strtotime(JRequest::getInt('year').'-'.JRequest::getInt('month'));
							 | 
						||
| 
								 | 
							
								                        $dateFormat = (K2_JVERSION == '15') ? '%B %Y' : 'F Y';
							 | 
						||
| 
								 | 
							
								                        $title = JText::_('K2_ITEMS_FILTERED_BY_DATE').' '.JHTML::_('date', $date, $dateFormat);
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                    // Set ordering
							 | 
						||
| 
								 | 
							
								                    $ordering = 'rdate';
							 | 
						||
| 
								 | 
							
								                    break;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                default :
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    //Set featured flag
							 | 
						||
| 
								 | 
							
								                    JRequest::setVar('featured', $params->get('catFeaturedItems'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    //Set title
							 | 
						||
| 
								 | 
							
								                    $title = $params->get('page_title');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    // Set ordering
							 | 
						||
| 
								 | 
							
								                    $ordering = $params->get('catOrdering');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    break;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // Various Feed Validations
							 | 
						||
| 
								 | 
							
								            $title = JFilterOutput::ampReplace($title);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // Get items
							 | 
						||
| 
								 | 
							
								            if (!isset($ordering))
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                $items = $model->getData();
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            else
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                $items = $model->getData($ordering);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Prepare feed items
							 | 
						||
| 
								 | 
							
								        $model = &$this->getModel('item');
							 | 
						||
| 
								 | 
							
								        foreach ($items as $item)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $item = $model->prepareFeedItem($item);
							 | 
						||
| 
								 | 
							
								            $item->title = $this->escape($item->title);
							 | 
						||
| 
								 | 
							
								            $item->title = html_entity_decode($item->title);
							 | 
						||
| 
								 | 
							
								            $feedItem = new JFeedItem();
							 | 
						||
| 
								 | 
							
								            $feedItem->title = $item->title;
							 | 
						||
| 
								 | 
							
								            $feedItem->link = $item->link;
							 | 
						||
| 
								 | 
							
								            $feedItem->description = $item->description;
							 | 
						||
| 
								 | 
							
								            $feedItem->date = $item->created;
							 | 
						||
| 
								 | 
							
								            $feedItem->category = $item->category->name;
							 | 
						||
| 
								 | 
							
								            $feedItem->author = $item->author->name;
							 | 
						||
| 
								 | 
							
								            if ($params->get('feedBogusEmail'))
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                $feedItem->authorEmail = $params->get('feedBogusEmail');
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            else
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                if ($mainframe->getCfg('feed_email') == 'author')
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    $feedItem->authorEmail = $item->author->email;
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                else
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    $feedItem->authorEmail = $mainframe->getCfg('mailfrom');
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // Add item
							 | 
						||
| 
								 | 
							
								            $document->addItem($feedItem);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Set title
							 | 
						||
| 
								 | 
							
								        $document = JFactory::getDocument();
							 | 
						||
| 
								 | 
							
								        $menus = JSite::getMenu();
							 | 
						||
| 
								 | 
							
								        $menu = $menus->getActive();
							 | 
						||
| 
								 | 
							
								        if (is_object($menu))
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            $menu_params = class_exists('JParameter') ? new JParameter($menu->params) : new JRegistry($menu->params);
							 | 
						||
| 
								 | 
							
								            if (!$menu_params->get('page_title'))
							 | 
						||
| 
								 | 
							
								                $params->set('page_title', $title);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        else
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            $params->set('page_title', $title);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        if (K2_JVERSION != '15')
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            if ($mainframe->getCfg('sitename_pagetitles', 0) == 1)
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                $title = JText::sprintf('JPAGETITLE', $mainframe->getCfg('sitename'), $params->get('page_title'));
							 | 
						||
| 
								 | 
							
								                $params->set('page_title', $title);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            elseif ($mainframe->getCfg('sitename_pagetitles', 0) == 2)
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                $title = JText::sprintf('JPAGETITLE', $params->get('page_title'), $mainframe->getCfg('sitename'));
							 | 
						||
| 
								 | 
							
								                $params->set('page_title', $title);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $document->setTitle($params->get('page_title'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Prevent spammers from using the tag view
							 | 
						||
| 
								 | 
							
								        if ($task == 'tag' && !count($items))
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            $tag = JRequest::getString('tag');
							 | 
						||
| 
								 | 
							
								            $db = JFactory::getDBO();
							 | 
						||
| 
								 | 
							
								            $db->setQuery('SELECT id FROM #__k2_tags WHERE name = '.$db->quote($tag));
							 | 
						||
| 
								 | 
							
								            $tagID = $db->loadResult();
							 | 
						||
| 
								 | 
							
								            if (!$tagID)
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                JError::raiseError(404, JText::_('K2_NOT_FOUND'));
							 | 
						||
| 
								 | 
							
								                return false;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |