• 0

كيف أُنشئ Module على Magento؟

لي تجربة مع Magento، من حيث تثبيت Module والتغيير على مظهر الموقع وأشياء أخرى أرى أنها بسيطة نوعاً ما، الآن أريد الانتقال إلى المستوى المتقدم، وأود إنشاء Module من الصفر، هل من إمكانية لتعلم ذلك؟ كيف أنشئه -Module- من الصفر؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

لإنشاء module جديد على Magento، ولنفترض أن اسمه هم Hello.

عليك بإنشاء هذه الملفات:

*لاحط أن الأسماء كلها تحتوي على كلمة Hello وهو اسم Module.

mkdir -p app/code/local/MyCompanyName/HelloWorld
mkdir -p app/code/local/MyCompanyName/HelloWorld/Block
mkdir -p app/code/local/MyCompanyName/HelloWorld/controllers
mkdir -p app/code/local/MyCompanyName/HelloWorld/Model
mkdir -p app/code/local/MyCompanyName/HelloWorld/Helper
mkdir -p app/code/local/MyCompanyName/HelloWorld/etc
mkdir -p app/code/local/MyCompanyName/HelloWorld/sql

ثم أضف الإعدادات عبر الملف التالي:

touch app/code/local/MyCompanyName/HelloWorld/etc/config.xml

بداخل ملف xml الخاص بالإعدادات، أضف التالي:

<?xml version="1.0"?>
<config>
    <modules>
        <mycompanyname_helloworld>
            <version>
                0.1.0
            </version>
        </mycompanyname_helloworld>
    </modules>
</config>

إعداد المسار:

http://example.com/magento/index.php/helloworld

أضف اسم Module إلى إعدادات النطام على magento:

<config>
<!-- ... -->
    <frontend>
        <routers>
            <!-- the <helloworld> tagname appears to be arbitrary, but by
            convention is should match the frontName tag below-->
            <helloworld>
                <use>standard</use>
                <args>
                    <module>MyCompanyName_HelloWorld</module>
                    <frontName>helloworld</frontName>
                </args>
            </helloworld>
        </routers>
    </frontend>
<!-- ... -->
</config>

أضف:

touch app/code/local/MyCompanyName/HelloWorld/controllers/IndexController.php

سيظهر لك هذا الخطأ:

Controller file was loaded but class does not exist

إذ يتوجب عليك فتح ملف Module وتغيير اسم إلى اسم المسار:

class MyCompanyName_HelloWorld_IndexController extends Mage_Core_Controller_Front_Action{
    public function indexAction(){
        echo "We're echoing just to show that this is what's called, normally you'd have some kind of redirect going on here";
    }
}

للولوج إليه:

http://example.com/magento/index.php/helloworld/foo

متحكم Module:

class MyCompanyName_HelloWorld_FooController extends Mage_Core_Controller_Front_Action{
    public function indexAction(){
        echo 'Foo Index Action';
    }

    public function addAction(){
        echo 'Foo add Action';
    }

    public function deleteAction(){
        echo 'Foo delete Action';
    }
}

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن