You've already forked joomla_test
							
							
		
			
	
	
		
			136 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			136 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @version     $Id: view.json.php 1812 2013-01-14 18:45:06Z lefteris.kavadas $
							 | 
						||
| 
								 | 
							
								 * @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 K2ViewItem extends K2View
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function display($tpl = null)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $mainframe = JFactory::getApplication();
							 | 
						||
| 
								 | 
							
								        $user = JFactory::getUser();
							 | 
						||
| 
								 | 
							
								        $document = JFactory::getDocument();
							 | 
						||
| 
								 | 
							
								        if (K2_JVERSION == '15')
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            $document->setMimeEncoding('application/json');
							 | 
						||
| 
								 | 
							
								            $document->setType('json');
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $params = K2HelperUtilities::getParams('com_k2');
							 | 
						||
| 
								 | 
							
								        $view = JRequest::getWord('view');
							 | 
						||
| 
								 | 
							
								        $task = JRequest::getWord('task');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $db = JFactory::getDBO();
							 | 
						||
| 
								 | 
							
								        $jnow = JFactory::getDate();
							 | 
						||
| 
								 | 
							
								        $now =  K2_JVERSION == '15'?$jnow->toMySQL():$jnow->toSql();
							 | 
						||
| 
								 | 
							
								        $nullDate = $db->getNullDate();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Get item
							 | 
						||
| 
								 | 
							
								        $model = $this->getModel();
							 | 
						||
| 
								 | 
							
								        $item = $model->getData();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Does the item exists?
							 | 
						||
| 
								 | 
							
								        if (!is_object($item) || !$item->id)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            JError::raiseError(404, JText::_('K2_ITEM_NOT_FOUND'));
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Override some params because we want to show all elements in JSON
							 | 
						||
| 
								 | 
							
								        $itemParams = class_exists('JParameter') ? new JParameter($item->params) : new JRegistry($item->params);
							 | 
						||
| 
								 | 
							
								        $itemParams->set('itemIntroText', true);
							 | 
						||
| 
								 | 
							
								        $itemParams->set('itemFullText', true);
							 | 
						||
| 
								 | 
							
								        $itemParams->set('itemTags', true);
							 | 
						||
| 
								 | 
							
								        $itemParams->set('itemExtraFields', true);
							 | 
						||
| 
								 | 
							
								        $itemParams->set('itemAttachments', true);
							 | 
						||
| 
								 | 
							
								        $itemParams->set('itemRating', true);
							 | 
						||
| 
								 | 
							
								        $itemParams->set('itemAuthor', true);
							 | 
						||
| 
								 | 
							
								        $itemParams->set('itemImageGallery', true);
							 | 
						||
| 
								 | 
							
								        $itemParams->set('itemVideo', true);
							 | 
						||
| 
								 | 
							
								        $item->params = $itemParams->toString();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Prepare item
							 | 
						||
| 
								 | 
							
								        $item = $model->prepareItem($item, $view, $task);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Plugins
							 | 
						||
| 
								 | 
							
								        $item = $model->execPlugins($item, $view, $task);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Access check
							 | 
						||
| 
								 | 
							
								        if (K2_JVERSION != '15')
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            if (!in_array($item->access, $user->getAuthorisedViewLevels()) || !in_array($item->category->access, $user->getAuthorisedViewLevels()))
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								               JError::raiseError(403, JText::_('K2_ALERTNOTAUTH'));
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        else
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            if ($item->access > $user->get('aid', 0) || $item->category->access > $user->get('aid', 0))
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                JError::raiseError(403, JText::_('K2_ALERTNOTAUTH'));
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Published check
							 | 
						||
| 
								 | 
							
								        if (!$item->published || $item->trash)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            JError::raiseError(404, JText::_('K2_ITEM_NOT_FOUND'));
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if ($item->publish_up != $nullDate && $item->publish_up > $now)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            JError::raiseError(404, JText::_('K2_ITEM_NOT_FOUND'));
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if ($item->publish_down != $nullDate && $item->publish_down < $now)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            JError::raiseError(404, JText::_('K2_ITEM_NOT_FOUND'));
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (!$item->category->published || $item->category->trash)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            JError::raiseError(404, JText::_('K2_ITEM_NOT_FOUND'));
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Set default image
							 | 
						||
| 
								 | 
							
								        K2HelperUtilities::setDefaultImage($item, $view);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Build the output object
							 | 
						||
| 
								 | 
							
								        $row = $model->prepareJSONItem($item);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Output
							 | 
						||
| 
								 | 
							
								        $response = new stdClass();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Site
							 | 
						||
| 
								 | 
							
								        $response->site = new stdClass();
							 | 
						||
| 
								 | 
							
								        $uri = JURI::getInstance();
							 | 
						||
| 
								 | 
							
								        $response->site->url = $uri->toString(array('scheme', 'host', 'port'));
							 | 
						||
| 
								 | 
							
								        $config = JFactory::getConfig();
							 | 
						||
| 
								 | 
							
								        $response->site->name = K2_JVERSION == '30' ? $config->get('sitename') : $config->getValue('config.sitename');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $response->item = $row;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $json = json_encode($response);
							 | 
						||
| 
								 | 
							
								        $callback = JRequest::getCmd('callback');
							 | 
						||
| 
								 | 
							
								        if ($callback)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            $document->setMimeEncoding('application/javascript');
							 | 
						||
| 
								 | 
							
								            echo $callback.'('.$json.')';
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        else
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            echo $json;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |