Changeset 456

Show
Ignore:
Timestamp:
05/05/08 19:14:49 (8 months ago)
Author:
aarkerio
Message:

PDF support

Location:
trunk/app
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • trunk/app/controllers/vclassrooms_controller.php

    r455 r456  
    144144 public function admin_export($vclassroom_id)  
    145145 { 
    146    //$this->set('data', $this->Vclassroom->pdfReport($conditions, $fields)); 
    147146   $this->layout = 'pdf'; 
    148    $this->set('data','hello world!'); 
     147   $this->set('data', $this->Vclassroom->recordClass($vclassroom_id)); 
    149148 } 
    150149 
  • trunk/app/models/vclassroom.php

    r452 r456  
    132132     return $record; 
    133133 } 
     134 /** 
     135 *  Get class (group) record 
     136 * 
     137 * @param  integer $vclassroom_id  description 
     138 * @return array   $record description 
     139 * @access public 
     140 * @author author Manuel Montoya  
     141 **/ 
     142 public function recordClass($vclassroom_id) 
     143 {    
     144  $users      = array(); 
     145  $records    = array(); 
     146     
     147  $data  = $this->UsersVclassroom->findAll(array('UsersVclassroom.vclassroom_id'=>$vclassroom_id), array('user_id')); 
     148 
     149  // die(debug($users));    
     150  foreach ($data as $u): 
     151      
     152     $user_id = $u['UsersVclassroom']['user_id']; 
     153      
     154     $conditions        = array('Result.vclassroom_id'=>$vclassroom_id, 'Result.user_id'=>$user_id); 
     155     $fields            = array('Result.percentage', 'Test.title');  //null; 
     156     $records[$user_id]['tests']   = $this->Test->Result->findAll($conditions, $fields); 
     157     //die(debug($record['tests'])); 
     158     
     159     $conditions = array('ResultTreasure.vclassroom_id'=>$vclassroom_id, 'ResultTreasure.user_id'=>$user_id); 
     160     $fields     = array('ResultTreasure.points', 'Treasure.title'); //null; 
     161     $records[$user_id]['treasures']  =  $this->Treasure->ResultTreasure->findAll($conditions, $fields);   
     162          
     163     $conditions       = array('Topic.vclassroom_id'=>$vclassroom_id, 'Topic.user_id'=>$user_id); 
     164     $fields           = array('Forum.title', 'Topic.subject'); //null; 
     165     $records[$user_id]['topics'] = $this->Forum->Topic->findAll($conditions, $fields); 
     166      
     167     $conditions     = array('Participation.vclassroom_id'=>$vclassroom_id, 'Participation.user_id'=>$user_id); 
     168     $fields         = array('Participation.title', 'Participation.points'); //null; 
     169      
     170     $records[$user_id]['participations'] = $this->Participation->findAll($conditions, $fields); 
     171 
     172     $conditions     = array('ResultWebquest.vclassroom_id'=>$vclassroom_id, 'ResultWebquest.user_id'=>$user_id); 
     173     $fields         = array('Webquest.title', 'ResultWebquest.points'); //null; 
     174 
     175     $records[$user_id]['webquests']      = $this->Webquest->ResultWebquest->findAll($conditions, $fields); 
     176      
     177  endforeach; 
     178  // die(debug($records)); 
     179  return $records; 
     180 } 
     181 
    134182/** 
    135183 *  Get student evaluation, return integer 
  • trunk/app/views/helpers/fpdf.php

    r455 r456  
    1414   * @param string $format values: A3, A4, A5, Letter, Legal or a two element array with the width and height in unit given in $unit 
    1515   */ 
    16   public function __construct($orientation='P',$unit='mm',$format='A4')  
     16  public function __construct($orientation='P',$unit='mm',$format='Letter')  
    1717  {  
    1818    $this->pdf = new myFPDF($orientation, $unit, $format); 
    19     //$this->pdf->FPDF($orientation, $unit, $format); // method 
    20     $this->pdf->AddPage(); 
    2119    $this->pdf->SetFont('Arial','B',14); 
    2220  } 
     
    2422  public function setData($data) 
    2523  { 
    26     $this->pdf->Cell(40,10,$data); 
     24    $this->pdf->Cell(0,10,$data,1,1,'L'); 
     25    $this->pdf->Ln(10); 
    2726  } 
    28     
     27 
     28  public function newPage() 
     29  { 
     30     $this->pdf->AddPage(); 
     31  } 
    2932  /** 
    3033   * Allows you to control how the pdf is returned to the user, most of the time in CakePHP you probably want the string 
  • trunk/app/views/vclassrooms/admin_export.ctp

    r455 r456  
    11<?php 
    2 //(); 
    3 //$fpdf->SetFont('Arial','B',16); 
    4      $fpdf->setData($data); 
    5      $fpdf->setData('Secind data'); 
    6 echo $fpdf->fpdfOutput('class_report.pdf');     
     2 //$tmp = null; 
     3 $position = 40; 
     4 
     5 foreach ($data as $u): 
     6 
     7    $fpdf->newPage(); 
     8 
     9    foreach ($u['tests'] as $te):   
     10         $fpdf->setData($te['Test']['title'] . ', Percentage '.$te['Result']['percentage'].'%'); 
     11    endforeach; 
     12  
     13    foreach ($u['treasures'] as $t): 
     14      $fpdf->setData($t['Treasure']['title'] . ', Points '.$t['ResultTreasure']['points']); 
     15    endforeach; 
     16    
     17    foreach ($u['participations'] as $p): 
     18      $fpdf->setData($p['Participation']['title'] . ', Points ' . $p['Participation']['points']); 
     19    endforeach; 
     20 
     21    foreach ($u['webquests'] as $w): 
     22      $fpdf->setData($w['Webquest']['title'] . ', Points ' . $w['Webquest']['points']); 
     23    endforeach; 
     24  
     25 endforeach;     
     26 
     27 echo $fpdf->fpdfOutput('class_report.pdf');     
    728?>