بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاتة
نظام قوالب القالب العربى النسخة 10 تم اعادة برمجتها من الصفر و تطويرها فى ارجو من يقوم بتجربتها بقوم بكتابة الاخطاء التى ظهرة ليه, (*1)
بسم الله, (*2)
اولا التثبيت بواسطة مدير الحزم composer, (*3)
composer require mohamedhelal/arabtemplate
// انشاء نسخة من الكلاس, (*4)
$artpl = new \ArTemplate\ArTemplate([
// اضافة مجلد القوالب
'template' => realpath('path'),
// مجلد الملفات المحولة
'compiler' => realpath('path'),
// تفعيل وإلغاء الكاش
'caching' => false,
// مجلد ملفات الكاش
'cache' => realpath('path')
]);
استدعاء القوالب, (*5)
$artpl->display('index');
// or, (*6)
echo $artpl->fetch('index');
تمرير المتغيرات للقالب, (*7)
$artpl->assign('obj', 'MyTest' );
$artpl->with('obj', 'MyTest' );
استخدام المتغيرات داخل القالب, (*8)
{{ $var }}
استخدام المصفوفات داخل القالب, (*9)
{{ $row.key }}
{{ $row[key] }}
{{ $row[$key.name] }}
استخدام الكلاسات داخل القالب, (*10)
{{ $obj->property }}
{{ MyClass::$property }}
{{ MyClass::$property.key.name }}
{{ $obj::$property }}
{{ $obj::$property.key.name }}
استخدام الدوال فى القالب, (*11)
{{ myName($row,'mohamed') }}
{{ $obj->method('name') }}
{{ MyClass::method('name') }}
{{ $obj::method('name') }}
استخدام الكلاس داخل القالب, (*12)
مثال على الكلاس, (*13)
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;
}
}
وداخل القالب, (*14)
{{ $obj::setMyName('Mohamed')->getThis()->getThis()->getThis()->getThis()->getName() }}
او, (*15)
{{ MyTest::setMyName('Mohamed')->getThis()->getThis()->getThis()->getThis()->getName() }}
استدعاء قوالب داخل القالب, (*16)
{{ include file="index" }}
{{ include 'index' }}
{{ include $var }}
استدعاء القوالب من مجلدات الموديلات, (*17)
$artpl->setModuleDir('test', dirname(__FILE__).'/modules/test/views/');
$artpl->setModuleDir('users', dirname(__FILE__).'/modules/users/views/');
عرض قالب من مجلد الموديل, (*18)
$artpl->display('test::index');
$artpl->display('users::index');
او استدعاء قالب داخل القالب من الموديل, (*19)
{{ include file="test::index" }}
{{ include $var }}
انشاء المتغيرات فى القالب, (*20)
{{ $name = 'mohamed helal' }}
{{ $i = 2 }}
{{ ++$i }}
{{ --$i }}
{{ $i *= 2 }}
{{ assign('my','value') }}
{{ with('my','value') }}
استخدام داله باسم اخر فى القالب, (*21)
$artpl->setFunction('ReturnArray', 'MyTest::getMyName');
{{ ReturnArray($rows) }}
{{ $myfunc = ReturnArray($rows) }}
استخدام الداله داخل القالب و مع عدم طباعتها, (*22)
{{ |function_name($var,...)| }}
انشاء داله داخل القالب, (*23)
{{ function createMenuMapList($row,$mylinks) }}
{{ $row->name }} || {{ $mylinks }}
{{ /function }}
استدعاء الداله التى تم انشائها داخل القالب, (*24)
{{ createMenuMapList($row,$mylinks) }}
استخدام الوب foreach, (*25)
{{ foreach $rows as $row }}
{{ $row@key }}
{{ foreachelse}{
{{ /foreach }}
{{ foreach $rows as $key => $val }}
{{ foreachelse }}
{{ /foreach }}
عمل تكرار بال key => val, (*26)
{{ foreach $rows as $key => $val }}
{{ foreachelse }}
{{ /foreach }}
استخدام متغير الكائن, (*27)
{{ 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, (*28)
{{ for $i = 0;$i < 10;$i++ }}
{{ $i }}
{{ /for }}
استخدام for متعدده, (*29)
{{ for $i = 0,$j = 0;$i < 10,$j < 10;$i++,$j+=2 }}
{{ $i }}
{{ $j }}
{{ /for }}
استخدام break|continue, (*30)
{{ break|continue }}
استخدام الشروط داخل القالب, (*31)
{{ if $name =="mohamed" }}
// do same thing
{{ elseif $name =="helal" }}
// do same thing
{{ else }}
// do same thing
{{ /if }}
استخدام الشروط القصيرة, (*32)
{{ $var == 'mohamed'?true:false }}
دمج المتغيرات, (*33)
{{ $var ."MohamedHelal" }}
التعليقات, (*34)
{{*
// تعليقات لن يتم معلجنها
{{ $var }}
*}}
عمل وراثة للقالب, (*35)
parent.tpl, (*36)
<!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, (*37)
{{ extends file="parent" }}
{{ extends "parent" }}
{{ extends $layout }}
{{ block "header" }}
My Extend Page Header
{{ /block }}
{{ block "body" }}
My Extend Page Content
{{ /block }}
الناتج, (*38)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>
My Extend Page Header
</title>
</head>
<body>
My Extend Page Content
</body>
</html>