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

Выводимый размер картинок элементов

00 голосов
4
Подскажите, гуру.
В торговом каталоге добавляю картинки (не картинка анонса или детальная) в новый элемент.
Добавляются они корректно, но вот выводятся в реальном размере.
Максимально нужная мне ширина 500 пикселей
как скорректировать код вывода детального описания чтобы если размер > 500 то происходило масштабирование.
Ну или на крайний случай всегда масштабировало бы при выводе на -30%
Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<div class="catalog-element">
   <table width="100%" border="0" cellspacing="0" cellpadding="2">
      <tr>
      <?if(is_array($arResult["PREVIEW_PICTURE"]) || is_array($arResult["DETAIL_PICTURE"])):?>
         <td width="0%" valign="top">
            <?if(is_array($arResult["PREVIEW_PICTURE"]) && is_array($arResult["DETAIL_PICTURE"])):?>
               <img border="0" src="<?=$arResult["PREVIEW_PICTURE"]["SRC"]?>" width="<?=$arResult["PREVIEW_PICTURE"]["WIDTH"]?>" height="<?=$arResult["PREVIEW_PICTURE"]["HEIGHT"]?>" alt="<?=$arResult["PREVIEW_PICTURE"]["DESCRIPTION"]?>" title="<?=$arResult["NAME"]?>" id="image_<?=$arResult["PREVIEW_PICTURE"]["ID"]?>" style="display:block;cursor:pointer;cursor: hand;" OnClick="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="<?=$arResult["DETAIL_PICTURE"]["WIDTH"]?>" height="<?=$arResult["DETAIL_PICTURE"]["HEIGHT"]?>" alt="<?=$arResult["DETAIL_PICTURE"]["DESCRIPTION"]?>" title="<?=$arResult["NAME"]?>" id="image_<?=$arResult["DETAIL_PICTURE"]["ID"]?>" style="display:none;cursor:pointer; cursor: hand;" OnClick="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="<?=$arResult["DETAIL_PICTURE"]["WIDTH"]?>" height="<?=$arResult["DETAIL_PICTURE"]["HEIGHT"]?>" alt="<?=$arResult["DETAIL_PICTURE"]["DESCRIPTION"]?>" title="<?=$arResult["NAME"]?>" />
            <?elseif(is_array($arResult["PREVIEW_PICTURE"])):?>
               <img border="0" src="<?=$arResult["PREVIEW_PICTURE"]["SRC"]?>" width="<?=$arResult["PREVIEW_PICTURE"]["WIDTH"]?>" height="<?=$arResult["PREVIEW_PICTURE"]["HEIGHT"]?>" alt="<?=$arResult["PREVIEW_PICTURE"]["DESCRIPTION"]?>" title="<?=$arResult["NAME"]?>" />
            <?endif?>
            <?if(count($arResult["MORE_PHOTO"])>0):?>
               <br /><a href="#more_photo"><?=GetMessage("CATALOG_MORE_PHOTO")?></a>
            <?endif;?>
         </td>
      <?endif;?>
         <td width="100%" valign="top">
            <?foreach($arResult["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>
               <?=$arProperty["NAME"]?>:<b> <?
               if(is_array($arProperty["DISPLAY_VALUE"])):
                  echo implode(" / ", $arProperty["DISPLAY_VALUE"]);
               elseif($pid=="MANUAL"):
                  ?><a href="<?=$arProperty["VALUE"]?>"><?=GetMessage("CATALOG_DOWNLOAD")?></a><?
               else:
                  echo $arProperty["DISPLAY_VALUE"];?>
               <?endif?></b><br />
            <?endforeach?>
         </td>
      </tr>
   </table>
      <?foreach($arResult["PRICES"] as $code=>$arPrice):?>
         <?if($arPrice["CAN_ACCESS"]):?>
            <p><?=$arResult["CAT_PRICES"][$code]["TITLE"];?>:  
            &
спросил 07 Фев, 14 от EWARw (480 баллов)

4 Ответы

00 голосов
Может это поможет?
Партнерский модуль THUMB предназначен для автоматического изменения размера изображения.
http://dev.1c-bitrix.ru/community/webdev/user/30522/forum/20534/
ответил 21 Июнь, 14 от spamer (500 баллов)
00 голосов
А вообще есть возможность редактировать свойства инфоблока при внесении, обновлении элемента инфоблока. Почитайте про события инфоблока, покопайтесь в блогах разработчиков Битрикса, недавно эта тема поднималась
ответил 20 Окт, 14 от spamer (500 баллов)
00 голосов
Игорь Шевчик,
В том то и дело что мне не надо при добавлении картинки ее масштабировать
Нужно это делать при выводе

Корректировать нужно вот это
Код
  <img border="0" src="<?=$PHOTO["SRC"]?>" width="<?=$PHOTO["WIDTH"]?>" height="<?=$PHOTO["HEIGHT"]?>" alt="<?=$PHOTO["ALT"]?>" title="<?=$arResult["NAME"]?>" /><br /> 


Сейчас сделал так
Код
  <img border="0" src="<?=$PHOTO["SRC"]?>" width="<90%>" height="<90%>" alt="<?=$PHOTO["ALT"]?>" title="<?=$arResult["NAME"]?>" /><br /> 


Но меня это не устраивает, т.к. большие картинки наоборот раздуваются
Нужно реализовать МИН(?=$PHOTO["WIDTH"]?,90%) но на PHP

Т.е. надо посмотреть, если размер картинки меньше 90% блока, то ее реальный размер надо, если больше то масштабировать
ответил 19 Фев, 15 от EWARw (480 баллов)
00 голосов
Все сделал
непонятно только по синтаксису команда ИНАЧЕ, поправьте если накосячил

Код
<!--если шина картинки > 500 пикселей то выведем ее по ширине окна-->

   <?if($PHOTO["WIDTH"]>500):?>
      <img border="1" src="<?=$PHOTO["SRC"]?>" width="98%" alt="<?=$PHOTO["ALT"]?>" title="<?=$arResult["NAME"]?>" /><br /><br />
   <?endif?>
   <?if($PHOTO["WIDTH"]<501):?>
      <img border="1" src="<?=$PHOTO["SRC"]?>" width="<?=$PHOTO["WIDTH"]?>" height="<?=$PHOTO["HEIGHT"]?>" alt="<?=$PHOTO["ALT"]?>" align="middle" title="<?=$arResult["NAME"]?>" /><br /><br />
   <?endif?>
ответил 29 Май, 15 от EWARw (480 баллов)

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

0 голосов
6 ответов
0 голосов
1 ответ
спросил 22 Март, 13 от guk (360 баллов)
+1 голос
2 ответов
0 голосов
2 ответов
0 голосов
1 ответ