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

как взять размеры детальной картинки из инфоблока

00 голосов
1
Подскажите, пожалуйста, как получить размер детальной картинки, установленный в инфоблоке (напр. Продукция, id=3) в template.php компонента catalog.element, к-рый настроен на вывод этого инфоблока?
Проблема в том, что я хочу поменять размеры картинок (детальной и анонса) и, чтобы новые размеры применялись не только к заново загруженным картинкам, а и к загруженным ранее. Т.е. при выводе брать для тега <img> размеры из соответствующего инфоблока, а не из физических размеров выводимых картинок.
спросил 27 Янв, 14 от avents (160 баллов)

1 Ответ

00 голосов
Отбой, уже сам разобрался. Выкладываю решение, мож кому пригодится.

Код
$ibFields = CIBlock::GetFields($arResult['IBLOCK_ID']);
echo "Ширина картинки анонса, установленная в настройках инфоблока: '. $ibFields['PREVIEW_PICTURE']['DEFAULT_VALUE']['WIDTH']<br>"; 
echo "Высота картинки анонса, установленная в настройках инфоблока: '. 
$ibFields['PREVIEW_PICTURE']['DEFAULT_VALUE']['HEIGHT']<br>"; 
echo "Ширина детальной картинки, установленная в настройках инфоблока: '. 
$ibFields['PREVIEW_PICTURE']['DEFAULT_VALUE']['WIDTH']<br>"; 

echo "Высота  детальной картинки, установленная в настройках инфоблока: '. 
$ibFields['PREVIEW_PICTURE']['DEFAULT_VALUE']['HEIGHT']<br>"; 

Теперь, если в template.php компонента catalog.element прописать эти значения, то размеры всех картинок будут становиться такими, как в настройках полей инфоблока, а не такими, какими они были залиты ранее.
Т.е. не придется каждый раз при изменении дизайна вывода элемента каталога перезаливать все картинки.
Вот кусочек из template.php компонента catalog.element, ответсвенный за вывод картинок:

      
Код
...
<? $ibFields = CIBlock::GetFields($arResult['IBLOCK_ID']); // получаем массив значений полей инфоблока текущего инфоблока ?>
...  
<?if(is_array($arResult["PREVIEW_PICTURE"]) || is_array($arResult["DETAIL_PICTURE"])):?>
            <td>
                <?if(is_array($arResult["PREVIEW_PICTURE"]) && is_array($arResult["DETAIL_PICTURE"])):?>
                    <img border="0" src="<?=$arResult["PREVIEW_PICTURE"]["SRC"]?>" width="<?=$ibFields['PREVIEW_PICTURE']['DEFAULT_VALUE']['WIDTH']?>" height="<?=$ibFields['PREVIEW_PICTURE']['DEFAULT_VALUE']["HEIGHT"]?>" alt="<?=$arResult["NAME"]?>" title="<?=$arResult["NAME"]?>" id="image_<?=$arResult["PREVIEW_PICTURE"]["ID"]?>" style="display:block;cursor:pointer;cursor: hand;" OnC lick="document.getElementById('image_<?=$arResult["PREVIEW_PICTURE"]["ID"]?>').style.display='none';document.getElementById('image_<?=$arResult["DETAIL_PICTURE"]["ID"]?>').style.display='block'" />
                    <img border="0" src="<?=$arResult["DETAIL_PICTURE"]["SRC"]?>" width="<?=$ibFields['DETAIL_PICTURE']['DEFAULT_VALUE']["WIDTH"]?>" height="<?=$ibFields['DETAIL_PICTURE']['DEFAULT_VALUE']["HEIGHT"]?>" alt="<?=$arResult["NAME"]?>" title="<?=$arResult["NAME"]?>" id="image_<?=$arResult["DETAIL_PICTURE"]["ID"]?>" style="display:none;cursor:pointer; cursor: hand;" OnC lick="document.getElementById('image_<?=$arResult["DETAIL_PICTURE"]["ID"]?>').style.display='none';document.getElementById('image_<?=$arResult["PREVIEW_PICTURE"]["ID"]?>').style.display='block'" />
                <?elseif(is_array($arResult["DETAIL_PICTURE"])):?>
                    <img border="0" src="<?=$arResult["DETAIL_PICTURE"]["SRC"]?>" width="<?=$ibFields['DETAIL_PICTURE']['DEFAULT_VALUE']["WIDTH"]?>" height="<?=$ibFields['DETAIL_PICTURE']['DEFAULT_VALUE']["HEIGHT"]?>" alt="<?=$arResult["NAME"]?>" title="<?=$arResult["NAME"]?>" />
                <?elseif(is_array($arResult["PREVIEW_PICTURE"])):?>
                    <img border="0" src="<?=$arResult["PREVIEW_PICTURE"]["SRC"]?>" width="<?=$ibFields['PREVIEW_PICTURE']['DEFAULT_VALUE']['WIDTH']?>" height="<?=$ibFields['PREVIEW_PICTURE']['DEFAULT_VALUE']["HEIGHT"]?>" alt="<?=$arResult["NAME"]?>" title="<?=$arResult["NAME"]?>" />
                <?endif?>
                <?if(count($arResult["MORE_PHOTO"])>0):?>
                    <br /><a href="#more_photo"><?=GetMessage("CATALOG_MORE_PHOTO")?></a>
                <?endif;?>
            </td>
...
ответил 28 Май, 14 от avents (160 баллов)

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

0 голосов
4 ответов
0 голосов
0 ответов
0 голосов
0 ответов
спросил 09 Окт, 13 от TeneFox (140 баллов)
0 голосов
4 ответов
0 голосов
1 ответ