2011-12-28 3 views
0

Iam with the table themes. 아래에서 볼 수 있듯이 행과 열에 값을 표시하는 테이블을 만드는 일은 내 전체 코드입니다. 코드에는 내 테마 등록도 포함되어 있습니다. 값은 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