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

Определенное количество брендов


Перейти к решению Решено yr4ik,

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

Друзья, как ограничить вывод всех брендов определенным количеством?

 

Пишу:

{get_brands var=all_brands limit=12}

ничего не меняется.

 

Подскажите, пожалуйста, как это сделать.

Спасибо большое!

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

Когда вы перестанете задавать вопросы которые тысячу раз уже были на форуме и начнете пользоваться поиском. http://forum.simplacms.ru/topic/4080-%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B1%D1%80%D0%B5%D0%BD%D0%B4%D0%BE%D0%B2/  первое сообщение с середины

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



вроде бы речь не о сортировке. А о лимитах.

 

 

api/Brands.php в функцию get_brands добавляем

 

$sql_limit = '';
if(isset($filter['limit']) || isset($filter['page']))
{
	$limit = 100;
	$page = 1;
	
	if(isset($filter['limit']))
		$limit = max(1, intval($filter['limit']));

	if(isset($filter['page']))
		$page = max(1, intval($filter['page']));

	$sql_limit = $this->db->placehold(' LIMIT ?, ? ', ($page-1)*$limit, $limit);
}

далее подправляем запрос тут же 

 

		$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 $sql_limit");

 

PS: что то редактор на форуме вообще поплыл.. Сообщения как попало отображаются... 

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

 

вроде бы речь не о сортировке. А о лимитах

 

перед пунктом 3 написано серым шрифтом P.S.: Аналогичным образом можно добавить параметр limit

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

если сложно то можно и по другому

 

    	public function get_rand_brands($count = 2)
    	{
    		$brands = array();
    		$category_id_filter = '';
    		// Выбираем все бренды
    		$query = $this->db->placehold("SELECT id, name, url, meta_title, meta_keywords, meta_description, description, image FROM __brands WHERE 1 ORDER BY RAND() LIMIT $count");
    		$this->db->query($query);
     
    		return $this->db->results();
    	}

 

и вывод

 

    $brand_limit = $this->brands->get_rand_brands(15);
          $this->design->assign('brand_limit', $brand_limit);
Ссылка на сообщение
Поделиться на другие сайты

перед пунктом 3 написано серым шрифтом P.S.: Аналогичным образом можно добавить параметр limit

 

ну там только эта фраза и есть) Аналогично в симпле много чего добавляется.

 

на счет след поста с ф-ей: 

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

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

Когда вы перестанете задавать вопросы которые тысячу раз уже были на форуме и начнете пользоваться поиском.  первое сообщение с середины

 

Спасибо за ответ. К сожалению, в поиске не нашел это.

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

 

 

вроде бы речь не о сортировке. А о лимитах.

 

 

api/Brands.php в функцию get_brands добавляем

 

$sql_limit = '';
if(isset($filter['limit']) || isset($filter['page']))
{
	$limit = 100;
	$page = 1;
	
	if(isset($filter['limit']))
		$limit = max(1, intval($filter['limit']));

	if(isset($filter['page']))
		$page = max(1, intval($filter['page']));

	$sql_limit = $this->db->placehold(' LIMIT ?, ? ', ($page-1)*$limit, $limit);
}

далее подправляем запрос тут же 

 

		$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 $sql_limit");

 

PS: что то редактор на форуме вообще поплыл.. Сообщения как попало отображаются... 

 

Огромное спасибо. Отлично работает!

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

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

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

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

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

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

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

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

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

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