• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела wpt лично.

Помощь Вопросы и решение проблем с Битрикс

Статус
В этой теме нельзя размещать новые ответы.
Событие на них есть, и быстрее всего в script.js шаблона компонента, но точно не скажу потому что - на время разработки cdn, а так же сжатие и объединение css и js лучше отключать.
 
Тестирую решение dw.deluxe :
- не выводятся фоновые картинки в меню как в демо разработчика - pic-1
- хотя у себя картинку загрузил - pic-2
- но в массиве $arResult картинки [BIG_PICTURE] нет - pic-3
Как передать эту картинку в $arResult, кто сталкивался с подобной проблемой или решение не допилино?
 

Вложения

  • pic-1.png
    pic-1.png
    973 KB · Просмотры: 14
  • pic-2.png
    pic-2.png
    393 KB · Просмотры: 14
  • pic-3.png
    pic-3.png
    53,1 KB · Просмотры: 14
Тестирую решение dw.deluxe :
- не выводятся фоновые картинки в меню как в демо разработчика - pic-1
- хотя у себя картинку загрузил - pic-2
- но в массиве $arResult картинки [BIG_PICTURE] нет - pic-3
Как передать эту картинку в $arResult, кто сталкивался с подобной проблемой или решение не допилино?

Какая то обработка в result_modifier.php? Может туда стоит глянуть. Компонент штатный или кастомный?
 
Последнее редактирование:
Какая то обработка в result_modifier.php? Может туда стоит глянуть. Компонент штатный или кастомный?
компонент кастомный, result_modifier.php смотрел - там просто присвоение значения есть "BIG_PICTURE" => $arElement["PARAMS"]["BIG_PICTURE"]
PHP:
result_modifier.php - <?     
    global $USER;
    $obCache = new CPHPCache();
    if($obCache->InitCache(360000000, $USER->GetGroups(), "/")){
       $arResult = $obCache->GetVars();
    }
    elseif($obCache->StartDataCache()){
        if(!empty($arResult)){
         
            $i = 0;
            $b = 0;

            foreach($arResult as $arElement){

                if($arElement["DEPTH_LEVEL"] == 1){
                    $i++;
                    $sectionID = $arElement["PARAMS"]["ID"];
                    $IBLOCK_ID = $arElement["PARAMS"]["IBLOCK_ID"];
                    $arResult["SECTIONS"][$sectionID] = $sectionID;
                    $arResult["ITEMS"][$i] = array(
                        "TEXT" => $arElement["TEXT"],
                        "LINK" => $arElement["LINK"],
                        "ID" => $arElement["PARAMS"]["ID"],
                        "SELECTED" => $arElement["SELECTED"],
                        "PICTURE" => $arElement["PARAMS"]["PICTURE"],
                        "BIG_PICTURE" => $arElement["PARAMS"]["BIG_PICTURE"],
                        "DETAIL_PICTURE" => $arElement["PARAMS"]["DETAIL_PICTURE"],
                        "IBLOCK_ID" => $arElement["PARAMS"]["IBLOCK_ID"],
                        "ELEMENT_CNT" => $arElement["PARAMS"]["ELEMENT_CNT"]
                    );
                }

                elseif($arElement["DEPTH_LEVEL"] == 2){
                    $b++;
                    if($arElement["PARAMS"]["FROM_IBLOCK"] <= 50){
                        $from = 1;
                    }elseif($arElement["PARAMS"]["FROM_IBLOCK"] <= 100){
                        $from = 2;
                    }elseif($arElement["PARAMS"]["FROM_IBLOCK"] <= 150){
                        $from = 3;
                    }elseif($arElement["PARAMS"]["FROM_IBLOCK"] <= 200){
                        $from = 4;
                    }else{
                        $from = 1;
                    }
                    $arResult["SECTIONS"][$arElement["PARAMS"]["ID"]] = $sectionID;
                    $arResult["ITEMS"][$i]["ELEMENTS"][$from][$b] = array(
                        "TEXT" => $arElement["TEXT"],
                        "LINK" => $arElement["LINK"],
                        "SELECTED" => $arElement["SELECTED"],
                        "PICTURE" => $arElement["PARAMS"]["PICTURE"],
                        "ELEMENT_CNT" => $arElement["PARAMS"]["ELEMENT_CNT"]
                    );
                }elseif($arElement["DEPTH_LEVEL"] == 3){
                    $arResult["SECTIONS"][$arElement["PARAMS"]["ID"]] = $sectionID;
                    $arResult["ITEMS"][$i]["ELEMENTS"][$from][$b]["ELEMENTS"][] = array(
                        "TEXT" => $arElement["TEXT"],
                        "LINK" => $arElement["LINK"],
                        "SELECTED" => $arElement["SELECTED"],
                        "ELEMENT_CNT" => $arElement["PARAMS"]["ELEMENT_CNT"]
                    );
                }

            }
        }
       $obCache->EndDataCache($arResult);
    }
 


?>

, также есть обработка в component.php - тоже кастомный, хотелось бы понять - в чем разница обработок в component.php и в result_modifier.php ?
Вот код обработчика component.php :
PHP:
<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();

if(!isset($arParams["CACHE_TIME"]))
    $arParams["CACHE_TIME"] = 36000000;

CModule::IncludeModule("iblock");

$arParams["ID"] = intval($arParams["ID"]);
$arParams["IBLOCK_ID"] = intval($arParams["IBLOCK_ID"]);

$arParams["DEPTH_LEVEL"] = intval($arParams["DEPTH_LEVEL"]);
if($arParams["DEPTH_LEVEL"]<=0)
    $arParams["DEPTH_LEVEL"]=1;

$arResult["SECTIONS"] = array();
$arResult["ELEMENT_LINKS"] = array();

$obCache = new CPHPCache;

if ($obCache->InitCache($arParams["CACHE_TIME"], false, "/")) {
   $aMenuLinksNew= $obCache->GetVars();
}
elseif ($obCache->StartDataCache()) {

    $arFilter = array(
        "IBLOCK_ID"=>$arParams["IBLOCK_ID"],
        "GLOBAL_ACTIVE"=>"Y",
        "IBLOCK_ACTIVE"=>"Y",
        "<="."DEPTH_LEVEL" => $arParams["DEPTH_LEVEL"],
        "CNT_ACTIVE" => "Y"
    );
    $arOrder = array(
        "left_margin"=>"asc",
    );

    $rsSections = CIBlockSection::GetList($arOrder, $arFilter, true, array(
        "ID",
        "DEPTH_LEVEL",
        "NAME",
        "SECTION_PAGE_URL",
        "SORT",
        "PICTURE",
        "ELEMENT_CNT",
        "DETAIL_PICTURE",
        "UF_PHOTO"
    ));
    if($arParams["IS_SEF"] !== "Y")
        $rsSections->SetUrlTemplates("", $arParams["SECTION_URL"]);
    else
        $rsSections->SetUrlTemplates("", $arParams["SEF_BASE_URL"].$arParams["SECTION_PAGE_URL"]);
    while($arSection = $rsSections->GetNext()){
        $bigPic = "";
        $detailPicture = "";
        if(!empty($arSection["UF_PHOTO"])){
            $bigPic = CFile::ResizeImageGet($arSection["UF_PHOTO"], array("width" => 1920, "height" => 1080), BX_RESIZE_IMAGE_PROPORTIONAL, false);
        }
        if($arSection["DEPTH_LEVEL"] == 1){
            $detailPicture = CFile::ResizeImageGet($arSection["DETAIL_PICTURE"], array("width" => 200, "height" => 130), BX_RESIZE_IMAGE_PROPORTIONAL, false);
        }
        $arResult["SECTIONS"][] = array(
            "ID" => $arSection["ID"],
            "DEPTH_LEVEL" => $arSection["DEPTH_LEVEL"],
            "~NAME" => $arSection["~NAME"],
            "~SECTION_PAGE_URL" => $arSection["~SECTION_PAGE_URL"],
            "SORT" => $arSection["SORT"],
            "PICTURE" => $arSection["PICTURE"],
            "DETAIL_PICTURE" => $arSection["DEPTH_LEVEL"] == 1 ? $detailPicture : $arSection["DETAIL_PICTURE"],
            "ELEMENT_CNT" => $arSection["ELEMENT_CNT"],
            "BIG_PICTURE" => $bigPic
        );
        $arResult["ELEMENT_LINKS"][$arSection["ID"]] = array();
    }

    if(($arParams["ID"] > 0) && (intval($arVariables["SECTION_ID"]) <= 0) && CModule::IncludeModule("iblock"))
    {
        $arSelect = array("ID", "IBLOCK_ID", "DETAIL_PAGE_URL", "IBLOCK_SECTION_ID");
        $arFilter = array(
            "ID" => $arParams["ID"],
            "ACTIVE" => "Y",
            "IBLOCK_ID" => $arParams["IBLOCK_ID"],
        );
        $rsElements = CIBlockElement::GetList(array(), $arFilter, false, false, $arSelect);
        if(($arParams["IS_SEF"] === "Y") && (strlen($arParams["DETAIL_PAGE_URL"]) > 0))
            $rsElements->SetUrlTemplates($arParams["SEF_BASE_URL"].$arParams["DETAIL_PAGE_URL"]);
        while($arElement = $rsElements->GetNext())
        {
            $arResult["ELEMENT_LINKS"][$arElement["IBLOCK_SECTION_ID"]][] = $arElement["~DETAIL_PAGE_URL"];
        }
    }



    $aMenuLinksNew = array();
    $menuIndex = 0;
    $previousDepthLevel = 1;
    foreach($arResult["SECTIONS"] as $arSection){

        $arPicture = NULL;

        if ($menuIndex > 0)
            $aMenuLinksNew[$menuIndex - 1][3]["IS_PARENT"] = $arSection["DEPTH_LEVEL"] > $previousDepthLevel;
            $previousDepthLevel = $arSection["DEPTH_LEVEL"];

        $arResult["ELEMENT_LINKS"][$arSection["ID"]][] = urldecode($arSection["~SECTION_PAGE_URL"]);
       
        if($arSection["DEPTH_LEVEL"] == 1 && !empty($arSection["PICTURE"])){
            $arPicture = CFile::ResizeImageGet(
                CFile::GetFileArray($arSection["PICTURE"]),
                array("width" => 24, "height" => 24),
                BX_RESIZE_IMAGE_PROPORTIONAL,
                true
            );
        }

        if($arSection["DEPTH_LEVEL"] == 2 && !empty($arSection["DETAIL_PICTURE"])){
            $arPicture = CFile::ResizeImageGet(
                CFile::GetFileArray($arSection["DETAIL_PICTURE"]),
                array("width" => 190, "height" => 100),
                BX_RESIZE_IMAGE_PROPORTIONAL,
                false
            );
        }

        $aMenuLinksNew[$menuIndex++] = array(
            htmlspecialcharsbx($arSection["~NAME"]),
            $arSection["~SECTION_PAGE_URL"],
            $arResult["ELEMENT_LINKS"][$arSection["ID"]],
            array(
                "ID"          => $arSection["ID"],
                "IBLOCK_ID"   => $arParams["IBLOCK_ID"],
                "FROM_IBLOCK" => $arSection["SORT"],
                "DEPTH_LEVEL" => $arSection["DEPTH_LEVEL"],
                "PICTURE"       => $arPicture,
                "BIG_PICTURE" => $arSection["BIG_PICTURE"],
                "DETAIL_PICTURE" => $arSection["DETAIL_PICTURE"],
                "ELEMENT_CNT" => $arSection["ELEMENT_CNT"],
                "IS_PARENT"   => false,
            ),
        );
    }

   $this->EndResultCache();
   $obCache->EndDataCache($aMenuLinksNew);
}
return $aMenuLinksNew;

?>
 
Последнее редактирование:
Все просто вот отсюда начинается BIG_PICTURE.

PHP:
 $bigPic = CFile::ResizeImageGet($arSection["UF_PHOTO"], array("width" => 1920, "height" => 1080), BX_RESIZE_IMAGE_PROPORTIONAL, false);

На имя поля посмотрите в компоненте и у себя на скрине в разделе.

Для справки последовательность работы компонентов в битриксе.
1. component.php
2. result_modifier.php
3. template.php
4. component_epilog.php
 
Последнее редактирование:
Все просто вот отсюда начинается BIG_PICTURE.

PHP:
$bigPic = CFile::ResizeImageGet($arSection["UF_PHOTO"], array("width" => 1920, "height" => 1080), BX_RESIZE_IMAGE_PROPORTIONAL, false);

На имя поля посмотрите в компоненте и у себя на скрине в разделе.

Для справки последовательность работы компонентов в битриксе.
1. component.php
2. result_modifier.php
3. template.php
4. component_epilog.php

- Благодарю, понял - надо было у раздела создать с другим именем новое пользовательское свойство UF_PHOTO - Для просмотра ссылки Войди или Зарегистрируйся , которое не создаётся при инсталляции!!! А я по ошибке своей для вывода фона в меню пытался использовать UF_IMAGES.
- Теперь работает - Для просмотра ссылки Войди или Зарегистрируйся
- Еще исправил вывод в меню дочерних подразделов не в 1 колонку, а в 2 - 3 - Для просмотра ссылки Войди или Зарегистрируйся - Для просмотра ссылки Войди или Зарегистрируйся - надо в шаблоне меню \bitrix\templates\dresscodeV2\components\bitrix\menu\catalogMenu\template.php тег ul поместить внутрь цикла foreach .
 

Вложения

  • pic-5.png
    pic-5.png
    273 KB · Просмотры: 10
  • pic-6.png
    pic-6.png
    653,2 KB · Просмотры: 10
  • pic-7.png
    pic-7.png
    78,8 KB · Просмотры: 10
  • pic-8.png
    pic-8.png
    746,5 KB · Просмотры: 10
Последнее редактирование:
Добрый день! Подскажите, как правильно установить решение.
Имеется Битрикс в исходниках, скрипт нотивной установки, и сам модуль магазина в формате UPD.
Сейчас я устанавливаю битрикс, когда установка доходит до этапа выбора решения (ИМ, корпоративный сайт, демонстрационные данные,...) я перехожу в панель управления, и через скрипт устанавливаю модуль магазина. Но на вкладке "САЙТ" вылазит ошибка, что шаблон сайта не установлен, и в панели управления, я для этого сайта не могу выбрать шаблон который только что установил. Помогает только кнопка опробовать новое решение, там уже появляется данное решение. Я благополучно устанавливаю его, но тут другая проблема, теперь адрес сайта меняется с приставкой moysite.ru/site_sm/. Вопрос, как правильно установить шаблон(решение/модуль)?
 
Добрый день! Подскажите, как правильно установить решение.
Имеется Битрикс в исходниках, скрипт нотивной установки, и сам модуль магазина в формате UPD.
Сейчас я устанавливаю битрикс, когда установка доходит до этапа выбора решения (ИМ, корпоративный сайт, демонстрационные данные,...) я перехожу в панель управления, и через скрипт устанавливаю модуль магазина. Но на вкладке "САЙТ" вылазит ошибка, что шаблон сайта не установлен, и в панели управления, я для этого сайта не могу выбрать шаблон который только что установил. Помогает только кнопка опробовать новое решение, там уже появляется данное решение. Я благополучно устанавливаю его, но тут другая проблема, теперь адрес сайта меняется с приставкой moysite.ru/site_sm/. Вопрос, как правильно установить шаблон(решение/модуль)?

Настройки -> настройки продукта -> список мастеров или маркетплейс -> установленные решения
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху