drupal和element_子元素(drupal 7.x)中的PHP数组
我试图学习PHP数组和drupal,并使用函数system_modules(在modules/system/system.admin.inc中)作为指导,看看是否可以重新创建和理解drupal在表中打印表单的方式。我已经在主题功能中指出了我的问题,但我不了解一些问题,我想知道是否有人能在正确的方向上帮助我 目标是打印2个字段集,每个字段集有两行(如数组中定义的)。我现在可以生成字段集,带有标题,但没有任何行。我认为这与drupal_render有关,但当我尝试修改时,结果不正确。 另外,如果我从数组键中排除hashtags(#),我不理解为什么代码会崩溃。原因是什么,PHP数组不需要hashtag 示例代码:drupal和element_子元素(drupal 7.x)中的PHP数组,php,arrays,forms,drupal,drupal-render,Php,Arrays,Forms,Drupal,Drupal Render,我试图学习PHP数组和drupal,并使用函数system_modules(在modules/system/system.admin.inc中)作为指导,看看是否可以重新创建和理解drupal在表中打印表单的方式。我已经在主题功能中指出了我的问题,但我不了解一些问题,我想知道是否有人能在正确的方向上帮助我 目标是打印2个字段集,每个字段集有两行(如数组中定义的)。我现在可以生成字段集,带有标题,但没有任何行。我认为这与drupal_render有关,但当我尝试修改时,结果不正确。 另外,如果我从
function sb_erp_test($form, $form_state){
$form['Headers'] = array('#tree' => TRUE);
$form['Headers']= array(
'#tree' => TRUE,
);
$form['Headers']['a']= array(
array('#subset1' => 'Group a Line 1 Field 1',
'#subset2' => 'Group a Line 1 Field 2',
'#Group' => 'Group a Line 1 Field 3',
'#ID' => 'Group a Line 1 Field 4',
),
array('#subset1' => 'Group a Line 2 Field 1',
'#subset2' => 'Group a Line 2 Field 2',
'#Group' => 'Group a Line 2 Field 3',
'#ID' => 'Group a Line 2 Field 4',
),
);
$form['Headers']['b']= array(
array('#subset1' => 'Group b Line 1 Field 1',
'#subset2' => 'Group b Line 1 Field 2',
'#Group' => 'Group b Line 1 Field 3',
'#ID' => 'Group b Line 1 Field 4',
),
array('#subset1' => 'Group b Line 2 Field 1',
'#subset2' => 'Group b Line 2 Field 2',
'#Group' => 'Group b Line 2 Field 3',
'#ID' => 'Group b Line 2 Field 4',
),
);
foreach(element_children($form['Headers']) as $tmp){
//drupal_set_message($tmp);
$form['Headers'][$tmp] += array(
'#type' => 'fieldset',
'#title' => t($tmp),
'#collapsible' => TRUE,
//'The theme reference generates the rows.
'#theme' => 'test_fieldset',
'#header' => array(
//array('data' => t('Enabled'), 'class' => array('checkbox')),
t('ID'),
t('subset1'),
t('subset2'),
//array('data' => t('Operations'), 'colspan' => 3),
),
);
}
return $form;
}
function theme_test_fieldset($variables){
$form = $variables['form'];
// Individual table headers.
$rows = array();
// Iterate through all the modules, which are
// children of this fieldset.
foreach(element_children($form) as $key){
// Stick it into $module for easier accessing.
$module = $form[$key];
//$row = array();
//$row[] = array('class' => array('checkbox'), 'data' => drupal_render($module['enable']));
$row[] = '<label><strong>' . drupal_render($module['#ID']) . '</strong></label>';
// $row[] = drupal_render($module['version']);
// Add the description, along with any modules it requires.
$description = drupal_render($module['#subset1']);
$description3 = drupal_render($module['#subset2']);
$row[] = array('data' => $description, 'class' => array('description'));
$row[] = array('data' => $description3, 'class' => array('description'));
// Display links (such as help or permissions) in their own columns.
$rows[] = $row;
}
return theme('table', array('header' => $form['#header'], 'rows' => $rows));
}
功能sb\u erp\u测试($form,$form\u state){
$form['Headers']=数组('#tree'=>TRUE);
$form['Headers']=数组(
“#tree”=>正确,
);
$form['Headers']['a']=数组(
数组(“#subset1”=>“a组第1行字段1”,
“#subset2”=>“a组第1行第2字段”,
“#组”=>“a组第1行第3字段”,
“#ID”=>“a组第1行字段4”,
),
数组(“#subset1”=>“a组第2行字段1”,
“#subset2”=>“a组第2行第2字段”,
“#组”=>“a组第2行第3字段”,
“#ID”=>“a组第2行字段4”,
),
);
$form['Headers']['b']=数组(
数组(“#subset1”=>“b组第1行字段1”,
“#subset2”=>“b组第1行第2字段”,
“#组”=>“b组第1行第3字段”,
“#ID”=>“b组第1行第4字段”,
),
数组(“#subset1”=>“b组第2行字段1”,
“#subset2”=>“b组线路2字段2”,
“#组”=>“b组第2行第3字段”,
“#ID”=>“b组第2行第4字段”,
),
);
foreach(元素_子元素($form['Headers'])作为$tmp){
//drupal\u set\u消息($tmp);
$form['Headers'][$tmp]+=array(
“#类型”=>“字段集”,
#title=>t($tmp),
“#可折叠”=>正确,
//'主题引用生成行。
“#主题”=>“测试#u字段集”,
“#头”=>数组(
//数组('data'=>t('Enabled'),'class'=>array('checkbox'),
t('ID'),
t(“第1分节”),
t(“第2小节”),
//数组('data'=>t('Operations'),'colspan'=>3),
),
);
}
返回$表格;
}
函数主题\测试\字段集($variables){
$form=$variables['form'];
//单个表标题。
$rows=array();
//迭代所有模块,这些模块是
//这个领域的孩子们。
foreach(元素\子元素($form)作为$key){
//将其插入$module以便于访问。
$module=$form[$key];
//$row=array();
//$row[]=array('class'=>array('checkbox'),'data'=>drupal_渲染($module['enable']);
$row[]='”。drupal_渲染($module['\ID'])。;
//$row[]=drupal_渲染($module['version']);
//添加描述以及它所需的任何模块。
$description=drupal_render($module['#subset1']);
$description3=drupal_渲染($module['#subset2']);
$row[]=array('data'=>$description,'class'=>array('description');
$row[]=array('data'=>$description3,'class'=>array('description');
//在自己的列中显示链接(如帮助或权限)。
$rows[]=$row;
}
返回主题('table',array('header'=>$form['#header'],'rows'=>$rows));
}
并且应该告诉您需要知道的一切基于该描述,我的数组不应该使用hashtags。然而,当我删除它们时,php显示一个空白页面。我需要创建嵌套数组吗?要分别包括#type、#markup和value吗?