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

Dionis0.618

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Всем привет.  !  !Помогите пожалуйста, кто как говорится чем может. Я новичок совсем в этом деле и сайт по наследству достался на новом рабочем месте сделан на Joomla, домен и хостинг на Джино. Пришло предупреждение на почту, как я понял о хакерской атаке. Вопрос, что теперь делать! Какие первые шаги предпринять?? Подскажите пожалуйста... Вот собственно предупреждение:

** PATTERNS MATCHED (possible hack attempts)

* Local File Inclusion $_GET['f'] => ../../../configuration.php
* Local File Inclusion $_REQUEST['f'] => ../../../configuration.php

** PAGE / SERVER INFO
*REMOTE_ADDR : 197.3.211.72
*HTTP_USER_AGENT : python-requests/2.18.4
*REQUEST_METHOD : GET
*QUERY_STRING : f=../../../configuration.php

** SUPERGLOBALS DUMP (sanitized)
*$_GET DUMP:
Array
(
[f] => configuration.php
)
*$_POST DUMP:
Array
(
)
*$_COOKIE DUMP:
Array
(
)
*$_REQUEST DUMP:
Array
(
[f] => configuration.php
)
*

wishlight

  • Гуру
  • 5051
  • 314 / 1
  • От 300 руб быстрый хостинг. Сервера.
Re: Предупреждение о хакерской атаке
« Ответ #1 : 20.08.2018, 09:20:24 »
marco's sql injection предупреждение. По сути можно забить. Я его раньше часто ставил на пролеченые сайты.
*

Dionis0.618

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Re: Предупреждение о хакерской атаке
« Ответ #2 : 21.08.2018, 08:41:49 »
marco's sql injection предупреждение. По сути можно забить. Я его раньше часто ставил на пролеченые сайты.

Вчера еще три или четыре предупреждения пришли. Может это быть из за проверки ай болитом потому что три из них пришли во время проверки. А последний конечно пришел опять уже после этого. Извините конечно может это ерунда, но я же  боюсь мне страшно я же можно сказать первый раз и все учусь. Кстати ай болит выдал предупреждения, но что с ними делать? Я конечно сходил по путям вроде бы все норм, но я пока не знаю кода полностью. Не скажете на что можно обратить внимание? Спасибо всем кто откликнется....
Предупреждения ниже:
Первое:
** PATTERNS MATCHED (possible hack attempts)
* Union Select $_GET['start'] => 572999999.1 union select unhex(hex(version())) -- and 1=1
* Union Select $_REQUEST['start'] => 572999999.1 union select unhex(hex(version())) -- and 1=1
** PAGE / SERVER INFO
*REMOTE_ADDR : 151.1.48.6
*REQUEST_METHOD : GET
*QUERY_STRING : cat=35&start=572999999.1%20union%20select%20unhex(hex(version()))%20--%20and%201%3D1
** SUPERGLOBALS DUMP (sanitized)
*$_GET DUMP:
Array
(
    [cat] => 35
    [start] => 572999999.1 -- unhex(hex(version())) -- and 1=1
)
*$_POST DUMP:
Array
(
)
*$_COOKIE DUMP:
Array
(
)
*$_REQUEST DUMP:
Array
(
    [cat] => 35
    [start] => 572999999.1 -- unhex(hex(version())) -- and 1=1
)

Второе:
** PATTERNS MATCHED (possible hack attempts)
* Union Select $_GET['start'] => 57299999' union select unhex(hex(version())) -- 'x'='x
* Union Select $_REQUEST['start'] => 57299999' union select unhex(hex(version())) -- 'x'='x
** PAGE / SERVER INFO
*REMOTE_ADDR : 151.1.48.6
*REQUEST_METHOD : GET
*QUERY_STRING : cat=35&start=57299999%27%20union%20select%20unhex(hex(version()))%20--%20%27x%27=%27x
** SUPERGLOBALS DUMP (sanitized)
*$_GET DUMP:
Array
(
    [cat] => 35
    [start] => 57299999' -- unhex(hex(version())) -- 'x'='x
)
*$_POST DUMP:
Array
(
)
*$_COOKIE DUMP:
Array
(
)
*$_REQUEST DUMP:
Array
(
    [cat] => 35
    [start] => 57299999' -- unhex(hex(version())) -- 'x'='x
)

Третье:
** PATTERNS MATCHED (possible hack attempts)
* Union Select $_GET['start'] => 57299999" union select unhex(hex(version())) -- "x"="x
* Union Select $_REQUEST['start'] => 57299999" union select unhex(hex(version())) -- "x"="x
** PAGE / SERVER INFO
*REMOTE_ADDR : 151.1.48.6
*REQUEST_METHOD : GET
*QUERY_STRING : cat=35&start=57299999%22%20union%20select%20unhex(hex(version()))%20--%20%22x%22=%22x
** SUPERGLOBALS DUMP (sanitized)
*$_GET DUMP:
Array
(
    [cat] => 35
    [start] => 57299999" -- unhex(hex(version())) -- "x"="x
)
*$_POST DUMP:
Array
(
)
*$_COOKIE DUMP:
Array
(
)
*$_REQUEST DUMP:
Array
(
    [cat] => 35
    [start] => 57299999" -- unhex(hex(version())) -- "x"="x
)

Эти три во время проверки ай-болитом.
А это сам по себе:

** PATTERNS MATCHED (possible hack attempts)
* Local File Inclusion $_GET['f'] => ../../../configuration.php
* Local File Inclusion $_REQUEST['f'] => ../../../configuration.php
** PAGE / SERVER INFO
*REMOTE_ADDR : 77.68.90.159
*HTTP_USER_AGENT : python-requests/2.19.1
*REQUEST_METHOD : GET
*QUERY_STRING : f=../../../configuration.php
** SUPERGLOBALS DUMP (sanitized)

*$_GET DUMP:
Array
(
    [f] => configuration.php
)
*$_POST DUMP:
Array
(
)
*$_COOKIE DUMP:
Array
(
)
*$_REQUEST DUMP:
Array
(
    [f] => configuration.php
)


*

vetalist

  • Новичок
  • 7
  • 0 / 0
Re: Предупреждение о хакерской атаке
« Ответ #3 : 13.12.2018, 18:08:44 »
Вот моё "письмо счастья". Пришло за сутки примерно 10 подобных писем после установки плагина "System - Marco's SQL Injection - LFI Interceptor"    :
Прошу ваши комментарии...

** PATTERNS MATCHED (possible hack attempts)

* Local File Inclusion $_GET['f'] => ../../../configuration.php
* Local File Inclusion $_REQUEST['f'] => ../../../configuration.php


** PAGE / SERVER INFO

*REMOTE_ADDR : 51.68.112.14
*HTTP_USER_AGENT : python-requests/2.20.1
*REQUEST_METHOD : GET
*QUERY_STRING : f=../../../configuration.php


** SUPERGLOBALS DUMP (sanitized)

*$_GET DUMP:
Array
(
    [f] => ../../../configuration.php
)


*$_POST DUMP:
Array
(
)


*$_COOKIE DUMP:
Array
(
)


*$_REQUEST DUMP:
Array
(
    [f] => ../../../configuration.php
)
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Предупреждение о хакерской атаке
« Ответ #4 : 13.12.2018, 18:13:22 »
отключите уведомления и спите спокойно.
любой сайт найденный ботами каждый день атакуется, у вас полный ящик будет таких писем.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Предупреждение о хакерской атаке
« Ответ #5 : 13.12.2018, 20:18:38 »
отключите уведомления и спите спокойно.
я бы даже сказал чуть иначе - отключите плагин и спите спокойно. ну обновляться конечно не забывая во время
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Предупреждение о хакерской атаке
« Ответ #6 : 13.12.2018, 20:20:22 »
ну на старых сайтах, типа 1.5 и 2.5 такие расширения имеют смысл, на обновляемой тройке - тут большой вопрос, действительно.
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
Re: Предупреждение о хакерской атаке
« Ответ #7 : 14.12.2018, 11:56:04 »
ну на старых сайтах, типа 1.5 и 2.5 такие расширения имеют смысл, на обновляемой тройке - тут большой вопрос, действительно.
И на старых сайтах смысла ноль, последние минорные версии плюс патчи и что даст плагин ? Он же блокирует набор старых(закрытых) уязвимостей, новую он спокойно пропустит.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
Re: Предупреждение о хакерской атаке
« Ответ #9 : 14.12.2018, 13:26:17 »
От 0-day не спасет,  а смысл защищать от уязвимостей других версий, если старая Joomla к ним итак неуязвима.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Предупреждение о хакерской атаке
« Ответ #10 : 14.12.2018, 13:34:51 »
да блин. базы для плагинов пополняли даже после прекращения поддержки Joomla.
так что от части  сканботов они защищают таки.
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
Re: Предупреждение о хакерской атаке
« Ответ #11 : 14.12.2018, 21:40:05 »
Так базы тоже надо каким - то образом обновлять, с таким успехом проще накатить патч безопасности. Да и как говорил, от 0-day не спасёт.
И правила для . htaccess/nginx создают меньшую нагрузку, чем плагин.
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Re: Предупреждение о хакерской атаке
« Ответ #12 : 14.12.2018, 22:00:25 »
Недавно встретил инструкцию насчет защиты от ботов:
https://jehost.ru/poleznaya-informatsiya/blokirovka-botov-na-sajte-prosto-i-effektivno.html
В теории эти правила .htaccess должны помочь.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться