如果我这样问这个问题也许更容易 - 使用下面的编码片段,我将如何编写代码以仅在状态中的值为"A"时才显示"更改"链接?
我认为我正在使这变得比它必须的更难,但是使用drupal模块结构和php让我感到困惑,因为我只是在学习模块开发。
下面数组中显示的链接出现在我每一行的末尾。 我只希望它在状态等于"A"时出现。
因为这个链接在这个数组中,所以我无法弄清楚如何以及在何处实现它。 我只想要这样的 [if 语句]:
if (drupal_render($form['status'][$key]['status']) == 'A',)
echo l(t('Change'), 'rooms/avail_room/' . $key . '/' . arg(1), array('attributes' => array('class' => 'room-stat-avail'))),
else{
echo "";
}
因此,当显示 HTML 表时,"更改"链接只会在状态值为"A"时出现在最后一列中
不敢相信我让模块工作,但无法根据需要打开/关闭此链接。 请参阅下面的代码片段:
function team_room_available_form($form) {
$output = "No space available.";
if ($form['roomid']) {
foreach (element_children($form['roomid']) as $key) {
$rows[] = array(
'data' => array(
drupal_render($form[''][$key]),
drupal_render($form['room_title'][$key]),
drupal_render($form['username'][$key]),
drupal_render($form['status'][$key]['status']),
l(t('Change'), 'rooms/avail_room/' . $key . '/' . arg(1), array('attributes' => array('class' => 'room-stat-avail'))),
),
'class' => $form['status'][$key]['#value'],
);
}
你不应该真的在数组的每个元素上调用 drupal_render()。
drupal_render 是应用于可渲染数组的主题函数。检查 drupal 文档 drupal.org ...Drupal 7 中的渲染数组
实际上,这意味着您应该在创建可渲染数组之前在模块中应用逻辑。实际上,您的可渲染数组只是一堆遵循 Drupal 主题结构的值。
当你创建数组时,你的逻辑只是典型的PHP。使用Drupal,您应该真正尝试devel模块。它将帮助您输出结果并帮助您调试代码。