Oft möchte man nur ein externes oder selbst erstelltes PHP-Script in Magento einbinden und entweder über ein Template oder direkt über das CMS ausgeben. Dazu erstellen wir ein Rahmenprogramm welches innherhalb von 5 Minuten erstellt ist. Dazu können Sie unsere Vorlagen am Ende dieses Tutorials downloaden und verwenden.

Ändern können Sie Ausgabereoutinen sowie die Namespaces:
Package: Fiveminutes_Demo
Kategorie: Fiveminutes
Modul: Demo

Folgende Dateien müssen erstellt werden:
– app/etc/modules/fiveminutes_all.xml
– app/code/local/fiveminutes/demo/etc/config.xml
– app/code/local/fiveminutes/demo/Block/View.php
– app/design/frontend/default/default/template/demo/view.phtml

Beispiel in unserem Demoshop: shop.mxperts.de


fiveminutes_all.xml

<?xml version="1.0"?>
<config>
  <modules>
    <Fiveminutes_Demo>
      <active>true</active>
      <codePool>local</codePool>
    </Fiveminutes_Demo>
  </modules>
</config>


config.xml

<?xml version="1.0"?>
<config>

  <modules>
    <Fiveminutes_Demo>
      <version>0.1.0</version>
    </Fiveminutes_Demo>
  </modules>

  <global>
    <blocks>
      <fiveminutes_demo>
        <class>Fiveminutes_Demo_Block</class>
      </fiveminutes_demo>
    </blocks>
  </global>

</config>


View.php

<?php
/**
* Fiveminutes View block
*
* @codepool   Local
* @category   FiveMinutes
* @package    FiveMinutes_Demo
* @module      Demo
*/

class Fiveminutes_Demo_Block_View extends Mage_Core_Block_Template
{
  private $message;
  private $param1,$param2;

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

  public function receiveMessage() {  // {{block type="fiveminutes_demo/view" " my_parameter1="..." my_parameter2="..." template="demo/view.phtml" }}
    if($this->message != '') {
      return $this->message;
    } else {
      $this->createMessage('<strong>5 Minutes Extension</strong>');
      return $this->message;
    }
  }

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

    $this->param1 = $this->getMyParameter1();
    if ($this->param1 != "") {
      $html .= $this->param1;
    }

    $this->param2 =  $this->getMyParameter2();
    if ($this->param2 != "") {
      $html .= ' '.$this->param2;
    }

    return $html;
  }

}


view.phtml

<?php
/**
* Fiveminutes view template
*
* @see Fiveminutes_Demo_Block_View
*
*/
?>

<div>
  <span style="color:#FF9900;">
  <?php
    echo $this->receiveMessage();
  ?>
  </span>
</div>

Die Ausgabe erfolgt nun über das CMS indem Sie folgende Zeile in den Inhalt einfügen.

{{block type="fiveminutes_demo/view" color="red " my_parameter1="Herzlichen Glückwunsch" my_parameter2="Sie haben das Tutorial erfolgreich abgeschlossen" template="demo/view.phtml" }}

Alternativ können Sie auch unter “eigene Gestaltung” eine Layoutänderung eintragen.
Allerdings werden die Parameter nicht ausgegeben.

<reference name="right">
<block type="fiveminutes_demo/view" color="red" my_parameter1="Herzlichen Glückwunsch" my_parameter2="Sie haben das Tutorial erfolgreich abgeschlossen" template="demo/view.phtml" />
</reference>

Download aller Dateien: module_fiveminutes.zip