Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Кастомный макрос. Как передать строку с символами "/"?

Автор MIkeРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 2449
Последний ответ 23 Мая 2013, 15:13:37
от MIke
Макрос emarket basketAddLink - отсутствие ссылки купить если цена 0

Автор koroganРаздел Макросы UMI.CMS

Ответов: 3
Просмотров: 3514
Последний ответ 25 Апреля 2012, 01:19:03
от admin
Перенесено: Макрос постраничного вывода system numpages - ошибка

Автор adminРаздел Макросы UMI.CMS

Ответов: 0
Просмотров: 3226
Последний ответ 04 Октября 2011, 14:58:21
от admin
Макрос вывода новостей связанных определенным сюжетом

Автор 31rusРаздел Custom макросы

Ответов: 3
Просмотров: 2853
Последний ответ 21 Сентября 2013, 19:11:52
от admin
Макрос content/sitemap обрабатывает не все уровни.

Автор poloРаздел Макросы UMI.CMS

Ответов: 7
Просмотров: 6393
Последний ответ 22 Октября 2013, 21:10:52
от admin

0 Пользователей и 1 Гость просматривают эту тему.

*

muldy

  • ***
  • 222
  • +9/-1
    • Просмотр профиля
Создать глобальный макрос?
« : 18 Июля 2013, 16:24:19 »
Здравствуйте!
Требуется создать простой макрос для вывода определенного текста внутри теркста, например, описание товара.
Те что я имею ввиду, имеем:

Наш товар самый популярный  и необычный товар о котором все знают но мало кто имеет!В %Region% вы найдете большой выбор этого товара!

Соотвественно, требуется вывести текст макроса: %Region%, как такое реализовать?

*

NOIRMAN

  • *****
  • 101
  • +16/-1
    • Просмотр профиля
Re:Создать глобальный макрос?
« Ответ #1 : 18 Июля 2013, 16:31:09 »
А чем вас сущности (Entity) не устраивают?

*

muldy

  • ***
  • 222
  • +9/-1
    • Просмотр профиля
Re:Создать глобальный макрос?
« Ответ #2 : 18 Июля 2013, 18:14:05 »
А разве у меня с помощью сущностей будет возможность вставлять ее непосредственно в редактор?
Мне требуется чтобы при заполнении можно было использовать свой макрос, который будет выводить заранее заданный текст!

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Создать глобальный макрос?
« Ответ #3 : 21 Июля 2013, 13:37:19 »
то есть вам надо в редактор вставить что-то(например: %Region%), что при выводе замениться например на савтоматически определенный регион данного пользователя?

если так, то подстановка возможно:
1.  через js (подставляем в какое-то место шаблона js код в который подгружаем на 'ngt формирования страницы нужное значение и его заменяем в тексте, найдя его по функции замены подстроки)
2. через xslt (таже песня только средствами xslt работаем с нужным полем строковыми функциями)
3. через php при выводе вызываем макрос передав ему id страницы и название поля, а php в этом тексте найдет нужное значение и вставит другое.

P.S.
Cамый быстрый для реализации это js.
Более правильный в плане возможного расширения (вдруг у вас там много таких переменных появиться) это php. 
Xslt, просто как альтернатива, так как строковые функцие у xslt не мега быстрые и не мега удобные.

*

muldy

  • ***
  • 222
  • +9/-1
    • Просмотр профиля
Re:Создать глобальный макрос?
« Ответ #4 : 22 Июля 2013, 14:51:17 »
Так вот мне и требуется макрос который будет заменять текст типа %Region%, но в зависимости от поддомена!
Вот поэтому и спрашиваю как написать такой макрос?

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Создать глобальный макрос?
« Ответ #5 : 22 Июля 2013, 15:29:22 »
вы уже писали макросы? если нет, то вначале посмотрите Новый формат расширения функционала и написание макроса

самый распространенное место написание своих макросов, это файл /classes/modules/custom.php (так как там не надо прописывать права, эта функция будет доступна всем)

далее вам надо знать как в umi вытащить текст из поля зная id страницы и название поля (примеры можно посмотреть тут ) и дальше вызываете этот макрос через %custom название_вашего_метода(id_старницы,англ_название_поля_с_текстом)% или <xsl:value-of select="document('udata://custom/название_вашего_метода/id_старницы/англ_название_поля_с_текстом')/udata" disable-output-escaping="yes"/>... в зависимости от того какой шаблонизатор вы используете

*

muldy

  • ***
  • 222
  • +9/-1
    • Просмотр профиля
Re:Создать глобальный макрос?
« Ответ #6 : 23 Июля 2013, 16:15:16 »
Оказалось все проще, написал макрос и вставил в текстовую область макрос %custom region%

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Создать глобальный макрос?
« Ответ #7 : 23 Июля 2013, 16:34:57 »
и то верно) чего-то про этот вариант никто и не вспомнил