Posted in
Joomla! Specials -
Legacy entfernen
Quelle (Artikel von Andrew Eddie, in Englisch): www.theartofjoomla.com
Übersetzung: Joomla! Schweiz
Willkommen zum dritten Teil meiner Serie über die Konvertierung einer J1.0.x Komponente zu einer J1.5.x Komponente. Im letzten Teil haben wir einen Blick auf die Konfiguration und im speziellen auf JRequest geworfen. Nun wollen wir die Administration ins Auge fassen und wie wir die Modifikation dort ausführen.
Die Toolbar (Werkzeugleiste)
Wir sehen nun den Fehler, dass die Klasse MosMenueBar nicht gefunden wurde in der Datei toolbar.letterman.html.php.
Dies ist einfach zu beheben, wir müssen nur den Namen auf JToolBarHelper ändern.
Wir können das alte mosMenuBar::startTable() und mosMenuBar::endTable(); methods löschen – die brauchen wir nicht mehr.
Etwas Neues können wir einfügen als Titel für die Seite mit der Methode
JToolBarHelper::title . Wir geben folgende Zeile ein für jede Werkzeugleiste
Die Standart Werkzeugleiste Methode ist nun folgendermassen:
{
JToolBarHelper::title( 'LetterMan', 'logo' );
JtoolBarHelper::publishList();
JtoolBarHelper::unpublishList();
JToolBarHelper::addNew( 'new', 'New' );
JToolBarHelper::addNew( 'compose', 'Compose Newsletter');
JToolBarHelper::editList( 'edit', 'Edit' );
JToolBarHelper::deleteList( '', 'remove', 'Delete');
}
Distanz und Trennungen werden eigentlich nicht mehr gebraucht zur besseren Ansicht.
Die können aus der Werkzeugleiste entfernt werden.
Aktualisieren . . . und . . . "Uhps", endlich ist die Admin-Seite wieder da, jedoch fehlerhaft, aber wenigstens ein Anfang. Etwas das man nicht mehr machen kann, ist das manuelle Einsetzen von Tabellenzellen.
Manche Entwickler würden wohl etwa so Schreiben um individuelle Werkzeugleisten Tasten einzubauen:
<a class="toolbar" href="/<?php echo $href;?>"
onmouseout="MM_swapImgRestore();"
onmouseover="MM_swapImage('users','','<?php echo $mosConfig_live_site."/components/com_letterman/images/user_f2.png" ?>',1);">
<img name="users" src="/<?php echo $mosConfig_live_site."/components/com_letterman/images/user.png" ?>" alt="assignUsers" border="0" align="middle" />
<?php echo LM_ASSIGN_USERS; ?></a>
</td>
"LetterMan" hat mehrere von denen, aber die müssen nun mit folgender, mehr kompakten Kodierung ersetzt werden:
Um personalisierte Tasten, basierend auf "user.png" einzufügen werde ich nun ein neues Verzeichnis erstellen unter dem Komponenten-Verzeichnis:
../media
..../css
......default.css
..../images
......logo.png
......user.png
Das Standart.css enthält folgende Ansichtsinformationen:
background: url(../images/logo.png) no-repeat left;}
.icon-32-user {
background: url(../images/user.png) no-repeat left;}.icon-32-validate {
background: url(../images/validate.gif) no-repeat left;}
Der icon-48-logo wird verwendet im Werkzeugleisten-Titel (also das zweite Argument von 'logo'). Die zwei icon-32 werden von der Werkzeugleiste verwendet.
Solange man die Dateinamen verbindet (ohne Datei-Typ) mit der Erweiterung (Suffix) vom Klassenamen im Darstellungsblatt (stylesheet), sollte alles schön zusammen verbinden.
Um dieses Darstellungsblatt in die Ausgabe der Komponente zu schieben, brauchen wir eine Hilfsmethode im JHTML class mit dem namen "stylesheet". Ich habe das oben in admin.letterman.php eingefügt.
Übersetzungen
Übersetzungen werden nicht mehr durch PHP-Konstanten gemacht, darum sehen wir einen Berg von undefinierten Konstanten-Fehlern. Wir haben Hilfsklassen mit dem Namen JText mit mehreren statischen Methoden um Übersetzungen zu unterstützen wie:
_ (Unterstrich, basierend auf der Abkürzung für „gettext“) und „sprintf“. JText erlaubt auch mehr natürliche Ketten, inklusiv Distanzen; das ist besonders hilfsreich für kurze Sätze. Für längere Sätze kann man immer noch Abkürzungen gebrauchen, welche zu einer ganzen Erklärung führen.
Wir benutzen JText folgendermassen:
Der Vorteil dieser Methode ist, dass es ein "debug mode" in der globalen Konfiguration gibt.
Wenn man das "Debug Language" einschaltet, werden Wörter und Sätze in spezielle Zeichen umgewandelt um ersichtlich zu machen, ob die Befehlskette übersetzt wurde oder nicht.
Das braucht nun ein bisschen Zeit, aber der nächste Schritt ist Suchen und Ersetzen von allen Konstanten mit JText inklusive das Benutzen von natürlicheren Sätzen (ausgenommen sehr lange Beschreibungen oder <Tooltip>)
Zum Beispiel in der Werkzeugleiste ersetze _E_SAVE zu 'Save', _E_CANCEL zu 'Cancel', etc.
Im „ admin.letterman.html.php“ würde man wechseln <?php echo _SEARCH_TITLE;?> zu <?php echo Jtext::_( 'Search' );?>, etc.
Wie ich vorher erwähnt habe, einige Zeilen sind sehr lang. In den "LetterMan" Sprachdateien habe ich einige gefunden:
Was wir nun damit tun können, ist das Symbol benutzen welches der Autor gebraucht hat, aber packen es in ein JText:
Der letzte Schritt nun ist das Löschen der Dateien mit den Sprach-Konstanten und Ersetzen mit den Dateien im neuen Format.
Wir müssen folgende Daten kreieren:
Wie Sie nun feststellen können, ist das eine ini-Datei. Anders als mit PHP-Konstanten benutzen wir Zeichenfolgen wie zum Beispiel:
Die Zeichen müssen in GROSSSCHRIFT sein, ohne Zeilenschaltungen.
So viel für diesen Teil in der Serie.
Beim nächsten Teil geht es an das Aufräumen der Präsentationsseiten in der Administration (Backend)



0 Kommentare