Добавление поле сортировки shop script lego edition
Добавление поля в БД.
Подключаемся к базе данных (например, через phpMyAdmin).
Находим таблицу SS_products и добавить поле ordering
Добавляем поле в панели администрирования
Открываем файл /core/admin_tmpl/ catalog_products_edit.tpl.html
Перед
1 |
<tr class="odd"> <td colspan="4" class="left"><b>META</b></td> </tr> |
Добавляем
1 |
<tr> <td class="left">Порядок(Ordering):</td> <td class="left"><input type="text" name="ordering" value="{$product_edit[22]}" style="width: 145px" /></td> <td></td> <td></td> </tr> |
Передаем значения поля в шаблон панели администрирования и добавляем функционал для сохранения поля.
Открываем файл /includes/admin/sub/catalog_products_edit.php
В районе 466 строчки есть запрос вида:
$q = db_query("SELECT categoryID, name, description, customers_rating, … FROM ".PRODUCTS_TABLE." |
Добавляем наше поле
$q = db_query("SELECT categoryID, name, description, customers_rating, … , ordering FROM ".PRODUCTS_TABLE." |
В районе 50 строки есть код вида:
1 |
$updateproduct['categoryID']=(int)$_POST["categoryID"]; $updateproduct['name']=($_POST["name"]); |
Нужно к нему добавить строку
1 |
$updateproduct['ordering']=$_POST["ordering"]; |
В районе 214 ищем
1 |
$addproduct['categoryID']=(int)$_POST["categoryID"]; $addproduct['name']=($_POST["name"]); |
Добавляем строку
1 |
$addproduct['ordering']=$_POST["ordering"]; |
Добавляем новое поле в выпадающий список сортировок.
Файл /includes/category.php
Строка 31 объявляется массив:
$sort_options['sort_values'] = Array( |
Первой строчкой добавляем
$row[7]."&sort=ordering&order=ASC", |
Где sort=ordering – наше поле
Ниже, в районе 40 строки есть еще массив:
$sort_options['sort_names'] = Array(ADMIN_SORT_BY_NAME_ASC, … |
Добавляем в него "По умолчанию"
$sort_options['sort_names'] = Array('По умолчанию', ADMIN_SORT_BY_NAME_ASC, … |
Делаем нашу сортировку валидной для CMS
Файл /index.php
В районе 246 строки ищем код:
1 |
switch ($_GET["sort"]) { case "name": $_SESSION["sort"] = "name"; break; case "Price": $_SESSION["sort"] = "Price"; break; case "in_stock": $_SESSION["sort"] = "in_stock"; break; case "product_code": $_SESSION["sort"] = "product_code"; break; case "customers_rating": $_SESSION["sort"] = "customers_rating"; break; default: $_SESSION["sort"] = CONF_SORT_PRODUCT; break; } |
И меняем его на
1 |
switch ($_GET["sort"]) { default: case "ordering": $_SESSION["sort"] = "ordering"; break; case "name": $_SESSION["sort"] = "name"; break; case "Price": $_SESSION["sort"] = "Price"; break; case "in_stock": $_SESSION["sort"] = "in_stock"; break; case "product_code": $_SESSION["sort"] = "product_code"; break; case "customers_rating": $_SESSION["sort"] = "customers_rating"; break; // default: $_SESSION["sort"] = CONF_SORT_PRODUCT; break; } |
В районе 270 строки меняем
if (!isset($_SESSION["sort"])) $_SESSION["sort"] = CONF_SORT_PRODUCT; |
на
if (!isset($_SESSION["sort"])) $_SESSION["sort"] = "ordering"; //CONF_SORT_PRODUCT; |