ایجاد منو از نوع کامپوننت: تفاوت بین نسخه‌ها   

از دانشنامه جوملا فارسی - مامبو فارسی
پرش به: ناوبری، جستجو
(صفحه‌ای جدید حاوی «در این قسمت از آموزش ایجاد کامپوننت های [http://www.joomlafarsi.com جوملا] خواهیم آموخت...» ایجاد کرد)
(بدون تفاوت)

نسخهٔ ‏۸ فوریهٔ ۲۰۱۳، ساعت ۰۹:۱۹

در این قسمت از آموزش ایجاد کامپوننت های جوملا خواهیم آموخت که چگونه یک نوع آیتم منو در مدیریت منوها از نوع کامپوننت مان ایجاد کنیم. بدین معنی که کاربران بتوانند آیتم های منو از نوع کامپوننتی که ما ایجاد کردیم داشته باشند. در فریم ورک جوملا 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 را در آدرس بار مرورگر وارد کنید تا نتیجه ای همانند شکل زیر ببینید.

Lastresult zip admin.jpg

جهت تست front-end سایت میتوانیم آدرس http://localhost/sitename/index.php?option=com_hello را در آدرس بار مرورگرمان وارد کنیم. نتیجه آن باید همانند شکل زیر باشد.

View component user view.png

در مقالات قبل تا این مراحل پیش رفته بودیم اگر تا کنون موفق نشدید 2 نتیجه بالا را مشاهده کنید باید مجددا مقالات قبل را مطالعه کنید اما اگر تا کنون همه چیز بدرستی کار کرده میتوانید به از مدیریت منوهامنوی اصلی (یا هر منوی دیگری) ← ایجاد آیتم منوی جدید کلیک کنید. سپس از صفحه انتخاب انواع منوها از قسمت hello میتوانید نتیجه کارتان را مشاهده کنید.

Menuitem-for-component.jpg

جهت دانلود فایل‌های مربوط به این آموزش می‌توانید به آدرس http://extensions.joomlafarsi.com/download/viewcategory/52.html مراجعه نمایید.


جمع آوری شده توسط :شهاب مطاع پور

Indent support.png
هر گونه سوال و یا مشکلی در این رابطه دارید، می‌توانید در انجمن تخصصی تیم جوملا فارسی جستجو کرده و در صورت عدم دریافت نتیجه مورد نظر، سوال جدیدی را مطرح کنید.
8.pngاستفاده از مطالب دانشنامه جوملا فارسی - مامبو فارسی با ذکر منبع ( دانشنامه جوملا فارسی ) و لینک مستقیم به http://docs.joomlafarsi.com بلامانع است.