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

Sulpher

  • Живу я здесь
  • 2126
  • 402 / 16
  • Шаблоны и расширения Joomla
Re: Заголовки страниц в браузере
« Ответ #30 : 18.01.2013, 15:43:11 »
возможно ли реализировать для К2 ?
А там нет лишнего параметра, насколько я помню. Нужно вводить доп.поле, а это уже хак компонента.
*

Sulpher

  • Живу я здесь
  • 2126
  • 402 / 16
  • Шаблоны и расширения Joomla
Re: Заголовки страниц в браузере
« Ответ #31 : 05.02.2013, 21:39:07 »
Хотя если задействовать поле "описание картинки..." и само описание удалить из шаблона, зато подставлять в title? Думаю, так можно.
*

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
Re: Заголовки страниц в браузере
« Ответ #32 : 06.02.2013, 10:37:36 »
Можно сделать по аналогии с http://joomlaforum.ru/index.php/topic,224422.0.html
Там я храню эти данные в json-массиве вместе с метатегами (столбец params)
В принципе для К2 я давно сделал, но в паблик не выкладывал, хотел за 5$ отдавать на JED, но руки не дошли.
*

Sedoy

  • Давно я тут
  • 897
  • 87 / 10
  • Интересно,в какой кодировке пишут врачи?
Re: Заголовки страниц в браузере
« Ответ #33 : 07.02.2013, 12:39:04 »
для j1.5 есть хак
http://nauca.com.ua/hack/kak-izmenit-title-v-joomla-i-upravlenie-meta-tegami-v-statyax-joomla/

наверно, по аналогии, можно сделать такое и для остальных версий
Что б правильно задать вопрос - нужно знать на него ответ!
FAQ по Joomla!
Где скачать шаблоны Joomla Статьи и обзоры Желаю Вам здоровья в личной жизни - живите долго и часто :)
*

pretzel

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
Как сделать, чтобы заголовок статьи/категории копировался и в Browser Title и в заголовок страницы Н1, а так же еще и в атрибут alt картинки статьи fulltext и intro?
Пробовал заменять по адресу templates/Ваш шаблон/html/com_content/article/default.php
Код
<h1>
<?php echo $this->escape($this->params->get('page_heading')); ?>
</h1>
на
Код
<h1>
<?php echo $this->item->title; ?>
</h1>
Н1 не изменился.
*

КонстантинАБ

  • Новичок
  • 1
  • 0 / 0
Здравствуйте. Имеется следующая проблема:
Не могу сделать уникальные титлы в каталогах интернет магазина (вот страничка для примера http://z177-reno.ru/chodovay.html).
Причем, требуется сделать титлы без привязки к заголовкам страниц.
Можно ли на каждой страницы в под категории сделать разные титлы?
Например: на этой страницы (http://z177-reno.ru/chodovay.html) один титл, а на следующей (http://z177-reno.ru/chodovay/results,19-18.html)
Помогите пожалуйста! !
Верисия Joomla 2.5.14
*

tsvikaleksey

  • Новичок
  • 9
  • 0 / 0
Братцы помогите, Joomla 3.2.1. не могу поменять титл категории. Есть пункт меню, в нем более десятка категорий. и у каждой из этих категорий один и тот же титл — название пункта меню. Хотя в самой категории есть пункт Page title — но что бы я туда не вписывал, все равно данная категория присваивает титл пункта меню, в котором находится. В итоге все категории с одинаковым title. Что делать?
*

tsvikaleksey

  • Новичок
  • 9
  • 0 / 0
Все нормально, разобрался! Поменял конструкцию меню, теперь для каждой категории сделал подпункт в меню. И теперь у меня в каждом подпункте - 1 категория, title которой я меняю через этот самый подпункт меню, в котором она находится.
*

rolex12

  • Новичок
  • 8
  • 0 / 0
Спасибо Fedor Vlasenko, все сделал как описано - отличный результат!
Только один вопрос - будет ли ПС распознаваться как Title или как алиас?
*

GromoOtVot

  • Захожу иногда
  • 60
  • 0 / 0
 :Dгениально)))) спасибо, все получилось)))
*

Miheich

  • Новичок
  • 3
  • 0 / 0
Приветствую всех! Есть одна проблема, пожалуйста помогите ее решить: использую компонент mosets tree, так в нем использую плагин "Joomla 2.5 Content Title" на категориях работает все нормально а вот в материале этого компонента не отображается даже поле ввода title.  Как можно с этим разобраться?
*

zveregg

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
ELLE правильно написала.
Для материалов
Копируем файл из папки components /com_content/views/article/tmpl/default.php в папку
 /templates/Ваш шаблон/html/com_content/article/default.php
Данная процедура делается для того, чтобы ваши изменения сохранились при обновлении системы
Добавляем вышеприведенный код. Тем кто спросит куда вставлять - в самый конец файла(или куда захочешь)
Код: php-brief
<?php
$document = JFactory::getDocument();
if ($this->item->created_by_alias) $document->setTitle($this->item->created_by_alias);
?>
Настройки менеджера материалов - Форма редактирования - Показывать параметры публикации -Да
Так должно быть, для того, чтоб в материале возможно было указывать Псевдоним автора. Вкладка Параметры публикации
Для категорий
Копируем файл из папки components /com_content/views/category/tmpl/blog.php в папку
 /templates/Ваш шаблон/html/com_content/category/blog.php
Добавляем вышеприведенный код. Тем кто спросит куда вставлять - в самый конец файла(или куда захочешь)
Код: php-brief
<?php
$document = JFactory::getDocument();
if ($this->category->note) $document->setTitle($this->category->note);
?>

скажите пожалуйста, а как мне поле автор заменить на meta-title?
*

zveregg

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
дело в том что алиас мне ещё понадобится может, а title надо отдельно редактировать, может так будет верно:
<?php
$document = JFactory::getDocument();
if ($this->item->created_by_autor) $document->setTitle($this->item->created_by_autor);
?>

или нет?
*

Kasatka2

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Как раз в тему, зашла на этот форум с тем же вопросом, и вот !!)))
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Решение - Редирект со страниц AMP на обычные

Автор draff

Ответов: 2
Просмотров: 1148
Последний ответ 20.11.2021, 17:03:03
от draff
Нет тегов title и descripton

Автор dvcool

Ответов: 0
Просмотров: 1133
Последний ответ 14.01.2020, 13:09:55
от dvcool
Настройка title к страницам пагинации на Joomla 3

Автор robotwerder

Ответов: 4
Просмотров: 4549
Последний ответ 02.02.2019, 12:12:45
от Gerostrat
Как прописать title?

Автор maronix

Ответов: 8
Просмотров: 1676
Последний ответ 23.07.2018, 14:24:15
от ankero
Расположение отзывов на страницах категорий

Автор Stasweb

Ответов: 0
Просмотров: 1072
Последний ответ 19.06.2018, 06:16:06
от Stasweb