| 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');
require_once 'btsource.php';
/**
* class BtContentDataSource
*/
if(!class_exists('BtEasyblogDataSource')){
class BtEasyblogDataSource extends BTSource {
private $easyBlogVersion = '5.0';
public function __construct($params = null){
$db = JFactory::getDbo();
$db->setQuery("SELECT manifest_cache FROM #__extensions WHERE name = 'com_easyblog'");
$manifest_cache= $db->loadResult();
if($manifest_cache){
$cache = new JRegistry($manifest_cache);
$this->easyBlogVersion = $cache->get('version');
}
if(version_compare($this->easyBlogVersion, '5.0', 'ge')){
require_once( JPATH_ADMINISTRATOR . '/components/com_easyblog/includes/easyblog.php' );
if(!class_exists('EasyBlogPost')){
require_once( JPATH_ADMINISTRATOR . '/components/com_easyblog/includes/post/post.php' );
}
}else{
require_once(JPATH_ROOT . '/components/com_easyblog/constants.php');
require_once( EBLOG_HELPERS . '/helper.php' );
require_once( EBLOG_HELPERS . '/router.php' );
require_once( EBLOG_CLASSES . '/image.php' );
}
require_once( JPATH_ROOT . '/components/com_easyblog/router.php');
parent::__construct($params);
}
function getList() {
$params = &$this->_params;
$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);
$limit = $params->get('limit_items', 12);
$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();
$user = JFactory::getUser();
$query = ' SELECT p.*, c.title as category_title, f.id as featured, f.created as featured_created , u.name as author
FROM #__easyblog_post as p
LEFT JOIN #__easyblog_category as c ON p.category_id = c.id
LEFT JOIN #__easyblog_featured as f ON p.id = f.content_id AND f.type = \'post\'
LEFT JOIN #__users as u ON p.created_by = u.id';
//build where
$where = ' WHERE p.published = 1 ';
$userId = $user->get('id');
if($userId==0){
$where .= ' AND access = 0 ';
}
// User filter
switch ($params->get('user_id')) {
case 'by_me':
$where .= ' AND p.created_by = ' . $userId;
break;
case 'not_me':
$where .= ' AND p.created_by <> ' . $userId;
break;
default:
break;
}
// filter by featured params
if ($params->get('show_featured', '1') == 2) {
$where .= " AND f.id IS NULL ";
} elseif ($params->get('show_featured', '1') == 3) {
$where .= " AND f.id IS NOT NULL ";
}
// Set ordering
$order = '';
$ordering = explode('-', $ordering);
if (trim($ordering[0]) == 'rand') {
$order = ' ORDER BY RAND() ';
} else if (trim($ordering[0]) == 'featured'){
$order = ' ORDER BY f.created DESC ' ;
}
else
{
$order = ' ORDER BY p.' . $ordering[0] . ' ' . $ordering[1];
}
//if category
$source = trim($params->get('source', 'category'));
$items = array();
if ($source == 'easyblog_category') {
$category_ids = self::getCategoryIds();
if (!empty($category_ids) && $params->get('limit_items_for_each')) {
foreach ($category_ids as $category_id) {
$db->setQuery($query. $where . ' AND p.category_id = ' . $category_id . $order . ($limit ? ' LIMIT ' . $limit : ''), false);
$itemsPerCategory = $db->loadObjectList();
$items = array_merge($items,$itemsPerCategory);
}
} else if(!empty($category_ids)){
// Category filter
$where .= ' AND p.category_id IN (' . implode(',', $category_ids) . ') ';
$db->setQuery($query. $where . $order . ($limit ? ' LIMIT ' . $limit : ''));
$items = $db->loadObjectList();
}else{
$db->setQuery($query. $where . $order . ($limit ? ' LIMIT ' . $limit : ''));
$items = $db->loadObjectList();
}
//esle article_ids
} else {
$where .= ' AND p.id IN (' . $params->get('easyblog_article_ids') . ' ) ';
$db->setQuery($query. $where . $order . ($limit ? ' LIMIT ' . $limit : ''));
$items = $db->loadObjectList();
}
foreach ($items as &$item) {
if(version_compare($this->easyBlogVersion, '5.0', 'ge')){
$post = new EasyBlogPost($item->id);
$item->intro = $post->getIntro(true);
}
$item->fulltext = $item->content;
$item->introtext = $item->intro;
$item->catid = $item->category_id;
$item->link = EasyBlogRouter::_('index.php?option=com_easyblog&view=entry&id='.$item->id . $this->getMenuItemId($item));
// format date
$item->date = JHtml::_('date', $item->created, JText::_('DATE_FORMAT_LC2'));
// thumbnail & caption
$item->thumbnail = '';
$item->mainImage = '';
if ($showimage) {
$imageUrl = $this->getImage($item);
if($imageUrl){
$item->thumbnail = $item->mainImage = $imageUrl;
if ($isThumb){
$item->thumbnail = self::renderThumb($item->thumbnail, $thumbWidth, $thumbHeight, $isThumb, $quality);
}
}else{
$item = $this->generateImages($item, $isThumb, $quality);
}
}
//var_dump($item->fulltext);
// set category link
$item->categoryLink = EasyBlogRouter::_('index.php?option=com_easyblog&view=categories&layout=listings&id='.$item->category_id . $this->getMenuItemId($item, 'category'));
// 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);
// cut description
if ($limitDescriptionBy == 'word' && $descriptionMaxChars > 0) {
$item->description = self::substrword($item->intro, $descriptionMaxChars, $replacer, $isStrips, $stringtags);
} elseif ($limitDescriptionBy == 'char' && $descriptionMaxChars > 0) {
$item->description = self::substring($item->intro, $descriptionMaxChars, $replacer, $isStrips, $stringtags);
}
// import content prepare plugin
if($params->get('content_plugin')){
$item->description = JHtml::_('content.prepare', $item->description);
}
// set authorlink empty
$item->authorLink = EasyBlogRouter::_('index.php?option=com_easyblog&view=blogger&layout=listings&id=' . $item->created_by . $this->getMenuItemId($item, 'blogger'));
}
return $items;
}
function getCategoryIds(){
$db = JFactory::getDBO();
$category = array();
if($this->_params->get('auto_category') && JRequest::getVar('option')=='com_easyblog'){
if(JRequest::getVar('view')=='categories'){
$catid = JRequest::getInt('id');
}
else{
if( JRequest::getVar('view')=='entry'){
$itemid = JRequest::getInt('id');
$db->setQuery('select category_id from #__easyblog_post where id='.$itemid);
$catid = $db->loadResult();
}
}
if($catid) $category = array($catid);
}
if(empty($category)){
$category = $this->_params->get('easyblog_category', array());
}
//since 2.4.2
if($this->_params->get('sub_categories', 0) && count($category)){
$db = JFactory::getDBO();
$parents = $category;
foreach($parents as $c){
$db->setQuery('SELECT id FROM #__easyblog_category WHERE parent_id = ' . $c);
$children = $db->loadColumn();
if($children && count($children)){
$category = array_merge($category, $children);
}
}
$category = array_unique($category);
}
$excluded = str_replace(' ', '', $this->_params->get('exclude_categories', ''));
if($excluded){
$excluded = explode(',', $excluded);
if($excluded && count($excluded)){
$category = array_diff($category, $excluded);
}
}
return $category;
}
public function getImage($blog)
{
static $image = array();
if( !isset( $image[ $blog->id ] ) )
{
if( !$blog->image )
{
$image[ $blog->id ] = false;
return false;
}
if(version_compare($this->easyBlogVersion,'5.0', 'ge')){
$mm = EB::mediamanager();
$uri = JUri::getInstance();
return $uri->getScheme() . ':' . $mm->getUrl($blog->image);
}else{
$imageObject = json_decode( $blog->image );
if( !$imageObject )
{
$image = false;
return false;
}
// Get the configuration object.
$cfg = EasyBlogHelper::getConfig();
// Let's see where should we find for this.
$storagePath = '';
$storageURI = '';
if( isset( $imageObject->place ) && $imageObject->place == 'shared' )
{
$storagePath = JPATH_ROOT . DIRECTORY_SEPARATOR . trim( $cfg->get( 'main_shared_path' ) , '/\\');
$storageURI = rtrim( JURI::root() , '/' ) . '/' . trim( str_ireplace( '\\' , '/' , $cfg->get( 'main_shared_path' ) ) , '/\\');
}
else
{
$place = $imageObject->place;
$place = explode( ':' , $place );
$place[1] = (int) $place[1];
$path = $imageObject->path;
// Set the storage path
$storagePath = JPATH_ROOT . DIRECTORY_SEPARATOR . trim( $cfg->get( 'main_image_path' ) , '/\\') . DIRECTORY_SEPARATOR . $place[1];
// @task: Set the storage URI
$storageURI = rtrim( JURI::root() , '/' ) . '/' . trim( $cfg->get( 'main_image_path' ) , '/\\') . '/' . $place[1];
}
// Ensure that the item really exist before even going to do anything on the original image.
// If the image was manually removed from FTP or any file explorer, this shouldn't yield any errors.
$itemPath = $storagePath . DIRECTORY_SEPARATOR . trim( $imageObject->path , '/\\' );
if( !JFile::exists( $itemPath ) )
{
// @TODO: Perhaps we should update $this->image with an empty value since image no longer exists.
$image[ $blog->id ] = false;
return false;
}
$image[ $blog->id ] = new EasyBlogImage( $imageObject->path , $storagePath , $storageURI );
return $image[ $blog->id ]->getSource('original');
}
}
}
function getMenuItemId($post, $type = 'default')
{
$itemId = '';
$routeTypeCategory = false;
$routeTypeBlogger = false;
$routeTypeTag = false;
if( $type != 'default' )
{
switch ($type)
{
case 'menuitem':
$itemId = $params->get( 'menuitemid' ) ? '&Itemid=' . $params->get( 'menuitemid' ) : '';
break;
case 'category':
$routeTypeCategory = true;
break;
case 'blogger':
$routeTypeBlogger = true;
break;
case 'tag':
$routeTypeTag = true;
break;
default:
break;
}
}
if( $routeTypeCategory )
{
$xid = EasyBlogRouter::getItemIdByCategories( $post->category_id );
}
else if($routeTypeBlogger)
{
$xid = EasyBlogRouter::getItemIdByBlogger( $post->created_by );
}
else if($routeTypeTag)
{
$tags = self::_getPostTagIds( $post->id );
if( $tags !== false )
{
foreach( $tags as $tag )
{
$xid = EasyBlogRouter::getItemIdByTag( $tag );
if( $xid !== false )
break;
}
}
}
if( !empty( $xid ) )
{
// lets do it, do it, do it, lets override the item id!
$itemId = '&Itemid=' . $xid;
}
return $itemId;
}
}
}
?>