public function display($tpl = null) { global $context; $document = JFactory::getDocument(); $document->setTitle(JText::_('COM_REDSHOP_PRODUCT')); $task = JRequest::getVar('task'); JToolBarHelper::title(JText::_('COM_REDSHOP_PRODUCT_MANAGEMENT'), 'redshop_products48'); if ($task == 'assignCategory') { JToolBarHelper::custom('saveProduct_Category', 'save.png', 'save_f2.png', JText::_('COM_REDSHOP_ASSIGN_CATEGORY'), false); } else { JToolBarHelper::custom('removeProduct_Category', 'delete.png', 'delete.png', JText::_('COM_REDSHOP_REMOVE_CATEGORY'), false); } JToolBarHelper::back(); $model = $this->getModel("product_category"); $products = $model->getProductlist(); $product_category = new product_category(); $categories = $product_category->getCategoryListArray(); $temps = array(); $temps[0]->category_id = "0"; $temps[0]->category_name = JText::_('COM_REDSHOP_SELECT'); $categories = @array_merge($temps, $categories); $lists['category'] = JHTML::_('select.genericlist', $categories, 'category_id[]', 'class="inputbox" multiple="multiple"', 'category_id', 'category_name'); $this->products = $products; $this->lists = $lists; parent::display($tpl); }
public function display($tpl = null) { $context2 = 'p.product_id'; $uri = JFactory::getURI(); $app = JFactory::getApplication(); $document = JFactory::getDocument(); $document->setTitle(JText::_('COM_REDSHOP_STOCKROOM_LISTING')); JToolBarHelper::title(JText::_('COM_REDSHOP_STOCKROOM_LISTING_MANAGEMENT'), 'redshop_stockroom48'); JToolBarHelper::custom('export_data', 'save.png', 'save_f2.png', 'Export Data', false); JToolBarHelper::custom('print_data', 'save.png', 'save_f2.png', 'Print Data', false); $stockroom_type = $app->getUserStateFromRequest($context2 . 'stockroom_type', 'stockroom_type', 'product'); $filter_order = $app->getUserStateFromRequest($context2 . 'filter_order', 'filter_order', 'p.product_id'); $filter_order_Dir = $app->getUserStateFromRequest($context2 . 'filter_order_Dir', 'filter_order_Dir', ''); $search_field = $app->getUserStateFromRequest($context2 . 'search_field', 'search_field', ''); $keyword = $app->getUserStateFromRequest($context2 . 'keyword', 'keyword', ''); $category_id = $app->getUserStateFromRequest($context2 . 'category_id', 'category_id', ''); // Stockroom type and attribute type $optiontype = array(); $optiontype[] = JHTML::_('select.option', 'product', JText::_('COM_REDSHOP_PRODUCT')); $optiontype[] = JHTML::_('select.option', 'property', JText::_('COM_REDSHOP_PROPERTY')); $optiontype[] = JHTML::_('select.option', 'subproperty', JText::_('COM_REDSHOP_SUBPROPERTY')); $lists['stockroom_type'] = JHTML::_('select.genericlist', $optiontype, 'stockroom_type', 'class="inputbox" size="1" onchange="document.adminForm.submit();" ', 'value', 'text', $stockroom_type); $product_category = new product_category(); $categories = $product_category->getCategoryListArray(); $temps = array(); $temps[0] = new stdClass(); $temps[0]->category_id = "0"; $temps[0]->category_name = JText::_('COM_REDSHOP_SELECT'); $categories = @array_merge($temps, $categories); $lists['category'] = JHTML::_('select.genericlist', $categories, 'category_id', 'class="inputbox" onchange="getTaskChange();document.adminForm.submit();" ', 'category_id', 'category_name', $category_id); $lists['order'] = $filter_order; $lists['order_Dir'] = $filter_order_Dir; $resultlisting = $this->get('Data'); $stockroom = $this->get('Stockroom'); $pagination = $this->get('Pagination'); $this->lists = $lists; $this->keyword = $keyword; $this->search_field = $search_field; $this->resultlisting = $resultlisting; $this->stockroom = $stockroom; $this->stockroom_type = $stockroom_type; $this->pagination = $pagination; $this->request_url = $uri->toString(); parent::display($tpl); }
public function display($tpl = null) { global $context; $app = JFactory::getApplication(); $redTemplate = new Redtemplate(); $document = JFactory::getDocument(); $document->setTitle(JText::_('COM_REDSHOP_PRODUCT')); $uri = JFactory::getURI(); $filter_order = $app->getUserStateFromRequest($context . 'filter_order', 'filter_order', 'product_id'); $filter_order_Dir = $app->getUserStateFromRequest($context . 'filter_order_Dir', 'filter_order_Dir', ''); $limitstart = $app->getUserStateFromRequest($context . 'limitstart', 'limitstart', '0'); $limit = $app->getUserStateFromRequest($context . 'limit', 'limit', '10'); $search_field = $app->getUserStateFromRequest($context . 'search_field', 'search_field', ''); $keyword = $app->getUserStateFromRequest($context . 'keyword', 'keyword', ''); $category_id = $app->getUserStateFromRequest($context . 'category_id', 'category_id', ''); $product_category = new product_category(); $categories = $product_category->getCategoryListArray(); $temps = array(); $temps[0]->category_id = "0"; $temps[0]->category_name = JText::_('COM_REDSHOP_SELECT'); $categories = @array_merge($temps, $categories); $lists['category'] = JHTML::_('select.genericlist', $categories, 'category_id', 'class="inputbox" onchange="document.adminForm2.submit();" ', 'category_id', 'category_name', $category_id); $lists['order'] = $filter_order; $lists['order_Dir'] = $filter_order_Dir; $total = $this->get('Total'); $products = $this->get('Data'); $pagination = $this->get('Pagination'); $this->keyword = $keyword; $this->search_field = $search_field; $this->user = JFactory::getUser(); $this->lists = $lists; $this->products = $products; $this->pagination = $pagination; $this->request_url = $uri->toString(); parent::display($tpl); }
public function _buildQuery($manudata = 0) { $app = JFactory::getApplication(); $context = 'search'; $db = JFactory::getDbo(); $keyword = $app->getUserStateFromRequest($context . 'keyword', 'keyword', ''); $defaultSearchType = ''; if (!empty($manudata['search_type'])) { $defaultSearchType = $manudata['search_type']; $defaultSearchType_tmp = $manudata['search_type']; } if ($defaultSearchType == "") { $defaultSearchType = 'product_name'; } if ($defaultSearchType == "name_number") { $defaultSearchField = "name_number"; $defaultSearchType = '(p.product_name LIKE ' . $db->quote('%' . $keyword . '%') . ' OR p.product_number LIKE ' . $db->quote('%' . $keyword . '%') . ')'; } elseif ($defaultSearchType == "name_desc") { $defaultSearchField = "name_desc"; $defaultSearchType = '(p.product_name LIKE ' . $db->quote('%' . $keyword . '%') . ' OR p.product_desc LIKE ' . $db->quote('%' . $keyword . '%') . ' OR p.product_s_desc LIKE ' . $db->quote('%' . $keyword . '%') . ')'; } elseif ($defaultSearchType == "virtual_product_num") { $defaultSearchField = "virtual_product_num"; $defaultSearchType = '(pa.property_number LIKE ' . $db->quote('%' . $keyword . '%') . ' OR ps.subattribute_color_number LIKE ' . $db->quote('%' . $keyword . '%') . ')'; } elseif ($defaultSearchType == "name_number_desc") { $defaultSearchType = '(p.product_name LIKE ' . $db->quote('%' . $keyword . '%') . ' OR p.product_number LIKE ' . $db->quote('%' . $keyword . '%') . ' OR p.product_desc LIKE ' . $db->quote('%' . $keyword . '%') . ' OR p.product_s_desc LIKE ' . $db->quote('%' . $keyword . '%') . ' OR pa.property_number LIKE ' . $db->quote('%' . $keyword . '%') . ' OR ps.subattribute_color_number LIKE ' . $db->quote('%' . $keyword . '%') . ')'; } elseif ($defaultSearchType == "product_desc") { $defaultSearchField = $defaultSearchType; $defaultSearchType = '(p.' . $defaultSearchType . ' LIKE ' . $db->quote('%' . $keyword . '%') . ' OR p.product_s_desc LIKE ' . $db->quote('%' . $keyword . '%') . ' )'; } elseif ($defaultSearchType == "product_name") { $main_sp_name = explode(" ", $keyword); $defaultSearchField = $defaultSearchType; for ($f = 0; $f < count($main_sp_name); $f++) { $defaultSearchType1[] = " p.product_name LIKE " . $db->quote('%' . $main_sp_name[$f] . '%'); } $defaultSearchType = "(" . implode("AND", $defaultSearchType1) . ")"; } elseif ($defaultSearchType == "product_number") { $defaultSearchField = $defaultSearchType; $defaultSearchType = '(p.product_number LIKE ' . $db->quote('%' . $keyword . '%') . ')'; } $redconfig = $app->getParams(); $getorderby = urldecode(JRequest::getCmd('order_by', '')); if (in_array($getorderby, $this->filter_fields)) { $order_by = $getorderby; } else { $order_by = $redconfig->get('order_by', DEFAULT_PRODUCT_ORDERING_METHOD); } if ($order_by == 'pc.ordering ASC' || $order_by == 'c.ordering ASC') { $order_by = 'p.product_id DESC'; } $layout = JRequest::getVar('layout', 'default'); $category_helper = new product_category(); $producthelper = new producthelper(); $manufacture_id = JRequest::getInt('manufacture_id', 0); $category_id = JRequest::getInt('category_id', 0); $cat = $category_helper->getCategoryListArray(0, $category_id); $cat_group = array(); for ($j = 0; $j < count($cat); $j++) { $cat_group[$j] = $cat[$j]->category_id; if ($j == count($cat) - 1) { $cat_group[$j + 1] = $category_id; } } JArrayHelper::toInteger($cat_group); if ($cat_group) { $cat_group = join(',', $cat_group); } else { $cat_group = $category_id; } $params = JComponentHelper::getParams('com_redshop'); $menu = $app->getMenu(); $item = $menu->getActive(); $days = 0; $days = isset($item->query['newproduct']) ? $item->query['newproduct'] : 0; $today = date('Y-m-d H:i:s', time()); $days_before = date('Y-m-d H:i:s', time() - $days * 60 * 60 * 24); $aclProducts = $producthelper->loadAclProducts(); $whereaclProduct = ""; // Shopper group - choose from manufactures Start $rsUserhelper = new rsUserhelper(); $shopper_group_manufactures = $rsUserhelper->getShopperGroupManufacturers(); if ($shopper_group_manufactures != "") { // Sanitize ids $manufacturerIds = explode(',', $shopper_group_manufactures); JArrayHelper::toInteger($manufacturerIds); $whereaclProduct .= " AND p.manufacturer_id IN (" . implode(',', $manufacturerIds) . ") "; } // Shopper group - choose from manufactures End if ($aclProducts != "") { // Sanitize ids $productIds = explode(',', $aclProducts); JArrayHelper::toInteger($productIds); $whereaclProduct .= " AND p.product_id IN (" . implode(',', $productIds) . ") "; } if ($layout == 'productonsale') { $categoryid = $item->params->get('categorytemplate'); $cat_array = ""; $left_join = ""; if ($categoryid) { $cat_main = $category_helper->getCategoryTree($categoryid); $cat_group_main = array(); for ($j = 0; $j < count($cat_main); $j++) { $cat_group_main[$j] = $cat_main[$j]->category_id; } $cat_group_main[] = $categoryid; JArrayHelper::toInteger($cat_group_main); $cat_array = " AND pcx.category_id IN (" . implode(',', $cat_group_main) . ") AND pcx.product_id=p.product_id "; $left_join = " LEFT JOIN " . $this->_table_prefix . "product_category_xref pcx ON pcx.product_id=p.product_id "; } $query = " SELECT * FROM " . $this->_table_prefix . "product AS p " . $left_join . "WHERE p.published = 1 " . "AND p.product_on_sale=1 " . "AND p.expired=0 " . "AND p.product_parent_id=0 " . $whereaclProduct . $cat_array . " ORDER BY " . $db->escape($order_by); } elseif ($layout == 'featuredproduct') { $query = " SELECT * FROM " . $this->_table_prefix . "product AS p " . "WHERE p.published = 1 " . "AND p.product_special=1 " . $whereaclProduct . " ORDER BY " . $db->escape($order_by); } elseif ($layout == 'newproduct') { $catid = $item->query['categorytemplate']; $cat_main = $category_helper->getCategoryTree($catid); $cat_group_main = array(); for ($j = 0; $j < count($cat_main); $j++) { $cat_group_main[$j] = $cat_main[$j]->category_id; } $cat_group_main[] = $catid; JArrayHelper::toInteger($cat_group_main); $extracond = ""; if ($catid) { $extracond = " AND pcx.category_id in (" . implode(',', $cat_group_main) . ") AND pcx.product_id=p.product_id "; } $query = " SELECT distinct p.* " . " FROM " . $this->_table_prefix . "product p " . "LEFT JOIN " . $this->_table_prefix . "product_category_xref pcx ON pcx.product_id = p.product_id " . "WHERE p.published = 1 " . "and p.publish_date BETWEEN " . $db->quote($days_before) . " AND " . $db->quote($today) . " AND p.expired = 0 AND p.product_parent_id = 0 " . $whereaclProduct . $extracond . " ORDER BY " . $db->escape($order_by); } elseif ($layout == 'redfilter') { // Get products for filtering $products = $this->getRedFilterProduct(); $query = " SELECT * " . " FROM " . $this->_table_prefix . "product as p " . "WHERE p.published = 1 AND p.expired = 0 " . $whereaclProduct; if ($products != "") { // Sanitize ids $productIds = explode(',', $products); JArrayHelper::toInteger($productIds); $query .= "AND p.product_id IN ( " . implode(',', $productIds) . " ) "; } $query .= " ORDER BY " . $db->escape($order_by); } else { if ($manufacture_id == 0) { if (!empty($manudata['manufacturer_id'])) { $manufacture_id = $manudata['manufacturer_id']; } } $query = "SELECT distinct p.* " . " FROM " . $this->_table_prefix . "product as p "; if ($category_id != 0) { $query .= " LEFT JOIN " . $this->_table_prefix . "product_category_xref as pcx on p.product_id = pcx.product_id "; } if ($defaultSearchType_tmp == "name_number_desc" || $defaultSearchType_tmp == "virtual_product_num") { $query .= "LEFT JOIN " . $this->_table_prefix . "product_attribute AS a ON a.product_id = p.product_id " . "LEFT JOIN " . $this->_table_prefix . "product_attribute_property AS pa ON pa.attribute_id = a.attribute_id " . "LEFT JOIN " . $this->_table_prefix . "product_subattribute_color AS ps ON ps.subattribute_id = pa.property_id "; } $query .= " WHERE 1=1 AND p.expired = 0 " . $whereaclProduct; if ($category_id != 0) { // Sanitize ids $catIds = explode(',', $cat_group); JArrayHelper::toInteger($catIds); $query .= " AND pcx.category_id in (" . $cat_group . ")"; } if ($manufacture_id != 0) { $query .= " AND p.manufacturer_id =" . (int) $manufacture_id; } $query .= " AND " . $defaultSearchType . " AND p.published = 1" . " ORDER BY " . $db->escape($order_by); } return $query; }