Joomla! Programmierung/Programmierung/Struktur einer Komponente
[Bearbeiten] Übersicht
| JRoot | |
| ... |
Administrator (Backend)
[Bearbeiten] Controllers
administrator/components/com_KOMPONENTENNAME/controllers/
SUBCONTROLLER.php - Optionale Subcontroller.
jimport('joomla.application.component.controller'); class 'KOMPONENTENNAME'Controller'SUBCONTROLLER' extends 'KOMPONENTENNAME'Controller { function __construct() { parent::__construct(); }//function }//class
[Bearbeiten] Models
administrator/components/com_KOMPONENTENNAME/models/
KOMPONENTENNAME.php - Das Standardmodel
jimport('joomla.application.component.model'); class 'KOMPONENTENNAME'Model'KOMPONENTENNAME' extends JModel { function __construct() { parent::__construct(); }//function }//class
[Bearbeiten] Tables
administrator/components/com_KOMPONENTENNAME/tables/
KOMPONENTENNAME.php - Die Standardtabelle
jimport('joomla.tables.table'); class 'KOMPONENTENNAME' extends JTable { function __construct(& $db) { parent::__construct('#__KOMPONENTENNAME', 'id', $db); }//function }//class
[Bearbeiten] Views
administrator/components/com_KOMPONENTENNAME/views/KOMPONENTENNAME
view.html.php - Der Standardview
jimport('joomla.application.component.view'); class 'KOMPONENTENNAME'View'KOMPONENTENNAME' extends JView { function display($tpl = null) { parent::display($tpl); }//function }//class
[Bearbeiten] Template
administrator/components/com_KOMPONENTENNAME/views/KOMPONENTENNAME/tmpl/
default.php - Das Standardtemplate
[Bearbeiten] Base
[Bearbeiten] KOMPONENTENNAME.php
administrator/components/com_KOMPONENTENNAME/
KOMPONENTENNAME.php - Die Einstiegsdatei
require_once JPATH_COMPONENT.DS.'controller.php'; //-- Falls ein Subcontroller angefordert wurde wird dieser inkludiert if($controller = JRequest::getCmd('controller')) { $path = JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php'; if(file_exists($path)) { require_once $path; } else { $controller = ''; } } //-- Ein Controllerobjekt erstellen $classname = 'KOMPONENTENNAMEController'.$controller; $controller = new $classname(); //-- Den angeforderten Task ausführen $controller->execute(JRequest::getCmd('task')); //-- Einen Redirect ausführen falls er vom Controller gesetzt wurde $controller->redirect();
//-- Die Joomla! Controllerbibliothek importieren jimport('joomla.application.component.controller'); //-- Eine Instanz des Controllers mit dem Präfix 'KOMPONENTENNAME' beziehen $controller = JController::getInstance('KOMPONENTENNAME'); // Den 'task' der im Request übergeben wurde ausführen $controller->execute(JRequest::getCmd('task')); //-- Einen Redirect ausführen falls er vom Controller gesetzt wurde $controller->redirect();
[Bearbeiten] controller.php
administrator/components/com_KOMPONENTENNAME/
controller.php - Der Hauptcontroller
jimport('joomla.application.component.controller'); class 'KOMPONENTENNAME'Controller extends JController { function display() { parent::display(); }//function }//class
[Bearbeiten] manifest.xml
administrator/components/com_KOMPONENTENNAME/
Site (Frontend)
[Bearbeiten] Controllers
components/com_KOMPONENTENNAME/controllers/
SUBCONTROLLER.php - Optionale Subcontroller.
jimport('joomla.application.component.controller'); class 'KOMPONENTENNAME'Controller'SUBCONTROLLER' extends 'KOMPONENTENNAME'Controller { function __construct() { parent::__construct(); }//function }//class
[Bearbeiten] Models
components/com_KOMPONENTENNAME/models/
KOMPONENTENNAME.php - Das Standardmodel
jimport('joomla.application.component.model'); class 'KOMPONENTENNAME'Model'KOMPONENTENNAME' extends JModel { function __construct() { parent::__construct(); }//function }//class
[Bearbeiten] Tables
components/com_KOMPONENTENNAME/tables/
KOMPONENTENNAME.php - Die Standardtabelle
Standardmässig wird zuerst im Adminbereich nach einer Tabelle gesucht.
jimport('joomla.tables.table'); class 'KOMPONENTENNAME' extends JTable { function __construct(& $db) { parent::__construct('#__KOMPONENTENNAME', 'id', $db); }//function }//class
[Bearbeiten] Views
components/com_KOMPONENTENNAME/views/KOMPONENTENNAME/
view.html.php - Der Standardview
jimport('joomla.application.component.view'); class 'KOMPONENTENNAME'View'KOMPONENTENNAME' extends JView { function display($tpl = null) { parent::display($tpl); }//function }//class
[Bearbeiten] Template
components/com_KOMPONENTENNAME/views/KOMPONENTENNAME/tmpl/
default.php - Das Standardtemplate
[Bearbeiten] Base
[Bearbeiten] KOMPONENTENNAME.php
components/com_KOMPONENTENNAME/
KOMPONENTENNAME.php - Die Einstiegsdatei
require_once JPATH_COMPONENT.DS.'controller.php'; //-- Falls ein Subcontroller angefordert wurde wird dieser inkludiert if($controller = JRequest::getCmd('controller')) { $path = JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php'; if(file_exists($path)) { require_once $path; } else { $controller = ''; } } //-- Ein Controllerobjekt erstellen $classname = 'KOMPONENTENNAMEController'.$controller; $controller = new $classname(); //-- Den angeforderten Task ausführen $controller->execute(JRequest::getCmd('task')); //-- Einen Redirect ausführen falls er vom Controller gesetzt wurde $controller->redirect();
//-- Die Joomla! Controllerbibliothek importieren jimport('joomla.application.component.controller'); //-- Eine Instanz des Controllers mit dem Präfix 'KOMPONENTENNAME' beziehen $controller = JController::getInstance('KOMPONENTENNAME'); // Den 'task' der im Request übergeben wurde ausführen $controller->execute(JRequest::getCmd('task')); //-- Einen Redirect ausführen falls er vom Controller gesetzt wurde $controller->redirect();
[Bearbeiten] controller.php
components/com_KOMPONENTENNAME/
controller.php - Der Hauptcontroller
jimport('joomla.application.component.controller'); class 'KOMPONENTENNAME'Controller extends JController { function display() { parent::display(); }//function }//class