يمكنك استدعاء قالب وجهات النظر دروبال واحد لوجهات نظر متعددة؟
-
20-08-2019 - |
سؤال
ولقد استعملت المشاهدات معالج سمات لإخراج القالب وأعطاني قطعة التعليمات البرمجية التالية للذهاب في template.php.
وكنت أفضل أن فقط الحفاظ على قالب واحد، لذلك كل مهامي سيتم استدعاء نفس واحدة، وبدلا من كتابة العديد من الإصدارات من نفس الوظيفة، وأنا أتساءل عما اذا كان هناك طريقة لأسماء الدالة سلسلة معا؟ شيء من هذا القبيل:
function phptemplate_views_view_list_recent_articles($view, $nodes, $type),
phptemplate_views_view_list_popular_articles($view, $nodes, $type) {
$fields = _views_get_fields();
$taken = array();
// Set up the fields in nicely named chunks.
foreach ($view->field as $id => $field) {
$field_name = $field['field'];
if (isset($taken[$field_name])) {
$field_name = $field['queryname'];
}
$taken[$field_name] = true;
$field_names[$id] = $field_name;
}
// Set up some variables that won't change.
$base_vars = array(
'view' => $view,
'view_type' => $type,
);
foreach ($nodes as $i => $node) {
$vars = $base_vars;
$vars['node'] = $node;
$vars['count'] = $i;
$vars['stripe'] = $i % 2 ? 'even' : 'odd';
foreach ($view->field as $id => $field) {
$name = $field_names[$id];
$vars[$name] = views_theme_field('views_handle_field', $field['queryname'], $fields, $field, $node, $view);
if (isset($field['label'])) {
$vars[$name . '_label'] = $field['label'];
}
}
$items[] = _phptemplate_callback('views-list-first-with-abstract', $vars);
}
if ($items) {
return theme('item_list', $items);
}
}
شكرا،
ستيف
المحلول
هل يمكن أن يكون مجرد القوالب التي تحتاج إليها الدعوة إصدار واحد من وظيفة فعلية.
وشيء من هذا القبيل:
function phptemplate_views_view_list_recent_articles($view, $nodes, $type){
actual_template_function($view, $nodes, $type);
}
function phptemplate_views_view_list_popular_articles($view, $nodes, $type){
actual_template_function($view, $nodes, $type);
}
نصائح أخرى
وتصحيح واحدة فوق ذلك تباطأ لي باستمرار ل1/2 ساعة ... حاجتك لتشمل العودة:
return actual_template_function($view, $nodes, $type);
وبخلاف ذلك، يعمل كبيرة.
لا تنتمي إلى StackOverflow