كيف أقوم بتخصيص فئة مجمعة في Drupal 5.x؟
-
20-09-2019 - |
سؤال
نعم، ما زلت في Drupal 5.لا تسخر.
لقد قمت بإنشاء فئة باستخدام وحدة التجميع، وعنوان URL الخاص بالفئة هو www.example.com/aggregator/categories/2
.كيف أقوم بموضوع هذا؟هل هي عقدة يمكن تصميمها باستخدام قالب، أم أن هناك عملية أخرى يجب علي استخدامها؟
يحرر:للتوضيح، أريد إضافة بعض النصوص مباشرة أسفل الرأس، وليس مجرد موضوع لعناصر التجميع الفردية.آسف، لقد تركت ذلك في البداية.
المحلول
إلقاء نظرة على مصدر (مفيد دائما):
- انظر الى
hook_menu()
, ، "جهاز التوجيه url" الخاص بدروبال ، نحن نرى الذي - التيaggregator/categories/2
يتم التعامل معه من قبل aggregator_page_category()
.تقوم هذه الوظيفة بجلب بعض البيانات ثم الاتصال_aggregator_page_list()
, ، والذي بدوره يدعوaggregator_page_list()
.تتكرر هذه الوظيفة عبر جميع عناصر الخلاصة (while ($item = db_fetch_object($result))
) في الفئة المحددة و- المواضيع لهم مع
theme('aggregator_page_item', $item)
*
ها هي نقطة السمة الخاصة بك (تجاوز السمة)، والتي يمكن تخصيصها باستخدام قالب (أو وظيفة سمة مخصصة).
يحرر:يبدو أن تصميم/تعديل الرأس أمر صعب مع معيار Drupal 5.أنظر إلى المصدر مرة أخرى: _aggregator_page_list()
ما عليك سوى ربط جميع عناصر الخلاصة (ذات السمة) ولفها في ملف <div id="aggregator">
, ، ويضيف رمز النداء والخلاصة - لا يوجد شيء يمكن ربطه هنا. _aggregator_page_list()
يحتوي على وسيطة ثالثة اختيارية $header
والتي من شأنها أن تفعل بالضبط ما تريد - لسوء الحظ، لا يتم استخدام هذه الحجة ل aggregator/categories/2
.لذا، لإضافة بعض النص إلى الرأس، سيتعين عليك الاختراق aggregator.module
.
أو قم بالترقية إلى Drupal 6، الذي أضاف تجاوز السمة للغلاف:
foreach ($items as $item) {
$output .= theme('aggregator_item', $item);
}
$output = theme('aggregator_wrapper', $output);
تعديل النهاية
لمعرفة كيفية تصميم موضوع Drupal 5، راجع http://drupal.org/theme-guide/5 , القالب.php:تجاوز وظائف الموضوع الأخرى, السمات المناسبة لوحدة التجميع, theme()
مستند API, ، إلخ.إلخ.
حظ سعيد!
* ويضيف بعض التعامل مع الفئات ويغلف جميع العناصر في حاوية واحدة أو أخرى