Новости Joomla

Свои типы полей в 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 для атрибута addfieldprefixnamespace 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 #разработка

Свои типы полей в 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 Гость просматривают эту тему.
  • 23 Ответов
  • 9061 Просмотров
*

AlexSmirnov

  • Завсегдатай
  • 1862
  • 272 / 16
  • Ищите и найдете
Сегодня на официальном каталоге и хранилище расширений компонента Сommuntiy Builder опубликован плагин русской локализации компонента CommunityBuilder 1.7.

Пожалуйста скачивайте плагин по ссылке http://www.joomlapolis.com/cb-solutions/directory/languages/cb-languages/russian-language-for-cb-17-utf-8.

Новичкам в СВ прошу перед скачиванием плагина внимательно прочитать включенные в его описание инструкции по его установке.

Те, кто пожелает выразить признательность за мою работу, кроме подъема репутации на этом форуме (щелчком на +) пожалуйста проставьте плагину свой рейтинг (над описанием плагина) и/или отправьте благодарственный обзор, щелкнув по ссылке "Submit review" (под описанием плагина).

« Последнее редактирование: 16.08.2011, 21:46:47 от AlexSmirnov »
# Back the fufalo (особенно ту самую столкершу)! #
# ВАЖНО! Кайфую от удаления присланного в личку спама, почти как от любви (особенно по выходным). #
*

Slayer Moon

  • Захожу иногда
  • 169
  • 9 / 0
Поставил 5 там на сайте. Спасибо за труды!
« Последнее редактирование: 16.08.2011, 21:47:13 от AlexSmirnov »
*

sachek

  • Захожу иногда
  • 102
  • 1 / 0
  • Jamal*
« Последнее редактирование: 16.08.2011, 21:47:49 от AlexSmirnov »
*

AlexSmirnov

  • Завсегдатай
  • 1862
  • 272 / 16
  • Ищите и найдете
к вашему успеху, джентельмены.

для выражения благодарности на нашем форуме также существует подъем "репутации" (щелчок по "+" )
« Последнее редактирование: 16.08.2011, 21:48:03 от AlexSmirnov »
# Back the fufalo (особенно ту самую столкершу)! #
# ВАЖНО! Кайфую от удаления присланного в личку спама, почти как от любви (особенно по выходным). #
*

Periscope

  • Осваиваюсь на форуме
  • 23
  • 1 / 0
  • Periscope
Поставил 12-ю звёздочу на joomlapolis.com... russian-language-for-cb-17-utf-8 и добавил пункт репутации здесь   ;)

Огромное спасибо!
*

Yakuza

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Пытаюсь поставить русификацию на CB 1.7.1 под Joomla 1.5.24. Пробовал и 1.7. версию, и 1.4 - при инсталляции одинаковая ошибка: Ошибка! Не найден XML-файл установки Joomla! В архивах файлы присутствуют. Что не так?
 P.S. Все, вопрос снят. Сам тормознул. Устанавливать надо не через установку модулей Joomla, а через установку плагинов в самом CB.
« Последнее редактирование: 03.11.2011, 13:25:14 от Yakuza »
*

AlexSmirnov

  • Завсегдатай
  • 1862
  • 272 / 16
  • Ищите и найдете
@Yakuza,


Новичкам в СВ прошу перед скачиванием плагина внимательно прочитать включенные в его описание инструкции по его установке.

# Back the fufalo (особенно ту самую столкершу)! #
# ВАЖНО! Кайфую от удаления присланного в личку спама, почти как от любви (особенно по выходным). #
*

Komers

  • Захожу иногда
  • 73
  • 10 / 0
С CB 1.7.1 как совместимость? Новых директив для перевода там не появилось?
*

AlexSmirnov

  • Завсегдатай
  • 1862
  • 272 / 16
  • Ищите и найдете
CB 1.7.1 - это выпуск безопасности, без новых функций. мой нынешний последний плагин локализации охватывает СВ 1.7.1 полностью. ставьте смело.
# Back the fufalo (особенно ту самую столкершу)! #
# ВАЖНО! Кайфую от удаления присланного в личку спама, почти как от любви (особенно по выходным). #
*

Komers

  • Захожу иногда
  • 73
  • 10 / 0
Ага, я так и сделал не дождавшись ответа. Все работает.
*

alexanderussgold

  • Захожу иногда
  • 230
  • 1 / 0
Установил. Все в норме, компонент на русском, но модуль регистрации почему-то не переведен. В чем может быть причина?
*

AlexSmirnov

  • Завсегдатай
  • 1862
  • 272 / 16
  • Ищите и найдете
плагин локализации СВ не охватывает административные панели модулей. разработчики обещают исправить это начиная с версии СВ 2.0.
# Back the fufalo (особенно ту самую столкершу)! #
# ВАЖНО! Кайфую от удаления присланного в личку спама, почти как от любви (особенно по выходным). #
*

Dmitriy50

  • Захожу иногда
  • 96
  • 4 / 11
  • TV
А будет ли работать на 1.8?
*

AlexSmirnov

  • Завсегдатай
  • 1862
  • 272 / 16
  • Ищите и найдете
А будет ли работать на 1.8?

в принципе, проблем быть не должно. поиграйтесь. я  сам его на 1.8 не тестировал, поскольку планирую за выходные вырастить его до этой новой версии.
# Back the fufalo (особенно ту самую столкершу)! #
# ВАЖНО! Кайфую от удаления присланного в личку спама, почти как от любви (особенно по выходным). #
*

Malory

  • Захожу иногда
  • 85
  • 6 / 0

в принципе, проблем быть не должно. поиграйтесь. я  сам его на 1.8 не тестировал, поскольку планирую за выходные вырастить его до этой новой версии.

AlexSmirnov, если вас не затруднит, не могли бы вы подправить перевод сообщений о записях в гостевой книге:

Цитировать
Юзер отправил новую запись в Вашем Гостевая книга.

Your current setting is that new entries in your Гостевая книга are automatically published. To see the new entry, please login. You can then see the new entry and take appropriate action if needed. Direct access to your Гостевая книга:

Это еще в CB 1.7
*

AlexSmirnov

  • Завсегдатай
  • 1862
  • 272 / 16
  • Ищите и найдете
@Malory,

на какой строке какого файла Вы это обнаружили?
# Back the fufalo (особенно ту самую столкершу)! #
# ВАЖНО! Кайфую от удаления присланного в личку спама, почти как от любви (особенно по выходным). #
*

Malory

  • Захожу иногда
  • 85
  • 6 / 0
AlexSmirnov,
это обнаружили мои юзеры у себя в почтовых ящиках ))
Строку сама пока не искала, если бы нашла - то сообщила бы.
 :-*
*

bork

  • Захожу иногда
  • 76
  • 9 / 1
Проголосовал и добавил в фавориты, теперь +100
на 1.8 встал нормально, буду дальше тестить
*

Malory

  • Захожу иногда
  • 85
  • 6 / 0
@Malory,

на какой строке какого файла Вы это обнаружили?

/components/com_comprofiler/plugin/language/ru-ru/cbteamplugins_language.php

в строке
Код
"\n\nYour current setting is that new entries in your %1\$s are automatically publihed. To see the new entry, please login. You can then see the new entry and take appropriate action if needed. Direct access to your %1\$s:\n%2\$s\n" => "\n\nСогласно Ваших настоящих настроек, новые записи в Вашем %1\$s публикуются автоматически. Чтобы просмотреть новую запись, пожалуйста войдите на сайт. Вы сможете увидеть новую запись и, при необходимости, принять соответствующие меры. Прямой доступ к Вашей %1\$s:\n%2\$s\n",
в слове
Код
publihed
пропущена буква
Код
s
из-за этого получается косяк, и языковой файл с переводом не срабатывает.
А строкой выше в строке
Код
"\n\nYour current setting is that you need to review entries in your %1\$s. Please login, review the new entry and publish if you agree. Direct access to your %1\$s:\n%2\$s\n" => "\n\nСогласно нынешних настроек, Вым необходимо просмотреть записи в Вашем %1\$s. Пожалуйста войдите на сайт, просмотрите новую запись и, если согласны, опубликуйте ее. Прямой доступ к Вашей %1\$s:\n%2\$s\n",
слово  
Код
Вым
желательно заменить на
Код
Вам
:))
« Последнее редактирование: 02.05.2012, 01:51:59 от Malory »
*

AlexSmirnov

  • Завсегдатай
  • 1862
  • 272 / 16
  • Ищите и найдете
Цитировать
...из-за этого получается косяк, и языковой файл с переводом не срабатывает.

сбросьте мне, пожалуйста, скриншот с Вашим сценарием в результате этой ошибки.
# Back the fufalo (особенно ту самую столкершу)! #
# ВАЖНО! Кайфую от удаления присланного в личку спама, почти как от любви (особенно по выходным). #
*

Malory

  • Захожу иногда
  • 85
  • 6 / 0
Скриншот как таковой делать не с чего, просто уведомление по электронке приходит:

Цитировать
malory отправил новую запись в Вашем Гостевая книга.

Your current setting is that new entries in your Гостевая книга are automatically published. To see the new entry, please login. You can then see the new entry and take appropriate action if needed. Direct access to your Гостевая книга:
*

AlexSmirnov

  • Завсегдатай
  • 1862
  • 272 / 16
  • Ищите и найдете
Опишите мне свои версии Joomla, СВ и гостевой книги.

В результате каких действий, куда и кому приходит выше приведенное уведомление.
# Back the fufalo (особенно ту самую столкершу)! #
# ВАЖНО! Кайфую от удаления присланного в личку спама, почти как от любви (особенно по выходным). #
*

Malory

  • Захожу иногда
  • 85
  • 6 / 0
Joomla! 2.5.4
Community Builder 1.8
Гостевая книга - Плагин Community Builder: user/cb.profilebook.php
uddeIM 2.7/stable

Уведомление приходит на эл.почту пользователю, в гостевую книгу которого добавлена запись другим пользователем.
После исправления указанной ошибки (вставили букву s) уведомление стало приходить на русском языке.
*

gangstarcj

  • Захожу иногда
  • 189
  • 8 / 0
Мучался с русификацией для валидации при регистрации, было на обязательных полях "This field is required" написано и тому подобное
Исправляется в файле administrator/components/com_comprofiler/library/cb/cb.validator.php
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Русский язык для Сommunity Builder 2.0.4 (Русификация)

Автор 1day

Ответов: 4
Просмотров: 8821
Последний ответ 04.04.2019, 17:32:27
от hayone
Community Builder: Как использовать поле "Моя начальная страница"

Автор lemur

Ответов: 3
Просмотров: 1658
Последний ответ 03.06.2015, 21:27:09
от lemur
Авторизация в Community Builder не работает

Автор aXiUs

Ответов: 22
Просмотров: 8243
Последний ответ 02.06.2015, 16:13:51
от andre46
[Новость] Выпущен CB 1.7

Автор veter1976

Ответов: 17
Просмотров: 5055
Последний ответ 09.08.2012, 08:58:54
от TerraDar
[Новость] Выпуск плагина русской локализации GroupJive 2.5.1 (версия RC1)

Автор AlexSmirnov

Ответов: 0
Просмотров: 7499
Последний ответ 28.04.2012, 02:09:07
от AlexSmirnov