这是针对DRUPAL忍者的:
示例:
$items['save_video_data/%my_custom_cck_type/%'] = array(
'type' => MENU_CALLBACK,
'page callback' => 'save_data_to_db',
'access arguments' => array('Save Data to my_custom_cck_type'),
'page arguments' => array(2),
'type' => MENU_CALLBACK,
'title' => 'Save a Data!'
);
现在,通过上面的代码,我的理解是我告诉drupal加载my_custom_cck_type并使用array(2)位置(我的参数)作为节点的id字段在数据库中找到它。
我也明白,我需要创建一个my_custom_cck_type_load()函数。
问题:
my_custom_cck_type_load()中的内容是什么?如何将所有与CCK类型关联的自定义字段抓取到返回的对象中?或者drupal为我做这个吗?
答案 0 :(得分:0)
我将使用node_load作为示例。开箱即用Drupal的菜单系统将在诸如。
之类的路径上加载节点node/1/view
node/2/view
node/3/view
(注意:路径的“/ view”部分经常被隐藏,因为它是默认选项卡)
执行此操作的菜单项设置如下所示:
$items['node/%node/view'] = array(
'type' => MENU_DEFAULT_LOCAL_TASK,
'title' => 'blabla',
'page callback' => 'node_view',
'page arguments' => array(1)
/* more stuff */
);
在实际路径中,%节点由数字(节点的NID)替换。这将导致菜单使用该数字作为参数触发node_load。我们还使用%node作为node_view回调的页面参数。回调接收的参数将是完全加载的节点对象。