모듈을 Drupal 6에서 Drupal 7로 이식하고 사용자 정의 모듈의 변수를 템플릿에 전달하려고합니다. 나는 이런 일이 :Drupal 7 - 사용자 정의 모듈에서 템플릿으로 변수를 전달하는 중 오류가 발생했습니다.
function my_callback_function(){
... //some unrelated code
$page_params = array();
$page_params['items_per_page'] = 25;
$page_params['page'] = $_GET['page'] ? $_GET['page'] : 0;
$page_params['total_items'] = $data_provider->getNumItems();
$page_params['total_pages'] = $data_provider->getNumPages($page_params['items_per_page']);
return theme('my_theme', $page_params);
}
function my_module_theme($existing, $type, $theme, $path) {
return array(
'my_theme' => array(
'variables' => array('page_params' => NULL),
'template' => 'theme/my_template_file',
),
);
}
을 그리고 * my_template_file.tpl.php 내부 * 나는 $ page_params를 사용하려고 :
<?php print $page_params['total_items']; ?>
다음과 같은 오류 던져 내 사이트 수 있도록 그 모든 :
을 ,536 : 의 코드 줄 theme.inc에 해당Fatal error: Unsupported operand types in C:...\includes\theme.inc on line 1075
// Merge in argument defaults.
if (!empty($info['variables'])) {
$variables += $info['variables']; // THIS IS THE VERY EXACT LINE
}
elseif (!empty($info['render element'])) {
$variables += array($info['render element'] => array());
}
은 드루팔 6 있다는 내가) ( 호출을 테마를 떠날 경우, 오류가 표시되지 않습니다하지만 내 템플릿 내 $의 page_params 변수를 인식하지 못하는 내가 가진
return theme('my_theme', array('page_params' => $page_params));
을 내가 뭘 잘못하고 있는지 알아 내려고 API의 절반을 읽었지 만 지금까지 읽은 것처럼 이것이 맞춤 모듈의 변수를 템플릿에 전달하는 적절한 방법 인 것 같습니다. 따라서 모든 종류의 도움이 환영받을 것입니다.
미리 감사드립니다.
답변을 주셔서 감사합니다. 슬프게도 결국 코드를 작업했기 때문에 슬프게도이 코드를 시도하지 않았습니다. 그러나 어쨌든, 나는 편도가 다른 편보다 낫다는 것을 알고 싶습니다. 또는 어떤 길을 선택하든 상관 없습니다. – Clickhere
이 방법은 권장되지 않습니다. 임시 값이나 세션 값에 variable_set을 사용하지 마십시오. – anoopjohn