2011-12-28 10 views
0

Iamでテーブルのテーマを使用しています。以下は、テーブルを作成して行と列に値を表示するための私のコードです。コードには私のテーマの登録も含まれています。値はfileId、fileNameなどのコード内にある6つの配列から来ています。このコードを使って、私はこの出力を得ていますhttp://www.image-share.com/ijpg-1166-290.html。 私は希望する出力はhttp://www.image-share.com/ijpg-1166-289.htmlのようになります。配列は正しく表示されているので、ここに表示されているように値が正常に出力されていますhttp://www.image-share.com/ijpg-1166-288.htmlチェックボックスは必要ありませんが、前の例で使用したのでこのコードを使用しました。Drupal 6テーブルをテーマにして、配列を行と列に出力する方法はありますか?

私は、この奇妙な結果を得ている間違いがどこにあるのか教えてください。

function freeway_dashboard_details(){ 

$pidobtained = $_GET['project_id'] ; 


    $fileId = array(); 
    $fileName = array(); 
    $srcLang = array(); 
    $targLang = array(); 
    $statusId = array(); 
    $statusDesc = array(); 

    $LoginClient = new SoapClient("https://freeway.demo.company.com/vojo/FreewayAuth.asmx?wsdl", array("trace"=>1)); 
    $ServicesLink = new SoapClient("https://freeway.demo.company.com/vojo/Service.asmx?wsdl", array("trace"=>1)); 

     try 
     { 
      $arrResponse = $LoginClient->Logon(array ('Username'=>'','Password'=>'')); 
      $ticket = ($arrResponse->LogonResult); 
      $fileStatus = $ServicesLink->GetFileStatus(array('Ticket'=>$ticket,'ProjectID'=>$pidobtained,'SourceLanguageID'=> "", 'TargetLanguageID'=> "",'FileID'=> "",'Filename'=>"")); 
      $arrayPid = array(); 

      foreach($fileStatus->GetFileStatusResult->FileStatuses->FileStatus as $fileStatusObtained) 
      { 
       $arrayPid = get_object_vars($fileStatusObtained); 
       //print_r($fileStatusObtained->FileID);     
       $fileId [] = $fileStatusObtained->FileID; 
       $fileName[] = $fileStatusObtained->Filename; 
       $srcLang[] = $fileStatusObtained->SourceLanguageID; 
       $targLang[] = $fileStatusObtained->TargetLanguageID; 
       $statusId[] = $fileStatusObtained->StatusID; 
       $statusDesc[] = $fileStatusObtained->StatusDescription; 
      } 





      for($n=0;$n <count($fileId);$n+=1){ 
      $options[$fileId[$n]] = ''; 
      $form[$fileId[$n]]['FileID'] = array('#value' => $fileId[$n]); 
      $form[$fileName[$n]]['FileName'] = array('#value' => $fileName[$n]); 
      $form[$srcLang[$n]]['SrcLang'] = array('#value' => $srcLang[$n]); 
      $form[$targLang[$n]]['TarLang'] = array('#value' => $targLang[$n]); 
      $form[$statusId[$n]]['StatusID'] = array('#value' => $statusId[$n]);  
      $form[$statusDesc[$n]]['StatusDesc'] = array('#value' => $statusDesc[$n]);     
      } 

     } 

     catch(SoapFault $exception) 
     {     
      return $exception; 

     } 


     $form['featured'] = array(
     '#type' => 'checkboxes', 
     '#options' => $options, 
     '#multiple' => false, 
     ); 

    return $form; 


} 



    function freeway_theme() { 
return array('freeway_dashboard' => array('arguments' => array('form' => NULL),),'freeway_dashboard_details' => array('arguments' => array('form' => NULL),),); 
    } 



    function theme_freeway_dashboard_details($form) { 
      $rows = array(); 
      foreach (element_children($form) as $key) { 
      $row = array(); 
        if (isset($form[$key]['FileID'])) { 
        $status = drupal_render($form['featured'][$key]); 
        $row[] = array('data' => $status, 'class' => 'checkbox'); 
        $row[] = ''. drupal_render($form[$key]['FileID']) .''; 
        $row[] = array('data' => drupal_render($form[$key]['FileName'])); 
        $row[] = array('data' => drupal_render($form[$key]['SrcLang'])); 
        $row[] = array('data' => drupal_render($form[$key]['TarLang'])); 
        $row[] = array('data' => drupal_render($form[$key]['StatusID'])); 




        $rows[] = $row; 

        } 

      } 
      $header = array(); 
      $header[] = array('data' => t('Featured'), 'class' => 'checkbox'); 
      $header[] = t('File ID'); 
      $header[] = t('File Name'); 
      $header[] = t('Source Language'); 
      $header[] = t('Target Language'); 
      $header[] = t('Status ID'); 
      $header[] = t('Status Description'); 


      $output = theme('table', $header, $rows,array('size'=>10, 'class' => 'table_class')); 
      $output .= drupal_render($form); 


     return $output; 

     } 

おかげ アンジェラ

答えて

0

フォームキーのあなたの割り当ては、一貫性のないので、いくつかの要素は、実際に、既存のものを上書きされており、いくつかのが発見されていない主なことだと思うそこに問題のカップルがありますが、あなたのループでは、通常のフォームアイテムとしてテーブルの後に出力されています。あなたのコードは、おそらく同様にビットに短くすることができ、これを試してみてください。

freeway_dashboard_details()で:

$form['#table_values'] = array(); 
$options = array(); 
foreach ($fileStatus->GetFileStatusResult->FileStatuses->FileStatus as $fileStatusObtained) { 
    $form['#table_values'][$fileStatusObtained->FileID] = array(
    'fileId' => $fileStatusObtained->FileID, 
    'fileName' => $fileStatusObtained->Filename, 
    'srcLang' => $fileStatusObtained->SourceLanguageID, 
    'targLang' => $fileStatusObtained->TargetLanguageID, 
    'statusId' => $fileStatusObtained->StatusID, 
    'statusDesc' => $fileStatusObtained->StatusDescription 
    ); 

    $options[$fileStatusObtained->FileID] = ''; 
} 

$form['featured'] = array(
    '#type' => 'checkboxes', 
    '#options' => $options, 
    '#multiple' => false, 
); 

そしてfreeway_theme()中を:

$rows = array(); 
foreach (element_children($form['featured']) as $key) { 
    $row = array(); 
    if (isset($form['#table_values'][$key])) { 
    $status = drupal_render($form['featured'][$key]); 
    $row[] = array('data' => $status, 'class' => 'checkbox'); 
    $row[] = array('data' => $form['#table_values'][$key]['fileId']); 
    $row[] = array('data' => $form['#table_values'][$key]['fileName']); 
    $row[] = array('data' => $form['#table_values'][$key]['srcLang']); 
    $row[] = array('data' => $form['#table_values'][$key]['targLang']); 
    $row[] = array('data' => $form['#table_values'][$key]['statusId']); 
    $row[] = array('data' => $form['#table_values'][$key]['statusDesc']); 

    $rows[] = $row; 
    } 
} 

// Rest of the code as it was 
関連する問題