Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Super ca fonctionne, encore merci pour tout.
PS : ces deux classes elles sont de toi entierremment ou tu t'es inspiré de quelque chose d'existant ?
Hors ligne
Tout codé petit à petit . Et j'en suis fier car je trouve ça super pratique pour moi qu'il dév solo et qui n'utilise pas de moteurs de templates !
Dernière modification par Mr.MoOx (31-10-2007 13:20:04)
Hors ligne
Félicitations, si je fais des modifications intéressantes dessus je t'en ferais part.
Bon dév
Hors ligne
Ces méthodes sont très pratiques, surtout pour des gros sites avec plein d'actions !
Beau travail MoOx :-)
Hors ligne
Merci beaucoup, c'est du bon boulot !
J'ai déjà commencé à faire quelques modifications, pour ma part la balise <title> n'était pas générée par exemple.
Je vais essayer de rendre cela un peu plus générique et permettre des inclusions à d'autres endroits encore (un fichier qui sera inclus dans <head> par exempe pour spécifier des balises communes à tout le site dans le layout, un autre avant le <body> éventuellement après </body> aussi,...)
En tout cas encore bravo, c'est une solution que je trouve tout à fait propre sans être trop complexe / rigide.
Hors ligne
Salut et de rien.
Pour ce qui est du <title> et du <head> c'est arrangé et je viens donc de mettre à jour mon post avec le code:
http://www.z-f.fr/forum/viewtopic.php?pid=2821#p2821.
Il est possible d'inclure un fichier dans le <head>, mais par defaut, il n'y en a pas. il suffit de modifier le code ainsi:
$view->options['files']['head'] = 'htmlhead.phtml';
Voici les options par defaut:
public $options = array( //'gzip' => false, //'indent' => true, 'xml' => true, 'doctype' => 'html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"', 'xmlns' => 'http://www.w3.org/1999/xhtml', 'lang' => 'en', 'content-type' => 'application/xhtml+xml', 'content-script-type' => 'text/javascript', 'content-style-type' => 'text/css', 'encoding' => 'UTF-8', 'files' => array( 'path' => '_/', 'head' => null, 'bodyHeader' => 'header.phtml', 'bodyFooter' => 'footer.phtml' ), 'title' => null, 'base' => null, 'meta' => array(), 'link' => array() );
Pour faire avancé tout ça, j'apprécierais que tu me fournisse tes modifs.
Hors ligne
Oui pas de problèmes, dès que j'ai terminé cela je te renvoie les modifs.
Hors ligne
Salut,
Je continue à utiliser ta classe et je voulais te demander comment faire lorsque dans une action tu veux ajouter une portion de "code" HTML dans le head sans passer par un fichier créé spécialement.
Par exemple lorsque l'on utilise jQuery on a souvent besoin de faire des
<script type="text/javascript"> $().ready(function() {......} </script>
que l'on place dans le head, et cela en fonction de la page sur laquelle on se trouve.
une idée ?
Hors ligne
Je n'y avais pas pensé.C'est bon, j'ai modifié le source. Tu peux ajouter du JS à la porc (je trouve pas ça bien de rajouté comme ça m'enfin ça peut servir des fois (pour faire du javascript dynamique, mieux faut paramétrer son serveur pour qu'il interprète les *.js comme du php)...
Tu n'as plus qu'a rajouter
$view->addJs($href, $codeEnDur); //href et codeEnDur peuvent être null...
Hors ligne
Merci, entre temps j'ai trouvé une solution qui consiste à rajouter une clé 'text' à l'array $options que je met à jour via une méthode addText() dans mes controlleurs.
Ensuite j'insère le contenu de $options['text'] juste avant le </head>
Hors ligne
Je ne t'oublie pas Mr.MoOx, je vais certainement encore modifier un peu ta solution pour l'adapter à mes besoins.
Je n'ai malheureusement pas commenté les changements que j'ai effectué...
Par rapport à l'inclusion d'un script entre le <head></head>, ca ne fonctionnait pas pour moi qui utilisait les modules. Au lieu de faire un file_exists('la_vue'), il faut faire un $view->getScriptPath('la_vue') qui renvoie vrai si elle trouve le fichier. Du coup j'ai fait pareil pour le header et footer.
J'ai rajouté ta modification pour ajouter un script javascript en code au lieu de rajouter juste un lien.
dans ta vue, j'ai aussi modifier l'ordre d'appel dans le constructeur pour faire d'abord un ::extend($options...) et ensuite le parent::_construct mais avec $this->options cette fois de manière à pouvoir récupérer l'ensemble des paramètres à la fois codés en dur et ceux passés à ton constructeur et les transmettre au parent. Du coup par exemple, comme encoding => UTF-8 dans les options, il n'y a plus besoin de faire un setEncoding après.
J'ai enlevé tes balises codées en dur content-* (tu n'auras qu'à les mettre dans ton ficher header par exemple) et j'ai aussi sorti la génération du <body></body> dans ton Helper, je préfère le faire dans le header/footer pour pouvoir passer des options au <body ...>.
Voilà pour ce dont je me souviens pour le moment.
Si tu veux voir le code dans l'état actuel, fait le moi savoir,je le mettrai en ligne.
++
Dernière modification par x0r (11-11-2007 23:26:42)
Hors ligne
Je suis en train actuellement defaire des changements dans le code, pour m'adapter a tes besoins (car surement que tu ne sera pas le seul).
En ce qui concerne le body (et c'est aussi valable pour le tag html et le head, je met en place un système permettant d'ajouter simplement des attributs de cette manière:
$view->setAttr('html','xmlns','value...'); //ou $view->setAttr('html',array('xmlns' => 'value...') );
Dernière modification par Mr.MoOx (13-11-2007 12:25:20)
Hors ligne
Je viens de mettre en ligne la librairie dans l'état actuel :
rxlib.tar.gz
Ca sera sans aucun doute quelque chose de pratique le setAttr.
Je voulais aussi appliquer la même idée que pour les JS (intégrer directement un script généré à la volée dans le head) pour les CSS. En tout cas pour JavaScript c'est presque indispensable quand on veut faire du Ajax par exemple, en particulier avec une librairie non obstrusive comme jQuery.
++
Hors ligne
En tout cas pour JavaScript c'est presque indispensable quand on veut faire du Ajax par exemple, en particulier avec une librairie non obstrusive comme jQuery.
D'où mon message précedent et ma proposition de modif via $options bien utile
Hors ligne
Alors j'ai créer un petite page pour ce micro projet:
http://www.rewix.com/ressources/library/
Il reste surement quelques bugs, mais j'ai essayé de faire au mieux. N'hésitez vraiment pas à faire part de vos critiques/remarques...
Plus d'infos sur la page!
Hors ligne
Je me demande s'il ne ssserait pas cool que je propose ça pour le framework ici: http://framework.zend.com/wiki/display/ZFPROP/Home
Qu'en pensez vous?
Hors ligne
ben il faut un peu de temps pour tester et en ce moment je suis à environs 30 heures par jours alors c'est pas simple
A+JYT
Hors ligne
Ben pas vraiment, je dirais même plutôt (sur ce que je sais de Zend_Layout) que ca pourrais être complémentaire. En gros mon code sert à générer ça :
<!DOCTYPE... <html ...> <head...> ......... </head> <body...> >>render header -----> ViewRenderer(automatique) ou Layout (??) je pense >>render footer </body> </html>
Hors ligne
Salut,
Désolé Mr MoOx, j'ai aussi bcp de boulot en ce moment...
J'utilise toujours et pleinement ta librairie et c'est très utile. Vraiment, merci.
Dès que j'aurai plus de temps je regarderais de plus près tout cela.
En attendant, je crois qu'il faut peut-être encore essayer de rendre la librairie un peu plus générique, vérifier les conventions de nommage et les choses comme ca. Mais ca serait une bonne idée de le proposer, j'avais regardé rapidement Zend_Layout mais ca n'avait pas l'air de répondre à mes besoins, tandis que ta librairie, si.
Merci pour ton travail,
@+
Hors ligne