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

olicheg

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Медиа-менеджер
« : 31.07.2015, 10:36:52 »
Добрый день. Подскажите как добавить alt и title для картинок в Медиа-менеджере.

Спасибо.
*

olicheg

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Re: Медиа-менеджер
« Ответ #1 : 31.07.2015, 11:27:44 »
Народ, никто не работал компонентом Медиа-менеджер
*

Gordon Freeman

  • Захожу иногда
  • 117
  • 7 / 0
Re: Медиа-менеджер
« Ответ #2 : 31.07.2015, 11:54:27 »
Народ, никто не работал компонентом Медиа-менеджер

Я ни когда не работал с этим компонентом, но знаю куда что прописать...

Путь: /administrator/components/com_media/views/medialist/tmpl

Файл: thumbs_img.php - Эскизы (29 строка)
Файл: details_img.php - Таблица (23 строка)
Действие: Замени код на нижеуказанный
Код
<?php echo JHtml::_('image', COM_MEDIA_BASEURL . '/' . $this->_tmp_img->path_relative, JText::sprintf('COM_MEDIA_IMAGE_TITLE', $this->_tmp_img->title, JHtml::_('number.bytes', $this->_tmp_img->size)), 'title="текст title"', array('width' => $this->_tmp_img->width_60, 'height' => $this->_tmp_img->height_60)); ?>
*

olicheg

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Re: Медиа-менеджер
« Ответ #3 : 31.07.2015, 12:20:12 »
Поменяла - ничего не изменилось((
*

Gordon Freeman

  • Захожу иногда
  • 117
  • 7 / 0
Re: Медиа-менеджер
« Ответ #4 : 31.07.2015, 12:22:04 »
Поменяла - ничего не изменилось((

Надо на саму картинку
Код
<img>
или на ссылку
Код
<a>
*

olicheg

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Re: Медиа-менеджер
« Ответ #5 : 31.07.2015, 12:27:11 »
Цитировать
вот так    <a class="img-preview" href="<?php echo JHtml::_('image', COM_MEDIA_BASEURL . '/' . $this->_tmp_img->path_relative, JText::sprintf('COM_MEDIA_IMAGE_TITLE', $this->_tmp_img->title, JHtml::_('number.bytes', $this->_tmp_img->size)), 'title="текст title"', array('width' => $this->_tmp_img->width_60, 'height' => $this->_tmp_img->height_60)); ?></a>
а выводится

Цитировать
<a href="/standart/1-komnatnye/35-lenina-9">
         Ленина 9<img src="../../images/flats/lenina9/1.jpg">      </a>

а надо бы:

Цитировать
<a href="/standart/1-komnatnye/35-lenina-9">Ленина 9
         <img src="../../images/flats/lenina9/1.jpg" title="Ленина 9" alt="Ленина 9">      </a>
*

Gordon Freeman

  • Захожу иногда
  • 117
  • 7 / 0
Re: Медиа-менеджер
« Ответ #6 : 31.07.2015, 12:31:47 »
А чего ты вставляешь картинку в тег
Код
href=""

Там не надо ничего мудрить просто дописать тег title...
какой вид используешь? Эскиз или таблицу...
*

olicheg

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Re: Медиа-менеджер
« Ответ #7 : 31.07.2015, 12:34:46 »
Я и тот и тот вариант попробовала
*

olicheg

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Re: Медиа-менеджер
« Ответ #8 : 31.07.2015, 12:36:17 »
так. стоп. все получилось. но это только в админке. а мне надо для Seo чтобы прописывались на сайте
*

olicheg

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Re: Медиа-менеджер
« Ответ #9 : 31.07.2015, 12:38:08 »
вот сам сайт http://vip-kvartira.by/standart/2-komnatnye/36-nezavisimosti-23. И привьюшки без Alt и без Title
*

Gordon Freeman

  • Захожу иногда
  • 117
  • 7 / 0
Re: Медиа-менеджер
« Ответ #10 : 31.07.2015, 12:40:58 »
вот сам сайт http://vip-kvartira.by/standart/2-komnatnye/36-nezavisimosti-23. И привьюшки без Alt и без Title

Так здесь медиа менеджер вообще не причем, Он работает только для админки. Каким образом выводишь эти картинки. Какой компонент!.
*

olicheg

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Re: Медиа-менеджер
« Ответ #11 : 31.07.2015, 12:50:48 »
У меня идет через модуль Материал-Новости, там я добавляю категории фото и закрепляю за страницами. а на материалах которые отображают этот модуль я прописываю  id этого модуля <h3>Другие STANDART-квартиры</h3>
<p>{module 114}</p>
*

Gordon Freeman

  • Захожу иногда
  • 117
  • 7 / 0
Re: Медиа-менеджер
« Ответ #12 : 31.07.2015, 12:58:11 »
Так ты все это выводишь с помощью модуля в материалах...
*

olicheg

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Re: Медиа-менеджер
« Ответ #13 : 31.07.2015, 13:07:27 »
получается так - но в модуле нет никаких картинок. поэтому я предположила;-)), что все настройки через медиа. вот пример модуля 114
*

olicheg

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Re: Медиа-менеджер
« Ответ #14 : 31.07.2015, 13:11:08 »
а вот - вставляется папка картинок вот так: {vsig}flats/zolotay_gorka14{/vsig} это как раз папка с картинками на сервере, сделанная пр и помощи Медиа-менеджер
*

olicheg

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Re: Медиа-менеджер
« Ответ #15 : 31.07.2015, 13:21:47 »
то есть получается плагин Very Simple Image Gallery
*

olicheg

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Re: Медиа-менеджер
« Ответ #16 : 31.07.2015, 14:09:35 »
Gordon Freeman. Спасибо за помощь!! Получилось все. Просто оставлю это здесь.

Цитировать
{vsig}flats/lenina9{/vsig}
 {vsig_c}0|1.jpg|Ленина 9|Ленина 9|{/vsig_c}
 {vsig_c}0|2.jpg|2nd title|2nd text|{/vsig_c}
 {vsig_c}0|3.jpg|3rd title|3rd text|{/vsig_c}
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Expose невозможно войти в менеджер альбомов

Автор Chuvaschow

Ответов: 0
Просмотров: 1185
Последний ответ 07.12.2012, 11:02:24
от Chuvaschow