Отображение объявлений во всех родительских рубриках

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#16 4 мая 2013 в 14:38


deltas, сперва ответил, а потом решил даже аргумент вам дать:

  1. DATABASE ERROR:
  2. Unknown column 'cat.NSLeft' in 'where clause'
v

lokanaft

Ваш аргумент не принимается. Вы хотите сказать что в таблице cms_board_cats нет полей NSLeft и NSRight ???
Если бы я не был уверен в работоспособности кода разве бы я выкладывал его сюда? Я специально не писал в ваш блог, не хотел влезать в вашу тему, а написал только тут. Еще раз повторю, все делается двумя строчками:
$model->whereThisAndNestedCats($category['NSLeft'], $category['NSRight']);
$items = $model->getAdverts($is_moder, true,0,1);
#17 4 мая 2013 в 20:45
Хм, кэп подсказывает, что это запрос из $model->getAdvertsCount()

Что на это скажете?
#18 5 мая 2013 в 16:21


В файле \components\board\frontend.php находите строчку

$model->whereCatIs($category['id']);

и меняете ее на $model->whereThisAndNestedCats($category['NSLeft'], $category['NSRight']);

далее находим
$items = $model->getAdverts($is_moder, true);
и меняем на
$items = $model->getAdverts($is_moder, true,0,1);

deltas
Ваше решение работает, Спасибо!
#19 5 мая 2013 в 17:25
Maikl, оно работает также, как работает автомобиль без коробки передач))
#20 5 мая 2013 в 17:34


Maikl, оно работает также, как работает автомобиль без коробки передач))

lokanaft
Не понял, пояснить что там не так работает?
#21 5 мая 2013 в 19:14
Сколько у вас объявлений на одной странице выставлено? 20? Так добавьте 30 объявлений и вы не увидите пагинации, ну никогда и нигде. Включите режим отладки — увидите сообщение об ошибке из поста #16. Мы уже не будем говорить об предоставлении выбора, использовать функцию показа дочерних только в определённых рубриках, пусть будет железобетонно, но оно должно нормально работать! Maikl, скажите deltas-у, что он выбрал неравного противника, тем более для потехи своего чсв.
С Праздником! Всем добра!)
#22 6 мая 2013 в 22:48

он выбрал неравного противника

lokanaft
Ставки принимаются? stuk
#23 6 мая 2013 в 22:54
Олег Васильевич я, ставьте на deltas-а, куда мне школьнегу до матёрого прогера
#24 14 мая 2013 в 04:38

Олег Васильевич я, ставьте на deltas-а, куда мне школьнегу до матёрого прогера

lokanaft

Хамить не обязательно, я никогда не называл себя прогером. Хотя судя по этой записи я уверен что вы школьник. Противника я не выбирал, никому не противостою на этом сайте. Тем более о неравности судить не вам а пользователям.
Раньше не мог ответить, отсутствовал в сети. Да, есть проблема с пагинацией, решается несколькими строчками.
Меняем в файле \components\board\model.php функцию getAdvertsCount на следующую:
  1. public function getAdvertsCount($show_all = false,$left_key,$right_key){
  2. //подготовим условия
  3. $pub_where = ($show_all ? '1=1' : 'i.published = 1');
  4. if ($left_key && $right_key) {
  5. $pub_where .= (" AND cat.NSLeft >= $left_key AND cat.NSRight <= $right_key AND cat.parent_id > 0");}
  6. $sql = "SELECT 1
  7. FROM cms_board_items i LEFT JOIN cms_board_cats cat ON cat.id = i.category_id
  8. WHERE {$pub_where}
  9. {$this->inDB->where}
  10. {$this->inDB->group_by}\n";
  11. $result = $this->inDB->query($sql);
  12. return $this->inDB->num_rows($result);
  13. }
и ее вызов в frontend.php меняем на :
  1. // Общее количество объявлений по заданным выше условиям
  2. $total = $model->getAdvertsCount($is_moder,$category['NSLeft'], $category['NSRight']);
  3.  
З.Ы. Решение нашел за 2 минуты, не тестировал но должно работать.
#25 14 мая 2013 в 09:40

Решение нашел за 2 минуты, не тестировал но должно работать.

deltas

#24 — Сегодня в 04:38

Редактировалось: 2 раз (Последний: Сегодня в 05:08)

Наверное всё таки проверили, чтобы ещё раз не опозориться? laugh

Объясните, к чему был этот пафос: "да там всего 2 строчки поменять надо, а не кучу"?
Теперь сложите ваши несколько строк + ещё несколько строк, сделайте код читабельным и понятным, а так же не забудьте про гибкость в виде возможности отключения этой фишки в некоторых категориях и получите мой способ. Зачем было выпендриваться? Я просто не понимаю.
#26 14 мая 2013 в 14:20
Да нет, не проверял, просто дописал при редактировании это "Хотя судя по этой записи я уверен что вы школьник."
Вы считаете что я каким то образом опозорился? Уважаемый, у вас повышена самооценка…
#27 14 мая 2013 в 18:31
deltas, тогда ответьте на мои несложные вопросы, раз ваша низкая самооценка это вам позволяет.
#28 14 мая 2013 в 18:43
Отвечаю. Ни в коем случае не выпендривался, даже не написал ни строчки в пост вашего блога чтобы не задеть ваше самолюбие. Вы сами начали с нападок. Я просто предложил альтернативный вариант, который мне показался проще. Многие пользователи написали благодарности в личку и на почту, это уже значит что кому то помог…
#29 14 мая 2013 в 20:42
А теперь сложите то, что вам глубоко на.ть на работоспособность вашего кода и то, что им кто то пользуется. Вам не стыдно перед людьми?
#30 14 мая 2013 в 22:32
Спорить с вами больше не буду, каждый при своем мнении. Буду считать личной неприязнью. Мне "глубоко на.ть" на ваше мнение, а пользователей без поддержки не оставлял ни с платными, ни с бесплатными своими работами.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.