Message d'avertissement

The subscription service is currently unavailable. Please try again later.

Personnaliser entièrement le backend de gestion de contenu

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Je cherche à modifier entièrement le formulaire de gestion de contenu pour un type de contenu spécifique : faire disparaitre tous les champs (body compris), pour le remplacer par une interface personnalisée. Est ce possible à faire sans écrire un module spécifique?

Forum : 
Version de Drupal : 

Salut !

Si j’ai bien compris, tu parles du formulaire de création/modification/suppression d’un nœud pour un type spécifique.

Sans écrire un module spécifique ?

À ma connaissance, ce n’est pas possible sans écrire de lignes de code et le meilleur endroit pour cela reste à l’intérieur d’un module.

Peux-tu donner plus de précisions sur ce que tu veux faire ? (but recherché, cadre etc.)

Il s'agit bien du formulaire de création/modification/suppression d’un nœud pour un type spécifique.
Je souhaite proposer un outils de gestion d'organigramme simple (sans passer par la taxonomie et l'assemblage d'une arborescence de noeuds, etc...trop compliqué pour mes contributeurs). J'ai donc créé un type de contenu "organigramme" (une simple page, en fait), et j'utilise le body pour stocker une arborescence UL/LI. J'ai écris un template (node-organigramme.tpl.php) qui exploite cette arborescence (récupéré via $content) avec du JQuery, pour exposer un organigramme arborescent (à noeuds "repliables"). Ca c'est le frontEnd. Ce template fait également office de backEnd (lorsqu'on est identifié et contributeur). Il permet alors de passer en mode "edition" : on peut alors modifier le contenu des LI (toujours via JQuery, avec le composant jquery.editable), on peut ajouter/supprimer/déplacer un noeud de l'arbre, etc...L'enregistrment des modifications met simplement à jour le champ body de la table node_revisions, en utilisant $node->vid comme identifiant.

Je souhaiterais maintenant mettre en conformité cet outil avec le fonctionnement attendu de drupal, à savoir accéder à ce mode "edition" lorsqu'on clique sur "editer" dans la liste des contenus, ou par l'onglet "editer" qui apparait en frontEnd lorsqu'on est contributeur.
NB : Je débute avec drupal, je suis prêt à écrire quelques scripts PHP/Javascript, mais j'ai peu de temps pour me pencher sur la création d'un module.

Puisque tu as déjà fait le gros du boulot, n’est-il pas possible de rajouter dans ton template des lignes du genre :

if(arg(1)!=='add' and arg(2)!=='edit') {
  // Affichage sans modification possible
} else {
  // Affichage avec modification possible
}

Elles n’activeraient ton code que lorsque la page est en mode d’édition.

Attention toutefois à la gestion de thèmes double (thème standard/thème administrateur).

En effet, c'est exactement ce que je souhaite, mais lorsqu'on invoque la modification du contenu organigramme, ce n'est pas mon template qui est appelé, mais le formulaire standard drupal....c'est là le problème pour moi.
De manière concrète, l'url http://mon_host/mon_drupal/?q=node/76 invoque mon template, mais l'url http://mon_host/mon_drupal/?q=node/76/edit invoque le formulaire standard, alors que je voudrais que cette dernière url invoque également mon template (dans lequel je pourrais alors valoriser arg(1) et arg(2), comme tu le proposes)