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

NepaGoda

  • Захожу иногда
  • 54
  • 0 / 0
В админке JoomShopping в настройках есть пункт количество сопутствующих товаров в ряду..
Ширина делится точно (если инспектировать элемент в опере).. однако если имя товара длиннее.. выводит он тогда не так, т.е. ширина ячеек в ряду (заданная в админке JoomShopping) не зафиксирована..
Код шаблона сопутствующих ниже...
Код
<?php $in_row = $this->config->product_count_related_in_row;?>
<?php if (count($this->related_prod)){?>
<h3 class="jshop-titleheading-2"><?php print _JSHOP_RELATED_PRODUCTS?></h3>
<div class="jshop_list_product">
<div class="jshop realted-products">
<?php foreach($this->related_prod as $k=>$product){?>
<?php if ($k%$in_row==0) print "<div class='product_row clearfix'>";?>
<div width="<?php print 100/$in_row?>%" class = "jshop_categ jshop_related">
<?php include(dirname(__FILE__)."/../".$this->folder_list_products."/".$product->template_block_product);?>
</div>
<?php if ($k%$in_row==$in_row-1) print "</div>";?>
<?php }?>
<?php if ($k%$in_row!=$in_row-1) print "</div>";?>
</div>
</div>
<?php }?>

Подскажите как сделать чтобы и имя было тоже меняющееся по ширине.. переносилось на вторую строчку.. и т.д.
интересно почему настройка в админке JoomShopping не приоритетная!
« Последнее редактирование: 10.10.2012, 08:57:19 от NepaGoda »
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Re: Недочет в сопутствующих товарах
« Ответ #1 : 09.10.2012, 01:35:42 »
потому что такого бреда в принципе не существует -

Код: php
<div width="<?php print 100/$in_row?>%" class = "jshop_categ jshop_related">
Код: php
<div width="33.3333333333%" class="jshop_categ jshop_related">
.....
</div>
*

NepaGoda

  • Захожу иногда
  • 54
  • 0 / 0
Re: Недочет в сопутствующих товарах
« Ответ #2 : 09.10.2012, 02:40:48 »
Исправил.. но ничего не изменилось..

*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Re: Недочет в сопутствующих товарах
« Ответ #3 : 09.10.2012, 02:41:42 »
ничего не изменилось..как было так и есть
<div width="33.3333333333%" class="jshop_categ jshop_related">
*

NepaGoda

  • Захожу иногда
  • 54
  • 0 / 0
Re: Недочет в сопутствующих товарах
« Ответ #4 : 09.10.2012, 02:43:58 »
*

NepaGoda

  • Захожу иногда
  • 54
  • 0 / 0
Re: Недочет в сопутствующих товарах
« Ответ #5 : 09.10.2012, 02:46:06 »
но пишет 33,3%.. но они не 3 в ряд.. как указал в админке..
А если в JoomShopping установить 4 товара.. то будет 25%.. и имя опять не влезет..
как настроить гибкую систему.. чтобы все в ячейке сжималось в зависимости от настройке кол-ва товара в JoomShopping..
*

NepaGoda

  • Захожу иногда
  • 54
  • 0 / 0
Re: Недочет в сопутствующих товарах
« Ответ #6 : 09.10.2012, 02:46:30 »
Заранее не благодарят.. но все равно спасибо..
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Re: Недочет в сопутствующих товарах
« Ответ #7 : 09.10.2012, 02:49:31 »
ну.....(тут обычно вспоминаю Задорного ^-^)....как еще вас надо ткнуть носом чтоб стало видно ошибку в коде?

div width="33.3333333333%" - такого не существует...процент не срабатывает...



*

NepaGoda

  • Захожу иногда
  • 54
  • 0 / 0
Re: Недочет в сопутствующих товарах
« Ответ #8 : 09.10.2012, 03:00:37 »
любой не срабатывает.. пишет процент что указал но имя не переносится на вторую строчку..
шаблон JA Tiris если интересно..

как в анекдоте блин.. может ночь так влияет..
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Re: Недочет в сопутствующих товарах
« Ответ #9 : 09.10.2012, 03:00:56 »
мда, ТС видимо совсем разум потерял после просмотра полуголых теток и другого изврата :)

ТС надо сделать так -
<div style="width:<?php print 100/$in_row?>%" class = "jshop_categ jshop_related">
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Re: Недочет в сопутствующих товарах
« Ответ #10 : 09.10.2012, 03:04:28 »
Перенос слов регулируется с помощью CSS через word-wrap

А вот если одно слово длинное - тут уже надо разбивать его другими средствами, например выводить название не сразу, а прогнав предварительно через функцию посимвольной разбивки, хотя переносы при этом не будут соответствовать правилам русского языка.
Так ведь и в Wordе расстановка переносов не идеальна )
*

NepaGoda

  • Захожу иногда
  • 54
  • 0 / 0
Re: Недочет в сопутствующих товарах
« Ответ #11 : 09.10.2012, 03:06:04 »
Ах-ха..
Скажи кошелек Яндекс.деньги.. вот ничего подобного.. не помогает..
перечислю 200 рублей.. если именно эту строчку надо вставить..
*

NepaGoda

  • Захожу иногда
  • 54
  • 0 / 0
Re: Недочет в сопутствующих товарах
« Ответ #12 : 09.10.2012, 03:10:26 »
Понять бы как осуществлять перенос?  
еще описание подцепляет.. купить и т.п. а хотелось просто имя товара - фотка - цена..
Шаблон JA Tiris файл related.php
Первый кто пришлет правильный вариант файла не поленюсь и перечислю 200 руб на счет.. удобно перекинуть с яндексов своих..
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Re: Недочет в сопутствующих товарах
« Ответ #13 : 09.10.2012, 03:14:20 »
А слабо вступить в их клуб и задавать такие вопросы тех. поддержке?
http://www.joomlart.com/member/signup.php
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Re: Недочет в сопутствующих товарах
« Ответ #14 : 09.10.2012, 03:15:02 »
Не знаю как там в сопутствующих, вот пример для шаблона категории

Спойлер
[свернуть]

« Последнее редактирование: 09.10.2012, 03:32:48 от SDKiller »
*

NepaGoda

  • Захожу иногда
  • 54
  • 0 / 0
Re: Недочет в сопутствующих товарах
« Ответ #15 : 09.10.2012, 03:16:38 »
лучше нашим людям помогать..
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Re: Недочет в сопутствующих товарах
« Ответ #16 : 09.10.2012, 03:17:26 »
SDKiller, ты не понял...
он спрашивает про сопутствующие, там для блока указан уже флоат и word-wrap не нужен, осталось дело за малым - ширина...но ТС упорно не видит ошибки
*

NepaGoda

  • Захожу иногда
  • 54
  • 0 / 0
Re: Недочет в сопутствующих товарах
« Ответ #17 : 09.10.2012, 03:28:27 »
заработало.. не пойму правда отчего оно заработало..
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Re: Недочет в сопутствующих товарах
« Ответ #18 : 09.10.2012, 03:30:46 »
Это же не таблица а div, надо не width="33%", а так

*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Re: Недочет в сопутствующих товарах
« Ответ #19 : 09.10.2012, 03:32:35 »
заработало.. не пойму правда отчего оно заработало..

Пока не наблюдаю

*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Re: Недочет в сопутствующих товарах
« Ответ #20 : 09.10.2012, 03:34:49 »
Так что ELLE всё правильно сказала

Код
<div style="width:<?php print 100/$in_row?>%;" class = "jshop_categ jshop_related">
*

NepaGoda

  • Захожу иногда
  • 54
  • 0 / 0
Re: Недочет в сопутствующих товарах
« Ответ #21 : 09.10.2012, 03:40:47 »
Может подскажите как избавиться от лишних строчек в сопутствующих товарах..
хотелось бы настроить так: имя товара - фотка - цена.. и все..

и на главной странице задать одинаковую высоту для имени товара... чтобы в итоге получалось фотка на против фотки.. цена на против цены с соседней ячейке..
« Последнее редактирование: 13.10.2012, 14:22:01 от NepaGoda »
*

NepaGoda

  • Захожу иногда
  • 54
  • 0 / 0
Re: Недочет в сопутствующих товарах
« Ответ #22 : 09.10.2012, 03:41:53 »
; забыла..
поэтому не сработало
*

NepaGoda

  • Захожу иногда
  • 54
  • 0 / 0
Re: Недочет в сопутствующих товарах
« Ответ #23 : 09.10.2012, 03:43:03 »
вы написали совсем правильно..
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Re: Недочет в сопутствующих товарах
« Ответ #24 : 09.10.2012, 03:43:42 »
Бывает
*

NepaGoda

  • Захожу иногда
  • 54
  • 0 / 0
Re: Недочет в сопутствующих товарах
« Ответ #25 : 13.10.2012, 14:14:32 »
Может кто подскажит какой файл в JoomShoppind отвечает за сопутствующие товары...
Или как убрать в сопутствующих товарах "Отзывов" и "Купить"
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Re: Недочет в сопутствующих товарах
« Ответ #26 : 13.10.2012, 14:18:34 »
components\com_jshopping\templates\ваш_шаблон\product\related.php

*

NepaGoda

  • Захожу иногда
  • 54
  • 0 / 0
Re: Недочет в сопутствующих товарах
« Ответ #27 : 13.10.2012, 14:20:30 »
Код
<?php $in_row = $this->config->product_count_related_in_row;?>
<?php if (count($this->related_prod)){?>
<h3 class="jshop-titleheading-2"><?php print _JSHOP_RELATED_PRODUCTS?></h3>
<div class="jshop_list_product">
<div class="jshop realted-products">
<?php foreach($this->related_prod as $k=>$product){?>
<?php if ($k%$in_row==0) print "<div class='product_row clearfix'>";?>
<div width="<?php print 100/$in_row?>%" class = "jshop_categ jshop_related">
<?php include(dirname(__FILE__)."/../".$this->folder_list_products."/".$product->template_block_product);?>
</div>
<?php if ($k%$in_row==$in_row-1) print "</div>";?>
<?php }?>
<?php if ($k%$in_row!=$in_row-1) print "</div>";?>
</div>
</div>
<?php }?>

Код вот.. только не пойму что убрать..
*

NepaGoda

  • Захожу иногда
  • 54
  • 0 / 0
Re: Недочет в сопутствующих товарах
« Ответ #28 : 13.10.2012, 14:21:14 »
Или изменить.. получается все равно как на фотке выше.. как карточка товара..
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Re: Недочет в сопутствующих товарах
« Ответ #29 : 13.10.2012, 14:21:19 »
components\com_jshopping\templates\ваш_шаблон\product\related.php


не-а, это то что ТС код в старт посте выложил...там же инклюд
 <?php include(dirname(__FILE__)."/../".$this->folder_list_products."/".$product->template_block_product);?>
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

комментарии/отзывы о товарах, вопросы

Автор HerrOber

Ответов: 18
Просмотров: 5795
Последний ответ 05.04.2022, 19:22:17
от GTOnidzuka
Сделать два вывода сопутствующих товаров

Автор Dolphin4ik_1

Ответов: 9
Просмотров: 1009
Последний ответ 29.08.2021, 17:32:31
от kit2m2
Отзывы о товарах для раздела

Автор misteri27

Ответов: 15
Просмотров: 2594
Последний ответ 18.01.2020, 12:31:41
от kupshin
Вставка php кода перед закрывающим тегом </head> только в товарах JoomShopping

Автор Merliut

Ответов: 2
Просмотров: 789
Последний ответ 04.07.2018, 14:30:04
от Merliut
Быстрое добавление сопутствующих товаров

Автор Bozhkov2

Ответов: 5
Просмотров: 836
Последний ответ 28.03.2018, 08:46:24
от nevigen