2013-10-17 4 views
1

Je vous avais posé une question il y a quelques temps à propos de la configuration de listes déroulantes de base de données pour SugarCRM. J'ai reçu une très bonne réponse et, après plus d'études PHP et une instance de développement, j'ai décidé d'essayer. Les instructions que j'ai suivies peuvent être trouvées here. Après avoir exécuté la réparation et la reconstruction, je m'attendais à voir le champ personnalisé dans ma liste de champs sous le module en studio, mais je n'ai pas réussi à le trouver. Le module s'appelle Makers (a1_makers en tant que table de base de données). Pour le bon ordre, il n'y avait pas d'erreur quand j'ai réparé/reconstruit après avoir sauvegardé les fichiers.

les instructions, j'ai créé un fichier php avec une fonction personnalisée pour interroger la base de données (personnalisée/Extension/application/Ext/utils/getMakers.php):

Dépannage des listes déroulantes dynamiques dans SugarCRM 6.5

<?php 
    function getMakers() { 
    static $makers = null; 
    if (!$makers){ 
      global $db; 
      $query = "SELECT id, name FROM a1_maker"; 
      $result = $db->query($query, false); 

      $accounts = array(); 
      $accounts[''] = ''; 

      while (($row = $db->fetchByAssoc($result)) !=null) { 
        $accounts[$row['id']] = $row['name']; 
      } 
    } 
    return $makers; 
} 
?> 

Ensuite, je mets ' champ « fonction Vardefs pour pointer vers la fonction (sur commande/extension/modules/Maker/ext/Vardefs/makers_template.php):

<?php 
    $dictionary['Maker']['fields']['list_of_makers'] = array (
      'name' => 'list_of_makers', 
      'vname' => 'LBL_MKRLST' 
      'function' => 'getMakers', 
      'type' => 'enum', 
      'len' => '100', 
      'comment' => 'List of makers populated from the database', 
    ); 
    ?> 

Malheureusement, il n'y a pas d'erreurs et la réparation/reconstruction fonctionne très bien. Je suis juste incapable de voir le champ personnalisé quand je vais en studio. Quelqu'un peut-il aider s'il vous plaît à indiquer ce que je peux faire mal?

Répondre

2

Je vous recommande de vérifier l'existence du nouveau champ 'list_of_makers' dans le fichier cache/modules/Maker/Makervardefs.php. Si la nouvelle définition de champ existe dans ce fichier, essayez d'ajouter 'studio' => 'visible'-custom/Extension/modules/Maker/Ext/Vardefs/makers_template.php pour obtenir quelque chose comme ceci:

<?php 
    $dictionary['Maker']['fields']['list_of_makers'] = array (
      'name' => 'list_of_makers', 
      'vname' => 'LBL_MKRLST' 
      'function' => 'getMakers', 
      'type' => 'enum', 
      'studio' => 'visible' 
      'len' => '100', 
      'comment' => 'List of makers populated from the database', 
    ); 

Essayez de modifier votre commande/modules/Maker/métadonnées/editviewdefs.php et insérer manuellement la définition du champ à la main dans endroit approprié si tout ce qui précède ne fonctionne pas.

+0

Merci, cela a certainement aidé à éclaircir les choses. L'ajout du champ studio => visible n'a pas fonctionné, mais j'ai suivi votre conseil et j'ai pu éditer le fichier editviewdefs.php pour le faire fonctionner. Je ne sais pas pourquoi le champ n'a pas été chargé dans Vardefs/makers_template.php, mais je suppose que je vais devoir les ajouter individuellement à chaque fichier view.php. Très appréciée! –

Questions connexes