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

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

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

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

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

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

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

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

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

Комментарии

Аватар пользователя itcrowd72
itcrowd72 2 недели назад

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

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

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

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

Аватар пользователя P.Selfin@drupal.org
P.Selfin@drupal.org 2 недели назад

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

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

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

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

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

Аватар пользователя fairrandir
fairrandir 1 неделя назад
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 1 неделя назад
1

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

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

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

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

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