簡體   English   中英

PHP和Drupal:在Drupal中使用php時,如何隱藏/顯示我的鏈接?

[英]Php and Drupal: how do I hide/display my link when needed using php within Drupal?

如果我這樣問問題,也許會更容易-使用下面的代碼片段,僅當狀態值為“ 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表時,“ 更改 ”鏈接只會出現在最后一欄時的狀態值是“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 7中的渲染數組

實際上,這意味着您應該在創建可渲染數組之前在模塊中應用邏輯。 實際上,可渲染數組只是遵循Drupal主題結構的一堆值。

創建數組時,邏輯只是典型的PHP。 使用Drupal,您應該真正嘗試使用devel模塊。 它將幫助您輸出結果並幫助您調試代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM