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

alexanderuss

  • Захожу иногда
  • 179
  • 0 / 1
Понимаю, что тема затертая до "дыр", но я честно перешерстил все темы на форуме и перечитал, что только можно. При этом запутался окончательно.
В связи с этим назрело несколько вопросов:

1. В Joomla 3 тег титл воспринимается поисковиком как H1 или все-таки название нужно загонять под H1 вручную? Сейчас у меня все названия в теге <H2> и стоит плагин autotoс, в котором содержание отражается под H1:
пример: - <a href='сайт#h1-  название статьи' class='toclink toclink-h1'>Название статьи</a> При этом я боюсь, чтобы случайно не дублировать Н1.

2. Принципиально ли для поисковиков - H1 или H2 и насколько это может повлиять на индексацию и вывод статьи в ТОП.
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

alexanderuss

  • Захожу иногда
  • 179
  • 0 / 1
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Re: Заголовки: быть или не быть?
« Ответ #3 : 17.02.2016, 10:04:40 »
Читал, конечно.
И остались воросы?

Тег h1 должен быть один на страницу, если это html5, то там немного по другому, но в целом должна соблюдаться правильная иеархия тегов. Тег <title> заголовком не является, это название. Для проверки сайта можете воспользоваться инструментами, предоставляемыми самими поисковиками, например этим и конкретно по HTML этим.
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

alexanderuss

  • Захожу иногда
  • 179
  • 0 / 1
Re: Заголовки: быть или не быть?
« Ответ #4 : 17.02.2016, 10:42:01 »
Да, с этим инструментом не все понятно, конечно( Он ругается на выделение жирным заголовка. Но если этого не делать, то даже при H1 заголовок блеклый и совсем не выделяется.

Как понять, что речь идет об html5?
« Последнее редактирование: 17.02.2016, 11:00:16 от alexanderuss »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Заголовки: быть или не быть?
« Ответ #5 : 17.02.2016, 11:24:14 »
Цитировать
Он ругается на выделение жирным заголовка.

это когда

Код: html4strict
<b><h1>Заголовок</h1></b>
?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

alexanderuss

  • Захожу иногда
  • 179
  • 0 / 1
Re: Заголовки: быть или не быть?
« Ответ #6 : 17.02.2016, 11:47:03 »
У меня почему-то так -
<h2 style="text-align: justify;"><strong> <span style="font-family: verdana, geneva; font-size: 14pt;">Как правильно приседать?</span></strong></h2>

Да и вообще у меня почему-то весь текст захламлен различными стилями:
Спойлер
[свернуть]
« Последнее редактирование: 17.02.2016, 11:50:43 от alexanderuss »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Заголовки: быть или не быть?
« Ответ #7 : 17.02.2016, 11:55:09 »
ну так надо сначала в порядок текст привести. ничего удивительного нет, что инструмент проверки ругается. я тоже не сдержался, когда спойлер открыл :) а жирность заголовку придается на CSS, не надо кучи вложенных тегов.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

alexanderuss

  • Захожу иногда
  • 179
  • 0 / 1
Re: Заголовки: быть или не быть?
« Ответ #8 : 17.02.2016, 12:34:54 »
ну так надо сначала в порядок текст привести. ничего удивительного нет, что инструмент проверки ругается. я тоже не сдержался, когда спойлер открыл :) а жирность заголовку придается на CSS, не надо кучи вложенных тегов.
А можно подробней, как через CSS. Я с этим не сталкивался никогда
Кстати, я так понимаю, что через CSS можно и все остальное задать, к примеру, шрифт?
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Re: Заголовки: быть или не быть?
« Ответ #9 : 17.02.2016, 12:48:41 »
У меня почему-то так -
<h2 style=...
Стиль задается не в коде HTML. Хотя такая возможность и существует, это плохая практика, и теперь вы столкнулись с этим вплотную и вам предстоит тот еще геморрой - все статьи исправлять. Делается это правильно следующим образом - берется CSS и в нем прописывается стиль для тега H1 и всех остальных. Тогда и кода лишнего не будет на странице, и отображаться будет как надо, и в материал не нужно го*вно-код вставлять.

Пока писал, появилась запись... Вам сюда.
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

alexanderuss

  • Захожу иногда
  • 179
  • 0 / 1
Re: Заголовки: быть или не быть?
« Ответ #10 : 17.02.2016, 13:03:13 »
Спасибо, это действительно головомка((
*

alexanderuss

  • Захожу иногда
  • 179
  • 0 / 1
Re: Заголовки: быть или не быть?
« Ответ #11 : 17.02.2016, 16:09:09 »
А сколько может стоить помощь в корректировке CSS? Просто самого нет времени вникать катастрофически.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Где может быть редирект

Автор KALIBUS

Ответов: 4
Просмотров: 1026
Последний ответ 12.04.2020, 21:25:26
от SeBun
Маскировка в Google. Может ли быть из-за Responsivizer'a и как решить?

Автор smirnar

Ответов: 0
Просмотров: 870
Последний ответ 24.08.2018, 15:37:58
от smirnar
Заголовки статей без тегов <h1>, <h2>, <h3>! Почему?

Автор hoock

Ответов: 25
Просмотров: 6750
Последний ответ 08.02.2018, 23:14:06
от ChaosHead
Пустым или не пустым должен быть index.html в папке шаблона?

Автор borro

Ответов: 1
Просмотров: 1076
Последний ответ 07.03.2017, 14:18:31
от effrit
Полная переделка сайта - как быть с индексацией ?

Автор ssergeis

Ответов: 1
Просмотров: 1106
Последний ответ 02.02.2015, 10:47:25
от aspidy