Hallo, vielleicht könnt Ihr mir helfen.
Ich krieg nur eine Sortierung nach string hin hätte aber gern auch eine INT Zahlensortierung.
Ich will die Produkte im Produkt listing sortieren nach Menge, also in der Datei
template/module/includes/product_listing_include.html
aus
{foreach name=aussen item=module_data from=$module_content}
mach ich
{foreach name=aussen item=module_data from=$module_content|@sortby:PRODUCTS_QUANTITY}
und den modifier in Datei template/smarty/modifier.sortby.php
<?phpfunction array_sort_by_fields
(&$data, $sortby){ static
$sort_funcs = array(); if (empty($sort_funcs[$sortby])) { $code = "\$c=0;"; foreach (explode(',', $sortby) as $key) { $d = '1'; if (substr($key, 0, 1) == '-') { $d = '-1'; $key = substr($key, 1); } if (substr($key, 0, 1) == '#') { $key = substr($key, 1); $code .= "if ( ( \$c = (\$a['$key'] - \$b['$key'])) != 0 ) return $d * \$c;\n"; } else { $code .= "if ( (\$c = strcasecmp(\$a['$key'],\$b['$key'])) != 0 ) return $d * \$c;\n"; } } $code .= 'return $c;'; $sort_func = $sort_funcs[$sortby] = create_function('$a, $b', $code); } else { $sort_func = $sort_funcs[$sortby]; } uasort ($data, $sort_func); } #
# Modifier: sortby - allows arrays of named arrays to be sorted by a given field
#
function smarty_modifier_sortby
($arrData,$sortfields) { array_sort_by_fields
($arrData,$sortfields); return $arrData;}?> Die Zahlen werden aber als String sortiert nicht als Zahl ?
Linkback: https://www.modified-shop.org/forum/index.php?topic=37310.0