Новости 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 Гость просматривают эту тему.
  • 19 Ответов
  • 21495 Просмотров
*

Morh

  • Захожу иногда
  • 118
  • 11 / 0
Итак, для всех, у кого после установки Joomla 3.5 в админке появилась ошибка, а после перехода в раздел модули, эта ошибка стала выглядеть вот так:
Цитировать
Out of sort memory, consider increasing server sort buffer size SQL=SELECT a.id, a.title, a.note, a.position, a.module, a.language,a.checked_out, a.checked_out_time, a.published as published, e.enabled as enabled, a.access, a.ordering, a.publish_up, a.publish_down,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,MIN(mm.menuid) AS pages,e.name AS name FROM `#__modules` AS a LEFT JOIN `#__languages` AS l ON l.lang_code = a.language LEFT JOIN #__users AS uc ON uc.id=a.checked_out LEFT JOIN #__viewlevels AS ag ON ag.id = a.access LEFT JOIN #__modules_menu AS mm ON mm.moduleid = a.id LEFT JOIN #__extensions AS e ON e.element = a.module WHERE (a.published IN (0, 1)) AND a.client_id = 0 AND e.client_id =0 GROUP BY a.id, a.title, a.note, a.position, a.module, a.language,a.checked_out,a.checked_out_time, a.published, a.access, a.ordering, l.title, l.image, uc.name, ag.title, e.name,l.lang_code, uc.id, ag.id, mm.moduleid, e.element, a.publish_up, a.publish_down,e.enabled
Обнаружена ошибка.
Если сайт на хостинге, решение такое же.

Решение:
1. Идёте по адресу: ..\denwer\usr\local\mysql-5.5
2. Открываете файл my.ini
3. В переменной sort_buffer_size увеличиваете значение до 256 например.

После этого ошибка исчезнет.
« Последнее редактирование: 31.03.2016, 13:21:24 от Morh »
*

Dmitiry2020

  • Новичок
  • 4
  • 0 / 0
Morh, я исправил значение сначала в одном месте в файле my.ini - ничего не помогло. Затем в другом месте напротив 8 М - тоже ничего не помогло. Ошибка как была так и осталась.
*

Dmitiry2020

  • Новичок
  • 4
  • 0 / 0
Ан нет, все заработало. Просто забыл перезапустить денвер. Благодарю Morh! От души!
*

Igoritaly

  • Давно я тут
  • 659
  • 2 / 0
Надо еще уточнить, что в файле my.ini, присутствуют две строки содержащие "sort_buffer_size":

1-ая, sort_buffer_size = 64K
2-ая, sort_buffer_size = 8M

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

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
Надо еще уточнить, что в файле my.ini, присутствуют две строки содержащие "sort_buffer_size":

1-ая, sort_buffer_size = 64K
2-ая, sort_buffer_size = 8M

и менять  необходимо именно в первом случае
А смысл в двух одинаковых строках?
*

Seanjoy

  • Новичок
  • 1
  • 0 / 0
Итак, для всех, у кого после установки Joomla 3.5 в админке появилась ошибка, а после перехода в раздел модули, эта ошибка стала выглядеть вот так:Если сайт на хостинге, решение такое же.

Решение:
1. Идёте по адресу: ..\denwer\usr\local\mysql-5.5
2. Открываете файл my.ini
3. В переменной sort_buffer_size увеличиваете значение до 256 например.

После этого ошибка исчезнет.
Спасибо, помогло.
*

Igoritaly

  • Давно я тут
  • 659
  • 2 / 0
А смысл в двух одинаковых строках?
По логике - никакого.
Но этот вариант пришел с офф. дистрибьютива
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
@b2z

А кто-нибудь пытался постичь глубинный смысл такого GROUP BY?

Код
...GROUP BY a.id, a.title, a.note, a.position, a.module, a.language,a.checked_out,a.checked_out_time, a.published, a.access, a.ordering, l.title, l.image, uc.name, ag.title, e.name,l.lang_code, uc.id, ag.id, mm.moduleid, e.element, a.publish_up, a.publish_down,e.enabled
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
Хаха, не знаю :) По идее в модулях нет смысла такое делать. Можем по идее на трекер написать.
*

prezident

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Действительно, помогло.
Для центоса это /etc/my.cnf

Столкнулся с этой ошибкой, когда вышло обновление 3.5.0, подумал баг какой-то.
Дождался 3.5.1 - то же самое. Но sort_buffer_size = 256K в конфиге мускула решает проблему.

Спасибо ТС
*

todin

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Здравствуйте, а подскажет кто-нибудь как на этот путь выбраться?просто искал искал так и не смог найти где это менять, по ftp захожу не нашел на исп панель зашел не нашел ! ! ! ! !
*

Morh

  • Захожу иногда
  • 118
  • 11 / 0
Здравствуйте, а подскажет кто-нибудь как на этот путь выбраться?просто искал искал так и не смог найти где это менять, по ftp захожу не нашел на исп панель зашел не нашел ! ! ! ! !
Честно-говоря, если сайт на хостинге, поменять, скорее всего не получится. Можно попробовать написать хостеру, но если сайт на виртуальном хостинге, то изменение этого параметра затронет весь сервер. Вряд-ли хостер будет что-либо делать.
*

Olg

  • Завсегдатай
  • 1181
  • 90 / 2
Честно-говоря, если сайт на хостинге, поменять, скорее всего не получится. Можно попробовать написать хостеру, но если сайт на виртуальном хостинге, то изменение этого параметра затронет весь сервер. Вряд-ли хостер будет что-либо делать.
Ежели хостер вменяемый, то ему надо объяснить -- и сделает (или предложит перенести сайт на сервер с нужной конфигурацией).
*

Besa

  • Захожу иногда
  • 162
  • 4 / 0
  • В чём-то каждый умнее меня. Поэтому я спрашиваю.
Тоже помучалась, после обновления безымянная ошибка в админке. "Ошибка Обнаружена ошибка"
Решила с хостером, так же: "файл usr\local\mysql-5.X\my.in i измените sort_buffer_size = 64K на 256K"
Всем спасибо за тему и решение!
*

Sorbon

  • Захожу иногда
  • 80
  • 1 / 0
Спасибо большое.
Все отлично решилось.
*

aldar

  • Новичок
  • 1
  • 0 / 0
как исправить ту же ошибку в денвере
*

KKAAZZOO

  • Живу я здесь
  • 2288
  • 118 / 9
Решение:
1. Идёте по адресу: ..\denwer\usr\local\mysql-5.5
2. Открываете файл my.ini
3. В переменной sort_buffer_size увеличиваете значение до 256 например.

После этого ошибка исчезнет.

*

v-idea

  • Захожу иногда
  • 210
  • 35 / 0
Спасибо автору за дельный совет! Помогло на Денвере! (Не забываем при этом - Restart Denwer)
После обновления Joomla с версии 2.5.27 до 3.6.5 постоянно в админке вылазила надпись: "Ошибка Обнаружена ошибка."
Русифицированный компонент Widgetkit v1.0.2_27.02 Joomla! | Классический шаблон Rhuk Milkyway Ext 25 для Joomla 1.6/1.7/2.5/3.0
*

GuzelB89

  • Новичок
  • 1
  • 0 / 0
Надо еще уточнить, что в файле my.ini, присутствуют две строки содержащие "sort_buffer_size":

1-ая, sort_buffer_size = 64K
2-ая, sort_buffer_size = 8M

и менять  необходимо именно в первом случае
Спасибо помогло именно этот вариант.
*

Anuarbek

  • Новичок
  • 9
  • 0 / 0
Здравствуйте! Помогите решить проблему плииииз!
После заливки Quickstart шаблона не запустилась страница для установки Joomla. Делал все в таком порядке: 1. Зашел на хостинг и вынес все файлы в папке Httpdocs. 2. Распаковал архив с Quickstart-ом на локальный диск. 3. Залил распакованные файлы через FileZilla в папку Httpdocs на хостинге. 4. Пока заливались файлы создал базу данных. После удачной заливки зашел через веб браузер на сайт и там вроде как должна была открыться страница для установки Joomla и.д., но почему то не открылась. В чем может быть проблема?Подскажите пожалуйста! Я в этом новичок, только начал заниматься.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Исчез компонент 'Поля' из меню в админке

Автор goga_pgasovav

Ответов: 2
Просмотров: 1272
Последний ответ 23.12.2024, 22:31:21
от goga_pgasovav
Где находится прямая ссылка на опубликованный материал в админке

Автор Apollon

Ответов: 10
Просмотров: 3888
Последний ответ 15.03.2024, 14:29:47
от 4el
Все изменения появляются в старой базе данных и ftp после смены хостинга

Автор makena0606

Ответов: 2
Просмотров: 2108
Последний ответ 09.02.2024, 10:21:47
от Vastriet
Прошу помощи. Ошибка при обновлении на Joomla 4

Автор wmsonic

Ответов: 1
Просмотров: 2029
Последний ответ 29.10.2023, 22:07:23
от Kukush
Выходит ошибка в админской панели

Автор daymarus

Ответов: 0
Просмотров: 1868
Последний ответ 10.08.2023, 12:43:43
от daymarus