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; }