سبد (0)

اضافه کردن پارامتر به منو

اضافه کردن پارامتر به نوع منو

تا این لحظه توانستید، رشته "!Hello world" را از طریق model به view مربوطه ارسال نمایید. حالا تصور کنید که مدیر سایت، قادر باشد یکی از دو گزینه زیر را برای نمایش انتخاب نماید:

  1. !Hello world
  2. !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 اضافه شده است.


فایل نصب کامپوننت

در فایل نصب کامپوننت، قسمت های قرمز رنگ مطابق شکل زیر، اضافه یا تغییر خواهند کرد:

ساختار فولدر بندی کامپوننت hello world قسمت متغییرهای منو

توجه: در انتهای این بیاموز، فایل نصب کامپوننت برای دانلود قرار داده شده است.


فایل 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>

به دو مورد مهم باید توجه داشته باشید:

  1. گروه فیلدهای request، نشان دهنده فیلدهای اضطراری اند. (انتخاب های مورد نیاز)
  2. ویژگی 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 تومان

تمام درآمدها صرف پیشرفت بیاموز خواهد شد.

در مطلب بعدی، نحوه ی دریافت پارامترهای منو از پایگاه داده، آموزش داده خواهد شد.

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه