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

tokamak

  • Новичок
  • 4
  • 0 / 0
Что не так? При подтверждении заказа, появляется форма в АбРокаДаБре
Сайт на J2.5.4 VM2.0.4

Warning: require(__DIR__/invoice_items.php) [function.require]: failed to open stream: No such file or directory in www/***.ru/components/com_virtuemart/views/invoice/tmpl/mail_html_pricelist.php on line 22

Fatal error: require() [function.require]: Failed opening required '__DIR__/invoice_items.php' (include_path='.:/usr/local/php52/lib/php') in www/***.ru/components/com_virtuemart/views/invoice/tmpl/mail_html_pricelist.php on line 22
*

RoooMka

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
  • RoooM
Не усложняйте людям жизнь! Регистрация, аккаунты, профили, Адрес1, адрес доставки2... Кому всё это надо? По собственному опыту скажу - в регистрации что ни аккаунт - то alibaba@... и Имя alibaba и адрес alibaba. Все эти формы - корм для ботов-спамеров.
Пользователь должен получать удовольствие от покупки и минимум головоломок!
Мы убрали регистрацию в Joomla и отключили её и в VirtueMart. ОДНО обязательное поле - мыло, и все! Хочешь - напиши телефон и имя, не хочешь - просто жми дальше оформить заказ... Хочешь заказать доставку? можешь вписать адрес доставки, нет - жми дальше... выбираешь вариант доставки или самовывоз... способ оплаты и подтвердить!
В результате - минимум спама на почту! Увеличение продаж в 6! раз.
Смотрите как реализовано тут http://www.4ashka.com.ua/
Успехов!
С вопросами пишите в скайп - rooomdsgn
*

tigra-uki

  • Давно я тут
  • 565
  • 11 / 0
  • Joom'лiстка
Не усложняйте людям жизнь! Регистрация, аккаунты, профили, Адрес1, адрес доставки2... Кому всё это надо? По собственному опыту скажу - в регистрации что ни аккаунт - то alibaba@... и Имя alibaba и адрес alibaba. Все эти формы - корм для ботов-спамеров.
Пользователь должен получать удовольствие от покупки и минимум головоломок!
Мы убрали регистрацию в Joomla и отключили её и в VirtueMart. ОДНО обязательное поле - мыло, и все! Хочешь - напиши телефон и имя, не хочешь - просто жми дальше оформить заказ... Хочешь заказать доставку? можешь вписать адрес доставки, нет - жми дальше... выбираешь вариант доставки или самовывоз... способ оплаты и подтвердить!
В результате - минимум спама на почту! Увеличение продаж в 6! раз.
Смотрите как реализовано тут http://www.4ashka.com.ua/
Успехов!
С вопросами пишите в скайп - rooomdsgn
Да, то о чем Вы написали верно (хотя прямо к вопросу, мне кажется, отношения не имеет), но здорово, что есть такое решение, которое Вы нашли.
Вы им хотите поделиться? Или что? :)
Слишком сконцентрированное внимание необходимо разбавлять действием.
*

RoooMka

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
  • RoooM
Если ближе к телу, то на чашке - тоже был трабл с последним шагом и адресом доставки.
Решил так - нафига людям писать где он живет, а потом писать куда привезти?
КГБ сбор данных? Просто вместо поля "Адрес доставки" прописал обычное поле "адрес", а в языковом файле заменил Адрес на Адрес доставки.
И все теперь показывает в последнем шаге! Можете проверить. Если нужны файлы - отдам в хорошие руки, стучите в аську, а нет... (я там редко бываю), строчите в скайп rooomdsgn

*

tigra-uki

  • Давно я тут
  • 565
  • 11 / 0
  • Joom'лiстка
Если ближе к телу, то на чашке - тоже был трабл с последним шагом и адресом доставки.
Решил так - нафига людям писать где он живет, а потом писать куда привезти?
КГБ сбор данных? Просто вместо поля "Адрес доставки" прописал обычное поле "адрес", а в языковом файле заменил Адрес на Адрес доставки.
И все теперь показывает в последнем шаге! Можете проверить. Если нужны файлы - отдам в хорошие руки, стучите в аську, а нет... (я там редко бываю), строчите в скайп rooomdsgn
вот когда "ближе к телу" - то все стало на свои места :)
Значит будем знать, что как минимум еще одно решение вопроса существует, и, более того, есть хороший человек, готовый отдать его в хорошие руки, ну или направить в нужном направлении!
По-моему, здорово!
Слишком сконцентрированное внимание необходимо разбавлять действием.
*

A.Nitro

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
немножно возможно не в тему -- но после манипуляций которые были в этой ветке-- обнаружился еще один очень странный эффект.

В админке уже у сформированного заказа нельзя поменять плательщика -- точнее можно он смениться только  -- его данные будут пустыми

PS все вернул назад но не заработало.

Где копать?
*

tigra-uki

  • Давно я тут
  • 565
  • 11 / 0
  • Joom'лiстка
PS все вернул назад но не заработало.
не работает с ранее созданными заказчиками или если создать "свежего" (уже после возврата всего), то тоже не работает?
Слишком сконцентрированное внимание необходимо разбавлять действием.
*

A.Nitro

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
не работает с ранее созданными заказчиками или если создать "свежего" (уже после возврата всего), то тоже не работает?
Все проще! у меня у магазине есть гость -- под ним я оформляю особо ленивых покупателей которые заказывают по телефону -- но очень часто я это уже зарегистрированные люди у которых просто нету доступа в инет в данный момент --- я оформляю заказ на гостя-- и в админке показывается вымышленный адрес  и так далее -- но как я только меняю платильщика-- то платильщик меняеться но все поля с адресом телефоном и так далее оказываються пустыми ---- забавно если потом опять поменять на гостя то адрес опять подтянетьтся
*

tigra-uki

  • Давно я тут
  • 565
  • 11 / 0
  • Joom'лiстка
Все проще! у меня у магазине есть гость -- под ним я оформляю особо ленивых покупателей которые заказывают по телефону -- но очень часто я это уже зарегистрированные люди у которых просто нету доступа в инет в данный момент --- я оформляю заказ на гостя-- и в админке показывается вымышленный адрес  и так далее -- но как я только меняю платильщика-- то платильщик меняеться но все поля с адресом телефоном и так далее оказываються пустыми ---- забавно если потом опять поменять на гостя то адрес опять подтянетьтся
ухты, однако, схема :)
насчет адресов - возможно, логика того что происходит, есть, но, как-то, пока мысли не приходят, увы.
Слишком сконцентрированное внимание необходимо разбавлять действием.
*

Art_i

  • Захожу иногда
  • 143
  • 5 / 0
Доброго времени суток. Прошу помощи в подсказке. Как вывести отмеченные пункты "ВАРИАНТ ДОСТАВКИ и ТАРИФ ДОСТАВКИ" при оформлении заказа?
Joomla 1.5 , VirtueMart 1.1.4.   
В каком файле смотреть?
Спасибо.

*

fsv

  • Moderator
  • 2781
  • 410 / 2
Как вывести отмеченные пункты "ВАРИАНТ ДОСТАВКИ и ТАРИФ ДОСТАВКИ" при оформлении заказа?  Joomla 1.5 , VirtueMart 1.1.4.   
http://pixs.ru/showimage/0b7e0743pn_9799057_8424269.png
Судя по скриншоту, вы пытаетесь сделать одностраничное оформление. Зачем при этом дублировать информацию? Вообще удалите блок "Проверьте введенные данные..." в get_final_confirmation.tpl.php.
Если очень надо так, как на скриншоте, надо дописывать на javascript - по клику по радио вставлять в подготовленный в get_final_confirmation.tpl.php div соответствующий HTML.
Веб-разработка: заказ. Только новая разработка.
*

Art_i

  • Захожу иногда
  • 143
  • 5 / 0
fsv, спасибо большое за ответ. Попробую теперь дописать javascript . Конечно в этом я не силен, но попытаюсь. Уже хоть знаю в каком файле это все делать.
Спасибо.
*

Art_i

  • Захожу иногда
  • 143
  • 5 / 0
Доброго времени суток. Подскажите пожалуйста в какой файл отвечает за вывод этого
Чтобы дописать javascript в get_final_confirmation.tpl.php  - по клику по радио .
Спасибо.
*

fsv

  • Moderator
  • 2781
  • 410 / 2
Подскажите пожалуйста в какой файл отвечает за вывод этого http://img16.imageshack.us/img16/8303/vg6i.jpg
\components\com_virtuemart\themes\default\templates\checkout\get_shipping_method.tpl.php
\components\com_virtuemart\themes\default\templates\checkout\list_shipping_methods.tpl.php
\administrator\components\com_virtuemart\classes\ps_checkout.php   function list_shipping_methods
+ используемые "модули" доставок из \administrator\components\com_virtuemart\classes\shipping\
Веб-разработка: заказ. Только новая разработка.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Для одного товара несколько активных цен!

Автор RodrigeZ

Ответов: 7
Просмотров: 6333
Последний ответ 24.04.2017, 01:22:33
от VIPersone
Как настроить уведомление о новом заказе?

Автор mrfruze

Ответов: 5
Просмотров: 4912
Последний ответ 02.03.2015, 14:58:59
от redsowet
Не работает авторизация на сайте

Автор ranaza

Ответов: 4
Просмотров: 1433
Последний ответ 10.12.2012, 15:38:18
от dstavropolskij
При регистрации не сообщает что email или логиl

Автор SMVVK

Ответов: 0
Просмотров: 1303
Последний ответ 01.10.2012, 20:14:55
от SMVVK
[РЕШЕНО]Не выводятся доступные варианты о

Автор SMVVK

Ответов: 1
Просмотров: 1316
Последний ответ 07.01.2012, 13:05:12
от SMVVK