اضافه کردن پارامتر به منو
اضافه کردن پارامتر به نوع منو
تا این لحظه توانستید، رشته "!Hello world" را از طریق model به view مربوطه ارسال نمایید. حالا تصور کنید که مدیر سایت، قادر باشد یکی از دو گزینه زیر را برای نمایش انتخاب نماید:
- !Hello world
- !Good bye World
قاعدتاً برای تنظیم رشته مورد نظر، باید زمانی که می خواهید یک منو از نوع helloworld ایجاد کنید، انجام شود.
در جوملا 2.5 امکان اضافه کردن پارامتر ها به نوع منو انتخاب شده وجود دارد.
در پایان این بیاموز خواهید توانست
در پایان این بیاموز می توانید از طریق مدیریت منوها در مدیریت جوملا (backend)، یک آیتم منو از نوع کامپوننت Helloworld ایجاد نمایید و در ادامه پارامترهای مورد نظرتان را برای این نوع منو تنظیم نمایید:
تنظیم پارامتر برای نوع منوی helloworld
1- در مدیریت جوملا، منوی (منو ها => منوی اصلی) را اجرا نمایید.
شما می توانید بجای گزینه "منوی اصلی"، گزینه دیگری را انتخاب نمایید.
2- روی دکمه "جدید" کلیک نمایید.
مطابق شکل زیر، بعد از کلیک روی دکمه "انتخاب" فرم زیر ظاهر می شود. همانطور که در شکل مشخص است یک مجموعه "helloworld" با یک گزینه "COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE"، وجود دارد.
3- روی عنوان "COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE" کلیک کنید.
4- مطابق شکل زیر، در سمت چپ پنجره، قسمت "انتخاب های مورد نیاز" اضافه شده است.
از لیست کشویی، گزینه "!Good bye World" را انتخاب نمایید.
4- روی دکمه "ذخیره" کلیک نمایید.
توجه: در فرم بالا، بعد از کلیک روی دکمه "ذخیره"، محتوی فیلد "لینک" برابر "index.php?option=com_helloworld&view=helloworld&id=2" خواهد شد. توجه فرمایید که قسمت "id=2" به URL اضافه شده است.
فایل نصب کامپوننت
در فایل نصب کامپوننت، قسمت های قرمز رنگ مطابق شکل زیر، اضافه یا تغییر خواهند کرد:
توجه: در انتهای این بیاموز، فایل نصب کامپوننت برای دانلود قرار داده شده است.
فایل site/views/helloworld/tmpl/default.xml
با ویرایشگر دلخواهتان فایل site/views/helloworld/tmpl/default.xml را با محتوای زیر، ایجاد نمایید:
site/views/helloworld/tmpl/default.xml
<?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE"> <message>COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_DESC</message> </layout> <fields name="request"> <fieldset name="request"> <field name="id" type="list" label="COM_HELLOWORLD_HELLOWORLD_FIELD_GREETING_LABEL" description="COM_HELLOWORLD_HELLOWORLD_FIELD_GREETING_DESC" default="1" > <option value="1">Hello World!</option> <option value="2">Good bye World!</option> </field> </fieldset> </fields> </metadata>
به دو مورد مهم باید توجه داشته باشید:
- گروه فیلدهای request، نشان دهنده فیلدهای اضطراری اند. (انتخاب های مورد نیاز)
- ویژگی name از طریق URL، به کامپوننت ارسال می شود. بعنوان مثال، آدرس "option=com_helloworld&id=1?..." نشان خواهد داد که شما گزینه 1 را انتخاب کرده اید.
فایل site/models/helloworld.php
برای حرکت بین دو رشته مختلف (!Hello World و !Good bye World)، باید model مربوط به view مورد نظر را اصلاح نمایید:
site/models/helloworld.php
<?php // No direct access to this file defined('_JEXEC') or die('Restricted access'); // import Joomla modelitem library jimport('joomla.application.component.modelitem'); /** * HelloWorld Model */ class HelloWorldModelHelloWorld extends JModelItem { /** * @var string msg */ protected $msg; /** * Get the message * @return string The message to be displayed to the user */ public function getMsg() { if (!isset($this->msg)) { //Uses JInput if magic quotes is turned off. Falls back to use JRequest. if(!get_magic_quotes_gpc()) { $id = JFactory::getApplication()->input->get('id', 1, 'INT' ); } else { $id = JRequest::getInt('id'); } switch ($id) { case 2: $this->msg = 'Good bye World!'; break; default: case 1: $this->msg = 'Hello World!'; break; } } return $this->msg; } }
برای کسب اطلاعات بیشتر در مورد switch در PHP به لینک روبرو مراجعه فرمایید: PHP Switch
فایل helloworld.xml
فقط کافی است نسخه کامپوننت را به 0.0.5 تغییر دهید (<version>0.0.5</version>):
helloworld.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- $Id: helloworld.xml 14 2009-11-02 18:35:20Z chdemko $ -->
<extension type="component" version="1.6.0" method="upgrade">
<name>Hello World!</name>
<!-- The following elements are optional and free of formatting conttraints -->
<creationDate>November 2009</creationDate>
<author>beyamooz</author>
<authorEmail>این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید</authorEmail>
<authorUrl>https://beyamooz.com</authorUrl>
<copyright>Copyright Info</copyright>
<license>License Info</license>
<!-- The version string is recorded in the components table -->
<version>0.0.5</version>
<!-- The description is optional and defaults to the name -->
<description>Description of the Hello World component ...</description>
<update> <!-- Runs on update; New in 1.6 -->
<schemas>
<schemapath type="mysql">sql/updates/mysql</schemapath>
</schemas>
</update>
<!-- Site Main File Copy Section -->
<!-- Note the folder attribute: This attribute describes the folder
to copy FROM in the package to install therefore files copied
in this section are copied from /site/ in the package -->
<files folder="site">
<filename>index.html</filename>
<filename>helloworld.php</filename>
<filename>controller.php</filename>
<folder>views</folder>
</files>
<administration>
<!-- Administration Menu Section -->
<menu>Hello World!</menu>
<!-- Administration Main File Copy Section -->
<!-- Note the folder attribute: This attribute describes the folder
to copy FROM in the package to install therefore files copied
in this section are copied from /admin/ in the package -->
<files folder="admin">
<!-- Admin Main File Copy Section -->
<filename>index.html</filename>
<filename>helloworld.php</filename>
<!-- SQL files section -->
<folder>sql</folder>
</files>
</administration>
</extension>
دریافت فایل آموزشی کامپوننت Hello World (بخش پنجم)
- ایجاد کننده:www.beyamooz.com
- خرید فایل:دانلود فایل کامپوننت Hello World
- حجم فایل: 4 کیلو بایت
- قیمت: 1000 تومان
تمام درآمدها صرف پیشرفت بیاموز خواهد شد.
در مطلب بعدی، نحوه ی دریافت پارامترهای منو از پایگاه داده، آموزش داده خواهد شد.
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 7708