brisfan (Créer un compte)

Toutes mes réponses sur les forums

6 sujets de 1 à 6 (sur un total de 6)
  • Auteur
    Messages
  • brisfan
    Participant
    Initié WordPress
    7 contributions

    Pour utiliser le php dans WordPress, comment me conseilles-tu de procéder?
    Pour le moment j’ai trouvé une extension « PHP Code for posts » pour mettre mon code sur une page.

    brisfan
    Participant
    Initié WordPress
    7 contributions

    Merci beaucoup! Avec les rudiments que je possède en php je devrais pouvoir me débrouiller.
    L’année dernière je me débrouillais avec une fonction, un code de filtrage et un code d’affichage en tableau que j’avais écris.

    – cette fonction prend en entrée un chemin de dossier $dirscanned et un type d’extension $extension. Elle liste de manière récursive le chemin de tout les fichiers de l’extension choisie inclus dans le dossier et ses sous-dossiers.

    //


    //
    // Liste de manière récursive (aussi dans les sous-dossiers) //
    // les chemins d’accès à tous les fichiers de l’extension choisie. //
    //


    //

    function lister1dossierR($dirscanned, $extension)
    {
    // Arguments :
    //$dirscanned chemin d’accès scanné, cela doit être un chemin de dossier sans le « / » à la fin.
    //$extension extension du type de fichier qui nous intéresse.

    //On scanne le contenu du dossier
    $scan = scandir($dirscanned)or die(‘Erreur, le dossier n’a pas pu être scanné’);

    //initialisation des variables
    $resultat = array();
    $listedossiers = array();

    //On parcourt le tableau $scan
    foreach ($scan as $fichier)
    {
    //Si c’est un dossier à l’exception de . et ..
    if(is_dir($dirscanned.’/’.$fichier) AND $fichier != ‘.’ AND $fichier != ‘..’)
    {$listedossiers[] = $dirscanned.’/’.$fichier;}//on ajoute le chemin du dossier dans la liste des dossiers

    //Si c’est un fichier
    else
    {
    $extensionfichier = substr($fichier, -3); // On récupère l’extension du fichier
    if ($extensionfichier == $extension) // Si l’extension est celle recherchée
    {$resultat[] = $dirscanned.’/’.$fichier;} //On l’enregistre dans le tableau des résultats
    }
    }

    // Récursivité de la fonction – On rappelle la fonction pour chacun des dossiers de la liste et on fusionne les résultats
    foreach ($listedossiers as $chemindossier)
    {$resultat = array_merge($resultat, lister1dossierR($chemindossier, $extension));}

    return ($resultat);
    }

    – ce code permet de filtrer les liens qui correspondent à l’élève concerné

    //


    //
    // – Filtrage des fichiers PDF en vue d’afficher un tableau de liens.//
    // – /! Nécessite la fonction : lister1dossierR() /! //
    //


    //

    /* préparation des variables à utiliser */
    $studentID = $_SESSION;
    $studentClass = substr($studentID,0,2);

    // longueur en caractère de la chaine correspondant à la partie commune de l’adresse du fichier + 1 pour le « / »
    $AMC_dir_length = strlen($AMC_dir) + 1;
    $RAPPORT_dir_length = strlen($RAPPORT_dir) + 1;

    //listing des chemins d’accès des fichiers dans les dossiers à analyser
    $liste_AMC = lister1dossierR($AMC_dir, ‘pdf’); // dossier contenant les pdf interros et punitions
    $liste_RAPPORTS = lister1dossierR($RAPPORT_dir, ‘pdf’); // dossier contenant les rapports

    //Déclaration des matrices de résultats (tableaux à deux dimmensions) des fichiers listés :
    $liste_interro = array(); // les fichiers d’interros

    // traitement de la variable $liste (QCM & punitions)
    foreach($liste_AMC as $chemin)
    {
    /* préparation des variables correspondant au fichier */
    $classe_fichier = substr($chemin, $AMC_dir_length,2); // On récupère la classe correspondant au fichier
    $id_interro = substr($chemin, $AMC_dir_length,4);// On récupère l’ID_interro correspondant au fichier

    if ($classe_fichier == $studentClass) //On vérifie que la classe de l’élève et celle du fichier correspondent
    {
    $fin_de_chemin = substr($chemin, –8); // On récupère la fin du nom du fichier

    /* Si le fichier est l’un des trois que l’on cherche (sujets vierges/corrigé standard/corrigé personnel),
    on l’ajoute, lui et son chemin dans un sous tableau portant comme nom l’ID de l’interro*/

    // – fichier sujet
    if ($fin_de_chemin == « ujet.pdf »)
    {$liste_interro[$id_interro][« Nom »] = $id_interro;$liste_interro[$id_interro][« DOC-sujet.pdf »] = ‘ DOC-sujet.pdf‘;}

    // – fichier corrigé standard
    if ($fin_de_chemin == $studentClass. »99.pdf »)
    {$liste_interro[$id_interro][« Nom »] = $id_interro;$liste_interro[$id_interro][« DOC-corrige.pdf »] = ‘ DOC-corrigé.pdf‘;}

    // – fichier corrigé personnalisé
    if ($fin_de_chemin == $studentID. ».pdf »)
    {$liste_interro[$id_interro][« Nom »] = $id_interro;$liste_interro[$id_interro][$studentID. ».pdf »] = ‘ ‘.$studentID.’.pdf‘;}
    }
    }

    – ce code sert à afficher la matrice des résultats filtrés.

    //—Affichage tableau interrogation
    echo ‘

    ‘;
    echo ‘

    ‘;
    foreach($liste_interro as $ligne_interro)
    {
    if (!empty($ligne_interro[« DOC-corrige.pdf »])) // Si il n’y a pas de corrigé le sujet ne s’affichera pas
    {echo ‘

    ‘;}

    }
    ?>

    Liste des fichiers d’interrogation disponibles
    ID interro Sujets vierges Corrigé générique Corrigé personnalisé
    ‘.$ligne_interro[« Nom »].’ ‘.$ligne_interro[« DOC-sujet.pdf »].’ ‘.$ligne_interro[« DOC-corrige.pdf »].’ ‘.$ligne_interro[$studentID. ».pdf »].’
    brisfan
    Participant
    Initié WordPress
    7 contributions

    Si j’ai bien compris,
    tu me proposes de faire différents rôles, comme par exemple :
    – un rôle élève, pour pouvoir publier des articles pour l’ensemble de mes élèves.
    – un rôle pour chacune de mes classes, pour rendre visible un article par l’ensemble des élèves d’une classe
    – un rôle par élève pour faire un article personnel auquel je pourrais attacher des fichiers que du coup seul l’élève pourra lire.

    C’est bien ça?

    brisfan
    Participant
    Initié WordPress
    7 contributions

    J’ai du coup une nouvelle question. J’en suis à créer des comptes utilisateurs. Est-il possible de créer des comptes avec identifiants et mots de passe sans adresse email?
    Pour créer les comptes de mes élèves à l’avance c’est indispensable, je ne connais pas à l’avance leur email!

    brisfan
    Participant
    Initié WordPress
    7 contributions

    Merci beaucoup pour tes explications je vais m’intéresser au plug-in member de plus près.
    En faisant des recherches j’ai trouvé 2 autres plug-in potentiellement intéressant.
    – S2Member ici http://www.echodesplugins.li-an.fr/plugins/une-page-reservee-a-chacun-de-vos-membres-avec-s2member/
    – Customer-Area (payant) http://www.echodesplugins.li-an.fr/plugins/customer-area-2/

    brisfan
    Participant
    Initié WordPress
    7 contributions

    Personne n’aurai la moindre piste à me proposer? :(

6 sujets de 1 à 6 (sur un total de 6)