Проблема с шаблонами Smarty в 1.10.3

#1 28 ноября 2013 в 09:34
При использовании в smarty шаблоне кода типа:

{php} $inPage = cmsPage:getInstance();
if ($inPage->countModules('modules_position') $inPage->printModules('modules_position'); {/php}

Страница начинает выдавать либо неверные данные, либо вообще ничего. Как такой код можно переписать под 1.10.3?
#2 28 ноября 2013 в 12:42
smarty надо настроить, в новой версии smarty php по умолчанию отключен
#3 28 ноября 2013 в 13:43

smarty надо настроить, в новой версии smarty php по умолчанию отключен

prosis
ничего не отключено, не дезинформируйте людей.

if ($inPage->countModules('modules_position') $inPage->printModules('modules_position'); {/php}

Юрий
такая конструкция в шаблонах не работает.
получать модули нужно на этапе template.php
#4 28 ноября 2013 в 16:40


такая конструкция в шаблонах не работает.

Fuze
Работает, если вышеупомянутый код расположен последним:


получать модули нужно на этапе template.php

Fuze
Тоже был бы очень благодарен за инстукцию по выводу позиции в нужном месте компонента а не только в конце.
Заранее спасибо!
#6 29 ноября 2013 в 13:36
Я ошибся — не решает оно проблему
#7 29 ноября 2013 в 23:05
Ну, допустим, код должен быть таким:
  1. {php}$inPage = cmsPage::getInstance();
  2. if($inPage->countModules('modules_position'))$inPage->printModules('modules_position');{/php}
Если заметить, то там ::

Можно сделать короче:
  1. {php}cmsPage::getInstance()->printModules('modules_position');{/php}
Работает в любом месте, как ни странно.
#8 2 декабря 2013 в 08:15
lokanaft, странно, ведь портит переменные Smarty функция loadModulesForMenuItem(), а она вызывается в обоих случаях
#10 3 декабря 2013 в 11:50


Похожая проблема — instantcms.ru/forum/thread16832-1.html
Только я не в смарти вывожу...

Rossoman
Я так понимаю, внешний скрипт в статьи вставляете? А если в модуль, — работает?
Перепроверял ещё раз.
Чистая 1.10.3, позиция сразу под заголовками, результаты:
— при просмотре статьи работает (вставлено в com_content_read.tpl)
— при просмотре раздела (com_content_view.tpl, под описанием раздела) — под списком разделов появляются несколько статей shock
#11 3 декабря 2013 в 12:25
Пытаюсь найти закономерность. Немного продолжил эксперимент:
Позиция на странице записи каталога — отваливаются картинки


на странице раздела — всё валится:


На главной каталога, всё нормально (вставлял и над списком разделов и ниже его).
На главной магазина (instantshop, последнее обновление) — ошибка:
  1. Warning: Smarty error: unable to read resource: "com_inshop_items.tpl" in Z:\home\shop_demo.ua\www\includes\smarty\libs\Smarty.class.php on line 1095
Сайт на денвере с рнр 5.3
Жаль, дело нужное...
p.s. вчера пытался получить помощь у довольно неплохого програмера из местных, так он мне говорит что я идиот, потому что этого всего не может быть cry
#12 6 декабря 2013 в 12:35
Я поковырял код немного. По идее instantcms.ru/users/files/download3982.html должно работать. Однако с InstantShop и позициями на главной он почему то упорно показывает — нет товаров. Хотя на внутренних страницах вроде бы отрабатывает....

Из-за чего такой глюк? Глюк из-за того, что смарти-экземпляр не создается отдельно на каждую страницу, а используется общий. Поэтому при попытке вызвать loadModulesForMenuItem() происходит рендеринг всех активных модулей, после чего выбираются только те, которые подходят к данной процедуре (будь то countModules или printModules). Соответственно все переменные смарти на момент выхода из куска кода {php}$inPage->printModules('top'){/php} инициализированы уже другими переменными, которые могут перекрывать переменные текущего шаблона…
#13 16 марта 2014 в 15:03
Реквестирую проблему.
Прописал позицию для вывода модулей в position.txt, пробую выводить модуль в модальном окне из универсального каталога из сom_catalog_item.tpl и com и com_catalog_view.tpl, — не получается.
Мб кто выручит за вознаграждение? + с меня подробное описание что было сделано
#14 16 марта 2014 в 15:21


Реквестирую проблему.
Прописал позицию для вывода модулей в position.txt, пробую выводить модуль в модальном окне из универсального каталога из сom_catalog_item.tpl и com и com_catalog_view.tpl, — не получается.
Мб кто выручит за вознаграждение? + с меня подробное описание что было сделано

ph3no
Так написали бы какая задача ставилась, что сделано… люди б помогли. Как угадать что именно вам нужно? Уже по ходу непонятки: catalog_item.tpl и com и com_catalog_view.tpl не модульные файлы. Или в них позиция прописана?
#15 16 марта 2014 в 15:58
Хорошо.
Требовалась галерея услуг на базе универсального каталога. У каждой записи должно быть 2 кнопки "Написать нам" и "Заказать звонок", при нажатии на которые, должно всплыть модальное окно с модулями, в которых вставлены формы из Конструктора форм. Пример того что должно получитсья — тут

Что я делаю. Я ищу похожие решения в сообществе. Нашел вот тут, у пользователя Dim@sik.

Предлагается добавить стиль
  1.  
  2. .modalDialog {
  3. position: fixed;
  4. font-family: Arial, Helvetica, sans-serif;
  5. top: 0;
  6. right: 0;
  7. bottom: 0;
  8. left: 0;
  9. background: rgba(0,0,0,0.8);
  10. z-index: 99999;
  11. -webkit-transition: opacity 400ms ease-in;
  12. -moz-transition: opacity 400ms ease-in;
  13. transition: opacity 400ms ease-in;
  14. display: none;
  15. pointer-events: none;
  16. }
  17.  
  18. .modalDialog:target {
  19. display: block;
  20. pointer-events: auto;
  21. }
  22.  
  23. .modalDialog > div {
  24. width: 400px;
  25. position: relative;
  26. margin: 10% auto;
  27. padding: 5px 20px 13px 20px;
  28. border-radius: 10px;
  29. background: #fff;
  30. background: -moz-linear-gradient(#fff, #999);
  31. background: -webkit-linear-gradient(#fff, #999);
  32. background: -o-linear-gradient(#fff, #999);
  33. }
  34.  
  35. .close {
  36. background: #606061;
  37. color: #FFFFFF;
  38. line-height: 25px;
  39. position: absolute;
  40. right: -12px;
  41. text-align: center;
  42. top: -10px;
  43. width: 24px;
  44. text-decoration: none;
  45. font-weight: bold;
  46. -webkit-border-radius: 12px;
  47. -moz-border-radius: 12px;
  48. border-radius: 12px;
  49. -moz-box-shadow: 1px 1px 3px #000;
  50. -webkit-box-shadow: 1px 1px 3px #000;
  51. box-shadow: 1px 1px 3px #000;
  52. }
  53.  
  54. .close:hover { background: #00d9ff; }
  55.  
2. Далее, я создаю в файле positions.txt следующие позиции:
  1. zakaz-zvonka
  2. zakaz-zvonka1
  3. zakaz-zvonka2
  4. zakaz-zvonka3
  5. zakaz-zvonka4 и т.д
3. Далее, мне нужно вставить следующий код в то место откуда я планирую вывод модального окна. Так как я использую Универсальный каталог, то мне нужно добавить код в сom_catalog_item.tpl и com и com_catalog_view.tpl. Также в модальном окне я хочу вывести модуль. Добавляю позиции модулей, ухищренно использую $item.id.
  1.  
  2. <a href="#openModal{$item.id}">Обратный Звонок</a>
  3. <div id="openModal{$item.id}" class="modalDialog">
  4. <div>
  5. <a href="#close" title="Закрыть" class="close">X</a>
  6. <p><?php $this->printModules('zakaz-zvonka{$item.id}'); ?></p>
  7. </div></div>
  8.  
4. Создаю много модулей с различными формами и публикую их в позициях
  1. zakaz-zvonka
  2. zakaz-zvonka1
  3. zakaz-zvonka2
  4. zakaz-zvonka3
  5. zakaz-zvonka4 и т.д.
  6.  
Сейчас я на таком этапе, что модальное окно выводит не модуль с формой из конструктора форм а текст
  1. printModules('zakaz-zvonka2'); ?>
(это пример для записи номер 2, item2).

Что я делаю не так. Я идиот?:)
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.