Новости Joomla

Свои типы полей в 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 для атрибута addfieldprefixnamespace 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 #разработка

Свои типы полей в 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 Гость просматривают эту тему.
  • 12 Ответов
  • 1558 Просмотров
*

Adm1nspb

  • Захожу иногда
  • 112
  • 0 / 0
Подскажите пожалуйста, как в шаблоне Joomlart ja_purity_ii сделать левую колонку пошире?
Нужна ширина колонки 210 пикселей....ну или 35%

Не могу найти что править... :(
« Последнее редактирование: 19.09.2013, 14:41:42 от Adm1nspb »
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: Ja Purity II и левая колонка
« Ответ #1 : 18.09.2013, 12:30:02 »
судя по строке ---- <div id="ja-left" class="column sidebar" style="width:25%"> --- ширина устанавливается в настройках самого шаблона
*

Adm1nspb

  • Захожу иногда
  • 112
  • 0 / 0
Re: Ja Purity II и левая колонка
« Ответ #2 : 18.09.2013, 13:14:45 »
Нет там таких настроек...И честно говоря совсем непонятно где их искать в коде((((
*

SK

  • Живу я здесь
  • 2155
  • 164 / 0
Re: Ja Purity II и левая колонка
« Ответ #3 : 18.09.2013, 13:21:14 »
Нет там таких настроек...И честно говоря совсем непонятно где их искать в коде((((
Вам FireBug поможет в этом вопросе
*

Adm1nspb

  • Захожу иногда
  • 112
  • 0 / 0
Re: Ja Purity II и левая колонка
« Ответ #4 : 18.09.2013, 13:39:53 »
Давно им пользуюсь. Не найти....=(
Создается ощущение что это задается где-то в плагинах, но не в самом шаблоне...но и там - не вижу =(


Если вы думаете что ситуация решается легко - попробуйте поменять ту строчку с 25% которую можно в FireBug увидеть - ничего не изменится))

PS Для тех кто не в курсе - говорю про этот (http://www.joomlart.com/forums/downloads.php?do=cat&id=402) шаблон для J2.5
« Последнее редактирование: 18.09.2013, 13:43:09 от Adm1nspb »
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: Ja Purity II и левая колонка
« Ответ #5 : 18.09.2013, 14:08:13 »
есть решение аналогичной ситуации -Re: Левое меню на JA_Purity_II, как расширить?
Цитировать
В администранивной панели откройте шаблон JA Purity II. Обратите внимание, что в свойствах шаблона появились новые параметры - ширина колонок.
*

Adm1nspb

  • Захожу иногда
  • 112
  • 0 / 0
Re: Ja Purity II и левая колонка
« Ответ #6 : 18.09.2013, 14:59:14 »
Видимо вы про этот метод.
Цитировать
1. Откройте файл \templates\ja_purity_ii\templateDetails.xml и после строки

Код:
<param name="ja_screen-fluid-fix-ja_screen_width" type="text" default="" label="Specified width" description="SPECIFIED WIDTH DESCRIPTION" />

вставьте несколько строк:

Код:
<param name="left1_column" type="text" default="10" label="Left 1 column width" description="" />
<param name="left2_column" type="text" default="10" label="Left 2 column width" description="" />
<param name="right1_column" type="text" default="20" label="Right 1 column width" description="" />
<param name="right2_column" type="text" default="20" label="Right 2 column width" description="" />
<param name="inset1_column" type="text" default="20" label="Inset 1 column width" description="" />
<param name="inset2_column" type="text" default="20" label="Inset 2 column width" description="" />

Сохраните этот файл.

2. Откройте файл с описанием вашего макета. По умолчанию, это - \templates\ja_purity_ii\layouts\default.php. Если Вы установили другой макет, то откройте соответствующий файл. Найдите вот такую группу строк:

Код:
$positions = array (
'left1'                    =>'left',
'left2'                    =>'',
'left-mass-top'            =>'',
'left-mass-bottom'        =>'',
'right1'                =>'right',
'right2'                =>'',
'right-mass-top'        =>'',
'right-mass-bottom'        =>'',
'content-mass-top'        =>'',
'content-mass-bottom'    =>'',
'content-top'            =>'',
'content-bottom'        =>'',
'inset1'                =>'',
'inset2'                =>''
);

После этих строк вставьте новые строки:

Код:
$this->customwidth('right1', $this->_tpl->params->get("right1_column"));
$this->customwidth('right2', $this->_tpl->params->get("right2_column"));
$this->customwidth('left1', $this->_tpl->params->get("left1_column"));
$this->customwidth('left2', $this->_tpl->params->get("left2_column"));
$this->customwidth('inset1', $this->_tpl->params->get("inset1_column"));
$this->customwidth('inset2', $this->_tpl->params->get("inset2_column"));

Сохраните файл.

3. В администранивной панели откройте шаблон JA Purity II. Обратите внимание, что в свойствах шаблона появились новые параметры - ширина колонок.

К сожалению видимо версия этого шаблона была в ие времена иная. В той которая у меня нет даже строчки чтоб пункт 1 совета сделать, а п2 - нет даже такой папки в шаблоне, не говоря уже о файлах.

Шаблон брался с сайта разработчика(((
« Последнее редактирование: 18.09.2013, 15:05:28 от Adm1nspb »
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: Ja Purity II и левая колонка
« Ответ #7 : 18.09.2013, 15:53:40 »
да уж, ну и делишки! Судя по описанию
Спойлер
[свернуть]
разработчик уж намудрил ))) Но тут есть вот, что
Цитировать
Здесь параметр colw1=240 устанавливает ширину первой колонки, а параметр colw3=360 - ширину третьей колонки.
с картинками, может это поможет?
*

SK

  • Живу я здесь
  • 2155
  • 164 / 0
Re: Ja Purity II и левая колонка
« Ответ #8 : 18.09.2013, 16:24:30 »
Честно говоря, с этой версией шаблона для Joomla 2.5 не работал плотно, только для Joomla 1.5 и там ширину спокойно менял.
Ради интереса глянул шаблон для 2.5
А разве в файле layout.css этот блок не отвечает за ширину левой и правой колонки?
Цитировать
/* Left Column ---*/
#ja-left .ja-l2 .ja-left1, #ja-left .ja-l2 .ja-left2 { width: 50%; }
#ja-left .ja-l1 .ja-col { width: 100%; }

/* Right Column ---*/
#ja-right { float: right; }
#ja-right .ja-r2 .ja-right1, #ja-right .ja-r2 .ja-right2 { width: 50%; }
#ja-right .ja-r1 .ja-col { width: 100%; }
*

Adm1nspb

  • Захожу иногда
  • 112
  • 0 / 0
Re: Ja Purity II и левая колонка
« Ответ #9 : 18.09.2013, 16:49:12 »
Пробовал написать например так

Код
/* Left Column ---*/
#ja-left .ja-l2 .ja-left1, #ja-left .ja-l2 .ja-left2 { width: 75%; }
#ja-left .ja-l1 .ja-col { width: 150%; }

/* Right Column ---*/
#ja-right { float: right; }
#ja-right .ja-r2 .ja-right1, #ja-right .ja-r2 .ja-right2 { width: 75%; }
#ja-right .ja-r1 .ja-col { width: 150%; }

Да и вообще разные значения пробовал подставлять...указывать наприер в px, но ничего не помогает.
Пробовал даже менять эти значения не только тут, но и помимо того как здесь, еще и в
файлах plugins\system\jat3\jat3\base-themes\default\css , но тоже никакого толка ...

Сдаюсь - помогите пожалуйста >:(
*

SK

  • Живу я здесь
  • 2155
  • 164 / 0
Re: Ja Purity II и левая колонка
« Ответ #10 : 18.09.2013, 17:16:35 »
Пробовал написать например так

Код
/* Left Column ---*/
#ja-left .ja-l2 .ja-left1, #ja-left .ja-l2 .ja-left2 { width: 75%; }
#ja-left .ja-l1 .ja-col { width: 150%; }

/* Right Column ---*/
#ja-right { float: right; }
#ja-right .ja-r2 .ja-right1, #ja-right .ja-r2 .ja-right2 { width: 75%; }
#ja-right .ja-r1 .ja-col { width: 150%; }

Да и вообще разные значения пробовал подставлять...указывать наприер в px, но ничего не помогает.
Пробовал даже менять эти значения не только тут, но и помимо того как здесь, еще и в
файлах plugins\system\jat3\jat3\base-themes\default\css , но тоже никакого толка ...

Сдаюсь - помогите пожалуйста >:(
Так у этого шаблона включено кэширование.
Если вносите изменения в файлы CSS шаблона, то надо либо отключить кэширование в настройках шаблона, либо после каждого изменения файлов CSS шаблона нажимать на кнопку очистки кэша - гляньте у себя в админ. панели вверху справа эту кнопку, она кажись называется JAT3 Clean Cache
*

Adm1nspb

  • Захожу иногда
  • 112
  • 0 / 0
Re: Ja Purity II и левая колонка
« Ответ #11 : 18.09.2013, 17:57:13 »
Может после установки и было включено, но я выключил в настройках шаблона сразу после установки.. :(
....кнопку жму регулярно...
« Последнее редактирование: 18.09.2013, 18:01:49 от Adm1nspb »
*

Adm1nspb

  • Захожу иногда
  • 112
  • 0 / 0
Re: Ja Purity II и левая колонка
« Ответ #12 : 18.09.2013, 20:35:55 »
Решение найдено:
В настройках шаблона, при редактировании используемого профиля поправить строчку
<blocks name="middle" colwidth="20">
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ширина модулей в зависимости от количества опубликованных позиций (Решение)

Автор Fedor Vlasenko

Ответов: 17
Просмотров: 10427
Последний ответ 07.01.2020, 14:46:05
от Progressive
JA Purity 2 - кракозябры на сайте

Автор korolin

Ответов: 5
Просмотров: 2427
Последний ответ 17.07.2016, 15:23:39
от Belfry
Ширина сайта в шаблоне YOO Cloud от студии YOO Theme

Автор urry

Ответов: 1
Просмотров: 1587
Последний ответ 27.06.2016, 21:18:51
от AlekVolsk
не работает разделение на колонки в "блоге категорий".

Автор Algemir

Ответов: 7
Просмотров: 9747
Последний ответ 25.04.2016, 08:58:33
от Омск
Шаблон business8 - меню в две колонки как?

Автор Shmigul

Ответов: 0
Просмотров: 1094
Последний ответ 09.05.2015, 12:19:19
от Shmigul