Code php à insérer pour l'argument par défaut dans une view

Bonjour,

Je souhaite passer le nid en argument dans une vue et comme argument par défaut je souhaite mettre du code personnalisé :

En fait j’aimerai sélectionner aléatoirement le nid d’un noeud au hasard dans un type de contenu bien précis. J’ai essayé de taper la requête suivante dans le champs «Code d’argument PHP» :

SELECT node.nid AS nid
FROM node node
WHERE (node.status <> 0) AND (node.type in ('MonTypeDeContenu'))
ORDER BY rand()
LIMIT 1

Mais ce code me renvoi pleins d’erreurs.

Peut-être je n’emploie pas la bonne syntaxe.

Une idée ?

#

Le code que tu met dans ce champ doit retourner une variable.
donc il faut qu il y ai un return dans ce code et que ce return return bien un nid.

MOMO Drupal en force

#

Désolé mais Drupal requiert une syntaxe particulière au niveau des requêtes et là je ne maitrise pas du tout.

Aurais-tu un exemple d’un code tout fait avec le return inclus dedans ?

#

De plus il faut passer par des fonctions pour faire une requête…

Le code devrait être plutôt de la forme return db_result(db_query(ta-requete)) ;

Je te conseille de faire des tests hors de la vue dans une page en php par ex. pour vérifier que cela renvoie bien une valeur unique…

DRUPALONS.FR : lisez-nous et testez notre générateur de code, ou les flux drupaliens.

#

J’ai finalement trouvé !

Le code à insérer était :

return db_result(db_query(
"SELECT node.nid AS nid
FROM node node
WHERE (node.status <> 0) AND (node.type in ('MonTypeDeContenu'))
ORDER BY rand()
LIMIT 1"
));

Merci de m’avoir mis sur la voie.

Syndiquer le contenu