Submit Search
Upload
Wie programmiere Ich ein Modul? Erste Schritte.
•
1 like
•
769 views
F
flagbit
Follow
Eine Einführung in die Modulentwicklung mit Magento.
Read less
Read more
Technology
News & Politics
Report
Share
Report
Share
1 of 36
Download now
Download to read offline
Recommended
PHP-Module in statischen Seiten - Architektur-Ansätze
PHP-Module in statischen Seiten - Architektur-Ansätze
Ralf Lütke
Angular und JEE - Wieso, weshalb, warum (und wie)?
Angular und JEE - Wieso, weshalb, warum (und wie)?
gedoplan
Angular und JEE - Wieso, weshalb, warum (und wie)?
Angular und JEE - Wieso, weshalb, warum (und wie)?
gedoplan
Einführung in die Java-Webentwicklung - Part II - [3 of 3] - Java Server Face...
Einführung in die Java-Webentwicklung - Part II - [3 of 3] - Java Server Face...
kaftanenko
So werden Sie ein besserer Chef!
So werden Sie ein besserer Chef!
sevDesk
Einführung in die webOS Programmierung
Einführung in die webOS Programmierung
Markus Leutwyler
GWT Introduction
GWT Introduction
pfleidi
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Benjamin Schmid
Recommended
PHP-Module in statischen Seiten - Architektur-Ansätze
PHP-Module in statischen Seiten - Architektur-Ansätze
Ralf Lütke
Angular und JEE - Wieso, weshalb, warum (und wie)?
Angular und JEE - Wieso, weshalb, warum (und wie)?
gedoplan
Angular und JEE - Wieso, weshalb, warum (und wie)?
Angular und JEE - Wieso, weshalb, warum (und wie)?
gedoplan
Einführung in die Java-Webentwicklung - Part II - [3 of 3] - Java Server Face...
Einführung in die Java-Webentwicklung - Part II - [3 of 3] - Java Server Face...
kaftanenko
So werden Sie ein besserer Chef!
So werden Sie ein besserer Chef!
sevDesk
Einführung in die webOS Programmierung
Einführung in die webOS Programmierung
Markus Leutwyler
GWT Introduction
GWT Introduction
pfleidi
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Benjamin Schmid
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Bjoern Reinhold
AngularJs
AngularJs
NETUserGroupBern
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Torsten Kleiber
Moderner Webentwicklungs-Workflow
Moderner Webentwicklungs-Workflow
PLUSPOL interactive GbR
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
OPITZ CONSULTING Deutschland
Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013
Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013
goobi_org
Zend Framework 2 - Best Practices
Zend Framework 2 - Best Practices
Ralf Eggert
Top 10 Internet Trends 2006
Top 10 Internet Trends 2006
Jürg Stuker
MVVM mit WPF
MVVM mit WPF
Hendrik Lösch
Top 10 Internet Trends 2003
Top 10 Internet Trends 2003
Jürg Stuker
Entwickeln mit Wordpress
Entwickeln mit Wordpress
Blogwerk AG
GWT
GWT
Dennis Simon
German: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit Javascript
Ralf Schwoebel
Medien Kombinat Meet Magento 05022009
Medien Kombinat Meet Magento 05022009
dasmedienkombinatde
Hdc2012 cordova-präsi
Hdc2012 cordova-präsi
DeveloperConference
Mobile Webentwicklung mit HTML5
Mobile Webentwicklung mit HTML5
kkramhoeft
Automatischer Build mit Maven
Automatischer Build mit Maven
Stefan Scheidt
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft AG
Schnelleinstieg in Angular
Schnelleinstieg in Angular
Sebastian Springer
magnolia mit thymeleaf - ein agiler prozess-beschleuniger
magnolia mit thymeleaf - ein agiler prozess-beschleuniger
Thomas Kratz
More Related Content
Similar to Wie programmiere Ich ein Modul? Erste Schritte.
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Bjoern Reinhold
AngularJs
AngularJs
NETUserGroupBern
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Torsten Kleiber
Moderner Webentwicklungs-Workflow
Moderner Webentwicklungs-Workflow
PLUSPOL interactive GbR
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
OPITZ CONSULTING Deutschland
Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013
Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013
goobi_org
Zend Framework 2 - Best Practices
Zend Framework 2 - Best Practices
Ralf Eggert
Top 10 Internet Trends 2006
Top 10 Internet Trends 2006
Jürg Stuker
MVVM mit WPF
MVVM mit WPF
Hendrik Lösch
Top 10 Internet Trends 2003
Top 10 Internet Trends 2003
Jürg Stuker
Entwickeln mit Wordpress
Entwickeln mit Wordpress
Blogwerk AG
GWT
GWT
Dennis Simon
German: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit Javascript
Ralf Schwoebel
Medien Kombinat Meet Magento 05022009
Medien Kombinat Meet Magento 05022009
dasmedienkombinatde
Hdc2012 cordova-präsi
Hdc2012 cordova-präsi
DeveloperConference
Mobile Webentwicklung mit HTML5
Mobile Webentwicklung mit HTML5
kkramhoeft
Automatischer Build mit Maven
Automatischer Build mit Maven
Stefan Scheidt
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft AG
Schnelleinstieg in Angular
Schnelleinstieg in Angular
Sebastian Springer
magnolia mit thymeleaf - ein agiler prozess-beschleuniger
magnolia mit thymeleaf - ein agiler prozess-beschleuniger
Thomas Kratz
Similar to Wie programmiere Ich ein Modul? Erste Schritte.
(20)
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
AngularJs
AngularJs
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Moderner Webentwicklungs-Workflow
Moderner Webentwicklungs-Workflow
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013
Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013
Zend Framework 2 - Best Practices
Zend Framework 2 - Best Practices
Top 10 Internet Trends 2006
Top 10 Internet Trends 2006
MVVM mit WPF
MVVM mit WPF
Top 10 Internet Trends 2003
Top 10 Internet Trends 2003
Entwickeln mit Wordpress
Entwickeln mit Wordpress
GWT
GWT
German: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit Javascript
Medien Kombinat Meet Magento 05022009
Medien Kombinat Meet Magento 05022009
Hdc2012 cordova-präsi
Hdc2012 cordova-präsi
Mobile Webentwicklung mit HTML5
Mobile Webentwicklung mit HTML5
Automatischer Build mit Maven
Automatischer Build mit Maven
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform Apps
Schnelleinstieg in Angular
Schnelleinstieg in Angular
magnolia mit thymeleaf - ein agiler prozess-beschleuniger
magnolia mit thymeleaf - ein agiler prozess-beschleuniger
Wie programmiere Ich ein Modul? Erste Schritte.
1.
Wie programmiere ich
ein Magento-Modul? Erste Schritte. David Fuhr, Flagbit GmbH & Co. KG Leipzig, 05.11.2010
2.
Agenda • Darstellung: Blocks,
Templates und Layout XML • Internationalisierung / Lokalisierung • Datenhaltung: Models und Resource-Models • Konfiguration: Widgets
3.
Verzeichnisse • app/code/<codepool>/<namespace>/ <modulname> – z.B app/code/community/Flagbit/FeedReader •
app/etc/modules – Zentrale Stelle um Module zu registrieren
4.
app/etc/modules/ Flagbit_FeedReader.xml <?xml version="1.0" encoding="UTF-8"?> <config> <modules> <Flagbit_FeedReader> <active>true</active> <codePool>community</codePool> </Flagbit_FeedReader> </modules> </config>
5.
app/code/community/Flagbit/ FeedReader/etc/config.xml <?xml version="1.0" encoding="UTF-8"?> <config> <modules> <Flagbit_FeedReader> <version>0.0.1</version> </Flagbit_FeedReader> </modules> </config>
6.
Was bisher geschah...
7.
Blocks...
8.
.../Flagbit/FeedReader/etc/ config.xml <?xml version="1.0" encoding="UTF-8"?> <config> <!--
... --> <global> <blocks> <flagbit_feedreader> <class>Flagbit_FeedReader_Block</class> </flagbit_feedreader> </blocks> </global> </config>
9.
.../Flagbit/FeedReader/Block/ View.php <?php /** * php doc
here */ class Flagbit_FeedReader_Block_View extends Mage_Core_Block_Template { public function getFeed() { /* ... */ } }
10.
Was bisher geschah...
11.
... und Layout
XML • Erstellen • Einfügen • Entfernen • Verschieben von Blöcken im Layout
12.
.../Flagbit/FeedReader/etc/ config.xml <?xml version="1.0" encoding="UTF-8"?> <config> <!--
... --> <frontend> <layout> <updates> <flagbit_feedreader> <file>flagbit_feedreader.xml</file> </flagbit_feedreader> </updates> </layout> </frontend> </config>
13.
.../design/frontend/base/default/ layout/flagbit_feedreader.xml <?xml version="1.0" encoding="UTF-8"?> <layout
version="0.1.0"> <default> <reference name=“right"> <block type="flagbit_feedreader/view" name=“right.flagbit_feedreader.rightcol" template="flagbit_feedreader/right_col.phtml“ /> </reference> </default> </layout>
14.
.../base/default/template/ flagbit_feedreader/right_col.phtml <?php /* @var
$this Flagbit_FeedReader_Block_View */ ?> <div class="block"> <div class="block-title“><strong><span> <?php echo $this->escapeHtml($this->__(‘News from out Feed')); ?> </span></strong></div> <div class="block-content"> <p><?php echo $this->escapeHtml($this->__(‘Hm... what Feed?')); ?></p> </div> </div> <?php endif; ?>
15.
Was bisher geschah...
16.
Awsum!
17.
.../design/frontend/base/default/ layout/flagbit_feedreader.xml <?xml version="1.0" encoding="UTF-8"?> <layout
version="0.1.0"> <default> <reference name=“right"> <block type="flagbit_feedreader/view" name=“right.flagbit_feedreader.rightcol" template="flagbit_feedreader/right_col.phtml“ /> </reference> </default> </layout>
18.
Mehr mit Layout
XML • Layout Handles (Beispiele) – catalog_product_view – checkout_cart_index – customer_account – customer_logged_in – PRODUCT_TYPE_configurable – ...
19.
i18n / l10n •
Internationalisation – Schaffen der Vorraussetzungen für die... • Localisation – Die Umsetzung für eine Ziel-Locale
20.
.../base/default/template/ flagbit_feedreader/right_col.phtml <?php /* @var
$this Flagbit_FeedReader_Block_View */ ?> <div class="block"> <div class="block-title“><strong><span> <?php echo $this->escapeHtml($this->__(‘News from out Feed')); ?> </span></strong></div> <div class="block-content"> <p><?php echo $this->escapeHtml($this->__(‘Hm... what Feed?')); ?></p> </div> </div> <?php endif; ?>
21.
.../Flagbit/FeedReader/etc/ config.xml (schon wieder) <?xml
version="1.0" encoding="UTF-8"?> <config> <!-- ... --> <frontend> <!-- ... --> <translate> <modules> <Flagbit_FeedReader> <files> <default>Flagbit_FeedReader.csv</default> </files> </Flagbit_FeedReader> </modules> </translate> </frontend> </config>
22.
app/locale/de_DE/ Flagbit_FeedReader.csv "News from our
Feed","Letzte Neuigkeiten" "Hm... what Feed?","Hm... welche Neuigkeiten?"
23.
Was bisher geschah...
24.
Awsum!
25.
Models... • Datenhaltung /-speicherung •
Enthalten Berechnungen, interne Logik, Geschäftslogik, etc. • z.B. Mage_Catalog_Model_Product, Mage_Sales_Model_Order
26.
.../Flagbit/Faq/etc/config.xml (wieder mal) <?xml version="1.0"
encoding="UTF-8"?> <config> <!-- ... --> <global> <!-- ... --> <models> <flagbit_feedreader> <class>Flagbit_FeedReader_Model</class> </flagbit_feedreader> </models> </global> <!-- ... --> </config>
27.
.../Flagbit/FeedReader/Model/ Feed.php <?php class Flagbit_FeedReader_Model_Feed extends Mage_Core_Model_Abstract { public
function getFeed() { return Zend_Feed::import($this->getUri()); } }
28.
Was bisher geschah...
29.
Ein bisschen Demo-Voodoo... •
Block/View.php public function getTitle() { return Mage::getModel('flagbit_feedreader/feed') ->setUri('http://feeds.feedburner.com/MageBlog') ->title(); } • template/flagbit_feedreader/right_col.phtml <?php echo $this->escapeHtml($this->__('News from ') . $this->getTitle()); ?>
30.
Awsum!
31.
Resource-Models... • Persistenz-Schicht zwischen
Models und Datenbank • DBMS-spezifisch (Oracle und MSSQL-Support sind geplant): Enthalten SQL
32.
Widgets
33.
.../Flagbit/FeedReader/etc/ widget.xml <?xml version="1.0" encoding="UTF-8"?> <widgets> <flagbit_feedreader_sidebar
type="flagbit_feedreader/view" translate="name description"> <name>FeedReader: Sidebar</name> <description type="desc">Adds a FeedReader block</description> <parameters> <uri translate="label"> <required>1</required> <visible>1</visible> <label>Feed URI</label> <type>text</type> </uri> </parameters> </flagbit_feedreader_sidebar> </widgets>
34.
Insert Widget...
35.
Was bisher geschah...
36.
Awsum! https://github.com/Flagbit/Magento-FeedReader http://www.mageblog.de/ http://www.flagbit.de/ Fragen?
Download now