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

как создать из инфоблока таблицу типо праис.

00 голосов
3
Почита сегодня уже эту проблему освещали но мне не все понятно.
я пока не разбираюся достаточно хорошо в программном коде.
Мне нужно построить таблицу из инфблока NхN.Столбцы имена свойств.Строки элементы с значениями свойств.
Примерно так:
Код
<table width="77%" border="1"> 
<tr> 
<td width="17%" >Название</td> 
<td width="26%" >Название cв-ва1</td> 
<td width="23%" >Название cв-ва2</td> 
<td width="34%" >Название cв-ва N </td> 
</tr> 
<tr> 
<td>назв1</td> 
<td>число</td> 
<td>строка</td> 
<td>число</td> 
</tr> 
<tr> 
<td>назв2</td> 
<td>число</td> 
<td>строка</td> 
<td>число</td> 
</tr> 
</table> 

Можно плиз с примерчегом.
спросил 31 Окт, 13 от Itaru (120 баллов)

3 Ответы

00 голосов
Положите на страницу компонент "Список связанных элементов" (bitrix:catalog.link.list) и настройте его (укажите необходимые свойства).
ответил 03 Дек, 13 от Sage (460 баллов)
00 голосов
Цитата
Положите на страницу компонент "Список связанных элементов" (bitrix:catalog.link.list) и настройте его (укажите необходимые свойства).

Зенкю огромное человеческое спасибо. Я пока бездарь в этом но надеюсь буду также помогать человека.
ответил 15 Март, 14 от Itaru (120 баллов)
00 голосов
Цитата
Tech Deger пишет:
типо праис ..... с примерчегом ..... Зенкю ..... помогать человека
Первое желание возникает, честно говоря, не помочь, а послать. Послать на курсы русского языка.... Ну ладно, будем считать, что это опечатки....
Цитата
Tech Deger пишет:
я пока не разбираюся достаточно хорошо в программном коде.
Может тогда оставим это занятие тем, кто в нём разбирается? :)
Типа: богу - богово, кесарю - кесарево.... :)

Ну а в целом, получается примерно такой код:
Код
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("IBlock в таблице");
?><?
// указываем нужный инфоблок
$iblock = 40;
if (CModule::IncludeModule("iblock")) {
   $color = "#e2f4ff";
   $open_table = true;
   $close_table = false;
   $hdr = "";
   $stru = array();
   $i = 0;
   $res = CIBlock::GetProperties($iblock, Array("SORT"=>"ASC"));
   while ($res_arr = $res->GetNext()) {
      $stru[$i++] = $res_arr["ID"];
      $hdr .= '<td>'.$res_arr["NAME"].'</td>';
   }
   $arSelect = Array("ID");
   $arFilter = Array("IBLOCK_ID"=>$iblock, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y");
   $res2 = CIBlockElement::GetList(Array("SORT"=>"ASC", "NAME"=>"ASC"), $arFilter, false, false, $arSelect);
   while($ob2 = $res2->GetNext()) {
      if ($open_table) {
         $open_table = false;
         $close_table = true;
         echo '<table width="100%" border="1" cellpadding="0" cellspacing="0"><tr><td>Наименование</td>'.$hdr.'</tr>';
      }
      $tovar = GetIBlockElement($ob2["ID"]);
      foreach($tovar["PROPERTIES"] as $arPro) {
         $arr_ln[$arPro["ID"]] = $arPro["VALUE"];
      }
      echo '<tr><td style="background-color:'.$color.'; white-space: nowrap;">'.$tovar["NAME"].'</td>';
      $cnt_stru = count($stru);
      for ($i = 0; $i < $cnt_stru; $i++) {
         echo '<td style="background-color:'.$color.'">'.(($arr_ln[$stru[$i]]=="")?" ":$arr_ln[$stru[$i]]).'</td>';
      }
      echo '</tr>';
      $color = ($color == "#FFFFFF")?"#e2f4ff":"#FFFFFF";
   }
   if ($close_table) {
      echo '</table>';
   } else {
      echo 'нечего выводить....';
   }
}
?><?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
Это в стиле компонентов 1.0 :)
Писалось "на коленке" за 10 минут, так что претензии не принимаются ;)
Желающие могут модернизировать, поставить проверки на значения полей, закешировать....
ответил 06 Июль, 14 от sickmind (4,660 баллов)

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

0 голосов
2 ответов
0 голосов
6 ответов
0 голосов
3 ответов
0 голосов
4 ответов
спросил 14 Янв, 14 от Daeno (520 баллов)
0 голосов
5 ответов