تخطي للذهاب إلى المحتوى

نموذج website.page: فهم بنية صفحات الموقع في Odoo

دليل شامل لمخطط صفحات موقع Odoo للمطورين والاستشاريين الوظيفيين: فهم البنية، الحقول الأساسية، وطرق التخصيص التي تتيح بناء صفحات ويب ديناميكية قابلة للإدارة والصيانة بسهولة.
11 مارس 2026 بواسطة
نموذج website.page: فهم بنية صفحات الموقع في Odoo
Dasolo
لا توجد تعليقات بعد

مقدمة


في Odoo، تُعرّف النماذج طريقة تنظيم وتخزين البيانات داخل قاعدة البيانات. كل سطر بيانات تجاري تتعامل معه مخزّن داخل نموذج معيّن.


فهم نماذج Odoo ضروري لكل من المطورين والاستشاريين الوظيفيين. هذه النماذج تشكّل البنية الأساسية لبيانات النظام وتحدّد الحقول، العلاقات، والمنطق التجاري.


سأركز هنا على نموذج website.page. هذا النموذج يتحكّم بالصفحات الثابتة في موقع Odoo الإلكتروني، وهو ما ستتعامل معه عند إنشاء صفحات هبوط مخصّصة، إدارة محتوى ثابت، أو ربط صفحات خارجية عبر واجهات برمجة التطبيقات.

ما هو نموذج website.page


نموذج website.page يمثّل الصفحات الثابتة على الموقع داخل تطبيق Website. يُستخدم لتخزين الصفحات التي تُنشأ وتُحرّر يدوياً مثل صفحة من نحن، تواصل معنا، أو صفحات هبوط مخصصة.


النموذج يعتمد آلية توريث نماذج Odoo. عبر _inherits يرتبط كل سجل website.page بسجل ir.ui.view الذي يحوي قالب QWeb (arch) وبيانات وصفية أخرى.

الصفحات الديناميكية مثل صفحات المتجر أو قوائم المدونة تُبنى بطريقة مختلفة عن الصفحات الثابتة.


هذه الصفحات الديناميكية لا تُخزّن كسجلات website.page؛website.page مخصّص للمحتوى الثابت الذي تُنشئه عبر مُحرّر الموقع.

الحقول الأساسية في النموذج


فيما يلي أهم الحقول في نموذج website.page. معرفتك بها تسهّل إدارة الصفحات وتخصيصها.


1. name

النوع: Char. عنوان الصفحة الظاهر في علامة المتصفح، القوائم، ونتائج البحث. يُستمد عادةً من ir.ui.view المرتبط.


2. url

النوع: Char. مسار عنوان الصفحة على الموقع. يجب أن يبدأ بشرطة مائلة (/). أمثلة: /contactus، /about-us — هذا هو الرابط الذي يفتح الصفحة.


3. view_id

النوع: Many2one (ir.ui.view). حقل إجباري يربط الصفحة بقالب QWeb الذي يحتوي على arch والمفتاح. حذف العرض يؤدي إلى حذف الصفحة تبعياً.


4. website_id

النوع: Many2one (website). يحدّد الموقع الذي تنتمي إليه الصفحة. في بيئات متعددة المواقع يمكن تخصيص صفحات لكل موقع أو تركها مشتركة.


5. is_published

النوع: Boolean. يبيّن ما إذا كانت الصفحة مرئية للزوار. الصفحات غير المنشورة قد تُعيد 404 أو تُحوّل، وتُستخدم لإخفاء المحتوى دون حذفه.


6. website_indexed

النوع: Boolean. يتحكّم بما إذا كانت محركات البحث ستفهرس الصفحة أم لا. اجعلها False لصفحات الشكر أو صفحات داخلية لا تريد ظهورها في نتائج البحث.


7. date_publish

النوع: Datetime. تاريخ ووقت النشر. يُستخدم للجدولة وعرض متى صار المحتوى متاحاً.


8. header_visible

النوع: Boolean. يحدّد إظهار رأس الموقع على الصفحة. مفيد لصفحات هبوط كاملة العرض حيث تريد إخفاء الشريط العلوي.


9. footer_visible

النوع: Boolean. يحدّد إظهار تذييل الموقع. كما في header_visible، يمكّنك من صفحات بلا تذييل قياسي.


10. is_homepage

النوع: Boolean. حقل محسوب يبيّن ما إذا كانت هذه الصفحة هي الصفحة الرئيسية للموقع. يمكن أن تكون صفحة رئيسية واحدة لكل موقع.


11. is_visible

النوع: Boolean. محسوب. يوضح إن كانت الصفحة ظاهرة اعتماداً على حالة النشر والتواريخ وقواعد الرؤية.


12. menu_ids

النوع: One2many (website.menu). عناصر القوائم التي تشير إلى هذه الصفحة. يمكن للصفحة الظهور في قوائم متعددة أو في ولا واحدة.


13. create_date

النوع: Datetime. تاريخ إنشاء السجل. يُدار تلقائياً ومفيد للتدقيق والتقارير.


14. write_date

النوع: Datetime. وقت آخر تعديل على السجل. أيضاً يُدار تلقائياً لتتبع تحديثات المحتوى.


15. arch

النوع: Text. قالب QWeb بصيغة XML المخزّن في ir.ui.view المرتبط. يحتوي بنية HTML والمكوّنات القابلة للتحرير عبر محرّر الموقع.


16. key

النوع: Char. معرف فريد للعرض يُستخدم في ملفات XML والوِراثة. عادةً يأخذ شكل module.view_name.


17. type

النوع: Selection. نوع العرض؛ بالنسبة لصفحات الموقع يكون دائماً qweb. أنواع أخرى تشمل form أو list.


18. active

النوع: Boolean. علم الحذف اللطيف. عندما يكون False يُؤرشف السجل ولا تُقدّم الصفحة.


19. website_meta_title

النوع: Char. عنوان الميتا SEO. يتجاوز العنوان الافتراضي في نتائج البحث ويؤثر على ظهور الصفحة.


20. website_meta_description

النوع: Text. وصف الميتا SEO الظاهر في محركات البحث. حافظ عليه بين 150-160 حرفاً لعرض أمثل.


21. website_meta_keywords

النوع: Char. كلمات مفتاحية ميتا. أقل أهمية اليوم لكن قد تستخدمها بعض الأنظمة — ضعها مفصولة بفواصل.


22. header_overlay

النوع: Boolean. هل يعلو الرأس المحتوى أم لا. يُستخدم في صفحات البطل حيث يجلس الرأس فوق الصورة الأفقية.


23. header_color

النوع: Selection. نظام ألوان الرأس: شفاف، فاتح، غامق، إلخ. يؤثر على التباين وقابلية القراءة.


24. visibility

النوع: Selection. تحكم الوصول: عام، مسجّل دخول، مجموعة محددة، أو بكلمة مرور. يحدّد من يمكنه رؤية الصفحة.


25. redirect_type

النوع: Selection. عند تغيير رابط الصفحة يحدّد نوع التحويل: 301 دائم، 302 مؤقت، أو لا تحويل. مهم للحفاظ على SEO عند نقل محتوى.

كيف يُستخدم هذا النموذج في سير العمل التجاري


1. صفحات الهبوط والحملات

فرق التسويق تنشئ صفحات هبوط للحملات؛ كل صفحة تُسجّل في website.page وتتحكّم في الرابط والمحتوى وتاريخ النشر. تستخدم date_publish للجدولة.


2. صفحات الشركة

صفحات مثل من نحن، تواصل معنا، الشروط وسياسة الخصوصية عادةً تُدار عبر website.page وتُحدّث عند الحاجة، بينما تُنظّم مواضعها داخل القوائم عن طريق menu_ids.


3. صفحات الشكر والتأكيد

صفحات مثل "تم إرسال النموذج" تُنشأ كـ website.page. اجعل website_indexed = False حتى لا تظهر في نتائج البحث.


4. تعدد المواقع والتعريب

في بيئات متعددة المواقع يُحدّد website_id أي موقع يعرض الصفحة ويمكنك تكرار الصفحة لكل موقع مع محتوى مترجم ومخصّص.


5. المحتوى المقفول والوصول المقيد

حقل visibility يمكّنك من إنشاء صفحات للمستخدمين المسجلين فقط أو لمجموعات محددة — مفيد لمناطق الأعضاء أو الوثائق الداخلية.

كيف يطوّر المطوّرون هذا النموذج


المطوّرون يوسّعون website.page بعدة نهج، وتوريث النماذج في Odoo هو الآلية الرئيسية لذلك.


توريث النماذج

استعمل _inherit = 'website.page' لإضافة حقول جديدة أو تجاوز طرق أو فرض قيود. إبقاء التعديلات داخل وحدة منفصلة يسهل التحديث والصيانة.


إضافة حقول

عرّف حقولاً جديدة في نموذجك الموسّع واختر نوع الحقل المناسب — Char، Many2one، Boolean، Integer، Text، Selection — وفكّر في جعل بعض الحقول متعلقة بالموقع عند تعدد المواقع.


امتدادات بايثون

يمكنك تجاوز طرق مثل create، write، unlink لإضافة منطق مخصص مع استدعاء super(). توخى الحذر عند التعامل مع علاقة view_id وسلوك الحذف المتسلسل.


Odoo Studio

يسمح لك Odoo Studio بتخصيص الصفحات دون كتابة كود — مناسب للتعديلات السريعة. لكن للمنطق المعقّد أو المحتوى القادم من واجهات برمجة، الحل بالوحدات المخصّصة أكثر استدامة.

أفضل الممارسات


  • استخدم سلاجز صديقة للرابط. تجنّب المسافات والرموز الخاصة واستعمل الشرطَة (-) للقراءة الأفضل.
  • اضبط website_indexed على False لصفحات الشكر، تأكيدات الطلب، والصفحات الداخلية حتى لا تُفهرس.
  • عند تغيير روابط الصفحات فعّل التحويل المناسب (301 أو 302) للحفاظ على قيمة SEO وتجنّب الروابط المقطوعة.
  • املأ website_meta_title و website_meta_description لكل صفحة عامة لتحسين الظهور في محركات البحث.
  • عند إنشاء صفحات عبر API أو XML-RPC، أنشئ أولاً ir.ui.view ثم سجّل website.page مشيراً إلى view_id. تأكد أن نوع العرض qweb وأن المفتاح فريد.

أخطاء شائعة


  • إنشاء website.page بدون view_id صالح يسبب فشل العملية — يجب أن يوجد العرض ونوعه qweb.
  • استخدام روابط لا تبدأ بشرطة مائلة يسبب مسارات غير صحيحة؛ Odoo يتوقع مسارات مثل /contactus.
  • نسيان ضبط website_indexed على صفحات الشكر يجعلها تظهر في نتائج البحث وتضعف جودة SEO.
  • تغيير رابط صفحة دون إعداد تحويل يؤدي إلى كسر الروابط وفقدان ترتيب البحث.
  • تعديل arch لعرض محرّر سابقاً في محرّر الموقع قد لا يُطبّق إذا وُضِع noupdate في ir.model.data — قد تحتاج لإعادة ضبطه.

خاتمة


نموذج website.page مركزي لإدارة الصفحات الثابتة في Odoo؛ يخزن بيانات وصفية، عناوين URL، وإعدادات النشر بينما يبقى المحتوى الفعلي داخل ir.ui.view المرتبط.


فهم الحقول وطريقة التوريث من ir.ui.view يساعدك على تهيئة وتخصيص ودمج مواقع Odoo بكفاءة. سواء كنت استشارياً وظيفياً أو مطوّراً، إلمامك بـ website.page يوفر وقتاً ويقلّل الأخطاء.

هل تحتاج مساعدة في تنفيذ Odoo لديك؟


Dasolo تساعد الشركات في تنفيذ وتخصيص وتحسين Odoo، مع تركيز على تكاملات API والتطوير. فريقنا يملك خبرة واسعة في هندسة بيانات Odoo ونماذج مثل website.page.


إذا كنت تحتاج مساعدة في تنفيذ Odoo، صفحات موقع مخصّصة، أو تكاملات، نحن جاهزون لدعمك. احجز عرضاً توضيحياً لمناقشة مشروعك.

نموذج website.page: فهم بنية صفحات الموقع في Odoo
Dasolo 11 مارس 2026
شارك هذا المنشور
تسجيل الدخول حتى تترك تعليقاً