所以我爲Drupal 6.x創建了一個自定義模塊,它可以工作,因爲我可以在page.tpl.php頁面中看到所需的結果,但是當我編輯一個頁面從GUI(它允許PHP標記),該對象不可訪問。Drupal自定義模塊對象無法從GUI訪問PHP標籤
我可以在SESSION中設置值,我可以從GUI和模塊訪問,但這是正確的方法嗎?
這裏是我的錯誤:
Fatal error: Call to a member function getEmail() on a non-object in /var/www/domain/includes/common.inc(1695) : eval()'d code on line 221
Call Stack
# Time Memory Function Location
1 0.0003 64108 {main}() ../index.php:0
2 0.0965 11659504 menu_execute_active_handler() ../index.php:18
3 0.1040 12626908 call_user_func_array () ../menu.inc:348
4 0.1040 12627316 node_page_view() ../menu.inc:0
5 0.1040 12627532 node_show() ../node.module:1797
6 0.1040 12627848 node_view() ../node.module:1101
7 0.1040 12628192 node_build_content() ../node.module:1006
8 0.1041 12648832 node_prepare() ../node.module:1085
9 0.1041 12649112 check_markup() ../node.module:1041
10 0.1047 12671980 module_invoke() ../filter.module:457
11 0.1047 12693240 call_user_func_array () ../module.inc:462
12 0.1047 12693900 php_filter() ../module.inc:0
13 0.1048 12694164 drupal_eval() ../php.module:82
14 0.1059 12883728 eval(''?>
getEmail()是一類就是在我的自定義模塊的功能。我可以從page.tpl.php中調用它,那麼爲什麼我不能從我在Admin GUI中編輯過的頁面調用它?
編輯:
從模塊添加代碼:
//wrapperFunction() is calling the class and setting the values
// this is just a getter/setter class w/ 1 function that formats a phone number, nothing special
$custom = new CustomObj();
$custom->setEmail('[email protected],com');
return $custom;
page.tpl.php中
// calls the wrapper function and returns the object
$custom_obj = wrapperFunction();
echo $custom_obj->getEmail(); // this prints the email just fine
編輯頁面通過管理GUI(允許PHP標籤) 將此代碼添加到該頁
<?php echo $custom_obj->getEmail(); ?> // throws the error
很抱歉,這是我第一次Drupal的模塊,因此任何有識之士將是偉大的,因爲我也是第一次使用的Drupal,嘆息......
你可以粘貼你調用getEmail()的代碼嗎? – 2010-10-15 19:47:17