<?php
require_once('config/lang/fa.php');
include_once('persian_log2vis1/persian_log2vis.php');
require_once('fapdf.php');
function write_fa_text($pdfObj,$text,$new_line=true){
$pdfObj->SetDirection("rtl");
$pdfObj->SetFont("tahoma", "", 7);
persian_log2vis($text);
$pdfObj->Write(8,$text);
if($new_line)
$pdfObj->Ln();
}
function write_fa_html($pdfObj,$html){
$pdfObj->SetDirection("rtl");
$pdfObj->SetFont("tahoma", "", 7);
$pdfObj->WriteHTML_FA($html);
}
function write_code($pdfObj,$code,$new_line=true){
$pdfObj->SetDirection("ltr");
$pdfObj->SetFont("vera",8);
$pdfObj->Write(5,$code);
if($new_line)
$pdfObj->Ln();
}
$headerHTML = "<img src=\"images/1.JPG\"/>";
$pdf = new FAPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true);
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor(PDF_AUTHOR);
$pdf->SetTitle($doc_title);
$pdf->SetSubject($doc_subject);
$pdf->SetKeywords($doc_keywords);
$html = "<img src=\"images/logo.jpg\" width=\"40\" /><a href=\"http://www.iranphp.net\">IranPHP.net</a>";
$pdf->SetHeaderHTML($html);
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
$pdf->SetImageScale(PDF_IMAGE_SCALE_RATIO); //set image scale factor
$pdf->SetHeaderFont(Array(PDF_FONT_NAME_MAIN, '', 6));
$pdf->SetHeaderTextColor(120,120,120);
$pdf->SetFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
$pdf->SetLanguageArray($l);
$pdf->SetHeaderDIR('ltr');
$pdf->AliasNbPages();
$pdf->SetPrintHeader(true);
$pdf->SetPrintFooter(true);
$pdf->AddPage();
$pdf->SetFont("tahoma", "Bb", 12);
$header = "Smarty یک Templating Engine برای PHP";
persian_log2vis($header);
$pdf->Write(8,$header);
$pdf->Ln();
$pdf->SetFont("tahoma", "", 8);
$body = "مقدمه : چرا از Template Ø§Ø³ØªÙØ§Ø¯Ù‡ کنیم ØŸ<BR>در یک جمله Ù…ÛŒ
توان Ú¯ÙØª برای جدا کردن منطق برنامه از Ù†ØÙˆÙ‡ ارائه!<BR>با Ø§Ø³ØªÙØ§Ø¯Ù‡ از یک Templating
Engine Ù…ÛŒ توان به این هد٠درست ÛŒØ§ÙØª به ترتیبی Ú©Ù‡ برنامه نویس در گیر ارائه Ùˆ طراØ
رابط کاربر درگیر کار برنامه نویس نشوند و با یک زبان مشترک باهم تعامل خواند داشت.
به این ترتیب برنامه نویس خیلی Ø±Ø§Ø Ù…ÛŒ تواند منطق برنامهرا عوض کند بدون اینکه در
گیر ارائه شود Ùˆ Ø·Ø±Ø§Ø Ù†ÛŒØ² Ù…ÛŒ تواند بدون Ú©Ù…Ú© برنامه نویس Ø´Ú©Ù„ Ùˆ شمایل یک سایت را
کاملاً عوض کند.<BR>این چند جمله باید تا ØØ¯ÛŒ برای شما روشن کرده باشد Ú©Ù‡ با
Ø§Ø³ØªÙØ§Ø¯Ù‡ از این روش تا Ú†Ù‡ ØØ¯ انعطا٠در کار بوجود Ù…ÛŒ آید. جالب نیست؟!<BR>تعداد
زیادی Templating Engine برای PHP وجود دارد از کلاسهای PEAR Ú¯Ø±ÙØªÙ‡ تا Smarty Ùˆ
بسیاری ابزار های دیگر، ولی با توجه به موضوع این مقاله از دیگر ابزار ها صر٠نظر
کرده و به Smarty(http://smarty.php.net) می پردازیم .<BR>Smarty از PHP و Zend
Engine Ø§Ø³ØªÙØ§Ø¯Ù‡ Ù…ÛŒ کند Ùˆ با Ø§Ø³ØªÙØ§Ø¯Ù‡ از آن، برنامه ها را با کمترین سربار نسبت به
ØØ§Ù„تی Ú©Ù‡ از Template Ø§Ø³ØªÙØ§Ø¯Ù‡ نشده باشد اجرا Ù…ÛŒ شوند چون Smarty یک بار الگو را
کامپایل کرده Ùˆ تا وقتی Ú©Ù‡ الگو تغییر پیدا نکد از نسخه کامپایل شده Ø§Ø³ØªÙØ§Ø¯Ù‡ Ù…ÛŒ
نماید. برای بالا بردن کارایی امکانات caching هم دارد. <BR>Smarty چگونه کار
Ù…ÛŒ کند ØŸ<BR>Smarty بصورت Ø´ÛŒ گرا طراØÛŒ شده Ùˆ عمل Ù…ÛŒ کند پس برای Ø§Ø³ØªÙØ§Ø¯Ù‡ از آن
باید یک instance از آن ایجاد کنیم :";
write_fa_html($pdf,$body);
$code = '<?php
require_once("Smarty.class.php"); // use absolute path here, if necessary
$smarty = new Smarty;
?>';
write_code($pdf,$code);
$body = 'Smarty بصورت پیش ÙØ±Ø¶ در همان شاخه ای Ú©Ù‡ صدا Ù…ÛŒ شود دنبال الگو Ù…ÛŒ گردد ولی بنا به دلایل امنیتی الگوها نباید در شاخه ای Ú©Ù‡ از طریق وب قابل دسترسی هستند قرار گیرند برای معرÙÛŒ مسیر دایرکتوریهای Smarty به Ø´Ú©Ù„ زیر عمل Ù…ÛŒ کنیم :';
write_fa_text($pdf,$body);
$code = '$smarty->template_dir = "/var/www/templates/app1/template/";
$smarty->compile_dir = "/var/www/templates/app1/compile/";
$smarty->config_dir = "/var/www/templates/app1/config/";
$smarty->cache_dir = "/var/www/templates/app1/cache/";';
write_code($pdf,$code);
$pdf->SetDirection("rtl");
$pdf->Image("images/iranphp-logo.png",$pdf->GetX(),$pdf->GetY());
$pdf->Image("images/Zend_logo_small.png",$pdf->GetX(),$pdf->GetY());
$pdf->Ln();
$pdf->Ln();
$pdf->Ln();
$pdf->SetDirection("ltr");
$pdf->Image("images/iranphp-logo.png",$pdf->GetX(),$pdf->GetY());
$pdf->Image("images/Zend_logo_small.png",$pdf->GetX(),$pdf->GetY());
$pdf->AddPage();
$html="اهدا٠اين کلاس:<ol><li>برطر٠کردن مشکل ÙØ§Ø±Ø³ÙŠ Ù†ÙˆÙŠØ³ÙŠ البته تا ØØ¯ÙˆØ¯ÙŠ</li>
<li>اضاÙÙ‡ شدن امکان راست به چب Ùˆ Ú†Ù¾ به راست نويسي </li>
<li>نوشتن متنهايي با ÙØ±Ù…ت html Ùˆ ÙØ§Ø±Ø³ÙŠ</li>
</ol>";
write_fa_html($pdf,$html);
$htmlcontent = "<h1>تیتر 1</h1><h2>تیتر 2</h2><h3>تیتر 3</h3><h4>تیتر 4</h4><h5>تیتر 5</h5><h6>تیتر 6</h6>لیست مرتب :<br /><ol><li><b>متن درشت</b></li><li><i>متن مورب</i></li><li><u>متن زیر خط دار</u></li><li><a href=\"http://www.tecnick.com\">لینک به http://www.iranphp.net</a></li><li>آزمایش شکستن خط<br />خط دوم<br />خط سوم</li><li><font size=\"+3\">Ùونت + 3</font></li><li><small>متن Ú©ÙˆÚ†Ú©</small></li><li>متن نرمال <sub>زیرنویس</sub> <sup>بالانویس</sup></li></ol>
<br/>
لیست نامرتب
<ul><li><b>متن درشت</b></li><li><i>متن مورب</i></li><li><u>متن زیر خط دار</u></li><li><a href=\"http://www.tecnick.com\">لینک به http://www.iranphp.net</a></li><li>آزمایش شکستن خط<br />خط دوم<br />خط سوم</li><li><font size=\"+3\">Ùونت + 3</font></li><li><small>متن Ú©ÙˆÚ†Ú©</small></li><li>متن نرمال <sub>زیرنویس</sub> <sup>بالانویس</sup></li></ul><hr />
<br/>
";
write_fa_html($pdf,$htmlcontent);
$htmlcontent = "<h1>heading 1</h1><h2>heading 2</h2><h3>heading 3</h3><h4>heading 4</h4><h5>heading 5</h5>
<h6>heading 6</h6>ordered list:<br /><ol><li><b>bold text</b></li>
<li><i>italic text</i></li><li><u>underlined text</u></li><li>
<a href=\"http://www.Iranphp.net\">link to http://www.Iranphp.net</a></li>
<li>test break<br />second line<br />third line</li><li><font size=\"+3\">font + 3</font></li>
<li><small>small text</small></li><li>normal <sub>subscript</sub> <sup>superscript</sup></li></ul>";
$pdf->SetDirection("ltr");
$pdf->WriteHTML($htmlcontent);
$pdf->Ln();
$html="موÙÙ‚ باشید<br/><a href=\"mailto:alireza.meskin@gmail.com\">علیرضا مسکین ملک</a><br/>";
write_fa_html($pdf,$html);
$pdf->Output();
?>
|