سؤال

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

فكرت في وضع هذه الوظيفة في mytheme_preprocess_node ولكن عندما أضع متغيراتا بسيطة $ ["اختبار"] = "اختبار"، ثم قم بإجراء اختبار PRINT $ في أحد ملفات .tpl التي تنتج محتوى الكتلة، لا شيء يظهر.

هل أنا على الطريق الصحيح؟

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

المحلول

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

يمكن أن يشمل هذا القالب استعلامات SQL.

نصائح أخرى

الشيء هو أن وظيفة preprocess_ مرتبطة بحقالب معين. ستولد صفحة Preprocess حتى تتوفر متغيرات متوفرة في Page.tpl.php بينما ستفعل ذلك Preprocess_Node من أجل Node.tpl.php. لذلك يمكنك إما استخدام MYTHEME_PREPROCESS والتي يجب تشغيلها لجميع القوالب أو استخدام mytheme_preprocess_templatename. لست متأكدا تماما كيف تكون مخططات التسمية مقابل نظام تسمية القالب. ومع ذلك، فإن الوحدة النمطية DEVEL لديها خيار يتيح لك معرفة الوظائف المسبقة التي يتم تشغيلها على الصفحة التي تنظر إليها، والتي يجب أن تكون قادرا على مساعدتك لمعرفة ما يجب استدعاء وظيفة Preprocess إذا كانت لديك مشاكل في الحصول عليها.

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