Hallo!
Ich bin gerade dabei, eine Komponente für das Joomla-CMS anzupassen. Und zwar wird dort eine Tabelle mit Mitgliedern ausgegeben, die sich für eine Veranstaltung angemeldet haben. Die einzelnen Spalten (d.h. mit Name, Adresse Telefon etc.) sollen nun aber sortierbar sein. Und das kriege ich überhaupt nicht gebacken. Vielleicht habt ihr da einen Tipp für mich. Ich poste mal die beiden Codeausschnitte (eine Datei ist für die Funktion an sich, die andere für die HTML-Formatierung verantwortlich)
function sem_g029($uid) {
$database = &JFactory::getDBO();
$config = &JComponentHelper::getParams('com_seminar');
$kurs = new mosseminar( $database );
$kurs->load( $uid );
$database->setQuery( "SELECT a.*, cc.*, a.id AS sid, a.name AS aname, a.email AS aemail FROM #__sembookings AS a LEFT JOIN #__users AS cc ON cc.id = a.userid WHERE a.semid = '$kurs->id' ORDER BY a.id");
$rows = $database->loadObjectList();
HTML_seminar::sem_g029($kurs,$rows,$uid);
}
Und das hier ist für die HTML-Ausgabe:
function sem_g029($kurs,$rows,$uid) {
global $my;
$config = &JComponentHelper::getParams('com_seminar');
JHTML::_('behavior.modal');
// ---------------------------------------
// Ueberschrift
// ---------------------------------------
$html = sem_f026(2)."\n<table width=\"100%\"><tr><th width=\"90%\" style=\"text-align:left\">".JTEXT::_('SEM_0048').": ".$kurs->title."</th>";
$html .= "<td style=\"text-align: right; white-space: nowrap\">".sem_f038(2,$kurs->id).sem_f038(4,$kurs->id).sem_f038(5,$kurs->id)."</td></tr></table>";
// ---------------------------------------
// Ausgabe der Kurstabelle
// ---------------------------------------
$html .= "\n<table class=\"adminlist\"><thead>";
$temp3 = "<input type=\"checkbox\" name=\"toggle\" value=\"\" onclick=\"checkAll(".count( $rows ).");\" />";
$temp = array($temp3,JTEXT::_('SEM_0059'),JTEXT::_('SEM_2023'),JTEXT::_('SEM_0097'),JTEXT::_('SEM_0052'),JTEXT::_('SEM_0032'));
if( $kurs->fees > 0) {
$temp[] = JTEXT::_('SEM_0065');
}
array_push($temp,JTEXT::_('SEM_2024'),JTEXT::_('SEM_2025'),JTEXT::_('SEM_2026'),JTEXT::_('SEM_2027'),JTEXT::_('SEM_2028'),JTEXT::_('SEM_2029'),JTEXT::_('SEM_2030'),JTEXT::_('SEM_0069'));
$html .= "\n".sem_f024( "th", "", "", $temp, "");
$html .= "</thead><tbody>";
// Schleife fuer die einzelnen Kurse
$n = count($rows);
if( $n > 0 ) {
$k = 0;
$neudatum = sem_f046();
$anzahl = 0;
$i = 0;
foreach ($rows as $row) {
if($row->userid==0) {
$row->name = $row->aname;
$row->email = $row->aemail;
}
$anzahl = $anzahl + $row->nrbooked;
$bild = "2502.png";
$altbild = JTEXT::_('SEM_0030');
if( $anzahl > $kurs->maxpupil ) {
if( $kurs->stopbooking < 1 ) {
$bild = "2501.png";
$altbild = JTEXT::_('SEM_0025');
} else {
$bild = "2500.png";
$altbild = JTEXT::_('SEM_0029');
}
}
$temp = array();
$temp[] = "<input type=\"checkbox\" id=\"cb".$i."\" name=\"cid[]\" value=\"".$row->sid."\" onclick=\"isChecked(this.checked);\" />";
$temp[] = $row->name;
$temp[] = $row->zusatz1;
$temp[] = $row->id;
$temp[] = "<a href=\"mailto:".$row->email."\">".$row->email."</a>";
$temp[] = sem_f047($row->bookingdate,"kurz")." ".sem_f047($row->bookingdate,"zeit");
$tempa = array("c","","","c","c");
if( $kurs->fees > 0) {
$htxt = " ";
if($anzahl<=$kurs->maxpupil) {
$paidbild = "2200.png";
$paidtitel = JTEXT::_('SEM_0064');
if( $row->paid == 1) {
$paidbild = "2201.png";
$paidtitel = JTEXT::_('SEM_0063');
}
$htxt = "<a title=\"".$paidtitel."\" href=\"javascript: void(0)\;\" onclick=\"return listItemTask('cb".$i."','paid')\"><img src=\"".sem_f006().$paidbild."\" border=\"0\" alt=\"".JTEXT::_('SEM_0065')."\"></a>";
}
$temp[] = $htxt;
$tempa[] = "c";
}
$temp[] = $row->zusatz2;
$temp[] = $row->zusatz3;
$temp[] = $row->zusatz4;
$temp[] = $row->zusatz5;
$temp[] = $row->zusatz6;
$temp[] = $row->zusatz7;
$temp[] = $row->zusatz8;
$tempa[] = "c";
$klasse = "row".$k;
$html .= "\n".sem_f024( "td", $tempa, "", $temp, $klasse);
$k = 1 - $k;
$i++;
}
} else {
$html .= "\n<tr class=\"row0\"><td colspan=\"9\">.".JTEXT::_('SEM_0061')."</td></tr>";
}
$html .= "\n</tbody></table>";
Vielleicht hat ja jemand einen Tipp für mich, wie man das mit JS lösen könnte. Man müsste im Prinzip, jede Spalte bzw. den Spaltenkopf anklicken können, damit der Inhalt dementsprechend sortiert würde.