Новости Joomla

Свои типы полей в Joomla.

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

Это большая тема, о которой можно говорить очень много. Самое главное, что возможности применения ограничиваются только вашей больной фантазией. Вы строите интерфейс своего модуля или плагина и вам нужно подтянуть данные из сторонней системы (список чего-нибудь по какому-нибудь API), чтобы сохранить выбранный id в Joomla. Или сделать какую-то проверку и в зависимости от неё показать то или иное сообщение пользователю. Для этого подойдут свои пользовательские типы полей. Интерфейс Joomla по большей части описан в XML-файлах. У каждого из них свои параметры. Некоторые не описаны в документации (manual.joomla.org), поэтому самым любопытным будет полезно заглянуть в собственно файлы фреймворка по пути

libraries/src/Form/FormField.php, а так же в
libraries/src/Form/Fields. У каждого класса поля перечислены его специфические свойства, которые можно описывать в XML. А в своём типе поля вы можете устанавливать эти значения программно. В моём модуле WT Quick links под капотом происходят изменения. Теперь для работы (в админке) ему нужен вспомогательный плагин. А в самом модуле нам бы проверить, а не выключен ли он? В Joomla есть тип поля Note - заметка. Его можно использовать для вывода примечаний.

<field type="note" name="your_note_for_user" label="Заголовок примечания" title="Альтернативный способ для заголовка" description="Текст примечания" class="col-12 alert alert-info" heading="h1" close="true" />

heading - указывать уровень заголовка.
close - позволяет закрыть это примечание. В классе поля
libraries/src/Form/Field/NoteField.php описана логика вывода. И в принципе оно нам подходит для нашей задачи. Но оно будет выводить сообщение всегда, а нам нужно только тогда, когда плагин отключён. Поэтому берём и создаём свой класс поля, который мы унаследуем от
NoteField. Это значит, что у нас в руках будет весь инструментарий стандартного поля
Note + то, что мы сами добавим. В XML-манифест добавляем наше поле

<field type="systempluginstatus" name="systempluginstatus" addfieldprefix="Joomla\Module\Wtquicklinks\Site\Fields"/>

-

type - имя файла и класса,-
addfieldprefix - указываем namespace к нашему классу, может быть любой нам нужный-
name - нельзя полю без имени...Это означает, что Joomla будет использовать класс поля из файла
modules/mod_wt_quick_links/src/Fields/SystempluginstatusField.php.А в классе поля будет написано следующее:

<?php // namespace для атрибута addfieldprefix namespace Joomla\Module\Wtquicklinks\Site\Fields; // нельзя напрямую обращаться к этому файлу defined('_JEXEC') or die; // подключаем родительский класс для переопределения use Joomla\CMS\Form\Field\NoteField; use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\PluginHelper; // имя класса и имя файла точь-в-точь class SystempluginstatusField extends NoteField { protected $type = 'Systempluginstatus'; protected function getLabel() { // если плагин не включён if(PluginHelper::isEnabled('system','wtquicklinks')) { // меняем свойства родительского класса $this->class = 'alert alert-danger w-100'; $this->element['label'] = '⚠️ А-а-а-а!'; $this->element['description'] = 'Плагин не включён!!'; // и просто рендерим его с нашими свойствами return parent::getLabel(); } // А иначе всё хорошо, скрываем поле из виду. $this->parentclass = 'd-none'; return ''; } }

Просто и удобно. И людям приятно, что о них позаботились и рассказали почему что-то не работает. @webtolkru#joomla #php #webdev #разработка

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

Sergunqa

  • Захожу иногда
  • 74
  • 0 / 0
Здравствуйте, может быть не по теме, но на портале не нашел и даже через поиск. Стоит шаблон Retroid http://demo.joomlaxtc.com/retroid/ В нем модуль K2. Не могу перевести фразу Read more в Подробнее в модуле вывода плиток популярных материалов на главной. Ставил русик К2 и все равно. Константы вроде тоже переведены. Подскажите, в каком файле ковыряться? Пишу от безысходности >:(
---->
P.s. На фотке перевод ЯндекS браузера для наглядного примера
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
- Read more - может быть не только в модуле К2
Посмотрите по позиции - какой модуль в ней выводится и тогда идите в языковую папку, находите файл, что относится к данному модулю и в нем изменяете переменную.
Если в языковой-папке нет файла, что относится к модулю, смотрите тогда этот файл в папке самого модуля 
*

Sergunqa

  • Захожу иногда
  • 74
  • 0 / 0
в файлах все Read more данного шаблона переведены. Я не понимаю, что блокирует перевод. Человечек один мне тоже пробовал помоч, без успешно(. Может я просто "Вася" в Joomla?)))!
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
причем тут языковые файлы шаблона, если сами пишите - ... модуль K2.
Надо искать файлик в К2, который может находится как в папке компонент---к2 или же в папке самого шаблона -хтмл/ для компонента к2
Если это модуль выводит, значит - Read more - надо перевести этого Модуля, а не шаблона
*

Sergunqa

  • Захожу иногда
  • 74
  • 0 / 0
да я уже хз где искать. У меня руссик к2 стоит. Все переведено, кроме этого Read More
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
ваш шаблон/html/com_k2

иди в ваш шаблон/html/modules

Где то там, сразу не скажу, все переопределения отличаются, но у вас похоже квик и искать нужно именно в переопределениях.

// самое простое-гоу в phpadmin и поиском замена, если не в коде сидит напрямую.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Sergunqa

  • Захожу иногда
  • 74
  • 0 / 0
В /html/com_k2 все вроде правильно стоит после русификатора

<?php if ($this->item->params->get('catItemReadMore')): ?>
   <!-- Item "Подробнее..." link -->
   <div class="catItemReadMore">
      <a class="btn" href="<?php echo $this->item->link; ?>">
         <?php echo 'Подробнее'; ?>
      </a>
Подскажи как через phpMyAdmin поменять?
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Если это языковая константа, то заходите в Поиск (в пхп) и ищите, выбирая условия и где искать (см.скрин).
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Sergunqa

  • Захожу иногда
  • 74
  • 0 / 0
Пробовал короч, ничего не находит. Все константы переведены. Я уже всю голову сломал с этой фитчей.
« Последнее редактирование: 13.11.2016, 14:32:51 от Sergunqa »
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
выложите папку сайта (ЛС), дайте скачивание, скачаю, покажу где.
я не телепат.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Sergunqa

  • Захожу иногда
  • 74
  • 0 / 0
давай в чат куда нибудь. там покалякаем, может че интересное мне расскажешь, покажешь. https://vk.com/sergunqa . я щас папку на облако закину и тебе
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
ВК на компе у меня, скайп на ноуте.
Только скайп, если голос.

// Позже увидел в ЛС ссылку, дайте время, посмотрю. Но скайп пожете добавить.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Sergunqa

  • Захожу иногда
  • 74
  • 0 / 0
дай скайп. Щас скачаю его, напишу тебе
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
скайп в профиле
тут ваш перевод:
\administrator\language\en-GB\en-GB.com_k2.ini
481 и 676 строки
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
\administrator\language\ru\ru.com_k2.ini

вы логически посмотрите, я не буду вам перебирать варианты ленгвича.
у вас если "языковость" стоит и/или квик, у вас засунуло куда угодно.

И, навсяк, если начнёте Kunena мучать, там у вас сидит: \libraries\kunena\bbcode\bbcode.php === <span class="readon">
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

kv108

  • Новичок
  • 2
  • 0 / 0
Нашел файл, где торчит этот "Read"- нужно переводить в "language"
\localhost\Ваш шаблонг\modules\mod_jxtc_k2contentwall\templates\retroid_user1\element.html
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Частично не переводится модуль

Автор fireman

Ответов: 33
Просмотров: 9731
Последний ответ 04.04.2021, 10:37:59
от Akeksandr
Редактирование модуля регистрации

Автор Stanislav112

Ответов: 1
Просмотров: 1661
Последний ответ 20.12.2017, 19:32:31
от Aleks.Denezh
Не переводится компонент

Автор Vergi

Ответов: 20
Просмотров: 2532
Последний ответ 18.12.2017, 09:44:18
от SeBun
Разместить URL в шаблоне с учётом локали

Автор 01Kuzma

Ответов: 0
Просмотров: 944
Последний ответ 26.10.2017, 19:55:13
от 01Kuzma
После сохранения модуля, слетает кодировка

Автор sheina

Ответов: 18
Просмотров: 2854
Последний ответ 30.05.2017, 17:04:40
от nvyush