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

pr_promo

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
!!!???!!! Обновил до новой версии 2,2,4 , стал заливать фото сразу пачкой ну как всегда это делал после того как дошло до 128 фотки - появилась ошибка

Fatal error: Maximum execution time of 2 seconds exceeded in /libraries/joomla/filesystem/folder.php on line 392

Fatal error: Maximum execution time of 2 seconds exceeded in /libraries/joomla/filesystem/file.php on line 366

что делать  >:( Помогите.
*

Roman Petrenko

  • Moderator
  • 438
  • 61 / 0
  • Дизайн без секретов
По какой-то причине ругается на время. Либо много фото, что не успевает обработать, либо у 128-й размер больше положенного, либо битый файл, 128-й фото. Попробуйте загружать меньше фоток или посмотреть внимательно на эту 128, уменьшить ее. Возможно, поможет.
*

pr_promo

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Да нет не в фото дело - они у меня все обработаны одинаково - делаю не первый раз данное действие.

Попытался сделать движение с .htaccess  вставив туда пару команд

php_value max_execution_time  60
php_value memory_limit 128M

Не помогло - пришлось обратиться к хостеру на предмет увеличения времени.  Ждём ответа.
*

pr_promo

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Ну вот и ответили говорят что компонент перегружает сервер на 100 %  и они не могут увеличить время обработки.

Что посоветуете сделать ????

ответ хостера

Цитировать
Я не увеличивал лимит, если ничего не было исправлено, опять проявится проблема, что может привести к блокировке аккаунта.
Компонент загружает процессор почти на 100%:
dancefm 96.40 [2009-05-05 12:21]
USER %CPU STARTED COMMAND
dancefm 57.0 12:17:58 httpd-11: (worker) W administrator/index.php?option=com_phocagallery&view=phocagallerys&countimg=204&currentimg=20
dancefm 39.4 12:20:32 httpd-11: (worker) W /index.php?start=105

Это не нормально, нужно выяснить причину и исправить.
*

Roman Petrenko

  • Moderator
  • 438
  • 61 / 0
  • Дизайн без секретов
Ну вот и ответили говорят что компонент перегружает сервер на 100 %  и они не могут увеличить время обработки.

Что посоветуете сделать ????

ответ хостера


Что-бы я попробовал:
1) Проверил бы оставшееся свободное место на сайте.
2) Предварительно бы уменьшил размер больших фото перед загрузкой.
3) Загружал бы меньшее количество фото по 10-30.
4) Поставил бы сам в  .htaccess
php_value max_execution_time  300
php_value memory_limit 256M
Если все пройдет удачно, то хостер не заметит. Да и в своей директории Вы сами вольны настраивить этот файл.

А вобще конечно, странно, что обычной закачкой файлов полностью загружается процессор. Интересно какие характеристики у сервера хостера? А если Ваши фото начнут массово скачивать, тогда сайт не сможет обслужить все запросы и будет недоступен, а ведь там еще, наверное, много других сайтов находится, кроме Вашего. Может это и к лучшему, что сразу выявились такие проблемы, возможно лучше сразу сменить хостера пока сайт не разросся до огромных размеров.
*

pr_promo

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Что-бы я попробовал:
1) Проверил бы свободное место на сайте.
2) Предварительно бы уменьшил размер больших фото перед загрузкой.
3) Загружал бы меньшее количество фото по 10-30.
4) Поставил бы сам в  .htaccess
php_value max_execution_time  300
php_value memory_limit 256M
Если все пройдет удачно, то хостер не заметит. Да и в своей директории Вы сами вольны настраивить этот файл.

:)))))   Хорошо попробую

Но ситуация в том что весь процес остановился как раз на создании превью фотографий - сами фото уже были залиты, и как только я пытаюсь зайти в раздел картинок мне выдаёт ошибку - тоесть галерея пытаеться начать работать над фото

Попробую вставить команду и остановить процес
*

Roman Petrenko

  • Moderator
  • 438
  • 61 / 0
  • Дизайн без секретов

Но ситуация в том что весь процес остановился как раз на создании превью фотографий - сами фото уже были залиты, и как только я пытаюсь зайти в раздел картинок мне выдаёт ошибку - тоесть галерея пытаеться начать работать над фото

Попробую вставить команду и остановить процес

Маловероятно, конечно, но предположу, что у Вас в настройках галереи (настройки загрузки) выделеннное дисковое пространство для загрузки меньше чем требуется или максимальный размер загрузки в байтах меньше того, что возник на практике.
*

Beast

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
похожая проблема при мультизалитии фоток после нажатия на multiply add выводит 500 ошибку при одинарном залитии фотки ошибка
Request-URI Too Large
The requested URL's length exceeds the capacity limit for this server.
request failed: URI too long

параметры php.ini
php_value upload_max_filesize   36M
php_value post_max_size      36M
php_value max_execution_time   360

параметры в настройке фоки
Maximum Upload Size (in bytes - front, admin upload)   314572800
Maximum Size of all User's Images                                  2097152000
Пространства на хостинге хватает
Причем она некоторое время работала и заливалось все а потом ошибка....
Пробовал заливать и пачкой и по одной фоты...и уменьшал размер... В чем еще может быть зацепка?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla 5 Модули: PhocaGallery Image Module ошибка Class "JRequest" not found

Автор prostoy

Ответов: 0
Просмотров: 930
Последний ответ 05.09.2024, 09:41:27
от prostoy
PhocaGallery

Автор rezchik

Ответов: 6
Просмотров: 1862
Последний ответ 07.01.2024, 16:59:36
от SeBun
Русификация PhocaGallery 3 и 4 для Joomla 2.5\3.0

Автор HiopsNerevar

Ответов: 118
Просмотров: 99326
Последний ответ 11.03.2022, 16:24:13
от sergeytolkachyov
Сортировка категорий в столбцах/колонках PhocaGallery 3.2.2

Автор remix8080

Ответов: 0
Просмотров: 2628
Последний ответ 20.06.2021, 17:09:27
от remix8080
PhocaGallery 2.8.1 для Joomla 1.5

Автор iGoldSilver

Ответов: 3
Просмотров: 2847
Последний ответ 16.12.2020, 10:10:17
от iGoldSilver