Modify

Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#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
Keywords: Cc:
Blocked By: Blocking:

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 by Gerhard Waldemair, 5 years ago

Milestone: modified-shop-2.0.6.0

comment:2 by Gerhard Waldemair, 5 years ago

Resolution: fixed
Status: newclosed

In 13398:

fix #1977 - optimize xtc_get_categories() and xtc_get_subcategories()

comment:3 by Gerhard Waldemair, 5 years ago

In 13399:

fix #1977 - optimize xtc_get_categories() and xtc_get_subcategories()

comment:4 by Torsten Riemer, 5 years ago

Summary: xtc_get_categories() und xtc_get_subcategories()xtc_get_categories() und xtc_get_subcategories() optimieren

Modify Ticket

Action
as closed The owner will remain somebody.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.