Magento : Δημιουργία ενός απλού Module

23 Ιούλ 2010 | E-Commerce

Δεν επιτρέπονται τα σχόλια.


Magento e-commerce

Μέρος της προσαρμογής του Magento είναι φυσικά και η δημιουργία προσαρμοσμένων Modules. Αυτό σας επιτρέπει να προσθέσετε δική σας λειτουργικότητα παντού πάνω στο Magento, είτε μιλάμε για ένα στατικό πλαίσιο, είτε μιλάμε για ένα Module που έχει να κάνει με το καλάθι αγορών και την παράδοση των προϊόντων, είτε μιλάμε για ένα μεγάλο Module όπως για παράδειγμα την επικοινωνία του Magento με ένα πρόγραμμα τρίτου κατασκευαστή.

Τα προσαρμοσμένα Modules έχουν πολλές δυνατότητες, από την επεξεργασία της βάσης δεδομένων μέχρι την αναβάθμιση των Modules, την παράκαμψη κλάσεων ( Blocks, Controllers, Models), … , και άλλα πολλά.

Αυτό το άρθρο θα σας παρουσιάσει τα πολύ βασικά, για τη δημιουργία του δικού σας προσαρμοσμένου Module, και τη σύνδεσή του με το δικό σας phtml αρχείο στο εγκατεστημένο Template σας.

Θα δημιουργήσω ένα Webres Example Module. Το Webres είναι το namespace ( όπως για παράδειγμα το Mage), Example είναι το όνομα του Module (όπως για παράδειγμα τα Catalog, Page, Core, Shipping, κα.).

Βήμα πρώτο

Ενημερώστε το Magento για την ύπαρξη του Module.

Δημιουργήστε το αρχείο Webres_All.xml στον κατάλογο app/etc/modules/

Παρατηρήστε το επίθεμα _All.xml. Σε αυτό το αρχείο μπορώ να δηλώσω όλα τα Modules που δημιουργώ κάτω από το namespace Webres. Αν έχω για παράδειγμα ακόμα μια μονάδα που τη λένε Discounts τότε θα την καταγράψω μέσα σε αυτό το αρχείο.

Μέσα στο αρχείο γράψτε τον παρακάτω κώδικα :

<?xml version="1.0"?>

<config>
    <modules>
        <Webres_Example>
            <active>true</active>
            <codePool>local</codePool>
        </Webres_Example>
    </modules>
</config>

Με αυτό τον κώδικα ενημερώνουμε το Magento ότι έχουμε ένα ενεργό Module (μπορείτε να το απενεργοποιήσετε αν αλλάξετε τη γραμμή <active>true</active> σε <active>false</active>). Επίσης έχω ενημερώσει το Magento ότι το Module βρίσκετε στο local codePool.

Βήμα δεύτερο

Προσαρμόστε το Module σας. Δημιουργήστε το αρχείο config.xml κάτω από τον κατάλογο app/code/local/Webres/Example/etc/.

Οι κατάλογοι μετά το app/code/local/ πιθανότατα δεν υπάρχουν οπότε θα πρέπει να τους δημιουργήσετε.

Μέσα στο αρχείο config.xml βάλτε τον κώδικα που ακολουθεί :

<?xml version="1.0"?>

<config>
    <modules>
        <Webres_Example>
            <version>0.1.0</version>
        </Webres_Example>
    </modules>
    <global>
        <blocks>
            <webres_example>
                <class>Webres_Example_Block</class>
            </webres_example>
        </blocks>
    </global>
</config>

Το παραπάνω αρχείο ενημερώνει αρχικά το Magento για την έκδοση του Module. Η έκδοση του Module είναι χρήσιμη όταν θέλετε να δέχεται αναβαθμίσεις. (Μια νεότερη έκδοση θα ενημερώσει το Magento να εκτελέσει τα αρχεία ενημέρωσης).

Επίσης με τον κώδικα μέσα στο config.xml ενημέρωσα το Magento ότι το Module μου έχει και αρχεία Block τα οποία θα τα βρει στον φάκελο webres/example/block. Το όνομα της κλάσης μου είναι θα είναι Webres_Example_Block.

Αν θέλετε να δείτε το σύνολο των επιλογών που έχετε για το αρχείο config.xml ανοίξτε και μελετήστε το αρχείο config.xml που είναι στον φάκελο app/code/core/Mage/Catalog/etc/. Μέσα σε αυτό το φάκελο θα δείτε και άλλα αρχεία xml τα οποία όμως δεν αφορούν αυτό το άρθρο, οπότε δεν θα τα συζητήσουμε.

Βήμα τρίτο

Εδώ θα δούμε τον κώδικα του Block μας. Στην πραγματικότητα δεν κάνει τίποτα σπουδαίο, αλλά κάνει μερικές πολύ βασικές λειτουργίες.

Δημιουργήστε το αρχείο View.php στον κατάλογο app/code/local/Webres/Example/Block/

Οι κατάλογοι μετά το app/code/local/Webres/Example/ πιθανότατα δεν υπάρχουν οπότε θα πρέπει να τους δημιουργήσετε.
<?php

/**
* Example View block
*
* @codepool   Local
* @category   Webres
* @package    Webres_Example
* @module     Example
*/

class Webres_Example_Block_View extends Mage_Core_Block_Template
{
    private $message;
    private $att;

    protected function createMessage($msg)
    {
        $this->message = $msg;
    }

    public function receiveMessage()
    {
        if($this->message != '')
        {
            return $this->message;
        }
        else
        {
            $this->createMessage('Hello World');
            return $this->message;
        }
    }

    protected function _toHtml()
    {
        $html = parent::_toHtml();

        if($this->att = $this->getMyCustom() && $this->getMyCustom() != '')
        {
            $html .= '<br />'.$this->att;
        }
        else
        {
            $html .= '<br />No Custom Attribute Found';
        }

        return $html;
    }

}

?>

Η συνάρτηση receiveMessage() απλά επιστρέφει ένα Hello World.

Η συνάρτηση toHtml() είναι υπεύθυνη να επιστρέψει το αρχείο προσχεδίου (template) που είναι συσχετισμένο με αυτό το Block. Βεβαιωθείτε ότι εκτελείτε το parent::toHtml() και ότι το κάνετε return μαζί με ότι άλλο έχει να επιστρέψει αυτή η συνάρτηση.

Βήμα τέταρτο

Σε αυτό το βήμα θα δημιουργήσουμε το Template (phmtl) μας για αυτό το block. Δημιουργήστε το αρχείο view.phtml στον κατάλογο app/design/frontend/default/webres/template/example.

Οι κατάλογοι μετά το app/design/frontend/default/ πιθανότατα δεν υπάρχουν οπότε θα πρέπει να τους δημιουργήσετε.

Μέσα στο αρχείο view.phtml τοποθετήστε τον κώδικα που ακολουθεί :

<?php

/**
* Webres view template
*
* @see Webres_Example_Block_View
*
*/
?>
<div>
    <span>
        <strong>This is the output of the webres example:</strong>
    </span>
    <br />
    <span style="color:#FF9933;">
        <?php
            echo $this->receiveMessage();
        ?>
    </span>
</div>

Σε αυτό το κομμάτι κώδικα έχουμε βάλει λίγο HTML κώδικα και επίσης εκτελούμε τη συνάρτηση receiveMessage() από το block μας view.php

Δυο σημειώσεις εδώ ! Τοποθετώντας το αρχείο μας view.phtml στη δική του θέση (app/design/frontend/default/webres/template/example), ουσιαστικά δημιουργήσαμε ένα νέο θέμα για το Magento, οπότε για να δείτε το Module σας να λειτουργεί βεβαιωθείτε για τα ακόλουθα :

  • Το Magento γνωρίζει για το νέο θέμα που δημιουργήσατε (Admin->System->Design)
  • Αν χρησιμοποιείτε το το Block this στις σελίδες του CMS σας, έχετε ορίσει το CMS να χρησιμοποιεί το νέο θέμα. (Admin->CMS->Mage Pages->’Η σελίδα σας’->Custom Design->Custom Theme drop down).

Το προσαρμοσμένο Module σας τώρα είναι έτοιμo.

Αν θέλετε να προσαρμόσετε το Module σας σε μια σελίδα στο CMS σας γράψτε το ακόλουθο :

{{block type="webres_example/view" my_custom="Test" template="example/view.phtml" }}

Ή γράψτε κάτι σαν το παρακάτω στην περιοχή Layout Update XML (Στο CMS είναι η περιοχή Custom Design )

<reference name="right">
    <block type="webres_example/view" my_custom="Test" template="example/view.phtml" />
</reference>
//this will add your block in the right column

Αν έχετε ολοκληρώσει όλα τα βήματα ως τώρα σωστά θα πρέπει να εμφανίζετε το Hello World στη CMS σελίδα σας.

Περισσότερα για τον CorfuGmr

CorfuGmr

Ονομάζομαι Νίκος και ασχολούμαι με το internet και την κατασκευή ιστοσελίδων από το 1998. Σήμερα, μετά από 12 χρόνια γεμάτα με ενημέρωση, εκπαίδευση και εξάσκηση έχω ανεβάσει σε ένα άλλο επίπεδο τις γνώσεις μου και τις τεχνικές μου. Στα άρθρα μου προσπαθώ να σας δείξω τα μικρά, αλλά σημαντικά πράγματα που με έχουν ανεβάσει σε αυτό το επίπεδο.








Σχόλια



23 Ιουλίου 2010

[…] This post was mentioned on Twitter by magento news, Web Resoures.eu. Web Resoures.eu said: Magento : Δημιουργία ενός απλού Module : http://j.mp/b9XSLW […]


Συγνώμη, τα σχόλια για αυτό το άρθρο είναι κλειστά.



^
Top
css.php