لماذا Drupal theming صعبة للغاية؟ أي نصائح لتبسيطها أو تعلمها بشكل أسرع؟

StackOverflow https://stackoverflow.com/questions/3706118

  •  02-10-2019
  •  | 
  •  

سؤال

لقد تم الترميز في PHP لمدة 4 سنوات ، وحتى أجدها معقدة للغاية وصعبة الفهم. ليس لدي أي فكرة كيف يتوقعون من المصممين إدارةهم.

أعلم أن العوامل الأساسية ، والملفات مع ملفات TPL ، وقوالب طرق العرض ، والتفكير في القوالب وما إلى ذلك.

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

ومع ذلك ، حتى حتى أ لا يستطيع المطور فهمهم, ، إنه بالتأكيد مهندس مفرط!

ربما كان هذا خطأي ، ربما لم أتعلم دروبال بشكل صحيح. في هذه الحالة ، هل هناك نظام خطوة بخطوة ليصبح معلمًا دروبال؟

هل كانت مفيدة؟

المحلول

الموضوع ليس بهذه الصعوبة ، إذا كنت تعرف فقط PHP الأساسي. لديك 3 طرق لتغيير الترميز ، CSS و JS ، يجب أن تكون قادرًا على التعامل معها.

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

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

  • وظائف الموضوع. يمكنك الكتابة فوق وظائف السمة لتغيير العلامات المستخدمة. تحتاج فقط إلى إنشاء وظيفة تسمى yourtheme_[theme_function_name]. لا تحتاج إلى فهم الكثير من PHP للقيام بذلك. في كثير من الأحيان ، يمكنك فقط نسخ وظيفة السمة الأصلية ، وإجراء بعض التعديلات فيها للحصول على الترميز الذي تريده.

مع ما سبق يمكنك القيام بنسبة 90-95 ٪ مما تحتاجه. النماذج مميزة بعض الشيء لأنك في Drupal 6 لا تستطيع تغييرها (بسهولة) في موضوعك. بدلاً من ذلك ما تريده هو إنشاء وحدة صغيرة واستخدامها hook_form_alter, ، مما يتيح لك تعديل النموذج ، والنص المستخدم على الأزرار وما إلى ذلك. يتم تغيير هذا في Drupal 7 ، والذي سيكون أسهل في الموضوع.

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

نصائح أخرى

ربما يجب أن تحصل على نسخة من الواجهة الأمامية دروبال.

في رأيي ، فإن Drupal thering ليس صعبًا بمجرد لف رأسك حول المفاهيم مثل القوالب والتجاوز وملفات .info ووظائف المعالجة المسبقة. هذه الأشياء لا ترتبط ارتباطًا مباشرًا بمهارات PHP ، الأمر كله يتعلق بفهم النظام.

من المثير للاهتمام أن نرى أنك سمة ، ومع ذلك فأنت تتحدث فقط عن PHP ، وليس CSS و HTML. في تجربتي ، يمكن إنجاز الكثير من مهام Theming مع CSS ، دون حتى لمس PHP.

أخيرًا ، لا أعرف ما إذا كنت تستخدم موضوع قاعدة/بداية (مثل زن أو منشأ) سابقا. أوصي باستخدام موضوع أساسي وتحقيق تصميمك الخاص كموضوع فرعي.

معظم الناس يحصلون على "ahah!" لحظة عندما يبدأ التصرف فجأة في منطقي.

أود أن أزعم أن هذا ربما يكون أكثر صرامة بالنسبة لمطوري PHP ذوي الخبرة ، حيث يجب عليك تجاوز الكثير من المفاهيم التي لا معنى لها في الفانيليا PHP ("تسمى الوظيفة بطريقة سحرية في الوقت المناسب ... بسبب كيفية إنه اسم الشيئ?!")

إجابات @googletorp شاملة للغاية ، لذلك سأضيف فقط بعض النصائح العملية التي ساعدتني على طول:

1) حاول بناء وحدة نمطية تنفذ إخراجها الخاص والخطافات البسيطة. الخطافات ووظائف الموضوع تجعل ملف كثير مزيد من الشعور عندما ترى كيف تدعوها الوحدات النمطية واستخدامها بالفعل.

2) الاستفادة الليبرالية ل devel الوحدة النمطية ، وخاصة قائمة سجل السمة (لاحظ كيف تتغير عند إضافة وظيفة سمة جديدة) وعلامة التبويب "العرض" و dpm() و dvm() المهام

3) شراء كتاب القديم من Tyme Dead Tree على تصريح Drupal. تكون المستندات عبر الإنترنت رائعة حقًا إذا كنت تعرف بالفعل ما تفعله ، ولكن يمكن أن تكون مربكًا للغاية إذا لم تكن متأكدًا مما تبحث عنه.

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

حافظ عليها! نظام السمة سهل الاستخدام في الواقع بمجرد اكتشافه.

للإجابة على سؤالك على لماذا هو صعب جدا:

قد تبدو موضوعات Drupal ساحقة ، نظرًا للكمية الهائلة من الاحتمالات ، انظر Googletorps Respons للحصول على نظرة عامة جيدة. إن وجود "طرق عديدة لفعل شيء واحد" يجلب الطاقة: يمكن لمستخدمي الطاقة اختيار أفضل ما في جميع الاحتمالات. لكنه يجلب أيضًا التعقيد: لا يحصل المستخدمون الجدد على تقدم جيد ، لأنه لا يوجد "يجب أن تفعل ذلك بهذه الطريقة. Fullstop."

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

username<menuitem<menuitem<menuitem<menu<block<region<page. 

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

أخيرًا ، هناك سبب آخر يصعب تعلمه ، هو أن وثائق Drupal Online هي أكثر ويكي ثم دليل للقراءة من الطرف. هناك كتب رائعة تملأ GAP HTAT ، وسيتعين عليك شرائها.

إذا لم تكن قد رأيت ذلك بالفعل ، فهذا عرض رائع حول سبب صعوبة Drupal 6 ، وكيف تم تحسينه في Drupal 7. هناك أمل! كان الفيديو أكثر منطقية بالنسبة لي مرة ثانية أشاهدها بعد تجربة المزيد.http://sf2010.drupal.org/conference/sessions/design-and-theming-whats-new-drupal-7

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

هذا نعمة ضخمة لأشكال العزف. شاهد مقطع فيديو قصير يشرحه أفضل مما أستطيع هنا: http://drupaldojo.com/session/fine-tuning-ui-theming-forms-drupal-60

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top