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

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

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

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

Все серии

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

valia9889@gmail.com 17.09.2019
Спасибо за полезную инфу
Nart Basariya 26.03.2018
Создал инфоблок. У меня не указаны две главные строки
1. Начало-Пред-След-Конеч-Всё
2. Услуги 1-20 из 0
Что делать ? Спасибо !
Александр Спиридонов 24.12.2016
Цитата
Михаил Базаров пишет:
Это нормальное поведение для inline-block; между элементами небольшой отступ (ведут себя как элементы с текстом)
Нужно либо задать font-size:0px; а внутри еще один блок с нормальным размером шрифта
Либо использовать float:left; что более просто и точки зрения HTML и в принципе правильнее
Все гениальное просто! Спасибо!
Блин... реально так просто....! Класс!
Михаил Базаров 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 и в принципе поправильнее
Александр Спиридонов 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]
Михаил Базаров 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); ?>
Сергей Манник 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"];
?>
A A 05.07.2016
Да, точно, я сама убедилась. Спасибо.
И за шаблон каталога спасибо, все отлично и понятно теперь выглядит, можно верстать.
Михаил Базаров 04.07.2016
Цитата
A A написал:
У мекня внезапно случилась странная поломка: я сделала инфоблоки "Новости" и "Акции", все нормально выводилось, решила только сверстать попозже. Потом сделала вывод на главную списка новостей. Вроде тоже хорошо. Все шаблоны скопировала в .default. И теперь получилось вот что: все 3 компонента реагируют на изменение css шаблона от списка новостей (который справа на главной), Новости и Акции на изменение своих собственных css шаблонов не реагируют вообще. Шаблоны разные, я их вижу. Что это могло бы быть?
Скорее всего одинаковые названия селекторов, css списка подгружается последней и перешибает все изменения. Или переименуйте селекторы, или используйте их вложенность в родительские
A A 04.07.2016
У мекня внезапно случилась странная поломка: я сделала инфоблоки "Новости" и "Акции", все нормально выводилось, решила только сверстать попозже. Потом сделала вывод на главную списка новостей. Вроде тоже хорошо. Все шаблоны скопировала в .default. И теперь получилось вот что: все 3 компонента реагируют на изменение css шаблона от списка новостей (который справа на главной), Новости и Акции на изменение своих собственных css шаблонов не реагируют вообще. Шаблоны разные, я их вижу. Что это могло бы быть?
A A 01.07.2016
Я копирую шаблоны компонентов в папку default, по вашим урокам.
Михаил Базаров 01.07.2016
Цитата
A A написал:
1.
Цитата
Достаточно одного инфоблока, и получится (опять же, что бы избежать ахинеи) только через компонент каталога.
Не совсем поняла фразу. Это значит "достаточно только компонента каталога" или "нужен компонент каталога и еще один инфоблок"?

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

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

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

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

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

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

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

Если это ахинея - делать всю эту работу инфоблоками, подскажите, пожалуйста - как получить нормальный каталог, без этих чудовищных увеличивающихся при наведении блоков.
Михаил Базаров 08.04.2016
Цитата
jim_nyc написал:
Здравствуйте Михаил. Отличные уроки, помогли немного разобраться. Единственное, с новостями проблема. Не получается вывести их в две колонки. Не подскажите как можно это сделать?
Просто двухколоночной версткой, чисто на знаниях верстки
jim_nyc 07.04.2016
Здравствуйте Михаил. Отличные уроки, помогли немного разобраться. Единственное, с новостями проблема. Не получается вывести их в две колонки. Не подскажите как можно это сделать?
Guest 12.10.2015
В правом-нижнем углу мелким шрифтом "Скрыто: 3", кликнуть на неё, и показывает скрытые файлы (а Ваш "метод" у меня чёта не сработал - папка просто создаётся скрытая и всё).