Основной курс по Joomla
0 Пользователей и 1 Гость просматривают эту тему.
  • 11 Ответов
  • 477 Просмотров
*

juddi

  • Осваиваюсь на форуме
  • ***
  • 51
  • 0
Добрый день.

есть категория Участники, подкатегории Организации, Физлица. В подкатегориях есть материалы.

Как сделать такой вывод

Организации
  
          организация1                  организация2
          логотип                           логотип
          описание                         описание

Физлица  

          физлицо1                  физлицо2
          фото                         фото
          описание                   описание


Сделала пунк меню "блок категории", который ссылается на категорию Участники. Выводится названия подкатегорий. А нужно чтобы еще выводились и материалы подкатегорий в виде блога.
Спасибо.

« Последнее редактирование: 03.07.2015, 11:53:55 от b2z »
*

juddi

  • Осваиваюсь на форуме
  • ***
  • 51
  • 0
Re: Блог материалов категории
« Ответ #1 : 13.01.2015, 12:42:29 »
Получилось вывести материалы подкатегорий списком.
меняла файл blog_children.php
Код
<ul>
                <?php
                    $db =& JFactory::getDBO();
                    $query = $db->getQuery(true);
                    $query = 'SELECT * FROM `iy58a_content` WHERE `catid`='.$child->id.'  AND `state`>0';
                    $db->setQuery($query);
                    $res= $db->loadObjectList();
                    foreach ($res as $concert) {
                        echo '<li>';
                       echo '<a href="'.JRoute::_(ContentHelperRoute::getArticleRoute($concert->id)).'">'.$concert->title.'</a>';

                        echo '</li>';
                    }
                ?>
            </ul>
*

b2z

  • Support Team
  • *****
  • 7452
  • 741
  • Разраблю понемногу
Re: Блог материалов категории
« Ответ #2 : 13.01.2015, 20:49:32 »
Правильнее
Код: php
ContentHelperRoute::getArticleRoute($concert->id, $child->id, $concert->language);

И зачем выбирать все из content, если нужно только id и title? Ну и language

iy58a замените на #_

$db =& JFactory::getDBO();  - & уже давно не используется

Зачем получать объект запроса и потом использовать его как строку?


Код: php
$db = JFactory::getDbo();
$query = $db->getQuery(true)
    ->select('id, title, language')
    ->from('#__content')
    ->where('catid = ' . (int) $child->id)
    ->where('state > 0');
*

master-smeta

  • Давно я тут
  • ****
  • 271
  • 9
Re: Блог материалов категории
« Ответ #3 : 02.07.2015, 16:59:43 »
Спойлер
[свернуть]
Здравствуйте. У меня аналогичная задача, вот только у меня из базы какую-то ерунду выбирает.
Итак, у меня переопределен макет блога категории. В нем необходимо вывести названия подкатегорий и названия материалов этих подкатегорий.
В файл mymaket_children.php добавляю код:
$db = JFactory::getDbo();
Код
$query = $db->getQuery(true)
    ->select('id, title')
    ->from('#__content')
    ->where('catid = ' . (int)$child->id)
    ->where('state > 0');
$res= $db->loadObjectList();
а потом форычу результат:
Код
<ul>
<?php
 foreach ($res as $wkch): ?>
   <li>
<span class="id"><?php echo $wkch->id; ?></span>
<span class="title"><?php echo $wkch->title; ?></span>
  </li>
<?php endforeach;?>
</ul>
и получаю вовсе не список материалов подкатегорий, а следующий результат:
Код
1 ROOT - это корневая категория
9 WIKIтендер - это текущая категория
10 К - это ИД и название подкатегории, из которой собственно и нужно достать материалы.
Где цифра - ИД категории, а после нее - название категории.
Т.е. я получаю не материалы, а категории. Не могу понять почему
*

master-smeta

  • Давно я тут
  • ****
  • 271
  • 9
Re: Блог материалов категории
« Ответ #5 : 02.07.2015, 19:41:53 »
Как-то странно, потому что запрос выглядит верным.
Вот в том то и дело, все выглядит правильным: возьми поля такие-то, из таблицы такой-то, при условии что ИД категории = тому-то. А в ответ получаю: "вот тебе ИД, вот тебе титл, а из каких это таблиц и по каким условиям - не знаю".
Попробовал код из второго поста, там все работает нормально.

ps кстати говоря, в таблице #__content я что-то не вижу названий категорий. Так что не понятно, откуда же они выцепились
*

b2z

  • Support Team
  • *****
  • 7452
  • 741
  • Разраблю понемногу
*

master-smeta

  • Давно я тут
  • ****
  • 271
  • 9
Re: Блог материалов категории
« Ответ #7 : 03.07.2015, 11:31:00 »
Если сделать echo $query->dump(); перед $res= $db->loadObjectList(); что показывает?
И тут вроде все правильно показывает:
Код
SELECT id, title
FROM ov6ks_content
WHERE catid = 10 AND state > 0

Спойлер
[свернуть]
« Последнее редактирование: 03.07.2015, 11:42:37 от master-smeta »
*

passer

  • Живу я здесь
  • ******
  • 874
  • 70
Re: Блог материалов категории
« Ответ #8 : 03.07.2015, 11:47:39 »
Где $db->setQuery($query); ? У вас выполняется предыдущий запрос, а не тот который написали.
*

master-smeta

  • Давно я тут
  • ****
  • 271
  • 9
Re: Блог материалов категории
« Ответ #9 : 03.07.2015, 11:52:40 »
Где $db->setQuery($query); ? У вас выполняется предыдущий запрос, а не тот который написали.
ой, да, случайно закомментировал вместе с $query = 'SELECT `id`, `title`, `language` FROM `#__content` WHERE `catid`='.$child->id.'  AND `state`>0';

Самое странное, что теперь все работает. Тот код, который вчера выдавал ерунду, сегодня работает нормально. Может нужно было сервер перезагрузить? Но это же бред...
В общем, сейчас все работает, всем спасибо за помощь
*

b2z

  • Support Team
  • *****
  • 7452
  • 741
  • Разраблю понемногу
*

b2z

  • Support Team
  • *****
  • 7452
  • 741
  • Разраблю понемногу
Re: Блог материалов категории
« Ответ #11 : 03.07.2015, 11:53:39 »
ой, да, случайно закомментировал вместе с $query = 'SELECT `id`, `title`, `language` FROM `#__content` WHERE `catid`='.$child->id.'  AND `state`>0';

Самое странное, что теперь все работает. Тот код, который вчера выдавал ерунду, сегодня работает нормально. Может нужно было сервер перезагрузить? Но это же бред...
В общем, сейчас все работает, всем спасибо за помощь
Ну так, setQuery() устанавливает строку запроса. Без этого никуда ;)