Новости 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 Ответов
  • 1169 Просмотров
*

goga_pgasovav

  • Захожу иногда
  • 444
  • 6 / 0
  • Внимательный джумловод
Уважаемые джумловоды, возможно кто-то из вас сталкивался с такой странностью: я добавил один из клиентских сайтов (не могу в данный момент дать ссылку) в Вебмастер Яндекс, и после обхода страниц сайта (их там всего несколько десятков) показал в списке несколько сотен несуществующих ссылок. В основном они якобы ведут на покупку виагры и тому подобное. Сайт совершенно иной тематики и страниц, которые пытался индексировать робот Яндекс попросту не существует, о чём и говорят статусы этих страниц: 404 Not Found.

Такое ощущение, что какой-то вирус в коде сайта подсовывает роботу эти ссылки. Я скачал все файлы сайта и проверил их Касперским. Ничего не обнаружено. Код некоторых файлов, типа .htaccess или index.php смотрел самостоятельно на присутствие чужого кода — ничего не нашёл.

Большая просьба, напишите если кто-то имел дело с такой гадостью.
Заранее благодарю!

Пример ссылок
[свернуть]
*

Tavol

  • Захожу иногда
  • 112
  • 3 / 0
Ответа не дам, но у меня подобная неприятность, 2 дня назад добавил, а сегодня:

Sitemap нормальный, краулером Xenu ничего подобного не нашел.
ЗЫ, Joomla 4.4, из неродного установлены только: SchuWeb Sitemap / FL Yandex Turbo / Securitycheck. Все остальное чистый код и заводская джумла
« Последнее редактирование: 04.12.2024, 16:59:05 от Tavol »
*

goga_pgasovav

  • Захожу иногда
  • 444
  • 6 / 0
  • Внимательный джумловод
Tavol, спасибо за ответ! Похоже, что это одна и та же проблема...
У меня вообще Joomla чистая. Никаких сторонних расширений.
Но ведь робот Яндекса откуда-то берёт эти ссылки?  :dry:
*

web1

  • Захожу иногда
  • 339
  • 19 / 1
Здравствуйте, возможно ваш домен использовали раньше, и теперь остались ссылки со старого сайта, такое бывает.
*

goga_pgasovav

  • Захожу иногда
  • 444
  • 6 / 0
  • Внимательный джумловод
web1, а знаете, вероятно вы правы!
Я изучил web archive, и оказалось, что домен переходил из рук в руки несколько раз. Собственно сайт моего клиента уже четвёртый.
И вот один из сайтов, привязанных к домену, занимался продажей виагры и прочих подобных медикаментов.
Но я всё равно не могу понять, где эти ссылки остались? Ведь робот идёт на текущий сайт и смотрит какие ссылки там в данный момент. А сайт совершенно другой, и тех страниц нет и в помине  *ОХ-Х-Х*
*

Missile

  • Завсегдатай
  • 1116
  • 90 / 1
Ведь робот идёт на текущий сайт и смотрит какие ссылки там в данный момент. А сайт совершенно другой, и тех страниц нет и в помине  *ОХ-Х-Х*
Ну, вот он и выдаёт 404. Он сравнивает результаты прошлой индексации и нынешней.
Сайт лучше вернуть клиенту - пусть в следующий раз думает перед тем как покупать г*сайты или г*домены. Потому что пока всё это дерьмо отклеится, поисковик пессимизирует сайт, и вытащить его из этой глубокой Жо будет очень и очень нелегко. А клиент будет предъявлять претензии - "А чё это сайт плохо индексируется?"
*

web1

  • Захожу иногда
  • 339
  • 19 / 1
Прошлый владелец вашего домена занимался рекламой сайта, естественно размещал ссылки, и по этим ссылкам поисковой робот и ходит, главное, чтоб у вас страница 404 хорошо работала и отдавала ответ сервера 404 и все, если вам домен важен, то советую просто забить на эти ссылки, если нет и вам все равно на этот домен, то можете зарегистрировать новый.
*

goga_pgasovav

  • Захожу иногда
  • 444
  • 6 / 0
  • Внимательный джумловод
Missile, web1, спасибо за информацию по данному вопросу!
Я не знал, что у поисковиков хранится какая-то база ссылок, с которой они сверяются, и которая (даже если устарела на несколько лет) всё равно не очищается. Домен для клиента важен, редирект на 404 работает отлично, так что будем ждать пока робот перестанет бегать по всем этим устаревшим ссылкам. Тут особое продвижение не нужно, это я просто заметил случайно и решил что вирус завёлся.

P.S.: Жаль что никак нельзя «сбросить» робота, чтобы он понял, что сайт новый.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работает мобильная версия сайта

Автор jeans

Ответов: 4
Просмотров: 563
Последний ответ 21.05.2025, 12:44:06
от jeans
Разные меню для мобильной и для ПК версии сайта

Автор jimka

Ответов: 7
Просмотров: 977
Последний ответ 24.03.2025, 20:03:01
от R31rus
Антивирус нашел вредоносный код в двух файлах сайта polyfill

Автор buto

Ответов: 4
Просмотров: 922
Последний ответ 19.10.2024, 10:56:55
от wishlight
Шаблон для данной страницы недоступен. сообщите об этом Администратору сайта

Автор 62411

Ответов: 2
Просмотров: 1152
Последний ответ 30.03.2024, 13:15:16
от web1
Проблема вебвизором в Яндекс метрике при использовании плагина jch optimize

Автор polezniy

Ответов: 32
Просмотров: 4127
Последний ответ 01.03.2024, 10:26:31
от Vastriet