مقدمة
في Odoo، تحدد النماذج كيفية هيكلة البيانات وتخزينها في قاعدة البيانات. كل قطعة من بيانات الأعمال التي تعمل معها تعيش في نموذج.
فهم نماذج Odoo أمر ضروري لكل من المطورين والمستشارين الوظيفيين. النماذج هي أساس بنية بيانات Odoo. إنها تحدد حقول Odoo والعلاقات والمنطق التجاري.
تركز هذه المقالة على نموذج website.page. إنه يدعم الصفحات الثابتة على موقع Odoo الخاص بك. سواء كنت تبني صفحات هبوط مخصصة، أو تدير المحتوى، أو تتكامل مع أنظمة خارجية، ستعمل مع هذا النموذج.
ما هو نموذج website.page
نموذج website.page يمثل صفحات الويب الثابتة في Odoo. إنه جزء من تطبيق الويب ويخزن الصفحات التي تقوم بإنشائها يدويًا، مثل من نحن، اتصل بنا، أو صفحات الهبوط المخصصة.
هذا النموذج في Odoo يستخدم وراثة نموذج Odoo. إنه يرث من ir.ui.view عبر آلية _inherits. كل سجل website.page يرتبط بـ ir.ui.view الذي يحتوي على قالب QWeb (arch) والبيانات الوصفية.
تُولد الصفحات الديناميكية، مثل متجر أو قائمة المدونات، بشكل مختلف.
لا يتم تخزينها كسجلات website.page. نموذج website.page مخصص بشكل خاص للمحتوى الثابت الذي تقوم بإنشائه وتحريره من خلال منشئ الموقع.
الحقول الرئيسية في النموذج
إليك أهم حقول Odoo في نموذج website.page. سيساعدك فهم هذه الحقول على العمل بفعالية مع صفحات الويب.
1. الاسم
النوع: Char. هذا الحقل يخزن عنوان الصفحة. يتم عرضه في علامة تبويب المتصفح، وفي القوائم، وفي نتائج البحث. يأتي من ir.ui.view المرتبط.
2. url
النوع: Char. مسار URL الصفحة. يجب أن يبدأ بشرطة مائلة. أمثلة: /contactus، /about-us. هذا هو المسار الذي يستخدمه الزوار للوصول إلى الصفحة.
3. view_id
النوع: Many2one (ir.ui.view). مطلوب. يرتبط بعرض QWeb الذي يحتوي على محتوى الصفحة. يحتفظ العرض بـ arch (قالب XML) والمفتاح. يؤدي حذف العرض إلى تأثير متسلسل على الصفحة.
4. website_id
النوع: Many2one (موقع الويب). الموقع الذي تنتمي إليه هذه الصفحة. في إعدادات المواقع المتعددة، يمكن أن تكون الصفحات محددة لموقع ويب واحد أو مشتركة (عندما تكون فارغة).
5. تم النشر
النوع: Boolean. ما إذا كانت الصفحة مرئية للزوار. الصفحات غير المنشورة تعيد 404 أو تعيد التوجيه. استخدم هذا لإخفاء الصفحات دون حذفها.
6. تم فهرسة الموقع
النوع: Boolean. يتحكم فيما إذا كانت محركات البحث يمكنها فهرسة الصفحة. قم بتعيينها إلى False لصفحات الشكر أو الصفحات الداخلية التي لا تريدها في نتائج البحث.
7. تاريخ النشر
النوع: Datetime. تاريخ النشر. يُستخدم للنشر المجدول ولعرض متى تم نشر المحتوى.
8. رأس الصفحة مرئي
النوع: Boolean. ما إذا كان يجب عرض رأس الموقع على هذه الصفحة. مفيد لصفحات الهبوط أو التجارب الكاملة حيث تريد إخفاء الرأس.
9. تذييل الصفحة مرئي
النوع: Boolean. ما إذا كان يجب عرض تذييل الموقع. مثل header_visible، يتيح لك هذا إنشاء صفحات بدون التذييل القياسي.
10. الصفحة الرئيسية
النوع: منطقي. حقل محسوب. صحيح عندما يتم تعيين هذه الصفحة كصفحة رئيسية للموقع. يمكن أن تكون صفحة واحدة فقط لكل موقع هي الصفحة الرئيسية.
11. is_visible
النوع: منطقي. محسوب. يشير إلى ما إذا كانت الصفحة مرئية بناءً على حالة النشر، التاريخ، وقواعد الرؤية.
12. menu_ids
النوع: One2many (website.menu). عناصر القائمة التي ترتبط بهذه الصفحة. يمكن أن تظهر الصفحة في قوائم متعددة أو في لا شيء.
13. create_date
النوع: تاريخ ووقت. متى تم إنشاء السجل. يتم إدارته تلقائيًا بواسطة Odoo. مفيد للتدقيق والتقارير.
14. write_date
النوع: تاريخ ووقت. متى تم تعديل السجل آخر مرة. يتم إدارته أيضًا تلقائيًا. يساعد في تتبع تحديثات المحتوى.
15. arch
النوع: نص. قالب QWeb XML. مخزن على ir.ui.view المرتبط. يحتوي على هيكل HTML وقطع Odoo. قابل للتعديل عبر منشئ الموقع.
16. key
النوع: حرف. معرف فريد للعرض. يُستخدم في XML الوحدة وللوراثة. التنسيق عادةً هو module.view_name.
17. النوع
النوع: اختيار. نوع العرض. بالنسبة لصفحات الويب، يكون هذا دائمًا qweb. تشمل الأنواع الأخرى النموذج، القائمة، والشجرة.
18. نشط
النوع: منطقي. علامة الحذف الناعم. عندما تكون القيمة False، يتم أرشفة السجل. تأتي من ir.ui.view. الصفحات المؤرشفة لا تُقدم.
19. عنوان_الميتا_للموقع
النوع: حرف. عنوان ميتا SEO. يتجاوز العنوان الافتراضي في نتائج البحث. مهم لرؤية SEO.
20. وصف_الميتا_للموقع
النوع: نص. وصف ميتا SEO. المقتطف المعروض في نتائج محركات البحث. احتفظ به بين 150 و160 حرفًا لأفضل عرض.
21. كلمات_الميتا_للموقع
النوع: حرف. كلمات ميتا. أقل أهمية لـ SEO الحديث ولكن لا تزال تُستخدم من قبل بعض الأنظمة. مفصولة بفواصل.
22. تراكب_الرأس
النوع: بولياني. سواء كان الرأس ي overlay المحتوى. يُستخدم لصفحات النمط البطل حيث يجلس الرأس فوق الشعار.
23. لون الرأس
النوع: اختيار. نظام لون الرأس. خيارات مثل الشفاف، الفاتح، أو الداكن. يؤثر على التباين وقابلية القراءة.
24. الرؤية
النوع: اختيار. التحكم في الوصول. تشمل الخيارات العامة، المسجلين، المجموعة المقيدة، أو مع كلمة مرور. يتحكم في من يمكنه عرض الصفحة.
25. نوع إعادة التوجيه
النوع: اختيار. عندما يتغير عنوان URL، يحدد هذا إعادة التوجيه: 301 دائم، 302 مؤقت، أو لا شيء. مهم لتحسين محركات البحث عند نقل الصفحات.
كيف يتم استخدام هذا النموذج في سير العمل التجاري
1. صفحات الهبوط والحملات
تقوم فرق التسويق بإنشاء صفحات هبوط للحملات. كل صفحة هي سجل website.page. يتحكمون في عنوان URL، المحتوى، وتاريخ النشر. يستخدم النشر المجدول date_publish.
2. الصفحات المؤسسية
صفحات مثل من نحن، اتصل بنا، شروط الخدمة، وسياسة الخصوصية عادةً ما تكون سجلات website.page. يتم إنشاؤها مرة واحدة وتحديثها حسب الحاجة. يتم إدارة موضع القائمة عبر menu_ids.
3. صفحات الشكر والتأكيد
صفحات مثل "تم إرسال نموذج الاتصال" أو "تم استلام المهمة" هي سجلات website.page. قم بتعيين website_indexed إلى False حتى لا تظهر في نتائج البحث.
4. مواقع متعددة والتعريب
في إعدادات المواقع المتعددة، يحدد website_id أي موقع يظهر الصفحة. يمكنك تكرار الصفحات لكل موقع بمحتوى محلي.
5. المحتوى المقيد والوصول المحدود
يسمح لك حقل الرؤية بإنشاء صفحات للمستخدمين المسجلين فقط، أو لمجموعات معينة. مفيد لمناطق الأعضاء أو الوثائق الداخلية.
كيف يقوم المطورون بتوسيع هذا النموذج
يقوم المطورون بتمديد website.page باستخدام عدة أنماط. وراثة نموذج Odoo هي الآلية الرئيسية.
وراثة النموذج
استخدم _inherit = 'website.page' لتمديد النموذج. أضف حقول Odoo جديدة، أو تجاوز الطرق، أو أضف قيود. يحتفظ نموذج الوراثة في Odoo بتغييراتك في وحدة منفصلة لتسهيل التحديثات.
إضافة حقول
حدد حقول Odoo جديدة في نموذجك الموروث. استخدم نوع الحقل المناسب: Char، Many2one، Boolean، Integer، Text، Selection. ضع في اعتبارك الحقول المعتمدة على الموقع لمواقع متعددة.
امتدادات بايثون
تجاوز create، write، أو unlink لإضافة منطق. استخدم super() لاستدعاء الأصل. كن حذرًا مع علاقة view_id وسلوك السقوط.
أودو ستوديو
يتيح لك أودو ستوديو تخصيص الصفحات بدون كود. جيد للتغييرات السريعة في التخطيط. بالنسبة للمنطق المعقد أو المحتوى المدفوع عبر API، فإن الوحدات المخصصة أكثر قابلية للصيانة.
أفضل الممارسات
- استخدم عناوين URL صديقة لمحركات البحث. تجنب المسافات والرموز الخاصة. استخدم الشرطات لتحسين القراءة.
- قم بتعيين website_indexed إلى False لصفحات الشكر، وصفحات التأكيد، والصفحات الداخلية.
- عند تغيير عناوين URL، قم بتمكين إعادة التوجيه (301 أو 302) للحفاظ على قيمة SEO وتجنب الروابط المعطلة.
- املأ website_meta_title و website_meta_description لكل صفحة عامة. هذا يحسن من رؤية SEO.
- عند إنشاء الصفحات عبر API أو XML-RPC، قم بإنشاء ir.ui.view أولاً، ثم website.page مع view_id. تأكد من أن العرض له نوع qweb ومفتاح فريد.
الأخطاء الشائعة
- إنشاء website.page بدون view_id صالح. يجب أن يكون العرض موجودًا وله نوع qweb.
- استخدام عناوين URL التي لا تبدأ بشرطة. يتوقع أودو مسارات مثل /contactus، وليس contactus.
- نسيان تعيين website_indexed على صفحات الشكر. تنتهي في نتائج البحث ويمكن أن تضعف SEO.
- تغيير عنوان URL لصفحة دون إعداد إعادة توجيه. الروابط القديمة تتعطل وتفقد محركات البحث الاتصال.
- تعديل هيكل عرض تم تحريره في منشئ الموقع. يمكن أن تمنع علامة noupdate في ir.model.data تغييرات XML الخاصة بك من التطبيق. أعد تعيينها إذا لزم الأمر.
الخاتمة
نموذج website.page هو عنصر أساسي في إدارة الصفحات الثابتة في Odoo. إنه يخزن بيانات التعريف الخاصة بالصفحة، وعناوين URL، وإعدادات النشر. المحتوى الفعلي موجود في ir.ui.view المرتبطة.
فهم حقوله وكيفية وراثته من ir.ui.view سيساعدك على تكوين وتخصيص ودمج مواقع Odoo بفعالية. سواء كنت مستشارًا وظيفيًا أو مطورًا، فإن فهمًا قويًا لـ website.page سيوفر الوقت ويمنع الأخطاء.
هل تحتاج إلى مساعدة في تنفيذ Odoo؟
تساعد Dasolo الشركات في تنفيذ وتخصيص وتحسين Odoo. نحن متخصصون في تكاملات API وتطوير Odoo. يتمتع فريقنا بخبرة عميقة في بنية بيانات Odoo ونماذج مثل website.page.
إذا كنت بحاجة إلى مساعدة في تنفيذ Odoo الخاص بك، أو صفحات ويب مخصصة، أو تكاملات، فنحن هنا للمساعدة. احجز عرضًا تجريبيًا لمناقشة مشروعك.