#1977 closed Aufgabe (fixed)
xtc_get_categories() und xtc_get_subcategories() optimieren
Reported by: | noRiddle | Owned by: | somebody |
---|---|---|---|
Priority: | normal | Milestone: | modified-shop-2.0.6.0 |
Component: | Shop | Version: | 2.0.5.1 |
Description
In der Funktion xtc_get_categories() sollte
AND trim(cd.categories_name) != ''
eingefügt werden. Das wird dort nicht geprüft, in beispielsweise der Search-Box aber schon.
In selbiger Funktion ist diese Zeile überflüssig (warum stipslashes hier ?):
$parent_id = xtc_db_prepare_input($parent_id)
Weiterhin ist die Condition für die Rekursion
if ($categories['categories_id'] != $parent_id) {
nicht sinnig weil sie immer zutrifft. Im Ergebnis kann ja nie eine categories_id sein die gleichzeitig die parent_id ist nach der gefiltert wurde (okay, theoretisch möglich wenn jemand an der DB gefummelt und dort Mist gebaut hat).
Dasselbe gilt für
if ($subcategories['categories_id'] != $parent_id) {
in der Fumktion xtc_get_subcategories().
Evtl. könnte man mittels xtc_has_category_subcategories() abfragen wenn das nicht zu ressourcen-aufwändig ist (ich vermute jedoch es ist besser als eine unnötige Query mit JOINs).
Jedenfalls sollte man die while-Schleife mit dieser Abfrage umgeben:
if(xtc_db_num_rows($categories_query) > 0) { while(... }
Ananalog dazu mit $subcategories_query.
Eigentlich könnte man sogar der Funktion einen weiteren Parameter hinzufügen welcher bestimmt ob überhaupt alle Kats geholt werden sollen und davon die Rekursion abhängig machen. Dann könnte man nämlich für z.B. das Kategoriedropdown in der Search-Box (/templates/DEFAULT_TEMPLATE/source/boxes/search.php) die Funktion xtc_get_categories() nutzen.
Es wäre ebenfalls zu bedenken ob man sich die Rekursion nicht sparen kann wenn man ohnehin alle Kats holen möchte, wie z.B. in der /advanced_search.php, wo bislang die Funktion auch ausschließlich benutzt wird. Ohne Rekursion und Einschränkung auf
WHERE parent_id =
dürfte das Bilden des benötigten Arrays schneller gehen.
Gruß,
noRiddle
Attachments (0)
Change History (4)
comment:1 Changed 3 weeks ago by GTB
- Milestone set to modified-shop-2.0.6.0
comment:2 Changed 3 weeks ago by GTB
- Resolution set to fixed
- Status changed from new to closed
comment:3 Changed 3 weeks ago by GTB
In 13399:
comment:4 Changed 3 weeks ago by Tomcraft
- Summary changed from xtc_get_categories() und xtc_get_subcategories() to xtc_get_categories() und xtc_get_subcategories() optimieren
In 13398: