Your IP : 216.73.216.240


Current Path : /home/juvelize/www/modules/mod_jmnewspro/
Upload File :
Current File : /home/juvelize/www/modules/mod_jmnewspro/helper.php

<?php
/*
#------------------------------------------------------------------------
# Package - JoomlaMan JMNewsPro
# Version 1.0
# -----------------------------------------------------------------------
# Author - JoomlaMan http://www.joomlaman.com
# Copyright © 2012 - 2013 JoomlaMan.com. All Rights Reserved.
# @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later
# Websites: http://www.JoomlaMan.com
#------------------------------------------------------------------------
*/
// no direct access
defined('_JEXEC') or die('Restricted access');
class ModJmNewsProHelper {
  /**
   * Do something getItems method
   *
   * @param 	
   * @return
   */
  static function getSlides($params) {
    $slidesource = $params->get('slider_source', 1);
    switch ($slidesource) {
      case 1:
        return ModJmNewsProHelper::getSlidesFromCategories($params);
        break;
      case 2:
        return ModJmNewsProHelper::getSlidesFromArticleIDs($params);
        break;
      case 3:
        return ModJmNewsProHelper::getSlidesFromK2Categories($params);
        break;
      case 4:
        return ModJmNewsProHelper::getSlidesFromK2IDs($params);
        break;
      case 5:
        return ModJmNewsProHelper::getSlidesFromCategoriesProduct($params);
        break;
      case 6:
        return ModJmNewsProHelper::getSlidesFromProductIDs($params);
        break;
      case 7:
        return ModJmNewsProHelper::getSlidesFeatured($params);
        break;
      case 8:
        return ModJmNewsProHelper::getSlidesK2Featured($params);
        break;
    }
  }
  static function getSlidesFromCategories($params) {
    $limit = $params->get('jmnewspro_count', 0);
    $categories = $params->get('jmnewspro_categories', array());
    $categories = implode(',', $categories);
    $db = JFactory::getDbo();
    $ordering = $params->get('jmnewspro_ordering', 'ASC');
    $orderby = $params->get('jmnewspro_orderby', 1);
    if ($orderby == 1) {
      $field = 'c.title';
    } elseif ($orderby == 2) {
      $field = 'c.ordering';
    } else {
      $field = 'c.id';
    }
    $query = $db->getQuery(true)
            ->select("c.id")
            ->from("#__content AS c")
            ->where("c.catid IN({$categories})")
            ->where("c.state > 0")
            ->order($field . ' ' . $ordering);
    if ($limit > 0) {
      $db->setQuery($query, 0, $limit);
    } else {
      $db->setQuery($query);
    }
    $rows = $db->loadObjectList();
    $slides = array();
    if (empty($rows)) {
      return $slides;
    }
    foreach ($rows as $row) {
      $slide = new JMNewsProSlide($params);
      $slide->loadArticle($row->id);
      $slides[] = $slide;
    }
    return $slides;
  }
  static function getSlidesFromArticleIDs($params) {
    $ids = $params->get('jmnewspro_article_ids', '');
    $ids = str_replace(' ', '', $ids);
    $db = JFactory::getDbo();
    $ordering = $params->get('jmnewspro_ordering', 'ASC');
    $orderby = $params->get('jmnewspro_orderby', 1);
    if ($orderby == 1) {
      $field = 'c.title';
    } elseif ($orderby == 2) {
      $field = 'c.ordering';
    } else {
      $field = 'c.id';
    }
    $query = $db->getQuery(true)
            ->select("c.id")
            ->from("#__content AS c")
            ->where("c.state > 0")
            ->where("c.id IN ({$ids})")
            ->order($field . ' ' . $ordering);
    $db->setQuery($query);
    $rows = $db->loadObjectList();
    if (empty($rows)) {
      return $slides;
    }
    foreach ($rows as $row) {
      $slide = new JMNewsProSlide($params);
      $slide->loadArticle($row->id);
      $slides[] = $slide;
    }
    return $slides;
  }
  static function getSlidesFeatured($params) {
    $limit = $params->get('jmnewspro_count', 0);
    $db = JFactory::getDbo();
    $ordering = $params->get('jmnewspro_ordering', 'ASC');
    $orderby = $params->get('jmnewspro_orderby', 1);
    if ($orderby == 1) {
      $field = 'c.title';
    } elseif ($orderby == 2) {
      $field = 'c.ordering';
    } else {
      $field = 'c.id';
    }
    $query = $db->getQuery(true)
            ->select("c.id")
            ->from("#__content AS c")
            ->where("c.state > 0")
            ->where("c.featured = 1")
            ->order($field . ' ' . $ordering);
    if ($limit > 0) {
      $db->setQuery($query, 0, $limit);
    } else {
      $db->setQuery($query);
    }
    $rows = $db->loadObjectList();
    $slides = array();
    if (empty($rows)) {
      return $slides;
    }
    foreach ($rows as $row) {
      $slide = new JMNewsProSlide($params);
      $slide->loadArticle($row->id);
      $slides[] = $slide;
    }
    return $slides;
  }
  ///Hikashop
  static function getSlidesFromCategoriesProduct($params) {
    $limit = $params->get('jmnewspro_count', 0);
    $categories = $params->get('jmnewspro_hikashop_categories', array());
    $categories = implode(',', $categories);
    $db = JFactory::getDbo();
    $query = $db->getQuery(true)
            ->select("DISTINCT p.product_id")
            ->from("#__hikashop_product AS p")
            ->leftjoin("#__hikashop_product_category AS c ON p.product_id = c.product_id")
            ->where("c.category_id IN({$categories})")
            ->where("p.product_published > 0");
    $orderfield=$params->get('jmnewspro_hikashop_orderby', 'p.product_id');
    $ordering=$params->get('jmnewspro_ordering', 'ASC');
    $query .= " ORDER BY p.".$orderfield.' '.$ordering;
    if ($limit > 0) {
      $db->setQuery($query, 0, $limit);
    } else {
      $db->setQuery($query);
    }
    $rows = $db->loadObjectList();
    
    $slides = array();
    if (empty($rows)) {
      return $slides;
    }
    foreach ($rows as $row) {
      $slide = new JMNewsProSlide($params);
      $slide->loadProduct($row->product_id);
      $slides[] = $slide;
    }  
    
    return $slides;
  }
  static function getSlidesFromProductIDs($params) {
    $ids = $params->get('jmnewspro_hikashop_ids', '');
    $ids = str_replace(' ', '', $ids);
    $db = JFactory::getDbo();
    $orderfield=$params->get('jmnewspro_hikashop_orderby', 'p.product_id');
    $ordering=$params->get('jmnewspro_ordering', 'ASC');
    if (empty($ids))
      return $slides;
    $query = $db->getQuery(true)
            ->select("p.product_id")
            ->from("#__hikashop_product AS p")
            ->where("p.product_published > 0")
            ->where("p.product_id IN ({$ids})")
            ->order("p.".$orderfield." ".$ordering);
    $db->setQuery($query);
    $rows = $db->loadObjectList();
    $slides = array();
    if (empty($rows)) {
      return $slides;
    }
    foreach ($rows as $row) {
      $slide = new JMNewsProSlide($params);
      $slide->loadProduct($row->product_id);
      $slides[] = $slide;
    }
    return $slides;
  }
  static function getSlidesFromK2Categories($params) {
    $limit = $params->get('jmnewspro_count', 0);
    $categories = $params->get('jmnewspro_k2_categories', array());
    $categories = implode(',', $categories);
    $ordering = $params->get('jmnewspro_ordering', 'ASC');
    $orderby = $params->get('jmnewspro_orderby', 1);
    $orderfields = array('','k2.title','k2.ordering','k2.created');
    $db = JFactory::getDbo();
    $query = $db->getQuery(true)
            ->select("k2.id")
            ->from("#__k2_items AS k2")
            ->where("k2.catid IN({$categories})")
            ->where("k2.published = 1")
            ->where("k2.trash = 0")
            ->order($orderfields[$orderby] . ' ' . $ordering);
    if ($limit > 0) {
      $db->setQuery($query, 0, $limit);
    } else {
      $db->setQuery($query);
    }
    $rows = $db->loadObjectList();
    $slides = array();
    if (empty($rows)) {
      return $slides;
    }
    foreach ($rows as $row) {
      $slide = new JMNewsProSlide($params);
      $slide->loadK2($row->id);
      $slides[] = $slide;
    }
    return $slides;
  }
  static function getSlidesFromK2IDs($params) {
		$slides = array();
    $ids = $params->get('jmnewspro_k2_ids', '');
    $ids = str_replace(' ', '', $ids);
    $db = JFactory::getDbo();
    $ordering = $params->get('jmnewspro_ordering', 'ASC');
    $orderby = $params->get('jmnewspro_orderby', 1);
    $orderfields = array('','k2.title','k2.ordering','k2.created');
    $query = $db->getQuery(true)
            ->select("k2.id")
            ->from("#__k2_items AS k2")
            ->where("k2.id IN ({$ids})")
            ->where("k2.published = 1")
						->where("k2.trash = 0")
            ->order($orderfields[$orderby] . ' ' . $ordering);
    $db->setQuery($query);
    $rows = $db->loadObjectList();
    if (empty($rows)) {
      return $slides;
    }
    foreach ($rows as $row) {
      $slide = new JMNewsProSlide($params);
      $slide->loadK2($row->id);
      $slides[] = $slide;
    }
    return $slides;
  }
  static function getSlidesK2Featured($params) {
    $limit = $params->get('jmnewspro_count', 0);
    $ordering = $params->get('jmnewspro_ordering', 'ASC');
    $orderby = $params->get('jmnewspro_orderby', 1);
    $orderfields = array('','k2.title','k2.ordering','k2.created');
    $db = JFactory::getDbo();
    $query = $db->getQuery(true)
            ->select("k2.id")
            ->from("#__k2_items AS k2")
            ->where("k2.featured = 1")
            ->where("k2.published = 1")
						->where("k2.trash = 0")
            ->order($orderfields[$orderby] . ' ' . $ordering);
    if ($limit > 0) {
      $db->setQuery($query, 0, $limit);
    } else {
      $db->setQuery($query);
    }
    $rows = $db->loadObjectList();
    $slides = array();
    if (empty($rows)) {
      return $slides;
    }
    foreach ($rows as $row) {
      $slide = new JMNewsProSlide($params);
      $slide->loadK2($row->id);
      $slides[] = $slide;
    }
    return $slides;
  }
  static function getTemplate() {
	$app = JFactory::getApplication();
	return $app->getTemplate(); 
  }
}
// END ModjmnewsproHelper
?>