Перейти к содержимому


Упрощаем работу с шаблонами


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 96

#21 toradora

toradora

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 26 Декабрь 2011 - 17:47

необходима функция проверки существования переменной

#22 support

support

    Активный участник

  • Модераторы
  • 3 683 сообщений
  • ГородМосква

Отправлено 27 Декабрь 2011 - 19:44

Просмотр сообщенияtoradora (26 Декабрь 2011 - 17:47) писал:

необходима функция проверки существования переменной
Это можно делать например так:
{% IF VARIABLE %}тратата{% ENDIF %}


#23 toradora

toradora

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 28 Декабрь 2011 - 13:26

Просмотр сообщенияsupport (27 Декабрь 2011 - 19:44) писал:

Это можно делать например так:
{% IF VARIABLE %}тратата{% ENDIF %}
это нельзя делать так, при отсутствии переменной и её значении равное 0 результат аналогичный
UP

#24 romatex

romatex

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 301 сообщений

Отправлено 24 Апрель 2012 - 09:18

Скрытый текст


#25 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 23 708 сообщений

Отправлено 24 Апрель 2012 - 21:56

Вам необходимо вывести переменную {print_vars} в шаблоне. После у вас на главной или той станице которой вы данную переменную вставите появиться список всех доступных переменных и их значение. В том числе там будет и переменная MOD_LNAME с значением в зависимости от страницы. Желательно данный код размещать в шаблоне "HTML"

#26 pasiki

pasiki

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 231 сообщений
  • ГородСанкт-Петербург

Отправлено 24 Май 2012 - 23:18

Скажите, а выражение типа {VARIABLE | plus(VARIABLE)} имеет право на существование?

Мне нужно получить условие типа:
{% IF cart_sum.NOW | plus(GOODS_MOD_PRICE_NOW)<XXX %}

Это вообще можно как-то сделать?

Преобразовать неравенство не получилось, multiply("-1") не работает  :angry:

#27 support

support

    Активный участник

  • Модераторы
  • 3 683 сообщений
  • ГородМосква

Отправлено 25 Май 2012 - 16:47

Просмотр сообщенияpasiki (24 Май 2012 - 23:18) писал:

Скажите, а выражение типа {VARIABLE | plus(VARIABLE)} имеет право на существование?
К сожалению пока нет

Просмотр сообщенияpasiki (24 Май 2012 - 23:18) писал:

Мне нужно получить условие типа:
{% IF cart_sum.NOW | plus(GOODS_MOD_PRICE_NOW)<XXX %}

Это вообще можно как-то сделать?

Преобразовать неравенство не получилось, multiply("-1") не работает  :angry:
На данный момент подобное условие можно организовать через javascript, либо условия вида:
{% IF cart_sum.NOW<XXX %}
  {GOODS_MOD_PRICE_NOW}
{% ELSE %}
  {GOODS_MOD_PRICE_OLD}
{% ENDIF%}

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

#28 pasiki

pasiki

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 231 сообщений
  • ГородСанкт-Петербург

Отправлено 25 Май 2012 - 18:29

>  подобное условие можно организовать через javascript

А как?

Я хочу сделать следующее: в зависимости от суммы заказа в корзине и цены текущего товара выводить разные условия по доставке на странице товара.
Т.е. мне надо прописать условие типа:

ЕСЛИ сумма корзины + цена товара < порога
ТО доставка за Х руб.
ИНАЧЕ доставка за 0 руб.

Я уже сделал такое отдельно для суммы корзины и отдельно для цены товара, но хорошо бы было всё объединить.

Еще вопрос: есть ли возможность достучаться до следующих переменных:
1. Номер следующего заказа
2. Количество покупок, уже осуществленных зарегистрированным пользователем.
Смотрел списки {print_vars} и {print_arrays}, но не нашел там такого, возможно пропустил.

#29 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 23 708 сообщений

Отправлено 25 Май 2012 - 21:22

Скорее всего если таких данных нет в {print_vars} и {print_arrays} - то их получить нельзя. По поводу данной реализации - к сожалению подсказать ничего не могу. Думаю такое не получиться реализовать.

#30 pasiki

pasiki

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 231 сообщений
  • ГородСанкт-Петербург

Отправлено 25 Май 2012 - 22:42

Подумал тут, что действительно можно сделать это все на javascript. А как достучаться до переменных cart_sum.NOW и GOODS_MOD_PRICE_NOW внутри блока <script>?

#31 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 23 708 сообщений

Отправлено 28 Май 2012 - 21:28

Это можно сделать напрямую вставляя переменные в js, но тогда данный код js должен быть вшит в страницу html а не в файле main.js - тогда переменные будут работать, так как шаблонизатору безразлично html он обрабатывает или js в html.

Так же можно поступить и другим способом - это в шаблоне создать блоки
<span style="display:none;" class="var-span-price">{cart_sum.NOW}</span>

и уже в main.js получать эти данные
var price = parseFloat($('.var-span-price').text());


#32 pasiki

pasiki

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 231 сообщений
  • ГородСанкт-Петербург

Отправлено 30 Май 2012 - 09:11

а приведите пожалуйста пример, как в блоке <script> любого html-щаблона (мне надо именно там) достучаться до cart_sum.NOW?
скажем - вывести её значение через document.write()... пробовал и так и эдак - не работает.

#33 support

support

    Активный участник

  • Модераторы
  • 3 683 сообщений
  • ГородМосква

Отправлено 30 Май 2012 - 11:52

Просмотр сообщенияpasiki (30 Май 2012 - 09:11) писал:

а приведите пожалуйста пример, как в блоке <script> любого html-щаблона (мне надо именно там) достучаться до cart_sum.NOW?
скажем - вывести её значение через document.write()... пробовал и так и эдак - не работает.
Ну для начала надо где-либо вывести сумму заказа в из шаблонизатора и если она не нужна для отображения - скрыть её. Например так:
{% FOR cart_sum %}<span class="hiddenCartSum" style="display:none;">{cart_sum.NOW | money_format}</span>{% ENDFOR %}
или так, прописав напрямую в JS информацию по цене в корзине:
{% FOR cart_sum %}<script type="text/javascript">var cartSum = '{cart_sum.NOW}';</script>{% ENDFOR %}

Затем использовать эти данные в javascript, для вставки их где-либо, например в блоке
<span class='selector'></span>
так:
<script>$('.selector').html($('.hiddenCartSum').html());</script>
либо так для второго случая, с написанием переменной напрямую в js:
<script>$('.selector').html(cartSum);</script>

*selector - тот элемент, куда нужно вставить информацию по цене корзины.

#34 pasiki

pasiki

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 231 сообщений
  • ГородСанкт-Петербург

Отправлено 30 Май 2012 - 15:28

спасибо большое за столь развернутый ответ!

в итоге прописал следующую логику:

<script type="text/javascript">
var inCart = {cart_sum.NOW};
var currentGood = {GOODS_MOD_PRICE_NOW};
if (inCart+currentGood<1990) {
  document.write('199 руб.');
} else {
  document.write('0 руб.');
}
</script>

всё работает.

#35 support

support

    Активный участник

  • Модераторы
  • 3 683 сообщений
  • ГородМосква

Отправлено 11 Июль 2012 - 06:30

Просмотр сообщенияdervish (05 Июль 2012 - 13:57) писал:

А возможно такой же алгоритм применить к зависимости от расстояния и веса? Если да, то подскажите код и куда вставлять. Спасибо
Это будет отдельный модуль, рассчёта стоимости доставки, через шаблоны его крутить не придётся.

#36 support

support

    Активный участник

  • Модераторы
  • 3 683 сообщений
  • ГородМосква

Отправлено 22 Ноябрь 2012 - 18:54

На днях сделали пару обновлений в шаблонизаторе:
  • Добавлена спецпеременная {print_r} - она отображает и переменные и массивы
  • Добавлена возможность создавать множественные условия с использовнием операторов и: "&&", а так же или "||"
Информацию в первом посте по использованию и того и другого добавил. Надеюсь это сильно упростит жизнь :)

#37 kovalevap

kovalevap

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 342 сообщений

Отправлено 22 Ноябрь 2012 - 19:16

Просмотр сообщенияsupport (22 Ноябрь 2012 - 18:54) писал:

На днях сделали пару обновлений в шаблонизаторе:
  • Добавлена спецпеременная {print_r} - она отображает и переменные и массивы
  • Добавлена возможность создавать множественные условия с использовнием операторов и: "&&", а так же или "||"
Информацию в первом посте по использованию и того и другого добавил. Надеюсь это сильно упростит жизнь :)/>

О, да) Спасибо!

#38 galkinalexey

galkinalexey

    Пользователь

  • Пользователи
  • PipPip
  • 44 сообщений

Отправлено 26 Декабрь 2012 - 12:03

Добрый день!

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

{% IF PAGE_CONTENT.NAME=NAME1%} действие {% ENDIF %}

Так?
Если так то NAME1 это название страницы в URL или что то другое?

Спасибо.

#39 miyako

miyako

    Активный участник

  • Модератоpы
  • 5 372 сообщений

Отправлено 26 Декабрь 2012 - 12:41

Просмотр сообщенияgalkinalexey (26 Декабрь 2012 - 12:03) писал:

Добрый день! Скажите пожалуйста, как мне создать правильно условие, для того чтобы повесить слайдер на контент-странице. {% IF PAGE_CONTENT.NAME=NAME1%} действие {% ENDIF %} Так? Если так то NAME1 это название страницы в URL или что то другое? Спасибо.
Если вам нужно вставить слайдер на страницу списка акций, то откройте шаблон "Список акций" и вставьте в начало следующий код:

Вставьте в описание страницы через редактор HTML следующий код:
<div class="theme-default" style="padding:1em;display:none;">
<div id="slider">
		 <img src="http://chinzo.ru/published/publicdata/U1009TEST/attachments/SC/products_pictures/698/120068S06_product_STD_.jpg" alt="" />
		 <a href="/"><img src="/img/faq/questions/nyvo_slider/nemo.jpg" alt="" /></a>
		 <img src="http://storeland.ru/img/faq/questions/nyvo_slider/toystory.jpg" alt="" title="Пример картинки с заголовком" />
		 <img src="http://storeland.ru/img/faq/questions/nyvo_slider/walle.jpg" alt="" />
		 <img src="http://storeland.ru/img/faq/questions/nyvo_slider/cars.jpg" alt="" />
</div>
</div>

<script type="text/javascript">
$(window).load(function() {
		 $('#slider').nivoSlider().parent().show();
});
</script>


#40 galkinalexey

galkinalexey

    Пользователь

  • Пользователи
  • PipPip
  • 44 сообщений

Отправлено 26 Декабрь 2012 - 13:28

Просмотр сообщенияmiyako (26 Декабрь 2012 - 12:41) писал:

Если вам нужно вставить слайдер на страницу списка акций, то откройте шаблон "Список акций" и вставьте в начало следующий код:

Вставьте в описание страницы через редактор HTML следующий код:
<div class="theme-default" style="padding:1em;display:none;">
<div id="slider">
		 <img src="http://chinzo.ru/published/publicdata/U1009TEST/attachments/SC/products_pictures/698/120068S06_product_STD_.jpg" alt="" />
		 <a href="/"><img src="/img/faq/questions/nyvo_slider/nemo.jpg" alt="" /></a>
		 <img src="http://storeland.ru/img/faq/questions/nyvo_slider/toystory.jpg" alt="" title="Пример картинки с заголовком" />
		 <img src="http://storeland.ru/img/faq/questions/nyvo_slider/walle.jpg" alt="" />
		 <img src="http://storeland.ru/img/faq/questions/nyvo_slider/cars.jpg" alt="" />
</div>
</div>

<script type="text/javascript">
$(window).load(function() {
		 $('#slider').nivoSlider().parent().show();
});
</script>


Спасибо за скорый ответ.
Постараюсь объяснить :)
Предположим я создаю контент-страницу, например она будет называться "КОНТЕНТ", а в URL ее название будет .../page/kontent
Эту страницу я заполняю всякой информацией, и хочу повесить на нее слайдер сверху.
Если в шаблоне "HTML" написать код:

<!-- Вешаем слайдер -->
{% IF PAGE_CONTENT %}
  <!-- Обёртка, указывающая стиль темы -->
  <div class="theme-default" style="padding-top:1em;">
<!-- Непосредственный код слайдера -->
<div id="slider" style="display:none;">
  <a href="url"><img src="url" alt="Описание" />
  <a href="url"><img src="url" alt="Описание">
  <a href="url"><img src="url" alt="Описание" /><!--title="Пример картинки с заголовком"-->
</div>
  </div>

  <!-- Запуск слайдера -->
  <script type="text/javascript">
$(window).load(function() {
$('#slider').show().nivoSlider();
});
  </script>
{% ENDIF %}


То слайдер появится на всех контент страницах, какие только были созданы.
А мне необходимо чтобы на определенной контент-странице был слайдер.
Я попытался вставить вот такой код:


<!-- Вешаем слайдер  -->
{% IF PAGE_CONTENT.name=kontent %}   <-- Вот как тут правильно написать имя страницы c названием kontent?
  <!-- Обёртка, указывающая стиль темы -->
  <div class="theme-default" style="padding-top:1em;">
<!-- Непосредственный код слайдера -->
<div id="slider" style="display:none;">
  <a href="url"><img src="url" alt="Описание" />
  <a href="urll"><img src="url" alt="Описание">
  <a href="url"><img src="url" alt="Описание" /><!--title="Пример картинки с заголовком"-->
</div>
  </div>

  <!-- Запуск слайдера -->
  <script type="text/javascript">
$(window).load(function() {
$('#slider').show().nivoSlider();
});
  </script>
{% ENDIF %}

но ничего не получается.




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных