2017-03-08 1 views
0

Ceci est mon code:SugarCRM valeur déroulante de tri

Dans custom/Extension/application/Ext/Utils/ or custom/include/custom_utils.php

<?php 

function getActiveReleases() 
{ 
    $query = "SELECT id, name FROM releases where deleted=0 and status='Active' order by list_order asc"; 
    $result = $GLOBALS['db']->query($query, false); 

    $list = array(); 
    $list['']=''; 
    while (($row = $GLOBALS['db']->fetchByAssoc($result)) != null) { 
     $list[$row['id']] = $row['name']; 
    } 

    return $list; 
} 

unset($dictionary['MODULENAME']['fields']['FIELDNAME']['options']); 
$dictionary['MODULENAME']['fields']['FIELDNAME']['function'] = 'getActiveReleases'; 

Refrence From here

Je l'ai fait la même chose dans mon code et il fonctionne bien, sauf ordre par: commande par list_order asc.
Dérouler devrait venir dans l'ordre est comme: ordre par list_order asc.
Mais le sucre l'écrasant et triant le menu déroulant par valeur clé de la liste déroulante par: id.
Je veux valeur de clé comme ID mais le tri devrait être comme: order by list_order asc

je recherche sur Google mais je ne trouve aucun moyen de le faire donc je suis annonce cette question.

Répondre

0

remplacer:

$list[$row['id']] = $row['name']; 

par tableau indexé:

$arrayIndex = 0; 
while (($row = $GLOBALS['db']->fetchByAssoc($result)) != null) { 
    $list[$arrayIndex] = $row['name']; 
    $arrayIndex++; 
} 

il est pas sugarcms, il est sur le php se

pendant que vous fournissez le $row['id'] comme une clé de tableau, qui est triée par nature,

php recourra par l'ordre de cette valeur de la variable

prendre cela comme un exemple rapide: https://3v4l.org/8HjFB, j'espère le rendre plus clair pour vous

+0

Mais j'ai besoin de cette clé, j'utilise cette clé ailleurs aussi. –

+0

qu'en est-il de l'ajouter en tant qu'élément individuel? '$ list [$ arrayIndex] = $ row' par exemple. – hassan

+0

je n'ai pas compris –

0

Que diriez-vous cela après votre déclaration while?

asort($list); 
return $list; 

De l'documentation:

Cette fonction trie un tableau de telle sorte que les indices de tableau conservent leur corrélation avec les éléments de réseau auxquels ils sont associés. C'est utilisé principalement lors du tri des tableaux associatifs où l'élément réel est significatif.

+0

un tri n'est pas travailler dans le sucre –

+0

Ne fonctionne pas comment? Ce n'est pas en train de les trier, même après avoir ajouté la fonction d'asort avant le retour? – Reisclef

+0

Il me donne une erreur en l'ajoutant. –