Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php和Drupal:当需要在Drupal中使用Php时,如何隐藏/显示我的链接?_Php_Arrays_If Statement_Drupal 7 - Fatal编程技术网

Php和Drupal:当需要在Drupal中使用Php时,如何隐藏/显示我的链接?

Php和Drupal:当需要在Drupal中使用Php时,如何隐藏/显示我的链接?,php,arrays,if-statement,drupal-7,Php,Arrays,If Statement,Drupal 7,如果我以这种方式问这个问题,可能会更容易一些——使用下面的代码片段,我将如何编写代码以仅在状态值为“A”时显示“Change”链接 我想我让这变得更加困难了,但是drupal模块结构和php的使用让我很头疼,因为我只是在学习模块开发 下面数组中显示的链接显示在我的每行末尾。我只希望它在状态等于“A”时出现 因为这个链接在这个数组中,所以我不知道如何以及在哪里实现它。我只想要这样一个[if语句]: if (drupal_render($form['status'][$key]['status'])

如果我以这种方式问这个问题,可能会更容易一些——使用下面的代码片段,我将如何编写代码以仅在状态值为“A”时显示“Change”链接

我想我让这变得更加困难了,但是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'],
      );
    }

您不应该对数组的每个元素都调用drupal_render()

drupal_render是应用于可渲染数组的主题化函数。查看drupal.org上的drupal文档

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


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

在上面的代码中,您使用
='A'
测试是否相等,但它应该是
='A'
。由于您的代码现在已经编写好,您使用的是赋值而不是比较。嗨,Ryan-感谢您的回答,很抱歉,我只是在使用if/then语句的示例编码。我将对此进行清理,但我的问题是如何检查保存这些值的数组之外的状态?使用drupal会让它变得更加困难。这实际上会输出什么:
drupal_render($form['status'][$key]['status'])
它会输出一个字母,或者a或U。单击链接,可以更改值。但是我只想在值为“A”时显示链接。你是对的,因为我在数组中有点卡住了,我不能把if语句放在链接行的正上方。