%PDF- %PDF-
Direktori : /home/lightco1/www/administrator/components/com_poweradmin/helpers/html/layouts/ |
Current File : /home/lightco1/www/administrator/components/com_poweradmin/helpers/html/layouts/jsnlayouthelper.php |
<?php /** * @version $Id$ * @package JSNPoweradmin * @subpackage item * @author JoomlaShine Team <support@joomlashine.com> * @copyright Copyright (C) 2012 JoomlaShine.com. All Rights Reserved. * @license GNU/GPL v2 or later http://www.gnu.org/licenses/gpl-2.0.html * * Websites: http://www.joomlashine.com * Technical Support: Feedback - http://www.joomlashine.com/contact-us/get-support.html */ // No direct access to this file defined('_JEXEC') or die('Restricted access'); class JSNLayoutHelper{ /** * * Fix links * * @param String $contents */ public static function fixImageLinks( $contents ) { $regex = '/src=(["\'])(.*?)\1/'; $count = preg_match_all($regex, $contents, $match); if ($count > 0) { $changes = $match[2]; foreach($changes as $change) { $uri = new JURI($change); if ($uri->getHost() == '') { $uri = new JURI(JURI::root().$change); } $contents = str_replace('src="'.$change.'"', 'src="'.$uri->toString().'"', $contents); } } return $contents; } /** * * Add image tag to * * @param String $src * @param String $attrs */ public static function showImage($src, $attrs = "") { $uri = new JURI($src); return '<img src="'.JURI::root().$uri->toString().'" '.$attrs.' />'; } /** * * Show rate box * * @param Number $rating * @param Number $ratingCount */ public static function showArticleRating( $rating, $ratingCount ) { JFactory::getLanguage()->load('plg_content_vote'); $rating = intval( $rating ); $rating_count = intval( $ratingCount ); $view = JRequest::getString('view', ''); $img = ''; // look for images in template if available $starImageOn = JHtml::_('image','system/rating_star.png', NULL, NULL, true); $starImageOff = JHtml::_('image','system/rating_star_blank.png', NULL, NULL, true); for ($i=0; $i < $rating; $i++) { $img .= $starImageOn; } for ($i=$rating; $i < 5; $i++) { $img .= $starImageOff; } $html = '<span class="content_rating">'; $html .= JText::sprintf( 'PLG_VOTE_USER_RATING', $img, $rating_count ); $html .= "</span>\n<br />\n"; return $html; } /** * @since 1.6 */ public static function showNavigation($row, $params) { $html = ''; $db = JFactory::getDbo(); $user = JFactory::getUser(); $app = JFactory::getApplication(); $lang = JFactory::getLanguage(); $nullDate = $db->getNullDate(); $date = JFactory::getDate(); $config = JFactory::getConfig(); $uid = $row->id; $option = 'com_content'; $canPublish = $user->authorise('core.edit.state', $option.'.article.'.$row->id); // The following is needed as different menu items types utilise a different param to control ordering. // For Blogs the `orderby_sec` param is the order controlling param. // For Table and List views it is the `orderby` param. $params_list = $params->toArray(); if (array_key_exists('orderby_sec', $params_list)) { $order_method = $params->get('orderby_sec', ''); } else { $order_method = $params->get('orderby', ''); } // Additional check for invalid sort ordering. if ($order_method == 'front') { $order_method = ''; } // Determine sort order. switch ($order_method) { case 'date' : $orderby = 'a.created'; break; case 'rdate' : $orderby = 'a.created DESC'; break; case 'alpha' : $orderby = 'a.title'; break; case 'ralpha' : $orderby = 'a.title DESC'; break; case 'hits' : $orderby = 'a.hits'; break; case 'rhits' : $orderby = 'a.hits DESC'; break; case 'order' : $orderby = 'a.ordering'; break; case 'author' : $orderby = 'a.created_by_alias, u.name'; break; case 'rauthor' : $orderby = 'a.created_by_alias DESC, u.name DESC'; break; case 'front' : $orderby = 'f.ordering'; break; default : $orderby = 'a.ordering'; break; } $xwhere = ' AND (a.state = 1 OR a.state = -1)' . ' AND (publish_up = '.$db->Quote($nullDate).' OR publish_up <= '.$db->Quote($date).')' . ' AND (publish_down = '.$db->Quote($nullDate).' OR publish_down >= '.$db->Quote($date).')'; // Array of articles in same category correctly ordered. $query = $db->getQuery(true); $query->select('a.id, ' .'CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug, ' .'CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug'); $query->from('#__content AS a'); $query->leftJoin('#__categories AS cc ON cc.id = a.catid'); $query->where('a.catid = '. (int)$row->catid .' AND a.state = '. (int)$row->state . ($canPublish ? '' : ' AND a.access = ' .(int)$row->access) . $xwhere); $query->order($orderby); if ($app->isSite() && $app->getLanguageFilter()) { $query->where('a.language in ('.$db->quote($lang->getTag()).','.$db->quote('*').')'); } $db->setQuery($query); $list = $db->loadObjectList('id'); // This check needed if incorrect Itemid is given resulting in an incorrect result. if (!is_array($list)) { $list = array(); } reset($list); // Location of current content item in array list. $location = array_search($uid, array_keys($list)); $rows = array_values($list); $row->prev = null; $row->next = null; if ($location -1 >= 0) { // The previous content item cannot be in the array position -1. $row->prev = $rows[$location -1]; } if (($location +1) < count($rows)) { // The next content item cannot be in an array position greater than the number of array postions. $row->next = $rows[$location +1]; } $pnSpace = ""; if (JText::_('JGLOBAL_LT',true) || JText::_('JGLOBAL_GT',true)) { $pnSpace = " "; } // Output. if ($row->prev || $row->next) { $html = ' <ul class="pagenav">' ; if ($row->prev) { $html .= ' <li class="pagenav-prev"> <a rel="next">' . JText::_('JGLOBAL_LT',true) . $pnSpace . JText::_('JPREV',true) . '</a> </li>' ; } if ($row->next) { $html .= ' <li class="pagenav-next"> <a rel="prev">' . JText::_('JNEXT',true) . $pnSpace . JText::_('JGLOBAL_GT',true) .'</a> </li>' ; } $html .= ' </ul>' ; return $html; } return '<ul class="pagenav">pagenav</ul>'; } }