| Server IP : 180.180.241.3 / Your IP : 216.73.216.35 Web Server : Microsoft-IIS/7.5 System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.3.28 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /AppServ/www/news/tmp/Slider/classes/ |
Upload File : |
<?php
/**
* @package mod_bt_contentslider - BT ContentSlider Module
* @version 2.0.0
* @created Oct 2011
* @author BowThemes
* @email support@bowthems.com
* @website http://bowthemes.com
* @support Forum - http://bowthemes.com/forum/
* @copyright Copyright (C) 2012 Bowthemes. All rights reserved.
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
*
*/
// no direct access
defined('_JEXEC') or die('Restricted access');
//Get to process link
jimport('joomla.application.component.model');
JModelLegacy::addIncludePath(JPATH_SITE . '/components/com_content/models');
require_once JPATH_SITE . '/components/com_content/helpers/route.php';
require_once 'btsource.php';
/**
* class BtContentDataSource
*/
if(!class_exists('BtContentDataSource')){
class BtContentDataSource extends BTSource {
function getList() {
$params = &$this->_params;
$formatter = $params->get('style_displaying', 'title');
$titleMaxChars = $params->get('title_max_chars', '100');
$limit_title_by = $params->get('limit_title_by', 'char');
$descriptionMaxChars = $params->get('description_max_chars', 100);
$limitDescriptionBy = $params->get('limit_description_by', 'char');
$isThumb = $params->get('image_thumb', 1);
$thumbWidth = (int) $params->get('thumbnail_width', 280);
$thumbHeight = (int) $params->get('thumbnail_height', 150);
$quality = (int) $params->get('image_quality', 80);
$showimage = $params->get('show_image', 1);
$replacer = $params->get('replacer', '...');
$isStrips = $params->get("auto_strip_tags", 1);
$use_linka = $params->get('use_linka',0);
$use_introimg = $params->get('use_introimg',1);
$use_caption = $params->get('use_caption',0);
$stringtags = '';
if ($isStrips) {
$allow_tags = $params->get("allow_tags", '');
$stringtags = '';
if(!is_array($allow_tags)){
$allow_tags = explode(',',$allow_tags);
}
foreach ($allow_tags as $tag) {
$stringtags .= '<' . $tag . '>';
}
}
if (!$params->get('default_thumb', 1)) {
$this->_defaultThumb = '';
}
$ordering = $params->get('ordering', 'created-asc');
$db = JFactory::getDbo();
// Get an instance of the generic articles model
$model = JModelLegacy::getInstance('Articles', 'ContentModel', array('ignore_request' => true));
// Set application parameters in model
$app = JFactory::getApplication();
$appParams = $app->getParams();
$model->setState('params', $appParams);
$model->setState('list.select', 'a.urls, a.images, a.fulltext, a.id, a.title, a.alias, a.introtext, a.state, a.catid, a.created, a.created_by, a.created_by_alias,' . ' a.modified, a.modified_by,a.publish_up, a.publish_down, a.attribs, a.metadata, a.metakey, a.metadesc, a.access,' . ' a.hits, a.featured,' . ' LENGTH(a.fulltext) AS readmore');
// Set the filters based on the module params
$model->setState('list.start', 0);
$model->setState('list.limit', (int) $params->get('limit_items', 12));
$model->setState('filter.published', 1);
// Access filter
$userId = JFactory::getUser()->get('id');
$access = !JComponentHelper::getParams('com_content')->get('show_noauth');
$authorised = JAccess::getAuthorisedViewLevels($userId);
$model->setState('filter.access', $access);
$source = trim($params->get('source', 'category'));
// User filter
switch ($params->get('user_id')) {
case 'by_me':
$model->setState('filter.author_id', (int) $userId);
break;
case 'not_me':
$model->setState('filter.author_id', $userId);
$model->setState('filter.author_id.include', false);
break;
case 0:
break;
default:
$model->setState('filter.author_id', (int) $params->get('user_id'));
break;
}
// Filter by language
$model->setState('filter.language',$app->getLanguageFilter());
// Featured switch
switch ($params->get('show_featured')) {
case 3:
$model->setState('filter.featured', 'only');
break;
case 2:
$model->setState('filter.featured', 'hide');
break;
default:
$model->setState('filter.featured', 'show');
break;
}
// Set ordering
$ordering = explode('-', $ordering);
if (trim($ordering[0]) == 'rand') {
$model->setState('list.ordering', ' RAND() ');
} else
if (trim($ordering[0]) == 'featured')
{
$model->setState('list.ordering', 'fp.ordering');
$model->setState('list.direction', 'asc');
}
else
{
$model->setState('list.ordering', 'a.' . $ordering[0]);
$model->setState('list.direction', $ordering[1]);
}
//if category
$items = array();
if ($source == 'category') {
$category_ids = self::getCategoryIds();
if (!empty($category_ids) && $params->get('limit_items_for_each')) {
$db->setQuery('SELECT id from #__categories where id in ('.implode($category_ids,',').') order by lft');
$category_ids = $db->loadColumn();
foreach ($category_ids as $category_id) {
$model->setState('filter.category_id', array($category_id));
$itemsPerCategory = $model->getItems();
$items = array_merge($items,$itemsPerCategory);
}
} else {
// Category filter
$model->setState('filter.category_id', $category_ids);
$items = $model->getItems();;
}
//esle article_ids
} else if($source == 'article_ids'){
$ids = preg_split('/,/', $params->get('article_ids', ''));
$tmp = array();
foreach ($ids as $id) {
$tmp[] = (int) trim($id);
}
$model->setState('filter.article_id', $tmp);
$items = $model->getItems();
}else{
$tagsHelper = new JHelperTags();
$tagIds = $this->_params->get('joomla_tags');
if($tagIds){
$query = $tagsHelper->getTagItemsQuery(implode(',', $tagIds));
$db->setQuery($query);
$rs = $db->loadObjectList();
if(!$rs){
$items = $model->getItems();
}else{
$articleIds = array();
foreach($rs as $article){
if($article->type_alias != 'com_content.article') continue;
$articleIds[] = $article->content_item_id;
}
$model->setState('filter.article_id', $articleIds);
$items = $model->getItems();
}
}else{
$items = $model->getItems();
}
}
foreach ($items as &$item) {
// setting for route link
$item->slug = $item->id . ':' . $item->alias;
$item->catslug = $item->catid . ':' . $item->category_alias;
// item link
$item->link = '';
if ($access || in_array($item->access, $authorised)) {
// We know that user has the privilege to view the article
//Item link
if($use_linka && $item->urls){
$item->urls = json_decode($item->urls);
$item->link = $item->urls->urla;
}
if(!$item->link) $item->link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, JFactory::getLanguage()->getTag()));
}
else {
$item->link = JRoute::_('index.php?option=com_users&view=login');
}
// format date
$item->date = JHtml::_('date', $item->created, JText::_('DATE_FORMAT_LC2'));
// thumbnail & caption
$item->thumbnail = '';
$item->mainImage = '';
if(($use_introimg|| $use_caption) && $item->images){
$item->images = json_decode($item->images);
}
if ($showimage) {
if($item->images && $use_introimg){
$imgLink = $item->images->image_intro;
if(!$imgLink){
$imgLink = $imgLink;
}
if($imgLink){
$item->mainImage = $imgLink;
if ($isThumb){
$item->thumbnail = self::renderThumb($imgLink, $thumbWidth, $thumbHeight, $isThumb, $quality);
}
else {
$item->thumbnail = $imgLink;
}
}
}
if(!$item->thumbnail){
$item = $this->generateImages($item, $isThumb,$quality);
}
}
// change introtext with caption
if($use_caption && $item->images){
$caption = $item->images->image_intro_caption;
if(!$caption){
$caption = $item->images->image_fulltext_caption;
}
if($caption){
$item->introtext = $caption;
}
}
// set category link
$item->categoryLink = JRoute::_(ContentHelperRoute::getCategoryRoute($item->catid, JFactory::getLanguage()->getTag()));
// cut title
if ($limit_title_by == 'word' && $titleMaxChars > 0) {
$item->title_cut = self::substrword($item->title, $titleMaxChars, $replacer, $isStrips);
} elseif ($limit_title_by == 'char' && $titleMaxChars > 0) {
$item->title_cut = self::substring($item->title, $titleMaxChars, $replacer, $isStrips);
}
// escape html characters
$item->title = htmlspecialchars($item->title);
// import content prepare plugin
if($params->get('content_plugin')){
$item->introtext = JHtml::_('content.prepare', $item->introtext);
}
// cut description
if ($limitDescriptionBy == 'word' && $descriptionMaxChars > 0) {
$item->description = self::substrword($item->introtext, $descriptionMaxChars, $replacer, $isStrips, $stringtags);
} elseif ($limitDescriptionBy == 'char' && $descriptionMaxChars > 0) {
$item->description = self::substring($item->introtext, $descriptionMaxChars, $replacer, $isStrips, $stringtags);
}
// set authorlink empty
$item->authorLink = "#";
}
return $items;
}
function getCategoryIds(){
$db = JFactory::getDBO();
$category = array();
if($this->_params->get('auto_category') && JRequest::getVar('option')=='com_content'){
$catid = JRequest::getInt('catid');
if(!$catid && JRequest::getVar('view') == 'category') $catid = JRequest::getInt('id');
if($catid) $category = array($catid);
else{
if( JRequest::getVar('view')=='article'){
$itemid = JRequest::getInt('id');
$db->setQuery('select catid from #__content where id='.$itemid);
$catid = $db->loadResult();
if($catid) $category = array($catid);
}
}
}
if(empty($category)){
$category = $this->_params->get('category', array());
}
// since 2.4.2
if($this->_params->get('sub_categories', 0) && count($category)){
$parents = $category;
foreach($parents as $c){
$instance = JCategories::getInstance('Content');
$cat = $instance->get($c);
$children = $cat->getChildren();
if(count($children)){
foreach($children as $ch){
if(!in_array($ch->id, $category)){
$category[] = $ch->id;
}
}
}
}
}
$exCategories = str_replace(' ', '', $this->_params->get('exclude_categories', ''));
if($exCategories){
$exCategories = explode(',', $exCategories);
if($exCategories && count($exCategories)){
$category = array_diff($category, $exCategories);
}
}
return $category;
}
}
}