PageRenderTime 26ms CodeModel.GetById 12ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/documentation/manual/ar/module_specs/Zend_View-Controllers.xml

https://github.com/decaoz/zf1
XML | 154 lines | 122 code | 29 blank | 3 comment | 0 complexity | 61ec62e8fb288d92182ae255c751a5ef MD5 | raw file
  1<sect1 id="zend.view.controllers">
  2    <title>جزء الـ Controller</title>
  3
  4    <para>
  5        الـ controller هو حيث يتم إنشاء نسخة من Zend_View و إعدادها , أنت بعد ذلك تقم
  6        بإنشاء متغيرات جديدة فيها و إعطائها قيم ليتم إستخدامها فى الـ view ,
  7        ثم تقوم بالأمر بأن يتم معاجلة الـ view و إنتاج الخرج الذى سيتم عرضه.
  8    </para>
  9
 10    <sect2 id="zend.view.controllers.assign">
 11
 12        <title>إنشاء متغيرات و إعطائها قيم</title>
 13
 14        <para>
 15            يجب أن يقوم الـ controller خاصتك بإنشاء المتغيرات التى يحتاج إليها فى الـ view و تمريرها له
 16            قبل أن يقوم بنقل التحكم إلى الكود الخاص بالـ view , بشكل طبيعى يمكنك إضافة متغيرات إلى
 17            الـ view عن طريق الـ properties الخاصة بالنسخة التى أنشئتها من Zend_View :
 18        </para>
 19
 20        <programlisting role="php"><![CDATA[<?php
 21$view = new Zend_View();
 22$view->a = "Hay";
 23$view->b = "Bee";
 24$view->c = "Sea";
 25?>]]>
 26        </programlisting>
 27
 28        <para>
 29            لكن ربما هذا سيكون مزعج فى حالة أنك قد قمت مسبقاً بجمع كل القيم التى تريد تمريرها فى مصفوفة
 30            أو فى كائن.
 31        </para>
 32
 33        <para>
 34            الـ method المسمى ()assign يسمح لك بإنشاء متغيرات من مصفوفة أو كائن (بشكل مفكك)  ,
 35            المثال التالى لديه نفس التأثير الذى تقوم به عملية إنشاء المتغيرات واحد-واحد .
 36        </para>
 37
 38        <programlisting role="php"><![CDATA[<?php
 39$view = new Zend_View();
 40
 41// assign an array of key-value pairs, where the
 42// key is the variable name, and the value is
 43// the assigned value.
 44$array = array(
 45    'a' => "Hay",
 46    'b' => "Bee",
 47    'c' => "Sea",
 48);
 49$view->assign($array);
 50
 51// do the same with an object's public properties;
 52// note how we cast it to an array when assigning.
 53$obj = new StdClass;
 54$obj->a = "Hay";
 55$obj->b = "Bee";
 56$obj->c = "Sea";
 57$view->assign((array) $obj);
 58?>]]>
 59        </programlisting>
 60
 61        <para>
 62        أيضاً, يمكنك ان تستخدم الـ method المسمى assign لإنشاء متغيرت بطريقة واحد-واحد ,
 63        و ذلك عن طريق تمرير اسم المتغير الذى تريد إنشائه كـ string , ثم فى البراميتر الثانى
 64        مرر قيمة المتغير .
 65        </para>
 66
 67        <programlisting role="php"><![CDATA[<?php
 68$view = new Zend_View();
 69$view->assign('a', "Hay");
 70$view->assign('b', "Bee");
 71$view->assign('c', "Sea");
 72?>]]>
 73        </programlisting>
 74
 75    </sect2>
 76
 77    <sect2 id="zend.view.controllers.render">
 78
 79        <title>معالجة(تصيير) جزء الـ View</title>
 80
 81        <para>
 82            بمجرد إنتهائك من عملية إنساب المتغيرات التى تحتاجها فى الـ view , يجب أن يقوم الـ controller
 83            بأمر Zend_View أن يقوم بمعالجة view محدد , يمكن القيام بهذا عن طريق إستدعاء الـ method
 84            المسمى ()render , لاحظ أن هذا الـ method سيقوم بإرجاع الـ view بعد معالجته و لن يقوم بطباعته,
 85            لذلك أنت تحتاج لطباعته بنفسك فى الوقت الذى يناسبك.
 86        </para>
 87
 88        <programlisting role="php"><![CDATA[<?php
 89$view = new Zend_View();
 90$view->a = "Hay";
 91$view->b = "Bee";
 92$view->c = "Sea";
 93echo $view->render('someView.php');
 94?>]]>
 95        </programlisting>
 96
 97    </sect2>
 98
 99    <sect2 id="zend.view.controllers.script-paths">
100
101        <title>مسارات أجزاء الـ View</title>
102
103        <para>
104            الأعدادات الأساسية لـ Zend_View تعتبر أن الملفات التى تحتوى أجزاء الـ view خاصتك
105            تتواجد فى مسارات لها علاقة "relative" مع مكان تواجد الكود الذى يستدعيها,
106            على سبيل المثال : إن كان الـ controller خاصتك موجود فى "path/to/app/controllers/"
107            و هو يقوم بإستدعاء ('view->render('someView.php$ , سيقوم Zend_View
108            بالبحث فى المسار "path/to/app/controllers/someView.php/".
109        </para>
110
111        <para>
112            من الطبيعى أن تكون ملفات الـ view خاصتك محفوظة فى مسار أخر ,
113            لكى تخبر Zend_View أين يجب عليه أن يبحث عن ملفات الـ view ,
114            يمكنك إستخدام الـ method المسمى ()setScriptPath .
115        </para>
116
117        <programlisting role="php"><![CDATA[<?php
118$view = new Zend_View();
119$view->setScriptPath('/path/to/app/views');
120?>]]>
121        </programlisting>
122
123        <para>
124            الأن عندما ستقوم بإستدعاء ('view->render('someView.php$ ,
125            سيتم البحث فى المسار "path/to/app/views/someView.php/".
126        </para>
127
128        <para>
129            فى الحقيقة, يمكنك عمل مرصوصة من المسارات بإستخدام الـ method المسمى ()addScriptPath ,
130            كلما قمت بإضافة مسار جديد إلى المرصوصة , سيقوم Zend_View بالبحث فى المسارات التى تم إضافتها
131            إلى المرصوصة من أخر واحد تم إضافته إلى المرصوصة صعوداً إلى أول من تم إضافته
132             لجلب جزء الـ view المراد معالجته, هذا يسمح لك بأن تقوم بالتغطية على الـ views
133            الأساسية و إستخدام views أخرى , و هذا سيسمح لك بأن تقوم بإنشاء themes أو skins خاصة لبعض
134            الـ views , مع أمكانية ترك views أخرى بدون.
135        </para>
136
137        <programlisting role="php"><![CDATA[<?php
138$view = new Zend_View();
139$view->addScriptPath('/path/to/app/views');
140$view->addScriptPath('/path/to/custom/');
141
142// now when you call $view->render('booklist.php'), Zend_View will
143// look first for "/path/to/custom/booklist.php", then for
144// "/path/to/app/views/booklist.php", and finally in the current
145// directory for "booklist.php".
146?>]]>
147        </programlisting>
148
149    </sect2>
150
151</sect1>
152<!--
153vim:se ts=4 sw=4 et:
154-->