<!DOCTYPE html>
<html>
<head>
<!-- basic meta -->
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="HTML TO PHP framework lezaz" />
<meta name="author" content="Bassam Alessawi" />
<title>
لزاز 1.0 بيئة عمل ونظام إدارة Ù…ØØªÙˆÙ‰ تعتمد على PHP , سريعه Ùˆ آمنه وسهلة الإستخدام !
</title>
<!-- Bootstrap -->
<link href="{{theme}}css/bootstrap.css" rel="stylesheet" />
<style>
body {
padding-top: 60px;
direction: rtl;
font-size: 18px;
}
.tab-pane{padding: 5px;}
.pln{color:#fffefe!important;}
pre .str{color:#f4645f;}
pre .kwd{color:#4bb1b1;}
pre .com{color:#888888;}
pre .typ{color:#ef7c61;}
pre .lit{color:#bcd42a;}
pre .pun,pre .opn,pre .clo{color:#ffffff;}
pre .tag{color:#4bb1b1;}
pre .atn{color:#ef7c61;}
pre .atv{color:#bcd42a;}
pre .dec,pre .var{color:#660066;}
pre .fun{color:#ff0000;}
.prettyprint{display:block;font-family:Monaco,Consolas, "Lucida Console ",monospace;background-color:#333;font-size:13px;border:0;color:#e9e4e5;line-height:1.9em;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;padding:5px!important;white-space:pre;overflow:hidden;}
.prettyprint .pln{color:#e9e4e5;}
.prettyprint .com{color:#888;}
.prettyprint .pun,.prettyprint .opn,.prettyprint .clo{color:#fff;}
.prettyprint .dec,.prettyprint .var{color:#606;}
.prettyprint .fun{color:red;}
.prettyprint code{font-family:Monaco,Consolas, "Lucida Console ",monospace;font-size:12px;}
.prettyprint .str,.prettyprint .lit,.prettyprint .atv{color:#bcd42a;}
.prettyprint .kwd,.prettyprint .tag{color:#4bb1b1;}
.prettyprint .typ,.prettyprint .atn{color:#ef7c61;}
pre {direction: ltr; text-align: left;}
code {display: inline-block;direction: ltr;}
.tdfirst{ width:215px;}
</style>
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="http://lezaz.org">
lezaz website
</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav">
<li><a target="_blank" href="https://github.com/sfhati/lezaz">
Github
</a></li>
<li><a target="_blank" href="http://www.phpclasses.org/package/9630-PHP-Template-engine-that-compiles-tags-into-PHP-code.html">
PHPClasses
</a></li>
</ul>
</div>
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav>
<div class="container">
<!-- Logo -->
<div class="row text-center center-block" style="margin-top: 20px;">
<h1> ليزاز1.0 </h1>
<b class="small text-muted"> " بيئة عمل ونظام إدارة Ù…ØØªÙˆÙ‰ " </b>
<br /><br />
<div class="text-center center-block">
<span><iframe src="http://ghbtns.com/github-btn.html?user=sfhati&repo=lezaz&type=watch&count=true" height="30" width="118" frameborder="0" scrolling="0" style="width:118px; height: 30px;" allowTransparency="true"></iframe></span>
<span><iframe src="http://ghbtns.com/github-btn.html?user=sfhati&repo=lezaz&type=fork&count=true" height="30" width="118" frameborder="0" scrolling="0" style="width:118px; height: 30px;" allowTransparency="true"></iframe></span>
<span><iframe src="http://ghbtns.com/github-btn.html?user=sfhati&type=follow&count=true" height="30" width="168" frameborder="0" scrolling="0" style="width:168px; height: 30px;" allowTransparency="true"></iframe></span>
</div>
</div>
<!-- End Logo -->
<hr />
<!-- SIDE.BARS -->
<div class="col-md-3 tabs">
<!-- SIDE.BAR-1 -->
<p class="lead"> <span class="glyphicon glyphicon-bookmark"></span> نظام لزاز <small class="text-muted"> "مقدمه" </small> </p>
<div class="list-group nav-tabs tabs">
<a class="list-group-item" data-toggle="tab" href="#intro">ماهي لزاز</a>
<a class="list-group-item" data-toggle="tab" href="#download">تØÙ…يل</a>
<a class="list-group-item" data-toggle="tab" href="#setup">إعداد</a>
<a class="list-group-item" data-toggle="tab" href="#how">كي٠تعمل</a>
</div>
<!-- SIDE.BAR-1 -->
<!-- SIDE.BAR-2 -->
<p class="lead"> <span class="glyphicon glyphicon-bookmark"></span> نظام لزاز<small class="text-muted"> الرئيسي </small> </p>
<div class="list-group tabs">
<a class="list-group-item" data-toggle="tab" href="#router">Router - العناوين الذكيه</a>
<a class="list-group-item" data-toggle="tab" href="#eventshock">Ø§Ù„Ø£ØØ¯Ø§Ø« والصياد</a>
<a class="list-group-item" data-toggle="tab" href="#helpers">مساعد</a>
</div>
<!-- SIDE.BAR-2 -->
<!-- SIDE.BAR-3 -->
<p class="lead"> <span class="glyphicon glyphicon-bookmark"></span> Ø¥Ø¶Ø§ÙØ§Øª لزاز<small class="text-muted"> "classes addons" </small> </p>
<div class="list-group tabs">
<a class="list-group-item" data-toggle="tab" href="#db">قواعد البيانات</a>
<a class="list-group-item" data-toggle="tab" href="#files">Ø§Ù„Ù…Ù„ÙØ§Øª</a>
<a class="list-group-item" data-toggle="tab" href="#string">النصوص</a>
</div>
<!-- SIDE.BAR-3 -->
<!-- SIDE.BAR-3 -->
<p class="lead"> <span class="glyphicon glyphicon-bookmark"></span>القوالب<small class="text-muted"> "<lezaz/>" </small> </p>
<div class="list-group tabs">
<a class="list-group-item" data-toggle="tab" href="#thelper">مساعد</a>
<a class="list-group-item" data-toggle="tab" href="#lezazif">الجمل الشرطيه</a>
<a class="list-group-item" data-toggle="tab" href="#lezazfor">التكرار</a>
<a class="list-group-item" data-toggle="tab" href="#lezazeach">التكرار للشيء</a>
<a class="list-group-item" data-toggle="tab" href="#lezazblock">تضمين القوالب</a>
<a class="list-group-item" data-toggle="tab" href="#lezazimport">تضمين الستايل ÙˆØ§Ù„Ø¬Ø§ÙØ§Ø³ÙƒØ±ÙŠØ¨Øª</a>
<a class="list-group-item" data-toggle="tab" href="#lezazsql">قواعد البيانات</a>
<a class="list-group-item" data-toggle="tab" href="#lezazinput">الØÙ‚ول والنماذج</a>
<a class="list-group-item" data-toggle="tab" href="#lezazselect">القوائم</a>
<a class="list-group-item" data-toggle="tab" href="#lezazphp">لغة بي أتش بي</a>
</div>
<!-- SIDE.BAR-3 -->
</div>
<!-- SIDE.BARS -->
<!-- BODY -->
<div class="col-md-8">
<!-- CONTENTS -->
<div class="tab-content">
<!-- intro -->
<div id="intro" class="tab-pane in active fade">
<h1> <span class="glyphicon glyphicon-road"></span> مقدمه</h1>
<p class="lead"><blockquote>
ÙÙŠ كثير من الأØÙŠØ§Ù† نجد أن وقتا كبيرا يضيع بسبب عمليات روتينيه مثل إدخال البيانات ÙÙŠ قاعدة بيانات وإسترجاعها
وعمليات التعديل عليها كل هذا عمله بسيط ولكنه يأخذ وقت ÙØ£Ù†Øª Ø¨ØØ§Ø¬Ù‡ إلى إنشاء قاعدة البيانات ثم إنشاء ØµÙØØ©
<code>HTML</code>
ÙˆÙيها تكتب كود لإنشاء نموذج وتقوم بعمل التØÙ‚Ù‚ عن طريق Ø§Ù„Ø¬Ø§ÙØ§Ø³ÙƒØ±ÙŠØ¨Øª ثم عمليه إرسال النموذج إلى ØµÙØØ©
<code>PHP</code>
وهناك تتØÙ‚Ù‚ من عدة أمور مثل صلاØÙŠØ§Øª المستخدم ÙˆÙلترة المتغيرات بØÙŠØ« لا ØªØØªÙˆÙŠ Ø¹Ù„Ù‰ كود إختراق وتخريب ومثل هذا لعميله التعديل على
المدخلات بØÙŠØ« يتم إسترجاعها وهكذا ,
<br>
كما أن هنا مشاكل ÙÙŠ عمليه تنظيم الروابط أو مايسمى بال
<code>Router</code>
بØÙŠØ« تواجه مشاكل لكل رابط وربما ØªØØªØ§Ø¬ إلى مكتبه أو كود جاهز لهذه العمليه أو تضطر لعملها Ø¨Ù†ÙØ³Ùƒ من خلال ملÙ
<code>.htaccess</code>
والأهم من كل هذا هو التأكد من أن عملك لايتظرر بعدد الزوار الكبير ويكون سريع وهذا ÙŠØØªØ§Ø¬ إلى أنظمة كاش لتخزين المخرجات مدة معينه بØÙŠØ«
لا تؤثر بعمل الموقع والكثير الكثير ÙÙŠ عملية التصميم وإستخدام مكتبات لجعل منظر Ø§Ù„ØµÙØØ© جميل ÙˆÙØ¹Ø§Ù„ بØÙŠØ« تستخدم كاليندر أو قوائم ونصوص يتم تعبئتها تلقائيا
<br>
هذا كله قامت هذه البيئة بتسهيله وجعله من الماضي
-- <a target="_blank" href="https://www.facebook.com/sfhaticom">بسام العيساوي</a>
</blockquote></p>
<hr />
<h1> <span class="glyphicon glyphicon-flash"></span> مزايا النظام</h1>
<ul>
<li>بسيط وسهل التعلم</li>
<li>نظام قوالب لإستخدامات كبيرة وجمل برمجيه بسيطه عباره عن جمل
<code>HTML</code>
عاديه </li>
<li> <code>addons syntax</code>
إمكانيه Ø¥Ø¶Ø§ÙØ© المزيد من الجمل البرمجيه للقوالب بØÙŠØ« يكون لك جميلك البرمجيه الخاصه </li>
<li>عدة طبقات لتنÙيذ الكود بØÙŠØ« يمكنك ترتيب الأولويات وبذلك سرعة ÙÙŠ تنÙيذ المهام</li>
<li>
أستخدام معظم قواعد البيانات
<code>PDO</code>
Ø§Ù„Ù…ØªÙˆÙØ±Ù‡ بدون Ø§Ù„ØØ§Ø¬Ù‡ لتغيير أي كود على Ø´ÙŠÙØ±ØªÙƒ التي قمت بكاتبتها Ùقط تغيير إعدادات ربط قاعدة البيانات
</li>
<li>روابط ذكيه يمكنك إستخدام ماتريد بالإضاÙÙ‡ إلى عمليات تØÙ‚Ù‚ تلقائيه لأي رابط لتجنب الإختراق</li>
<li>مدمج نظام التØÙ‚Ù‚ الكامل لأي متغيرات تأتي من الخارج
<code>GET & POST</code>
</li>
<li>يقبل Ø§Ù„Ø¥Ø¶Ø§ÙØ§Øª
<code>plgins</code>
</li>
<li>تØÙ…يل تلقائي للكلاس ودمج تلقائي مع الكلاس الرئيسي بالإضاÙÙ‡ إلى إمكانيه تØÙ…يل الكلاسات بشكل عادي</li>
<li>أنظمة كاش متعدده لأي جملة إستعلام ÙˆØªØØ¯ÙŠØ¯ وقت الكاش كما يوجد كاش لأي مخرجات بØÙŠØ« يتم تخÙي٠الضغط على الخادم بشكل كبير </li>
<li>نظام تشÙير كامل لقواعد البيانات ÙˆØ§Ù„Ù…Ù„ÙØ§Øª والمتغيرات </li>
<li>نظام ضغط ودمج Ù„Ù…Ù„ÙØ§Øª Ø§Ù„Ø¬Ø§ÙØ§Ø³ÙƒØ±ÙŠØ¨Øª والستايل </li>
<li>تØÙ…يل تلقائي مع التØÙ‚Ù‚ من وجود Ù…Ù„ÙØ§Øª Ø§Ù„Ø¬Ø§ÙØ§Ø³ÙƒØ±ÙŠØ¨Øª والستايل</li>
<li>نظام Ø±ÙØ¹ Ø§Ù„Ù…Ù„ÙØ§Øª والتØÙ‚Ù‚ من ØØ¬Ù…ها ونوعها </li>
<li>مدمج بعض Ø§Ù„Ø¥Ø¶Ø§ÙØ§Øª المهمه مثل نظام الأعظاء ونظام إدارة Ø§Ù„Ù…ØØªÙˆÙ‰ </li>
<li>نظام تعدد اللغات</li>
<li>مدمج Ù„ÙˆØØ© تØÙƒÙ… ØªØØªÙˆÙŠ Ø¹Ù„Ù‰ أهم العناصر التي ØªØØªØ§Ø¬Ù‡Ø§ لأي مشروع ويب </li>
<li>نظام إنشاء النماذج </li>
<li>نظام إنشاء الجداول </li>
<li>نظام متكامل لإنشاء عمليات الإضاÙÙ‡ ÙˆØ§Ù„ØØ°Ù والتعديل للبيانات داخل قواعد البيانات دون Ø§Ù„ØØ§Ø¬Ù‡ لكتابه أي كود أو إنشاء أي جداول</li>
<li>نظام إرسال البريد الإلكتروني بقوالب سهل التØÙƒÙ… بها </li>
<li>نظام تعدد Ø§Ù„ØµÙØØ§Øª لعرض بيانات من قواعد البيانات</li>
<li>ØÙظ متغيرات </li>
</ul>
</div>
<!-- intro -->
<!-- download -->
<div id="download" class="tab-pane fade">
<h1> <span class="glyphicon glyphicon-download"></span> تØÙ…يل لزاز</h1>
<ul>
<li>من <a target="_blank" href="https://github.com/sfhati/lezaz">Github</a></li>
<li>من <a target="_blank" href="http://www.phpclasses.org/package/9630-PHP-Template-engine-that-compiles-tags-into-PHP-code.html">PHPClasses</a></li>
</ul>
</div>
<!-- download -->
<!-- setup -->
<div id="setup" class="tab-pane fade">
<h1> <span class="glyphicon glyphicon-cog"></span>إعدادات لزاز</h1>
<ul>
<li>بعد تØÙ…يل نسخة لزاز , قم بÙÙƒ الضغط عنها</li>
<li>ستجد ملÙ
<code>conf.php</code>
ÙŠØØªÙˆÙŠ Ù‡Ø°Ø§ المل٠على الإعدادات الرئيسيه , ربما لن ØªØØªØ§Ø¬ إلا لإعدادات ربط قواعد البيانات من خلال تعديل هذه السطور ÙÙŠ المل٠المذكور
<br>
<pre class="prettyprint">
// database mysql configration
define('db_type', 'mysql'); // نوع قاعدة البيانات
define('db_host', 'localhost'); // الهوست الخاص بقاعدة البانات معظم الأØÙŠØ§Ù† Ù„Ø§ØªØØªØ§Ø¬ إلى تعديله
define('db_port', '');//البورت
define('db_name', ''); // إسم قاعدة البيانات
define('db_user', 'root'); // إسم المستخدم
define('db_pass', ''); // الرمز السري
</pre>
</li>
<li>بعض الإعدادات التي يمكنك تعديلها هي:
<br>
<pre class="prettyprint">
date_default_timezone_set('Asia/Amman'); // الوقت المØÙ„ÙŠ المعتمد
لمزيد من الØÙ…ايه والأمان يمكنك تعديل أسماء المجلدات الرئيسيه
define('TEMPLATE_FOLDER', 'template'); // مجلد القوالب
define('UPLOADED_FOLDER', 'uploaded'); // مجلد التØÙ…يلات الخاص بالصور وغيرها من Ø§Ù„Ù…Ù„ÙØ§Øª
define('CLASSES_FOLDER', 'classes'); // مجلد الكلاسات
define('CACHE_FOLDER', 'cache'); // مجلد الكاش
define('TMP_FOLDER', 'tmp'); // مجلد Ø§Ù„Ù…Ù„ÙØ§Øª المؤقته
define('PLUGIN_FOLDER', 'plugin'); // مجلد Ø§Ù„Ø¥Ø¶Ø§ÙØ§Øª
define('THEME_FOLDER', 'my_theme'); // مجلد الثيم الرئيسي
//ÙŠØØªÙˆÙŠ Ø§Ù„Ø«ÙŠÙ… الرئيسي على جميع القوالب والصور والستالات ÙˆØ§Ù„Ø¬Ø§ÙØ§Ø³ÙƒØ±ÙŠØ¨Øª الخاص بمشروعك
define('SQL_CACHE', '20'); // وقت Ø§Ù„Ø¥ØØªÙاظ Ø¨Ù…Ù„ÙØ§Øª الكاش بالثواني
define('CRYPT_CACHE', true); // لعمل تشÙير Ù„Ù…Ù„ÙØ§Øª الكاش وقواعد البيانات مهم للبيانات Ø§Ù„ØØ³Ø§Ø³Ù‡ ولكنه يستهلك بعض من موارد الخادم
define('SALT','FR4d32cdvTYdw2s#gt54');//ÙÙŠ ØØ§Ù„ أردت إستخدام التشÙير وهو بالأصل Ù…ÙØ¹Ù„ , يجب تغيير هذا الكود بأي كود تريديه كلما كان أكبر كلما كان أأمن ÙˆØ¨Ù†ÙØ³ الوقت أكثر إستخدام لموارد النظام
</pre>
</li>
</ul>
</div>
<!-- setup -->
<!-- how-it-works -->
<div id="how" class="tab-pane fade">
<h1> <span class="glyphicons glyphicons-question-sign"></span> كي٠تعمل لزاز ؟</h1>
<ul>
<li>عند طلب Ø§Ù„ØµÙØØ© أو عمل أي طلب
<code>Request</code>
يبدأ العمل Ø¨Ø§Ù„ØµÙØØ© الرئيسيه
<code>index.php</code>
ÙÙŠ هذا المل٠يتم إنشاء الجلسه
<code>session</code>
ثم إستدعاء الملÙ
<code>conf.php</code>
أخيرا يتم طباعه المخرجات والإنتهاء من العمل
</li>
<li>ÙÙŠ ملÙ
<code>conf.php</code>
يتم تعري٠الإعدادات اللازمه للنظام ومن ثم إستدعاء المل٠الرئيسي
<code>___core.php</code>
الخاص ببيئة العمل لزاز ثم إستدعاء وتØÙ…يل Ø§Ù„Ù…Ù„ÙØ§Øª من مجلد
<code>/classes/autoinclude/</code>
Ø§Ù„Ù…Ù„ÙØ§Øª ÙÙŠ هذا المجلد لا ØªØØªØ§Ø¬ إلى كود
<pre class="prettyprint">import(file.php)</pre>
وبهذا ØªÙˆÙØ± على Ù†ÙØ³Ùƒ عمل التØÙ…يل Ùقط بوصع المل٠ÙÙŠ هذا المجلد
<br>
ثم إستدعاء ودمج الكلاسات ÙÙŠ Ø§Ù„Ù…Ù„ÙØ§Øª الموجوده ÙÙŠ مجلد
<code>/classes/autoload/</code>
ÙˆÙÙŠ هذا المجلد يجب أن ÙŠØØªÙˆÙŠ Ø§Ù„ÙƒÙ„Ø§Ø³ داخل المل٠على مسمى معين وهيكله خاصه سيتم شرØÙ‡Ø§ لاØÙ‚ا
, ÙˆÙŠØµØ¨Ø Ø§Ù„ÙƒÙ„Ø§Ø³ Ù…ØÙ…Ù„ ومستدعى داخل الكلاس الأساسي لزاز ليتم إستدعاؤه كما يلي
<pre class="prettyprint">$lezaz->yourclassname();</pre>
</li>
<li>
يتم إنشاء المتغير
<code>$lezaz</code>
وعند تنÙيذ الأمر
<pre class="prettyprint">echo $lezaz->run();</pre>
ÙÙŠ Ø§Ù„ØµÙØØ© الرئيسيه يتم تنÙيذ جميع Ø§Ù„Ù…Ù„ÙØ§Øª ÙÙŠ طبقة البدء أي Ø§Ù„Ù…Ù„ÙØ§Øª التي بالإسم
<code>init.php</code>
ÙÙŠ كل مجلد داخل مجلد Ø§Ù„Ø¥Ø¶Ø§ÙØ§Øª
<code>/plugin/folder/init.php</code>
ÙˆÙÙŠ هذه الطبقه يمكن إنشاء المتصنت
<code>listener</code>
لكي يتم تنÙيذها عند إنشاء ØØ¯Ø« ÙÙŠ الطبقات الأخرى
</li>
<li>التØÙ‚Ù‚ من أن الطلب قادم من Ù…ØªØµÙØ أي شخص وليس من بوت ويمكنك بناء على ذلك إتخاذ أي إجراء من خلال الصياد ÙˆØ§Ù„Ø£ØØ¯Ø§Ø«
<code>hock and events</code>
</li>
<li>
تنÙيذ Ø§Ù„Ù…Ù„ÙØ§Øª ÙÙŠ الطبقه الثانيه وهي Ø§Ù„Ù…Ù„ÙØ§Øª ذات الإسم
<code>/plugin/folder/index.php</code>
وهذه الطبقه ÙŠÙØ¶Ù„ أن يتم تنÙيذ الأوامر التي يجب Ùيها أن يكون الزائر شخص وليس بوت مثل تسجيل الدخول وادخال بيانات من النماذج إلى قاعدة البيانات
Ùهناك جدار ناري قبل هذه الطبقه يمكن من خلاله إيقا٠العمليات المشبوهه قبل الوصول إلى هذه الطبقه
</li>
<li>
تنÙيذ Ø§Ù„Ù…Ù„ÙØ§Øª ÙÙŠ الطبقه الثالثه والتي تØÙ…Ù„ الإسم
<code>/plugin/folder/footer.php</code>
ÙˆÙÙŠ هذه الطبقه يمكنك إكمال أي برمجيه تريدها من Ø§Ù„Ø¥Ø¶Ø§ÙØ§Øª الأخرى والتي تم تنÙيذها ÙÙŠ الطبقه السابقه
</li>
<li>
إستدعاء القالب الذي تم التأشير عليه من خلال الداله
<pre class="prettyprint">$lezaz->main_template="my_template.inc";</pre>
ÙˆÙÙŠ هذه المرØÙ„Ù‡ يتم التأكد بأن القالب تم ØªÙØ³ÙŠØ±Ù‡ عبر Ù…ØØ±Ùƒ القوالب لزاز , ÙˆÙÙŠ ØØ§Ù„ لم يتم ØªÙØ³ÙŠØ±Ù‡ ÙØ³ÙŠÙ‚وم Ø§Ù„Ù…ÙØ³Ø± تلقائيا بعمليه Ø§Ù„ØªÙØ³ÙŠØ± ووضع النسخه Ø§Ù„Ù…ÙØ³Ø±Ù‡ ÙÙŠ مجلد الكاش
كما يقوم Ø§Ù„Ù…ÙØ³Ø± بالتأكد من عدم ØØ¯ÙˆØ« تعديلات على القالب ÙˆÙÙŠ ØØ§Ù„ وجود تعديلات يقوم تلقائيا Ø¨ØØ°Ù النسخه Ø§Ù„Ù…ÙØ³Ø±Ù‡ وإعادة ØªÙØ³ÙŠØ±Ù‡Ø§ , ÙˆÙÙŠ ØØ§Ù„ لم يجد مل٠القالب ÙØ¥Ù†Ù‡ يقوم تلقائيا بإستدعاء قالب
<code>404.inc</code>
وسيتم Ø´Ø±Ø Ù‡Ø°Ø§ بشكل Ù…ÙØµÙ„ ÙÙŠ قسم القوالب
</li>
<li>
تنÙيذ طبقة الإنهاء وهي Ø§Ù„Ù…Ù„ÙØ§Øª ÙÙŠ مجلد Ø§Ù„Ø¥Ø¶Ø§ÙØ§Øª تØÙ…Ù„ الإسم
<code>/plugin/folder/term.php</code>
</li>
<li>
طباعه المخرجات والإنهاء
</li>
</ul>
</div>
<!-- how-it-works -->
<!-- router -->
<div id="router" class="tab-pane fade">
<h1><span class="glyphicon glyphicon-cog"></span> العناوين الذكيه - Router</h1> <br />
<h3> › ماهي العناوين الذكيه؟ </h3>
<p>
هي نظام يعمل على جعل العنوان ÙÙŠ Ø§Ù„Ù…ØªØµÙØ مقروء ويمكن أن ÙŠÙˆØ¶Ø Ù…Ø¹Ù†ÙŠ Ø§Ù„ØµÙØØ© وماهي الكلمات Ø§Ù„Ù…ÙØªØ§ØÙŠÙ‡ لها
وبذلك تعمل هذه العناوين على أرشÙÙ‡ صØÙŠØÙ‡ Ù„Ù…ØØ±ÙƒØ§Øª Ø§Ù„Ø¨ØØ« وتعطي Ù„ØµÙØØ§ØªÙ‡Ø§ قيمة أكبر ليصل لها أكبر عدد من المهتمين Ø¨Ù…ØØªÙˆÙ‰ Ø§Ù„ØµÙØØ©
, Ùيما مضى كنا نستخدم المتغيرات Ù„Ù…Ø¹Ø±ÙØ© مايطلبه المستخدم وذلك عن طريق روابط كهذا الرابط
<br>
<code>http://www.site.com/?p=about_us&c=amman</code>
<br/>
وكما ترى ÙØ¥Ù† الرابط لايعبر عن Ù…ØØªÙˆÙ‰ Ø§Ù„ØµÙØØ© , الآن يمكنك إستخدام مثل هذا الرابط لإنشاء Ù†ÙØ³ الرابط السابق
<br/>
<code>http://www.site.com/about_us/amman/</code>
<br/>
وهذه أمثله لكيÙيه إستخدام الروابط وأيضا التخلص من المخترقين والمخربين وذلك من خلال الÙلتره والتØÙ‚Ù‚ التلقائي لجميع المدخلات
<br/>
<br/>
</p>
<h3> › الإستخدام :</h3>
<p>
<pre class="prettyprint"><code><? php
// هنا يتم تنÙيذ الأمر عند إستدعاء الرابط
// site.com/hi or site.com/hi/
$lezaz->router('/hi', function(){
echo 'HI'; // site.com/hi/ >> "HI"
});
// يتم تنÙيذ الأمر التالي عند إستدعاء الرابط متبوعا بأي قيمة أخرى مثل
// site.com/hi/1 or site.com/hi/my_url/any_other_url/any/any
$lezaz->router('/hi/@*', function(){
echo 'HI'; // site.com/hi/me >> "HI"
});
// ÙÙŠ هذا المثال Ù†ÙØ³ المثال السابق ولكن نريد أخذ القيمة المتبوع بكلمة هاي
$lezaz->router('/hi/@*', function($e){
echo 'HI and '.$e; // site.com/hi/me >> "HI and me"
});
// هنا نريد إستخدام أكثر من رابط لتنÙيذ الأوامر
$lezaz->router(array('/hi/','/my/','/any/other/word/'), function(){
echo 'hi my any other word'; // site.com/my/ >> "hi my any other word"
});
/*ÙÙŠ هذا المثال نريد إستخدام المكتبه الرئيسيه لزاز داخل الداله مثلا لتغيير القالب إلى الإسم الذي نريده لعمل إستدعاء لهذا القالب
, ÙÙŠ هذه Ø§Ù„ØØ§Ù„Ù‡ Ù†ØØªØ§Ø¬ إلى إستخدام المكتبه ونكتب الكود بالطريقه التاليه
*/
$lezaz->router('/admin/@str', function($b) use ($lezaz) {
$lezaz->main_template = '{template}admin/'.$b; // site.com/admin/myfile >> load /template/admin/myfile.inc
});
// بعض الأمثله السريعه
$lezaz->router(array('/test/@num/@str', 'test'), function($num,$str) use ($lezaz) {
$lezaz->main_template = '{template}admin/test'; // إستدعاء القالب تست من المجلد أدمن داخل مجلد القوالب الرئيسي
echo "Number=$num & String=$str"; // طباعه المتغيرات القادمة من الرابط ويجب أن تكون رقم ثم نص
//الرباط يكون كالتالي
// http://site.com/test/1/test
});
</code></pre>
<h3> › الرموز أو Ø§Ù„Ù…ÙØ§ØªÙŠØ :</h3>
<p>
<pre class="prettyprint"><code>
'@num' => '([0-9\.,]+)', // رقم ويمكن أن ÙŠØØªÙˆÙŠ Ø¹Ù„Ù‰ Ø§Ù„ÙØ§Ø±Ø²Ù‡ والنقطه
'@alpha' => '([a-zA-Z]+)', // ØØ±ÙˆÙ كبيره وصغيره Ùقط
'@alnum' => '([a-zA-Z0-9\.\w]+)', // ØØ±ÙˆÙ كبيرة وصغيره بالإضاÙÙ‡ إلى الأرقام والنقطه
'@str' => '([a-zA-Z0-9-_\.\w]+)', // ØØ±ÙˆÙ كبيرة وصغيره بالإضاÙÙ‡ إلى الأرقام والنقطه وإشارة الناقص والشرطه
'@*' => '(.*)', // يقبل كل Ø§Ù„ØØ±ÙˆÙ والرموز
'@date' => '(([0-9]{1,2})\/([0-9]{1,2})\/(([0-9]{2})(.{0}|.{2})))', // التاريخ بÙورمات كالتالي 00/00/0000
'@null' => '^'); // لايقبل أي ØØ±Ù , يجب أن يكون ÙØ§Ø±Øº
</code></pre>
<h3> › Ø¥Ø¶Ø§ÙØ© Ù…ÙØªØ§Ø جديد </h3>
ماذا لو أردنا مثلا Ø¥Ø¶Ø§ÙØ© Ù…ÙØªØ§Ø جديد للتاريخ بØÙŠØ« تكون الÙورمات كالتالي
<br>
<code>00-00-0000</code>
<br>
يمكننا ذلك من خلال Ø¥Ø¶Ø§ÙØ© Ù…ÙØªØ§Ø عن طريق الكود التالي ولكن يجب الإنتباه إلى أن عمليه Ø¥Ø¶Ø§ÙØ© Ø§Ù„Ù…ÙØªØ§Ø يجب أن تتم قبل كود العنوان
<p>
<pre class="prettyprint"><code>
$lezaz->add_router('@mydate','(([0-9]{1,2})-([0-9]{1,2})-(([0-9]{2})(.{0}|.{2})))');
$lezaz->router('/@mydate', function($date) {
echo "your date is $date";
});
// url : http://site.com/1-7-2001
</code></pre>
<h3> › مثال </h3>
قم بإنشاء مجلد داخل مجلد Ø§Ù„Ø¥Ø¶Ø§ÙØ§Øª بإسم
<br />
<code>/plugin/my_test/</code>
أنشيء مل٠بإسم
<code>/plugin/my_test/index.php</code>
وأكتب هذا الكود داخله
<pre class="prettyprint"><code><? php
/* سيتم إستدعاء القالب
/template/my_template/test.inc
عند كتابة العنوان التالي
http://your_domain.com/test or http://your_domain.com/test/any_thing
*/
$lezaz->router(array('/test/@*', 'test'), function($file) use ($lezaz) {
$lezaz->main_template = '{template}my_template/'.$file;
});
</code></pre>
<br/>
الآن أنشيء مجلد داخل مجلد القوالب بإسم
<code>/template/my_template/</code>
ثم أنشئ Ù…Ù„ÙØ§Øª داخل المجلد بإسم
<code>/template/my_template/test.inc</code>
<code>/template/my_template/other.inc</code>
وقم Ø¨Ø¥Ø¶Ø§ÙØ© هذا الكود داخل Ø§Ù„Ù…Ù„ÙØ§Øª بالترتيب
<pre class="prettyprint"><code><html>
this is <b>test.inc</b> content!
</html>
</code></pre>
<pre class="prettyprint"><code><html>
this is <b>other.inc</b> content!
</html>
</code></pre>
الآن عند الدخول إلى الرابط
<code>/test/test </code>
يجب رؤية ماÙÙŠ داخل المل٠الأول
<code>test.inc </code><br/>
ÙˆÙÙŠ ØØ§Ù„ ØªØµÙØ الرابط
<code>/test/other</code>
ستظهر Ù…ØØªÙˆÙŠØ§Øª المل٠الثاني
<code>other.inc</code> <br/>
ÙˆÙÙŠ Ø§Ù„ØØ§Ù„Ù‡ الأخيرة وهو الدخول إلى أي رابط غير Ù…ØªÙˆÙØ± المل٠له مثل
<code>/test/anyword</code>
ستظهر لنا عبارة تÙيد بأن القالب غير Ù…ØªÙˆÙØ±
</div>
<!-- router -->
<!-- Events/Hooks -->
<div id="eventshock" class="tab-pane fade">
<h1> <span class="glyphicon glyphicon-download"></span> Ø§Ù„Ø£ØØ¯Ø§Ø« والصياد <small>"زناد وتنصت"</small></h1>
<b></b>
الأمر هنا وكأننا نصطاد , Ùلدينا زناد ومستمع للطلقه أو Ø§Ù„ØØ¯Ø«
<br/>
قبل كل هذا لنرى Ù…Ø§ÙŠØØ¯Ø« ÙØ¹Ù„يا ... هناك مساعد للصياد يمتلك أداوت مثل الشبكه أو كلب صيد وهذا الصياد ينتظر الزناد وذلك بالإستماع إلى صوت الطلقه
, عند إطلاق الرصاصه يقوم المساعد بتنÙيذ أمر إطلاق كلب الصيد أو تهيئة الشباك
<br>
هذا Ù…Ø§ÙŠØØ¯Ø« ÙØ¹Ù„يا ÙÙŠ هذه المرØÙ„Ù‡ , Ùهناك صياد
<code>trigger</code> ولدينا أيضا مستمع للزناد وهو عباره عن داله لتنÙيذ الأوامر
<code>listen</code><br >
Ø§Ù„Ø£ØØ¯Ø§Ø« أو الزناد مثل Ø§Ù„ØØµÙˆÙ„ على مخرجات التطبيق وقبل عرضها يتم عمل ØØ¯Ø« لتتمكن من خلال المتنصت من عمل Ùلترة لهذه المخرجات ,
أيضا هناك مثال آخر , عند تخزين مدخلات ÙÙŠ قاعدة البيانات هنا Ù†ØØªØ§Ø¬ إلى ØØ¯Ø« لنتمكن من Ù…Ø¹Ø±ÙØ© المعر٠الخاص بهذه المدخلات ويمكن أن Ù†ØØªØ§Ø¬ إلى المدخلات قبل إدخالها لقاعدة البيانات
ØØªÙ‰ نتمكن من Ùلترة بعضها مثلا
<br/>
هناك الكثير من الأمثله تستوجب مثل هذه التقنيه لجعل النظام الخاص بك مرن إلى أبعد ØØ¯
<h3>» الإستخدام </h3>
Ø¥Ø¶Ø§ÙØ© مستمع , ويكون ÙÙŠ الطبقه العليا لنظمن سماع الزناد ÙÙŠ أي طبقه أسÙلها , أي ÙÙŠ Ù…Ù„ÙØ§Øª ال
<code> init.php</code> <br>
<pre class="prettyprint"><code>
//$lezaz->listen($tag,$callable,$priority);
// $tag: Ø§Ù„ØØ¯Ø« .
// $callable: داله لتنÙيذ الأوامر
// $priority:الأولويه وهو رقم كلما كان أقل كانت أعلى
// examples:
$lezaz->listen('test.action.1', function(){
echo "this is 1 ...<br/>";
});
$lezaz->listen('test.action.1', function(){
echo "this is 2 ...<br/>";
});
$lezaz->listen('test.action.1', function($arg1,$arg2){
echo "this is 3 ...", " you have passed an argument it is: <br/>", $arg1,'|',$arg2;
});
// لتنÙيذ الأوامر السابقة Ùقط قم بضغط الزناد عبر الأمر
$lezaz->trigger('test.action.1',array( 'arg_1','arg_2'));
/*
النتيجه
this is 1 ...
this is 2 ...
this is 3 ... you have passed an argument it is:
arg_1|arg_2
*/
// Ù†ÙØ³ المثال السابق ولكن بأولويه معينه لكل أمر
$lezaz->listen('test.action.1', function(){
echo "<br/>this is 1 ...<br/>";
},5);
$lezaz->listen('test.action.1', function(){
echo "<br/>this is 2 ...<br/>";
},10);
$lezaz->listen('test.action.1', function($arg1,$arg2){
echo "<br/>this is 3 ...", " you have passed an argument it is: <br/>", $arg1,'|',$arg2,'<br/>';
},0);
$lezaz->trigger('test.action.1',array( 'arg_1','arg_2'));
/*
النتيجه
this is 3 ... you have passed an argument it is:
arg_1|arg_2
this is 1 ...
this is 2 ...
*/
// مثال لكيÙية إستخدام الÙلاتر
// إرجاع القيمة الأوليه مع أقواس
$lezaz->listen('test.filter.1', function($word){
return "($word)";
});
// إرجاع آخر تعديل على القيمة بين إشارتي ناقص
$lezaz->listen('test.filter.1', function($word, $last_filtered){
return "-$last_filtered-";
});
// إرجاع القيمة الأوليه والقيمة المعدله بين إشارتي يساوي وبتنسيق خط كبير
$lezaz->listen('test.filter.1', function($word, $last_filtered){
return "$word:<h1>=$last_filtered=</h1>";
});
// لنختار كلمة
$myword = 'test';
// الآن نمرر الكلمة على الÙلاتر السابقة من خلال ضغط الزناد
echo $lezaz->trigger('test.filter.1', $myword);
/*
النتيجه
test:<h1>=-(test)-=</h1>
*/
</code></pre>
<h3>» Ø£ØØ¯Ø§Ø« مدمجه وجاهزه للإستماع</h3>
هناك Ø£ØØ¯Ø§Ø« كثيرة مدمجه مع النظام ويمكن أن تزداد ÙÙŠ كل ØªØØ¯ÙŠØ« كما ØªØØªÙˆÙŠ Ø¨Ø¹Ø¶ Ø§Ù„Ø¥Ø¶Ø§ÙØ§Øª على Ø£ØØ¯Ø§Ø« جاهزه لتتمكن من التعامل مع المخرجات وتدمج Ø§Ù„Ø¥Ø¶Ø§ÙØ§Øª
أو أعمالك مع هذه Ø§Ù„Ø¥Ø¶Ø§ÙØ§Øª
<br />
<pre class="prettyprint"><code>
// new.guset ---> زائر جديد كليا ويمكن أن يكون بوت
// session.guset ---> بداية جلسه لزائر ØÙ‚يقي أي شخص تم التأكد منه
// requset.guset ---> زائر يقوم Ø¨Ø§Ù„ØªØµÙØ
// layer.init.start ---> بدء تنÙيذ Ù…Ù„ÙØ§Øª الطبقة الأولى
// layer.init.done ---> الإنتهاء من تنÙيذ Ù…Ù„ÙØ§Øª الطبقه الأولى
// layer.index.start ---> بدء تنÙيذ Ù…Ù„ÙØ§Øª الطبقة الثانيه
// layer.index.done ---> الإنتهاء من تنÙيذ Ù…Ù„ÙØ§Øª الطبقه الثانيه
// layer.footer.start ---> بدء تنÙيذ Ù…Ù„ÙØ§Øª الطبقة الثالثه
// layer.footer.done ---> الإنتهاء من تنÙيذ Ù…Ù„ÙØ§Øª الطبقه الثالثه
// layer.term.start ---> بدء تنÙيذ Ù…Ù„ÙØ§Øª الطبقة الرابعه
// layer.term.done ---> الإنتهاء من تنÙيذ Ù…Ù„ÙØ§Øª الطبقه الرابعه
// output.filter ---> Ùلتر المخرجات قبل الطباعه
</code></pre>
</div>
<!-- Events/Hooks -->
<!-- helpers -->
<div id="helpers" class="tab-pane fade">
<h1> <span class="glyphicon glyphicon-download"></span>مساعد</h1>
<h3>› ثوابت</h3>
<table class="table table-responsive table-borderd">
<tr>
<td><code>SITE_DOMAIN</code></td>
<td>إسم النطاق مثل
<br>
site.com
</td>
</tr>
<tr>
<td><code>SITE_PATH</code></td>
<td>المسار Ø§Ù„ÙØ¹Ù„ÙŠ للمجلد الجذر الخاص بالموقع أو التطبيق الذي نعمل عليه
<br>
/home/antfolder/www/ or c:/xampp/htdocs/www/
</td>
</tr>
<tr>
<td><code>SITE_IP</code></td>
<td>عنوان الآي بي للموقع</td>
</tr>
<tr>
<td><code>SITE_LINK</code></td>
<td>رابط الموقع مثل
<br>
http://site.com/
</td>
</tr>
<tr>
<td><code>Version</code></td>
<td>رقم النسخة الخاصه بلزاز الذي تعمل عليه</td>
</tr>
<tr>
<td><code>TEMPLATE_PATH</code></td>
<td>المسار الØÙ‚يقي لمجلد القوالب</td>
</tr>
<tr>
<td><code>UPLOADED_PATH</code></td>
<td>المسار الØÙ‚يقي لمجلد Ø§Ù„Ù…Ù„ÙØ§Øª المØÙ…له</td>
</tr>
<tr>
<td><code>CLASSES_PATH</code></td>
<td>المسار الØÙ‚يقي لمجلد Ù…Ù„ÙØ§Øª الكلاس</td>
</tr>
<tr>
<td><code>CACHE_PATH</code></td>
<td>المسار الØÙ‚يقي لمجلد الكاش أو النسخ المخبئه</td>
</tr>
<tr>
<td><code>TMP_PATH</code></td>
<td>المسار الØÙ‚يقي لمجلد Ø§Ù„Ù…Ù„ÙØ§Øª المؤقته</td>
</tr>
<tr>
<td><code>PLUGIN_PATH</code></td>
<td>المسار الØÙ‚يقي لمجلد Ø§Ù„Ø¥Ø¶Ø§ÙØ§Øª</td>
</tr>
<tr>
<td><code>THEME_PATH</code></td>
<td>المسار الØÙ‚يقي لمجلد الثيم أو التصميم الرئيسي داخل مجلد القوالب</td>
</tr>
<tr>
<td><code>TEMPLATE_LINK</code></td>
<td>الرابط أو عنوان الويب لمجلد القوالب</td>
</tr>
<tr>
<td><code>UPLOADED_LINK</code></td>
<td>الرابط أو عنوان الويب لمجلد Ø§Ù„Ù…Ù„ÙØ§Øª المØÙ…له</td>
</tr>
<tr>
<td><code>CLASSES_LINK</code></td>
<td>الرابط أو عنوان الويب لمجلد Ù…Ù„ÙØ§Øª الكلاس</td>
</tr>
<tr>
<td><code>CACHE_LINK</code></td>
<td>الرابط أو عنوان الويب لمجلد الكاش أو النسخ المخبئه</td>
</tr>
<tr>
<td><code>TMP_LINK</code></td>
<td>الرابط أو عنوان الويب لمجلد Ø§Ù„Ù…Ù„ÙØ§Øª المؤقته</td>
</tr>
<tr>
<td><code>PLUGIN_LINK</code></td>
<td>الرابط أو عنوان الويب لمجلد Ø§Ù„Ø¥Ø¶Ø§ÙØ§Øª</td>
</tr>
<tr>
<td><code>THEME_LINK</code></td>
<td>الرابط أو عنوان الويب لمجلد الثيم أو التصميم الرئيسي داخل مجلد القوالب</td>
</tr>
</table>
<hr />
<h3>› Ø£ØØ¯Ø§Ø« مساعدة <small><strong>تتعلق بالمتغير
<code>$lezaz</code>
</strong></small></h3>
<table class="table table-responsive table-borderd table-striped">
<tr>
<td class='tdfirst'><code>run();</code></td>
<td><code>string</code></td>
<td colspan="2">
تنÙيذ نظام لزاز وإرجاع المخرجات جاهزه للطباعه
<code>echo $lezaz->run();</code>
</td>
</tr>
<tr>
<td class='tdfirst'><code>address();</code></td>
<td><code>string</code></td>
<td colspan="2">
إرجاع عنوان Ø§Ù„ØµÙØØ© التي تم طلبها بالإضاÙÙ‡ إلى علامة الإستÙهام أو الضم لتتمكن من Ø¥Ø¶Ø§ÙØ© متغيرات بعد الرابط
<code>echo $lezaz->address();</code>
<code>result >> http://www.site.com/? or http://www.site.com/?id=1&</code>
</td>
</tr>
<tr>
<td class='tdfirst'><code>language(optional $str);</code></td>
<td><code>string</code></td>
<td colspan="2">
<code>$lezaz->language(optional $str);</code><br>
إسترجاع اللغه Ø§Ù„ØØ§Ù„يه أو ØªØØ¯ÙŠØ¯ لغه أخرى ÙÙŠ ØØ§Ù„ تم تمرير متغير ÙŠØÙ…Ù„ اللغه الجديد
<br><code>echo $lezaz->language() // en</code>
<br><code>$lezaz->language('ar') // set language arabic</code>
</td>
</tr>
<tr>
<td class='tdfirst'><code>set_tpl($tpl)</code></td>
<td><code>Null</code></td>
<td colspan="2">
Ù„ØªØØ¯ÙŠØ¯ القالب الذي تريد تنÙيذه من مجلد القوالب<br/>
Ù„ØªØØ¯ÙŠØ¯ قالب موجود ÙÙŠ مجلد القوالب داخل مجلد بإسم أدمن نكتب كالتالي<br/>
<code>$lezaz->set_tpl({template}admin/my_template.inc)</code><br/>
ÙˆÙ„ØªØØ¯ÙŠØ¯ قالب موجود ÙÙŠ Ù†ÙØ³ مجلد الثيم الرئيسي Ùقط نكتب إسم مل٠القالب كما يلي <br/>
<code>$lezaz->set_tpl(my_template.inc)</code><br/>
مسميات يمكن إستخدامها داخل القوالب Ù„ØªØØ¯ÙŠØ¯ رابط المجلد : <br/>
{template} , {plugin} , {tmp} , {classes} , {theme} , {cahce}
</td>
</tr>
<tr>
<td class='tdfirst'><code>encrypt($str)</code></td>
<td><code>string</code></td>
<td colspan="2">
لتشÙير النصوص
<code>echo $lezaz->encrypt($string);</code>
</td>
</tr>
<tr>
<td class='tdfirst'><code>decrypt($str)</code></td>
<td><code>string</code></td>
<td colspan="2">
ÙÙƒ تشÙير النصوص
<code>echo $lezaz->decrypt($string);</code>
</td>
</tr>
<tr>
<td class='tdfirst'><code>go($to,$using)</code></td>
<td><code>Null</code></td>
<td colspan="2">
لعمل إعادة توجيه بإستخدام عدة طرق <br/>
<code># using HTTP 302 <br> $lezaz->go('page/1');</code><br/>
<code># using HTTP 301 <br> $lezaz->go('page/1',301);</code><br/>
<code># using HTML & redirect after 3 seconds <br> $lezaz->go('page/1','html:3');</code><br/>
<code># using JS & redirect after 6 seconds <br> $lezaz->go('page/1','js:6');</code><br/>
<code># redirect to external url <br> $lezaz->go('http://google.com','html:8');</code><br/>
</td>
</tr>
<tr>
<td class='tdfirst'><code>statics()</code></td>
<td><code>Array</code></td>
<td colspan="2">
إرجاع بعض Ø§Ù„Ø¥ØØµØ§Ø¦ÙŠØ§Øª مثل مدة التنÙيذ
<code>print_r( $lezaz->statics());</code>
</td>
</tr>
<tr>
<td class='tdfirst'><code>set($key, $value)</code></td>
<td><code>Null</code></td>
<td colspan="2">
Ù„Ø¥Ø¶Ø§ÙØ© متغير لتتمكن من إستخدامه ÙÙŠ القوالب أو ÙÙŠ ØµÙØØ§Øª أخرى لأن جميع المتغرات ÙÙŠ Ø§Ù„Ù…Ù„ÙØ§Øª التي ØªÙ†ÙØ° داخل الطبقات
ستكون خاصه بالمل٠الذي هي Ùيه وهذه الداله تساعدك لنقل المتغير إلى الطبقات الأخرى ÙÙŠ ØØ§Ù„ أردت إستخدامها
<code>$lezaz->set('my_var',$my_var);</code>
</td>
</tr>
<tr>
<td class='tdfirst'><code>get($key, $item(optional))</code></td>
<td><code>string</code></td>
<td colspan="2">
إرجاع قيمة المتغيرات القادمه من الطريقه
<code>$_GET</code>
ÙˆÙÙŠ ØØ§Ù„ عدم وجودها يقوم النظام Ø¨Ø§Ù„Ø¨ØØ« عن المتغيرات التي قمت بإسنادها عن طريق الداله السابقة
<code>set()</code>
<br>
ÙÙŠ ØØ§Ù„ كان المتغير القادم من الطريقه
<code>$_GET</code>
عباره عن مصÙÙˆÙÙ‡ يمكنك الوصول إلى المستوى الأول من المصÙÙˆÙÙ‡ بإستخدام المتغير الثاني
<code>$_GET[id] is same $lezaz->get('id');</code><br/>
<code>$_GET[array][item] is same $lezaz->get('array','item');</code><br/>
<code>$lezaz->set('x','1'); echo $lezaz->get('x'); // result is 1</code><br/>
</td>
</tr>
<tr>
<td class='tdfirst'><code>post($key, $item(optional))</code></td>
<td><code>string</code></td>
<td colspan="2">
إرجاع قيمة المتغيرات القادمه من الطريقه
<code>$_POST</code>
<br>
ÙÙŠ ØØ§Ù„ كان المتغير القادم من الطريقه
<code>$_POST</code>
عباره عن مصÙÙˆÙÙ‡ يمكنك الوصول إلى المستوى الأول من المصÙÙˆÙÙ‡ بإستخدام المتغير الثاني
<code>$_POST[id] is same $lezaz->post('id');</code><br/>
<code>$_POST[array][item] is same $lezaz->post('array','item');</code><br/>
</td>
</tr>
<tr>
<td class='tdfirst'><code>sess($key, $item(optional))</code></td>
<td><code>string</code></td>
<td colspan="2">
إرجاع قيمة المتغيرات القادمه من الطريقه
<code>$_SESSION</code>
<br>
ÙÙŠ ØØ§Ù„ كان المتغير القادم من الطريقه
<code>$_SESSION</code>
عباره عن مصÙÙˆÙÙ‡ يمكنك الوصول إلى المستوى الأول من المصÙÙˆÙÙ‡ بإستخدام المتغير الثاني
<code>$_SESSION[id] is same $lezaz->sess('id');</code><br/>
<code>$_SESSION[array][item] is same $lezaz->sess('array','item');</code><br/>
</td>
</tr>
<tr>
<td class='tdfirst'><code>cons($key, $item(optional))</code></td>
<td><code>string</code></td>
<td colspan="2">
إرجاع قيمة المتغيرات القادمه من الطريقه
<code>defined</code>
<br>
ÙÙŠ ØØ§Ù„ كان المتغير القادم من الطريقه
<code>defined</code>
عباره عن مصÙÙˆÙÙ‡ يمكنك الوصول إلى المستوى الأول من المصÙÙˆÙÙ‡ بإستخدام المتغير الثاني
<code>SITE_DOMAIN is same $lezaz->cons('SITE_DOMAIN');</code><br/>
<code>ANYCONSIPT[item] is same $lezaz->cons('ANYCONSIPT','item');</code><br/>
</td>
</tr>
<tr>
<td class='tdfirst'><code>setsetting($parametr, $value = '')</code></td>
<td><code>Null</code></td>
<td colspan="2">
Ù„ØÙظ متغيرات على مستوى عالمي ولمدة طويله ,
يمكن إستخدام هذه المتغيرات كإعدادات للموقع مثل إسم الموقع وماهي اللغه الرئيسيه
<br/>
يتم ØÙظ البيانات داخل مل٠ÙÙŠ القالب الرئيسي بإسم
<code>setting.ini</code> بشكل Ù…Ø´ÙØ± للØÙ…ايه القصوى
<code>$lezaz->setsetting('my_var','my value');</code> <br>
Ù„ØØ°Ù متغير Ùقط قم بإسناد المتغير بدون قيمه
<code>$lezaz->setsetting('my_var'); // delete my_var</code> <br>
</td>
</tr>
<tr>
<td class='tdfirst'><code>setting($key, $defult (optional))</code></td>
<td><code>string</code></td>
<td colspan="2">
لإسترجاع قيمة متغير تم ØÙظها كإعداد من الداله
<br>
<code>echo $lezaz->setsetting('my_var','my value');</code><br>
<code>echo $lezaz->setting('my_var'); // result : my value</code><br>
ÙÙŠ ØØ§Ù„ أردت وجود قيمه Ø¥ÙØªØ±Ø§Ø¶ÙŠÙ‡ يمكنك إستخدام المتغير الثاني , ÙˆÙÙŠ هذه Ø§Ù„ØØ§Ù„Ù‡ إذا لم توجد قيمة للمتغير ستظهر القيمة Ø§Ù„Ø¥ÙØªØ±Ø§Ø¶ÙŠÙ‡
<br>
<code>echo $lezaz->setting(Null,'my defult value'); // result : my defult value</code><br>
</td>
</tr>
<tr>
<td class='tdfirst'><code>set_msg($msg, $type)</code></td>
<td><code>Null</code></td>
<td colspan="2">
Ù„Ø¥Ø¶Ø§ÙØ© رسائل أو تنبيهات يمكن إظهارها للمستخدم
<br>
المتغير الأول نص الرساله والمتغير الثاني نوع الرساله وأنواع الرسائل هي
<br>
<code>danger</code>
<code>success</code>
<code>warning</code>
<code>info</code>
<br>
<code>$lezaz->set_msg('this is error with your file!', 'danger')</code>
</td>
</tr>
<tr>
<td class='tdfirst'><code>msg()</code></td>
<td><code>string</code></td>
<td colspan="2">
إسترجاع كامل الرسائل التي تم ØÙظها ÙÙŠ الطلب
<code>echo $lezaz->msg();</code>
</td>
</tr>
</table>
</div>
<!-- helpers -->
<!-- db -->
<div id="db" class="tab-pane fade">
<h1> <span class="glyphicon glyphicon-download"></span> قواعد البيانات <small>"$lezaz->db"</small></h1>
يمكنك إستخدام أي نوع من أنواع قواعد البيانات ولكن لم يتم التأكد إلا من
<code>MYSQL</code>
ØØªÙ‰ الآن , يمكنك تجربة أي قاعدة بيانات وإخبارنا بنجاØÙ‡Ø§
<h3>» <code>$lezaz->db</code></h3>
لدينا الكثير من الدوال التي ØªÙˆÙØ± عليك الوقت والجهد كما أننا تركنا لك المجال لإستخدام الدوال الجاهزه ÙÙŠ
<code>PDO</code>
<br>
<code>transaction</code>
<pre class="prettyprint"><code>
$lezaz->db->transaction($type);
//$type = B=begin, C=commit & R=rollback
</code></pre>
<br>
<code>execute</code>
<pre class="prettyprint"><code>
$lezaz->db->execute($sp_query);
//تنÙيذ إستعلامات عن طريق دوال بي أتس بي الجاهزه
</code></pre>
<br>
<code>ShowTables</code>
<pre class="prettyprint"><code>
$lezaz->db->ShowTables();
// عرض جميع الجداول ÙÙŠ قاعدة البيانات داخل مصÙÙˆÙÙ‡
print_r($lezaz->db->ShowTables());
/*
Result:
Array
(
[1] => Array
(
[Tables_in_mydatabase] => pages
)
[2] => Array
(
[Tables_in_mydatabase] => memb_perm
)
[3] => Array
(
[Tables_in_mydatabase] => members
)
)
*/
</code></pre>
<br>
<code> tableExists</code>
<pre class="prettyprint"><code>
$lezaz->db->tableExists($table);
//التاكد من وجود الجدول ÙÙŠ قاعدة البيانات , تعيد الداله
//True , False
</code></pre>
<br>
<code>create_table</code>
<pre class="prettyprint"><code>
$lezaz->db->create_table($tbl_name, $fields = array())
// تستخدم هذه الداله لإنشاء جدول والتعديل عليه مثل Ø¥Ø¶Ø§ÙØ© ØÙ‚ول جديده أو ØØ°Ùها أو تغيير نوعها
$field['info1']='VARCHAR(250)';
$field['info2']='int(11)';
$field['any_field']='VARCHAR(15) NOT NULL';
$lezaz->db->create_table('my_table', $field);
// ÙÙŠ ØØ§Ù„ لم تقم بإنشاء ØÙ‚Ù„ معرÙ
// ID
// سيتم تعريÙÙ‡ بشكل تلقائي
// وإذا قمت بتنÙيذ Ù†ÙØ³ الكود السابق مع ØØ°Ù وإضاÙÙ‡ ØÙ‚ول أخرى وتغيير نوع Ø£ØØ¯ الØÙ‚ول ÙØ³ÙŠØªÙ… تعديل ذلك Ùورا
$field['info1']='VARCHAR(20)';
$field['info3']='int(14)';
$field['any_field']='VARCHAR(15) NOT NULL';
$lezaz->db->create_table('my_table', $field);
</code></pre>
<br>
<code>query</code>
تتميز هذه الداله بعمل نسخة مخبئة من النتائج لمدة معينه ممايخÙ٠الضغط عن الخادم ÙÙŠ ØØ§Ù„ أن النتائج لا يتم ØªØØ¯ÙŠÙ‡Ø§ طوال ÙØªØ±Ø© معينه , مثل
ØµÙØØ§Øª الموقع الثابته والأخبار والمنتجات ÙØ¬Ù…يعها Ùقط يتم ØªØØ¯ÙŠØ«Ù‡Ø§ من قبل المدير لذلك Ùهذه البيانات Ù„Ø§ØªØØªØ§Ø¬ إلى إعادة تØÙ…يلها لكل زائر ويمكنك
جعل مدة ØÙظ نسخة منها مدة سنه ولا تقلق ÙØ§Ù„نظام يقوم Ø¨ØØ°Ù النسخ المخبئة ÙÙŠ ØØ§Ù„ إدخال أو تعديل أو ØØ°Ù أي خبر أو منتج
<pre class="prettyprint"><code>
$lezaz->db->query($query, $cacheTime = 0);
// للإستعلام عن جمل سيكول وإرجاع مصÙÙˆÙÙ‡ بجميع النتائج
// المتغير كاش تايم الثاني إختياري , ÙÙŠ ØØ§Ù„ لم يتم Ø¥Ø¶Ø§ÙØªÙ‡ ÙØ³ÙŠØªÙ… أخذ نسخة مخبئة مدة الإعداد
//SQL_CACHE
//ÙÙŠ ØØ§Ù„ لم ترد أخذ نسخة مخبئة وتريد البيانات مباشرة من قاعدة البيانات Ùقط قم بجعل قيمة الكاش ÙˆØ§ØØ¯
$rows = $lezaz->db->query("select * from user");
if (is_array($rows))
foreach ($rows as $row) {
echo "$row[id] | $row[name] | $row[age] \n";
}
//result
1 | afnan | 8
2 | ahmed | 10
3 | bassam | 36
</code></pre>
<br>
<code>num_row</code>
لإرجاع عدد السجلات الناتجه عن جملة إستعلام سيكول
<pre class="prettyprint"><code>
$lezaz->db->num_row($query);
echo $lezaz->db->num_row("select * from user"); // 43
// النتيجه تكون رقم وهو عدد السجلات
</code></pre>
<br>
<code>row</code>
<pre class="prettyprint"><code>
row($table, $condetion, $row = '*');
//$table : إسم الجدول
//$condetion : الشرط
//$row : الØÙ‚ول التي سيتم إرجاعها , وهو إختياري والقيمة التلقائيه جميع الØÙ‚ول , ÙÙŠ ØØ§Ù„ تم وضع إسم ØÙ‚Ù„ ÙˆØ§ØØ¯ يتم إرجاع قيمة نصيه وهي قيمة الØÙ‚Ù„ أما تركها ÙØ§Ø±ØºØ§ Ùيتم إرجاع مصÙÙˆÙÙ‡
// إعادة العمر من جدول المستخدمين للØÙ‚Ù„ إسم يساوي Ø£Ùنان
echo $lezaz->db->row('user', 'name="afnan"','age'); // 8
// إعادة جميع الØÙ‚ول من الجدول مستخدمين للØÙ‚Ù„ إسم يساوي Ø£Ùنان
print_r( $lezaz->db->row('user', 'name="afnan"'));
/*
Array
(
[id] => 1
[name] => afnan
[age] => 8
)
*/
// إذا كان الشرط رقم سيعتبر أنك ØªØ¨ØØ« عن الآي دي رقم 1 مثلا
print_r( $lezaz->db->row('user', 1));
/*
Array
(
[id] => 1
[name] => afnan
[age] => 8
)
*/
</code></pre>
<br>
<code>save</code>
ØÙظ أو تعديل أي بيانات أي عمليات
<code>insert & update</code>
المتغيرات المطلوبه هي إسم الجدول والØÙ‚ول مع قيمتها كمصÙÙˆÙÙ‡ لعمليه الإدخال أما التعديل ÙØªØØªØ§Ø¬ إلى باقي المتغيرات وهي الشرط ونوع العمليه
يتم جعل قيمتها ÙˆØ§ØØ¯
<pre class="prettyprint"><code>
$lezaz->db->save($table, $feilds, $condetion = '', $type = 0) ;
/*
$table : إسم الجدول
$feilds : الØÙ‚ول كمصÙÙˆÙÙ‡
$condetion : إختياري , الشرط
$type : إختياري , ØµÙØ± معناها إدخل ÙˆÙˆØ§ØØ¯ معناها تعديل
*/
$fields['name']='bassam';
$fields['age']='36';
// إدخال البيانات ÙÙŠ قاعدة البيانات
$lezaz->db->save('user',$fields);
// تعديل البيانات بشرط الإسم يساوي Ø£Ùنان
$lezaz->db->save('user',$fields,'name="afnan"',1);
</code></pre>
<br>
<code>delete</code>
Ù„ØØ°Ù سجل من قاعدة البيانات , المتغير الأول لإسم الجدول والثاني للشرط
<br>
يمكن أن يكون الشرط Ùقط رقم ليتم ØØ°Ù الآي دي لهذا السجل
<pre class="prettyprint"><code>
$lezaz->db->delete($table, $condetion);
/*
$table: إسم الجدول
$condetion: الشرط
ترجع الداله مصÙÙˆÙÙ‡ بالسجلات التي تم ØØ°Ùها
*/
print_r($lezaz->db->delete('user','`name`="bassam"'));
/*
Array
(
[1] => Array
(
[id] => 8
[name] => bassam
[age] => 36
)
[2] => Array
(
[id] => 9
[name] => bassam
[age] => 36
)
)
*/
// Ù„ØØ°Ù السجل الذي له آي دي 5 أي
// delete from user where id=5
$lezaz->db->delete('user',5));
</code></pre>
</div>
<!-- db -->
<!-- files -->
<div id="files" class="tab-pane fade">
<h1> <span class="glyphicon glyphicon-download"></span> التعامل مع Ø§Ù„Ù…Ù„ÙØ§Øª <small><code>$lezaz->file</code></small></h1>
هذه الدوال خاصه Ø¨Ø§Ù„Ù…Ù„ÙØ§Øª كتØÙ…يلها والتعامل مع والكتابه والقراءه وغيرها من الأمور
<h3>» <code>$lezaz->file</code></h3>
<code>save</code><br/>
Ù„ØÙظ Ø§Ù„Ù…Ù„ÙØ§Øª المرÙوعه
<pre class="prettyprint"><code>
$lezaz->file->save($file, $saveto = '', $validation = '');
/*
$file: إسم المتغير القادم من المصÙÙˆÙÙ‡ $_FILES
$saveto: المجلد الذي سيتم ØÙظ المل٠به ويكون وداخل المجلد أبلوديدuploaded
$validation: للتØÙ‚Ù‚ من المل٠ويكون التØÙ‚Ù‚ بمصÙÙˆÙÙ‡
*/
if ($_FILES[file1]) {
$valid[whitelist] = array("gif", "png", "jpg", "jpeg");
$valid[blacklist] = array("exe", "php");
$valid[size] = array(20, 30);
echo $lezaz->file->save($_FILES[file1], 'folder', $valid);
}
/*
result if success
1452285393.png
>> file save in : /uploaded/folder/1452285393.png
* result if error type
[danger] [ERR_TYPE]full.txt
* result if error size
[danger] [ERR_SIZE]23_pv-micro-inverters-105259-6801101.jpg:52.267KB
*/
</code></pre>
<code>mkdir</code><br/>
لإنشاء مجلد ØØªÙ‰ لو كان المجلد الأب غير موجود Ùيتم إنشاؤه
<pre class="prettyprint"><code>
$lezaz->file->mkdir($path);
/*
$path : مسار المجلد الذي نود إنشاؤه
ترجع الداله ØµØ Ø£Ùˆ خطا لتأكيد Ù†Ø¬Ø§Ø Ø§Ù„Ø¹Ù…Ù„ÙŠÙ‡ أو ÙØ´Ù„ها
*/
echo $lezaz->file->mkdir(UPLOADED_PATH.'bassam'); // 1
echo $lezaz->file->mkdir(UPLOADED_PATH.'bas~ ^$#*&*(`sam'); // Null
echo $lezaz->file->mkdir(UPLOADED_PATH.'a/s/d/f/g/h'); // 1
</code></pre>
<code>write</code><br/>
إنشاء مل٠نصي ÙˆØØ°Ù المل٠إن كان موجودا وإعادة إنشاؤه
<pre class="prettyprint"><code>
$lezaz->file->write($file, $content);
/*
$file : إسم المل٠مع المسار كامل
$content : Ø§Ù„Ù…ØØªÙˆÙ‰ الخاص Ø¨Ø§Ù„Ù…Ù„Ù Ù„Ø¥Ø¶Ø§ÙØªÙ‡
لا تعيد الداله أي قيمة
*/
$lezaz->file->write(UPLOADED_PATH.'a/a.txt', "this is a test \n new line here!");
/*
create file in /uploaded/a/a.txt with content:
this is a test
new line here!
*/
</code></pre>
<code>listfile</code><br/>
لإرجاع مصÙÙˆÙÙ‡ ØªØØªÙˆÙŠ Ø¹Ù„Ù‰ قائمة بجميع Ø§Ù„Ù…Ù„ÙØ§Øª ÙÙŠ مجلد معين Ø¨Ø§Ù„Ø¥Ø¶Ø§ÙØ© لإمكانيه Ø§Ù„Ø¨ØØ« داخل المجلدات Ø§Ù„ÙØ±Ø¹ÙŠÙ‡ للمجلد المطلوب
, كما يمكنك Ø§Ù„Ø¨ØØ« عن Ù…Ù„ÙØ§Øª ذات إمتداد معين
<pre class="prettyprint"><code>
$lezaz->file->listfile($dir, $ext = '', $sub = 0) ;
/*
$dir: مسار المجلد المطلوب Ø§Ù„Ø¨ØØ« Ùيه
$ext: إختياري , Ù„Ù„Ø¨ØØ« عن إمتداد Ù…Ù„ÙØ§Øª معينه
$sub: إختياري , Ù„Ù„Ø¨ØØ« ÙÙŠ المجلدات Ø§Ù„ÙØ±Ø¹ÙŠÙ‡ ÙÙŠ ØØ§Ù„ كان له قيمه
تعيد هذه الداله مصÙÙˆÙÙ‡ بجميع Ø§Ù„Ù…Ù„ÙØ§Øª
*/
$dir = UPLOADED_PATH;
print_r($lezaz->file->listfile($dir));
/*
Array
(
[C:\xampp\htdocs\fw\uploaded\] => Array
(
[0] => .htaccess
[1] => 1451032564.png
)
[C:\xampp\htdocs\fw\uploaded\a/] => Array
(
[0] => a.txt
)
[C:\xampp\htdocs\fw\uploaded\setting/] => Array
(
[0] => 1451033222.png
)
[C:\xampp\htdocs\fw\uploaded\site/] => Array
(
[0] => 1447581949.png
)
)
*/
print_r($lezaz->file->listfile($dir, $ext = 'png', 1));
/*
Array
(
[C:\xampp\htdocs\fw\uploaded\] => Array
(
[0] => 1451032564.png
)
)
*/
</code></pre>
<code>view</code><br/>
لعرض Ù…Ù„ÙØ§Øª مخبئة بصيغه
<code>HTML</code>
<pre class="prettyprint"><code>
$lezaz->file->view($cachefile);
/*
$cachefile: مسار مل٠الويب الكامل
*/
$lezaz->file->view(UPLOADED_PATH.'a/a.txt');
/*
result wll be content of file :
this is a test
new line here!
*/
</code></pre>
</div>
<!-- files -->
<!-- string -->
<div id="string" class="tab-pane fade">
<h1> <span class="glyphicon glyphicon-download"></span>النصوص <small><code>$lezaz->string</code> </small></h1>
تتضمن لزاز Ø¥Ø¶Ø§ÙØ© Ø§Ù„Ø¨ØØ« داخل النصوص لتوÙير الوقت والجهد , وهي دوال بسيطه يمكن من خلالها Ø§Ù„Ø¨ØØ« عن أي نص بكل سهوله
<br />
<h3>» $lezaz->string</h3>
<code>after</code><br/>
<pre class="prettyprint"><code>
$lezaz->string->after($strthis, $inthat);
$strthis='abscdefsghijklmnopqrstuvswxyz';
$find= $lezaz->string->after('s',$strthis );
echo "result search for 's' after $strthis is : \n $find";
/*
result search for 's' after abscdefsghijklmnopqrstuvswxyz is :
cdefsghijklmnopqrstuvswxyz
*/
</code></pre>
<code>after_last</code><br/>
<pre class="prettyprint"><code>
$lezaz->string->after_last($strthis, $inthat);
$strthis='abscdefsghijklmnopqrstuvswxyz';
$find= $lezaz->string->after_last('s',$strthis );
echo "result search for 's' after_last $strthis is : \n $find";
/*
result search for 's' after_last abscdefsghijklmnopqrstuvswxyz is :
wxyz
*/
</code></pre>
<code>before</code><br/>
<pre class="prettyprint"><code>
$lezaz->string->before($strthis, $inthat);
$strthis='abscdefsghijklmnopqrstuvswxyz';
$find= $lezaz->string->before('s',$strthis );
echo "result search for 's' before $strthis is : \n $find";
/*
result search for 's' after_last abscdefsghijklmnopqrstuvswxyz is :
ab
*/
</code></pre>
<code>after_last</code><br/>
<pre class="prettyprint"><code>
$lezaz->string->before_last($strthis, $inthat);
$strthis='abscdefsghijklmnopqrstuvswxyz';
$find= $lezaz->string->before_last('s',$strthis );
echo "result search for 's' before_last $strthis is : \n $find";
/*
result search for 's' before_last abscdefsghijklmnopqrstuvswxyz is :
abscdefsghijklmnopqrstuv
*/
</code></pre>
<code>between</code><br/>
<pre class="prettyprint"><code>
$lezaz->string->between($strthis, $that, $inthat);
$strthis='abscdefsghijklmnopqrstuvswxyz';
$find= $lezaz->string->between('s','s',$strthis );
echo "result search for between 's' and 's' in $strthis is : \n $find";
/*
result search for between 's' and 's' in abscdefsghijklmnopqrstuvswxyz is :
cdef
*/
</code></pre>
<code>between_last</code><br/>
<pre class="prettyprint"><code>
$lezaz->string->between_last($strthis, $that, $inthat);
$strthis='abscdefsghijklmnopqrstuvswxyz';
$find= $lezaz->string->between_last('s','s',$strthis );
echo "result search for between_last 's' and 's' in $strthis is : \n $find";
/*
result search for between_last 's' and 's' in abscdefsghijklmnopqrstuvswxyz is :
tuv
*/
</code></pre>
</div>
<!-- string -->
<!--/ lezaz -->
</div>
<!-- CONTENTS -->
</div>
<!-- BODY -->
</div>
<!-- /.container -->
<!-- JavaScript -->
<script src="{{theme}}js/jquery.js"></script>
<script src="{{theme}}js/bootstrap.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('[data-toggle="tooltip"').tooltip();
$('tabs a').click(function(e) {
e.preventDefault();
$(this).tab('show');
});
});
</script>
</body>
</html>
|