TYPO3, Expression Engine, Wordpress, Drupal, Joomla Integration (Magento verbinden)

      TYPO3, Expression Engine, Wordpress, Drupal, Joomla Integration (Magento verbinden)

      Die Integration eines Drittanbieter-CMS wurde von der Magento Community sehr häufig angefragt, daher hat Varien jetzt ein entsprechendes HowTo veröffentlicht. - Dieser Beitrag ist die sinngemäße Übersetzung des Wiki-Artikels und soll gleichzeitig Platz für Diskussionen bieten.

      Dieses HowTo beschreibt beispielhaft wie das Expression Engine CMS mit Magento verbunden werden kann. Dazu nutzen wir Magento's 404-Handler und Varien_Http_Client. - Auf andere CMS wie TYPO3 oder Drupal wird vorerst nicht weiter eingegangen, da diese Anleitung normalerweise universell einsetzbar ist.

      Vorbereitungen
      In diesem Beispiel gehen wir davon aus, dass Expression Engine in einem Verzeichnis innerhalb des Magento Verzeichnisses installiert wurde. Unsere URL's lauten demnach:

      Quellcode

      1. http://www.example.com/
      2. http://www.example.com/ee/


      Wichtig: Beide Systeme müssen mit mod_rewrite Unterstützung (SEO URL's) installiert werden.

      Innerhalb des ee-Ordners wird eine .htaccess Datei mit folgendem Inhalt angelegt:

      Quellcode

      1. RewriteEngine on
      2. RewriteCond %{REQUEST_FILENAME} !-f
      3. RewriteCond %{REQUEST_FILENAME} !-d
      4. RewriteCond %{REQUEST_FILENAME} !-l
      5. RewriteRule ^(.*)$ index.php?/$1 [QSA,L]


      Neues Modul erstellen
      Jetzt erstellen wir im "local code pool" (app/code/local) ein neues Modul wie folgt:

      1. Ordner "Mage" erstellen (app/code/local/Mage)
      2. Ordner "Project" in "Mage" erstellen (app/code/local/Mage/Project)
      3. Ordner "Block" in "Project" erstellen (app/code/local/Mage/Project/Block)
      4. Datei "Noroute.php" in "Block" erstellen (app/code/local/Mage/Project/Block/Noroute.php) und folgenden Inhalt einfügen:

      Quellcode

      1. class Mage_Project_Block_Noroute extends Mage_Core_Block_Abstract
      2. {
      3. protected function _toHtml()
      4. {
      5. /**
      6. * This logic should be in the controller, model, but let's make
      7. * this quickly without lots of files :)
      8. */
      9. $uri = Mage::getBaseUrl() . 'ee' . $this->getRequest()->getRequestString();
      10. $post = $this->getRequest()->getPost();
      11. $method = ( count($post) == 0 ) ? 'GET' : 'POST';
      12. /**
      13. * You can add additional
      14. * headers like cookies, redirects and so on
      15. * if you need it here.
      16. */
      17. $client = new Varien_Http_Client($uri);
      18. $client->setParameterPost($post);
      19. $response = $client->request($method);
      20. $body = $response->getRawBody();
      21. return $body;
      22. }
      23. }


      Jetzt muss das Modul noch aktiviert werden. Dazu erstellen wir die Datei "Magento_Project.xml" im Ordner "app/etc/modules" und fügen folgenden Inhalt ein:

      XML-Quellcode

      1. <?xml version="1.0"?>
      2. <config>
      3. <modules>
      4. <Mage_Project>
      5. <active>true</active>
      6. <codePool>local</codePool>
      7. </Mage_Project>
      8. </modules>
      9. </config>


      Das Layout erstellen
      Als nächstes müssen wir diesen Block zu unserem Layout hinzufügen. Wir editieren in der Datei "app/design/frontend/IHR_DESIGN/default/layout/cms.xml" den Knoten "cms_index_defaultnoroute" wie folgt:

      Quellcode

      1. <cms_index_defaultnoroute>
      2. <remove name="left"/>
      3. <reference name="root">
      4. <action method="setTemplate"><template>page/1column.phtml</template></action>
      5. </reference>
      6. <reference name="content">
      7. <block type="project/noroute" name="no_route" />
      8. </reference>
      9. </cms_index_defaultnoroute>


      Damit unsere Änderungen wirksam werden müssen wir noch die 404-Seite unter

      Quellcode

      1. CMS => SEITEN VERWALTEN


      deaktivieren und den Cache aktualisieren.

      Das Finale
      Derzeit passen unsere neuen CMS-Seiten noch nicht in das Magento Erscheinungsbild, daher entfernen wir in unseren EE-Templates sämtliche Header und Footer.

      Wenn Sie nun die URL example.com/sample aufrufen wird automatisch der Inhalt von example.com/ee/sample mit dem Magento Header, Footer und den weiteren Komponenten eingebunden.
      Bilder
      • magento-ee-large.jpg

        111,55 kB, 841×748, 44 mal angesehen