2010-03-24 11 views
1

Quelqu'un peut-il me dire s'il est possible de mélanger des arguments de vue avec des chaînes statiques?Mélanger des chaînes statiques avec des arguments Arguments

Par exemple, dans la section de chemin d'un écran d'alimentation de vue que j'ai besoin:

/mypath/%.xml

avec la partie « .xml » étant la chaîne statique.

Merci d'avance.

Répondre

1

Je l'ai compris finalement.

En cours de validation, choisissez le code PHP. Puis j'ai entré:

// strip ".xml" from incoming 
    $new_arg = preg_replace('/\.xml$/', '', $argument); argument 
    $handler->argument = $new_arg; 
    return TRUE; //must return something 

Cela fonctionne. Maintenant Drupal envoie "foo" à la requête SQL, même si l'argument entrant via l'url est "foo.xml"

0

Je viens de tester cela, et vous ne pouvez pas faire le chemin exact que vous avez posté ci-dessus. Views semble reconnaître seulement '%' comme un espace réservé d'argument s'il se trouve entre des barres obliques, ou seul à la fin. Donc, ce qui va travailler est quelque chose comme ceci:

/mypath/%/rss.xml

ou

/monchemin/statique /%

+0

J'avais peur de cela. Nos administrateurs de serveur ne permettent pas /dir/index.xml – Aaron

+0

Quelqu'un peut-il me donner un indice sur la façon dont je pourrais écrire un module pour étendre les vues afin que je puisse autoriser le mélange d'arguments de chemin avec des chaînes statiques? – Aaron

0

En chemin, de toute façon, vous devez définir chemin /%
Mais vous pouvez vérifier argument% .xml dans la validation de code:
en argument vues additing/fenêtre d'édition:
Options Validator - Validator - code PHP:

Entrez PHP code qui renvoie TRUE ou FALSE. Aucun retour n'est identique à FALSE, alors assurez-vous de retourner quelque chose si vous ne voulez pas déclarer l'argument invalide. Ne pas utiliser . L'argument à valider sera "$ argument" et la vue sera "$ view". Vous pouvez changer l'argument en définissant "$ handler-> argument".

Utilisez strpos pour vérifier s'il y a une chaîne xml. Aussi vous pouvez modifier l'argument comme il l'a écrit dans le commentaire: $ handler-> argument

Questions connexes