Benutzer-Werkzeuge

Webseiten-Werkzeuge


joomla:router

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
joomla:router [19/08/2020 09:31] – Externe Bearbeitung 127.0.0.1joomla:router [19/08/2020 10:00] (aktuell) Manuel
Zeile 1: Zeile 1:
 +====== Joomla - Router ======
 +
 +Wie erstelle ich einen Router für die eigene Komponente?
 +
 +Das Routing ersetzt die "normalen" URLs (/index.php?option=com_content&view=article&id=1&Itemid=474) durch "lesbare" URLs (/index.php/joomlabeitrag), indem alias Bezeichnungen eingesetzt werden. Dies geschieht durch das File router.php im root-Verzeichnis der jeweiligen Komponente.
 +
 +In Joomla existieren zwei Ansätze, wie ein Router aufgebaut werden kann. Zum einen gibt es den neuen View-Based Router, welcher das Verhalten der Joomla-Core Komponenten nachzustellen vermag. Zum anderen gibt es den Legacy Router, mit welchem man jedes beliebige Verhalten bauen kann.
 +
 +Weitere Infos:
 +https://www.techfry.com/joomla/how-to-create-router-for-joomla-component
 +
 +
 +===== Neuer Router (View-Based) =====
 +
 +Seit Joomla 3.8 gibt es eine neue Router-Klasse, die das Routing von Joomla vereinfachen soll, in dem es Methoden zu einem einfachen ansichtsbasierten (http://www.example.com/[menuitem]/[category]/[article]) Routing liefert.
 +
 +Weitere Infos:
 +https://groups.google.com/g/joomla-dev-general/c/YnILNx_Lmeg
 +
 +
 +<file php router.php>
 +<?php
 +public function __construct($app = null, $menu = null)
 +{
 +  // If your view takes a URL identifier, like the &id= parameter of the
 +  // article view of com_content, you have to set the name of that identifier
 +  // variable in your $view object with $view->setKey().
 +  $category = new RouterViewConfiguration('category');
 +  $category->setKey('id')->setNestable();
 +  $this->registerView($category);
 +  
 +  // If your view also has a parent view, like an article view which can
 +  // be reached via a category view, you then have to define the parent view
 +  // of $view.
 +  $article = new RouterViewConfiguration('article');
 +  $article->setKey('id')->setParent($category, 'catid');
 +  $this->registerView($article);
 +  
 +  parent::__construct($app, $menu);
 +  
 +  // implements the Itemid lookup for your router
 +  $this->attachRule(new MenuRules($this));
 +  
 +  // implements the current behavior of the Joomla core components
 +  $this->attachRule(new StandardRules($this));
 +  
 +  // implements the behavior when no Itemid is present after the Itemid lookup
 +  $this->attachRule(new NomenuRules($this));
 +}
 +</file>
 +
 +
 +
 +
 +===== Legacy Router (Custom) =====
  
joomla/router.1597822264.txt.gz · Zuletzt geändert: von 127.0.0.1