Плагин Landing Pages 🛩

Это выглядит интересно. Надеюсь использовать целевую страницу для перечисления предстоящих мероприятий, или хотя бы по тегам.

Спасибо!

Спасибо за патч! Всё работает отлично. Как вы думаете, будет разумно добавить опцию конфигурации для пути главной страницы при загрузке? Я пробовал другие решения для настройки пользовательской главной страницы, но это единственное, которое действительно сработало у меня вместе с плагином для целевых страниц.

Есть ли способ получить доступ к значениям из переменных плагина в файле plugin.rb?

@angus, есть ли способ отобразить содержимое определённых пользовательских целевых страниц в рамках стандартного макета Discourse, а не в макете плагина для целевых страниц?

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

Мне интересно, можем ли мы загружать содержимое пользовательских целевых страниц непосредственно внутри основного макета контейнера приложения Ember, а не в макете целевых страниц?

Я знаю, что в Discourse есть возможность превращать темы в статические страницы, но я не хочу, чтобы информация об авторе отображалась вверху или чтобы URL-адреса страниц были вложены в /pub/.

У меня есть один пример, где я хочу добавить ссылку на одну из статических страниц в навигацию, используя компонент пользовательских элементов навигации. Однако, поскольку это путь, который приложение Ember не распознаёт, при клике на ссылку в заголовке появляется страница 404. Если перейти напрямую по URL-адресу страницы, всё работает нормально, но не через ссылки приложения Ember.

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

Понятно.

Это единственная причина, по которой вы хотите рендерить содержимое посадочной страницы в Ember? Если да, мы можем реализовать это более лёгким способом.

Спасибо. Я надеюсь иметь возможность рендерить как встроенные страницы Discourse, так и страницы плагина Landing Pages внутри макета приложения Ember в качестве информационных страниц для участников сайта.

Некоторые страницы предназначены для публики и могут быть отрендерены в макете плагина Landing Pages, а другие — для авторизованных пользователей, и их следует рендерить в основном макете приложения, чтобы сохранялись мои кастомизации для основного приложения, включая пользовательские элементы навигации и меню пользователя.

Кажется, что существующими плагинами или ядром Discourse это никак не поддерживается. Всё, похоже, использует собственный макет для кастомных страниц. Знаете ли вы, является ли это ограничением со стороны разработчиков существующих решений или же ограничением самой платформы Discourse?

Представляю, что это примерно сводится к получению кастомных страниц через API-эндпоинт и использованию слайгов для сопоставления с wildcard-путём fallback в JS-роутере?

Хм, различия, которые вы проводите, станут менее очевидными, когда вы погрузитесь в детали.

Можете ли вы привести пример такой страницы? Да, верно, что плагин Landing Pages не включает элементы навигации Discourse и меню пользователя. Однако, если вам нужно включить их на странице, лучше всего создавать такую страницу для каждого конкретного случая непосредственно внутри приложения Discourse. Пытаться воссоздать их на странице лендинга не имеет смысла.

Причина, по которой нет универсального способа сделать это, заключается в том, что нет и универсального случая использования. Существует несколько подходов, и лучший из них будет зависеть от того, чего вы хотите достичь. Лучше всего, если вы подробнее опишете, что именно пытаетесь сделать, тогда я смогу дать более конкретные рекомендации.

Создайте новую тему в Development или на Pavilion, подробно объяснив, что вы делаете, и отметьте меня (@me).

Хорошо, спасибо. Я сделаю это :blush:

Пост был перемещен в новую тему: Ошибка при импорте приватного репозитория

Привет, я не могу установить примерную тему, не могли бы вы помочь?

Вам нужно будет описать, что вы сделали и что произошло, когда вы попытались.

1 лайк

https://develcoder.com/join Я не понимаю, почему эта часть

Привет, @angus, я попытался установить этот плагин на свой экземпляр Discourse, но после попытки пересобрать приложение постоянно получал ошибки. Вот соответствующая часть лога:

I, [2022-06-16T15:13:33.339825 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
Gem::LoadError: can't activate jquery-rails-4.4.0, already activated jquery-rails-4.5.0
/var/www/discourse/lib/plugin_gem.rb:27:in `load'
/var/www/discourse/lib/plugin/instance.rb:773:in `gem'
/var/www/discourse/plugins/discourse-landing-pages/plugin.rb:20:in `activate!'
/var/www/discourse/lib/plugin/instance.rb:679:in `instance_eval'
/var/www/discourse/lib/plugin/instance.rb:679:in `activate!'
/var/www/discourse/lib/discourse.rb:279:in `block in activate_plugins!'
/var/www/discourse/lib/discourse.rb:276:in `each'
/var/www/discourse/lib/discourse.rb:276:in `activate_plugins!'
/var/www/discourse/config/application.rb:228:in `block in <class:Application>'
/var/www/discourse/lib/plugin.rb:6:in `initialization_guard'
/var/www/discourse/config/application.rb:227:in `<class:Application>'
/var/www/discourse/config/application.rb:81:in `<module:Discourse>'
/var/www/discourse/config/application.rb:80:in `<top (required)>'
/var/www/discourse/Rakefile:7:in `require'
/var/www/discourse/Rakefile:7:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
(See full trace by running task with --trace)
I, [2022-06-16T15:13:34.530066 #1]  INFO -- : gem install jquery-rails -v 4.4.0 -i /var/www/discourse/plugins/discourse-landing-pages/gems/2.7.6 --no-document --ignore-dependencies --no-user-install
Successfully installed jquery-rails-4.4.0
1 gem installed

I, [2022-06-16T15:13:34.530330 #1]  INFO -- : Terminating async processes
I, [2022-06-16T15:13:34.530366 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 42
103:signal-handler (1655392414) Received SIGTERM scheduling shutdown...
I, [2022-06-16T15:13:34.530403 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 103
2022-06-16 15:13:34.530 UTC [42] LOG:  received fast shutdown request
103:M 16 Jun 2022 15:13:34.546 # User requested shutdown...
103:M 16 Jun 2022 15:13:34.546 * Saving the final RDB snapshot before exiting.
2022-06-16 15:13:34.551 UTC [42] LOG:  aborting any active transactions
2022-06-16 15:13:34.553 UTC [42] LOG:  background worker "logical replication launcher" (PID 51) exited with exit code 1
2022-06-16 15:13:34.554 UTC [46] LOG:  shutting down
103:M 16 Jun 2022 15:13:34.668 * DB saved on disk
103:M 16 Jun 2022 15:13:34.668 # Redis is now ready to exit, bye bye...
2022-06-16 15:13:34.724 UTC [42] LOG:  database system is shut down


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 1735 exit 1>
Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
bd8d903e1ec861801fdd32f7c35089aaebb97ca210dbe6eb5d584fc58379773e

Думаю, проблема здесь: Gem::LoadError: can't activate jquery-rails-4.4.0, already activated jquery-rails-4.5.0
Это должно быть легко исправить, верно? Нужно просто обновить зависимости в plugin.rb, заменив gem "jquery-rails", "4.4.0" на gem "jquery-rails", "4.5.0"?

Спасибо за этот плагин.

Плагин, похоже, действительно не работает. Возможно, вам придется подождать патча до первой недели июля.

https://discourse.pluginmanager.org/t/discourse-landing-pages-master-does-not-work-on-tests-passed/145

4 лайка

Этот плагин снова работает с последней версией Discourse :tada:

4 лайка

Рад(а) узнать о вашем выздоровлении от коронавируса. Спасибо, что исправили плагин в таком состоянии… :hugs: Отдыхайте больше!

3 лайка

К сожалению, этот плагин снимается с поддержки, поэтому он помечен тегом end-of-life. Я не буду вдаваться в технические детали, но в свете некоторых изменений в discourse/discourse, а также с учётом общей нагрузки и распределения ресурсов внутри Pavilion, дальнейшее его сопровождение больше не имеет смысла.

Плагин работает с последней версией tests-passed, однако он больше не будет обновляться вместе с изменениями, вносимыми в discourse/discourse. Если в будущем кто-то захочет взять этот проект на себя, я с радостью помогу и буду работать вместе с этим человеком.

7 лайков

Спасибо за вашу работу; пользоваться этим было очень приятно.

Не могли бы вы указать, какие изменения в discourse/discourse нам стоит отслеживать в будущем?

1 лайк

Я рад!

Ах, извините, я не имел в виду, что в discourse/discourse появится альтернатива (хотя Page Publishing может подойти для некоторых сценариев использования). Я хотел сказать, что техническая структура Discourse изменилась таким образом, что этот плагин стал нецелесообразным без значительных усилий по изменению его внутренней архитектуры. В настоящее время в Pavilion мы очень заняты другой работой, и я не могу с чистой совестью обещать поддерживать этот плагин при любых будущих изменениях в Discourse.

В Pavilion мы разрабатываем собственные новые посадочные страницы. Мы будем использовать Hugo вместо этого плагина.

1 лайк