Hallo Typo3ler
Ich habe bis jetzt mehrere eigene Extension entwickelt. Laufen
soweit auch alle. Ich habe allerdings ein Problem mit der Sortierreihenfolge. Im BE lassen sich alle Datensätze mit den
kleinen grauen Pfeilen hoch und runter schieben. Allerdings funktioniert dies im FE nicht. Ich arbeite mit css styled content und template autoparser. Mein Code im Template zum Einfügen des Inhaltes sieht so aus:
subparts.CONTENT1 = COA
subparts.CONTENT1 {
10 < styles.content.get
}
Funktioniert ja auch, bis auf die Sortierung.
Ich denke ich muß noch was an der class.user_name_pi1.php ändern. Dort wird ja die sql Abfrage durchgeführt.
Bin für jede Hilfe Dankbar.
Hallo,
schau dir doch mal andere extensions an, so zB ve_guestbook..
da kann man auch die einträge via flexforms sortieren und ausgeben!
wenn du das noch einen schritt weiter haben willst (=user kann sortieren), dann musst du das ganze als parameter übergeben, ist dann aber auch keine große sache mehr!
lg georg
Hallo
Ich habe für diese Extension im Kickstarter angegeben manuelle Sortierung. Es existiert in der Extensiontabelle also schon eine Spalte mit dem namen "sorting". Diese Spalte enthält auch schon die richtigen Werte der Reihenfolge, die ich mit den grauen Pfeilen im BE einstellen kann. Wie kann ich nun Typo3 sagen, daß er bitte beim Auslesen der Tabelle nach dieser Spalte sortieren soll.
Wertübergabe usw. sind denke ich nicht nötig, es muß nur die sql Abfrage geändert werden. Nur WO?
Danke Carlos
Hallo,
ich kann dir leider keine Lösung anbieten, die du sofort einbauen kannst, weil hab kein typo zum testen zur Hand, aber soviel ich weiß macht die ext mit_download genau das, was du willst.
schau dir den code dort an!
hoffe trotzdem geholfen zu haben
georg
Mh, versteh ich nicht. Ich habe das Problem bei jeder Extension die ich geschrieben habe. Wie soll mir da eine andere helfen?
Wenn ich das Ergebnis habe werde ich es hier posten.
So Problem vorerst gelöst. Bin mir aber sicher, dass es noch eleganter geht.
Habe in der Extension Datei class.user_<name>_pi1.php an der Stelle:
// Get number of records:
$res = $this->pi_exec_query("user_boxes_boxes",1,"","","","sorting");
list($this->internal["res_count"]) = $GLOBALS['TYPO3_DB']->sql_fetch_row($res);
// Make listing query, pass query to SQL database:
$res = $this->pi_exec_query("user_boxes_boxes","","","","","sorting");
$this->internal["currentTable"] = "user_boxes_boxes";
In der Funktion $this->pi_exec_query den Parameter "sorting" eingeführt(Stelle 6). somit wird nach der manuellen Sortierreihenfolge ausgelesen. Man kann hier auch jeden anderen Tabellennamen angeben der vorhanden ist und nach dem sortiert werden soll.
Carlos
[/i]
Weitere Lösung:
In der gleichen Datei (class.user_<name>_pi1.php):
list($this->internal["orderBy"],$this->internal["descFlag"]) = explode(":",$this->piVars["sort"]);
//diese Zeile einfügen
$this->internal["orderBy"] = "sorting"; //Überschreiben des Standardwertes
$this->internal["results_at_a_time"]=t3lib_div::intInRange($lConf["results_at_a_time"],0,1000,3); // Number of results to show in a listing.
$this->internal["maxPages"]=t3lib_div::intInRange($lConf["maxPages"],0,1000,2);; // The maximum number of "pages" in the browse-box: "Page 1", "Page 2", etc.
$this->internal["searchFieldList"]="box_text";
$this->internal["orderByList"]="sorting"; <--- Das ist zu ändern sonst funzt es nicht
geht genauso wie die obere Lösung.
Hallo,
und warum nicht auf folgende Art im Setup die Ausgabe festlegen?
INHALT = CONTENT
INHALT.table = tt_content
INHALT.select {
orderBy = sorting
}
Viele Grüße
Kai
Hallo,
ich greife das Thema nochmal auf, da mich das ganze aus der Lokaliesierungsansicht interessiert.
Wie wird denn im BE mysql mässig sortiert?
Wenn ich z.B. drei Sprachen habe
default (english)
german und
french
wird ja immer ein Datensatz (DS) nach dem anderen angezeigt.
Übersetze ich jetzt z.B. nach dem 5.ten angelegten DS, den 3. DS -> dann erscheint die Übersetzung genau unter dem "originalen" DS.
Wie macht Typo3 das? Ausschliesslich über l18n_diffsource?
Wie sieht das ORDER BY in diesem Fall aus?
Mein Ziel ist es eine FE Extension zu erstellen, die die Aufgabe der Lokalisierung aus dem BE übernimmt.
Gruß
Info
Hi,
habe das phpmässig jetzt hinbekommen.
Den code dazu (extra kommentiert) findet ihr in der bald online gestellten extension "gp_belocalize_feform".
Wer zuvor schon den nötigen Tipp braucht, einfach hier anfragen oder PM an mich =)
Bin jetzt zu faul, hier den kompletten Lösungsweg zu posten und da kein Feedback zu meiner Frage kam, scheints auch nicht wirklich jemanden zu interessieren.
Gruß
Info
P.S.: "Verschachtelte-For-Schleife" ist das Stichwort dazu!