Opened 3 weeks ago

Closed 3 weeks ago

Last modified 3 weeks 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

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

In 13398:

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

comment:3 Changed 3 weeks ago by GTB

In 13399:

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

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

Add Comment

Modify Ticket

Action
as closed
The resolution will be deleted. Next status will be 'reopened'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.