Upload
david-jardin
View
1.862
Download
1
Embed Size (px)
DESCRIPTION
My presentation about Joomla Distributions which i gave at the German JoomlaDay 2011 in Hamburg.
Citation preview
Nooku Server, Molajo & Co.
Joomla! Forks. Oder Distributionen.
David Jardin - SistaSystems - JoomlaDay Deutschland 2011
Ich
• David Jardin, 21
• gelernter Abiturient
• Webentwickler
• Joomla!-Freak
• Stellv. Vorsitzender Mambo e.V.
Ein Fork.Konfuzius sagt:
„Eine Abspaltung (auch Fork) ist in der Softwareentwicklung ein Entwicklungszweig nach der Aufspaltung eines Projektes in zwei, wobei Teile des Quelltextes und seiner Historie kopiert werden und dann unabhängig von dem ursprünglichen Projekt weiterentwickelt werden“
Quelle: Wikipedia
Bestes Beispiel:
„Eine Distribution ist eine Zusammenstellung von Software, die als Komplettpaket weitergegeben wird.
Eine Distribution.
Konfuzius sagt:
Quelle: Wikipedia
• Entstanden aus der „All together as a whole“-Initiative (ataaw.org)
• kleines aber feines Team
• als Distribution geplant, jetzt Applikation basierend auf der Joomla! Plattform
• Ziel: Joomla 1.7 mit mehr Nutzerfreundlichkeit
Bestandteile
• Vereinfachung des ACL Systems
• Verbesserung des MVC Frameworks
• Construct Template Framework
• Verbesserungen des Routers
• Minima Admin Template
• Integration der Admin Tools
Construct Template Framework
• schlankes Template Framework
• 40 Modulpositionen
• Mobiloptimierung
• erweiterte Template Overrides: z.B. ein Override für eine bestimmte Kategorie
Minima Template
Selber gucken.
Nooku Server
Fork/Distribution von Joomla 1.5
Nooku Framework
MVC RAD Framework
Nooku Desktop
Desktop Client zur
Administration
Nooku PlattformBasis für den Betrieb von Webanwendungen
Johan Janssens
„Es war einmal...“• Relaunch für die belgische Polizei
• Bedarf einer Multisite Version von Joomla -> Nooku Server
• Bedarf eines MVC Frameworks zur Erweiterungsentwicklung -> Nooku Framework
• Veraltete Behördenrechner-> Nooku Desktop
Nooku Framework
„a new brain for Joomla!“
Nooku Framework
• objektorientiertes MVC Framework
• nutzt keine Joomla! Bibliotheken
• RESTful Architektur
• basierend auf aktuellen Designpatterns
• schlank und flexibel
• DRY-Konzept
easybook.php vorher<?phpdefined( '_JEXEC' ) or die( 'Restricted access
// Require the base controllerrequire_once( JPATH_COMPONENT.DS.'controller.php' );
// Require specific controller if requestedif($controller = JRequest::getWord('controller')) { $path = JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php'; if (file_exists($path)) { require_once $path; } else { $controller = ''; }}
// Create the controller$classname = 'EasybookController'.$controller;$controller = new $classname( );
// Perform the Request task$controller->execute( JRequest::getVar( 'task' ) );
// Redirect if set by the controller$controller->redirect();
?>
easybook.php nachher
// Create the controller dispatcherecho KFactory::get('site::com.easybook.dispatcher')->dispatch();
controller.php vorherclass EasybookControllerEntry extends EasybookController{ /** * Edit a entry and show the edit form * * @acces public * @since 1.5 */ function edit() { $user = & JFactory::getUser();
// Make sure you are logged in if ($user->get('aid', 0) < 1) { JError::raiseError( 403, JText::_('ALERTNOTAUTH') ); return; }
JRequest::setVar('view', 'entry'); JRequest::setVar('layout', 'form');
$model =& $this->getModel('entry'); $model->checkout();
parent::display(); }
...
137 Zeilen
controller.php nachher
class ComEasybookControllerEntry extends KControllerService { }
3 Zeilen
Eigene Erfahrungswerte
• 70-80% weniger Code
• 50% kürzere Entwicklungszeit
• mehr Flexibilität
• mehr Spaß
Nooku Server
• ursprünglich Multi-Site Version von Joomla 1.5
• hat sich zum Joomla 1.5 Fork entwickelt
• „Joomla 1.5“ auf Diät
• kein Legacy Layer, Pat Template, XML-RPC
• 45% weniger Code!
• Reduzierung auf Kern-Funktionalitäten
Nooku Desktop
Nooku Desktop
• Desktop Applikation zur Administration von Nooku Server Seiten
• bringt eigene Rendering Engine mit
• sehr rudimentäres Tool
• „klickibunti“-Feeling für den Endkunden
Links
Nooku.org Molajo Minima
David Jardin
@snipersisterwww.sistasystems.de