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

kharol

  • Moderator
  • 1721
  • 217 / 0
1) Это чистая установка? То есть на сайте еще пока ничего нет кроме JomSocial?
Нужно посмотреть firebug-ом, что там за div влез некорректно.
2) Почему ставите не последнюю версию компонента?
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

AnVik

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
1)да! чистая установка. самую первую установил JomSocial и он сразу же с таким косяком был (((
а что за "firebug-ом" где его смотреть?
2)что вы имеете в виду? я вроде на чистую Joomla установил компонент jomsocial  самым первым
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Последняя версия компонента JomSocial 2.2.4 и JomSocial 2.2.5 beta2
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

AnVik

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
у меня Joomla 1.5 на нем поставил JomSocial v1.6.285
*

AnVik

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
пробовал несколько последних версий... они не устанавливаются (((( да и до этого я много пытался установить JomSocial, но только одна установилась!
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Купите лицензионную версию компонента и остановитесь в своих поисках.
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

AnVik

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
наверное вы правы! спасибо! подумаю)))может все таки и куплю)))
*

BrusSENS

  • Новичок
  • 6
  • 0 / 0
Вообще возможно сделать перемещение системных блоков? Понимаю что не бесплатно, поэтому спрошу, сколько это будет стоить?
*

roscostreet

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Ребят видел такой плагин для джумсошиал, называется anycode , типа любой скрипт вставляет в компонент на место модульной позиции, кто нибудь пробовал? я поставил, у меня ничего не изменилось и не произошло, подскажите..
*

rosljk

  • Новичок
  • 2
  • 0 / 0
  НАДЕЮСЬ МНЕ ЗДЕСЬ ПОМОГУТ  !
Я не могу понять, как мне из ЭТОГО ОБЫЧНОГО ШАБЛОНА

сделать этот красивый :(

 !  НАДЕЮСЬ МНЕ ЗДЕСЬ ПОМОГУТ  !

Связь со Мной: admin@vsevo.16mb.com
*

Vikitos

  • Захожу иногда
  • 133
  • 1 / 0
  • Упал ,споткнулся, поднимись и иди дальше!
Всё работает JS 1.6.288   :D

Все слышали я думаю про позиции модулей в социалке:
js_side_top    
js_side_bottom    
js_profile_top
js_profile_bottom
js_profile_side_top
js_profile_side_bottom
js_profile_feed_top
js_profile_feed_bottom
js_groups_side_top
js_groups_side_bottom
Их надо вводить ручками в позицию ЛЮБОГО ОБЫЧНОГО модуля....


Спасибо! подкорректировал на JomSocial 2.0.6 усе работает  :D
Спойлер
[свернуть]
« Последнее редактирование: 24.01.2015, 16:37:20 от Vikitos »
*

arturk

  • Захожу иногда
  • 105
  • 11 / 2
ребята! я вернулся. jooomla 3 JomSocial 3.
проблема!
нет модулей вывода новостей и объявлений групп, помогите найти
мой сайт http://vpervouralske.ru/
*

ademar

  • Новичок
  • 2
  • 0 / 0
В templateDetails.xml прописал позиции модулей из JomSocial 
Вот, например для левой колонки:

Код
<position>js_side_top</position>
<position>js_side_top_stacked</position>
<position>js_side_bottom</position>
<position>js_side_bottom_stacked</position>
<position>js_side_frontpage_top</position>
<position>js_side_frontpage_top_stacked</position>
<position>js_side_frontpage</position>
<position>js_side_frontpage_stacked</position>
<position>js_side_frontpage_bottom</position>
<position>js_side_frontpage_bottom_stacked</position>

Для остальных пишите в ссылке ?tp=1 смотрите и вписывайте.
Заработает.
Можно будет оперировать как обычными модулями
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибки после установки JomSocial.

Автор DKsN

Ответов: 80
Просмотров: 24029
Последний ответ 06.03.2016, 23:55:31
от Amigos
Отображение города | решение

Автор Nevzoral

Ответов: 0
Просмотров: 3249
Последний ответ 08.02.2015, 20:42:22
от Nevzoral
Как включить отображение обсуждений в группах?

Автор ingavr

Ответов: 1
Просмотров: 3626
Последний ответ 09.12.2014, 17:00:59
от ingavr
[Решено] JomSocial Как перенести правую колону (обо мне, последние группы, кто в сети и т.д.) с прав

Автор galemus

Ответов: 15
Просмотров: 7311
Последний ответ 29.11.2014, 23:43:36
от ingavr
Делаем адекватное меню в JomSocial.

Автор nolimits4web

Ответов: 38
Просмотров: 27448
Последний ответ 11.11.2014, 17:19:49
от kasper9820