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

skifbor

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Добрый день! Некоторое время назад в header (слева в верху) моего сайта появились рекламные ссылки. Откуда и как они появились не могу сказать. Техподдержка сказала, что там четыре вредоносных кода в php.
Также хотелось бы знать, как их удалить. На тестовом сайте надписи удалились при смене шаблона. Сайт: http://xn--62-glcd4d.xn--p1ai/
Всем удачи и здоровья!
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Как найти корни зловредов?
« Ответ #1 : 26.04.2020, 12:25:30 »
Также хотелось бы знать, как их удалить. На тестовом сайте надписи удалились при смене шаблона.
Откуда шаблон, там и корни . Обратитесь к разработчику шаблона.
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
Re: Как найти корни зловредов?
« Ответ #2 : 26.04.2020, 14:51:59 »
Со старой версией корни могут потом вылезть в любом месте
*

skifbor

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: Как найти корни зловредов?
« Ответ #3 : 28.04.2020, 13:10:54 »
Быстренько набросал новый шаблон, установил и на основной, и на тестовый. На тестовом нет рекламы, а на основном есть. Куда рыть?
*

skifbor

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: Как найти корни зловредов?
« Ответ #4 : 28.04.2020, 13:13:16 »
Откуда шаблон, там и корни . Обратитесь к разработчику шаблона.
Это мой шаблон, который стоит на сайте лет пять. Раньше все было чисто. Эта зараза появилась месяца 2-3 назад.
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Как найти корни зловредов?
« Ответ #5 : 28.04.2020, 14:07:45 »
На тестовом нет рекламы, а на основном есть. Куда рыть?
А версия Joomla одинаковая ? тестовый понятие объемное.
*

skifbor

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: Как найти корни зловредов?
« Ответ #6 : 28.04.2020, 14:27:17 »
А версия Joomla одинаковая ? тестовый понятие объемное.
Тестовый сайт это клон основного, один к одному.
Это основной: http://xn--62-glcd4d.xn--p1ai/.
Реклама в левом верхнем углу.
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Как найти корни зловредов?
« Ответ #7 : 28.04.2020, 14:51:54 »
Реклама в левом верхнем углу.
Я вижу рекламу. Похоже что в шаблоне подключается файл, из другой папки .
Но реклама это что видно, а шелл нужно все равно искать.
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Re: Как найти корни зловредов?
« Ответ #8 : 28.04.2020, 14:55:17 »
Реклама в левом верхнем углу.
Оно есть в коде страницы, а значит JS исключен.
И находится не сверху, а в левом столбце сразу под меню (на синем фоне которое). Вверх перемещено стилем:
Код
style="position: absolute; top: -1000px;"
Может поэтому раньше и не замечали.
Когда-то использовался аукцион ссылок sape - похоже на него (если ссылки меняются). Ищите какой модуль выводит. Позиция модуля известна. Отфельтруйте все модули этой позиции (левой колонки) и отключайте поочередно.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Как найти корни зловредов?
« Ответ #9 : 28.04.2020, 15:34:59 »
Ищите какой модуль выводит. Позиция модуля известна.
Не факт что в модуле. Может в шаблоне под выводом позиции left .
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Re: Как найти корни зловредов?
« Ответ #10 : 28.04.2020, 15:40:18 »
Не факт что в модуле. Может в шаблоне под выводом позиции left .
Может и в шаблоне. Но там дальше еще модули идут, поэтому предположил, что и реклама в модулях.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

skifbor

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: Как найти корни зловредов?
« Ответ #11 : 28.04.2020, 17:28:48 »
Ссылки в рекламе не меняются. На тестовом сайте точно такой же шаблон и ничего нет.
*

skifbor

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: Как найти корни зловредов?
« Ответ #12 : 28.04.2020, 17:31:35 »
Оно есть в коде страницы, а значит JS исключен.
И находится не сверху, а в левом столбце сразу под меню (на синем фоне которое). Вверх перемещено стилем:
Код
style="position: absolute; top: -1000px;"
Если бы мог переместил бы на -2000px  и оно бы исчезло. Да и бог с ним!
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Как найти корни зловредов?
« Ответ #13 : 28.04.2020, 17:42:31 »
Если бы мог переместил бы на -2000px  и оно бы исчезло. Да и бог с ним!
Добавьте в файл стилей и левые ссылки скроются
Код
#flyout_menu_383 + div {display: none}
/templates/drg_neo2020_1/css/template.css
*

skifbor

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: Как найти корни зловредов?
« Ответ #14 : 28.04.2020, 17:45:37 »
То есть просто в template.css? В любое место?
*

skifbor

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: Как найти корни зловредов?
« Ответ #15 : 28.04.2020, 18:03:13 »
Добавьте в файл стилей и левые ссылки скроются
Код
#flyout_menu_383 + div {display: none}
/templates/drg_neo2020_1/css/template.css
Просто, гениально! Мне больше ничего и не надо! Спасибо, Добрый человек, да и все, кто принял участие.Вижу Вы все большие специалисты и хочу задать еще вопрос. Этот сайт школьный, был построен восемь лет назад. Сейчас этот сайт весит около пяти гигов, но работает на Joomla 2.5.28. Посоветуйте, как его обновить до последней или не стоить?
*

AlexB

  • Завсегдатай
  • 1973
  • 54 / 2
Re: Как найти корни зловредов?
« Ответ #16 : 28.04.2020, 18:42:57 »
В дисплей нон загнали, но проблему то не решили
Обновлять аккуратно ручками в зависимости от того что стоит
*

skifbor

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: Как найти корни зловредов?
« Ответ #17 : 28.04.2020, 18:59:10 »
В дисплей нон загнали, но проблему то не решили
Обновлять аккуратно ручками в зависимости от того что стоит
Главное с глаз долой, а теперь можно разбираться.
По поводу обновления можно поподробнее, или может где описано нормальным языком.
Какова технология работы ручками?
*

AlexB

  • Завсегдатай
  • 1973
  • 54 / 2
Re: Как найти корни зловредов?
« Ответ #18 : 28.04.2020, 19:02:16 »
Да куча мануалов по апгрейду
Повторюсь все щависит от установленного на сайте, начиная с шаблонв
*

skifbor

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: Как найти корни зловредов?
« Ответ #19 : 28.04.2020, 19:08:25 »
Да куча мануалов по апгрейду
Я этих мануалов, честно говоря наелся и понял, что нужно брать чистую последнюю Joomla и ручками переносить контент с одной площадки на другую... Долго, сложно - ДА! А что делать? Не хочется восемь лет коту под хвост.
Спасибо за участие! Всем здоровья и удачи!
*

AlexB

  • Завсегдатай
  • 1973
  • 54 / 2
Re: Как найти корни зловредов?
« Ответ #20 : 28.04.2020, 19:18:36 »
Я этих мануалов, честно говоря наелся и понял, что нужно брать чистую последнюю Joomla и ручками переносить контент с одной площадки на другую... Долго, сложно - ДА! А что делать? Не хочется восемь лет коту под хвост.
Спасибо за участие! Всем здоровья и удачи!
Еще раз повторюсь
Все зависит от установленного
А так да порой прлще пересобрать
*

dmtn

  • Захожу иногда
  • 381
  • 25 / 2
Re: Как найти корни зловредов?
« Ответ #21 : 28.04.2020, 21:21:13 »
Я этих мануалов, честно говоря наелся и понял, что нужно брать чистую последнюю Joomla и ручками переносить контент с одной площадки на другую... Долго, сложно - ДА! А что делать? Не хочется восемь лет коту под хвост.
Спасибо за участие! Всем здоровья и удачи!
Можно взять чистую. навесить все тоже, что у вас на старом и потом перенести базу, картинки прочие файлики, когда-то проделывал такое - работает, но здесь надо делать все очень внимательно и, желательно планировать и продумывать в письменном виде. А можно просто обновиться на локалке, а потом перенести на основной сервер
*

skifbor

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: Как найти корни зловредов?
« Ответ #22 : 28.04.2020, 21:26:33 »
Можно взять чистую. навесить все тоже, что у вас на старом и потом перенести базу, картинки прочие файлики, когда-то проделывал такое - работает, но здесь надо делать все очень внимательно и, желательно планировать и продумывать в письменном виде. А можно просто обновиться на локалке, а потом перенести на основной сервер
Видимо так и прийдется делать. Пытался в админке два раза обновиться и два раза крах. Хостеры восстанавливали. Как не крути, ручками оно надежнее, но долго... Спасибо за совет!
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
Re: Как найти корни зловредов?
« Ответ #23 : 29.04.2020, 22:07:07 »
Нужно накатить патчи безопасности, а там уже смотреть, надо ли апгрейд делать или нет. Если на сайте ничего меняться и добавляться из функционала не  собирается, то его можно "зацементировать"  и вирус не пройдет.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Найти где внедряется ссылка

Автор archin_lin

Ответов: 1
Просмотров: 932
Последний ответ 13.02.2019, 18:16:59
от voland
Не могу найти, где править описания товаров

Автор Anna

Ответов: 4
Просмотров: 1240
Последний ответ 14.01.2018, 21:25:52
от Anna
Как найти где лежат файлы модуля?

Автор cheloveki

Ответов: 1
Просмотров: 4944
Последний ответ 10.10.2016, 20:44:50
от beliyadm
Не могу найти откуда генерируется тайтл

Автор hellothere1

Ответов: 5
Просмотров: 1125
Последний ответ 30.07.2016, 00:59:45
от KKAAZZOO
Не могу найти вывод HTML

Автор igor999999

Ответов: 3
Просмотров: 987
Последний ответ 13.10.2015, 22:30:44
от voland