Skip to content

mohamedhelal/arabTemplate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

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

About

نظام قوالب arabTemplate للتفريق بين الكود و التصميم

Resources

Stars

Watchers

Forks

Packages

No packages published