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

Restorator

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Товарищи, может ктото сталкивался, установив этот хак, в Opera поля формы не активны, те заполнить нельзя, во всех остальных все нормально. Где копать?
*

kiddywear

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Столкнулся с тем что, если делать заказ с регистрацией после заказов без регистрации, то в админ панели данный заказ (с регистрацией), отображается после незарегистрированных (сделанных без регистрации) заказов. Плюс к этому заказы без регистрации с неуказанным email на почту не приходят. Кто сталкивался с данной проблемой?
*

kiddywear

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
С email решено, был невнимательным прописал мыло для $vendor_email['from'], а вот с админкой не пойму почему последующие заказы с регистрацией отображаются до заказов незарегистрированных пользователей? Т.е. сначало идут заказы (сверху вниз) например 10, 9, 8, 7 (незарегистрированные), далее 13, 12,11.
« Последнее редактирование: 21.12.2012, 03:22:11 от kiddywear »
*

katjuha6

  • Захожу иногда
  • 173
  • 0 / 0
Всем здравствуйте и с наступившими!
вопрос: хак работает, все заносится в базу. НО! не отправляются письма ни админу, ни покупателю. где копать?


вопрос снят. у хостера не включена функция отправки писем.
проверила на другом хостинге - все работает на "Ура!"


может ли кто-нибудь подсказать как в форму вставить дополнительное поле. предположим, список вариантов доставки с чекбоксами.  ;)
« Последнее редактирование: 09.01.2013, 04:01:24 от katjuha6 »
*

katjuha6

  • Захожу иногда
  • 173
  • 0 / 0
с предыдущими проблемами разобралась. но возникла другая проблема:
при смене валюты магазина общая стоимость за все заказы выводится в выбранной валюте, а стоимость единицы товара в основной валюте магазина. как это поправить?
*

ABOC

  • Новичок
  • 6
  • 0 / 0
При выборе "Отправить вам копию?" не пиходет подтверждение заказа для админа но клиенту приходит и наоборот если отказываешся от "Отправить вам копию?" то клиенту соответственно не приходит но админу уже приходит?

В чём пичина, где рыть?
*

magmag

  • Осваиваюсь на форуме
  • 38
  • 2 / 0
При выборе "Отправить вам копию?" не пиходет подтверждение заказа для админа но клиенту приходит и наоборот если отказываешся от "Отправить вам копию?" то клиенту соответственно не приходит но админу уже приходит?

В чём пичина, где рыть?
Нужно настроить интервал между отправкой писем. Наверное хостинг не разрешает отправку 2-х писем одновременно.

Нужно вставить:
Код
sleep(1);

между отправками писем
*

kpk17

  • Захожу иногда
  • 257
  • 2 / 0
Зайди в настройки-оформление заказа и поставь там галку на "Пожалуйста, выбирите адрес доставки!" и должно показывать
можно чтобы работало без выбора адреса доставки?
или подскажите пожалуйста в каком файле редактировать вывод этих полей

Контактная информация плательщика
Компания:    
Полное имя:    triton kl
Адрес:    kl
     kl,
Russian Federation
Телефон:    
Факс:    
E-mail:    triton@mail.ru
(Изменить адрес)


Информация о доставке
Пожалуйста, выбирите адрес доставки!

ГДЕ УДАЛИТЬ СЛОВАУ КОМПАНИЯ, ФАКС,
галки о выводе данных полей все сняты
*

kpk17

  • Захожу иногда
  • 257
  • 2 / 0
изменить внешний вывод кнопочек кто может за денежку? ВОЙТИ, КУПИТЬ БЕЗ РЕГИСТРАЦИИ и сделать по умолчанию открытую вкладку - КУПИТЬ БЕЗ РЕГИСТРАЦИИ
*

newjey

  • Захожу иногда
  • 405
  • 2 / 0
Подскажите, для Google аналитикса (для отслеживания оформления сделки) после оформления покупки какую страницу указывать, у меня после введения всех данных и нажатия на кнопку оформить заказ кидает на страницу домен/index.php или как изменить адрес этой страницы?
*

newjey

  • Захожу иногда
  • 405
  • 2 / 0
Подскажите, как изменить адрес страницы на которую попадаешь после оформления заказа, у меня она сейчас site.com.ua/home/index.php
а надо допустим на site.com.ua/home/compliet.php(html)?
*

gaalferov

  • Захожу иногда
  • 75
  • 9 / 0
  • ...
Добрый день. Вижу, что тема старая, но думаю актуальность в неё ещё есть.
Недавно осуществлял данное на одном из сайтов и пришлось изрядно помучатся с данной доработкой, ну и самое главное хотелось бы поделится результатом своей работы.
Что я собственно изменил? Заказ теперь формируется от админа и нормально показывается в админке, сообщения пользователю и администратору также отправляются в нормальном виде и сделаны в отдельной функции, добавлена загрузка файла, а также jQuery Validation. Ну и плюс помелочам.
Файлы прикладываю.
« Последнее редактирование: 30.05.2014, 14:37:44 от gaalferov »
*

xoxma_beer

  • Осваиваюсь на форуме
  • 21
  • 1 / 0
Цитата: gaalferov
А как checkout.without_register_form.php тут добавить выбор оплаты?
Поставил робокассу, тесты проходят, но нужно, чтобы оплачивали робокассой =(

Поставил ваш мод, не выводит способ оплаты, стоит только робокасса активная, но её нет =(
Не появляется заказ в админке, на майл приходит письмо с нулевой ценой, нет модели даже, ни артикула, ничего...
http://mobilhits.ru
« Последнее редактирование: 03.08.2014, 02:17:33 от xoxma_beer »
*

gaalferov

  • Захожу иногда
  • 75
  • 9 / 0
  • ...
Держите новую версию. Файл уже изрядно изменился.
Сделана скрытая регистрация пользователя, либо если есть пользователь с таким email, то на него вешается заказ, а не на админа как раньше.
Плюс исправлена куча багов...
Выбора оплаты нет, так как форма должны быть быстрой и понятной, для всех.
Доработать там не проблема, сделать запрос  базу, получить все виды оплат и потом добавить к заказу. А если вы хотите сразу онлайн оплату, то это уже совсем другая история......
« Последнее редактирование: 03.08.2014, 10:40:27 от gaalferov »
*

xoxma_beer

  • Осваиваюсь на форуме
  • 21
  • 1 / 0
А если вы хотите сразу онлайн оплату, то это уже совсем другая история......
Дело всё в том, что мне нужно было связать с робокассой, что я и сделал модулем, но не знал, что там стоит этот хак, как потом выяснилось.
Нужно сделать либо эту форму, либо оплату робокассой выбор.
Сможете помочь?
*

gaalferov

  • Захожу иногда
  • 75
  • 9 / 0
  • ...
Дело всё в том, что мне нужно было связать с робокассой, что я и сделал модулем, но не знал, что там стоит этот хак, как потом выяснилось.
Нужно сделать либо эту форму, либо оплату робокассой выбор.
Сможете помочь?
Бесплатно нет. За 50$ подключу вам робокасу к данному хаку, более подробно пишите в личу или скайп - gaalferov

Либо воспользоваться плагином Beagler, его стоимость 1000 рублей, правда не знаю подойдет ли он вам полностью или нет.
http://beagler.ru/virtuemart/plagin-bystrogo-zakaza-dlya-joomla-1-5-virtuemart-1-x.html
« Последнее редактирование: 03.08.2014, 14:39:59 от gaalferov »
*

xoxma_beer

  • Осваиваюсь на форуме
  • 21
  • 1 / 0
Благодарю за ответ, передал ваше сообщение заказчику.
*

terr

  • Давно я тут
  • 824
  • 14 / 6
  • Ученик html-я
Код
Содержание заказа
Количество Название Артикул Цена Промежуточный итог
 
Промежуточный итог : 0.00 Руб.
Стоимость доставки и плата за отгрузку : 0.00 Руб.
Итого: 0.00 Руб.

не отображает что заказали
« Последнее редактирование: 27.10.2014, 12:57:04 от terr »
*

terr

  • Давно я тут
  • 824
  • 14 / 6
  • Ученик html-я
Скинте старые файлы а то новые не работчие, инфы о заказе в админке нет, Содержание заказа пустое. Очередность заказов всегда 0
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Отобразить кол-во товаров из всех подкатегорий V1.1.3

Автор bazic

Ответов: 19
Просмотров: 13668
Последний ответ 18.09.2014, 06:39:33
от fila61
[Решено] Добавление Watermark к фото товара V1.0.15 V1.1.3

Автор mickymouse

Ответов: 52
Просмотров: 22636
Последний ответ 13.06.2013, 01:04:46
от richman
[Решено] Как изменить ,товаров в наличии 1 на "есть в наличии" V1.0.15 V1.1.3

Автор ButuzOFF

Ответов: 93
Просмотров: 41074
Последний ответ 17.05.2013, 21:10:44
от sa1981
[Решено] Вывод товаров из подкатегорий в родительскую категорию V1.0.15 V1.1.3

Автор baldesarini

Ответов: 273
Просмотров: 96866
Последний ответ 08.04.2013, 15:20:07
от asterix_kpi
[Решено] Вывод прикрепленных файлов в списке товаров V1.0.15 V1.1.3

Автор a69

Ответов: 13
Просмотров: 11465
Последний ответ 20.02.2013, 23:41:04
от kreolka_8