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

Karyuudo

  • Захожу иногда
  • 354
  • 0 / 0
artio joom sef убило сайт :(
« : 13.12.2008, 11:16:43 »
вообщемм посоветовали поставить artio sef
скачал с оф сайта com_joomsef-3.2.1.zip
установил, написали, что установка прошла успешно. и зависло все меню, после чего перестал работать сайт, однако форум на поддомене еще работал.. щас проснулся, форум работает, но все темы пропали
денвер на локахосте пишет что это скорее всего ошибка 500...

как починить, что нужно сделать чтобы удалить этот джумсеф из базы, и восстановить сайт?
*

Karyuudo

  • Захожу иногда
  • 354
  • 0 / 0
Re: artio joom sef убило сайт :(
« Ответ #1 : 13.12.2008, 11:41:35 »
пробовал загрузить бекап базы которую делал 2 дня назад, но чет не помогло :(
помогает только полная замена файлов в папке
*

Karyuudo

  • Захожу иногда
  • 354
  • 0 / 0
Re: artio joom sef убило сайт :(
« Ответ #2 : 13.12.2008, 11:55:37 »
а теперь вообще даже загрузка файла с копией не помогает, страница теперь вообще не открывается...
заметил что все файлы на компьютере стали readonly и галочки на снимается!нажимаю снять ридонли, а оно опять ставиться.. и все из за этого компонента :(
« Последнее редактирование: 13.12.2008, 12:15:43 от Karyuudo »
*

Karyuudo

  • Захожу иногда
  • 354
  • 0 / 0
Re: artio joom sef убило сайт :(
« Ответ #3 : 13.12.2008, 12:44:17 »
о ридонли не убрался, а при запуске сайта снова ошибка 500

вообщем загрузил немного старую копию сайта, вродебы работает, только картинки пришлось перенести..

но вот с форумом все тажепроблема осталасб

все форумы удалились, а в админку не получается войти пишут:

Код
[phpBB Debug] PHP Notice: in file /includes/functions_admin.php on line 2405: array_merge() [function.array-merge]: Argument #1 is not an array
[phpBB Debug] PHP Notice: in file /includes/functions_admin.php on line 2408: vsprintf() [function.vsprintf]: Too few arguments
[phpBB Debug] PHP Notice: in file /includes/functions_admin.php on line 2405: array_merge() [function.array-merge]: Argument #1 is not an array
[phpBB Debug] PHP Notice: in file /includes/functions_admin.php on line 2408: vsprintf() [function.vsprintf]: Too few arguments
[phpBB Debug] PHP Notice: in file /adm/index.php on line 150: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3153)
[phpBB Debug] PHP Notice: in file /adm/index.php on line 152: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3153)
[phpBB Debug] PHP Notice: in file /adm/index.php on line 153: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3153)
[phpBB Debug] PHP Notice: in file /adm/index.php on line 154: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3153)
« Последнее редактирование: 13.12.2008, 13:44:39 от Karyuudo »
*

Евгенька

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: artio joom sef убило сайт :(
« Ответ #4 : 09.04.2009, 15:34:01 »
Хэлп, установила com_joomsef-3.2.1(ArtioRUS) и сразу же появилась ошибка 500 Internal Server Error..не могу ни в админку попасть, ни на сайт....что делать?  >:( >:( >:(
*

Yyqq

  • Новичок
  • 7
  • 2 / 0
Re: artio joom sef убило сайт :(
« Ответ #5 : 08.05.2009, 21:00:54 »
БАЛИН. Установил com_joomsef-3.2.5 (((((((((((
Что это за зверюга!
Установка зависла и ни сайт ни админка не работает.
Пишет "Ошибка 500 - Внутренняя ошибка сайта" :(
Как так? Что делать? Кто то решил проблему? ыыы :' (
Люди откликнитесь...)

Re: artio joom sef убило сайт :(
« Ответ #6 : 12.05.2009, 14:47:13 »
Вы где сидите, в локалке ли на удаленке? У меня СЕО, SEF компоненты на локалке ни один не работает, после установке и изменения на .htaccess всегда вылазить ошибка. Попробуйте проделать это на удаленном серваке, эшибки может и не возникнуть. Но точно ссказать не могу, из-за чего проблема, сам не особо волоку.

*

MuxaS

  • Захожу иногда
  • 78
  • 3 / 0
Re: artio joom sef убило сайт :(
« Ответ #7 : 12.05.2009, 16:55:10 »
Ну во-первых... Вы включили поддержку ЧПУ в конфигурации сайта? .htaccess точно называется именно так? У меня все заработало после включения ЧПУ в конфиге.
*

Yyqq

  • Новичок
  • 7
  • 2 / 0
Re: artio joom sef убило сайт :(
« Ответ #8 : 12.05.2009, 21:51:06 »
Спасибо что ответили!
Сначала расстроился, что ничего нового не услышал,.. хотел уж было всё по новой делать, и тут глаз кольнул тот самый htaccess, но он был ".txt".
Я его как только не настраивал после "аварии", но из-за не внимательности с расширением .txt он естественно не работал.
Действительно в нём нужно включить поддержку ЧПУ (хотя разработчикам как мне кажется нужо было бы как-то этот момент обиграть хоть немного получше, чтобы сайты не "вешались"))))
Спасибо! :)

*

s0ulleSS

  • Новичок
  • 9
  • 0 / 0
Re: artio joom SEF убило сайт :(
« Ответ #9 : 03.07.2009, 10:47:37 »
спс, реально трабла .htaccess и не на удаленке
*

VETERINAR

  • Давно я тут
  • 855
  • 165 / 14
  • Kiss my shiny metal ass!
Re: artio joom SEF убило сайт :(
« Ответ #10 : 03.07.2009, 10:57:32 »
В 1.0 линейке даже алерт был с напоминанием о необходимости переименования. Сейчас только значок с предупреждением. Предупреждение видно если на значок навести мышкой. Но никто почему-то не наводит.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Восстановить сайт, но на другой адрес

Автор Escander

Ответов: 14
Просмотров: 2769
Последний ответ 02.02.2022, 14:50:07
от draff
Как перенести сайт с сервера на сервер? (с хостинга на локалку и наоборот)

Автор djed9

Ответов: 244
Просмотров: 118931
Последний ответ 06.07.2020, 23:28:32
от SeBun
Как проверить сайт на накрутку просмотров?

Автор mimoza

Ответов: 3
Просмотров: 4177
Последний ответ 17.12.2017, 16:33:43
от zikkuratvk
Разделить сайт на два

Автор Escander

Ответов: 19
Просмотров: 2391
Последний ответ 11.08.2016, 11:01:38
от Escander
Ошибочно нажал Включить SSL и сайт не работает (

Автор serjik

Ответов: 6
Просмотров: 12976
Последний ответ 08.11.2015, 23:27:39
от arfeka