<!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>
|