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

pyh

  • Захожу иногда
  • 117
  • 11 / 0
PayPal начались проблемы
« : 20.07.2012, 19:51:33 »
Рабочий магаз. Платежи через палку принимал нормально.

16го числа была последняя нормальная покупка.
18го первый глюк

Переход из магазина на PayPal происходит нормально, оплата и возврат в магаз тоже. Покупатель получает сообщение "спасибо за покупку!",
в аккаунте пайпала отправленный платеж виден - все ок.

НО в заказах в админке заказ появляется как не законченый.
При этом какое-то время в чекбоксе заказа висит неснимаемый замок, потом исчезает (замок).
Соответственно на почту админу письмо не уходит. В ручную поменять статус заказа невозможно.

Проверял настройки магазина, все как раньше, восстанавливал на другой домен из бэкапов - та же история.

Что это может быть и куда смотреть ?


---

Joomla! 2.5.1
joomshopping 3.5.0

---

upd.

Погонял на PayPal сандбокс.
И у покупателя и у продавца в аккаунтах пайпала все ок - платежи проходят.

В админке та же история
« Последнее редактирование: 20.07.2012, 22:13:29 от pyh »
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: PayPal начались проблемы
« Ответ #1 : 20.07.2012, 23:21:44 »
Включити логи
и посмотрите что в логах
*

pyh

  • Захожу иногда
  • 117
  • 11 / 0
Re: PayPal начались проблемы
« Ответ #2 : 23.07.2012, 10:16:57 »
На выходных была покупка через палку, все ок.

Пришел утром, проверил, та же история -замок и Pending

Ниже лог, на сколько я понял payment_status=Completed

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

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: PayPal начались проблемы
« Ответ #3 : 23.07.2012, 10:36:17 »
Проверка идет
не тут
index.php?option=com_jshopping&controller=checkout&task=step7&act=return&js_paymentclass=pm_paypal
а
index.php?option=com_jshopping&controller=checkout&task=step7&act=notify&js_paymentclass=pm_paypal

в настройках можно включить для return
*

pyh

  • Захожу иногда
  • 117
  • 11 / 0
Re: PayPal начались проблемы
« Ответ #4 : 23.07.2012, 11:16:11 »
Уточните пожалуйста что и где включить.
Извините не досмотрел

Проверяю


п.с. и может быть есть какие-то предположения что могло случиться ?
*

pyh

  • Захожу иногда
  • 117
  • 11 / 0
Re: PayPal начались проблемы
« Ответ #5 : 23.07.2012, 11:27:38 »
Переключил  "Проверять данные после PayPal RETURN"  на "Да"

На морде сайта после возврата с палки получил "Invalid response. Order ID 79"

файл paymentdata.log  дополнился следующим куском

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


Проверил бэкапы различной давности - во всех стаят настройки "Проверять данные после PayPal RETURN"  на "Нет"

Причем раньше работало нормально, а сейчас ни реальный платеж ни в тестовом режиме не фиксируется магазином


*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: PayPal начались проблемы
« Ответ #6 : 24.07.2012, 00:05:05 »
Поменяйте
charset в настройках PayPal на utf-8
*

pyh

  • Захожу иногда
  • 117
  • 11 / 0
Re: PayPal начались проблемы
« Ответ #7 : 27.07.2012, 21:15:58 »
Поменял. Та же история.
Логи ниже.

Повторю
Joomla! 2.5.1
joomshopping 3.5.0

Может были какие-то обновления в структуре ответа PayPal ?

Такое впечатление что ответ от пайпала стал приходить дважды. Один раз на notify и еще раз через несколько секунд на return.

Лог покупки с "Проверять данные после PayPal RETURN" - нет

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


Лог покупки с "Проверять данные после PayPal RETURN" - да

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


файл payment.log

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

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: PayPal начались проблемы
« Ответ #8 : 27.07.2012, 21:37:00 »
Use SSL: Y
*

pyh

  • Захожу иногда
  • 117
  • 11 / 0
Re: PayPal начались проблемы
« Ответ #9 : 30.07.2012, 09:58:32 »
Не дождался ответа буквально 5 минут  ^-^

Напряг программиста. И тот с помощью Charles и какой-то матери выловил что подтверждение платежа идет через ссл.
Выдал решение: в файле pm_paypal.php

заменить   $fp = fsockopen ($host, $port, $errno, $errstr, 30);
на            $fp = fsockopen ('ssl://'.$host, "443", $errno, $errstr, 30);

Выходные так проработало, а сейчас вернул назад и поставил в админке галку ssl - да.

В общем работает нормально.
Спасибо
*

Sa1ity

  • Новичок
  • 2
  • 0 / 0
Re: PayPal начались проблемы
« Ответ #10 : 15.05.2017, 17:13:49 »
Здравствуйте возникла похожая проблема.
Когда включена "Проверять данные после PayPal RETURN" выдает вот такую ошибку ->  Error response. Order ID 24
А при отключении данной функции пишет что заказ прошел успешно.
Проблемам заключается в том что заказ на PayPal проходит успешно но в самом магазине отображается как (Не закончен).
В чем проблема не пойму?

ДШ Version 4.6.0  Joomla! 3.7.0
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: PayPal начались проблемы
« Ответ #11 : 15.05.2017, 17:41:00 »
1. Проверять данные после RETURN - должно быть выключено. PayPal либо вообще не возвращает данные при ретурн, либо возвращает их без нужной подписи. По факту эту опцию нужно вообще удалить из настроек плагина

2. если вы не ошиблись с версией, то нет смысла обсуждать версию 4.6.0. эта версия очень стара, и было уже много исправлений. с вероятностью 99% этой проблемы уже нет в последней версии

3. не относится к вопросу, но все равно скажу: также нет смысла ставить новую Joomla 3.7.0 и старый ЖШ 4.6.0. с вероятностью 99% у вас будет что то работать неправильно
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибки при оплате через PayPal

Автор dron

Ответов: 3
Просмотров: 4351
Последний ответ 18.06.2019, 16:27:16
от dron
PayPal

Автор crack

Ответов: 64
Просмотров: 9824
Последний ответ 05.04.2018, 14:28:09
от nevigen
PayPal Payment

Автор errorme

Ответов: 70
Просмотров: 16770
Последний ответ 22.03.2016, 11:10:08
от threemonkeys
В IE при оплате PayPal получаю Access Denied

Автор koshsh

Ответов: 5
Просмотров: 8414
Последний ответ 27.04.2014, 12:39:07
от dmitry_stas
Проблемы с ссылкой "доставка"

Автор TheRoOMko

Ответов: 3
Просмотров: 1174
Последний ответ 08.02.2014, 19:43:55
от nevigen