Писать на форуме DIAFAN.CMS могут только зарегистрированные пользователи. Войдите или зарегистрируйтесь.
Всего найдено: 1412
-
11 октября 2016 г.
-
Если не расширять функционал, то можно использовать шаблонный тег, используя атрибут cat_id. То есть поочередно вывести тегом все категории товаров.
-
-
-
-
09 октября 2016 г. , редакция: 1476044726
-
Не совсем понятен вопрос (т.е. непонятно что нужно), т.к. ответ и так на поверхности: исключать варианты комбинаций с количеством 0.
Это можно делать еще на стадии формирования массива значений при запросе к базе данных. Можно сделать в shop.model.php после запроса к базе данных. Можно сделать и во вьюшке.
Т.е. все зависит от фантазии. Возможно я не правильно понял обращения, поэтому приведу пример решения Вашего вопроса как я его понимаю.
Вот демонстрационный пример (перейдя по ссылке просто нажмите кнопку Создать демо-сайт). -
-
-
-
08 октября 2016 г.
-
Во время импорта алгоритм считает, что если указано только одна картинка, значит остальные имеющиеся он стирает. Если необходимо иное действо, то необходимо поколдавать над алгоритмом импорта. Например, расширить функционал. Допустим в описании импорта для изображений добавить пункт: Удалять все изображения, неописанные в файле импорта.
Вообще я думал сделать плагин для diafan.cms, который бы расширел функциональность cms, но пока не до этого. Вся проблема в ограниченности часов в сутках. -
-
-
-
12 октября 2016 г.
-
Берем файл shop.admin.import.php и находим функциюПрактически в самом начале кода функции есть строчкаКод
public function set_images(){ ... }
Найдя указанную строчку просто комментируем ее вот такКод$this->diafan->_images->delete($this->id, 'shop', $this->import["element_type"], 0);
Что получим в результате: во время импорта картинок не будут удалятся ранее загруженные изображения.Код//$this->diafan->_images->delete($this->id, 'shop', $this->import["element_type"], 0);
Как-то так. Успехов. -
-
-
-
12 октября 2016 г.
-
Да, забыл. Чуть выше мой ответ касался обычного импорта. Аналогично можно поступить и с импортом 1С.
Берем файл shop.1c.php и находим функциюТам, в начале кода функции, есть строчкаКодprivate function import_img($xml_product, $id, $site_id){ ... }
Соответственно комментируем ее вот такКод$this->diafan->_images->delete($id, 'shop');
Код//$this->diafan->_images->delete($id, 'shop');
И так, а в чем минус такого подхода? Минус в том, что при каждом импорте изображения будут только количественно расти, т.е. возможны дубликаты изображений, если грузить одни и те же картинки.
Поэтому я бы добавил пункт в описании импорта: когда перезаписывать картинки, а когда их дополнять.
Успехов, коллеги. -
-
-
-
12 октября 2016 г. , редакция: 1476280483
-
Решение: берем файл shop.model.php. Далее в нем ищем функциюВ самом начале кода функции есть такие строкиКод
private function list_elements_query($time, $cat_ids){...}
Соответственно заменим найденный код на следующийКодswitch($this->diafan->configmodules("sort"))
{
case 1:
$order = 's.id DESC';
break;
case 2:
$order = 's.id ASC';
break;
case 3:
$order = 's.name'._LANG.' ASC';break;
default:
$order = 's.sort DESC, s.id DESC';
}Жирным курсивом выделил то, что изменилось.Кодswitch($this->diafan->configmodules("sort"))
{
case 1:
$order = 's.id DESC';
break;
case 2:
$order = 's.id ASC';
break;
case 3:
$order = 's.name'._LANG.' ASC';break;
default:
$order = 's.sort ASC, s.id ASC';
}
Далее аналогично поступаем с другой функцией в том же файлеВ начале кода функции находим следующий текстКодprivate function first_page_elements_query($time, $cat_ids){...}
И меняем его на следующийКодswitch($this->diafan->configmodules("sort"))
{
case 1:
$order = 'e.id DESC';
break;
case 2:
$order = 'e.id ASC';
break;
case 3:
$order = 'e.name'._LANG.' ASC';break;
default:
$order = 'e.sort DESC, e.id DESC';
}Жирным курсивом выделил то, что изменилось.Кодswitch($this->diafan->configmodules("sort"))
{
case 1:
$order = 'e.id DESC';
break;
case 2:
$order = 'e.id ASC';
break;
case 3:
$order = 'e.name'._LANG.' ASC';break;
default:
$order = 'e.sort ASC, e.id ASC';
}
Как-то так. Успехов. -
-
-
-
08 октября 2016 г. , редакция: 1475881166
-
Все зависит от фантазии. Думаю правильнее в таблице категорий товаров создать дополнительное поле (допустим, логическое). Вывести соответствующую галочку в админке, в разделе категории товара. Такое действо есть в документации - пошагово расписан пример, как для самых - самых. Т.е. здесь трудностей ни у кого не возникнет. Можно и импорт/экспорт под это дело заточить. Затем через запрос к базе данных выводить список категорий фильтруя по созданному полю. Получив категории, получим и ссылки на них (можно все это в один запрос уложить для быстродействия в зоне кеширования).
Т.е. все же прийдется немного попрограммировать, расширяя интерфейс. В принципе это займет минуты три.
Как-то так. Успехов. -
-
-
-
07 октября 2016 г.
-
В файле shop.model.php корректируете сортировку при обращении к базе данных (это если делать по уму) в следующих функциях:Код
private function first_page_elements_query($time, $cat_ids){ ... }
Кодprivate function list_elements_query_count($time, $cat_ids){ ... }
Есле не по уму, то можно сортировать во вьюшке.
Успехов. -
-
-
-
07 октября 2016 г. , редакция: 1475850296
-
М-да, чего-то Вас не туда несет. Ну, например, берем функциюи излагаем ее вот такКод
private function list_elements_query_count($time, $cat_ids){ ... }
Код/**
* Получает из базы данных элементы для списка элементов
*
* @param integer $time текущее время, округленное до минут, в формате UNIX
* @param array $cat_ids номера категорий, элементы из которых выбираются
* @return array
*/
private function list_elements_query($time, $cat_ids)
{
switch($this->diafan->configmodules("sort")){
case 1:
$order = 's.id DESC';
break;
case 2:
$order = 's.id ASC';
break;
case 3:
$order = 's.name'._LANG.' ASC';
break;
default:
$order = 's.sort DESC, s.id DESC';
}
$rows = DB::query_range_fetch_all(
"SELECT s.id, s.[name], s.timeedit, s.[anons], s.site_id, s.brand_id, s.no_buy, s.article, s.[measure_unit], "
." s.hit, s.new, s.action, s.is_file, pr.count_goods FROM {shop} AS s"
.($this->diafan->_route->sort == 1 || $this->diafan->_route->sort == 2 ?
" LEFT JOIN {shop_price} AS pr ON pr.good_id=s.id AND pr.trash='0'"
." AND pr.date_start<=".time()." AND (pr.date_start=0 OR pr.date_finish>=".time().")"
." AND pr.currency_id=0"
." AND pr.role_id".($this->diafan->_users->role_id ? " IN (0,".$this->diafan->_users->role_id.")" : "=0")
." AND (pr.person='0'".($this->person_discount_ids ? " OR pr.discount_id IN(".implode(",", $this->person_discount_ids).")" : "").")"
: '')
.($this->sort_config['use_params_for_sort'] ? " LEFT JOIN {shop_param_element} AS sp ON sp.element_id=s.id AND sp.trash='0' AND sp.param_id=".$this->sort_config['param_ids'][$this->diafan->_route->sort] : '')
.($this->diafan->configmodules('where_access_element') ? " LEFT JOIN {access} AS a ON a.element_id=s.id AND a.module_name='shop' AND a.element_type='element'" : "")
.($this->diafan->configmodules('hide_missing_goods') && $this->diafan->configmodules('use_count_goods') ? " INNER JOIN {shop_price} AS prh ON prh.good_id=s.id AND prh.count_goods>0" : "")
.($cat_ids ? " INNER JOIN {shop_category_rel} AS r ON s.id=r.element_id" : '')
." WHERE s.[act]='1' AND s.trash='0' "
.($cat_ids ? "AND r.cat_id IN (".implode(',', $cat_ids).")" : 'AND s.site_id='.$this->diafan->_site->id)
.($this->diafan->configmodules('where_period_element') ? " AND s.date_start<=".$time." AND (s.date_finish=0 OR s.date_finish>=".$time.")" : '')
.($this->diafan->_route->brand ? " AND s.brand_id=".$this->diafan->_route->brand : '')
.($this->diafan->configmodules('where_access_element') ? " AND (s.access='0' OR s.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
.($this->diafan->configmodules('hide_missing_goods') ? " AND s.no_buy='0'" : "")
." GROUP BY s.id ORDER BY "."pr.count_goods ASC, "
.($this->diafan->_route->sort ? $this->sort_config['sort_directions'][$this->diafan->_route->sort].',' : '')
."s.no_buy ASC, ".$order,
$this->diafan->_paginator->polog, $this->diafan->_paginator->nastr
);
return $rows;
}
Жирным шрифтом выделил то, что добавил. Т.е. то, что необходимо добавить в данной функции для решения поставленной задачи. Тоже самое для функцииКонечно, если это нужно.Кодprivate function first_page_elements_query($time, $cat_ids){ ... }
Код/**
* Получает из базы данных элементы для первой страницы модуля, если категории используются
*
* @param integer $time текущее время, округленное до минут, в формате UNIX
* @param array $cat_ids номера категорий, элементы из которых выбираются
* @return array
*/
private function first_page_elements_query($time, $cat_ids)
{
switch($this->diafan->configmodules("sort")){
case 1:
$order = 'e.id DESC';
break;
case 2:
$order = 'e.id ASC';
break;
case 3:
$order = 'e.name'._LANG.' ASC';
break;
default:
$order = 'e.sort DESC, e.id DESC';
}
$rows = DB::query_range_fetch_all(
"SELECT e.id, e.[name], e.timeedit, e.[anons], e.site_id, e.brand_id, e.no_buy, e.article, e.hit,"
." e.[measure_unit], e.new, e.action, e.is_file, prh.count_goods FROM {shop} AS e"
." INNER JOIN {shop_category_rel} AS r ON e.id=r.element_id"
.($this->diafan->configmodules('where_access_element') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='shop' AND a.element_type='element'" : "")
.($this->diafan->configmodules('hide_missing_goods') && $this->diafan->configmodules('use_count_goods') ? " INNER JOIN {shop_price} AS prh ON prh.good_id=e.id AND prh.count_goods>0" : "")
." WHERE r.cat_id IN (%s) AND e.[act]='1' AND e.trash='0'"
.($this->diafan->configmodules('where_period_element') ? " AND e.date_start<=".$time." AND (e.date_finish=0 OR e.date_finish>=".$time.")" : '')
.($this->diafan->configmodules('where_access_element') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
.($this->diafan->configmodules('hide_missing_goods') ? " AND e.no_buy='0'" : "")
." GROUP BY e.id ORDER BY "."prh.count_goods ASC, "."e.no_buy ASC, ".$order,
implode(',', $cat_ids),
0, $this->diafan->configmodules("count_list")
);
return $rows;
}
Проверяйте :) -
-
-
-
07 октября 2016 г. , редакция: 1475853455
-
Как обещал, вот правильный кодКод/**
* Получает из базы данных элементы для первой страницы модуля, если категории используются
*
* @param integer $time текущее время, округленное до минут, в формате UNIX
* @param array $cat_ids номера категорий, элементы из которых выбираются
* @return array
*/
private function first_page_elements_query($time, $cat_ids)
{
switch($this->diafan->configmodules("sort")){
case 1:
$order = 'e.id DESC';
break;
case 2:
$order = 'e.id ASC';
break;
case 3:
$order = 'e.name'._LANG.' ASC';
break;
default:
$order = 'e.sort DESC, e.id DESC';
}
$rows = DB::query_range_fetch_all(
"SELECT e.id, e.[name], e.timeedit, e.[anons], e.site_id, e.brand_id, e.no_buy, e.article, e.hit,"
." e.[measure_unit], e.new, e.action, e.is_file, prh.count_goods FROM {shop} AS e"
." INNER JOIN {shop_category_rel} AS r ON e.id=r.element_id"
.($this->diafan->configmodules('where_access_element') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='shop' AND a.element_type='element'" : "")
.($this->diafan->configmodules('hide_missing_goods') && $this->diafan->configmodules('use_count_goods') ? " INNER JOIN {shop_price} AS prh ON prh.good_id=e.id AND prh.count_goods>0" : "")
." WHERE r.cat_id IN (%s) AND e.[act]='1' AND e.trash='0'"
.($this->diafan->configmodules('where_period_element') ? " AND e.date_start<=".$time." AND (e.date_finish=0 OR e.date_finish>=".$time.")" : '')
.($this->diafan->configmodules('where_access_element') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
.($this->diafan->configmodules('hide_missing_goods') ? " AND e.no_buy='0'" : "")
." GROUP BY e.id ORDER BY ".($this->diafan->configmodules('hide_missing_goods') && $this->diafan->configmodules('use_count_goods') ? "prh.count_goods ASC, " : "")."e.no_buy ASC, ".$order,
implode(',', $cat_ids),
0, $this->diafan->configmodules("count_list")
);
return $rows;
}Код/**
* Получает из базы данных элементы для списка элементов
*
* @param integer $time текущее время, округленное до минут, в формате UNIX
* @param array $cat_ids номера категорий, элементы из которых выбираются
* @return array
*/
private function list_elements_query($time, $cat_ids)
{
switch($this->diafan->configmodules("sort")){
case 1:
$order = 's.id DESC';
break;
case 2:
$order = 's.id ASC';
break;
case 3:
$order = 's.name'._LANG.' ASC';
break;
default:
$order = 's.sort DESC, s.id DESC';
}
$rows = DB::query_range_fetch_all(
"SELECT s.id, s.[name], s.timeedit, s.[anons], s.site_id, s.brand_id, s.no_buy, s.article, s.[measure_unit], "
." s.hit, s.new, s.action, s.is_file, pr.count_goods FROM {shop} AS s"
.($this->diafan->_route->sort == 1 || $this->diafan->_route->sort == 2 ?
" LEFT JOIN {shop_price} AS pr ON pr.good_id=s.id AND pr.trash='0'"
." AND pr.date_start<=".time()." AND (pr.date_start=0 OR pr.date_finish>=".time().")"
." AND pr.currency_id=0"
." AND pr.role_id".($this->diafan->_users->role_id ? " IN (0,".$this->diafan->_users->role_id.")" : "=0")
." AND (pr.person='0'".($this->person_discount_ids ? " OR pr.discount_id IN(".implode(",", $this->person_discount_ids).")" : "").")"
: '')
.($this->sort_config['use_params_for_sort'] ? " LEFT JOIN {shop_param_element} AS sp ON sp.element_id=s.id AND sp.trash='0' AND sp.param_id=".$this->sort_config['param_ids'][$this->diafan->_route->sort] : '')
.($this->diafan->configmodules('where_access_element') ? " LEFT JOIN {access} AS a ON a.element_id=s.id AND a.module_name='shop' AND a.element_type='element'" : "")
.($this->diafan->configmodules('hide_missing_goods') && $this->diafan->configmodules('use_count_goods') ? " INNER JOIN {shop_price} AS prh ON prh.good_id=s.id AND prh.count_goods>0" : "")
.($cat_ids ? " INNER JOIN {shop_category_rel} AS r ON s.id=r.element_id" : '')
." WHERE s.[act]='1' AND s.trash='0' "
.($cat_ids ? "AND r.cat_id IN (".implode(',', $cat_ids).")" : 'AND s.site_id='.$this->diafan->_site->id)
.($this->diafan->configmodules('where_period_element') ? " AND s.date_start<=".$time." AND (s.date_finish=0 OR s.date_finish>=".$time.")" : '')
.($this->diafan->_route->brand ? " AND s.brand_id=".$this->diafan->_route->brand : '')
.($this->diafan->configmodules('where_access_element') ? " AND (s.access='0' OR s.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
.($this->diafan->configmodules('hide_missing_goods') ? " AND s.no_buy='0'" : "")
." GROUP BY s.id ORDER BY ".($this->diafan->configmodules('hide_missing_goods') && $this->diafan->configmodules('use_count_goods') ? "prh.count_goods ASC, " : "")
.($this->diafan->_route->sort ? $this->sort_config['sort_directions'][$this->diafan->_route->sort].',' : '')
."s.no_buy ASC, ".$order,
$this->diafan->_paginator->polog, $this->diafan->_paginator->nastr
);
return $rows;
}
Поясняю, чтобы увидеть результат такой сортировки, необходимо, чтобы параметры hide_missing_goods (не показывать отсутствующие товары) и use_count_goods (использовать количество товаров) были включены
ИЛИ другой вариант этих функций (без использования параметров hide_missing_goods и use_count_goods)Код/**
* Получает из базы данных элементы для первой страницы модуля, если категории используются
*
* @param integer $time текущее время, округленное до минут, в формате UNIX
* @param array $cat_ids номера категорий, элементы из которых выбираются
* @return array
*/
private function first_page_elements_query($time, $cat_ids)
{
switch($this->diafan->configmodules("sort")){
case 1:
$order = 'e.id DESC';
break;
case 2:
$order = 'e.id ASC';
break;
case 3:
$order = 'e.name'._LANG.' ASC';
break;
default:
$order = 'e.sort DESC, e.id DESC';
}
$rows = DB::query_range_fetch_all(
"SELECT e.id, e.[name], e.timeedit, e.[anons], e.site_id, e.brand_id, e.no_buy, e.article, e.hit,"
." e.[measure_unit], e.new, e.action, e.is_file, prh.count_goods FROM {shop} AS e"
." INNER JOIN {shop_category_rel} AS r ON e.id=r.element_id"
.($this->diafan->configmodules('where_access_element') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='shop' AND a.element_type='element'" : "")
." INNER JOIN {shop_price} AS prh ON prh.good_id=e.id AND prh.count_goods>0"
." WHERE r.cat_id IN (%s) AND e.[act]='1' AND e.trash='0'"
.($this->diafan->configmodules('where_period_element') ? " AND e.date_start<=".$time." AND (e.date_finish=0 OR e.date_finish>=".$time.")" : '')
.($this->diafan->configmodules('where_access_element') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
.($this->diafan->configmodules('hide_missing_goods') ? " AND e.no_buy='0'" : "")
." GROUP BY e.id ORDER BY ".($this->diafan->configmodules('hide_missing_goods') && $this->diafan->configmodules('use_count_goods') ? "prh.count_goods ASC, " : "")."e.no_buy ASC, ".$order,
implode(',', $cat_ids),
0, $this->diafan->configmodules("count_list")
);
return $rows;
}Код/**
* Получает из базы данных элементы для списка элементов
*
* @param integer $time текущее время, округленное до минут, в формате UNIX
* @param array $cat_ids номера категорий, элементы из которых выбираются
* @return array
*/
private function list_elements_query($time, $cat_ids)
{
switch($this->diafan->configmodules("sort")){
case 1:
$order = 's.id DESC';
break;
case 2:
$order = 's.id ASC';
break;
case 3:
$order = 's.name'._LANG.' ASC';
break;
default:
$order = 's.sort DESC, s.id DESC';
}
$rows = DB::query_range_fetch_all(
"SELECT s.id, s.[name], s.timeedit, s.[anons], s.site_id, s.brand_id, s.no_buy, s.article, s.[measure_unit], "
." s.hit, s.new, s.action, s.is_file, pr.count_goods FROM {shop} AS s"
.($this->diafan->_route->sort == 1 || $this->diafan->_route->sort == 2 ?
" LEFT JOIN {shop_price} AS pr ON pr.good_id=s.id AND pr.trash='0'"
." AND pr.date_start<=".time()." AND (pr.date_start=0 OR pr.date_finish>=".time().")"
." AND pr.currency_id=0"
." AND pr.role_id".($this->diafan->_users->role_id ? " IN (0,".$this->diafan->_users->role_id.")" : "=0")
." AND (pr.person='0'".($this->person_discount_ids ? " OR pr.discount_id IN(".implode(",", $this->person_discount_ids).")" : "").")"
: '')
.($this->sort_config['use_params_for_sort'] ? " LEFT JOIN {shop_param_element} AS sp ON sp.element_id=s.id AND sp.trash='0' AND sp.param_id=".$this->sort_config['param_ids'][$this->diafan->_route->sort] : '')
.($this->diafan->configmodules('where_access_element') ? " LEFT JOIN {access} AS a ON a.element_id=s.id AND a.module_name='shop' AND a.element_type='element'" : "")
." INNER JOIN {shop_price} AS prh ON prh.good_id=s.id AND prh.count_goods>0"
.($cat_ids ? " INNER JOIN {shop_category_rel} AS r ON s.id=r.element_id" : '')
." WHERE s.[act]='1' AND s.trash='0' "
.($cat_ids ? "AND r.cat_id IN (".implode(',', $cat_ids).")" : 'AND s.site_id='.$this->diafan->_site->id)
.($this->diafan->configmodules('where_period_element') ? " AND s.date_start<=".$time." AND (s.date_finish=0 OR s.date_finish>=".$time.")" : '')
.($this->diafan->_route->brand ? " AND s.brand_id=".$this->diafan->_route->brand : '')
.($this->diafan->configmodules('where_access_element') ? " AND (s.access='0' OR s.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
.($this->diafan->configmodules('hide_missing_goods') ? " AND s.no_buy='0'" : "")
." GROUP BY s.id ORDER BY ".($this->diafan->configmodules('hide_missing_goods') && $this->diafan->configmodules('use_count_goods') ? "prh.count_goods ASC, " : "")
.($this->diafan->_route->sort ? $this->sort_config['sort_directions'][$this->diafan->_route->sort].',' : '')
."s.no_buy ASC, ".$order,
$this->diafan->_paginator->polog, $this->diafan->_paginator->nastr
);
return $rows;
}
Здесь жирным шрифтом то, что добавлено, а подчеркнуто то, что изменено.
Успехов, коллега. -
-
-
-
16 февраля 2017 г. , редакция: 1487267169
-
К сожалению на текущий момент очень занят. Постараюсь кратко.Обратите внимание на функциюЦитата1. Функция которая делает подсчет элементов для пагинации - делала подсчет по умолчанию т.е. кол-во элементов в выдаче и в пагинации разное.В этой и приведенных выше функциях, запросы должны быть аналогичными, так как одни функции выводят список (то что выше приведено), а эта функция определяет количество элементов, которые используются в пагинации.Код
private function list_elements_query_count($time, $cat_ids){ ... }
Обратите внимание в приведенном выше коде вот на этоЦитата2. Обе кастомизации кода фактически исключают из выборки товары которых нет в наличии, но как сделать чтобы те что в наличии просто шли за теми что в наличии т.е. 1й порядок сортировки по наличию (кол-ву), 2й по параметру сортировки указанному в настройках.Кодprivate function list_elements_query_count($time, $cat_ids)
Да и не забывайте сбрасывать кеш, так как эти функции находятся в его зоне.
Все это очень просто, но нет времени расписывать.
Успехов. -
-
-
-
07 октября 2016 г. , редакция: 1475847681
-
По дефолту используются следующие шаблоны страниц:
site_start.php
site_catalog.php
site.php
Вот там и выставляются шаблонные теги вывода информации. Но учитывая, что Вы используете облако, то необходимо, чтобы к таким файлам у Вас был доступ.
Определить какой шаблон страницы используется для вывода можно через административную часть сайта. -
-
-
-
25 сентября 2016 г.
-
Вам лучше сообщить о своем желании здесь: http://pro.user.diafan.ru
-
-
-
-
19 сентября 2016 г. , редакция: 1474280591
-
В административной части сайта, в разделе "Каталог", на закладке "Характеристики" создаете новую характеристику с типом "строка". В админке, в карточке товара, в поле созданной характеристики пишитеВсе. На странице товара в поле характеристики будет выведена соответствующая ссылка.Код
<a href="demo.diafan.ru">Демоверсия diafan.cms</a>
Успехов. -
-
-
-
19 сентября 2016 г. , редакция: 1474280993
-
Не совсем в shop.model.php, а в shop.inc.price.php.Цитата1. Где в модельке формируется запрос который делает выборку данной хар-ки - хотел бы делать выборку тех параметров у которых кол-во товара не равно 0?в shop.inc.price.php или в shop.view.buy_form.php / shop.view.buy_form_list.php (в зависимости от того, что используете). Думаю для Вас второй вариант (вариантов реально много - зависит от фантазии) будет проще. Например в shop.view.buy_form.php перед строчкойЦитата2. Где в модельке можно указать порядок сортировки для выборки данной хар-ки, чтобы сортирнуть ко кол-ву и нулевые остатки оказались в конце списка?пересортируйте массив так, как вам надо.Код
if ($result["row"]["price_arr"])
Успехов. -
-
-
Новости
-
18 июня
-
В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
-
24 апреля
-
В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
-
12 января
-
После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке.
Блоги
-
24.04.2024
-
Выпустили новую сборку DIAFAN.CMS 7.1.4.
Блоги
-
12.01.2024
-
В данном руководстве познакомим вас с панелью управления DIAFAN.CMS