مشاكل ومبادئ التخصيص للإصدار المحاصر من Bitrix24



توصلت العديد من الشركات في مرحلة ما إلى استنتاج مفاده أنه يجب أتمتة عدد من العمليات التجارية حتى لا تفقد مكانها في الشمس وعملائها. لذلك ، بدأ العملاء بشكل متزايد في "رقمنة" أعمالهم.

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

ولكن ، للأسف ، ليس للمطورين ، وخاصة المبتدئين.

يكتب الخبراء مقالات تدريبية على 1C-Bitrix ووحدات مختلفة من النظام ، ولكن بعد قراءتها ، لا يزال المبتدئون ليس لديهم صورة مشتركة ويفهمون كيف يعمل كل شيء على هذا النظام الأساسي. هناك مقالات على الإنترنت حول تطوير أفضل الممارسات على الأطر ، ولكن تم تجاوز التطوير على B24. هناك شركات تعلمت صنع منتج عالي الجودة ، لكنها تحافظ على سرية أفضل ممارساتها.

إذا كنت تريد أن تعرف كيف يمكنك العمل مع Bitrix24 ، مع الحفاظ على لون الشعر الأصلي ، مرحبًا بك في القط.

Julia Silantieva هي مطور رائد لـ Bitrix24 في وكالة ITECH الرقمية ذات الدورة الكاملة.

ما هو Bitrix24


على الأرجح ، يعرف كل شخص ، بسبب خدمته أو اهتماماته ، على الأقل مرة واحدة تطوير Bitrix24 ، المنتج 1C-Bitrix: إدارة الموقع (BUS) . هذا هو نظام إدارة المحتوى لإنشاء مواقع الويب أو ، من خلال تعريف Bitrix نفسه ، نظام إدارة موارد الإنترنت.

لكن قلة من الناس يعرفون أن بوابة شركة Bitrix24 هي خدمة مكتوبة في 1C-Bitrix.

يحتوي Bitrix24 على حلين: السحابة والمربع. وهي تختلف ، كما يوحي الاسم ، حسب موقع كود البوابة: على خوادم Bitrix أو على خادم العميل. يوفر الصندوق مساحة أكبر للخيال ، ولكن لديه ترخيص أكثر تكلفة ويحتاج إلى دعم الخادم ، والسحابة أرخص ، ولكن لديها عدد من القيود على التخصيص.

بشكل عام ، يمكنك تعديل كلا الإصدارين السحابي والمعلب. يعتمد الحل الذي يجب استخدامه على احتياجات العميل.

في إطار هذه المقالة ، أود أن أدرس بمزيد من التفصيل النهج العامة للتطوير على النسخة المعبأة من Bitrix24 .

حل الصندوق: هندسة المنتجات


داخل الخدمة يكمن إطار Bitrix ، وهو جوهر الموقع.

يحتوي Bitrix Framework على وحدات ومكونات:

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



جوهر Bitrix Framework هو الملفات الموجودة في الدليل / bitrix . لا يمكنك إجراء تغييرات على النواة ( بشكل عام. مطلقًا. لا تفكر حتى في ذلك ) لعدة أسباب:

  • عند تحديث النظام ، سيتم مسح التغييرات التي تم إجراؤها ؛
  • ;
  • , — , .

ومع ذلك ، هناك تحذير كبير آخر.

تشتمل بوابة Bitrix24 ، مثل أي موقع آخر مكتوب بلغة 1C-Bitrix ، على قالب موقع ، وجزء عام (أي أقسام وصفحات) ، ومكونات وقوالب مكونات. ويختلف عن موقع عادي في أنه عند تثبيت التحديثات يتم تحديث كل ما سبق أيضًا. لذلك ، يمكن أيضًا اعتبار الجزء العام ونموذج Bitrix24 والمكونات القياسية جوهر Bitrix24 . وهذا يعني أنه لا يمكنك إجراء تغييرات فيها أيضًا (على الأقل لأنه سيتم حذفها أثناء التحديث التالي).



ولكن لا تزال هناك ثغرات ، ومن الحقيقي إجراء التغييرات دون ألم.

قابلية التحديث


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

يتم تقديم منتجات Bitrixoid الرئيسية الجديدة في مؤتمراتها ، التي تعقد كل ستة أشهر (تم عقد آخرها في أبريل عبر الإنترنت ) ، ولكن يتم إصدارها مع تصحيحات كل يوم تقريبًا. مواكبة يساعد تحديثات البريد الإلكتروني. يمكنك توصيله في لوحة الإدارة لأي بوابة على Bitrix24: Marketplace -> Platform Update -> Advanced -> Subscribe لتلقي معلومات حول التحديثات عن طريق البريد .



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

مبادئ التخصيص


يجب تنفيذ جميع عمليات التطوير في مجلد واحد - / محلي .

لإضافة وظائفك إلى الموقع المكتوب في BUS ، ما عليك سوى العثور على المكون الذي تحتاجه ، ونسخه إلى المجلد / المحلي ، وتخصيص الفصل والقالب المكون.

في Bitrix24 ، هذا النهج خاطئ بشكل أساسي.

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

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

إذن ، ما هو المطور الذي يحتاج إلى تغيير أو إضافة نوع من المنطق؟

هناك عدة حلول للمشكلة:

  • الاستفادة من بعض نقاط الإدخال المسموح بها في الواجهة والوظائف المؤجلة ؛
  • تغيير نتيجة تنفيذ المكون وإضافة الأنماط والنصوص الخاصة بك إليه ؛
  • إنشاء عملية عملك الخاصة أو إعداد الروبوتات ؛
  • ربط الأحداث على جانب PHP أو JS ؛
  • إنشاء نوع الحقل الخاص بك (على سبيل المثال ، القطعة) ؛
  • اكتب طلبك.
  • اكتب وحدتك.

لكل مهمة عليك أن تختار الأداة الأنسب.

محلي


المجلد الرئيسي حيث يمكن للمطور ويجب عليه تشغيل يديه هو / محلي . في البداية ، ليس في المشروع ، لذلك يمكنك ملء المجلد حسب تقديرك ، ولكن من حيث المسارات ، من المهم اتباع تعليمات Bitrix ، وإلا فلن ترى المنصة مكونات ووحدات مخصصة.

نحن نقدم هيكل مجلد عالمي / محلي :



  • تحتوي الأنشطة على إجراءات العمليات التجارية.
  • تحتوي المكونات على مكونات مكتوبة ذاتيًا (يجب عدم الخلط بينها وبين مكونات Bitrix المخصصة!).
  • المغلق ، الخطوط ، صور ، شبيبة تحتوي على الملفات والموارد المقابلة.
  • modules . , .
  • php_interface php-. ajax-, , , .
    • init.php — Bitrix Framework. . , , . init.php , , , init.php . , , __autoload composer.

  • templates .
  • tools cron .

البنية مرنة للغاية: عندما تكون ضرورية (على سبيل المثال ، عندما تظهر مهام جديدة) ، يمكنك إضافة أقسام جديدة إلى المجلد ، بدلاً من قضاء بعض الوقت في تطوير بنية جديدة.

عند معالجة المجلدات ، تعطى الأولوية دائمًا للمجلد / local over / bitrix . هذا يعني أنه إذا كانت قوالب الموقع التي تحمل الاسم نفسه موجودة في / local / templates / و / bitrix / templates / ، فسيتم توصيل القالب من / local .

يتبع ملاحظة هامة من هنا : لكي يفهم Bitrix أنه من الضروري أخذ قوالب مكونات مخصصة من المجلد / المحلي ، يجب أن يكون له بنية معينة:

/ local / templates / site_template / components / namespace / Compon_name / template_name / .

في الوقت نفسه ، يجب أن يحتوي مجلد قالب الموقع في / local (نحن نتحدث عن Bitrix24 ، وليس BUS) على قالب تم إنشاؤه بواسطة Bitrix ( / bitrix / templates / bitrix24 / ). في هذه الحالة فقط ، سيفهم النظام أنه من الضروري توصيل المكون من / local .

ما هي الأشياء الأخرى التي يجب وضعها في الاعتبار عند التصميم؟


1. يجب تخزين جميع متغيرات اللغة في ملفات اللغة المقابلة. ملف اللغة هو برنامج نصي php يخزن ترجمات عبارات اللغة إلى لغة معينة. يتكون هذا البرنامج النصي من مصفوفة $ MESS ، ومفاتيحها هي معرفات عبارات اللغة ، والقيم عبارة عن ترجمات إلى اللغة المقابلة.

لكل لغة مجموعتها الخاصة من ملفات اللغة المخزنة في الدلائل الفرعية / اللغة / بنية ملف النظام أو الوحدة النمطية.

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

اقرأ المزيد حول كيفية استخدام ملفات اللغة في مستند رسمي .

2. عند العمل مع المكونات ، لا تحتاج إلى الوصول إلى قاعدة البيانات مباشرة. يتضمن مفهوم العمل مع المنتج العمل مع البيانات من خلال وظائف API. يمكن أن تختلف بنية البيانات من إصدار إلى آخر ، وتحتفظ الوظائف بالتوافق مع الإصدارات السابقة. لا تشجع Bitrix بشدة على استخدام استعلامات قاعدة البيانات المباشرة ، حيث يمكن أن ينتهك تكامل البيانات ويؤدي إلى عدم تشغيل النظام.

علاوة على ذلك ، إذا كنا نتحدث عن جداول النظام الخاصة بـ Bitrix Framework نفسه ، فهذا ليس موضع ترحيب فحسب ، ولكن من حيث المبدأ غير مدعوم. من الضروري العمل معهم من خلال واجهة برمجة تطبيقات النظام ، نظرًا لأن البنية المادية لقاعدة البيانات يمكن أن تتغير ، وحتى واجهة برمجة التطبيقات الأقدم مضمونة للعمل.

3. عمل الإصدار في مشروع باستخدام نظام التحكم في الإصدار. في الوقت نفسه ، نظرًا لخصائص التطوير في Bitrix ، فمن المنطقي توفير "خصوصية" في إعداد المستودع للمشروع: لفصل الملفات الأساسية والمخصصة.

4. اقرأ الاحواض. في العديد من القضايا المحلية ، خاصة الشائعة مع 1C-Bitrix ، يمكنك العثور على مقالات أو وثائق منفصلة. بالنسبة للمطورين الذين اعتادوا على google مباشرة باللغة الإنجليزية ، سيكون من المفاجئ أن تكون معظم المقالات مكتوبة باللغة الروسية. :)

وتحتاج إلى تذكر القاعدة الذهبية التي ينصح المطورون المتمرسون بالالتزام بها: رمز أقل - عدد أخطاء أقل .

مجموع


يمكنك اليوم ملاحظة عدم التوازن بين العرض والطلب في سوق التطوير لـ Bitrix24. تزداد الحاجة إلى المطورين بسرعة ، ولا يرغب العديد من الخبراء في المشاركة في المنتج من Bitrix ، لأنهم على دراية بأقدم بنات أفكارهم والذين ماتوا عمليًا - BUS.

لكن الشيطان ليس رهيبًا للغاية ، وحتى المطورين المبتدئين سيكونون قادرين على التعود وإنتاج منتج عالي الجودة ، وهو "ليس من العار أن يظهر الأولاد" © habr.

All Articles