اذهب إلى المحتوى

السؤال

نشر

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

Recommended Posts

  • 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';
    }
}

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...