it-swarm.asia

كيف يمكنني تمرير المعلمات إلى كتلة؟

هل من الممكن تمرير المعلمات برمجيًا إلى كتلة؟

8
underq

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

لديك خياران "سهلان" حقًا:

  • اكتب قالبك الخاص: إنه أمر سهل للغاية ، إذا كان بإمكانك القيام ببعض PHP. إنشاء وحدة وتنفيذ hook_block () . هناك العديد من أمثلة على Drupal.org .
  • استخدم اللوحات و/أو وحدة المشاهدات: اللوحات تسمح لك بإنشاء أجزاء يمكن أن تحتوي على جميع أنواع المتغيرات والسياقات ، ولكن بدون موضوع خاص ، يجب أن تعيش الكتلة في منطقة المحتوى ، ليست Drupal ؛ لذا فهي تعتمد على موقعك ، والمكان الذي تريده للكتلة. يمكن للعروض إنشاء الكتل أيضًا ، وتلقي الحجج من عنوان URL للصفحة ، والمستخدم الحالي ، وكذلك الشفرة المخصصة عبر المشاهدات PHP الوحدة . تعمل المشاهدات والألواح معًا بشكل جيد جدًا.
7
Jim Kirkpatrick

بالنسبة للحالة المتخصصة (ولكن المنتشرة) حيث يكون الحظر هو عرض لطريقة عرض ، يمكنك استخدام views_embed_view لعرض الكتلة مع المعلمات التي تحصل عليها عبر عوامل التصفية السياقية للعرض (أي عادة من عنوان URL).

فمثلا:

print views_embed_view('news', 'panel_pane_1', 'world');

سيتم تمرير أي معلمات بعد الثانية كقيم تصفية سياقية إلى الكتلة.

المصدر: معاد كتابته من هذه الإجابة بواسطة David Thomas ، مرخص CC-BY) -SA 3.

2
tanius

تكوين عامل تصفية السياق اختر "توفير القيمة الافتراضية" type => "php code" واستخدم الوسيطة التي تريدها. مثال: رجوع arg (1) ؛

2
hasan

لا يمكنك تمرير أي شيء برمجياً إلى كتلة AFAIK. يمكنك السماح بأن تكون الكتلة قابلة للتهيئة (باستخدام hook_block_configure في D7). بدلاً من ذلك ، يمكنك إنشاء وظيفة السمة الخاصة بك ، ويمكنك تمرير الحجج لذلك. ما الذي تحاول فعله؟

2
Andy