Skip to content
This repository has been archived by the owner on Nov 3, 2023. It is now read-only.

Auflistung mit erweiterten Abragen braucht HTML-Decode #409

Closed
markusmilkereit opened this issue Nov 29, 2011 · 6 comments
Closed

Auflistung mit erweiterten Abragen braucht HTML-Decode #409

markusmilkereit opened this issue Nov 29, 2011 · 6 comments
Assignees
Labels
Milestone

Comments

@markusmilkereit
Copy link

Ich habe gerade probiert im "list_fields" Feld bei der Auflistung einen nested select zu nutzen. Inhalt war:

tl_news_archive.id, tl_news_archive.title, (SELECT COUNT(*) FROM tl_news WHERE pid = tl_news_archive.id) as count_news

Sinn ist klar, ähnliche Einsatzmöglichkeiten fallen mir gleich dutzende ein - ich bin nur gerade erst auf die Idee mit dem nested select gekommen ;)

Problem: die Klammern werden in HTML-Entities decodiert. Daran ändert weder ein "allowHTML" noch ein "decodeEntities". Resultierender Code ist dann:

tl_news_archive.id, tl_news_archive.title, (SELECT COUNT(*) FROM tl_news WHERE pid = tl_news_archive.id) as count_news

Entweder das ist ein Bug, dass weder "allowHTML" noch "decodeEntities" wirken, oder es würde folgendes Abhilfe schaffen:

ModuleListing.php ~ 147
$strQuery = "SELECT " . html_entity_decode($this->list_fields) . " FROM " . $this->list_table;

--- Originally created on January 12th, 2009, at 02:05am (ID 409)

@ghost ghost assigned leofeyer Nov 29, 2011
@leofeyer
Copy link
Member

Funktioniert denn die Unterabfrage nach dem Patch bei Dir? Eigentlich dürfte das gar nicht gehen, denn die Programmlogik erwartet ja Felder aus nur einer Tabelle. Was passiert mit einem solchen Feld in der Detailansicht oder bei der Suche/Sortierung?

--- Originally created on January 12th, 2009, at 09:58am

@markusmilkereit
Copy link
Author

Die Unterabfrage funktioniert, das komplette Select wird ja (in TL wie von MySQL) als normales Feld behandelt - ich habe es dann auch mit dem selbst vergebenen Namen count_news (und dem query ...) in der Auflistung. Fertig sortieren im Backend geht, suchen und sortieren im Frontend nicht. Mit ein bisschen mehr Zeit könnte ich sicher auch da laufende Versionen mit wenig Änderungen erstellen, ich habe auch ein Auflistung mit Joins für mehrere Tabellen erstellt mit fast denselben Problemen.
Auf der Plus-Seite: wer die Auflistung nicht in der nativen Tabellenform und ohne Sortierung und Suche nutzt kann mit Subquerys noch deutlich mehr Potiential aus der Auflistung ziehen, mit dieser Mini-Änderung.

--- Originally created on January 12th, 2009, at 02:00pm

@leofeyer
Copy link
Member

Also gut, ich übernehme die Änderung erstmal. Wollen wir hoffen, dass dann nicht gleich die Tickets a la "die Sortierung geht bei Auflistungen mit Subquery nicht" kommen :)

--- Originally created on January 12th, 2009, at 07:33pm

@markusmilkereit
Copy link
Author

Ich denke wer fit genug ist Subquerys in der Auflistung einzusetzen wird es auch gebacken bekommen wenn dabei steht "suchen und sortieren nicht möglich".

--- Originally created on January 12th, 2009, at 07:36pm

@leofeyer
Copy link
Member

Datei system/modules/listing/dca/tl_module.php, Zeile 52

'eval' => array('mandatory'=>true, 'decodeEntities'=>true, 'maxlength'=>255)

Die decodeEntities-Anweisung erlaubt die erweiterten Abfragen.

--- Originally created on January 19th, 2009, at 09:10pm

@leofeyer
Copy link
Member

--- Originally completed on January 19th, 2009, at 09:10pm

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants