نظام قوالب arabTemplate للتفريق بين الكود و التصميم
PHP Smarty
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
ArTemplate
caches
compilers
templates
README.md
composer.json
index.php

README.md

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاتة نظام قوالب القالب العربى النسخة 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>