Example #1
0
 public static function getAll($category_id = null)
 {
     global $lC_Database, $lC_Language, $lC_Currencies, $_module;
     if (!is_numeric($category_id)) {
         $category_id = 0;
     }
     $lC_Language->loadIniFile('products.php');
     $media = $_GET['media'];
     $result = array('aaData' => array());
     /* Total Records */
     $QresultTotal = $lC_Database->query('SELECT count(p.products_id) as total from :table_products p where p.parent_id = 0');
     $QresultTotal->bindTable(':table_products', TABLE_PRODUCTS);
     $QresultTotal->execute();
     $result['iTotalRecords'] = $QresultTotal->valueInt('total');
     $QresultTotal->freeResult();
     /* Paging */
     $sLimit = " LIMIT 0,25 ";
     if (isset($_GET['iDisplayStart'])) {
         if ($_GET['iDisplayLength'] != -1) {
             $sLimit = " LIMIT " . $_GET['iDisplayStart'] . ", " . $_GET['iDisplayLength'];
         }
     }
     /* Ordering */
     if (isset($_GET['iSortCol_0'])) {
         $sOrder = " ORDER BY ";
         for ($i = 0; $i < (int) $_GET['iSortingCols']; $i++) {
             $sOrder .= lC_Products_Admin::_fnColumnToField($_GET['iSortCol_' . $i]) . " " . $_GET['sSortDir_' . $i] . ", ";
         }
         $sOrder = substr_replace($sOrder, "", -2);
     }
     /* Filtering */
     $sWhere = " WHERE p.parent_id = 0 ";
     if ($_GET['sSearch'] != "") {
         $sWhere .= " and (pd.products_name LIKE '%" . $_GET['sSearch'] . "%' or p.products_model LIKE '%" . $_GET['sSearch'] . "%' or p.products_sku LIKE '%" . $_GET['sSearch'] . "%'  or p.products_id = '" . $_GET['sSearch'] . "')";
     }
     /* Main Listing Query */
     if ($category_id > 0) {
         $lC_CategoryTree = new lC_CategoryTree_Admin();
         $lC_CategoryTree->setBreadcrumbUsage(false);
         $in_categories = array($category_id);
         foreach ($lC_CategoryTree->getArray($category_id) as $category) {
             $in_categories[] = $category['id'];
         }
         /* Total Filtered Records */
         $QresultFilterTotal = $lC_Database->query('SELECT count(p.products_id) as total, pd.products_name from :table_products p LEFT JOIN :table_products_description pd on (pd.products_id = p.products_id and pd.language_id = :language_id) LEFT JOIN :table_products_to_categories p2c on (p.products_id = p2c.products_id)' . $sWhere . ' and p2c.categories_id in (:categories_id) ' . $sOrder);
         // $QresultFilterTotal = $lC_Database->query("SELECT count(p.products_id) as total, pd.products_name from :table_products p LEFT JOIN :table_products_description pd on (pd.products_id = p.products_id and pd.language_id = :language_id) " . $sWhere . ' and p2c.categories_id in (:categories_id) ' . $sOrder);
         $QresultFilterTotal->bindTable(':table_products', TABLE_PRODUCTS);
         $QresultFilterTotal->bindTable(':table_products_description', TABLE_PRODUCTS_DESCRIPTION);
         $QresultFilterTotal->bindTable(':table_products_to_categories', TABLE_PRODUCTS_TO_CATEGORIES);
         $QresultFilterTotal->bindInt(':language_id', $lC_Language->getID());
         $QresultFilterTotal->bindRaw(':categories_id', implode(',', $in_categories));
         $QresultFilterTotal->execute();
         $result['iTotalDisplayRecords'] = $QresultFilterTotal->valueInt('total');
         $QresultFilterTotal->freeResult();
         $Qproducts = $lC_Database->query('SELECT p.*, pd.products_name, pd.products_keyword from :table_products p LEFT JOIN :table_products_description pd on (p.products_id = pd.products_id and pd.language_id = :language_id) LEFT JOIN :table_products_to_categories p2c on (p.products_id = p2c.products_id)' . $sWhere . ' and p2c.categories_id in (:categories_id) ' . $sOrder . $sLimit);
         $Qproducts->bindTable(':table_products_to_categories', TABLE_PRODUCTS_TO_CATEGORIES);
         $Qproducts->bindRaw(':categories_id', implode(',', $in_categories));
     } else {
         /* Total Filtered Records */
         $QresultFilterTotal = $lC_Database->query("SELECT count(p.products_id) as total, pd.products_name from :table_products p LEFT JOIN :table_products_description pd on (pd.products_id = p.products_id and pd.language_id = :language_id) " . $sWhere . $sOrder);
         $QresultFilterTotal->bindTable(':table_products', TABLE_PRODUCTS);
         $QresultFilterTotal->bindTable(':table_products_description', TABLE_PRODUCTS_DESCRIPTION);
         $QresultFilterTotal->bindInt(':language_id', $lC_Language->getID());
         $QresultFilterTotal->execute();
         $result['iTotalDisplayRecords'] = $QresultFilterTotal->valueInt('total');
         $QresultFilterTotal->freeResult();
         $Qproducts = $lC_Database->query('SELECT p.*, pd.products_name, pd.products_keyword from :table_products p LEFT JOIN :table_products_description pd on (p.products_id = pd.products_id and pd.language_id = :language_id) ' . $sWhere . $sOrder . $sLimit);
     }
     $Qproducts->bindTable(':table_products', TABLE_PRODUCTS);
     $Qproducts->bindTable(':table_products_description', TABLE_PRODUCTS_DESCRIPTION);
     $Qproducts->bindInt(':language_id', $lC_Language->getID());
     $Qproducts->execute();
     while ($Qproducts->next()) {
         $Qproductscategories = $lC_Database->query('select p2c.categories_id, cd.categories_name, c.categories_status from :table_products_to_categories p2c left join :table_categories c on (p2c.categories_id = c.categories_id) left join lc_categories_description cd on (p2c.categories_id = cd.categories_id) where p2c.products_id = :products_id and cd.language_id = :language_id');
         $Qproductscategories->bindTable(':table_categories', TABLE_CATEGORIES);
         $Qproductscategories->bindTable(':table_categories_description', TABLE_CATEGORIES_DESCRIPTION);
         $Qproductscategories->bindTable(':table_products_to_categories', TABLE_PRODUCTS_TO_CATEGORIES);
         $Qproductscategories->bindRaw(':products_id', $Qproducts->valueInt('products_id'));
         $Qproductscategories->bindInt(':language_id', $lC_Language->getID());
         $Qproductscategories->execute();
         $catCount = $Qproductscategories->numberOfRows() - 1;
         while ($Qproductscategories->next()) {
             $Qcategories[] = array('name' => $Qproductscategories->value('categories_name'), 'status' => $Qproductscategories->valueInt('categories_status'));
         }
         $cnt = 0;
         $catArr = is_array($Qcategories) ? $Qcategories : array();
         foreach ($catArr as $cat) {
             $categories .= '<small title="' . $cat['name'] . '" class="with-tooltip cursor-pointer no-wrap tag mid-margin-right glossy ' . ($cat['status'] == 1 ? ' green-gradient' : ' red-gradient') . '">' . (strlen($cat['name']) < 15 ? $cat['name'] : trim(substr($cat['name'], 0, 12)) . '...') . '</small>';
             if ($cnt > 2) {
                 $categories .= '<br />';
                 $cnt = 0;
             }
             $cnt++;
         }
         $Qcategories = null;
         $lC_Image = new lC_Image_Admin();
         $Qimage = $lC_Database->query('select image from :table_products_images where products_id = :products_id and default_flag = 1');
         $Qimage->bindTable(':table_products_images', TABLE_PRODUCTS_IMAGES);
         $Qimage->bindInt(':products_id', $Qproducts->valueInt('products_id'));
         $Qimage->execute();
         $cost = $lC_Currencies->format($Qproducts->value('products_cost'));
         $msrp = $lC_Currencies->format($Qproducts->value('products_msrp'));
         $products_status = $Qproducts->valueInt('products_status') === 1;
         $products_keyword = $Qproducts->value('products_keyword');
         // VQMOD-hookpoint; DO NOT MODIFY OR REMOVE THE LINE BELOW
         $products_quantity = lC_Products_Admin::getProductsListingQty($Qproducts->toArray());
         // VQMOD-hookpoint; DO NOT MODIFY OR REMOVE THE LINE BELOW
         $price = lC_Products_Admin::getProductsListingPrice($Qproducts->toArray());
         // VQMOD-hookpoint; DO NOT MODIFY OR REMOVE THE LINE BELOW
         $icons = lC_Products_Admin::getlistingIcons($Qproducts->valueInt('products_id'));
         $extra_data = array('products_cost_formatted' => $cost, 'products_price_formatted' => $price, 'products_msrp_formatted' => $msrp, 'products_status' => $products_status, 'products_quantity' => $products_quantity, 'products_keyword' => $products_keyword);
         $check = '<td><input class="batch" type="checkbox" name="batch[]" value="' . $Qproducts->valueInt('products_id') . '" id="' . $Qproducts->valueInt('products_id') . '"></td>';
         $products = '<td><div class="products-listing-thumb">' . $lC_Image->show($Qimage->value('image'), '', 'class="mid-margin-right float-left" width="28" height="28"', 'mini') . '</div><div class="products-listing-name-model"><a href="javascript:void(0);" onclick="showPreview(\'' . $Qproducts->valueInt('products_id') . '\')" class="bold">' . $Qproducts->value('products_name') . '</a><br /><span class="small grey mid-margin-right">' . $Qproducts->value('products_model') . '</span><span class="mid-margin-right">' . $icons . '</span></div></td>';
         $cats = '<td>' . $categories . '</td>';
         $categories = null;
         $class = '<td>' . $lC_Language->get('text_common') . '</td>';
         $price = '<td><div class="no-wrap">' . $price . '</div></td>';
         $qty = '<td>' . $products_quantity . '</td>';
         $status = '<td><span class="align-center" id="status_' . $Qproducts->valueInt('products_id') . '" onclick="updateStatus(\'' . $Qproducts->valueInt('products_id') . '\', \'' . ($Qproducts->valueInt('products_status') == 1 ? 0 : 1) . '\');">' . ($Qproducts->valueInt('products_status') == 1 ? '<span class="icon-tick icon-size2 icon-green cursor-pointer with-tooltip" title="' . $lC_Language->get('text_disable_product') . '"></span>' : '<span class="icon-cross icon-size2 icon-red cursor-pointer with-tooltip" title="' . $lC_Language->get('text_enable_product') . '"></span>') . '</span></td>';
         $action = '<td class="align-right vertical-center">
                <span class="button-group">
                  <a href="' . ((int) ($_SESSION['admin']['access'][$_module] < 3) ? '#' : lc_href_link_admin(FILENAME_DEFAULT, $_module . '=' . $Qproducts->valueInt('products_id') . '&cID=' . $category_id . '&action=save')) . '" class="button icon-pencil' . ((int) ($_SESSION['admin']['access'][$_module] < 3) ? ' disabled' : NULL) . '">' . ($media === 'mobile-portrait' || $media === 'mobile-landscape' ? NULL : $lC_Language->get('icon_edit')) . '</a>
                  <a href="' . ((int) ($_SESSION['admin']['access'][$_module] < 3) ? '#' : 'javascript://" onclick="copyProduct(\'' . $Qproducts->valueInt('products_id') . '\', \'' . urlencode($Qproducts->value('products_name')) . '\')') . '" class="button icon-pages with-tooltip' . ((int) ($_SESSION['admin']['access'][$_module] < 3) ? ' disabled' : NULL) . '" title="' . $lC_Language->get('icon_copy') . '"></a>
                  <a target="_blank" href="' . lc_href_link(FILENAME_PRODUCTS, $Qproducts->value('products_keyword'), 'NONSSL', null, null, true) . '" class="button icon-monitor with-tooltip" title="' . $lC_Language->get('icon_view_in_catalog') . '"></a>
                </span>
                <span class="button-group">
                  <a href="' . ((int) ($_SESSION['admin']['access'][$_module] < 4) ? '#' : 'javascript://" onclick="deleteProduct(\'' . $Qproducts->valueInt('products_id') . '\', \'' . urlencode($Qproducts->value('products_name')) . '\')') . '" class="button icon-trash with-tooltip' . ((int) ($_SESSION['admin']['access'][$_module] < 4) ? ' disabled' : NULL) . '" title="' . $lC_Language->get('icon_delete') . '"></a>
                </span>
              </td>';
         $result['aaData'][] = array("{$check}", "{$products}", "{$cats}", "{$class}", "{$price}", "{$qty}", "{$status}", "{$action}");
         $result['entries'][] = array_merge($Qproducts->toArray(), $extra_data);
         $Qproductscategories->freeResult();
         $Qimage->freeResult();
     }
     $result['sEcho'] = intval($_GET['sEcho']);
     $Qproducts->freeResult();
     return $result;
 }