Модуль Yandex Money Blocks (ymb)

Аватар пользователя itcrowd72
1

Специально для drupal.ru по просьбе координатора мной был разработан модуль, позволяющий создавать любое количество блоков с формой доната Яндекс.Деньги. Выглядят эти блоки так:

Список ymb-блоков отображается на странице /admin/structure/ymb и выглядит так:

Окно добавления/редактирования блока:

Скачать модуль можно с официальной страницы проекта

Поучаствовать в разработке можно на GitHub

Пока модуль только для Drupal 7. После перехода drupal.ru на Drupal 8 модуль будет портирован и на "восьмерку"

Тип материала:
Версия Drupal:

Комментарии

Аватар пользователя itcrowd72
itcrowd72 4 месяца назад

Последний абзац в посте про восьмерку)

Аватар пользователя Алексей Дёмин
Алексей Дёмин 4 месяца назад
itcrowd72 написал:
Последний абзац в посте про восьмерку)

И че там написано? ) ( Щютка )

Ктоже до конца то читает. Спасибо!

Аватар пользователя P.Selfin@drupal.org
P.Selfin@drupal.org 4 месяца назад

У меня вопрос: а донаты яндекса отправляют чеки плательщику?
не отправляются.

Аватар пользователя Totaku
Totaku 4 месяца назад
1

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

Аватар пользователя itcrowd72
itcrowd72 4 месяца назад

Про чекбокс знаем, будет исправлено в конце месяца к июльскому релизу. А ещё какие ты проблемы модуля нашел?

Аватар пользователя fairrandir
fairrandir 4 месяца назад
1
Totaku написал:
кривоват модуль

Неа. Эпически кривоват.

  1. Использование short-array (противоречит код-стандарту для D7)
  2. Неплохо бы завести отдельный пермишен под редактирование блоков, а не 'administer blocks'
  3. Вместо hook_form_alter лучше юзать hook_form_FORM_ID_alter. Сейчас на генерацию КАЖДОЙ формы дёргаются все ymb блоки из бд.
  4. Генерация ссылок вида "{$base_url}/admin/path". Это фиаско. Просто фиаско.
  5. В одном месте drupal_goto, а в другом - form_state['redirect']
  6. Эпический код в сабмит функциях: как бы традиционно для получения значений используется form_state. Я даже не знал, что можно делать так, как написано в этом модуле.
  7. Темплейт формы жёстко зашит в модуль и сгенеренный темплейт пишется в базу! В block_custom! А как же hook_theme? Зачем вообще хранить дубль данных? А если шаблон чутка поменять надо будет? Все блоки пересохранять?
  8. Ну и напоследок: крутейшая препроцесс функция, которая срабатывает на каждый блок, и на каждый же блок лезет в базу.

Ну и принципиальная архитектурная проблема - непонятно зачем было альтерить стандартное поведение модуля block под свои нужды, хотя с задачей прекрасно могли справиться стандартные hook_block_{info,view,configure,save}

Общая оценка - 1/5. Такую форму я могу и в обычный блок вставить, без всякого модуля.

Аватар пользователя sas@drupal.org
sas@drupal.org 4 месяца назад
1

Я думаю надо положительно отметить Андрея за работу. Не боги горшки обжигают и за конструктивную критику всех отписавшихся. Вместе - мы сила!

Аватар пользователя Алексей Дёмин
Алексей Дёмин 4 месяца назад
2

Я, конечно, дико извиняюсь.. ИМХО личная неприязнь излишня.
Если бы ее не было, то логика действий была бы совсем другой:

  • Нашел ошибку, знаешь как сделать проще - создай ишью. или пуллреквест. Это же опенсорс.)
  • Если считаешь, что модуль тебе не нужен - так и напиши, или промолчи (тоже вариант). На d.org куча модулей, которые перестали развиваться, или влились в другие модули. Этот модуль ждет тоже самое. Ни чего страшного в этом нет.

Тут вроде сделано то же самое, но цель - не донести свой опыт, а уколоть старого врага. Мелочно как-то...

Аватар пользователя Sennheiser
Sennheiser 3 месяца назад

Здравствуйте! Спасибо за модуль!
Хотим использовать данный модуль для оплаты цифровых товаров. Скажите пожалуйста, а можно ли добавить ещё одно поле, в которое покупатель мог бы ввести например свою почту. При нажатии кнопки ОПЛАТИТЬ и при переходе на странице яндекса эта почта прописывалась бы рядом с Назначением платежа (скриншот прикреплен).
Это нужно для отправки покупателю на почту необходимой информации после оплаты.

Аватар пользователя itcrowd72
itcrowd72 3 месяца назад

Да, это возможно. Поле "почта" итак присутствует в форме яндекса, просто на друпал.ру мы её не используем. По срокам ничего сказать не могу, но если сильно надо, можете профинансировать. Пишите в личку.

Аватар пользователя P.Selfin@drupal.org
P.Selfin@drupal.org 3 месяца назад

Думаете это хорошая идея, с учетом ФЗ-54?

Аватар пользователя itcrowd72
itcrowd72 3 месяца назад

Ну ведь доставка алкоголя "в аренду" работает же :)

А тут "донаты" вместо оплаты товара. Почему бы и нет)

Аватар пользователя Semantics
Semantics 3 месяца назад

У яндекс.кассы была интеграция через HTML-формы и там была возможность передачи нескольких параметров.
Довольно простой и быстрый способ подключения.

Как написали ранее, если вы хотите этим обойти 54-ФЗ по онлайн-кассам, то это не лучшая идея.