IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Form PHP Discussion :

Problème Filters sur Textarea [ZF 1.11]


Sujet :

Zend_Form PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 85
    Par défaut Problème Filters sur Textarea
    Bonjour,

    Je suis débutant sur Zend et je dois dire que c'est pas facile au début mais on s'accroche :-)
    Voici mon problème.

    J'ai un formulaire avec un textarea que je remplace par un ckeditor, ici tout va bien sauf que j'aimerai avoir un strip_tags personnalisé et qui autorise les balises de mon choix comme avec la functions strip_tags ou peut mettre passé en paramètre les balises autorisés.

    Bien sur je suis allez sur la doc :
    http://framework.zend.com/manual/fr/...g_filters.html

    Et je ne comprends pas trop... et j'ai des erreurs en essayant d'appliqué cette méthode.
    Bien sur j'ai recherché sur votre forum et j'ai tout essayé mais je n'y arrive toujours pas...

    J'ai une class MonFiltre.php qui ce trouve dans modules/admin/views/filters/
    Elle contient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class Admin_MonFiltre implements Zend_Filter_Interface {
     
     public function filter($string) {
            $string = strip_tags($string,'<p><a><b><u><i><ul><li><strong><em><img><ol><style><font><h1><h2><h3><h4><h5><br/><sup>');
        return $string;
        }
     
    }
    J'ai essayé de l'appelé par tous les moyens dans ma class form de mon module mais rien n'y fait j'ai un not found qui interviens.

    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Par défaut
    Pour pouvoir l’appelé, tu dois la signaler au autoloader.
    Voici un exemple

    Dans le bootstrap
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    protected function _initAutoload()
    	{		            
    		$moduleLoader = new Zend_Application_Module_Autoloader(array(
    		'namespace' 	=> '',
    		'basePath' 		=> APPLICATION_PATH,
    		'resourceTypes' => array(
    		        'decorator' => array(
    		            'path'      => 'forms/Decorators',
    		            'namespace' => 'My_Decorator',
    		        )
    		    )
    		));
     
    		return $moduleLoader;
    	}
    J'ai initialisé le dossier Decorators, comme ça chaque fichier ajouté au dossier Decorators je vais l'applé avec My_Decorator_Fichier qui va le chercher dans forms/Decorators/Fichier.php

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 85
    Par défaut
    Merci de ta réponse, mais j'ai des questions concernant ton code.

    Je doit le mettre dans mon bootstrap principale ou de mon module ?
    Tu ne met rien dans namespace normal ? basePath non plus ?

    Tu met decorateur dans ton code, mais moi c'est filters donc je dois juste changé ceci : ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    array(
                    'filters' => array(
                        'path'      => 'views/filters',
                        'namespace' => 'Admin_',
                    )
                )
    Es ce que je doit mettre mon filters dans views/filters ? ou dois-je créer une library ?

    Merci

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Par défaut
    J'ai laissé namespace vide pour applé directement avec Application_Model_Table.
    et le base path je lui donne le path de mon application.

    Tu dois le mettre dans boostrap principal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    protected function _initDefaultNamespace() 
    	{		
    		$this->bootstrap('frontcontroller');
    		$front = $this->getResource('frontcontroller');
    		$defaultModule = $front->getDefaultModule();
     
    		new Zend_Application_Module_Autoloader(array( 'namespace' => '', // pas de namespace 
    		'basePath' => APPLICATION_PATH . '/modules/' . $defaultModule
    		));
     
    		new Zend_Application_Module_Autoloader(array( 'namespace' => 'Admin',
    		'basePath' => APPLICATION_PATH . '/modules/admin',
    'resourceTypes' => array(
    		        'filter' => array(
    		            'path'      => 'views/filters',
    		            'namespace' => 'Admin_Filter',
    		        )
    		    )
    		));	
    	}
    Pour moi si je suis dans votre cas je créerai une simple fonction qui fais le traitement .

  5. #5
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Par défaut
    Tu pourra maître ce que tu veux dans le namespace, et appelé avec.

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 85
    Par défaut
    Bon, j'ai finalement réussi !!!!! :-)
    Après je ne sais pas si ce que j'ai fait est bon, voir beau !

    Voici ma procédure :

    Tout d'abord créer un dossier dans library : On va l'appelé TOTO, puis dedans un autre dossier Filter et dans ce dossier notre fichier ou on souhaite appliqué notre Filtre.php

    Allez dans le bootstrap principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    protected function _initAutoload() {
            Zend_Loader_Autoloader::getInstance()->registerNamespace('TOTO_');
        }
    Ensuite éditer le fichier qui s'appel Filtre.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class TOTO_Filter_Filtre implements Zend_Filter_Interface {
     
        public function filter($string) {
            $string = strip_tags($string,'<p><a><b><u><i><ul><li><strong><em><img><ol><style><font><h1><h2><h3><h4><h5><br/><sup>');
    	return $string;
        }
     
    }
    Ensuite on va sur notre page Form et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $title = new Zend_Form_Element_Text('title');
            $title->addFilter(new TOTO_Filter_Tags() );

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème droit sur un tablespace
    Par wazar dans le forum Administration
    Réponses: 11
    Dernier message: 05/01/2010, 15h12
  2. Problème innerHTML sur div !!!
    Par aburner dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/01/2005, 09h23
  3. Problème alinéa dans textarea
    Par guitaros dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 23/12/2004, 00h07
  4. [CR8] Problème tableau sur plusieurs pages???
    Par christophe28 dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 02/11/2004, 15h46
  5. [MFC] Problème pointeur sur une classe
    Par mick74 dans le forum MFC
    Réponses: 7
    Dernier message: 14/04/2004, 14h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo