Форум пользователей Impera CMS
Impera CMS - отличный движок для лёгкого создания интернет магазина.
Обладает невероятным количеством функций, необходимых в онлайн торговле.

Проверка URL на вхождение строки

Следить
Главная
14:47
25 мар
#
?
Дмитрий написал:

Подскажите, как проверить URL на вхождение строки? К примеру мне нужно отобразить блок, прописанный в page.tpl только в карточке товара, т.е. надо проверить условие, что URL содержит строку "/products/".

15:39
25 мар
#
?
Карлсончик написал:
{$uri = $smarty.server.REQUEST_URI}
{$check = preg_replace('!^/products/!', '', $uri)}
{if $check != $uri}
    мой блок
{/if}

Покажет блок если uri страницы начинается с /products/.

Тот же код на чистом Smarty (без php функции preg_replace).

{$uri = $smarty.server.REQUEST_URI}
{$check = $uri|regex_replace:'!^/products/!':''}
{if $check != $uri}
    мой блок
{/if}

Код проверки вхождения /products/ на любой позиции uri.

{$uri = $smarty.server.REQUEST_URI}
{$check = $uri|replace:'/products/':''}
{if $check != $uri}
    мой блок
{/if}

То же с php функцией str_replace.

{$uri = $smarty.server.REQUEST_URI}
{$check = str_replace('/products/', '', $uri)}
{if $check != $uri}
    мой блок
{/if}

Вобще можно было одной строкой.

{if preg_match('!^/products/!', $smarty.server.REQUEST_URI)}
    мой блок
{/if}

Но функции preg_match почему-то нет в списке разрешенных для шаблона.

Предложение разработчику добавить в шаблоне настройку чтобы самому задавать разрешенные php функции.

Например если в emulator.php шаблона есть свойство $php_functions оно заносится в policy Smarty.

16:15
25 мар
#
?
Евгений написал:

Люди!!!!!!!!!!!!!!!!!!!

Вы же программситы. Или мартышки? Менеджер нажмёт на товаре галку "Особый URL" и ваша проверка полетит к чёрту. Потому что из uri исчезнет приставка "/products/".

100 лет назад уже придумали, как на Смартях выбросить флаг другому tpl, чтобы там включился блок. Всего 2 строки надо.

product.tpl

    ...
    {$block1=true scope=global}
    ...

page.tpl

    ...
    {if !empty($block1)} ваш блок 1 {/if}
    ...

Написание ответа

Перед публикацией рекомендуется использовать Предпросмотр, чтобы увидеть конечный вид сообщения.


Обратите внимание! Для противодействия спаму новые посты форума проявляются с задержкой от нескольких минут, пока не пройдут модерацию.


Хостинг для сайта

Хостинг для интернет магазина

Svai.net

Украина
г. Черкассы
5+ Заказать

TutHost.ua

Украина
г. Киев
Заказать

Mirohost.net

Украина
г. Киев
? Заказать

HyperHosting.com.ua

Украина
г. Винница
i подробнее Заказать

Agava.ru

Россия
г. Москва
Заказать

Ukraine.com.ua

Украина
г. Киев
5 Заказать
Импераготовасотрудничатьс провайдерами Важно Учтите Этот список перечисляет лишь некоторых хостинг-провайдеров, у которых существуют специальные тарифные планы для интернет магазинов, а сам список не означает, что другие провайдеры чем-то хуже.

Существующие в списке оценки по 5-бальной шкале не должны учитываться при выборе, так как носят субъективный характер и касаются соотношения цена-качество-скорость только для самых дорогих тарифных планов.

Демо Главная Хронология Соглашение Материалы Контакты