Вывести языковую константу в материале\модуле?

  • 14 Ответов
  • 748 Просмотров

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

Всем привет  ^-^

Задача сделать набор текстовых констант и выводить их в нужных материалах и модулях.
Допустим мне нужно на сайте поменять номер телефона, который указан в шапке, в футере и в материалах. Вручную все это делать нудно и утомительно.
Но если изначально прописать это в HTML модулях и материалах константой, скажем, PHONE_NUMBER - было бы круто.

Гуглинг ничего не дал. Я видел такую фишку давно на Joomla 1.5, но не помню как там было сделано.

*

Онлайн voland

  • ********
  • 9939
  • [+]520 / [-]101
  • СКАЙП утерян! Пишите в телеграм @volandku
    • Просмотр профиля
    • webstudio.pro

как вариант создать файлик .php, где будут описаны все константы.
а уже в нужном модуле забивать:
require_once(<файлик с описанием констант>);
.........
echo <нужная константа>;

*

Оффлайн JLang

Можно через компонент  RokCandy сделать. (исправился  ;D)
Создаёте макрос, например
:PHONE1:и его HTML
+7 900 000 00 00Затем в материале или модуле вставляете :PHONE1: (модули необходимо обрабатывать плагинами)
« Последнее редактирование: 25.11.2015, 10:46:16 от JLang »

*

Оффлайн robert

Компонент+плагины=вывод_константы? Вам же сказали
JText
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

Оффлайн Arkadiy

  • *****
  • 5429
  • [+]440 / [-]0
  • Крепитесь, други.
    • Просмотр профиля
    • http://argens.ru
JText не совсем подходит под эту задачу, точнее много букав надо писать чтобы осуществить эту возможность (подключение языкового файла надо прописать в каждом модуле), гораздо проще сделать файл с константами, подключить его в верху шаблона и использовать эти константы где угодно. Вариант с плагинами и дополнительными компонентами - просто ужас, не делайте так никогда.
Кстати для JText есть хорошая фича - /administrator/index.php?option=com_languages&view=overrides все константы можно прописать там, тогда просто в любом месте вызываем
JText::_('YOUR_CONSTANT');

*

Оффлайн JLang

Собственно, какой константы (надо понимать, автору нужно в тексте материала или модуля проставить что-то?)  можно прописать JText в материал хоть 100500 раз, но на выходе это будет лишь JText100500 раз и не более.

*

Оффлайн robert

Если нужно выводить что-то в материале, то достаточно 1 плагина, зачем компонент?
Не нужно
подключение языкового файла прописать в каждом модуле
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

Оффлайн Arkadiy

  • *****
  • 5429
  • [+]440 / [-]0
  • Крепитесь, други.
    • Просмотр профиля
    • http://argens.ru
Топикстартер хочет выводить один раз написанный телефон в разных частях шаблона, на разных станицах и т.п. Как пример - телефон нужен в шапке, в футере, на станице контактов и т.п.

*

Оффлайн JLang

Слово Допустим никак не означает единичного количества и определённого местоположения.
Как и Языковая константа, которая тут конкретно - просто КОНСТАНТА, постоянная - позволяющая мгновенно изменить определённое повторяющееся заданное ей значение.
В предложенном мною ужасном варианте (компонента, как раз для подобного случая написанного; без создания файлов, правок шаблона или ядра) автор сможет выводить и в любое время менять номер телефона(картинку, ссылку, текст, да хоть что) в любом месте контента сайта, хоть после каждой буквы по два раза.
И наконец - это только вариант и никак не конечная инстанция, к чему так реагировать?! :dry:

*

Оффлайн Arkadiy

  • *****
  • 5429
  • [+]440 / [-]0
  • Крепитесь, други.
    • Просмотр профиля
    • http://argens.ru
Ваш вариант создает необоснованную и довольно большую нагрузку на сервер. Именно в этом смысле он не пригоден.

*

Оффлайн JLang

Если нужно выводить что-то в материале, то достаточно 1 плагина, зачем компонент?
Первое, что пришло на ум. Вам тоже сперва пришло мне ответить, а не автору.

Есть ещё вариант  ;D
Для вывода JText в контенте без правки кода. Через плагин DirectPHP, установив который, можно выводить переопределённые (или созданные) константы в тексте так:
<?php echo JText::_('YOUR_CONSTANT'); ?>
Спойлер
[свернуть]
-->
[свернуть]
-->
[свернуть]

*

Оффлайн robert

Вам тоже сперва пришло мне ответить, а не автору.
Не только вам, но и ТС, которому уже частично ответили. В общем:
- если нужно константу вывести в расширениях, то достаточно добавить ее в ru-RU.ini, например, и в нужном месте вызывать через Jtext.
- если нужно константу вывести в материалах, то без плагина не обойтись, но компонент точно не нужен: зачем плодить лишние расширения?

P.S. JLang, и ваш плагин DirectPHP мне тоже не очень нравится: та же необходимость regular expression, еще и eval().
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

Оффлайн JLang

- если нужно константу вывести в материалах, то без плагина не обойтись...
Его название автор и спрашивал, грубо говоря.

Есть у меня и 3я идея  ::)
Практически без сервера, через подключенный js
Спойлер
[свернуть]

*

Оффлайн robert

Есть у меня и 3я идея  ::)
Практически без сервера, через подключенный js
Вы переложили работу сервера на браузер - тоже неплохо, если список констант и мест их вывода не очень большой, иначе счет времени выполнения всех циклов может идти на десятки секунд.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.