Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Вывести на одной странице подразделы и элементы в них

00 голосов
6
Мне нужно вывести анонсы статей на страницы, разбитые на подразделы. Это статьи по сути, сгруппированные по годам. Но на странице нужно вывести не только года, как это делается в стандартном компоненте каталога, а и список элеменов в каждом подразделе.

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

Заранее благодарна!

Вот что примерно мне нужно получить:
------------------------------------------------
2005 год
- Производственная деятельность
- Прочностные характеристики по результатам диагностики автодорог
- Наличие и состояние капитальных автодорожных мостов и путепроводов на сети автомобильных дорог
- Изменение кредиторской задолженности Дорожного агентства Республики Коми

2006 год
- Развитие дорожного хозяйства Республики Коми по итогам года

2007 год
- Развитие дорожного хозяйства Республики Коми по итогам года
спросил 04 Июль, 13 от GloomySH (120 баллов)

6 Ответы

00 голосов
Честно говоря, не помню такого компонента.
Можно немного нахимичить следующим образом. На странице размещаем компонент "Список разделов", а в шаблоне данного компонента размещаем компонент "Список элементов" (или новостей).
Соотв, компоненту списка новостей передавать ID раздела, который сейчас выводится.

Конечно, не самое лучшее решение, но зато быстрое и достаточно простое :)
ответил 04 Июль, 13 от sickmind (4,660 баллов)
00 голосов
А поподробнее не расскажите???
ответил 14 Авг, 13 от 4YBAK (160 баллов)
00 голосов
Код
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Добро пожаловать");
?>
<?
   $IBLOCK   =   Ваш инфоблок;

   if($_REQUEST['ID']>0)
   {
      $NEWS   =   _getById($_REQUEST['ID']);
      echo $NEWS['DATE_CREATE'].' '.$NEWS['NAME'].'<br /><br />'.$NEWS['DETAIL_TEXT'];
   }
   else
   {
      $res   =   _GetList($IBLOCK);

      $list   =   array();
      while($row   =   $res->GetNext())
         $list[substr($row['DATE_CREATE'],6,4)][]   =   $row;

      foreach($list as $key=>$row)
      {
         echo $key.'<br />';
         foreach($row as $news)
            echo '---<a href="?ID='.$news['ID'].'">'.$news['NAME'].'</a><br />';
      }

      echo '<br /><br />';

      $res->NavPrint($arIBTYPE["SECTION_NAME"]);
   }

   function _GetList($IBLOCK)
   {
      $select      =   array('ID','NAME','DATE_CREATE');
      $filters   =   Array('IBLOCK_ID'=>$IBLOCK);

      if($IBLOCK>0)
         return   CIBlockElement::GetList(Array('DATE_CREATE'=>'DESC'), $filters, false, Array("nPageSize"=>25), $select);
      else
         return false;
   }

   function _getById($ID)
   {
      GLOBAL $IBLOCK;

      $select      =   array('ID','NAME','DATE_CREATE','PREVIEW_TEXT','DETAIL_TEXT');
      $filters   =   Array('IBLOCK_ID'=>$IBLOCK);

      $res   =   CIBlockElement::GetList(false, $filters, false, false, $select);

      return $row   =   $res->GetNext();
   }


?>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>



Ну это так на скидку сделал по быстрому, но принцип примерно такой же, только по расторопнее
ответил 13 Ноя, 13 от WETERa (800 баллов)
00 голосов
Спасибо за быстрый ответ)

Начало работает, а вот на детальном просмотре новости выводит уже абсолютно левую статью, причем всегда одну и ту же(
ответил 21 Фев, 14 от 4YBAK (160 баллов)
00 голосов
сорри в спешке аппечатался

Код
$res   =   CIBlockElement::GetList(false, $filter, false, false, $select);


$filter заменить на $filters
т.е.

Код
$res   =   CIBlockElement::GetList(false, $filters, false, false, $select);


в сообщение поправил :)
ответил 13 Июнь, 14 от WETERa (800 баллов)
00 голосов
кхе а довольно так симпатично вышло, примерно так же можно прикрутить комментарии, создать инфоблок комментарии с 2 пользовательскими полями, 1-ый с ИД инфоблока, 2-ой с ид элемента к которому привязан комментарии и спокойна вытаскивать
ответил 11 Окт, 14 от WETERa (800 баллов)

Похожие вопросы

0 голосов
1 ответ
0 голосов
1 ответ
0 голосов
3 ответов
0 голосов
2 ответов