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

Проблема с кастомизацией шаблона комплексного компонента news

00 голосов
5
Добрый день, помогите пожалуйста разобраться, в этом компоненте в news.list пытаюсь к каждой новости добавить ссылку читать далее, по ней переход аналогично переходу по названию, так вот, проблема возникает при добавлении ссылки в этом листе ко всем новостям, по логике решила что нужно добавлять в цикл foreach, но почему-то рабочая ссылка появляется только в низу страницы и ведет на самою раннюю новость..
спросил 11 Июнь, 13 от Zerk (320 баллов)

5 Ответы

00 голосов
Для добавления подобной ссылки вам необходимо отредактировать шаблон простого компонента bitrix:news.list, входящего в состав комплексного. Располагается он, если брать относительно папки шаблона комплексного компонента по адресу: /bitrix/news.list/, если относительно корня шаблона сайта, то по адресу: /components/bitrix/название_шаблона_компонента_bitrix:news/bitrix/news.list/.

В шаблоне news.list уже есть вывод нужной вам ссылки на детальную новость в рамках итеративного вывода новостей списком. В рамках конкретной новости вы и можете прописать нужную вам ссылку с якорем "Читать полностью".
ответил 11 Июнь, 13 от LiveToWIn (360 баллов)
00 голосов
Спасибо за ответ, но я это понимаю, я изменяю нужный шаблон и ссылку вставляю рабочую, остальные изменения работают,как надо..но эту ссылку почему-то не получается загнать в цикл, чтобы она была для каждой новости, у меня появляется, как я уже писала, ссылка вне цикла, относящаяся к самой старой первой новости..
ответил 22 Июнь, 13 от Zerk (320 баллов)
00 голосов
Если честно, не очень понимаю про какой цикл вы говорите...

Есть дефолтный шаблон для bitrix:news.list

Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<div class="news-list">
<?if($arParams["DISPLAY_TOP_PAGER"]):?>
   <?=$arResult["NAV_STRING"]?><br />
<?endif;?>
<?foreach($arResult["ITEMS"] as $arItem):?>
   <?
   $this->AddEditAction($arItem['ID'], $arItem['EDIT_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_EDIT"));
   $this->AddDeleteAction($arItem['ID'], $arItem['DELETE_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_DELETE"), array("CONFIRM" => GetMessage('CT_BNL_ELEMENT_DELETE_CONFIRM')));
   ?>
   <p class="news-item" id="<?=$this->GetEditAreaId($arItem['ID']);?>">
      <?if($arParams["DISPLAY_PICTURE"]!="N" && is_array($arItem["PREVIEW_PICTURE"])):?>
         <?if(!$arParams["HIDE_LINK_WHEN_NO_DETAIL"] || ($arItem["DETAIL_TEXT"] && $arResult["USER_HAVE_ACCESS"])):?>
            <a href="<?=$arItem["DETAIL_PAGE_URL"]?>"><img class="preview_picture" border="0" src="<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>" width="<?=$arItem["PREVIEW_PICTURE"]["WIDTH"]?>" height="<?=$arItem["PREVIEW_PICTURE"]["HEIGHT"]?>" alt="<?=$arItem["NAME"]?>" title="<?=$arItem["NAME"]?>" style="float:left" /></a>
         <?else:?>
            <img class="preview_picture" border="0" src="<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>" width="<?=$arItem["PREVIEW_PICTURE"]["WIDTH"]?>" height="<?=$arItem["PREVIEW_PICTURE"]["HEIGHT"]?>" alt="<?=$arItem["NAME"]?>" title="<?=$arItem["NAME"]?>" style="float:left" />
         <?endif;?>
      <?endif?>
      <?if($arParams["DISPLAY_DATE"]!="N" && $arItem["DISPLAY_ACTIVE_FROM"]):?>
         <span class="news-date-time"><?echo $arItem["DISPLAY_ACTIVE_FROM"]?></span>
      <?endif?>
      <?if($arParams["DISPLAY_NAME"]!="N" && $arItem["NAME"]):?>
         <?if(!$arParams["HIDE_LINK_WHEN_NO_DETAIL"] || ($arItem["DETAIL_TEXT"] && $arResult["USER_HAVE_ACCESS"])):?>
            <a href="<?echo $arItem["DETAIL_PAGE_URL"]?>"><b><?echo $arItem["NAME"]?></b></a><br />
         <?else:?>
            <b><?echo $arItem["NAME"]?></b><br />
         <?endif;?>
      <?endif;?>
      <?if($arParams["DISPLAY_PREVIEW_TEXT"]!="N" && $arItem["PREVIEW_TEXT"]):?>
         <?echo $arItem["PREVIEW_TEXT"];?>
      <?endif;?>
      <?if($arParams["DISPLAY_PICTURE"]!="N" && is_array($arItem["PREVIEW_PICTURE"])):?>
         <div style="clear:both"></div>
      <?endif?>
      <?foreach($arItem["FIELDS"] as $code=>$value):?>
         <small>
         <?=GetMessage("IBLOCK_FIELD_".$code)?>:&nbsp;<?=$value;?>
         </small><br />
      <?endforeach;?>
      <?foreach($arItem["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>
         <small>
         <?=$arProperty["NAME"]?>:&nbsp;
         <?if(is_array($arProperty["DISPLAY_VALUE"])):?>
            <?=implode("&nbsp;/&nbsp;", $arProperty["DISPLAY_VALUE"]);?>
         <?else:?>
            <?=$arProperty["DISPLAY_VALUE"];?>
         <?endif?>
         </small><br />
      <?endforeach;?>
   </p>
<?endforeach;?>
<?if($arParams["DISPLAY_BOTTOM_PAGER"]):?>
   <br /><?=$arResult["NAV_STRING"]?>
<?endif;?>
</div>


Вот в этот foreach вам и надо встраиваться. Все довольно тривиально.
ответил 25 Сен, 13 от LiveToWIn (360 баллов)
00 голосов
согласна, что тривиально, так и думала, именно про этот же foreach я и писала в первом сообщении, поэтому и возник вопрос почему не работает, когда все так просто и понятно. Извиняюсь, что зря тратила время, это был видимо какой-то временный глюк, сейчас посмотрела,то что делала вчера встало на сои места как нужно..
ответил 26 Дек, 13 от Zerk (320 баллов)
00 голосов
Да без проблем, обращайтесь.
ответил 11 Апр, 14 от LiveToWIn (360 баллов)

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

0 голосов
3 ответов
спросил 27 Дек, 13 от Xolerick (120 баллов)
0 голосов
4 ответов
спросил 19 Авг, 13 от Blodrayne (220 баллов)
0 голосов
4 ответов
0 голосов
6 ответов