1. IMPORTANT : Nouvelles mesures de sécurité - 2. Règles pour obtenir de l'aide dans les forums de support - 3. Restrictions des droits pour le groupe "Support suspendu"
Il est obligatoire de respecter les Règles de MyBB.fr : Version abrégée ou Version complète pour obtenir du support sur nos forums.
Les membres ayant un site/forum contrevenant aux règles de MyBB.support seront placés dans le groupe "Support suspendu" et ne bénéficieront plus du support du staff. Nous recommandons aux autres membres d'agir de même. Il ne s'agit pas d'un bannissement, le membre retrouvera son statut "normal" dès que sa situation sera conforme aux règles.
Nouveau : un Wiki en français : plus de détails.
Avant de soumettre votre problème, consultez-le, ainsi que la FAQ, sans oublier le moteur de recherche interne.
[Tutoriel] Créer un formulaire de recrutement.
Mots-clés » tutoriel, créer, formulaire, recrutement |
28-03-2012, 22:11,
(Modification du message : 19-05-2013, 18:58 par Saphir.)
|
|||
|
|||
[Tutoriel] Créer un formulaire de recrutement.
Suite à une demande de xooit, je vais vous apprendre, dans ce tutoriel, à créer une page permettant d'afficher à vos membres un formulaire de contact.
Si vous ne suivez pas le tutoriel correctement parce que rien ne vous intéresse d'autre que le résultat final, je ne fournirai aucun support. 1. Prérequis Pour réaliser ce tutoriel, j'utiliserai le plugin "Page Manager" que vous pouvez télécharger sur le site de mybb.com en utilisant le lien ci-dessous. http://mods.mybb.com/view/page-manager Dans l'annexe, vous aurez besoin du plugin permettant d'utiliser le code PHP dans les templates. (Inutile de le télécharger si vous ne voulez pas faire l'annexe.) http://mybbhacks.zingaburga.com/showthread.php?tid=260 2. Présentation Nous allons réaliser un formulaire simple, qui utilisera tout de même une table de données (parce que je trouve cela plus propre que l'envoi par courrier électronique, et que c'est pas trop compliqué). En allant sur la page, les membres verront le formulaire et auront la possibilité d'envoyer leur candidature, de la voir s'ils en ont déjà écrit une, et d'en taper une nouvelle (ce qui supprimerait l'ancienne). Les administrateurs quant à eux y verront la liste de toutes les candidatures. En annexe, nous écrirons un petit code qui permettra d'afficher sur la page d'accueil : "Une nouvelle candidature vous a été soumise. Cliquez ici pour afficher la liste des candidatures." (pour les administrateurs seulement, évidemment). 3. Création de la Table de Données Nous allons créer une table dans la base de données du forum qui contiendra les différentes candidatures. Pour cela, rendez-vous sur le panneau d'administration de votre base de données (PHPMyAdmin, par exemple), et exécutez-y la requête suivante dans votre base de données : Code : CREATE TABLE `mybb`.`recrutement` ( Si vous préférez utiliser une méthode plus manuelle, voici la description de chaque champ : Nom de la Table : "recrutement" Champ "cid" ; Type : "INT" ; A_I : OUI ; Attribut : PRIMARY Champ "uid" ; Type : "INT" ; Attribut : UNIQUE Champ "date" ; Type : "TIMESTAMP" ; Valeur par Défaut : "CURRENT_TIMESTAMP" Champ "poste" ; Type : "TEXT" Champ "candidature" ; Type : "TEXT" Champ "lu" ; Type : "BOOLEAN" ; Vaule par Défaut : "0" 4. Création du Formulaire Activez le plugin "Page Manager". Rendez-vous ensuite dans Configuration -> Page Manager et créez une nouvelle page. Donnez-lui le nom de votre choix, et un paramètre URI simple (dans cet exemple, ce sera "recrutement", ainsi, la page sera accessible à l'adresse "misc.php?page=recrutement"). Pour "Use MyBB Template", choisissez "Non". Vous pouvez laisser le reste à "Oui". Nous allons taper notre code dans le grand champ texte. Réfléchissons à présent sur la structure de la page. Dans un premier temps, nous avons deux cas à gérer : soit le membre qui affiche la page n'est pas administrateur, auquel cas il verra le formulaire ; soir il s'agit d'un administrateur, auquel cas il verra la liste des candidatures. Vous pouvez utiliser le code suivant. Code PHP : <?php Dans un premier temps, nous allons nous concentrer sur la partie "membre". Nous travaillerons sur la partie "administrateur" plus tard. Nous allons à présent créer le formulaire. Vous pouvez utiliser l'exemple ci-dessous, je vous laisse le comprendre et le modifier à votre manière. Attention, si vous rajoutez des champs, il faudra répercuter ces changement sur la table de données ! Code PHP : <form method="post" action="misc.php?page=recrutement&traitement=oui"> Le formulaire est prêt. Mais pour l'instant, il ne fait rien, nous allons à présent créer la partie traitement de la page, celle qui stockera les informations envoyées dans la base de données. Lorsque le formulaire est envoyé, la page s'affiche de nouveau avec une variable supplémentaire, "traitement", qui vaut "oui". Il suffit donc de vérifier la présence de cette variable pour savoir s'il faut lancer le traitement ou non. Pour insérer ces valeurs dans la base de données, il faut tout d'abord s'y connecter. On peut le faire de nombreuses façons, ma préférée étant la suivante : Code PHP : <?php $db = new PDO('mysql:host=localhost;dbname=mybb', 'root', ''); ?> On enregistre ensuite la candidature dans la table de données en utilisant la requête suivante : Code : DELETE FROM `mybb`.`recrutement` WHERE uid = X Voici le code complet au stade où nous en sommes : Code PHP : <?php 5. Affichage de la Candidature Les candidatures seront affichées dans deux cas distincts : de façon multiple, pour l'administrateur, et de façon unique, pour le membre. Voici le code à utiliser dans le cas d'un membre (on présuppose que vous êtes connecté à la base de données) : Code PHP : <?php Pour un administrateur, le code est légèrement différent pour deux raisons : - Dans un premier temps, parce qu'il y a potentiellement plusieurs candidatures à afficher ; - Dans un second temps, parce qu'il faut également récupérer le nom d'utilisateur de l'émetteur. De plus, il faudra également marquer les candidatures comme lues une fois qu'elles auront été affichées. Le code ci-dessous est le code complet de la page et devrait correctement fonctionner, sous réserve de l'exactitude de la structure de votre table de données. Code PHP : <?php 6. (ANNEXE) - Alerte aux Nouvelles Candidatures Dans cette annexe, nous allons afficher aux administrateurs une alerte lorsqu'une nouvelle candidature existe. Attention. Le plugin cité en tête de ce message est requis pour faire fonctionner ce système ! Pour ce faire, nous allons modifier le template "header" en y ajoutant à l'endroit souhaité le contenu suivant (tout en bas du template header devrait convenir) : Code PHP : <if $mybb->user['usergroup'] == 4 then> 7. Captures d'Écran Petit speech avant de dévoiler les captures d'écran... Mine de rien, ça a beau être relativement simple, c'est assez long à coder, pour trois raisons. D'abord, parce que j'écris le tutoriel en même temps, donc je perd énormément de temps à écrire les textes que vous lisez, et à les relire pour éviter un maximum de fautes. Ensuite, parce qu'au fil du tutoriel, je me suis éloigné à plusieurs reprises de mon idée de base (et je pense que ça peut parfois se voir dans le code) en rajoutant de plus en plus de petites fonctions. Enfin, pour la simple et bonne raison que cela fait maintenant plusieurs mois que je n'avais pas codé en PHP et que j'avait des morceaux de Java (un autre langage de programmation) qui traînaient par moments dans mon code pendant plusieurs essais avant que je ne retrouve mes erreurs. Je n'ai pas fait de style, pour la simple et bonne raison que l'objectif ici était de créer le formulaire, tout simplement. Si vous voulez habiller votre page, il vous faudra utiliser un peu de CSS. Si vous avez des idées pour améliorer le code, n'hésitez pas à les donner ici, j'en prendrait note (je ne suis pas un professionnel du PHP (et ça peut se voir), et j'apprécie de voir mes connaissances dans ce langage s'approfondir). Si vous avez créé un style d'affichage pour la page, justement, n'hésitez pas à le donner ici et je le rajouterai à ce tutoriel. Si vous rencontrez un problème avec ce tutoriel, n'hésitez pas à poser vos questions ici-même. Je répondrai également aux messages privés que je recevrai, mais n'ayant pas réponse à tout, je pense qu'il est préférable d'utiliser le forum comme un forum ! : Capture de la notification d'une nouvelle candidature pour les administrateurs. : Capture de la page telle qu'un membre la voit après avoir déposé sa candidature une première fois. : Capture de la page telle qu'un administrateur la voit lorsqu'une seule candidature requiert son attention. S'il y en avait eu d'autres, elles seraient apparues à la suite, de la plus ancienne à la plus récente. |
|||
06-04-2012, 12:49,
|
|||
|
|||
RE: [Tutoriel] Créer un formulaire de recrutement.
Bonjour Saphir, merci pour le tuto.
Par contre je rencontre une erreur 500 quand je veut me rendre sur mas page. (Erreur HTTP 500 (Internal Server Error) : Une situation inattendue s'est produite tandis que le serveur tentait de traiter la demande.) j'ai tous effacer et re-suivie le tuto toujours la même erreur. |
|||
06-04-2012, 13:25,
(Modification du message : 06-04-2012, 13:27 par Saphir.)
|
|||
|
|||
RE: [Tutoriel] Créer un formulaire de recrutement.
Bonjour.
Normalement, le code suivant doit fonctionner correctement. Si tu l'as modifié, peux-tu me donner le code complet ? Code PHP : <?php Es-tu sûr(e) des informations que tu as entrées pour te connecter à la base de données (ligne 3) ? Assure-toi de bien les rentrer sous la forme suivante : Code PHP : $db = new PDO('mysql:host=localhost;dbname=NOM_BASE_DE_DONNEES', 'NOM_UTILISATEUR_BDD', 'MOT_DE_PASSE_BDD'); Si l'hôte n'est pas "localhost" (mais c'est le cas sur la plupart des hébergements), il faudra également modifier l'hôte. Enfin, attention, le code de la partie 6 (l'annexe) n'est pas à placer dans la page mais dans le template header, modifiable depuis l'administration du forum. |
|||
06-04-2012, 14:13,
|
|||
|
|||
RE: [Tutoriel] Créer un formulaire de recrutement.
Bonjour,
Code PHP : <?php pour la ligne: Code PHP : $q1 = $db->query('SELECT `uid`, `date`, `poste`, `candidature` FROM `mybb`.`recrutement` WHERE `lu` = 0 ORDER BY `cid` ASC'); |
|||
06-04-2012, 14:37,
|
|||
|
|||
RE: [Tutoriel] Créer un formulaire de recrutement.
Ah si, exact, j'ai oublié de le mentionner, mais il est également possible de supprimer tout simplement `mybb`. de partout, puisque c'est de toute façon à cette base de données qu'est liée la variable.
|
|||
06-04-2012, 17:10,
|
|||
|
|||
RE: [Tutoriel] Créer un formulaire de recrutement.
J'ai donc enlever les `mybb` mes j'ai toujours un problème , j'ai plus l’erreur 500 mes une page blanche.
|
|||
06-04-2012, 18:36,
|
|||
|
|||
RE: [Tutoriel] Créer un formulaire de recrutement.
As tu bien enlevé les points après les `mybb` ?
Il y a deux raisons pour qu'une page blanche s'affiche : 1. Tu n'es pas connecté(e) au forum ; 2. Tu essayes d'accéder à la mauvaise page. Lorsque tu utilise page manager pour y mettre le code donné précédemment, tu dois y entrer le paramètre d'URI. Tu accèderas ensuite à ta page à l'adresse http://tonsite.com/forum/misc.php?page=PARAMETRE Peux-tu m'envoyer une capture d'écran de page manager, lorsque tu souhaites modifier la page en question ? |
|||
06-04-2012, 21:17,
|
|||
|
|||
RE: [Tutoriel] Créer un formulaire de recrutement.
Je vous les envoyer par MP.
|
|||
06-04-2012, 21:50,
|
|||
|
|||
RE: [Tutoriel] Créer un formulaire de recrutement.
Je t'invite à :
1. Vérifier que le nom d'utilisateur de la base de données est bien "root", 2. Supprimer tous les points qui sont devant des ` 3. Vérifier si ça fonctionne 4. Si ça ne fonctionne toujours pas, m'envoyer une nouvelle capture |
|||
06-04-2012, 22:54,
|
|||
|
|||
RE: [Tutoriel] Créer un formulaire de recrutement.
Donc , j'ai bien supprimer les mybb , root et bien le conte .
Voila le code que j'ai actuellement : (j'ai toujours page blanche) Code PHP : <?php |
|||
06-04-2012, 23:25,
|
|||
|
|||
RE: [Tutoriel] Créer un formulaire de recrutement.
Là je dois avouer que je ne vois pas trop d'où peut venir le problème...
La structure de la table "recrutement" dans la base de données est-elle correcte ? Normalement oui puisqu'aucune erreur ne s'affiche... Essaye de rajouter ceci tout en haut du code : Code PHP : <?php echo "test"; ?> Si le mot "test" s'affiche sur la page, il s'agit d'un problème de connexion au forum (la page ne parvient pas à reconnaître qui est connecté). Sinon, ça vient soit du code (mais je n'y vois pas d'erreur), soit la table qui est mal configurée. Est-ce bien une base MySQL (ou MySQLi) ? |
|||
07-04-2012, 0:07,
|
|||
|
|||
RE: [Tutoriel] Créer un formulaire de recrutement.
Le mot test et afficher , j'ai rencontres des problème avec les caches du forum ça pourrait venir de la ?
|
|||
07-04-2012, 9:41,
|
|||
|
|||
RE: [Tutoriel] Créer un formulaire de recrutement.
C'est bizarre, normalement, les pages créées avec page manager récupèrent les variables de MyBB. Tu peux toujours essayer d'ajouter le code suivant, mais je ne pense pas que ça change quelque chose. Je ne vois plus vraiment d'où vient le problème....
Code PHP : <?php include_once('./global.php'); ?> |
|||
15-04-2012, 11:58,
|
|||
|
|||
RE: [Tutoriel] Créer un formulaire de recrutement.
Pour ma part, ca me met aussi page blanche. Quelqu'un a t'il trouvé une solution ?
|
|||
15-04-2012, 19:48,
|
|||
|
|||
RE: [Tutoriel] Créer un formulaire de recrutement.
Of course.
Je récapitule. Les membres enregistrés, quels qu'ils soient, à l'exception des administrateurs (groupe 4) verront le formulaire de dépôt de candidature et s'il y a lieu, leur candidature. Les administrateurs (groupe 4) verront les différentes candidatures postées par les membres enregistrés. Ils ne verront pas le formulaire ! Les invités verront une page blanche. S'il n'y a aucune candidature à afficher, les administrateurs verront également une page blanche. |
|||
15-04-2012, 21:08,
|
|||
|
|||
RE: [Tutoriel] Créer un formulaire de recrutement.
En essayant avec un compte membre, cela m'affiche encore une page blanche ...
|
|||
16-04-2012, 0:37,
|
|||
|
|||
RE: [Tutoriel] Créer un formulaire de recrutement.
Si l'erreur vient de là d'où je pense qu'elle vient, le code ci-dessous devrait fonctionner.
Code PHP : <?php Ce qui est étrange, c'est que le code fourni dans mon tutoriel fonctionne correctement sur une installation neuve de MyBB (à condition que la table soit créée correctement). Dans $db = new PDO('mysql:host=localhost;dbname=mybb', 'root', ''); localhost est à remplacer par l'hôte, mybb par le nom de la base de données, root par le nom d'utilisateur et l'espace vide entre les deux dernières apostrophes est à remplir avec le mot de passe de la base de données. |
|||
16-04-2012, 11:24,
(Modification du message : 16-04-2012, 11:35 par L@Fouine.)
|
|||
|
|||
RE: [Tutoriel] Créer un formulaire de recrutement.
bonjour voilà j'ai une erreur dans la base de donnée c'est quoi le problème?
|
|||
16-04-2012, 12:19,
|
|||
|
|||
RE: [Tutoriel] Créer un formulaire de recrutement.
Es-tu sûr d'avoir exécuté la requête de création correctement ?
Exécute celle-ci : Code : DROP TABLE IF EXISTS `recrutement`; |
|||
16-04-2012, 13:18,
(Modification du message : 16-04-2012, 13:20 par L@Fouine.)
|
|||
|
|||
RE: [Tutoriel] Créer un formulaire de recrutement.
oui mais la db de l'hébergeur free-h n'est pas en 5.5 mais en 5.3 est ce que sa change quelque chose? d'ailleurs quand j'ai installer le forum lil y a differente mysql a ce que jai lus dans le tutoriel et moi c'était mysql improved je crois enfin du moins pas mysql normal et sur mon hébergeur la base de donnée commence toujours par mybb_ est ce que sa ne risque pas de faire un beug comme sa ne commence pas par mybb_recrutement par exemple?
|
|||
« Sujet précédent | Sujet suivant »
|
Utilisateur(s) parcourant ce sujet : 4 visiteur(s)