على الرغم من أنني ربما على بعد أسبوعين من إطلاق أول موقع Discourse لي (بديل لقائمة بريدية أديرها منذ 30 عامًا)، إلا أنني أفكر بالفعل في مشروع آخر محتمل، وهو نقل موقع مدونتي للطبخ/الخبز من Wordpress/BBPress إلى Discourse.
للقيام بذلك، أحتاج إلى طريقة للتعرف على الوصفات وتغيير طريقة تنسيقها وطباعتها.
يبدو أن علامات الموضوع هي الطريقة المثلى لوضع علامة على موضوع جديد يحتوي على وصفة في المنشور الرئيسي (المتابعات ستكون تعليقات، وليست وصفات كاملة)، ولكن لا يبدو أن هناك طريقة لفرض علامة (مثل “وصفة”) في حقل العلامة. أنا أيضًا أتطلع إلى استخدام حقل العلامة للإشارة إلى نوع الوصفة (خبز، حلوى، لحم، إلخ) بحيث يمكن أن تحتوي الوصفة على علامات متعددة، مثل: وصفة حلوى.
الطباعة قضية منفصلة، لقد قررت بالفعل أنه لكي ينجح هذا، سأحتاج إلى إنشاء إضافة تمنح Discourse تحكمًا أكبر في طباعة مشاركات محددة من موضوع. تنسيق منشور (رئيسي) تم وضع علامة عليه كـ “وصفة” للطباعة هو على الأرجح مهمة ثانية. أنا ربما على بعد عدة أشهر من معرفة ما يكفي من Ruby للتفكير حتى في معالجة هذا الأمر.
لكن هذا يكفي من قائمة الأمنيات، سؤالي الآن هو، هل يمكنني فرض علامة جديدة في فئة (مثل، وصفات) أن تحتوي على علامة مدرجة مسبقًا (مثل، وصفة) بحيث لا يضطر المستخدم إلى تحديدها ولا يمكنه حذفها؟
لست متأكدًا من حالة الاستخدام المحددة لديك، ولكن قد يكون من المكرر فرض نفس العلامة على كل موضوع في فئة.
بينما لا يمكنك ملء علامة مسبقًا في فئة باستخدام الإعدادات الحالية، فمن الممكن تحقيق ذلك من خلال مكون سمة أو إضافة.
بدون مزيد من التخصيص، هناك بعض الخيارات التي يمكن أن تعمل لحالتك:
قم بتعيين الإعداد الحد الأدنى لعدد العلامات المطلوبة في الموضوع: في الفئة وأضف مجموعة علامات مطلوبة إلى الفئة.
بهذه الطريقة، يمكنك إعداد علامات متعددة للفئة مثل خبز، حلوى، لحم وما إلى ذلك - لن يتمكن المستخدمون من النشر دون اختيار علامة واحدة على الأقل (أو أكثر).
قم بإعداد وضع علامات تلقائي بناءً على كلمة أو عبارة تظهر بشكل شائع في الوصفات. يمكنك القيام بذلك من admin/customize/watched_words.
قد يتطلب هذا النهج بعض التجربة والخطأ وقد لا يكون مثاليًا. إذا كنت في الولايات المتحدة، فهذا أسهل قليلاً لأن النظام الإمبراطوري لديه قياسات فريدة. من المحتمل أن تذكر معظم الوصفات ملعقة صغيرة أو ملعقة كبيرة، على سبيل المثال. قد تشمل العبارات الأخرى التي تخطر ببالي، والتي ستكون فريدة جدًا للوصفات، سخن مسبقًا، وعاء خلط، قلي سريع وما إلى ذلك.
أفضل في الواقع أن يكون لدي حقل منفصل في منشور يقول “هذه وصفة، قم بالتنسيق وفقًا لذلك”، حتى يمكن استخدام العلامات لأغراض أخرى يواجهها المستخدم، كما أوضحنا، لكنني لست متأكدًا من كيفية القيام بذلك حتى الآن. أعرف أن هناك طرقًا للحصول على حقول منشورات مخصصة وحقول مواضيع مخصصة، لكنني ما زلت أتعلم كيفية الوصول إليها أو استخدامها.
بينما أفكر في أن المنشور الرئيسي في موضوع ما سيتم تمييزه لتنسيق الوصفة في المقام الأول، إلا أنه يمكن أن ينطبق في أماكن أخرى. علاوة على ذلك، قد تكون هناك حالات استخدام أخرى لتمييز منشور بتنسيق خاص بخلاف مدونة الطبخ الخاصة بي، حيث لا يكون المنشور المميز بالضرورة هو المنشور الرئيسي في موضوع ما أو في فئة معينة. وقد يكون لتعميم النهج فائدة أوسع انتشارًا.
تفاصيل صياغة الوصفات هي مشكلة أخرى، من الناحية المثالية أود تنسيقًا منظمًا حتى أتمكن من عزل الحقول للمكون، ووحدة القياس المحددة والكمية، ويفضل أن يكون ذلك بطريقة تسمح لي باستخدام قواعد بيانات أخرى لمعلومات العناصر الغذائية للمكونات، والسعر، والمخزون، وما إلى ذلك. كما أن الإنتاج الإجمالي سيسمح بتوسيع أو تقليص الوصفة. تقوم بعض مواقع الطبخ الأخرى بذلك، لكنني أعتقد أنها تفتقر إلى الميزات التي أعرف أنني أرغب فيها، وكذلك مجتمع الخبز. ما إذا كان يمكن القيام بكل ذلك بطريقة متوافقة مع بنية بيانات DIscourse هي قضية منفصلة. (لكن انطباعي الأول هو أنه قد يكون من الأسهل القيام بذلك في Discourse مقارنة بـ WordPress أو كنظام مستقل من الصفر، لقد قمت بالفعل ببناء الكثير من الهياكل الداعمة.)
يمكنك استخدام TopicCustomField في إضافة (plugin)، ولكن مجموعة علامات للموظفين فقط، أو مجموعة مفروضة على جميع المستخدمين ستكون أسهل في الصيانة. أيضًا، هل يمكنك ببساطة جعل مجموعة من الفئات وصفات، بحيث يمكنك تطبيق هذا التنسيق على الفئة بأكملها؟ يبدو هذا الحل الأسهل لـ “أي المواضيع هي وصفات”.
قد يكون هذا مناسبًا لحالة الاستخدام المحددة الخاصة بي، لكنني أحاول التفكير في المستقبل نحو إضافة مكون إضافي سيكون له قيمة عامة أكبر. أيهما يبدو منطقيًا أكثر:
أريد أن يكون لهذه الفئة تنسيق خاص منفصل
أريد أن يكون لهذا الموضوع تنسيق خاص منفصل
أريد أن يكون لهذه المشاركة تنسيق خاص منفصل
مزيج من الخيارات أعلاه، على سبيل المثال، يمكن لهذه الفئة استخدام تنسيق خاص في بعض مواضيعها و/أو مشاركاتها، أو يمكن لهذا الموضوع استخدام تنسيق خاص في بعض مشاركاته
أنا متأكد من أنني لا أعرف ما يكفي عن Discourse/Ruby للقيام بالكثير في الوقت الحالي، ناهيك عن القيام بذلك بالطريقة الصحيحة، لذا ربما يكون العمل على حالة الاستخدام المحددة الخاصة بي بمثابة بداية جيدة بالنسبة لي. ولكن تاريخيًا في المشاريع التي عملت عليها على مدار الأربعين عامًا الماضية، بمجرد أن يجد شخص ما طريقة مبسطة للقيام بشيء ما، يصبح أقل اهتمامًا بالنهج الأكثر عمومية.
هذا ليس بالضبط ما كنت أبحث عنه، لكن أعتقد أنه سيكون من الأفضل لك حل مشكلتك الفعلية بدلاً من المشاكل التي تتخيلها.
سيكون هذا صعبًا، على الرغم من أنه يمكنك إنشاء مكون إضافي يضيف حقلًا مخصصًا للمنشور ويضيفه إلى المُسلسِل.
مجرد اتخاذ قرار بأن لديك فئات تحتوي فقط على وصفات / تحتاج إلى تنسيق خاص يحل الغالبية العظمى من حالات الاستخدام. فرض مجموعة من العلامات هو طريقة أخرى أكثر دقة، ولكنه يتضمن أيضًا القليل جدًا من التعليمات البرمجية للصيانة.
أنا أقدر اقتراحاتك وإرشاداتك. المبتدئون مزعجون، أليس كذلك؟ (كما قلت في منشور آخر في موضوع آخر، لا أعرف بعد ما لا أعرفه.)
كان منهجي في تحليل الأنظمة على مر السنين هو محاولة توقع أكبر عدد ممكن من الأشياء عند بدء قائمة الرغبات ثم معرفة عدد الأشياء التي أقرر أنني لا أحتاجها أو لا أعرف كيفية القيام بها. لقد نجح هذا النهج جيدًا معي.
القضية الوحيدة التي توصلت إليها باستخدام العلامات لهذا هي أن شخصًا ما قد يطبق تلك العلامة على موضوع لا ينتمي إليه. بالطبع، إذا قلت “العلامة التنسيقية تنطبق فقط عندما تكون هذه العلامة في موضوع في الفئة X” فقد يكون ذلك كافيًا بالنسبة لي.
وقد خطر ببالي أنه إذا كانت العلامة التنسيقية اختيارية، فيمكن للمستخدمين إنشاء مواضيع في تلك الفئة لا تحصل على تنسيق خاص. لم أقرر بعد ما إذا كان هذا شيئًا جيدًا أم سيئًا.