[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
rex_list - setColumnSortable - Variable mitnehmen? - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
dpf_dd
Beiträge: 151
Registriert: 20. Dez 2007, 14:07

rex_list - setColumnSortable - Variable mitnehmen?

29. Apr 2016, 08:25

Guten Morgen an alle,

ich habe ein kleines freitägliches Problem zu lösen...

Ich habe in einem eigenen AddOn eine rex_list-Ausgabe mit sortierbaren Spaltenköpfen:

Code: Alles auswählen

$list->setColumnSortable('Spalte 1');
Wie bekomme ich aber nun eine Variable in den Spaltenkopf-Link? Der Link zum sortieren der Ausgabe muss noch eine Variable durchschleifen:

Code: Alles auswählen

#Aktueller Link
'http://www.***.de/redaxo/index.php?list=***&page=***&subpage=***&start=0&sort=***&sorttype=asc';
#Gewünschter Link Link
'http://www.***.de/redaxo/index.php?list=***&page=***&subpage=***&start=0&sort=***&sorttype=asc&variable=wert';
Ich sehe eigentlich nur den Weg, die Core-Funktion "setColumnSortable" zu hacken - aber das will ich eigentlich nicht. Kennt jemand einen anderen Weg?

Vielen Dank und
MfG, dpf_dd

dpf_dd
Beiträge: 151
Registriert: 20. Dez 2007, 14:07

Re: rex_list - setColumnSortable - Variable mitnehmen?

2. Mai 2016, 12:33

OK, also in der Theorie besteht das Problem immernoch.
In der Praxis habe ich das Problem aber umgangen, indem ich meine Variable als Session-Variable durchschleife. Nicht sehr sauber, aber das Ergebnis zählt :mrgreen:

Code: Alles auswählen

session_start();
### Tabellen-Name des gewählten Formulars abholen
$id_formular = rex_request('ID_FORMULAR', 'int');
### Wenn Formular-ID ankommt => als SESSION speichern
if($id_formular != '')
{
    $_SESSION["id_formular"] = $id_formular;
}
### Wenn keine Formular-ID ankommt => aus SESSION lesen
else
{
    $id_formular = $_SESSION["id_formular"];
}
Funktionsweise sollte einleuchten... Die rex_list wird IMMER mit übergebener ID geladen, sodass die SESSION-Variable geschrieben wird. Die Spaltenköpfe sind sortierbar, übergeben aber die Variable nicht. Auf Klick des Spaltenkopfes lädt dann die Page neu und die Variable wird mangels Übergabe der SORT-Funktion aus der Session geholt. Funktioniert prima :D

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

Re: rex_list - setColumnSortable - Variable mitnehmen?

2. Mai 2016, 19:47

Woher kommt die variable die du in den link einfügen willst? Ist sie teil des db results oder willst du von außen einen wert einstreuen?

Mit setColumnParams() kannst du die links einstellen, siehe https://github.com/redaxo/redaxo4/blob/ ... c.php#L513

dpf_dd
Beiträge: 151
Registriert: 20. Dez 2007, 14:07

Re: rex_list - setColumnSortable - Variable mitnehmen?

9. Mai 2016, 10:53

Hallo Markus,

ich brauche das, weil ich bei der anzuzeigenden Rex-List einen weiteren Wert in die WHERE-Abfrage der Rex-List-Query einfügen muss.
Die Idee, mir den Link selbst mit setColumnsParams() zusammenzubauen hatte ich auch schon, aber bevor ich mich da stundenlang durch die Befehlsreferenz kämpfe um die ganzen Funktionen nachzubauen (wie z.B. die Sortierungsvariable "sort") habe ich dann die o.g. einfache Lösung bevorzugt...
Aber klar, in der Theorie wäre das die sauberere Lösung. Aber wie so oft: quick & dirty gewinnt :mrgreen:

Zurück zu „Allgemeines [R4]“