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

Zegeberg

  • Захожу иногда
  • 279
  • 7 / 1
Внизу страницы вылез код
« : 13.09.2021, 13:18:27 »
На сайте https://stihirus24.ru/ внизу страницы вылез код
Array
(
    [media/djmediatools] => Array
        (
        )  ......
В index.php всё чисто, откуда он взялся ? ((( Спасибо.
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Внизу страницы вылез код
« Ответ #1 : 13.09.2021, 13:41:00 »
А модуль mod_news_pro_gk5 никто не трогал ? Отключите и проверьте вывод
*

Zegeberg

  • Захожу иногда
  • 279
  • 7 / 1
Re: Внизу страницы вылез код
« Ответ #2 : 13.09.2021, 13:44:58 »
Не трогал mod_news_pro_gk5, на всякий выключил включил - ничего
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Внизу страницы вылез код
« Ответ #3 : 13.09.2021, 13:55:39 »
Пройдитесь поиском по всему сайта у найдите там
Код: html
<pre>
Есть подозрения что это может быть какой то плагин
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Zegeberg

  • Захожу иногда
  • 279
  • 7 / 1
Re: Внизу страницы вылез код
« Ответ #4 : 13.09.2021, 14:09:39 »
В коде только так
</html><pre>Array
(
    [media/djmediatools] => Array

папки в djmediatools нет вообще
*

Zegeberg

  • Захожу иногда
  • 279
  • 7 / 1
Re: Внизу страницы вылез код
« Ответ #5 : 13.09.2021, 14:10:37 »
От поддержки Спайс Веб отписали Ошибка может происходить из-за подозрительных куки в вашем браузере (Cookie malware forbidden), пожалуйста, очистите их.  Ничего не понял.
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Внизу страницы вылез код
« Ответ #6 : 13.09.2021, 14:11:27 »
Не в исходном коде страницы, а в файлах сайта!
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Zegeberg

  • Захожу иногда
  • 279
  • 7 / 1
Re: Внизу страницы вылез код
« Ответ #7 : 13.09.2021, 14:13:27 »
Ошибка
[Mon Sep 13 14:02:20 2021] [:error] [pid 1046676] [client 217.118.92.176] ModSecurity: Access denied with code 415 (phase 2). Pattern match "^(?!(guid))[a-z]{2,7}\\\\=[0-9a-z]{8}\\\\-([0-9a-z]{4}\\\\-){3}[0-9a-z]{12}$" at REQUEST_HEADERS:cookie. [file "/etc/apache24/modules.d/81_modsecurity-sweb.conf"] [line "210"] [id "1000028"] [msg "Cookie malware forbidden - SWDEV-779"] [hostname "stihirus24.ru"] [uri "/izbrannye-i-redkie-stikhi-sergeya-esenina.html"] [unique_id "YT8vvIiPdKBBo-RdHmzE@gAAABg"]
[Mon Sep 13 14:02:21 2021] [:error] [pid 1046676] [client 217.118.92.176] ModSecurity: Access denied with code 415 (phase 2). Pattern match "^(?!(guid))[a-z]{2,7}\\\\=[0-9a-z]{8}\\\\-([0-9a-z]{4}\\\\-){3}[0-9a-z]{12}$" at REQUEST_HEADERS:cookie. [file "/etc/apache24/modules.d/81_modsecurity-sweb.conf"] [line "210"] [id "1000028"] [msg "Cookie malware forbidden - SWDEV-779"] [hostname "stihirus24.ru"] [uri "/favicon.ico"] [unique_id "YT8vvYiPdKBBo-RdHmzE@wAAABg"]
[Mon Sep 13 14:02:22 2021] [:error] [pid 1046676] [client 217.118.92.176] ModSecurity: Access denied with code 415 (phase 2). Pattern match "^(?!(guid))[a-z]{2,7}\\\\=[0-9a-z]{8}\\\\-([0-9a-z]{4}\\\\-){3}[0-9a-z]{12}$" at REQUEST_HEADERS:cookie. [file "/etc/apache24/modules.d/81_modsecurity-sweb.conf"] [line "210"] [id "1000028"] [msg "Cookie malware forbidden - SWDEV-779"] [hostname "stihirus24.ru"] [uri "/sw.js"] [unique_id "YT8vvoiPdKBBo-RdHmzE-AAAABg"]
*

Zegeberg

  • Захожу иногда
  • 279
  • 7 / 1
Re: Внизу страницы вылез код
« Ответ #8 : 13.09.2021, 14:20:18 »
Как я понял, со стороны хостера нашли вредоносные файлы куки... почистил браузер, но все то же.. пишу в поддержку... все вроде чисто.
« Последнее редактирование: 13.09.2021, 14:29:02 от Zegeberg »
*

Zegeberg

  • Захожу иногда
  • 279
  • 7 / 1
Re: Внизу страницы вылез код
« Ответ #9 : 13.09.2021, 14:40:49 »
Посоветовали восстановить на вчера из бекапа, ошибка сохранилась.. Ноги моей на спайс вебе не будет... выдают ошибку и не хотят решать.
*

sivers

  • Живу я здесь
  • 2581
  • 358 / 0
Re: Внизу страницы вылез код
« Ответ #10 : 13.09.2021, 14:52:51 »
Больше похоже на вывод отладки. Воспользуйтесь советом выше и поищите код, выводящий массив скриптов.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Zegeberg

  • Захожу иногда
  • 279
  • 7 / 1
Re: Внизу страницы вылез код
« Ответ #11 : 13.09.2021, 15:08:09 »
А как проще по файлам сайта поискать <pre>
*

Zegeberg

  • Захожу иногда
  • 279
  • 7 / 1
Re: Внизу страницы вылез код
« Ответ #12 : 13.09.2021, 15:21:43 »
Решено! В плагине DJ-WebP была включена отладка и она накосячила )) точнее я что её включил
*

Byzi

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
Re: Внизу страницы вылез код
« Ответ #13 : 20.11.2021, 16:47:00 »
Полезная ветка
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Отключить кэширование для страницы или модуля

Автор velyar

Ответов: 8
Просмотров: 1864
Последний ответ 20.11.2021, 16:47:58
от Byzi
Как удалить на главной страницы "?start=2" "?start=3" и так далее?

Автор Igor5

Ответов: 11
Просмотров: 1462
Последний ответ 20.11.2021, 16:46:40
от Byzi
URL продукта VirtueMart с началом от страницы материала

Автор pvip

Ответов: 0
Просмотров: 977
Последний ответ 01.06.2020, 17:34:57
от pvip
Как убрать пункт меню вверху и оставить внизу в футере?

Автор brazhnik

Ответов: 13
Просмотров: 1087
Последний ответ 28.04.2020, 10:10:52
от brazhnik
Страницы грузятся по 60 секунд

Автор andy12

Ответов: 10
Просмотров: 952
Последний ответ 21.01.2020, 23:55:03
от andy12