Добрый день, на сайте есть элементы "Доктор" у которых есть разделы по специальностям, у одного доктора может быть несколько специальностей одновременно. Но элемент выводится только для одной специальности.
В битрикс новичок, пока что понимаю далеко не все. В PHP знания тоже далеки от идеала.
Вот выдержка из template.php
result_modifier.php:
Буду благодарен за любой совет и помощь.
В битрикс новичок, пока что понимаю далеко не все. В PHP знания тоже далеки от идеала.
Вот выдержка из template.php
| Код |
|---|
<?php function printDoctors($arResult) { ?>
<div class="doctors">
<div class="doctors-items">
<?php foreach($arResult["ITEMS"] as $arItem): ?>
<div class="doctor-item">
<a href="<?php echo $arItem["DETAIL_PAGE_URL"]; ?>" class="doctor-item-photo-holder">
<img src="<?php echo $arItem["PHOTO"]["OUT"]["SRC"]; ?>" class="cover doctor-item-photo-out" />
<img src="<?php echo $arItem["PHOTO"]["IN"]["SRC"]; ?>" class="cover doctor-item-photo-in" />
</a>
<div class="doctor-item-experience">Стаж: <?php echo $arItem["DISPLAY_PROPERTIES"]["EXPERIENCE"]["VALUE"]; ?></div>
<a href="<?php echo $arItem["DETAIL_PAGE_URL"]; ?>" class="doctor-item-title"><?php echo $arItem["NAME"]; ?></a>
<div class="doctor-item-post"><?php echo $arItem["DISPLAY_PROPERTIES"]["POST"]["VALUE"]; ?></div>
<a href="/forms/doctor/?doc_name=<?=$arItem["NAME"]?>" data-popup='{"type": "ajax"}' class="btn btn--bordered doctor-item-btn">Записаться</a>
</div>
<?php endforeach; ?>
</div>
</div>
<?php } ?>
<?php if($arResult["SECTIONS"]): ?>
<?php foreach($arResult["SECTIONS"] as $arSection):
if(!$arSection["ITEMS"]) {
continue;
}
?>
<div class="h2" id="doctors_section_<?php echo $arSection["ID"]; ?>"><?php echo $arSection["NAME"]; ?></div>
<?php printDoctors($arSection); ?>
<?php endforeach; ?>
<?php else: ?>
<?php printDoctors($arResult); ?>
<?php endif; ?>
|
result_modifier.php:
| Код |
|---|
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
foreach($arResult["ITEMS"] as &$arItem) {
$arItem["PHOTO"] = [
"OUT" => GCBaseHelper::repic($arItem["PREVIEW_PICTURE"], $arParams["RESIZE"]["PREVIEW"]["WIDTH"], $arParams["RESIZE"]["PREVIEW"]["HEIGHT"]),
"IN" => GCBaseHelper::repic($arItem["DETAIL_PICTURE"], $arParams["RESIZE"]["PREVIEW"]["WIDTH"], $arParams["RESIZE"]["PREVIEW"]["HEIGHT"]),
];
}
unset($arItem);
//deb($arResult["SECTION"]["PATH"][0]["ID"]);
$arSections = GCBaseHelper::getIBlockSections([
"SORT" => [
"SORT" => "ASC"
],
"FILTER" => [
"IBLOCK_ID" => GCBaseHelper::getIBlockIdByCode("doctors"),
"ACTIVE" => "Y",
"DEPTH_LEVEL" => 2,
"SECTION_ID" => $arResult["SECTION"]["PATH"][0]["ID"],
],
"SELECT" => [
"ID",
"NAME",
]
]);
//deb($arSections);
if($arParams["DISPLAY_SECTIONS"] == "Y") {
foreach($arResult["ITEMS"] as $arItem) {
foreach($arSections as &$arSection) {
if($arItem["IBLOCK_SECTION_ID"] == $arSection["ID"]) {
if(!$arSection["ITEMS"]) {
$arSection["ITEMS"] = [];
}
$arSection["ITEMS"][] = $arItem;
}
}
}
$arResult["SECTIONS"] = $arSections;
}
?>
|