<?php
session_start();
	if($_SESSION['level']!="siswa"){
		header("location:../index.html");
	}
include("koneksi.php");
$id_author = $_SESSION['id'];
$nama_author = $_SESSION['nama'];
$kelas_author = $_SESSION['kelas'];
// memanggil library FPDF
require('fpdf/fpdf.php');
// intance object dan memberikan pengaturan halaman PDF

$pdf = new FPDF('p','mm','A4');
// membuat halaman baru
$pdf->AddPage();
// setting jenis font yang akan digunakan
$pdf->SetFont('Arial','B',16);
// mencetak string 
$pdf->Image('img/kop.jpg',10,10,180,'C');
$pdf->Cell(10,7,'',0,1);
$pdf->Cell(10,7,'',0,1);
$pdf->Cell(10,7,'',0,1);
$pdf->Cell(10,7,'',0,1);
$pdf->Cell(10,8,'',0,1);

$pdf->Cell(190,7,'LAPORAN KEGIATAN PONDOK RAMADHAN',0,1,'C');
$pdf->Cell(190,7,'MELALUI SIPORA',0,1,'C');
$pdf->SetFont('Arial','B',12);
$pdf->Cell(190,7,$nama_author,0,1,'C');
$pdf->Cell(190,7,$kelas_author,0,1,'C');

// Memberikan space kebawah agar tidak terlalu rapat


$pdf->SetFont('Arial','B',10);
$pdf->cell(10,6,'NO',1,0,'C');
$pdf->cell(25,6,'TANGGAL',1,0,'C');
$pdf->cell(35,6,'KEGIATAN',1,0,'C');
$pdf->cell(85,6,'URAIAN',1,0,'C');
$pdf->cell(25,6,'STATUS',1,1,'C');

$pdf->SetFont('Arial','',10);

$data = mysqli_query($koneksi, "SELECT * FROM kegiatan WHERE id_siswa='$id_author' AND status='BERHASIL' ORDER BY id ASC");
while ($hasil = mysqli_fetch_array($data)){
    $cellWidth=85; //lebar sel
	$cellHeight=5; //tinggi sel satu baris normal
	
	//periksa apakah teksnya melibihi kolom?
	if($pdf->GetStringWidth($hasil['uraian']) < $cellWidth){
		//jika tidak, maka tidak melakukan apa-apa
		$line=1;
	}else{
		//jika ya, maka hitung ketinggian yang dibutuhkan untuk sel akan dirapikan
		//dengan memisahkan teks agar sesuai dengan lebar sel
		//lalu hitung berapa banyak baris yang dibutuhkan agar teks pas dengan sel
		
		$textLength=strlen($hasil['uraian']);	//total panjang teks
		$errMargin=5;		//margin kesalahan lebar sel, untuk jaga-jaga
		$startChar=0;		//posisi awal karakter untuk setiap baris
		$maxChar=0;			//karakter maksimum dalam satu baris, yang akan ditambahkan nanti
		$textArray=array();	//untuk menampung data untuk setiap baris
		$tmpString="";		//untuk menampung teks untuk setiap baris (sementara)
		
		while($startChar < $textLength){ //perulangan sampai akhir teks
			//perulangan sampai karakter maksimum tercapai
			while( 
			$pdf->GetStringWidth( $tmpString ) < ($cellWidth-$errMargin) &&
			($startChar+$maxChar) < $textLength ) {
				$maxChar++;
				$tmpString=substr($hasil['uraian'],$startChar,$maxChar);
			}
			//pindahkan ke baris berikutnya
			$startChar=$startChar+$maxChar;
			//kemudian tambahkan ke dalam array sehingga kita tahu berapa banyak baris yang dibutuhkan
			array_push($textArray,$tmpString);
			//reset variabel penampung
			$maxChar=0;
			$tmpString='';
			
		}
		//dapatkan jumlah baris
		$line=count($textArray);
	}
	
    //tulis selnya
    $pdf->SetFillColor(255,255,255);
	$pdf->Cell(10,($line * $cellHeight),$no++,1,0,'C',true); //sesuaikan ketinggian dengan jumlah garis
	$pdf->Cell(25,($line * $cellHeight),$hasil['tanggal'],1,0,'C'); //sesuaikan ketinggian dengan jumlah garis
	$pdf->Cell(35,($line * $cellHeight),$hasil['kegiatan'],1,0,'C');
	//memanfaatkan MultiCell sebagai ganti Cell
	//atur posisi xy untuk sel berikutnya menjadi di sebelahnya.
	//ingat posisi x dan y sebelum menulis MultiCell
	$xPos=$pdf->GetX();
	$yPos=$pdf->GetY();
	$pdf->MultiCell($cellWidth,$cellHeight,$hasil['uraian'],1);
	
	//kembalikan posisi untuk sel berikutnya di samping MultiCell 
    	//dan offset x dengan lebar MultiCell
	$pdf->SetXY($xPos + $cellWidth , $yPos);
	
	$pdf->Cell(25,($line * $cellHeight),$hasil['status'],1,1); //sesuaikan ketinggian dengan jumlah garis
	 

}
$pdf->Cell(10,7,'',0,1);

$pdf->SetFont('Arial','B',8);
// mencetak string 
$pdf->Cell(190,7,'Mengetahui Wali Kelas',0,1,'L'); $pdf->Cell(190,7,$kelas_author,0,1,'L');
$pdf->Cell(10,7,'',0,1);
$pdf->Cell(10,7,'',0,1);
$pdf->Cell(10,7,'(...........................)',0,1);
$pdf->Output();
?>