Joomla!是一套获得过多个奖项的内容管理系统(Content Management System, CMS)。Joomla!采用PHP+MySQL数据库开发

源代码在线查看: view.html.php

软件大小: 5657 K
上传用户: fansino
关键词: Joomla Management Content System
下载地址: 免注册下载 普通下载 VIP

相关代码

								/**				 * @version		$Id: view.html.php 11713 2009-03-27 09:18:26Z willebil $				 * @package		Joomla				 * @subpackage	Content				 * @copyright	Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.				 * @license		GNU/GPL, see LICENSE.php				 * Joomla! is free software. This version may have been modified pursuant to the				 * GNU General Public License, and as distributed it includes or is derivative				 * of works licensed under the GNU General Public License or other free or open				 * source software licenses. See COPYRIGHT.php for copyright notices and				 * details.				 */								// Check to ensure this file is included in Joomla!				defined('_JEXEC') or die( 'Restricted access' );								require_once (JPATH_COMPONENT.DS.'view.php');								/**				 * HTML View class for the Content component				 *				 * @package		Joomla				 * @subpackage	Content				 * @since 1.5				 */				class ContentViewCategory extends ContentView				{					function display($tpl = null)					{						global $mainframe, $option;										// Initialize some variables						$user		=& JFactory::getUser();						$uri 		=& JFactory::getURI();						$document	=& JFactory::getDocument();						$pathway	=& $mainframe->getPathway();										// Get the menu item object						$menus = &JSite::getMenu();						$menu  = $menus->getActive();										// Get the page/component configuration						$params = clone($mainframe->getParams('com_content'));										// Request variables						$layout     = JRequest::getCmd('layout');						$task		= JRequest::getCmd('task');										// Parameters						$params->def('num_leading_articles', 	1);						$params->def('num_intro_articles', 		4);						$params->def('num_columns',				2);						$params->def('num_links', 				4);						$params->def('show_headings', 			1);						$params->def('show_pagination',			2);						$params->def('show_pagination_results',	1);						$params->def('show_pagination_limit',	1);						$params->def('filter',					1);						if (($params->def('filter_type', 'title') != 'hits') && ($params->def('filter_type', 'title') != 'author')) {							$params->set('filter_type', 'title');						}										$intro		= $params->get('num_intro_articles');						$leading	= $params->get('num_leading_articles');						$links		= $params->get('num_links');										$limitstart	= JRequest::getVar('limitstart', 0, '', 'int');										if ($layout == 'blog') {							$default_limit = $intro + $leading + $links;						} else {							$params->def('display_num', $mainframe->getCfg('list_limit'));							$default_limit = $params->get('display_num');						}						$limit = $mainframe->getUserStateFromRequest('com_content.'.$this->getLayout().'.limit', 'limit', $default_limit, 'int');										JRequest::setVar('limit', (int) $limit);										$contentConfig = &JComponentHelper::getParams('com_content');						$params->def('show_page_title', 	$contentConfig->get('show_title'));										// Get some data from the model						$items		= & $this->get( 'Data' );						$total		= & $this->get( 'Total' );						$category	= & $this->get( 'Category' );										//add alternate feed link						if($params->get('show_feed_link', 1) == 1)						{							$link	= '&format=feed&limitstart=';							$attribs = array('type' => 'application/rss+xml', 'title' => 'RSS 2.0');							$document->addHeadLink(JRoute::_($link.'&type=rss'), 'alternate', 'rel', $attribs);							$attribs = array('type' => 'application/atom+xml', 'title' => 'Atom 1.0');							$document->addHeadLink(JRoute::_($link.'&type=atom'), 'alternate', 'rel', $attribs);						}										// Create a user access object for the user						$access					= new stdClass();						$access->canEdit		= $user->authorize('com_content', 'edit', 'content', 'all');						$access->canEditOwn		= $user->authorize('com_content', 'edit', 'content', 'own');						$access->canPublish		= $user->authorize('com_content', 'publish', 'content', 'all');										// Set page title per category						// because the application sets a default page title, we need to get it						// right from the menu item itself						if (is_object( $menu )) {							$menu_params = new JParameter( $menu->params );							if (!$menu_params->get( 'page_title')) {								$params->set('page_title',	$category->title);							}						} else {							$params->set('page_title',	$category->title);						}						$document->setTitle( $params->get( 'page_title' ) );										//set breadcrumbs						if(is_object($menu) && $menu->query['view'] != 'category') {							$pathway->addItem($category->title, '');						}										// Prepare category description						$category->description = JHTML::_('content.prepare', $category->description);										$params->def('date_format',	JText::_('DATE_FORMAT_LC1'));										// Keep a copy for safe keeping this is soooooo dirty -- must deal with in a later version						// @todo -- oh my god we need to find this reference issue in 1.6 :)						$this->_params = $params->toArray();										jimport('joomla.html.pagination');						//In case we are in a blog view set the limit						if ($layout == 'blog') {							$pagination = new JPagination($total, $limitstart, $limit - $links);						} else {							$pagination = new JPagination($total, $limitstart, $limit);						}										$this->assign('total',		$total);						$this->assign('action', 	str_replace('&', '&', $uri->toString()));										$this->assignRef('items',		$items);						$this->assignRef('params',		$params);						$this->assignRef('category',	$category);						$this->assignRef('user',		$user);						$this->assignRef('access',		$access);						$this->assignRef('pagination',	$pagination);										parent::display($tpl);					}									function &getItems()					{						global $mainframe;										//create select lists						$user	= &JFactory::getUser();						$lists	= $this->_buildSortLists();										if (!count( $this->items ) )						{							$this->assign('lists',	$lists);							$return = array();							return $return;						}										//create paginatiion						if ($lists['filter']) {							$this->data->link .= '&filter='.urlencode($lists['filter']);						}										$k = 0;						$i = 0;						foreach($this->items as $key => $item)						{							// checks if the item is a public or registered/special item							if ($item->access get('aid', 0))							{								$item->link	= JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->sectionid));								$item->readmore_register = false;							}							else							{								$item->link = JRoute::_('index.php?option=com_user&task=register');								$returnURL = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->sectionid), false);								$fullURL = new JURI($item->link);								$fullURL->setVar('return', base64_encode($returnURL));								$item->link = $fullURL->toString();								$item->readmore_register = true;							}							$item->created	= JHTML::_('date', $item->created, $this->params->get('date_format'));											$item->odd		= $k;							$item->count    = $i;											$this->items[$key] = $item;							$k = 1 - $k;							$i++;						}										$this->assign('lists',	$lists);										return $this->items;					}									function &getItem($index = 0, &$params)					{						global $mainframe;										// Initialize some variables						$user		=& JFactory::getUser();						$dispatcher	=& JDispatcher::getInstance();										$SiteName	= $mainframe->getCfg('sitename');										$item 		=& $this->items[$index];						$item->text = $item->introtext;										$category	= & $this->get( 'Category' );						$item->category = $category->title;						$item->section  = $category->sectiontitle;										// Get the page/component configuration and article parameters						$item->params = clone($params);						$aparams = new JParameter($item->attribs);										// Merge article parameters into the page configuration						$item->params->merge($aparams);										// Process the content preparation plugins						JPluginHelper::importPlugin('content');						$results = $dispatcher->trigger('onPrepareContent', array (& $item, & $item->params, 0));										// Build the link and text of the readmore button						if (($item->params->get('show_readmore') && @ $item->readmore) || $item->params->get('link_titles'))						{							// checks if the item is a public or registered/special item							if ($item->access get('aid', 0))							{								//$item->readmore_link = JRoute::_('index.php?view=article&catid='.$this->category->slug.'&id='.$item->slug);								$item->readmore_link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->sectionid));								$item->readmore_register = false;							}							else							{								$item->readmore_link = JRoute::_('index.php?option=com_user&view=login');								$returnURL = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->sectionid),false);								$fullURL = new JURI($item->readmore_link);								$fullURL->setVar('return', base64_encode($returnURL));								$item->readmore_link = $fullURL->toString();								$item->readmore_register = true;							}						}										$item->event = new stdClass();						$results = $dispatcher->trigger('onAfterDisplayTitle', array (& $item, & $item->params,0));						$item->event->afterDisplayTitle = trim(implode("\n", $results));										$results = $dispatcher->trigger('onBeforeDisplayContent', array (& $item, & $item->params, 0));						$item->event->beforeDisplayContent = trim(implode("\n", $results));										$results = $dispatcher->trigger('onAfterDisplayContent', array (& $item, & $item->params, 0));						$item->event->afterDisplayContent = trim(implode("\n", $results));										return $item;					}									function _buildSortLists()					{						// Table ordering values						$filter				= JRequest::getString('filter');						global $mainframe;						$itemid = JRequest::getInt('id',0) . ':' . JRequest::getInt('Itemid',0);						$filter_order  = $mainframe->getUserStateFromRequest('com_content.category.list.' . $itemid . '.filter_order', 'filter_order', '', 'cmd');						$filter_order_Dir = $mainframe->getUserStateFromRequest('com_content.category.list.' . $itemid . '.filter_order_Dir', 'filter_order_Dir', '', 'cmd');						$lists['task']      = 'category';						$lists['filter']    = $filter;						$lists['order']     = $filter_order;						$lists['order_Dir'] = $filter_order_Dir;										return $lists;					}				}				?>							

相关资源