ProCourse Static Pages

I’ve been doing freelance Discourse customization as my primary gig for almost a year at this point. And one of the most common questions I get is about static pages. “Can I just create a static sales page?” “Where’s a good place to put a FAQ without a discussion around it?”

You can likely argue the validity of these questions in most scenarios. The main response being “just close the topic.” But that doesn’t cut it for most. Thus, I decided to create this plugin to make it possible.

It’s pretty simple. You get a backend under Admin > Plugins to create, edit, and delete these pages as you like. It uses the same topic composer we’re used to. Once you have the page built, you can Enable it and share the link to the page wherever you like.

For a demo: LINK IS DEAD.

I should also note that styling is made easier with a class static-page in the wrapping div for the whole page. That way you can do whatever you want to the body of the page from a CSS standpoint in a theme.

46 إعجابًا

شكرًا لك على هذه الإضافة الرائعة!

طلب صغير متعلق بـ SEO: سيكون من الرائع إضافة حقول إضافية لعنوان الصفحة والوصف لملء العنوان ووصف التعريف (meta description).

3 إعجابات

موافق. كما أن إمكانية رفع الصور ستكون رائعة.

إعجاب واحد (1)

آسف، لم أفهم كيف جعلته في منتدى خاص.
إنه بالضبط ما أحتاجه.

أعتقد أنني أواجه نفس المشكلة - سيكون ذلك رائعًا، لكنني أحتاج إلى أن تكون الصفحات مرئية للزوار المجهولين، حيث أن لدي موقعًا خاصًا وأرغب في كشف بعض الصفحات الثابتة للجمهور.

@joebuhlig - طُرح هذا السؤال عدة مرات في هذا الموضوع. هل لديك أي آراء حوله؟

3 إعجابات

هذا ما يظهر بعد تثبيته.

بالإضافة إلى ذلك، كانت قائمة /admin/plugins فارغة حتى قمت بإلغاء التثبيت. لذا… من فضلك ساعدني! :content:

إعجابَين (2)

لقد قلت ما أريد قوله :joy:

لقد حددت أن الخطأ ناتج عن استخدام كود لـ Discourse.Model، والذي تم إيقافه (أعتقد أنه في الإصدار الحالي من Discourse تم إزالته بالكامل، ومن هنا جاء الخطأ الجديد).

لقد أصلحت الخطأ وقدمت طلب سحب (Pull Request):

ويبدو أنه تم دمجه بالفعل… رائع! يجب أن تتمكن الآن من إعادة تثبيت الإضافة.

3 إعجابات

لا أعتقد أن جو يقوم بصيانة إضافاته هذه الأيام. سيحتاج شخص آخر إلى إنشاء طلب سحب (PR).

ومع ذلك، نحن نعمل حاليًا على ميزة صفحة ثابتة في النواة. لا تزال في مراحلها الأولى، ولكن يمكنك تجربتها من خلال تمكين إعداد تمكين نشر الصفحة في إعدادات موقعك. يمكنك إنشاء صفحة منشورة بفتح قائمة إجراءات المنشور في موضوع (حدد زر النقاط الثلاث متبوعًا بزر المفتاح).

13 إعجابًا

في الواقع، إنه يعمل! شكراً :smiley:

إعجابَين (2)

:heart:

أوه! أخيرًا! هذا رائع جدًا. قد يكون هذا كافيًا لكي يتوقف عدد من الأشخاص عن استخدام ووردبريس. أوه. نعم. رائع جدًا.

:heart:

10 إعجابات

هذا رائع - هل لديك أي نصائح حول كيفية الوصول إليها لتنسيقها؟

أعتقد أنه من المبكر جدًا بذل الكثير من الجهد في تصميم منتداك نظرًا لأنه لا يزال قيد التطوير، ولكن حاليًا كل شيء موجود هنا

4 إعجابات

شكرًا ستيفن؛ من خلال تجربة بسيطة، لا يمكن جعلها مرئية للزوار في المنتديات التي تتطلب تسجيل الدخول. آه، هذا بالضبط ما أريده حقًا. ومع ذلك، لا يزال الأمر مثيرًا للإعجاب إلى حد ما.

يبدو أن الطريقة الوحيدة لجعل محتوى ثابتًا أكثر مرئية للمستخدمين غير المسجلين هي إما:

  1. إبقاؤه يتطلب تسجيل الدخول واستخدام الأدوات الموجودة:
    • /admin/customize/site_texts/login_required.welcome_message
    • /tos
    • /privacy
      أو
  2. جعل المنتدى غير مطلوب فيه تسجيل الدخول (أي عام)
    • والتحكم بشكل دقيق في رؤية كل فئة ومجموعة
    • الحصول على مجموعة /tos و /privacy و /about و /faq الكاملة
    • إنشاء أي عدد من الصفحات الثابتة عبر تمكين نشر الصفحات

هل يعرف أحد طريقة أخرى (باستثناء الصفحات المستضافة على نطاق فرعي أو نطاق آخر) لتحقيق ذلك؟

4 إعجابات

التعليمات الكاملة على Page Publishing

إعجاب واحد (1)

هذا بالضبط. أعرف أن هذه الإضافة تُستخدم في المقام الأول لإنشاء صفحات ثابتة. ومع ذلك، لنفترض أنك تنشئ تطبيق حاسبة تريد وضعه في الصفحة. يتطلب الحاسبة إدخالًا من المستخدم. تظل الصفحة تحتوي على كود ثابت، لكنها ستقوم بتحديث النتيجة بناءً على إدخال المستخدم. هل هذا ممكن باستخدام هذه الإضافة، أم أنه من الأفضل إنشاء صفحة HTML/CSS خارجية مع JavaScript؟

إعجاب واحد (1)

أود استخدام أداة تابعة لطرف ثالث في صفحة ثابتة. من المفترض أن يتم إدراج كود الجافا سكريبت الخاص بها قبل </body>. هل توجد طريقة لتحقيق ذلك — فقط في هذه الصفحة الثابتة بالتحديد؟ شكراً على مساعدتكم!

مشاركة فقط لكيفية نجاحي في تشغيل سكريبت للصفحات الثابتة:

<script type="text/discourse-plugin" version="0.8">
    const { setDefaultHomepage } = require('discourse/lib/utilities');
    const user = api.getCurrentUser();
    if(!user) {
        setDefaultHomepage('/page/welcome/1/'); // <--- تعيين رابط الصفحة الرئيسية
    }
    api.onPageChange((url, title) => {
        if(url.indexOf("/page/welcome") === 0) {
            // تنفيذ إجراءات لهذه الصفحة الثابتة
        }
    });
</script>

توضيح فقط: تعيين الصفحة كصفحة رئيسية هو أمر اختياري تمامًا عند تشغيل السكريبت، أردت فقط إظهار إمكانية القيام بذلك أيضًا :+1:

4 إعجابات

شكرًا لك!
هل تعرف طريقة لاستخدام سكريبتات خارجية (ليست من نفس النطاق) للصفحة الثابتة؟
يظهر دائمًا الخطأ التالي:
سياسة أمان المحتوى: تمنع إعدادات الصفحة تحميل مورد مضمن ("script-src"). المصدر: (function injectedScript() {...

بشكل عام - ما هي أفضل طريقة لتضمين متجر ويب مثلًا دون استخدام إطار iframe؟
مثال على الكود:

<div id="my-store-<id>"></div> <div> <script data-cfasync="false" type="text/javascript" src="https://app.ecwid.com/script.js?<id>&data_platform=code&data_date=2020-12-20" charset="utf-8"></script><script type="text/javascript"> xProductBrowser("categoriesPerRow=3","views=grid(20,3) list(60) table(60)","categoryView=grid","searchView=list","id=my-store-<id>"); </script> </div>

إعجاب واحد (1)

أود إعادة طرح هذا الطلب. الإضافة رائعة، لكن عند مشاركة أي صفحة منها، تظهر فقط البيانات التعريفية الافتراضية. سيكون رائعًا إذا أمكنك تحديد العنوان والوصف وصورة مخصصة. هل لا تزال الإضافة قيد التطوير النشط أم يجب نقل هذا الطلب إلى فئة سوق التطبيقات؟ شكرًا!