Как получить в XSL-шаблоне МагазинКаталогТоваров кастомную переменную?

#
Как получить в XSL-шаблоне МагазинКаталогТоваров кастомную переменную?
Как получить в XSL-шаблоне МагазинКаталогТоваров кастомную переменную?
Переменная формируется в макете (получение части url).

Пробовал создать через ТДС и далее вызвать в XSL -  не получилось, эта переменная в ТДС не видна...
$Shop_Controller_Show->addEntity(Core::factory('Core_Xml_Entity')->name('NewVar')->value($NewVar));

Модератор
#
Re: Как получить в XSL-шаблоне МагазинКаталогТоваров кастомную переменную?
в XSL не видна?

/shop/NewVar - будет ваша переменная.
#
Re: Как получить в XSL-шаблоне МагазинКаталогТоваров кастомную переменную?
Не, вылазит ошибка - переменная $NewVar не определена
#
Re: Как получить в XSL-шаблоне МагазинКаталогТоваров кастомную переменную?

<xsl:template match="/shop">
        <xsl:variable name="my_variable" select="NewVar/value"/>
        <xsl:value-of select="$my_variable"/>
</xsl:template>


по идее так!
если вызываете переменную внутри шаблона shop, если за пределами то shop/NewVar/value
#
Re: Как получить в XSL-шаблоне МагазинКаталогТоваров кастомную переменную?
xelaxela13 писал(а):
по идее так!

Вы имеете ввиду, что ТДС тут вообще не нужна?
#
Re: Как получить в XSL-шаблоне МагазинКаталогТоваров кастомную переменную?
volgastar писал(а):
Вы имеете ввиду, что ТДС тут вообще не нужна?

конечно нужна, у Вас все верно
volgastar писал(а):
$Shop_Controller_Show->addEntity(Core::factory('Core_Xml_Entity')->name('NewVar')->value($NewVar));

смотрите что попало в XML, я не большой спец в хостсмс, просто именно сейчас делаю очередной проект, и как раз вчера добавлял доп поля в XML, по этому перечитал всю документацию )))
пример с ссылками на следующую и предыдущую страницы
ТДС инфосистемы

$Informationsystem_Controller_Show
        ->addEntity(Core::factory('Core_Xml_Entity')
            ->name('neighboring_items')
            ->addEntity(Core::factory('Core_Xml_Entity')->name('prev_item')->value($prev))
            ->addEntity(Core::factory('Core_Xml_Entity')->name('next_item')->value($next))
        );

XSL

<xsl:template name="nextprevitem">
        <xsl:variable name="prev_item" select="/informationsystem/neighboring_items/prev_item"/>
        <xsl:variable name="next_item" select="/informationsystem/neighboring_items/next_item"/>
        <xsl:variable name="link_path" select="/informationsystem/url"/>
        <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6 text-align-center">
            <div class="prevnext">
                <xsl:choose>
                    <xsl:when test="$prev_item != ''">
                        <a href="{$link_path}{$prev_item}/">prev</a>
                    </xsl:when>
                    <xsl:otherwise>
                        <span class="previous">prev</span>
                    </xsl:otherwise>
                </xsl:choose>
                <span class="slash"></span>
                <xsl:choose>
                    <xsl:when test="$next_item != ''">
                        <a href="{$link_path}{$next_item}/">next</a>
                    </xsl:when>
                    <xsl:otherwise>
                        <span class="next">next</span>
                    </xsl:otherwise>
                </xsl:choose>
            </div>
            <!--<div class="col-xs-12 text-align-center">
                <div class="news-page">0<span>1</span></div>
            </div>-->
        </div>
    </xsl:template>

#
Re: Как получить в XSL-шаблоне МагазинКаталогТоваров кастомную переменную?
Мне нужно саму $NewVar получить внутри кода страницы ТДС
А её там нет, вот что пишет на всех страницах магазина (на фронте):
Undefined variable: NewVar в файле /home/g/***/***.com/public_html/hostcmsfiles/lib/lib_6/lib_6.php (строка 424)
Модератор
#
Re: Как получить в XSL-шаблоне МагазинКаталогТоваров кастомную переменную?
Итак, у вас есть (наверное есть, в коде видно только использование) переменная $NewVar, это PHP-переменная.
Если данный код задан в ТДС, то дальше в коде ТДС вы также используете свою переменную $NewVar, которую объявили выше.

кодом
$Shop_Controller_Show->addEntity(Core::factory('Core_Xml_Entity')->name('NewVar')->value($NewVar));
вы добавляете внешний тег в XML, который будет обработан XSL-шаблоном в рамках работы контроллера показа магазина.
Модератор
#
Re: Как получить в XSL-шаблоне МагазинКаталогТоваров кастомную переменную?
volgastar писал(а):
А её там нет, вот что пишет на всех страницах магазина (на фронте):

откуда получить? вы ее явно передаете в контроллер, а если ее нет, то и будет ваша ошибка. Откуда ее взять - я не знаю, вы же ее передаете контроллеру.
#
Re: Как получить в XSL-шаблоне МагазинКаталогТоваров кастомную переменную?
HostCMS писал(а):
вы же ее передаете контроллеру.

пользуясь случаем, хотелось бы пример передачи переменной контроллеру, и использование ее в дальнейшем???
как я понимаю можно в одном месте глобально передать в контроллер магазина переменную, а потом при каждом вызове экземпряра класса получить переменную, или нет?
Авторизация