J'ai un champ répétable très basique dans lequel je permets à l'utilisateur de saisir un champ avec une entrée lui permettant de saisir l'ordre d'affichage [1,2,3,4,5]. Mais je me demande comment appliquer une fonction de tri quelconque aux données stockées pour le champ répétable. Un exemple de sortie est le suivant:
stdClass Object
(
[order] => Array
(
[0] => 1
[1] => 3
[2] => 2
)
[url] => Array
(
[0] => /first
[1] => /third
[2] => /second
)
)
Comment pourrais-je faire pour que lorsque le contenu du module est affiché dans le front-end; il serait basé sur l'ordre défini par l'utilisateur [1,2,3] et non tel qu'il est actuellement [1,3,2].
Voici un exemple de fonction pouvant vous donner une liste ordonnée en fonction de votre tableau de commandes.
public function getSortedArray($myObj, $ordering)
{
// first build an array with keys as your order, values as data (url)
$myArray = array();
foreach($myObj->order as $i=>$order)
{
$myArray[$order] = $myObj->url[$i];
}
// now you can get the data as per the user requested order
$return = array();
foreach($ordering as $order)
{
$return[] = $myArray[$order];
}
return $return;
}