0

如果我这样问问题可能会更容易 - 使用下面的代码片段,我将如何编写代码以仅在状态值为“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表格时,' Change '链接只会在status的值为“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'],
      );
    }
4

1 回答 1

0

您不应该真正在数组的每个元素上调用 drupal_render() 。

drupal_render 是一个应用于可渲染数组的主题函数。检查 drupal.org 上的 drupal 文档 ...在 Drupal 7 中渲染数组

实际上,这意味着您应该在创建可渲染数组之前在模块中应用您的逻辑。实际上,您的可渲染数组只是一组遵循 Drupal 主题结构的值。

创建数组时,您的逻辑就是典型的 PHP。使用 Drupal,您应该真正尝试开发模块。它将帮助您输出结果并帮助您调试代码。

于 2013-11-13T17:36:17.270 回答