Телеграм: @camouf_ru Почта: mihail@bazarow.ru

Видеоурок №6: создаем простые инфоблоки и выводим на сайт

Просмотров: 31290

Создаем инфоблоки для новостей и услуг. Рассказываю как устроен шаблон компонента "новости". Наполняем данные разделы тестовыми материалами. В качестве пробного задания необходимо создать и вывести на сайт инфоблок "Акции" на основе приме

Видеоурок №6: создаем простые инфоблоки и выводим на сайт

Все серии

Комментарии к видео

Guest12.10.2015
В правом-нижнем углу мелким шрифтом "Скрыто: 3", кликнуть на неё, и показывает скрытые файлы (а Ваш "метод" у меня чёта не сработал - папка просто создаётся скрытая и всё).
jim_nyc07.04.2016
Здравствуйте Михаил. Отличные уроки, помогли немного разобраться. Единственное, с новостями проблема. Не получается вывести их в две колонки. Не подскажите как можно это сделать?
Михаил Базаров08.04.2016
Цитата
jim_nyc написал:
Здравствуйте Михаил. Отличные уроки, помогли немного разобраться. Единственное, с новостями проблема. Не получается вывести их в две колонки. Не подскажите как можно это сделать?
Просто двухколоночной версткой, чисто на знаниях верстки
A A30.06.2016
У меня несколько вопросв к этому замечательному уроку:
1. Допустим у меня есть Раздел и в нем 6 подразделов. При заходе в раздел я хочу выводить список его подразделов в виде инфоблоков: заголовок-картинка-анонс. Значит ли это, что мне нужно создать инфоблок "Подраздел" и выводить его а-ля список новостей в вашем примере?

2. Внутри каждого из 6 подразделов у меня есть список товаров . Я хочу избежать использование компнента "Каталог товаров" (у меня 12 версия и я не очень хочу ее выверстывать до состояния вменяемой). Могу ли я товары тоже сделать инфоблоками, но выводить список конкретной группы товаров на Детальной странице инфоблока "Подраздел"?

3. После этого мне нужно на главной странице выводить по 3 штуки анонса товаров. НО. Эти товары принадлежат разным Подразделам (то есть не находятся в одном списке так сказать "новостей"). И они должны выводится рандомно.

Если это ахинея - делать всю эту работу инфоблоками, подскажите, пожалуйста - как получить нормальный каталог, без этих чудовищных увеличивающихся при наведении блоков.
Михаил Базаров30.06.2016
Цитата
A A написал:
У меня несколько вопросв к этому замечательному уроку:
1. Допустим у меня есть Раздел и в нем 6 подразделов. При заходе в раздел я хочу выводить список его подразделов в виде инфоблоков: заголовок-картинка-анонс. Значит ли это, что мне нужно создать инфоблок "Подраздел" и выводить его а-ля список новостей в вашем примере?

2. Внутри каждого из 6 подразделов у меня есть список товаров . Я хочу избежать использование компнента "Каталог товаров" (у меня 12 версия и я не очень хочу ее выверстывать до состояния вменяемой). Могу ли я товары тоже сделать инфоблоками, но выводить список конкретной группы товаров на Детальной странице инфоблока "Подраздел"?

3. После этого мне нужно на главной странице выводить по 3 штуки анонса товаров. НО. Эти товары принадлежат разным Подразделам (то есть не находятся в одном списке так сказать "новостей"). И они должны выводится рандомно.

Если это ахинея - делать всю эту работу инфоблоками, подскажите, пожалуйста - как получить нормальный каталог, без этих чудовищных увеличивающихся при наведении блоков.
Да, делать все инфоблоками немножко "ахинея"  :)
Достаточно одного инфоблока, и получится (опять же, что бы избежать ахинеи) только через компонент каталога.
Вменяемые шаблон каталога можете взять тут https://camouf.ru/blog-note/918/
Они попроще для чтения и переделки, чем новые. Используйте шаблон .default
A A01.07.2016
1.
Цитата
Достаточно одного инфоблока, и получится (опять же, что бы избежать ахинеи) только через компонент каталога.
Не совсем поняла фразу. Это значит "достаточно только компонента каталога" или "нужен компонент каталога и еще один инфоблок"?

2. Извиняюсь за свое невежество: а в какую папку положить старые шаблоны каталога, чтобы можно было с ними работать?
Михаил Базаров01.07.2016
Цитата
A A написал:
1.
Цитата
Достаточно одного инфоблока, и получится (опять же, что бы избежать ахинеи) только через компонент каталога.
Не совсем поняла фразу. Это значит "достаточно только компонента каталога" или "нужен компонент каталога и еще один инфоблок"?

2. Извиняюсь за свое невежество: а в какую папку положить старые шаблоны каталога, чтобы можно было с ними работать?
1) Нужно создать один инфоблок, а на сайт его вывести через компонент "каталог"
2) Положить нужно в шаблон вашего сайта или в шаблон .default - смотря как, в подошли к структуризации ваших шаблонов- тут точно не подсказать.
A A01.07.2016
Я копирую шаблоны компонентов в папку default, по вашим урокам.
A A04.07.2016
У мекня внезапно случилась странная поломка: я сделала инфоблоки "Новости" и "Акции", все нормально выводилось, решила только сверстать попозже. Потом сделала вывод на главную списка новостей. Вроде тоже хорошо. Все шаблоны скопировала в .default. И теперь получилось вот что: все 3 компонента реагируют на изменение css шаблона от списка новостей (который справа на главной), Новости и Акции на изменение своих собственных css шаблонов не реагируют вообще. Шаблоны разные, я их вижу. Что это могло бы быть?
Михаил Базаров04.07.2016
Цитата
A A написал:
У мекня внезапно случилась странная поломка: я сделала инфоблоки "Новости" и "Акции", все нормально выводилось, решила только сверстать попозже. Потом сделала вывод на главную списка новостей. Вроде тоже хорошо. Все шаблоны скопировала в .default. И теперь получилось вот что: все 3 компонента реагируют на изменение css шаблона от списка новостей (который справа на главной), Новости и Акции на изменение своих собственных css шаблонов не реагируют вообще. Шаблоны разные, я их вижу. Что это могло бы быть?
Скорее всего одинаковые названия селекторов, css списка подгружается последней и перешибает все изменения. Или переименуйте селекторы, или используйте их вложенность в родительские
A A05.07.2016
Да, точно, я сама убедилась. Спасибо.
И за шаблон каталога спасибо, все отлично и понятно теперь выглядит, можно верстать.
Сергей Манник12.11.2016
Добрый день.
вывел компонент новости на сайт но возникла проблема с выводом анонса так как иногда он не заполнялся,
попробовал такую конструкцию поставить в шаблон вывода новостей но результата  не дало...подскажите где я косячу?
<?
$arItem["PREVIEW_TEXT"] = (TruncateText($arResult["DETAIL_TEXT"], 250));
<?echo $arItem["PREVIEW_TEXT"];
?>
Михаил Базаров12.11.2016
Цитата
Сергей Манник написал:
Добрый день.
вывел компонент новости на сайт но возникла проблема с выводом анонса так как иногда он не заполнялся,
попробовал такую конструкцию поставить в шаблон вывода новостей но результата  не дало...подскажите где я косячу?
<?
$arItem["PREVIEW_TEXT"] = (TruncateText($arResult["DETAIL_TEXT"], 250));
<?echo $arItem["PREVIEW_TEXT"];
?>
Вы что-то странное закрутили с синтаксисом. Проверьте написание
Сергей Манник12.11.2016
Цитата
Михаил Базаров пишет:
Цитата
Сергей Манник написал:
Добрый день.
вывел компонент новости на сайт но возникла проблема с выводом анонса так как иногда он не заполнялся,
попробовал такую конструкцию поставить в шаблон вывода новостей но результата не дало...подскажите где я косячу?
<?
$arItem["PREVIEW_TEXT"] = (TruncateText($arResult["DETAIL_TEXT"], 250));
<?echo $arItem["PREVIEW_TEXT"];
?>
Вы что-то странное закрутили с синтаксисом. Проверьте написание
так самое смешное если я это делаю в коде где выводится подробный текст то он выводит а в списке всех новостей нет
Михаил Базаров12.11.2016
Цитата
Сергей Манник написал:
Цитата
Михаил Базаров  пишет:
Цитата
Сергей Манник написал:
Добрый день.
вывел компонент новости на сайт но возникла проблема с выводом анонса так как иногда он не заполнялся,
попробовал такую конструкцию поставить в шаблон вывода новостей но результата не дало...подскажите где я косячу?
<?
$arItem["PREVIEW_TEXT"] = (TruncateText($arResult["DETAIL_TEXT"], 250));
<?echo $arItem["PREVIEW_TEXT"];
?>
Вы что-то странное закрутили с синтаксисом. Проверьте написание
так самое смешное если я это делаю в коде где выводится подробный текст то он выводит а в списке всех новостей нет
Я просто понять не могу что вы делаете)
Вы превратили PREVIEW_TEXT в DETAIL_TEXT обрезав его до 250 символов
Потом вывели этот PREVIEW_TEXT

Не понимаю зачем?
Просто выводите DETAIL_TEXT  если надо обрежте его, типа того
Код
<?
$mytext = $arItem["DETAIL_TEXT";
echo TruncateText($mytext, 250);
?>
или
Код
<?
echo TruncateText($arItem["DETAIL_TEXT"], 250);
?>
Александр Спиридонов23.12.2016
Здравствуйте.
Огромное спасибо Вам за Ваши уроки!
У меня в оформлении свойств Акций возникли проблемы.
Добавил в акции 2 свойства: "действует с" и "действует по". Тип обоих свойств - ДАТА.

В template взял отображение названия свойства и значение свойства в <div class="propreties">

в style.css , чтобы оба свойства были в одну строку установил display: inline-block;
и задумал, что свойства будут на зеленом фоне.
НО! между свойствами пробел и фон видно что не единый.
Как это исправить?  

Создавал родительский div над свойствами и устанавливал там white-space: nowrap;

Но это не помогло.

Код
<div class="1">
      <?foreach($arResult["FIELDS"] as $code=>$value):
      if ('PREVIEW_PICTURE' == $code || 'DETAIL_PICTURE' == $code)
      {
         ?><?=GetMessage("IBLOCK_FIELD_".$code)?>:&nbsp;<?
         if (!empty($value) && is_array($value))
         {
            ?><img border="0" src="<?=$value["SRC"]?>" width="<?=$value["WIDTH"]?>" height="<?=$value["HEIGHT"]?>"><?
         }
      }
      else
      {
         ?><?=GetMessage("IBLOCK_FIELD_".$code)?>:&nbsp;<?=$value;?><?
      }
      ?><br />
   <?endforeach;

   foreach($arResult["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>

      <div class="propreties"><?=$arProperty["NAME"]?>
      <b><?if(is_array($arProperty["DISPLAY_VALUE"])):?>
         <?=implode("&nbsp;/&nbsp;", $arProperty["DISPLAY_VALUE"]);?>
      <?else:?>
         <?=$arProperty["DISPLAY_VALUE"];?>
      <?endif?></b></div>
   <?endforeach;

   if(array_key_exists("USE_SHARE", $arParams) && $arParams["USE_SHARE"] == "Y")
   {
      ?>
      <div class="news-detail-share">
         <noindex>
         <?
         $APPLICATION->IncludeComponent("bitrix:main.share", "", array(
               "HANDLERS" => $arParams["SHARE_HANDLERS"],
               "PAGE_URL" => $arResult["~DETAIL_PAGE_URL"],
               "PAGE_TITLE" => $arResult["~NAME"],
               "SHORTEN_URL_LOGIN" => $arParams["SHARE_SHORTEN_URL_LOGIN"],
               "SHORTEN_URL_KEY" => $arParams["SHARE_SHORTEN_URL_KEY"],
               "HIDE" => $arParams["SHARE_HIDE"],
            ),
            $component,
            array("HIDE_ICONS" => "Y")
         );
         ?>
         </noindex>
      </div>
      <?
   }
   ?>
</div>
 
Код
div.propreties {
   background-color: #628208;
   white-space: nowrap;
   display: inline-block;
   padding: 5px;
   margin: 0px;
   color: #fff;
}

div.1 {
   white-space: nowrap;
}
 
[img]Z:\!Ксюша\bitrix[/img]
Михаил Базаров24.12.2016
Цитата
Александр Спиридонов написал:
Здравствуйте.
Огромное спасибо Вам за Ваши уроки!
У меня в оформлении свойств Акций возникли проблемы.
Добавил в акции 2 свойства: "действует с" и "действует по". Тип обоих свойств - ДАТА.

В template взял отображение названия свойства и значение свойства в <div class="propreties">

в style.css , чтобы оба свойства были в одну строку установил display: inline-block;
и задумал, что свойства будут на зеленом фоне.
НО! между свойствами пробел и фон видно что не единый.
Как это исправить?  

Создавал родительский div над свойствами и устанавливал там white-space: nowrap;

Но это не помогло.
Код
 <div class="1">
      <?foreach($arResult["FIELDS"] as $code=>$value):
      if ('PREVIEW_PICTURE' == $code || 'DETAIL_PICTURE' == $code)
      {
         ?><?=GetMessage("IBLOCK_FIELD_".$code)?>: <?
         if (!empty($value) && is_array($value))
         {
            ?><img border="0" src="<?=$value["SRC"]?>" width="<?=$value["WIDTH"]?>" height="<?=$value["HEIGHT"]?>"><?
         }
      }
      else
      {
         ?><?=GetMessage("IBLOCK_FIELD_".$code)?>: <?=$value;?><?
      }
      ?><br />
   <?endforeach;

   foreach($arResult["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>

      <div class="propreties"><?=$arProperty["NAME"]?>
      <b><?if(is_array($arProperty["DISPLAY_VALUE"])):?>
         <?=implode(" / ", $arProperty["DISPLAY_VALUE"]);?>
      <?else:?>
         <?=$arProperty["DISPLAY_VALUE"];?>
      <?endif?></b></div>
   <?endforeach;

   if(array_key_exists("USE_SHARE", $arParams) && $arParams["USE_SHARE"] == "Y")
   {
      ?>
      <div class="news-detail-share">
         <noindex>
         <?
         $APPLICATION->IncludeComponent("bitrix:main.share", "", array(
               "HANDLERS" => $arParams["SHARE_HANDLERS"],
               "PAGE_URL" => $arResult["~DETAIL_PAGE_URL"],
               "PAGE_TITLE" => $arResult["~NAME"],
               "SHORTEN_URL_LOGIN" => $arParams["SHARE_SHORTEN_URL_LOGIN"],
               "SHORTEN_URL_KEY" => $arParams["SHARE_SHORTEN_URL_KEY"],
               "HIDE" => $arParams["SHARE_HIDE"],
            ),
            $component,
            array("HIDE_ICONS" => "Y")
         );
         ?>
         </noindex>
      </div>
      <?
   }
   ?>
</div>
  
Код
 div.propreties {
   background-color: #628208;
   white-space: nowrap;
   display: inline-block;
   padding: 5px;
   margin: 0px;
   color: #fff;
}

div.1 {
   white-space: nowrap;
}
  
[img]file:///Z:/!%D0%9A%D1%81%D1%8E%D1%88%D0%B0/bitrix[/img]
Это нормальное поведение для inline-block; между элементами небольшой отстпуп (ведут себя как элементы с текстом)
Нужно либо задать font-size:0px; а внутри еще один блок с нормальным размером шрифта
Либо использовать float:left; что более просто и точки зрения HTML и в принципе поправильнее
Александр Спиридонов24.12.2016
Цитата
Михаил Базаров пишет:
Это нормальное поведение для inline-block; между элементами небольшой отступ (ведут себя как элементы с текстом)
Нужно либо задать font-size:0px; а внутри еще один блок с нормальным размером шрифта
Либо использовать float:left; что более просто и точки зрения HTML и в принципе правильнее
Все гениальное просто! Спасибо!
Блин... реально так просто....! Класс!
Nart Basariya26.03.2018
Создал инфоблок. У меня не указаны две главные строки
1. Начало-Пред-След-Конеч-Всё
2. Услуги 1-20 из 0
Что делать ? Спасибо !
valia9889@gmail.com17.09.2019
Спасибо за полезную инфу