تصویر محمدعلی اکبری

در مطلب قبل ماژول Pasargad را تا مرحله رجیستر کردن کلاس‌های Helper، Model و Block پیش بردیم. در این مطلب سعی می‌کنیم یک صفحه جدید یا به عبارتی URL Callback تعریف کنیم.

گام اول: فایل etc/config.xml را ویرایش کرده و خطوط زیر را به عنوان فرزند تگ config اضافه کنید.

<frontend>
  <routers>
    <pasargad>
      <use>standard</use>
      <args>
        <module>RastaAfzar_Pasargad</module>
        <frontName>pasargad</frontName>
      </args>
    </pasargad>
  </routers>
</frontend>

گام دوم: فایل IndexController.php را در مسیر app/code/community/RastaAfzar/Paargad/controllers ایجاد کنید و خطوط زیر را در آن وارد کنید:

<?php

class RastaAfzar_Pasargad_IndexController extends Mage_Core_Controller_Front_Action {

  public function indexAction() {
    
  }

  public function helloAction() {
    echo 'Action hello in Helloworld IndexController';
  }

}

آدرس‌های زیر را در موردگر خود باز کنید:

  1. http://magento-dev.local/pasargad/index/hello که متن helloAction را اجرا خواهد کرد.
  2. http://magento-dev.local/pasargad که متد indexAction را اجرا خواهد کرد.

توضیحات بیشتر

توضیح اول: آدرس دهی متد‌های داخل کنترلر از فرمت زیر پیروی می‌کند:

<modulename or frontname>/<controllerName>/<actionName>

توجه کنید frontname در مثال ما هم نام ماژول است که در گام اول زیر تگ frontName تعریف شده است.

توضیح دوم: متدهای این کنترلر باعث نمایش صفحه خالی می‌شوند و سیستم قالب مجنتو به این ترتیب اجرا نمیشود. برای شروع اجرای layout system  لازم است متدهای زیر را در action مورد نظر فراخوانی کنید.

$this->loadLayout();
$this->renderLayout();

البته این فراخوانی همیشه لازم نیست، برای مثال در مواردی که URL Callback مورد نظر عملیاتی را انجام می‌دهد و سپس به صفحه دیگری redirect می‌شود.

افزودن نظر جدید