Модуль блогов. Как вывести записи с категории?

#1 22 августа 2014 в 15:29
Доброго времени суток, уважаемые инстановцы. Хочу спросить, возможно ли в модуле блогов вывести записи из определенной категории? Т.е., есть блог админа, в нем категории:

Кат 1
Кат 2
Кат 3

В модуле вывести записи из "Блог админа", и рубрика Кат 3. С остальных 2 не выводить. Вроде бы ранее видел что-то подобное, если память не изменяет, но сейчас с помощью поиска не смог найти (может ошибаюсь, и такого не было, спутал с чем-либо).
#2 22 августа 2014 в 18:38
А чего нельзя то? Можно наверное. scratchНапример в /components/blogs/frontend.php 403стр.
  1. //Если нужно, получаем список рубрик (категорий) этого блога
  2. $blogcats = $blog['showcats'] ? $inBlog->getBlogCats($blog['id']) : false;
По аннологии получаем в модуле. В базе в cms_blogs поле есть showcats называется. В админке в backend.xml добавляем соответвтвенный параметр и дело сделанно.
#3 22 августа 2014 в 19:27
Lora, можно немного детальней?

  1. $blogcats = $blog['showcats'] ? $inBlog->getBlogCats($blog['id']) : false;
это изменить как я понимаю на это
  1. $blogcats = $blog['showcats'] ? $inBlog->getBlogCats($blog['id']) : true;
А вот в backend.xml категории выводятся:

  1. <param type="list_db" name="blog_id" src="cms_blogs" src_title="title" src_value="id" >
  2. <option value="0" />
  3. </param>
А как категории вывести, можно конкретней?
#4 22 августа 2014 в 20:06
Насчёт false-true ничего менять не надо наверное, подставь в модуль и попробуй вывести как есть для начала. Я тоже откуда знаю как там пойдёт, сам же не делал. Просто глянул на код и выдвинул Гипотезу hohoПеред тем как прописывать параметр получи в модуле $showcats. А с параметром сделай по анологии
  1. <param type="list_db" name="showcats" src="cms_blogs" src_title="showcats" src_value="id" >
  2. <option value="0" />
  3. </param>
#5 22 августа 2014 в 20:23
Lora, в модуль вписываю

  1. $blogcats = $blog['showcats'] ? $inBlog->getBlogCats($blog['id']) : false;
добавляю в шаблон в модуле так же
  1. assign('blogcats', $blogcats)->
а вот в backend.xml как я понимаю src="таблица", src_title="поле", src_value="значение из какого поля"
т.е. должно быть что-то на подобии, если верно понимаю,
  1. <param type="list_db" name="showcats" src="cms_blogs_cats" src_title="title" src_value="id" >
  2. <option value="0" />
  3. </param>
Но в итоге ничего не выводится. Если прописать как вы предложили в 4 посте — то выводится значение из таблицы showcats, т.е. везде из списка одна и та же цифра отображается — "1".
#6 22 августа 2014 в 20:29
scanread, В шаблоне $posts['showcats'] ({posts.showcats}) выводится? Или $blog['showcats']? Я уже запарился. Переменная $blogcats?
#7 22 августа 2014 в 20:50
Lora, не выводится. В шаблоне при просмотре полного поста — есть такой вот код:

  1. {if $blog.showcats && $cat}
  2. <div><strong>{$LANG.CAT}:</strong> <a href="/{component}/{$blog.seolink}/cat-{$cat.id}">{$cat.title}</a></div>
  3. {/if}
Там выводится все гуд.
В модуле же не хочет выводить.
Переменная
  1. $blogcats = $blog['showcats'] ? $inBlog->getBlogCats($blog['id']) : false;
$blogcats получается.
#8 22 августа 2014 в 20:54

$blogcats получается.

scanread
Т.е выводится id категории или чего там?
#9 22 августа 2014 в 21:17
Lora, showcats значение в таблице пишет = 1 везде. Вот это значение и выводит вот эта строка

  1. <param type="list_db" name="showcats" src="cms_blogs_cats" src_title="title" src_value="id" >
  2. <option value="0" />
  3. </param>
#10 22 августа 2014 в 21:19
Понятно, думаем 5 минут.
#11 22 августа 2014 в 21:31
Используй переменную $cat_id. В модуле
  1. $cat_id = cmsCore::request('cat_id', 'int', 0);
В шаблоне используй {$post.cat_id} Всё работает.Сейчас с параметрами разберусь.
#12 22 августа 2014 в 21:41
  1. <param type="list_db" name="cat_id" src="cms_blogs" src_title="title" src_value="id" >
  2. <option value="0" />
  3. </param>
В файле /languages/ru/admin/modules/mod_blod.php
  1. $_LANG['MOD_CAT_ID_OPT'] = 'Категории'; // или что нравится
Позже продолжу
#13 22 августа 2014 в 22:22
Lora, Кат ид — это вывод ИД категории блога, но не самой категории. В шаблоне да — работает. А в модуле при выборе блога — на выбор так же только блоги, но не категории (рубрики).
#14 22 августа 2014 в 23:02
Всё правильно. $cat_id это то что и нужно, но запрос не верен. В параметрах следует указать src="cms_blog_cats", теперь выводит верно. И пиши правильно, а то я путаюсь,

В шаблоне да — работает.

scanread
В каком шаблоне? У нас один шаблон-модуль

А в модуле при выборе блога

scanread
А это что, надо пологать админка? Или module.php? Но там ещё нет выбора.
Теперь нужно прописывать в модуле (module.php) условия.Смотри запросы, возможно какую то ф-цию править придётся, а может и нет.Попробуй по аналогии, я пошёл спать.
#15 22 августа 2014 в 23:09
Lora, брр… выводит в настройках модуля вот что:

  1. DATABASE ERROR:
  2. SELECT id as value, title as title
  3. FROM cms_blogs_cats
  4.  
  5. ORDER BY title
  6. LIMIT 100
  7. Table 'mytemp.cms_blogs_cats' doesn't exist
sad
сам параллельно перебираю файлы, но пока безрезультатно чтот…
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.