Joomla 5.1.0 a Joomla 4.4.4 (17 dub 2024)
Dnes byla uvolněna nová verze Joomla 5.1.0, společně s Joomla 4.4.4. Tato verze přináší spoustu nových funkcí, vylepšení v oblasti bezpečnosti a kódu a díky těmto vylepšením i vyšší rychlost.
Vyřešeno řazení dvourozměrného pole
20. srp 2015 19:20 - 20. srp 2015 19:22 #123111
Odpověď od Ernst
Joomla Expert
mezitím jsem si to taky uvědomil a opravil, ale netřídí to jak má, respektive netřídí vůbec
dám si pak var_dump ($result) a není to setříděno
dám si pak var_dump ($result) a není to setříděno
20. srp 2015 20:58 #123113
Odpověď od Ernst
Joomla Expert
Stačí tenhle kousek:?
function cmp_result($a, $b)
{
if ($a->distance == $b->distance) {
return 0;
}
return ($a->distance < $b->distance) ? -1 : 1;
}
protected function _getList($query, $limitstart = 0, $limit = 0)
{
JLoader::register('TableProfile', LoveFactoryApplication::getInstance()->getPath('component_administrator').DS.'tables'.DS.'profile.php');
//var_dump ($query->select) ;
//echo $query->dump();
$this->_db->setQuery($query, $limitstart, $limit);
// var_dump ($this) ;
$result = array_values($this->_db->loadObjectList('user_id', 'TableProfile'));
//var_dump ($this->filterOrder["dist" ] ["column" ]) ;
echo ($result["0"]->distance) ;
usort($result, "cmp_result");
var_dump ($result) ;
return $result;
}
do tabulky results se uloží vásledky hledání dle nějakého pořadí.
Tam kde je to pole v databázi, není problém, ale pokud se jedná o vzdálenost, tak se dovypočte až do této tabulky a musím tu tabulku dle vzdálenosti přetřídit
function cmp_result($a, $b)
{
if ($a->distance == $b->distance) {
return 0;
}
return ($a->distance < $b->distance) ? -1 : 1;
}
protected function _getList($query, $limitstart = 0, $limit = 0)
{
JLoader::register('TableProfile', LoveFactoryApplication::getInstance()->getPath('component_administrator').DS.'tables'.DS.'profile.php');
//var_dump ($query->select) ;
//echo $query->dump();
$this->_db->setQuery($query, $limitstart, $limit);
// var_dump ($this) ;
$result = array_values($this->_db->loadObjectList('user_id', 'TableProfile'));
//var_dump ($this->filterOrder["dist" ] ["column" ]) ;
echo ($result["0"]->distance) ;
usort($result, "cmp_result");
var_dump ($result) ;
return $result;
}
do tabulky results se uloží vásledky hledání dle nějakého pořadí.
Tam kde je to pole v databázi, není problém, ale pokud se jedná o vzdálenost, tak se dovypočte až do této tabulky a musím tu tabulku dle vzdálenosti přetřídit
20. srp 2015 21:03 #123114
Odpověď od Ernst
Joomla Expert
jestli není problém, že ta distance se musí vzít z každého pole a dle toho to třídit
20. srp 2015 21:05 - 20. srp 2015 21:06 #123115
Odpověď od Ernst
Joomla Expert
tady to posílám celý,
tak neposílám, nejde přiložit soubor
tak neposílám, nejde přiložit soubor
20. srp 2015 23:23 #123117
Odpověď od Cony
Moderátor
Ne, v tom problém není, problém je v tom, že kód používáte v třídě a funkci cmp_result máte definovanou jako metodu třídy, ne jako samostatnou funkci.
Nahraďte volání usort takto
Nahraďte volání usort takto
Code:
usort($result, array($this,'cmp_result'));
Poděkovali: Ernst