Example #1
0
 public function getCarriersList(JeproshopContext $context = null)
 {
     jimport('joomla.html.pagination');
     $db = JFactory::getDBO();
     $app = JFactory::getApplication();
     $option = $app->input->get('option');
     $view = $app->input->get('view');
     if (!$context) {
         $context = JeproshopContext::getContext();
     }
     $limit = $app->getUserStateFromRequest('global.list.limit', 'limit', $app->getCfg('list_limit'), 'int');
     $limit_start = $app->getUserStateFromRequest($option . $view . '.limitstart', 'limitstart', 0, 'int');
     $lang_id = $app->getUserStateFromRequest($option . $view . '.lang_id', 'lang_id', $context->language->lang_id, 'int');
     $order_by = $app->getUserStateFromRequest($option . $view . '.order_by', 'order_by', 'position', 'string');
     $order_way = $app->getUserStateFromRequest($option . $view . '.order_way', 'order_way', 'ASC', 'string');
     $use_limit = true;
     if ($limit === false) {
         $use_limit = false;
     }
     do {
         $query = "SELECT SQL_CALC_FOUND_ROWS carrier." . $db->quoteName('carrier_id') . ", carrier." . $db->quoteName('name') . ", carrier.";
         $query .= $db->quoteName('published') . ", carrier." . $db->quoteName('is_free') . ", carrier." . $db->quoteName('position');
         $query .= ", carrier_lang.* FROM " . $db->quoteName('#__jeproshop_carrier') . " AS carrier LEFT JOIN " . $db->quoteName('#__jeproshop_carrier_lang');
         $query .= " AS carrier_lang ON(carrier." . $db->quoteName('carrier_id') . " = carrier_lang." . $db->quoteName('carrier_id');
         $query .= JeproshopShopModelShop::addSqlRestrictionOnLang('carrier_lang') . " AND carrier_lang." . $db->quoteName('lang_id') . " = ";
         $query .= (int) $lang_id . ") LEFT JOIN " . $db->quoteName('#__jeproshop_carrier_tax_rules_group_shop') . " AS carrier_tax_rules_group_shop ON (carrier.";
         $query .= $db->quoteName('carrier_id') . " = carrier_tax_rules_group_shop." . $db->quoteName('carrier_id') . " AND carrier_tax_rules_group_shop.";
         $query .= $db->quoteName('shop_id') . " = " . (int) $context->shop->shop_id . ") ORDER BY ";
         $query .= (str_replace('`', '', $order_by) == 'carrier_id' ? "carrier." : "") . $order_by . " " . $order_way;
         $db->setQuery($query);
         $total = count($db->loadObjectList());
         $query .= $use_limit === true ? " LIMIT " . (int) $limit_start . ", " . (int) $limit : "";
         $db->setQuery($query);
         $carriers = $db->loadObjectList();
         if ($use_limit == true) {
             $limit_start = (int) $limit_start - (int) $limit;
             if ($limit_start < 0) {
                 break;
             }
         } else {
             break;
         }
     } while (empty($carriers));
     foreach ($carriers as $key => $carrier) {
         if ($carrier->name == '0') {
             $carrier->name = JeproshopSettingModelSetting::getCurrentShopName();
         }
     }
     $this->pagination = new JPagination($total, $limit_start, $limit);
     return $carriers;
 }