#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 , 5 years ago
| Milestone: | → modified-shop-2.0.6.0 |
|---|
comment:2 by , 5 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
comment:4 by , 5 years ago
| Summary: | xtc_get_categories() und xtc_get_subcategories() → xtc_get_categories() und xtc_get_subcategories() optimieren |
|---|

In 13398: