Я приближаюсь к тому, чтобы превратить PfaffManager в полноценный продукт. Мой MVP заключается в том, чтобы заменить страницу https://www.literatecomputing.com/discourse-installation-packages/ в Discourse, чтобы пользователи могли покупать установку (как они это делают сейчас через WordPress). Это будет запускать процесс установки в Discourse (работает), где они также смогут получать обновления в реальном времени о ходе установки (работает), а затем нажимать кнопку для перезапуска сборки (работает) в течение определённого периода времени.
Я использовал add_model_callback(GroupUser, :after_save), чтобы отслеживать, что при добавлении пользователя в группу CreateServer создаётся сервер (в модели, которую добавляет мой плагин), а затем пользователь удаляется из этой группы (чтобы теоретически он мог купить ещё одну установку сервера). Мне кажется, что этот подход можно использовать для превращения discourse-subscriptions в достаточно универсальную платёжную систему.
заголовок <h1> и кнопка используют один и тот же ключ discourse_subscriptions.subscribe.title — я бы хотел, чтобы в заголовке <h1> было написано что-то вроде «Купить установку или услугу», а на кнопке — «Оплатить сейчас».
если бы у <h1> был класс subscription-title, то я мог бы использовать CSS, чтобы скрыть существующий заголовок и заменить его псевдоэлементом ::before, что, возможно, решит проблему выше.
я хотел бы добавить навигацию на /pfaffmanager/servers где-нибудь на этой странице, в заголовке или подвале, но не вижу способа это сделать. Я пробовал добавить что-то вроде {{~raw-plugin-outlet name="subscription-header-before"~}} в шаблон s.hbs, но всё не так просто.
Думаю, было бы разумно пожелать немного больше специфичных для подписок классов в плагине подписок, но я всё ещё недостаточно хорошо разбираюсь в CSS, чтобы точно знать, прав ли я и как это должно выглядеть.
Ага! Вместо того чтобы надеяться на наличие плагиновых слотов в плагине подписок, может быть, мне стоит создать свой собственный шаблон, который всё ещё вызывает функции Stripe из плагина подписок? Имел бы это смысл?
Я готов принять PR с этими изменениями. Они довольно простые.
Вы должны иметь возможность добавить {{plugin-outlet}} в этот файл. Также готов принять PR, если есть веские основания для этого. Плагины-контейнеры достаточно легковесны. Однако «сырой» плагин-контейнер не сработает, так как это не сырой файл.
<script type="text/x-handlebars" data-template-name="/connectors/after-go-to-billing/foobar">
<div class="pfaffmanager-product"> возможно, ссылка с использованием {{product.id}}</div>
</script>
Или даже скрыть и заменить практически все эти блоки с продуктами.
Возможно, я всё-таки начну понимать, как работают плагин-аутлеты.
Изменения в CSS
Итак, просто оберните весь шаблон s.hbs в <div class="subscription">, и тогда вы сможете делать такие вещи, как