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

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

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

Все серии

A A 05.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 Basariya 26.03.2018
Создал инфоблок. У меня не указаны две главные строки
1. Начало-Пред-След-Конеч-Всё
2. Услуги 1-20 из 0
Что делать ? Спасибо !
valia9889@gmail.com 17.09.2019
Спасибо за полезную инфу