اضافه کردن view به کامپوننت: تفاوت بین نسخهها
(صفحهای جدید حاوی «=تعاریف اولیه= در این مقاله آموزشی ایجاد کامپوننت در [http://www.joomlafarsi.com جوملا]...» ایجاد کرد) |
|||
| سطر ۱: | سطر ۱: | ||
=تعاریف اولیه= | =تعاریف اولیه= | ||
| − | در این مقاله آموزشی ایجاد [[کامپوننت]] در [http://www.joomlafarsi.com جوملا] شما خواهید آموخت که چگونه viewها را به بخش front-end اضافه کنید. کد تمام [[کامپوننت]] | + | |
| − | + | در این مقاله آموزشی ایجاد [[کامپوننت]] در [http://www.joomlafarsi.com جوملا] شما خواهید آموخت که چگونه viewها را به بخش front-end اضافه کنید. کد تمام [[کامپوننت]]ها به سه قسمت کلی تقسیم میشود: | |
| − | Model : | + | |
| − | + | Model : مدلها دادهها را مدیریت میکنند و با [[پایگاه داده]]ها سرو کار دارند. | |
| − | Controller : آنها وظیفه اجرا کردن | + | |
| − | + | Controller : آنها وظیفه اجرا کردن taskهارا به عهده دارند. متدهای set و get وحالتهای مختلف model و مشخص کردن خروجی قابل نمایش برای viewها را به عهده دارند. | |
| + | |||
View : viewها دقیقا وظیفه فراهم کردن خروجی قابل نمایش مطابق با نوع و Layout ای که controller برای آن فراهم کرده است را برعهده دارند. | View : viewها دقیقا وظیفه فراهم کردن خروجی قابل نمایش مطابق با نوع و Layout ای که controller برای آن فراهم کرده است را برعهده دارند. | ||
| + | |||
=ایجاد Controller= | =ایجاد Controller= | ||
| − | در [[جوملا]] یک کلاس برای مدیریت کنترلرها به نام '''JController''' وجود دارد. ما از این کلاس در کنترلر تمام [[کامپوننت]] | + | |
| + | در [[جوملا]] یک کلاس برای مدیریت کنترلرها به نام '''JController''' وجود دارد. ما از این کلاس در کنترلر تمام [[کامپوننت]]های استانداردی که برای [[جوملا]] مینویسیم باید استفاده کنیم. جهت ایجاد کنترلر باید در فایل ''site\hello.php'' کدهای زیر را اضافه کنیم. | ||
| + | |||
| + | |||
<source lang="php" > | <source lang="php" > | ||
<?php | <?php | ||
| سطر ۱۷: | سطر ۲۲: | ||
// گرفتن یک اینستنس یا نمونه از کنترلر | // گرفتن یک اینستنس یا نمونه از کنترلر | ||
$controller = JController::getInstance('Hello'); | $controller = JController::getInstance('Hello'); | ||
| − | // اجرا کردن درخواست | + | // اجرا کردن درخواست تسکها |
$controller->execute(JRequest::getCmd('task')); | $controller->execute(JRequest::getCmd('task')); | ||
// اگر کنترلر ست شد باید ریدایرکت شود | // اگر کنترلر ست شد باید ریدایرکت شود | ||
| سطر ۲۳: | سطر ۲۸: | ||
?> | ?> | ||
</source> | </source> | ||
| − | ''' ()getInstance''' یک متد استاتیک از کلاس '''JController''' است که یک کنترلر ایجاد | + | |
| + | |||
| + | ''' ()getInstance''' یک متد استاتیک از کلاس '''JController''' است که یک کنترلر ایجاد میکند. در واقع آن متد شی کنترلر را از کلاس '''HelloController''' معرفی میکنید ( Instantiate ) میکند. بنابراین [[جوملا]] به دنبال تعریفی از آن کلاس در فایل '''controller.php''' خواهد گشت. پس فایل controller.php را باید ایجاد کنیم و در داخل آن '''HelloController''' را معرفی کنیم. بنابراین فایل مذکور را در ''site\controller.php'' ایجاد و کدهای زیر را در آن قرار میدهیم. | ||
| + | |||
| + | |||
<source lang="php" > | <source lang="php" > | ||
<?php | <?php | ||
| سطر ۳۵: | سطر ۴۴: | ||
?> | ?> | ||
</source> | </source> | ||
| − | زمانیکه هیچ task ای تعریف نشده باشد [[جوملا]] به طور خودکار default task را اجرا خواهد کرد. (در مورد | + | |
| + | |||
| + | زمانیکه هیچ task ای تعریف نشده باشد [[جوملا]] به طور خودکار default task را اجرا خواهد کرد. (در مورد taskها که یکی از ارکان مهم ایجاد [[کامپوننت]]ها هستند در آینده بیشتر صحبت خواهیم کرد.) در این مثال ما میخواهیم که Hello را از view نمایش دهیم. | ||
| + | |||
=ایجاد View= | =ایجاد View= | ||
| + | |||
هنگامیکه JController بخواهد یک view را نمایش دهد ابتدا به دنبال فولدر | هنگامیکه JController بخواهد یک view را نمایش دهد ابتدا به دنبال فولدر | ||
| + | |||
<div dir=ltr> | <div dir=ltr> | ||
components\com_[component_name]\views\[name_of_view]\ | components\com_[component_name]\views\[name_of_view]\ | ||
</div> | </div> | ||
| + | |||
خواهد گشت. نام فولدر default view همان نام [[کامپوننت]] است بنابراین ما بادر این مثال باید | خواهد گشت. نام فولدر default view همان نام [[کامپوننت]] است بنابراین ما بادر این مثال باید | ||
| + | |||
<div dir=ltr> | <div dir=ltr> | ||
components\com_hello\views\hello\ | components\com_hello\views\hello\ | ||
</div> | </div> | ||
| + | |||
را ایجاد کنیم. نام فایل موجود در view باید | را ایجاد کنیم. نام فایل موجود در view باید | ||
| + | |||
<div dir=ltr> | <div dir=ltr> | ||
view.[view_mode].php | view.[view_mode].php | ||
</div> | </div> | ||
| + | |||
باید باشد. در مثال ما view mode حالت [[html]] دارد پس نام فایل view ما '''view.html.php''' خواهد بود. همینک باید کدهای زیر را در فایل view کپی کنید: | باید باشد. در مثال ما view mode حالت [[html]] دارد پس نام فایل view ما '''view.html.php''' خواهد بود. همینک باید کدهای زیر را در فایل view کپی کنید: | ||
| + | |||
<div dir=ltr> | <div dir=ltr> | ||
site\views\hello\view.html.php | site\views\hello\view.html.php | ||
</div> | </div> | ||
| + | |||
کد | کد | ||
| + | |||
| + | |||
<source lang="php" > | <source lang="php" > | ||
<?php | <?php | ||
| − | //عدم دسترسی مستقیم به | + | //عدم دسترسی مستقیم به فایلهای جوملا |
defined('_JEXEC') or die('Restricted Access'); | defined('_JEXEC') or die('Restricted Access'); | ||
| − | //ایمپورت کردن | + | //ایمپورت کردن کتابخانههای کنترلر جوملا |
jimport('joomla.application.component.view'); | jimport('joomla.application.component.view'); | ||
class HelloViewHello extends JView | class HelloViewHello extends JView | ||
| سطر ۷۳: | سطر ۹۶: | ||
?> | ?> | ||
</source> | </source> | ||
| + | |||
| + | |||
'''نکته''' : نام کلاس view باید از قواعد '''[Name_of_view][View][Name_of_view]''' پیروی کنید در مثال ما '''HelloViewHello''' است. | '''نکته''' : نام کلاس view باید از قواعد '''[Name_of_view][View][Name_of_view]''' پیروی کنید در مثال ما '''HelloViewHello''' است. | ||
| − | + | ||
| − | متد نمایش کلاس '''JView''' از کلاس نمایش | + | متد نمایش کلاس '''JView''' از کلاس نمایش taskهای '''JController''' صدا زده خواهد شد. در اینجا دادههای فایل ''tmpl\default.php'' |
نمایش داده خواهد. حال باید کدهای زیر را در فایل ''site\views\hello\tmpl\default.php'' بنویسید. | نمایش داده خواهد. حال باید کدهای زیر را در فایل ''site\views\hello\tmpl\default.php'' بنویسید. | ||
| + | |||
| + | |||
<source lang="php" > | <source lang="php" > | ||
<?php | <?php | ||
| − | //عدم دسترسی مستقیم به | + | //عدم دسترسی مستقیم به فایلهای جوملا |
defined('_JEXEC') or die('Restricted Access'); | defined('_JEXEC') or die('Restricted Access'); | ||
?> | ?> | ||
| سطر ۸۸: | سطر ۱۱۵: | ||
</h1> | </h1> | ||
</source> | </source> | ||
| + | |||
| + | |||
این فایل ( default.php ) توسط کلاس JView اینکلود شده است. بنابراین متغیر $this به کلاس HellowView ارجاع ( refer ) خواهد کرد. | این فایل ( default.php ) توسط کلاس JView اینکلود شده است. بنابراین متغیر $this به کلاس HellowView ارجاع ( refer ) خواهد کرد. | ||
| + | |||
=ایجاد یک بسته نصبی از افزونه= | =ایجاد یک بسته نصبی از افزونه= | ||
| + | |||
برای ایجاد بسته نصبی از افزونههای [[جوملا]] از فرمت '''ZIP''' استفاده میکنیم. جهت ایجاد بسته نصبی از [[کامپوننت]] مان باید فایلها زیر را در یک فولدر خارج از [[جوملا]] آماده کنیم. | برای ایجاد بسته نصبی از افزونههای [[جوملا]] از فرمت '''ZIP''' استفاده میکنیم. جهت ایجاد بسته نصبی از [[کامپوننت]] مان باید فایلها زیر را در یک فولدر خارج از [[جوملا]] آماده کنیم. | ||
| + | |||
<div dir=ltr> | <div dir=ltr> | ||
helloworld.xml (فایل نصب کننده افزونه) | helloworld.xml (فایل نصب کننده افزونه) | ||
| − | + | ||
site\hello.php | site\hello.php | ||
| − | + | ||
site\index.html | site\index.html | ||
| − | + | ||
site\controller.php | site\controller.php | ||
| − | + | ||
site\views\hello\view.html.php | site\views\hello\view.html.php | ||
| − | + | ||
site\views\hello\tmpl\default.php | site\views\hello\tmpl\default.php | ||
| − | + | ||
admin\hello.php | admin\hello.php | ||
| − | + | ||
admin\index.html | admin\index.html | ||
</div> | </div> | ||
| + | |||
فایل helloworld.xml که باید شامل کدهای زیر باشد. | فایل helloworld.xml که باید شامل کدهای زیر باشد. | ||
| + | |||
| + | |||
<source lang="xml" > | <source lang="xml" > | ||
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
| سطر ۱۳۹: | سطر ۱۷۴: | ||
</install> | </install> | ||
</source> | </source> | ||
| + | |||
| + | |||
در داخل پوشه site در [[کامپوننت]] باید یک فایل به نام hello.php داشته باشیم که فایل مذکور باید شامل کدهای زیر باشد: | در داخل پوشه site در [[کامپوننت]] باید یک فایل به نام hello.php داشته باشیم که فایل مذکور باید شامل کدهای زیر باشد: | ||
| + | |||
| + | |||
<source lang="php" > | <source lang="php" > | ||
<?php | <?php | ||
| سطر ۱۵۴: | سطر ۱۹۳: | ||
?> | ?> | ||
</source> | </source> | ||
| − | + | ||
| + | |||
| + | در داخل پوشه admin در کامپوننت باید یک فایل به نام hello.php داشته باشیم که فایل مذکور باید شامل کدهای زیر باشد: | ||
| + | |||
<div dir=ltr> | <div dir=ltr> | ||
Hello world Administrator | Hello world Administrator | ||
</div> | </div> | ||
| − | + | ||
| + | سپس به یک فایل index.html با کدهای زیر نیاز داریم که در تمام فولدرهای موجود در [[کامپوننت]] باید قرار گیرد. | ||
| + | |||
| + | |||
<source lang="php" > | <source lang="php" > | ||
<html><body bgcolor="#FFFFFF"></body></html> | <html><body bgcolor="#FFFFFF"></body></html> | ||
| سطر ۱۹۴: | سطر ۲۳۹: | ||
?> | ?> | ||
</source> | </source> | ||
| + | |||
| + | |||
در داخل پوشه ''site\views\hello\tmpl'' در [[کامپوننت]] باید یک فایل به نام '''default.php''' داشته باشیم که فایل مذکور باید شامل کدهای زیر باشد: | در داخل پوشه ''site\views\hello\tmpl'' در [[کامپوننت]] باید یک فایل به نام '''default.php''' داشته باشیم که فایل مذکور باید شامل کدهای زیر باشد: | ||
| + | |||
| + | |||
<source lang="php" > | <source lang="php" > | ||
<?php | <?php | ||
| سطر ۲۰۶: | سطر ۲۵۵: | ||
</h1> | </h1> | ||
</source> | </source> | ||
| + | |||
| + | |||
ایجاد فایل helloworld.zip با فایلها و فولدرهایی که در قسمتهای قبل ایجاد کردیم. | ایجاد فایل helloworld.zip با فایلها و فولدرهایی که در قسمتهای قبل ایجاد کردیم. | ||
| − | + | ||
نصب فایل zip شده توسط قسمت مدیریت افزونههای [[جوملا]] 2.5 | نصب فایل zip شده توسط قسمت مدیریت افزونههای [[جوملا]] 2.5 | ||
| − | + | ||
| − | نکته : توجه داشته باشید اگر در مراحل قبل [[کامپوننت]] را در میان سورس [[جوملا]] ساخته و اجرا کردهاید قبل نصب فایل zip [[کامپوننت]] باید فایلهای مربوط به افزونه این آموزش را از [[جوملا]] پاک کنید و بعد اقدام به نصب فایل zip پکیج شده بکنید. | + | '''نکته''' : توجه داشته باشید اگر در مراحل قبل [[کامپوننت]] را در میان سورس [[جوملا]] ساخته و اجرا کردهاید قبل نصب فایل zip [[کامپوننت]] باید فایلهای مربوط به افزونه این آموزش را از [[جوملا]] پاک کنید و بعد اقدام به نصب فایل zip پکیج شده بکنید. |
| − | + | ||
| − | تاکنون باید یک زیر منو به نام comhelloworld در منوی [[کامپوننت]] | + | تاکنون باید یک زیر منو به نام comhelloworld در منوی [[کامپوننت]]ها ایجاد شده باشد. |
| − | + | ||
شما میتوانید کارکرد این افزونه را با وارد کردن <nowiki>http://localhost/sitename/index.php?option=com_hello</nowiki> در مرورگر چک کنید. اگر عبارت بالا را در آدرس بار مرورگر وارد کنیم باید نتیجهای همانند شکل زیر دریافت کنیم. | شما میتوانید کارکرد این افزونه را با وارد کردن <nowiki>http://localhost/sitename/index.php?option=com_hello</nowiki> در مرورگر چک کنید. اگر عبارت بالا را در آدرس بار مرورگر وارد کنیم باید نتیجهای همانند شکل زیر دریافت کنیم. | ||
| + | |||
| + | |||
[[پرونده: View component user view.png|center|frame ]] | [[پرونده: View component user view.png|center|frame ]] | ||
| − | همچنین شما میتوانید خروجی کارکرد این [[کامپوننت]] را در قسمت مدیریت با وارد کردن <nowiki>http://localhost/sitename/administrator/index.php?option=com_hello</nowiki> در مرورگر یا با کلیک برروی منوی comehelloworld در منوی [[کامپوننت]] | + | |
| + | |||
| + | همچنین شما میتوانید خروجی کارکرد این [[کامپوننت]] را در قسمت مدیریت با وارد کردن <nowiki>http://localhost/sitename/administrator/index.php?option=com_hello</nowiki> در مرورگر یا با کلیک برروی منوی comehelloworld در منوی [[کامپوننت]]ها چک کنید. در صورت انجام این کار شما باید نتیجهای همانند تصویر زیر مشاهده کنید. | ||
| + | |||
| + | |||
[[پرونده: Lastresult zip admin.jpg|center|frame ]] | [[پرونده: Lastresult zip admin.jpg|center|frame ]] | ||
| + | |||
جهت دانلود فایلهای مربوط به این آموزش میتوانید به آدرس http://extensions.joomlafarsi.com/download/viewcategory/52.html مراجعه نمایید. | جهت دانلود فایلهای مربوط به این آموزش میتوانید به آدرس http://extensions.joomlafarsi.com/download/viewcategory/52.html مراجعه نمایید. | ||
| + | |||
---- | ---- | ||
| سطر ۲۳۱: | سطر ۲۹۰: | ||
[[رده:کامپوننتهای جوملا 2.5]] [[رده:مدیریت جوملا 2.5]] [[رده: سوالات متداول جوملا 2.5]] [[رده: کدنویسی و گسترش جوملا 2.5]][[رده: مقالات جوملا 2.5]] | [[رده:کامپوننتهای جوملا 2.5]] [[رده:مدیریت جوملا 2.5]] [[رده: سوالات متداول جوملا 2.5]] [[رده: کدنویسی و گسترش جوملا 2.5]][[رده: مقالات جوملا 2.5]] | ||
| − | |||
| − | |||
| − | |||
| − | |||
نسخهٔ ۲۲ ژانویهٔ ۲۰۱۳، ساعت ۰۶:۴۶
محتویات
تعاریف اولیه
در این مقاله آموزشی ایجاد کامپوننت در جوملا شما خواهید آموخت که چگونه viewها را به بخش front-end اضافه کنید. کد تمام کامپوننتها به سه قسمت کلی تقسیم میشود:
Model : مدلها دادهها را مدیریت میکنند و با پایگاه دادهها سرو کار دارند.
Controller : آنها وظیفه اجرا کردن taskهارا به عهده دارند. متدهای set و get وحالتهای مختلف model و مشخص کردن خروجی قابل نمایش برای viewها را به عهده دارند.
View : viewها دقیقا وظیفه فراهم کردن خروجی قابل نمایش مطابق با نوع و Layout ای که controller برای آن فراهم کرده است را برعهده دارند.
ایجاد Controller
در جوملا یک کلاس برای مدیریت کنترلرها به نام JController وجود دارد. ما از این کلاس در کنترلر تمام کامپوننتهای استانداردی که برای جوملا مینویسیم باید استفاده کنیم. جهت ایجاد کنترلر باید در فایل site\hello.php کدهای زیر را اضافه کنیم.
<source lang="php" >
<?php
// عدم دسترسی مستقیم به این فایل
defined('_JEXEC') or die('Restricted Access not allowed');
// ایمپورت کردن کنترلر از کتابخانه جوملا
jimport('joomla.application.component.controller');
// گرفتن یک اینستنس یا نمونه از کنترلر
$controller = JController::getInstance('Hello');
// اجرا کردن درخواست تسکها
$controller->execute(JRequest::getCmd('task'));
// اگر کنترلر ست شد باید ریدایرکت شود
$controller->redirect();
?>
</source>
()getInstance یک متد استاتیک از کلاس JController است که یک کنترلر ایجاد میکند. در واقع آن متد شی کنترلر را از کلاس HelloController معرفی میکنید ( Instantiate ) میکند. بنابراین جوملا به دنبال تعریفی از آن کلاس در فایل controller.php خواهد گشت. پس فایل controller.php را باید ایجاد کنیم و در داخل آن HelloController را معرفی کنیم. بنابراین فایل مذکور را در site\controller.php ایجاد و کدهای زیر را در آن قرار میدهیم.
<source lang="php" >
<?php
// عدم دسترسی مستقیم به این فایل defined('_JEXEC') or die('Restricted Access not allowed'); // ایمپورت کردن کنترلر از کتابخانه جوملا jimport('joomla.application.component.controller'); class HelloController extends JController { } ?> </source>
زمانیکه هیچ task ای تعریف نشده باشد جوملا به طور خودکار default task را اجرا خواهد کرد. (در مورد taskها که یکی از ارکان مهم ایجاد کامپوننتها هستند در آینده بیشتر صحبت خواهیم کرد.) در این مثال ما میخواهیم که Hello را از view نمایش دهیم.
ایجاد View
هنگامیکه JController بخواهد یک view را نمایش دهد ابتدا به دنبال فولدر
components\com_[component_name]\views\[name_of_view]\
خواهد گشت. نام فولدر default view همان نام کامپوننت است بنابراین ما بادر این مثال باید
components\com_hello\views\hello\
را ایجاد کنیم. نام فایل موجود در view باید
view.[view_mode].php
باید باشد. در مثال ما view mode حالت html دارد پس نام فایل view ما view.html.php خواهد بود. همینک باید کدهای زیر را در فایل view کپی کنید:
site\views\hello\view.html.php
کد
<source lang="php" >
<?php
//عدم دسترسی مستقیم به فایلهای جوملا
defined('_JEXEC') or die('Restricted Access');
//ایمپورت کردن کتابخانههای کنترلر جوملا
jimport('joomla.application.component.view');
class HelloViewHello extends JView
{
//Overrite JView display method
function display($tpl = null)
{
//نسبت دادن دیتا به وی یو
$this->msg = 'Hello World in View';
//نمایش وی یو
parent::display($tpl);
}
}
?>
</source>
نکته : نام کلاس view باید از قواعد [Name_of_view][View][Name_of_view] پیروی کنید در مثال ما HelloViewHello است.
متد نمایش کلاس JView از کلاس نمایش taskهای JController صدا زده خواهد شد. در اینجا دادههای فایل tmpl\default.php نمایش داده خواهد. حال باید کدهای زیر را در فایل site\views\hello\tmpl\default.php بنویسید.
<source lang="php" >
<?php
//عدم دسترسی مستقیم به فایلهای جوملا
defined('_JEXEC') or die('Restricted Access');
?>
<?php echo $this->msg; ?>
</source>
این فایل ( default.php ) توسط کلاس JView اینکلود شده است. بنابراین متغیر $this به کلاس HellowView ارجاع ( refer ) خواهد کرد.
ایجاد یک بسته نصبی از افزونه
برای ایجاد بسته نصبی از افزونههای جوملا از فرمت ZIP استفاده میکنیم. جهت ایجاد بسته نصبی از کامپوننت مان باید فایلها زیر را در یک فولدر خارج از جوملا آماده کنیم.
helloworld.xml (فایل نصب کننده افزونه)
site\hello.php
site\index.html
site\controller.php
site\views\hello\view.html.php
site\views\hello\tmpl\default.php
admin\hello.php
admin\index.html
فایل helloworld.xml که باید شامل کدهای زیر باشد.
<source lang="xml" >
<?xml version="1.0" encoding="utf-8"?>
<install type="component" version="2.5">
<name>hello</name>
<creationDate>2013-01-09</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.02</version>
<description>Hello World Test Component With view...</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="php" >
<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>
ایجاد فایل helloworld.zip با فایلها و فولدرهایی که در قسمتهای قبل ایجاد کردیم.
نصب فایل zip شده توسط قسمت مدیریت افزونههای جوملا 2.5
نکته : توجه داشته باشید اگر در مراحل قبل کامپوننت را در میان سورس جوملا ساخته و اجرا کردهاید قبل نصب فایل zip کامپوننت باید فایلهای مربوط به افزونه این آموزش را از جوملا پاک کنید و بعد اقدام به نصب فایل zip پکیج شده بکنید.
تاکنون باید یک زیر منو به نام comhelloworld در منوی کامپوننتها ایجاد شده باشد.
شما میتوانید کارکرد این افزونه را با وارد کردن http://localhost/sitename/index.php?option=com_hello در مرورگر چک کنید. اگر عبارت بالا را در آدرس بار مرورگر وارد کنیم باید نتیجهای همانند شکل زیر دریافت کنیم.
همچنین شما میتوانید خروجی کارکرد این کامپوننت را در قسمت مدیریت با وارد کردن http://localhost/sitename/administrator/index.php?option=com_hello در مرورگر یا با کلیک برروی منوی comehelloworld در منوی کامپوننتها چک کنید. در صورت انجام این کار شما باید نتیجهای همانند تصویر زیر مشاهده کنید.
جهت دانلود فایلهای مربوط به این آموزش میتوانید به آدرس http://extensions.joomlafarsi.com/download/viewcategory/52.html مراجعه نمایید.
جمع آوری شده توسط :شهاب مطاع پور
|
|

