mohamedhelal / arabtemplate
نظام قوالب arabTemplate للتفريق بين الكود و التصميم
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2025-06-16 17:13:14 UTC
README
السلام عليكم ورحمة الله وبركاتة نظام قوالب القالب العربى النسخة 10 تم اعادة برمجتها من الصفر و تطويرها فى ارجو من يقوم بتجربتها بقوم بكتابة الاخطاء التى ظهرة ليه
بسم الله
اولا التثبيت بواسطة مدير الحزم composer
composer require mohamedhelal/arabtemplate
// انشاء نسخة من الكلاس
$artpl = new \ArTemplate\ArTemplate([ // اضافة مجلد القوالب 'template' => realpath('path'), // مجلد الملفات المحولة 'compiler' => realpath('path'), // تفعيل وإلغاء الكاش 'caching' => false, // مجلد ملفات الكاش 'cache' => realpath('path') ]);
استدعاء القوالب
$artpl->display('index');
// or
echo $artpl->fetch('index');
تمرير المتغيرات للقالب
$artpl->assign('obj', 'MyTest' ); $artpl->with('obj', 'MyTest' );
استخدام المتغيرات داخل القالب
{{ $var }}
استخدام المصفوفات داخل القالب
{{ $row.key }} {{ $row[key] }} {{ $row[$key.name] }}
استخدام الكلاسات داخل القالب
{{ $obj->property }} {{ MyClass::$property }} {{ MyClass::$property.key.name }} {{ $obj::$property }} {{ $obj::$property.key.name }}
استخدام الدوال فى القالب
{{ myName($row,'mohamed') }} {{ $obj->method('name') }} {{ MyClass::method('name') }} {{ $obj::method('name') }}
استخدام الكلاس داخل القالب
مثال على الكلاس
class MyTest { public static $Myname = "Mohamedhelal"; public static $array = array('names' => array('first' => 'Mohamed')); public static function setMyName($val) { self::$Myname = $val; return new self(); } public function getThis() { return $this; } public function getName() { return self::$Myname; } }
وداخل القالب
{{ $obj::setMyName('Mohamed')->getThis()->getThis()->getThis()->getThis()->getName() }}
او
{{ MyTest::setMyName('Mohamed')->getThis()->getThis()->getThis()->getThis()->getName() }}
استدعاء قوالب داخل القالب
{{ include file="index" }} {{ include 'index' }} {{ include $var }}
استدعاء القوالب من مجلدات الموديلات
$artpl->setModuleDir('test', dirname(__FILE__).'/modules/test/views/'); $artpl->setModuleDir('users', dirname(__FILE__).'/modules/users/views/');
عرض قالب من مجلد الموديل
$artpl->display('test::index'); $artpl->display('users::index');
او استدعاء قالب داخل القالب من الموديل
{{ include file="test::index" }} {{ include $var }}
انشاء المتغيرات فى القالب
{{ $name = 'mohamed helal' }} {{ $i = 2 }} {{ ++$i }} {{ --$i }} {{ $i *= 2 }} {{ assign('my','value') }} {{ with('my','value') }}
استخدام داله باسم اخر فى القالب
$artpl->setFunction('ReturnArray', 'MyTest::getMyName'); {{ ReturnArray($rows) }} {{ $myfunc = ReturnArray($rows) }}
استخدام الداله داخل القالب و مع عدم طباعتها
{{ |function_name($var,...)| }}
انشاء داله داخل القالب
{{ function createMenuMapList($row,$mylinks) }} {{ $row->name }} || {{ $mylinks }} {{ /function }}
استدعاء الداله التى تم انشائها داخل القالب
{{ createMenuMapList($row,$mylinks) }}
استخدام الوب foreach
{{ foreach $rows as $row }} {{ $row@key }} {{ foreachelse}{ {{ /foreach }} {{ foreach $rows as $key => $val }} {{ foreachelse }} {{ /foreach }}
عمل تكرار بال key => val
{{ foreach $rows as $key => $val }} {{ foreachelse }} {{ /foreach }}
استخدام متغير الكائن
{{ foreach $rows as $row }} {{ $row@index }} {{ $row@first }} {{ $row@last }} {{ $row@first }} {{ $rows@count() }} {{ $row@is_div_by(2) }} {{ $row@is_even_by(2) }} {{ /foreach }}
استخدام for
{{ for $i = 0;$i < 10;$i++ }} {{ $i }} {{ /for }}
استخدام for متعدده
{{ for $i = 0,$j = 0;$i < 10,$j < 10;$i++,$j+=2 }} {{ $i }} {{ $j }} {{ /for }}
استخدام break|continue
{{ break|continue }}
استخدام الشروط داخل القالب
{{ if $name =="mohamed" }} // do same thing {{ elseif $name =="helal" }} // do same thing {{ else }} // do same thing {{ /if }}
استخدام الشروط القصيرة
{{ $var == 'mohamed'?true:false }}
دمج المتغيرات
{{ $var ."MohamedHelal" }}
التعليقات
{{* // تعليقات لن يتم معلجنها {{ $var }} *}}
عمل وراثة للقالب
parent.tpl
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>{{ block 'header' }}My Default Page Title {{ /block }}</title> </head> <body> {{ block 'body' }} My Default Page Content {{ /block }} </body> </html>
son.tpl
{{ extends file="parent" }} {{ extends "parent" }} {{ extends $layout }} {{ block "header" }} My Extend Page Header {{ /block }} {{ block "body" }} My Extend Page Content {{ /block }}
الناتج
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> My Extend Page Header </title> </head> <body> My Extend Page Content </body> </html>