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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[eZ Publish 4.0] Formulaire d'upload public


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 2
    Par défaut [eZ Publish 4.0] Formulaire d'upload public
    Bonjour,

    Je souhaite créer un formulaire qui serait accessible par les visiteurs lambdas et qui leur permettrait de charger un document Word. J'ai pour cela créé naïvement ma classe :
    - Nom [ligne de texte]
    - Prénom [ligne de texte]
    - CV [fichier]
    - plus quelques autres mais j'abrège.

    Sauf qu'au moment de passer les champs en collecteurs d'infos, ça bloque sur le champ CV. Logique, tout le monde ne doit pas pouvoir uploader n'importe quoi. Du coup j'ai commencé à regarder du coté de cette extension mais sans vraiment percevoir la manière de la mettre en oeuvre ...

    Auriez vous svp une piste à me conseiller ? ou une autre méthode que vous avez expérimenté.

    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 23
    Par défaut
    T'as pas besoin de l'extension.

    Tu peux créer la class et donner le droit "content" => "create" au member ou anonymous

    Pour qu'il ne peut pas upload n'import quoi, tu peux limiter la taille du fichier upload et passer par un workflow "Event/approve" => "before published" (for member or anonymous)

  3. #3
    Membre confirmé Avatar de bmcorptn
    Inscrit en
    Février 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 27
    Par défaut
    Citation Envoyé par robin_liu79 Voir le message
    T'as pas besoin de l'extension.

    Tu peux créer la class et donner le droit "content" => "create" au member ou anonymous

    Pour qu'il ne peut pas upload n'import quoi, tu peux limiter la taille du fichier upload et passer par un workflow "Event/approve" => "before published" (for member or anonymous)
    Bonjour,

    J'ai exactement le même souci mais, en tant que novice avec EZP, je n'ai pas saisie votre solution.

    Pourriez-vous m'expliquer étape par étape la procédure ?

    Merci pour votre aide.
    @+

  4. #4
    Membre confirmé Avatar de bmcorptn
    Inscrit en
    Février 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 27
    Par défaut
    Bonjour,

    Je suis vraiment débutant avec EZP et cette fois-ci j'ai un souci avec le formulaire de confirmation (.../collectedinfo), comme dans le cas du formulaire du feedback_form. dans mon exemple, d'ailleur j'ai suivi à la lettre http://luxpopuli.fr/eZ-publish/Artic...sse-formulaire, ne me renvoie pas la page de confirmation ?

    Avez-vous une idée ?

    Merci
    @+

  5. #5
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Bonjour,

    de quel formulaire de confirmation parles tu ? j'en voit pas dans l'article en lien.

  6. #6
    Membre confirmé Avatar de bmcorptn
    Inscrit en
    Février 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 27
    Par défaut
    Bonjour,

    je suis désolé, le formulaire est un peu plus loin dans l'article ici

    Merci
    @+

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Par défaut Collecte d'information vs Création de contenu
    Créer un formulaire de contact dans eZ Publish peut être fait de deux manières :
    - utiliser le mécanisme de collecte d'information
    - créer de nouveaux objets

    Essayons de décrypter ces 2 méthodes pour comprendre avantages et inconvénients.

    La notion de classe
    Avant de passer au sujet qui nous concerne, petit rappel sur la notion de classe.
    Les classes permettent à l'administrateur de décrire la structure des contenus disponibles sur le site : Article, Dossier, Formation, Commentaire.

    Ainsi la classe article est constituée :
    - d'un champ ligne de texte pour le titre
    - d'un champ bloc de texte simple pour le résumé
    - d'un champ bloc de texte riche pour le corps
    - ... de plein d'autres champs selon vos besoins

    Une fois la classe définie, vous pouvez créer des articles dans eZ Publish.

    La collecte d'information dans eZ Publish
    La collecte d'information se base sur cette structure de classe. Vous pouvez, lorsque vous définissez un champ, préciser que ce champ va "collecter de l'information".

    Qu'est ce que ça veut dire ?
    En résumé :
    - Un champ qui n'est pas collecteur d'information va afficher le contenu du champ (par exemple le titre de l'article) sur votre site public
    - Un champ qui est "collecteur d'information" va afficher un champ de type input sur votre site.
    EZ Publish, dans ses templates par défaut va automatiquement vous ajouter les boutons d'actions qui correspondent à votre besoin.

    Qu'est ce qui se passe lorsqu'un utilisateur poste avec un collecteur d'information ?
    Les informations sont alors stockées dans des tables spécifiques de la base de données et vous pouvez les retrouver depuis l'onglet administration du backoffice.
    Les informations pourront aussi être envoyées par mail (j'ai posté un message sur ce sujet précédemment)

    Les limitations
    Le problème de la collecte d'information c'est que cette dernière est limitée à un certain nombre de natures de champs (ligne de texte, texte bloc, radio bouton ou checkbox). Le champ généralement manquant est le champ fichier pour les pièces jointes.

    L'alternative : créer du contenu
    Comme vous le savez peut être, toutes les fonctionnalités de l'administration sont disponibles sur le site public, il s'agit juste d'une question de droits et de boutons affichés ou non.

    Ceci veut donc dire que, si on le souhaite, on peut donner à l'utilisateur, même anonyme, le droit de créer du contenu sur le site.

    C'est la méthode retenue pour les commentaires sur les articles (dans une logique blogs). Il existe une classe de contenu "commentaire" et un droit associé qui permet aux utilisateurs (anonyme ou membres selon vos besoins) de créer des contenus de type "commentaire".

    Dans le cas évoqué, la solution consiste donc à créer un objet de type "candidature" avec des champs : nom, prénom, cv, lettre de motivation...

    Ces champs ne sont pas collecteurs d'information.

    Une fois ceci terminé, vous créez un dossier qui contiendra les candidatures dans l'arborescence de contenu et vous ajouter à la gestion des droits la politique : content / create avec les limitation : classe candidature, noeud (le dossier précédent).

    Attention : vérifiez bien que les utilisateurs n'ont pas le droit de lire les objets candidatures des autres personnes (ce serait gênant...).

    Il ne vous reste plus qu'à ajouter le bouton d'action de création de l'objet candidature dans vos templates du front.

    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
     
     
     
                    {* On va vérifier que l'utilisateur peut créer une candidature
    dans $node (ici $node correspond au dossier qui contiendra toutes les candidatures)
     
     *}
                    {if fetch( content, access,
                                         hash( access, 'create',
                                               contentobject, $node,
                                               contentclass_id, 'candidature' ) )}
                        <form method="post" action={"content/action"|ezurl}>
                        <input type="hidden" name="ClassIdentifier" value="candidature" />
                        <input type="hidden" name="NodeID" value="{$node.node_id}" />
                        <input class="button new_comment" type="submit" name="NewButton" value="Déposez votre CV" />
                        </form>
                    {else}
                        <h3>Vous n'êtes pas autorisé à déposer votre CV</h3>
                    {/if}
    Vous trouverez alors tous vos CVs dans le dossier directement depuis la navigation dans le backoffice.

    Comme évoqué précédemment vous pouvez en plus ajouter un workflow (optionnel) pour : envoyer un mail au dépôt du CV, valider le dépôt ou ce genre de choses...

Discussions similaires

  1. PERL CGI Formulaire et upload
    Par minusette dans le forum Web
    Réponses: 3
    Dernier message: 20/07/2007, 11h08
  2. formulaire avec upload
    Par Sheriff dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/12/2006, 08h51
  3. [Upload] Formulaire puis Upload via FTP
    Par FredMines dans le forum Langage
    Réponses: 11
    Dernier message: 13/07/2006, 16h36
  4. formulaire avec upload
    Par sami_c dans le forum ASP
    Réponses: 2
    Dernier message: 23/01/2006, 12h04
  5. Probleme de formulaire d'upload
    Par Oberown dans le forum ASP
    Réponses: 5
    Dernier message: 26/10/2004, 14h00

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