Перейти к содержанию
Официальный форум поддержки Simpla

Включение и выключение брендов в админке


Рекомендуемые сообщения

я делал на скорую руку...

 

Я так и понял.

Только "я делал" - сильно преувеличено. Тут лишь написано что-то похожее.  Делал - подразумевает минимальную ответственность - затратил пару минут, вставил код и проверил хоть один разочек. В данном случае явно этого не сделано

 

 

...не выкладывают готовые решения на форуме...

 

Это тоже преувеличение.

Во всяком случае, если в запросе просто поменять блоки, легко увидеть вторую ошибку...

На готовое решение никак не тянет, разве что на не слишком успешное упражнение для начинающего

Ссылка на сообщение
Поделиться на другие сайты
  • Ответов 56
  • Дата создания
  • Последний ответ

Лучшие авторы в теме

Лучшие авторы в теме

Файл api/Brands.php, заменить функцию get_brands на эту:

public function get_brands($filter = array())
{
	$category_id_filter = '';
	$visible_filter = '';
	$active_filter = '';
	$in_stock_filter = '';

	if(isset($filter['in_stock']))
		$in_stock_filter = $this->db->placehold('AND (SELECT count(*)>0 FROM __variants pv WHERE pv.product_id=p.id AND pv.price>0 AND (pv.stock IS NULL OR pv.stock>0) LIMIT 1) = ?', intval($filter['in_stock']));

	if(isset($filter['visible']))
		$visible_filter = $this->db->placehold('AND p.visible=?', intval($filter['visible']));
		
	if(!empty($filter['category_id']))
		$category_id_filter = $this->db->placehold("LEFT JOIN __products p ON p.brand_id=b.id LEFT JOIN __products_categories pc ON p.id = pc.product_id WHERE pc.category_id in(?@) $visible_filter $in_stock_filter", (array)$filter['category_id']);

	if(isset($filter['active']))
		$active_filter = $this->db->placehold('AND visible = ?', intval($filter['active']));
		
	// Выбираем все бренды
	$query = $this->db->placehold("SELECT DISTINCT b.id, b.name, b.url, b.meta_title, b.meta_keywords, b.meta_description, b.description, b.image
										FROM __brands b $category_id_filter ORDER BY b.name
										WHERE
										1
										$in_stock_filter
										$visible_filter
										$active_filter");
	$this->db->query($query);

	return $this->db->results();
}

 

Файл view/ProductsView.php меняем выборку брендов на эту:

// Выбираем бренды, они нужны нам в шаблоне
if(!empty($category))
{
	$brands = $this->brands->get_brands(array('category_id'=>$category->children, 'visible'=>true, 'active'=>true));
	$category->brands = $brands;
}

Пробуйте.

 

Спасибо огромное за ответ!

Но выдаёт вот такую ошибку на сайте:

Ссылка на сообщение
Поделиться на другие сайты

Спасибо огромное за ответ!

Но выдаёт вот такую ошибку на сайте:

Внёс правки. Изменено пользователем Noxter
Ссылка на сообщение
Поделиться на другие сайты

После внесенных правок теперь первая ошибка исправлена и FROM стоит перед WHERE, как и должно.

Но теперь, как и предполагалось, выплыла вторая ошибка: в запросе подряд  стоят ДВА блока WHERE.

В результате имеем синтаксическую ошибку, запрос не работает.

 

Спасибо за хорошее обновление!

Ссылка на сообщение
Поделиться на другие сайты

Так и было задумано

 

Крутенько заворачивает опытнейший спец. Специально делать ошибки - это, должно быть, новое слово в программировании. Боюсь, моих умственных способностей не хватит, чтобы постичь всю глубину замысла...

Ссылка на сообщение
Поделиться на другие сайты

Крутенько заворачивает опытнейший спец. Специально делать ошибки - это, должно быть, новое слово в программировании. Боюсь, моих умственных способностей не хватит, чтобы постичь всю глубину замысла...

Я их делаю специально для тебя, дабы ты тут "покукарекал" :D
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...