Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Agenda Überblick über Joomla Einführung Demos Joomla erweitern modules, components, mambots Die Joomla 1.0.x API Entwickeln... und los (ab 8.9.) Woche.

Ähnliche Präsentationen


Präsentation zum Thema: "Agenda Überblick über Joomla Einführung Demos Joomla erweitern modules, components, mambots Die Joomla 1.0.x API Entwickeln... und los (ab 8.9.) Woche."—  Präsentation transkript:

1

2 Agenda Überblick über Joomla Einführung Demos Joomla erweitern modules, components, mambots Die Joomla 1.0.x API Entwickeln... und los (ab 8.9.) Woche 1 : Einarbeitung, User Stories, Sceletton, Clickdummy Woche 2 : 80% Major / 20% Minor stories implemented/tested Woche 3 : 100% Major stories tested, 80% Minor stories implemented/tested Woche 4: 100% implemented, tested, documented.

3 Kapitel 1Überblick über Joomla (1.0.x) Was ist Joomla Einordnung & Alternativen Funktionen Versionen & Umgebung Installation Frontend & Backend Rollen Baukasten Demo: Fontend & Backend Seitenentwurf Demo:

4 1.1Was ist Joomla!? Joomla! ist ein von Jumla abgeleitetes Wort aus der afrikanischen Sprache Swahili und bedeutet »alle zusammen«. Joomla! ist die Weiterentwicklung des erfolgreichen Systems Mambo und wie Mambo ein Stück Software, mit dem sich eine Website per Webbrowser einfach verwalten lässt. Joomla! ist (nach eigenen Angaben) ein »Cutting Edge Content Management System« und eines der leistungsfähigsten OpenSource - Content-Management- systeme auf der Welt. Es wird weltweit für einfache Homepages bis hin zu aufwendigen Unternehmens- websites genutzt. Es ist einfach zu installieren und einfach zu verwalten Es ist sehr verlässlich (aber nicht zuverlässig sicher !) Joomla hat eine lebendige Community internationale Joomla-Seite deutsche Joomla-Seite dev.joomla.org/component/option,com_jd-wikiDevelopers Guide Joomla-Tutorials

5 1.2Einordnung & Alternativen Typo3 Zope/Plone Drupal E107 MediaWiki weitere: vergleich.de vergleich.de open source vollständig webbasiert

6 1.3Funktionen Verwaltung von Inhalten und deren Darstellung Trennung von Inhalt und Darstellung  Inhalt: weitgehend ohne Formatierung  Darstellung gesteuert über „templates“ und styles Navigation Benutzerverwaltung mit Rollenkonzept und Workflow  ähnlich einem „Redaktions.system“  leider (zur Zeit) hartcodiert damit verbunden: Zugriffsrechteverwaltung Daneben: Caching-Mechanismus, Papierkorb, Archiv, Suchmaschinenfreundliche URLs, mehrsprachiges Frontend, Besucherstatistiken, WYSIWYG-Editor für Inhalte Erweiterbarkeit Foren, Bildergalerien, Bannerverwaltung, Dokumentenverwaltung, Templates, Kalender

7 1.4Content Contentarten „Textueller-Content“: Content  vollständig integriert in Datenbank: strukturiert (Überschriften, Teaser, Inhalt), durchsuchbar. „Medien-Content“: Medien  „nur“ hochladbar und verlinkbar: Bilder, Videos, Audios, „Nicht-HTML“- Dokumente (Word, pdfs, Excels,´...) Generierter Content  generiert aus den unterschiedlichsten Quellen: individuell programmiert Content Statischer Content  HTML-Seiten, die „grundsätzlich“ nicht erweitert werden. Bsp.: Einstiegsseiten für Menüpunkte  1-stufig strukturiert, d.h. alle statischen Contentseiten werden als Liste geführt Dynamischer Content  HTML-Seiten, die „ grundsätzlich“ listenartig erweitert werden. Bsp.: News, Blogs, Termine, Inhaltssammlungen  2-stufig hierarchisch strukturiert: –Einteilung in „sections“ (Bereiche). –Jeder Bereich ist nochmals eingeteilt in „categories“ (kategorien)

8 1.5Versionen & Umgebung Versionen: 1.0.x (ca. 2.7 MB)  wird z.Z. am häufigsten eingesetzt (-> MNI-Homepage, bis Mitte August) ...  seit behebt einige Sicherheitslücken, Umstieg empfohlen 1.5.x  komplett überarbeitetes Framework ...  seit behebt einige Sicherheitslücken, Umstieg empfohlen Betriebssysteme: Windows: XP oder Vista Linux benötigte Komponenten Apache (ab ) PHP (ab 4.2 mit MySQL-, XML- und Zlib Unterstützung, nicht „safe mode“) MySQL (ab ) Installationspakete: XJ! (z.Z ): Apache , PHP 5.2.0, MySQL , Joomla , XAMPP (z.Z ): Apache 2.2.8, PHP & MySQL a,...  Linux, Windows, MacOSX, Solaris

9 1.6Installation XAMPP installieren und starten Paket entpacken (installiert nach /opt/lampp) tar xvfz -C /opt Webserver starten: /opt/lampp/lampp start Datenbank einrichten: Administrationstool starten: localhost/phpmyadmin Datenbank anlegen: z.B. joomla (Bei Zweitinstallation: anderen Namen verwenden) Joomla einrichten entpacken in Webroot-Verzeichnis (z.B. /apachefriends/xampp/htdocs/ oder – bei uns - var/www/html. bei Zweitinstallation: anderen Namen verwenden) Unter Linux: Schreibrechte einrichten: chmod a+w. administrator/backups administrator/components administrator/modules administrator/templates cache components images images/banners images/stories language mambots mambots/content mambots/editor mambots/editors-xtd mambots/search media modules templates oder: chown www-data:www-data –R (ändern Benutzerrechte auuf Apache-user) Joomla installieren: localhost/joomla und den Anleitungen folgen Installationsverzeichnis löschen: rm –r installation Joomla starten User-Frontend: localhost/joomla (bei XJ!: localhost:8888/...) Admin-Backend: localhost/joomla/administrator: (bei XJ!: s.o.)

10 1.7Bereiche Frontend Content: Frontpage, Latest news, Most read Menüs: Top-Menü, Main-Menü, Other-Menü Modules: Login, Polls, Who‘s online, RSS-Feeds Decoration: Logo, Banner Backend Control Panel: Icon-Navigation Control Menue: Menü-Navigation Schnellübersicht: Logged, components, popular, latest Statusleiste

11 1.8Rollen 1.public sieht Content im Frontend 2.registered darf sich im Frontend einloggen und alles sehen und tun, was für registrierte Benutzer erlaubt wurde 3.author darf im Frontend content schreiben und seinen eigenen content bearbeiten 4.editor darf im Frontend content von anderen authors bearbeiten 5.publisher darf im content freischalten (veröffenbtlichen) 6.manager darf im Backend Dateien hochladen, Inhalte strukturiert ablegen und archivieren 7.administrator darf im Backend Menüs, Inhaltstrukturen und Design verwalten und Benutzer anlegen 8.superadministrator darf im Backend Administratoren verwalten Grundsätzlich:Die Benutzerrechte bauen aufeinander auf, d.h. die Rechte „niedrigerer“ Gruppen werden an höhere Gruppen vererbt regis- tered public special backend frontend

12 1.9Baukasten Menüs User-Module Login Suche Sections Archive Latest News Popular Syndicates Banners Statistik Template Chooser Related Items Wrapper Polls Who's Online Random Image Newsflash MOS Image Legacy Mambot Includer Code support Suchmaschinenfreundliche URLs (SEF) MOS Rating Cloaking GeSHi Load Module Positions MOS Pagination Die Module bestimmen den Inhalt der Objekte auf der Seite Content-Mambots beeinflussen den Inhalt der Objekte auf der Seite Das Template bestimmt die Positionen der Objekte auf der HTML-Seite Das Stylesheet bestimmt das Aussehen der HTML-Objekte auf der Seite daneben: tausende weiterer Modules und Mambots

13 1.10frontend - backend

14 1.11Seitenentwurf Zielgruppenanalyse für wen ist die Seite gedacht und was will man diesen Gruppen vermitteln Inhalte was soll rein, was nicht Strukturen Menüstrukturen Content-Strukturen  statischer Content (naming conventions)  dynamischer Content: sections,categories (Granularität) Medienstrukturen Zugriffsmodell wer darf was Design (realisiert in template) CI Seitenlayout CSS

15 1.12templates

16 und dann Bei einem Menüaufruf , werden  alle publizierten Module  für definierte Benutzerrollen  an definierter Stelle  in definierter Reihenfolge ausgeführt und generieren dabei Context.     

17 Kapitel 2Joomla erweitern Erweiterungen Module Komponenten Mambots Die Joomla API Rules

18 2.1Erweiterungen Joomla sieht drei Arten vor, Erweiterungen zu realisieren Komponenten Module Mambots / Plugins

19 2.1.1Komponenten Komponenten implementieren umfangreiche Funktionen zur Erweiterung der Joomla-Funktionalität Foren Repositories Gästebücher... Komponenten haben (meistens) Backend- und Frontend-Anteile Backend-Anteile zur Erstellung zur Verwaltung eigener Datenbankstrukturen Frontendanteile zum Verwalten der Datenbankstrukturen mit oft eingeschränkter Funktionalität, z.B. abhängig von der Benutzergruppe Komponenten werden oft ergänzt von Modulen zur Darstellung der in der Datenbank abgelegten Objekte. Die Grenzen zu Modulen sind fließend, denn Komponenten ohne Backend-Anteil können das gleiche wie Module leisten.

20 2.1.2Module Module realisieren kleinere Funktionen meist durch Zugriff auf die Joomla-Datenbank, auf externe Quellen, lokalen Dateien,. oft auf Daten, die von Komponenten eingebracht wurden. Module werden nur über das frontend aufgerufen. Der Aufruf erfolgt meist implizit über die Zuordnung von Modulen zu deren Positionen im template... oder über die die Funktion „mosLoadModules” (siehe “Joomla API”) Module benötigen (mindestens) zwei Dateien (zumindest) eine Datei für die Logik und Darstellung eine XML-Datei für die Installation

21 2.1.2Module: Beispiel Module sollten nur in Joomla-Kontext aufrufbar sein Joomla bietet eine API (Framework) zum Zugriff auf wichtige Funktionen und Objekte insb. Datenbank-Zugriffe Module generieren i.A. HTML-Code setQuery("SELECT * FROM #__users LIMIT 5"); $rows = $database->loadObjectList(); // iterate through all tuples of jos_users (if any) if ($rows) { echo " \n"; foreach ($rows as $row) { echo " ". $row->name. " \n"; } echo " \n"; } ?>

22 2.1.3Mambots Mambots werden in vier Gruppen eingeteilt Content Mambots: interpretieren (textuellen) Content und manipulieren ihn Search Mambots: erweitern die Suche auf eigene Datenbankstrukturen (z.B. von Komponenten) Mambots werden durch Ereignisse getriggert

23 2.1.3Mambots: Beispiel Dieser Mambot transformiert einen „Kurzink“ der Form {moshotlink=id name=klickenSiediesenLink} in die vollständige Form klickenSiediesenLink 1 registerFunction( 'onPrepareContent', 5 'botMosHotLink' ); 6 function botMosHotLink( $published, &$row ) 7 { 8 $regex = "/{moshotlink=([^\s]*)\s*name=([^\s]*)}/s"; 9 $repl = '' 11.'$2 '; 12 $row->text = preg_replace($regex, $repl, $row->text); 13 return true; 14 } 15 ?>

24 2.1.4Installation später

25 2.2Die Joomla 1.0.x API Funktionen Konstanten, Variable Laufzeitobjekte zum Zugriff auf: die Datenbank die Seite (mainframe) übergebenen Parameter auf Benutzerattribute auf Standard-HTML-Elemente auf Ausgaben in der Toolbar

26 2.2.1Funktionen (1) FunktionBeschreibung initEditor()Nimmt den Code des WYSIWYG-Editors mit in die Seite auf. Joomla 1.5.x: JEditor::init mosCountModules ([string $position]) Gibt die Anzahl der Module an einer Position aus. $position. Name der Position, für die die Module gezählt werden sollen. Standardwert ist left. mosErrorAlert (mixed $text)Gibt eine Fehlermeldung aus. $text. Text, der ausgeben werden soll. Joomla 1.5.x: josErrorAlert mosFormatDate( string $date, [string $format]) Gibt entsprechend der lokalen Einstellungen die formatierte Version eines Datumsstrings aus. $date. Datum im datetime-Format. $format. Formatierungsstring. mosGetParam( array &$arr, string $name, [mixed $default], [int $mask ]) Holt den Wert eines Übergabeparameters ab. Dabei werden HTML-Tags und Leerzeichen am Anfang und Ende entfernt. $arr. PHP-Variable, von der die Übergabe abgeholt werden soll. Beispiele sind $_GET, $_POST oder $_COOKIE. $name. Name des Parameters. $default. Vorgabewert, wenn der Parameter nicht gefunden wurde. $mask. Schaltet die Filter aus. Gültige Werte sind: _MOS_ALLOWHTML: Lässt Tags zu. _MOS_NOTRIM: Lässt Leerzeichen zu. _MOS_ALLOWRAW: Keine Filterung. mosLoadModules( [string $position], [int $style]) Lädt die Module für eine angegebene Position. $position. Name der Position. $style. Gibt an, wie die Module ausgegeben werden: 0: übereinander in Tabelle 1: nebeneinander in Tabelle –1: unformatiert –2: in einzelnen -Tags –3: in dreifachen -Tags für abgerundete Ecken mosMainBody()Gibt den Inhalt des Contentbereichs aus.

27 2.2.1Funktionen (2) FunktionBeschreibung mosMail( string $from, string $fromname, string $recipient, string $subject, string $body) Versendet eine über den phpMailer. $from. -Adresse des Absenders. $fromname. Name des Absenders. $recipient. -Adresse des Empfängers. Hier kann auch ein Array mit Adressen übergeben werden. $subject. Betreff der Mail. $body. Inhalt der Mail. Joomla 1.5.x: josMail mosNotAuth()Gibt die Meldung aus, dass der Benutzer diesen Bereich nicht sehen darf. mosPathWay()Gibt den Klickpfad aus. Joomla 1.5.x: mosLoadModule('breadcrumbs'); mosReadDirectory (string $path) Liest die Dateien aus einem Verzeichnis. $path. Der relative Pfad des Verzeichnisses. Joomla 1.5.x: JFolder::files oder JFolder::folders mosRedirect (string $url)Weiterleitung auf eine andere Seite. $url. Zieladresse. Joomla 1.5.x: josRedirect mosShowHead()Gibt den HTML-Head-Bereich aus. mosToolTip( string $tooltip, [string $title], [int $width], [string $image], [string $text], [string $href], [boolean $link]) Gibt den HTML-Code für ein Tooltip und das zugehörige Icon aus. Die JavaScript-Bibliothek overlib_mini.js muss eingebunden sein. $tooltip. Text der Anzeige. $title. Text im Titelfeld. $width. Breite des Tooltip. $image. Icon, das angezeigt werden soll. Der Pfad muss relativ zu /includes/js/ThemeOffice sein. Wenn der Parameter $text einen Wert hat, wird kein Bild angezeigt. $text. Text, der als Basis für das Tooltip dient. $href. Adresse, die angezeigt werden soll, wenn auf die Tooltip-Basis geklickt wird. $link. Gibt an, ob die Basis verlinkt werden soll. sefRelToAbs (string $url)Konvertiert eine URL in ein suchmaschinenfreundliches Format. $url. Die Internet-Adresse, die konvertiert werden soll.

28 2.2.2Konstanten & Variable KonstanteBeschreibung _VALID_MOSDiese Konstante ist gesetzt (Wert: 1), wenn ein Skript innerhalb von Joomla! aufgerufen wird. VariableBeschreibung $mosConfig_absolute_pathDer absolute Pfad zur Joomla!-Installation auf dem Server. $mosConfig_langEnthält den aktuellen Sprachnamen. $mosConfig_live_siteEnthält den URL-Pfad bis zur Joomla!-Seite. Alle URLs innerhalb von Joomla! sind daher relativ dazu. $mosConfig_sitenameName der Joomla!-Seite.

29 2.2.3Datenbank-Objekt MethodeBeschreibung $database->getErrorMsg()Liefert im Fehlerfall die Fehlermeldung. $database->getErrorNum()Liefert im Fehlerfall die Fehlernummer. $database->getNumRows()Die Anzahl der Ergebnisse der letzten Abfrage. $database->loadObjectList()Liefert das Abfrageergebnis als Array von Objekten. $database->loadResult()Liefert das erste Feld des ersten Ergebnisses der Abfrage. $database->query()Führt die Abfrage aus. Gibt eine Datenbankressource zurück, wenn die Abfrage erfolgreich war, ansonsten false. $database->setQuery(string $sql) Setzt das SQL-Statement für die Datenbankabfrage fest. $sql. Das SQL- Statement.

30 2.2.4Mainframe-Objekt MethodeBeschreibung $mainframe->addCustomHeadTag (string $html) Fügt dem Head-Bereich der HTML-Ausgabe ein neues Tag hinzu. $html. Das neue HTML-Tag. $mainframe->addMetaTag ( string $name, string $content) Fügt ein neues Metatag in den HTML-Header ein. $name. Inhalt des Name-Attributs. $content. Inhalt des Content-Attributs. $mainframe->appendMetaTag (string $name, string $content) Erweitert ein bereits existierendes Metatag im HTML-Header. $name. Name des zu erweiternden Tags. $content. Inhalt, der an den bestehenden Inhalt angehängt werden soll. $mainframe->getPageTitle ()Gibt den Titel der Seite zurück. $mainframe->getPath (mixed $varname) Gibt eine zuvor gespeicherte Pfadvariable zurück, beispielsweise, um die verschiedenen Teile einer Komponente aufzurufen. $varname. Der Name der Pfadvariablen. $mainframe->getUser ()Liefert ein Objekt vom Typ mosUser zurück, das die Daten des aktuell eingeloggten Benutzers enthält. $mainframe->login (mixed $username, mixed $passwd) Versucht, einen bestimmten Benutzer im System anzumelden. $username. Der Benutzername des Users. $passwd. Das Passwort des Benutzers. $mainframe->logout ()Beendet die aktuelle Session und loggt den Benutzer aus. $mainframe->setPageTitle (string $title) Setzt den Seitentitel auf den angegebenen Wert. $title. Der neue Seitentitel.

31 2.2.5Parameter & Benutzerdaten MethodeBeschreibung $params->def ( string $key, string $value) Setzt einen Wert, der noch nicht registriert ist. $key. Name des neuen Parameters. $value. Wert, der gesetzt werden soll. $params->get ( string $key, [mixed $default]) Liefert den Wert eines bestimmten Parameters zurück. $key. Name des Parameters. $default. Standardwert, falls der Parameter nicht gefunden wird. $params->set ( string $key, string $value) Setzt den Wert eines bestimmten Parameters. $key. Name des Parameters. $value. Wert, der gesetzt werden soll. NameInhalt $my->idDie ID des Benutzers. $my->NameDer echte Name des Benutzers. $my->usernameDer Benutzername. $my->usertypeDer Name der Gruppe, zu der der Benutzer gehört.

32 2.2.6HTML-Elemente MethodeBeschreibung $params Ein Objekt vom Typ mosParameter. Hier können verschiedene Daten übergeben werden, die normiert sind. So gibt popup an, ob es sich um ein Popup- Fenster handelt. Die mosHTML-Elemente passen Ihr Verhalten entsprechend an. $enable Wenn true, wird das Element ausgegeben. Standard ist false. mosHTML::BackButton ( object &$params, [boolean $enable] ) Gibt einen Zurück-Button aus, wenn in $params der Wert back_button auf true und popup auf false gesetzt ist. mosHTML:: CloseButton ( object &$params, [boolean $enable] ) Gibt einen Schließen-Button aus, wenn in $params der Wert popup auf true gesetzt ist. mosHTML:: monthSelectList ( string $tag_name, string $tag_attribs, mixed $selected ) Gibt eine Auswahlliste mit Monatsnamen aus. $tag_name. Der Name des erzeugten -Tags. $tag_attribs. Weitere Attribute wie beispielsweise die CSS-Klasse. $selected. Index des ausgewählten Monats. Im einstelligen Bereich mit führender 0, also z. B. 02. mosHTML:: PrintIcon ( int &$row, object &$params, boolean $enable, string $link ) Gibt ein Drucksymbol aus. $row. Index der Zeile, falls das Symbol in Listen dargestellt wird. $params. Ist der Wert print auf false gesetzt, wird kein Symbol angezeigt. $link. Die URL des Dokuments, das gedruckt werden soll. mosHTML:: yesnoRadioList ( string $tag_name, string $tag_attribs, mixed $selected, [string $yes], [string $no] ) Gibt Radiobuttons für »Ja« und »Nein« aus. $tag_name. Der Name der erzeugten Radiobuttons. $tag_attribs. Weitere Attribute wie beispielsweise die CSS-Klasse. $selected. Bestimmt, was vorausgewählt wird. 0 steht für »no«. $yes, $no. Beschriftung der einzelnen Optionen.

33 2.2.7Toolbar MethodeBeschreibung $task Der Name der Funktion, die ausgeführt werden soll $alt Der Text für das alt-Attribut des Bildes. $mosMenuBar->addNew ( string $task, [string $alt]) Gibt das Neu-Symbol aus. $mosMenuBar->back ( [mixed $alt], [mixed $href]) Gibt das Zurück-Symbol aus. E $href. Zieladresse beim Zurückspringen. $mosMenuBar->cancel ( string $task, [string $alt]) Gibt das Abbrechen-Symbol aus. $mosMenuBar->deleteList( [string $msg], string $task, [string $alt]) Gibt das Löschen-Symbol aus. E $msg. Meldung, die ausgegeben wird, wenn das Löschen erfolgreich war. $mosMenuBar->editList ( string $task, [string $alt]) Gibt das Bearbeiten-Symbol aus. $mosMenuBar->endTable ()Beendet die Toolbar. $mosMenuBar->publish ( string $task, [string $alt]) Gibt das Veröffentlichen-Symbol aus. $mosMenuBar->save ( string $task, [string $alt]) Gibt das Speichern-Symbol aus. $mosMenuBar->startTable ()Beginnt die Toolbar. $mosMenuBar->Trash ( string $task, [string $alt]) Gibt das Papierkorb-Symbol aus. $mosMenuBar->unpublish ( string $task, [string $alt]) Gibt das Verstecken-Symbol aus.

34 Kapitel 3Entwickeln Agile Methode Rules Die Projekte

35 3.1Agiles Manifest Individuen und Interaktionen gelten mehr als Prozesse und Tools. Zwar sind wohldefinierte Entwicklungsprozesse und hochentwickelte Entwicklungswerkzeuge wichtig, wesentlich wichtiger ist jedoch die Qualifikation der Mitarbeitenden und eine effiziente Kommunikation zwischen ihnen. Funktionierende Programme gelten mehr als ausführliche Dokumentation. Gut geschriebene Dokumentation kann zwar hilfreich sein, das eigentliche Ziel der Entwicklung ist jedoch die fertige Software. Außerdem ist eine intuitiv verständliche Software hilfreicher als umfangreiche Dokumentation, die sowieso niemand liest. Die stetige Zusammenarbeit mit dem Kunden steht über Verträgen. Ein Vertrag ist normalerweise die Grundlage für die Zusammenarbeit. Was der Kunde aber wirklich will, kann nur in ständiger Kommunikation mit ihm ermittelt werden. Der Mut und die Offenheit für Änderungen steht über dem Befolgen eines festgelegten Plans. Im Verlauf eines Entwicklungsprojektes ändern sich viele Anforderungen und Randbedingungen ebenso wie das Verständnis des Problemfeldes. Das Team muss darauf schnell reagieren können.

36 3.1Agile Prinzipien Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity - the art of maximizing the amount of work not done - is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

37 3.2Rules Coding Style Documentation Rules Architectural rules

38 3.2.1Coding style Pear help.joomla.org/content/view/826/60 pear.php.net/manual/en/standards.php... aus dem style guide: Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Comments Including Code PHP Code Tags Header Comment Blocks Using CVS Naming Conventions File Formats E_STRICT-compatible code Error Handling Guidelines

39 3.2.2Documentation 

40 3.2.3Architectur MVC: Model, View, Controller (see: Joomla! (Addison-Wesley) 7.1.2)

41 3.2.4Security

42 3.2.4IDE Eclipse + PHP Development Tools (PDT)  + xdebug ( included in PDT)   + SVN Extention  + firebug + firePHP + webDevelopper + tidyHTML Tutorial: eclipse.html... can only be run in actual JAVE runtime environment

43 3.3Die Projekte Development Support and Quality PHP, Apache, MySQL, Eclipse, SVN, PEAR, Documentation Integration (Downward compatibility), Optimization, Test, New Style CI, Design, Templates YAML, FH Kompakt-style, templates, css Content Migration -> 1.5  Content  Downward compatibility (Joomla 1.0.x) GiessenStaff: statische Liste, Bildpreview -> 1.5. GiessenList Plugin: Thesis-list, -> 1.5 GiessenDocman GiessenCatWheezle: integrate and migrate -> 1.5 GiessenEvent News as dynamic content, RSS, Calender (Plugin) (substituting GiessenNews) GiessenSched Integration, Download, giessen_sso, mod_raumbelegung, GiessenGrabber -> 1.5, GiessenJustNews: Teaser mit Bild, Bild, Standardform als dynamischer Content


Herunterladen ppt "Agenda Überblick über Joomla Einführung Demos Joomla erweitern modules, components, mambots Die Joomla 1.0.x API Entwickeln... und los (ab 8.9.) Woche."

Ähnliche Präsentationen


Google-Anzeigen