[resolu] CCK output dans une page d'un node ou un node quelconque

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 pose sans doute beaucoup de questions mais c'est que Drupal me passionne.

Je suis confronté à un petit souci de template aujourd'hui.

(J'utilise une page page-node-edit qui me permet de conserver un affichage unique pour l'édition de tous les articles. Par exemple : un article avec un fond noir gardera en mode édition de cette façon un fond blanc lisible pour rentrer les données dans les champs sans être gêné par le graphisme appliqué à la fiche commerçant concernée.)

L'onglet "voir" m'affiche le contenu de la page page-node-42.tpl, ici
l'une de mes fiches commerçant.

J'ai dans mon type de contenu whatmille champs. J'aimerais pouvoir afficher pour cette fiche les champs adresse, plan, heures d'ouverture, informations à ma convenance en explodant donc le &content (je ne passe pas par une view donc pas de themwizard ni contemplates qui lui spécifie l'affichage de tout un type de contenu).

Comment récupérer ces valeurs de façon à les positionner à l'endroit voulu selon des div.

Comment utiliser les $output soit dans le template.php ou mieux dans le code de ma page-node-42.tpl.

Ainsi j'aurais l'adresse dans un bloc à gauche, le plan dans un bloc à droite,
plus bas dans la page un bloc heures d'ouvertures uniquement pour cette fiche, non pas pour tous les nodes de ce type de contenu.

http://drupalfr.org/forum/developpement/274-a_votre_avis_quel_est_le_mei...

Forum : 

Salut,

C'est quoi une page "page-node-edit" ? Ca vient d'où ? Ca sert à quoi ?

Concernant ta question, pas sûr de bien comprendre. A l'origine, d'où viennent les champs de ta fiche commerçant ? Si tu les as créés avec CCK, alors tu peux effectivement personnaliser l'affichage et positionner chaque champ individuellement avec contemplate.

Pour la page-node-edit :
page-node-edit.tpl.php
http://drupal.org/node/104316
çà me sert à designer l'édition des nodes pour l'admin ou rédacteur qui saisit les infos / ce même node aura son propre affichage avec un body class="" qui lui est spécifique.

Pour contemplate : oui j'y ai pensé mais cela m'oblige à créer un type de contenu fiche commerçant, pas grave...
Seulement,

Je cherche à réaliser un modèle de fiche suivant
a) un Entete avec :
- à gauche Logo de l'enseigne + retour à la page d'accueil ($breadcrumb) |
- à droite logo du site

b) Bloc de gauche float:left; avec :
adresse + fields pratiques(métro, velov etc...) où j'insère le $messages avec envoyer à un ami

c) Bloc de Droite avec :
descriptif (champ body) + Diaporama flash gallery

d) Pied de page

Mon code de contemplate s'avère inefficace, il ne prend pas en considération la variable $breadcrumb, ni même $message comme l'ajout d'un bloc de menu

Je cherche en fait le moyen de récupérer selon une méthode semblable à celle indiquée sur ce lien http://drupal.org/node/129295 mais encore bien obscure, les $item_nid CCK pour les mettre dans page-node-113.tpl.php. J'aurais ainsi pour certaines page-nodes-x.tpl.php la possibilité d'enlever $content, pouvant mettre où bon semble les champs cck désirés

Ma solution est la suivante

Récupérer chaque champ CCK avec un node personnalisé /* CODE ISSUE http://chapterthreellc.com/node/70 */

Page view:

1) node-[nid]-page.tpl.php Node by itself on a page, specific NID 2) node-[type]-page.tpl.php Node by itself on a page, specific type 3) node-default-page.tpl.php Node by itself on a page, default Listing/Teaser view:

4) node-[nid].tpl.php Node in list/teaser, specific NID 5) node-[type].tpl.php Node in list/teaser, specific type 6) node.tpl.php Node in list/teaser, default.

Dans Template.php

function _phptemplate_variables($hook, $vars = array()) {
  switch ($hook) {
    case 'node':
      // Here is the way to switch to a different node-<something> template based on node properties.
      if ($vars['page']) {
        // This is LIFO (Last In First Out) so put them in reverse order, i.e
        // most important last.
        $vars['template_files'] = array('node-default-page', 'node-'. $vars['node']->type .'-page', 'node-'. $vars['node']->nid .'-page');
      }
      else {
        $vars['template_files'] = array('node-'. $vars['node']->nid);
      }
      break;
  }

  return $vars;
}

Je peux donc à la fois paramètrer les cck views que je veux selon mes blocs div et leur positionnement selon une charte graphique propre à cette fiche avec le node de l'article 113 pour le $content concerné et sur la page de ce node faire d'autres modifs

node-113-page.tpl.php page-node-113.tpl.php

Dans ma page node-113-page.tpl.php je récupère chaque champ cck ainsi

<?php
 
print $field_coordonnees[0]['view'];
?>
<?php
 
print $field_descriptif[0]['view'];
?>
<?php
 
print $field_chapo[0]['view'];
?>

/* CODE ISSUE http://drupal.org/node/144829 */

<?php
 
print $body
?>

me récupère tout le contenu

Je cherche ce matin la solution pour ne récupérer que le corps 'body' de mon body global.

Je suis preneur si vous avez une astuce juste sur ce dernier point.