Après avoir ajouté un «modifié par» sur les nœuds, je dois maintenant afficher l'utilisateur qui a modifié chaque nœud sur le node_admin_content
formulaire (à admin/content
) juste à côté de la colonne «Auteur».
J'ai réussi à résoudre ce problème facilement en modifiant node.admin.inc et en ajoutant seulement 2 lignes de code:
...
'changed_by' => t('Changed By'),
...
...
'changed_by' => theme('username', array('account' => user_load($node->changed_by))),
...
Bien sûr, ce n'est pas une bonne solution car cela modifie le noyau.
J'ai donc essayé de modifier le formulaire via:
function hook_form_node_admin_content_alter(&$form, &$form_state, $form_id) {
$form['admin']['nodes']['#header']['changed_by'] = t('Changed By');
// ... ?
}
En utilisant dpm
je peux voir que le formulaire a les nœuds dans les options. Le problème est que cela est le résultat du rendu des nœuds en tant qu'options de table. Je n'ai pas accès aux nœuds d'origine et je ne souhaite pas réexécuter la requête d'extraction de nœud afin d'obtenir les informations "modifiées par". Je suppose que faire cela dans le crochet de formulaire ne le résoudrait pas dans la bonne couche. Ou est-ce?
Alors, quel est un bon moyen de modifier le node_admin_content
formulaire pour ajouter plus de données qui existent sur les nœuds?
Remplacez simplement admin / content par une vue, puis ajoutez les champs que vous souhaitez. Les vues d'administration le feront même pour vous.
la source
hook_schema()
/hook_schema_alter()
implémentations?Un peu hors sujet, mais cette réponse montre comment vous pouvez le faire par programme (par exemple en l'ajoutant en tant que mise à jour de module dans le fichier MY_MODULE.install.)
Vous aurez besoin d'un peu plus de travail si vous souhaitez ajouter votre nouveau champ avant le dernier champ existant. Fusionnez-le avant la fin du tableau $ view-> display ['default'] -> display_options ['fields'].
la source