2010-11-30 7 views
0

Ich habe den ganzen Morgen graben und ich finde keine Referenz, die das Kontoobjekt definiert.

Insbesondere möchte ich eine andere hook() -Funktion von drupal admin ändern, um die Funktionsweise zu ändern. Derzeit kommt es als dt/dd-Paare ohne CSS-Klassen oder benutzerdefinierte Stile, und ich muss in der Lage sein, den Inhalt zu thematisieren.

function acidfree_user($op, &$edit, &$account, $category = NULL) { 
    if ($op == 'view') { 
    //Pachkov.Sergey.START - MODIFIED BY MHEINZ 
     $result = db_query("SELECT nid, title FROM node WHERE nid IN (SELECT nid FROM node WHERE uid=%d 
         AND type='acidfree') ORDER BY nid desc", $account->uid); 

     $i=0; 
     $account->content['acidfree-albums'] = array(
     '#type' => 'user_profile_category', 
     '#title' => t('Photo albums'), 
    ); 
     while ($item = db_fetch_array($result)) { 
     $title_node = $item['title']; 
     $nid = $item['nid']; 
     $account->content['acidfree-albums'][$i] = array(
       '#title' => t(' '), 
       '#value' => l($title_node, "node/{$nid}"), 
       '#class' => 'acidfree-albums', 
       '#type' => 'user_profile_item', 
     ); 
     $i++; 
     } 
    } 
    //Pachkov.Sergey.END - MODIFIED BY MHEINZ 
    } 

Antwort

2

Die Verwendung dt/dd zur Anzeige des $account->content Arrays, das Sie in hook_user sehen, stammen aus der Vorlage user-profile-item.tpl.php. Unter Verwendung template_preprocess_user_profile_item in Ihren Modulen oder Thema können Sie Attribute für diese dt/dd hinzufügen.

Wenn Sie eines der Elemente in den $account->content Array ändern, sollten Sie hook_profile_alter verwenden:

function MODULE_profile_alter(&$account) { 
    $account->content['acidfree-albums']['#title'] = t('Awesome photos!'); 
} 
1

Die beste Referenz Sie erhalten können, ist

print_r($account->content); 

und die Spur zu Ihrem aktuellen Standort zu sehen (um zu sehen, wo das Objekt gesetzt ist) könnten Sie

debug_print_backtrace(); 
+0

Es stimmt, dass das wird mir sagen, was derzeit in der Struktur ist, wird es mir nicht sagen, was legal für die Struktur. –

+0

Wenn es sich um eine magische Struktur handelt, wird es Ihnen schwer fallen, herauszufinden, wo es erstellt wurde. Sie können nach dieser Methode suchen, um zu sehen, wo die Objektparameter hinzugefügt werden. Normalerweise wird das Objekt der Datenbanktabelle zugeordnet, wenn die Information persistent ist, und dann können Sie die Tabellenstruktur betrachten, um zu sehen, was möglich ist –