ایجاد منو از نوع کامپوننت
در این قسمت از آموزش ایجاد کامپوننت های جوملا خواهیم آموخت که چگونه یک نوع آیتم منو در مدیریت منوها از نوع کامپوننت مان ایجاد کنیم. بدین معنی که کاربران بتوانند آیتم های منو از نوع کامپوننتی که ما ایجاد کردیم داشته باشند. در فریم ورک جوملا 2.5 نحوه دسترسی به کامپوننت ها توسط آیتم های منو انجام میشود. اگر این سری آموزش هارا دنبال کرده باشید حتما توجه کرده اید که تا کنون از مدیریت منوها قادر به ایجاد منو از نوع کامپوننت helloworld نبودیم. اینک تصمیم داریم که این امکان را به کاربران دهیم تا یک آیتم منو از نوع کامپوننت helloworld بسازند.
در آدرس site\views\hello\tmpl باید یک فایل به نام default.xml در پوشه tmpl ایجاد کنیم که شامل کدهای زیر باشد.
<source lang="xml" >
<?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="New Hello Menu Item"> <message>New Hello Menu Item Desc</message> </layout> </metadata>
</source> فایل helloworld.xml باید شامل کدهای زیر باشد: <source lang="xml" > <?xml version="1.0" encoding="utf-8"?> <install type="component" version="2.5"> <name>hello</name> <creationDate>2013-01-19</creationDate> <author>Shahab Matapour</author> <authorEmail>[email protected]</authorEmail> <authorUrl>http://www.joomlafarsi.com</authorUrl> <copyright>Copyright Info</copyright> <license>License Info</license> <version>1.03</version> <description>اضافه کردن آیتم منو در مدیریت منوها</description>
<files folder="site"> <filename>index.html</filename> <filename>hello.php</filename> <filename>controller.php</filename> <folder>views</folder> </files> <administration> <files folder="admin"> <filename>index.html</filename> <filename>hello.php</filename> </files> </administration> </install> </source> فایل site/hello.php باید شامل کدهای زیر باشد: <source lang="php" > <?php //No direct access to the file defined('_JEXEC') or die('Restricted Access not allowed'); //import joomla controller library jimport('joomla.application.component.controller'); //get an instance of the controller prefixed by HelloWorld $controller = JController::getInstance('Hello'); //perform the request task $controller->execute(JRequest::getCmd('task')); //Redirect if set by controller $controller->redirect(); ?> </source> فایل admin/hello.php باید شامل کدهای زیر باشد:
Hello World Administrator
و فایل index.html در تمام فولدرهای موجود در کامپوننت به صورت مشترک باید شامل کد زیر باشد: <source lang="xml" > <html><body bgcolor="#FFFFFF"></body></html> </source> فایل site/controller.php باید شامل کدهای زیر باشد: <source lang="php" > <?php //No direct access to this file should be called by Joomla defined('_JEXEC') or die('Restricted Access'); //import joomla controller library jimport('joomla.application.component.controller'); class HelloController extends JController { } ?> </source> فایل site\views\hello\view.html.php باید شامل کدهای زیر باشد: <source lang="php" > <?php //No direct access to this file should be called by Joomla defined('_JEXEC') or die('Restricted Access'); //import joomla controller library jimport('joomla.application.component.view'); class HelloViewHello extends JView { //Overrite JView display method function display($tpl = null) { //Assign data to the view $this->msg = 'Hello World in View'; //Display the View parent::display($tpl); } } ?> </source> فایل site\views\hello\tmpl\default.php باید شامل کدهای زیر باشد: <source lang="php" > <?php //No direct access to this file should be called by Joomla defined('_JEXEC') or die('Restricted Access'); ?>
<?php echo $this->msg; ?>
</source>
سرانجام فایل site\views\hello\tmpl\default.xml باید شامل کدهای زیر باشد:
<source lang="xml" >
<?xml version="1.0" encoding="utf-8"?>
<metadata>
<layout title="New Hello Menu Item">
<message>New Hello Menu Item Desc</message>
</layout>
</metadata>
</source>
در این مرحله باید فایل helloworld.zip که شامل تمام فایلها و فولدرها اشاره شده در این مقاله است را آماده کنید. توجه داشته باشید که مشروح کدهایی که در این بخش از آنها استفاده کردیم در آموزشهای قبلی توضیح داده شده اند و دز این سری تنها این فایل xml اضافه شده است.که به بررسی آن میپردازیم عبارتی که داخل تگ message مشاهده میکنید عبارتی است که در مدیریت منوها هنگامی که تصمیم دارید آیتم منویی از نوع کامپوننت آموزشی مان بسازید نمایش داده میشود.
با استفاده از قسمت مدیریت افزونه های جوملا باید فایل مذکور را در جوملا نصب کنیم. بعد از نصب این افزونه آموزشی در آموزشهای قبلی دیدیم که چطور یک زیرمنو به نام comehelloworld در منوی کامپوننت ها قرار گرفت. که شما میتوانید جهت تست برروی آن کلیک کنید یا آدرس http://localhost/sitename/administrator/index.php?option=com_hello را در آدرس بار مرورگر وارد کنید تا نتیجه ای همانند شکل زیر ببینید.
جهت تست front-end سایت میتوانیم آدرس http://localhost/sitename/index.php?option=com_hello را در آدرس بار مرورگرمان وارد کنیم. نتیجه آن باید همانند شکل زیر باشد.
در مقالات قبل تا این مراحل پیش رفته بودیم اگر تا کنون موفق نشدید 2 نتیجه بالا را مشاهده کنید باید مجددا مقالات قبل را مطالعه کنید اما اگر تا کنون همه چیز بدرستی کار کرده میتوانید به از مدیریت منوها ← منوی اصلی (یا هر منوی دیگری) ← ایجاد آیتم منوی جدید کلیک کنید. سپس از صفحه انتخاب انواع منوها از قسمت hello میتوانید نتیجه کارتان را مشاهده کنید.
جهت دانلود فایلهای مربوط به این آموزش میتوانید به آدرس http://extensions.joomlafarsi.com/download/viewcategory/52.html مراجعه نمایید.
جمع آوری شده توسط :شهاب مطاع پور
|
|


