vielen Dank für den Hinweis. Ich nutze PSPad, den ich eigentlich als "vernünftigen" Editor ansehe, aber trotzdem stand der Zeichensatz auf "ANSI". Mit UTF8 geht es natürlich auch mit Umlauten ;-). Da muss ich in Zukunft mehr drauf achten. Ich bitte sehr um Kommentare, genau deshalb mache ich das hier auch. Wenn keine kommen, mache ich "naiv" weiter...Also, bitte keine Zurückhaltung. Zum Download: In der Tat wird es langsam sehr viel, und es ist schwer nachzuvollziehen. Das hatte ich mir auch anders vorgestellt. Ich denke ich werde also zukünftig den aktuellen Stand des Codes in der Tat zum Download bereitstellen. Danke für die Anregung. <strong>Tagebuch</strong> <strong>einer</strong> <strong>Extension</strong>-<strong>Entwicklung</strong> bis 104.odt Seite 48 von 121
Schritt 6: Von Callbacks und Subpaletten Nachdem auch das englische Sprachfile fertig ist, geht es nun an die letzte fehlende Funktionalität der Backend- Maske. Zunächst gibt es aber noch einige Detailkorrekturen. Da MySQL keinen "Boolean"-Datentyp bietet, hatte ich die Felder, die nur true/false sein können, als int(1) angelegt, mit den möglichen Werten 0/1. Das klappt auch prinzipiell, die Stati der Checkboxen werden gespeichert und wieder aus der Datenbank ausgelesen, aber ein Problem zeigt sich, wenn man nach so einem Feld filtern will: Ich will nach dem "aktiv"-Feld filtern können. Häufig sind die die "aktiven" Turnierpaare von Interesse, die nicht mehr aktiven verstopfen aber die Liste. Wählt man dieses Feld nun als Filter-Feld aus, werden in der DropDown-Liste als Filtermöglichkeiten aber nur "Ja" und nochmals "Ja" angezeigt. Das Filtern klappt damit auch, bei dem einen "Ja" werden nur die aktiven Paare angezeigt, beim anderen "Ja" die inaktiven. Aber das ist natürlich nicht so gewollt. Durch Abschauen bei anderen <strong>Extension</strong>s bin ich darauf gekommen, die Checkbox-Felder durch "char(1)" statt "int(1)" abzubilden. Das klappt genau so gut, und auch das Filtern funktioniert mit "Ja" und "Nein". Alle int(1)- Felder wurden entsprechend in char(1) verändert. Nach dem Anpassen der database.sql muss natürlich das Install-Tool ausgeführt werden, um die Änderungen in der Datenbank durchzuführen. Die database.sql sieht jetzt so aus: Code: CREATE TABLE `tl_gw_turnierpaare` ( `id` int(10) unsigned NOT NULL auto_increment, `sorting` int(10) unsigned NOT NULL default '0', `tstamp` int(10) unsigned NOT NULL default '0', `partnernachname` varchar(64) NOT NULL default '', `partnervorname` varchar(64) NULL default NULL, `partnerinnachname` varchar(64) NULL default NULL, `partnerinvorname` varchar(64) NULL default NULL, `startgruppe` varchar(32) NOT NULL default '', `startklasselatein` varchar(12) NULL default NULL, `startklassestandard` varchar(12) NULL default NULL, `aktiv` char(1) NOT NULL default '', `aktivseit` int(4) NULL default NULL, `aktivbis` int(4) NULL default NULL, `resetpassword` char(1) NULL default '', `password` varchar(64) NULL default NULL, `bild` varchar(255) NULL default NULL, `anschrift` text NULL, `zeigeanschrift` char(1) NOT NULL default '', `telefon` varchar(32) NULL default NULL, `zeigetelefon` char(1) NOT NULL default '', `fax` varchar(32) NULL default NULL, `zeigefax` char(1) NOT NULL default '', `mobil` varchar(32) NULL default NULL, `zeigemobil` char(1) NOT NULL default '', `email` varchar(128) NULL default NULL, `zeigeemail` char(1) NOT NULL default '', `homepage` varchar(128) NULL default NULL, `zeigehomepage` char(1) NOT NULL default '', `beschreibung` text NULL, PRIMARY KEY (`id`), ) ENGINE=MyISAM DEFAULT CHARSET=utf8; Wer aufgepasst hat, dem ist auch noch ein neues Feld aufgefallen: Code: <strong>Tagebuch</strong> <strong>einer</strong> <strong>Extension</strong>-<strong>Entwicklung</strong> bis 104.odt Seite 49 von 121
- Seite 1 und 2: Hinweis: diese Datei listet die Bei
- Seite 3 und 4: dl1ely Tagebuch einer Extension-Ent
- Seite 5 und 6: Für beide Module jeweils eine Deta
- Seite 7 und 8: Wenn ich mir den Source der efg-Ext
- Seite 9 und 10: meiner geplanten neuen Struktur anz
- Seite 11 und 12: Dann "speichern und schließen", un
- Seite 13 und 14: CREATE TABLE `tl_gw_turnierpaare` (
- Seite 15 und 16: Auch wenn ich diese Vorschläge bes
- Seite 17 und 18: `feld` text NULL, eingetragen, und
- Seite 19 und 20: ) ENGINE=MyISAM DEFAULT CHARSET=utf
- Seite 21 und 22: e'), 'fields' => array('partnernach
- Seite 23 und 24: Fields 'fields' => array ( '' => ar
- Seite 25 und 26: ( // Config 'config' => array ( 'da
- Seite 27 und 28: ); Schritt 4b: Verwirrung im DCA-La
- Seite 29 und 30: 'sorting' => true, 'filter' => true
- Seite 31 und 32: Fields 'fields' => array ( 'partner
- Seite 33 und 34: Ergebnis: Weiter geht, jetzt folgen
- Seite 35 und 36: Und nochmal die gesamte Paletten-De
- Seite 37 und 38: Und schließlich habe ich den Forma
- Seite 39 und 40: 32, 'rgxp' => 'phone') ), 'zeigefax
- Seite 41 und 42: "Beschreibung" ist eine Textarea, d
- Seite 43 und 44: Das Verhalten scheint aber ein ande
- Seite 45 und 46: $GLOBALS['TL_LANG']['tl_gw_turnierp
- Seite 47: deerwood Umlaute müssen HTML-übli
- Seite 51 und 52: Dies bedeutet, dass das Feld "passw
- Seite 53 und 54: public function password_load_callb
- Seite 55 und 56: Schritt 7: Endlich Frontend! nach s
- Seite 57 und 58: Aktiv seit Aktiv bis
- Seite 59 und 60: Hier sehen wir unsere Frontendmodul
- Seite 61 und 62: Schritt 8: Parameter fürs Modul Di
- Seite 63 und 64: Leider schaffe ich es in diesem Sch
- Seite 65 und 66: Module füge in in eine Seite als I
- Seite 67 und 68: Aktiv: - Tel.
- Seite 69 und 70: } if($objPaar->zeigefax == '1') { $
- Seite 71 und 72: Compiles the data for the turnierpa
- Seite 73 und 74: Schritt 10: Etwas Feinschliff Einig
- Seite 75 und 76: eingebunden wird. Hier sieht man au
- Seite 77 und 78: ->limit(1) ->execute($this->Input->
- Seite 79 und 80: Schritt 11: Die zweite Tabelle Ich
- Seite 81 und 82: 'label' => array ( 'fields' => arra
- Seite 83 und 84: PHP-Code: 'turnierort' => array ( '
- Seite 85 und 86: Gut, die Tabellenheader sehen noch
- Seite 87 und 88: Und in der Übersichtstabelle dann
- Seite 89 und 90: #0 mein_pfad\typolight\main.php(183
- Seite 91 und 92: OK, hier Kommando zurück. Der von
- Seite 93 und 94: Zitat von TLight Vielen Dank für d
- Seite 95 und 96: Schritt 12: Callback-Magie Ja, nach
- Seite 97 und 98: $GLOBALS['TL_LANG']['tl_gw_meldunge
- Seite 99 und 100:
'attributes' => 'onclick="Backend.g
- Seite 101 und 102:
w50') 'sorting' => true, 'flag' =>
- Seite 103 und 104:
} } } } $couples[$k] =$v; return $c
- Seite 105 und 106:
Sortieren wir nach den Paaren, dann
- Seite 107 und 108:
also bei mir sieht es nun so aus: P
- Seite 109 und 110:
Schritt 13: Frontendmodul Meldelist
- Seite 111 und 112:
Nun das Frontendmodul /system/modul
- Seite 113 und 114:
$limit = " LIMIT ".($pagesize*$page
- Seite 115 und 116:
Name Ort Turnier Turnierart Platz P
- Seite 117 und 118:
So, das soll es erstmal gewesen sei
- Seite 119 und 120:
} } $arrMeldungen = $objMeldungen->
- Seite 121:
config.php - /system/modules/gw_tur