2010-09-05 6 views
3

Je cherche une façon élégante de rendre un peu jquery au courant du nom de fichier et du chemin du fichier ctp contenant une sélection dom donnée. J'utilise simple_html_dom pour écrire des changements dans les mouches de template via un appel ajax. Je dois fournir le nom de fichier et le chemin du fichier ctp du modèle d'affichage ou d'élément qui contient l'élément dom que j'ai sélectionné afin d'écrire les modifications dans le bon fichier. En dehors de la transmission manuelle de ces informations dans chaque vue et élément de mon application, existe-t-il un moyen élégant (et sécurisé) de mettre ces informations à la disposition de jquery?CakePHP: Intégrer le nom de fichier CTP et le chemin dans les vues et les éléments

En outre, y a-t-il une raison pour laquelle je devrais m'inquiéter de l'incorporation de cette information dans le document en texte clair? Quel est l'endroit le plus approprié pour le stocker? Ma première pensée était dans l'attribut title d'un élément, mais y a-t-il un endroit plus approprié?

Merci!

MISE À JOUR Cette question peut être mieux posée: quelle est la meilleure façon d'étendre ou de modifier de façon transparente chaque vue et chaque élément du gâteau? Je passe des informations à partir de app_controler dans beforeRender maintenant, mais cela ne me permet pas de transmettre des informations sur les fichiers de vue des éléments individuels autant que je sache. Idéalement, chaque vue et élément rechercheraient la présence d'un certain nom de classe dans les éléments dom et inséreraient les informations de chemin et de nom de fichier dans l'attribut title de cet élément avant le rendu. Je ne peux pas trouver un bon moyen de le faire!

+1

Modifier dynamiquement des fichiers de modèle, c'est-à-dire du code auto-modifiable, semble être une mauvaise idée. À mon humble avis, vous devriez repenser ce que vous essayez de faire ici. Et à partir de votre dernier paragraphe, je ne suis pas vraiment sûr de ce que vous essayez d'accomplir. – deceze

+0

Merci! J'ai fini par étendre view.php de la même façon que le plugin debug_toolkit utilise pour ajouter des commentaires au début et à la fin des éléments rendus car j'avais aussi besoin d'accéder aux noms des templates d'éléments, je vais bientôt écrire une réponse pour ceux qui sont intéressés! –

+0

@decaze votre point est très bien pris, je suis à la recherche d'autres options qui ne nécessitent pas de modifications de modèle. Merci! –

Répondre

0
<div rel="<?php echo __FILE__; ?>">...</div> 

à moins que je ne suis pas vous comprendre

0

Vous pouvez créer votre propre classe View qui a traité pour vous. Dans votre dossier "views", créez un fichier nommé (par exemple): custom.php.

Ce fichier doit contenir la classe qui étend la classe View base de CakePHP, nommée 'CustomView'. Ensuite, dans beforeFilter de votre AppController, définissez $ this-> view = 'Custom'. Je ne suis pas sûr quelle méthode serait la mieux adaptée à ce que vous voulez faire, mais render() ou renderLayout() sont probablement un bon endroit pour commencer à chercher.

+0

Bah. Et je ne remarque pas l'ancienne date à ce sujet. On dirait que tu as fait ce que j'ai suggéré. – Utoxin

Questions connexes