um parametre du fichier est manquante

um parametre du fichier est manquante

par malika younes,
Nombre de réponses : 19

bonjour lorsque j'ai mis require(dirname(__FILE__).'/../../config.php'); require_once($CFG->libdir.'/outputcomponents.php'); require_once($CFG->libdir . '/form/button.php'); require_once($CFG->dirroot.'/mod/memory/lib.php'); require_once($CFG->dirroot.'/mod/memory/locallib.php'); require_once($CFG->dirroot.'/lib/filelib.php'); require_once($CFG->dirroot . '/mod/memory/mod_form.php'); //------------------------------------------------------------------ $id = optional_param('id', 0, PARAM_INT); // course_module ID $m = optional_param('m', 0, PARAM_INT); // memory instance ID //--------------------------------------------------------------------------- if ($id) { //Given an id of a course module, finds the coursemodule description $cm = get_coursemodule_from_id('memory', $id, 0, false, MUST_EXIST); $course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST); $memoire = $DB->get_record('memory', array('id' => $cm->instance), '*', MUST_EXIST);} //--------------------------------------------------------------------------------------- elseif ($m) { $memoire = $DB->get_record('memory', array('id' => $m), '*', MUST_EXIST); $course = $DB->get_record('course', array('id' => $memoire->course), '*', MUST_EXIST); $cm = get_coursemodule_from_instance('memory', $memoire->id, $course->id, false, MUST_EXIST);} //---------------------------------------------------------------------------------------------- else { error('You must specify a course_module ID or an instance ID'); } //----------------------------------------------------------------------------------- //verifie si l'utilisateur est conecté avant d'acceder au cours ou à des activités require_course_login($course, true, $cm); $context = context_module::instance( $cm->id); require_capability('mod/memory:view', $context); add_to_log($course->id, 'memory', 'view', 'view.php?id='.$cm->id, $memoire->name, $cm->id); //-------------------------------------------------------------------------------------------- //------------------ Print the page header----------------------------------------------------- $PAGE->set_url('/mod/memory/view.php', array('id' => $cm->id)); $PAGE->set_title(format_string($memoire->name)); $PAGE->set_heading(format_string($course->fullname)); $PAGE->set_context($context);//Set the main context to which this page belongs //---------------------------------files----------------------------------// $entry=new stdclass(); $entry->id=null; $memoryform=new mod_memory_mod_form(); if($data=$memoryform->get_data()){ $filemanageritemid = required_param('files', PARAM_INT); var_dump($filemanageritemid); file_save_draft_area_files($filemanageritemid, $context->id, 'mod_memory', 'diplom', 0); } //----------------------------------------------------------------- //------------------------------------------------------------ require_capability('mod/memory:view', $context); $memory = new memory($context,$cm,$course); //---------------------------table------------------------ $teacher=get_string('Tuteur','memory'); $student=get_string('Student','memory'); $titre=get_string('Headersubject','memory'); $tut=$memory->get_user_activity_by_role($cm,'tuteur',$course->id); $std=$memory->get_user_activity_by_role($cm,'student',$course->id); //----------------------Html------------------------------------------------ $table = new html_table(); $table->attributes['class']='generaltable mod_index'; $table->head = array($student,$titre,$teacher); $table->align = array('left','center', 'center'); //-------------------------- Output starts here----------------------------------------- echo $OUTPUT->header(); //$icon=get_string('modulename',$cm->modname); //----------------------button view all-------------------------------------- $table->data[] = array($std->firstname.' '.$std->lastname,$memory->show_name(),$tut->firstname.' '.$tut->lastname); $table->data[]=array(get_string('content','memory'), $memory->show_intro(),'' ); echo html_writer::table($table); //if ($memoire->intro) { // Conditions to show the intro can change to look for own settings or whatever // echo $OUTPUT->box(format_module_intro('memoire', $memoire, $cm->id), 'generalbox mod_introbox', 'memoireintro'); //} if(has_capability('mod/memory:viewallmemory', $context)){ echo html_writer::link(new moodle_url('/mod/memory/index.php', array('id' => $course->id)),get_string('viewallmemory','memory'),array('class'=>'title1')); } // Finish the page echo $OUTPUT->footer(); } il me donne l'erreur suivant

Annexe Capture.GIF
Moyenne des évaluations  -
En réponse à malika younes

Re: um parametre du fichier est manquante

par Valery Fremaux,
Avatar Développeurs de plugins

euh.....

là je veux bien faire des efforts... mais c'est un peu illisible...

grand sourire

n tout cas ça veut dire ce que ca veut dire :

un required_param('files') ne voit pas arriver le paramètre "files" du formulaire....

En réponse à Valery Fremaux

Re: um parametre du fichier est manquante

par malika younes,

voici les deux files joints mod_form.php et view.php

mon but est d'afficher le fichier dans la page view.php

c'esrt important de savoir qu'est qu'il bloque pour avancer

En réponse à malika younes

Re: um parametre du fichier est manquante

par Valery Fremaux,
Avatar Développeurs de plugins

Quelques remarques hors pb des fichiers :

$tut=$memory->get_user_activity_by_role($cm,'tuteur',$course->id);

$std=$memory->get_user_activity_by_role($cm,'student',$course->id);

Ceci supposerait un fonctionnement basé sur les rôles. Ceci est à revoir. Il vaut mieux tester et caler ses "fonctions utilisateur" sur des capacités et non des rôles :

has_capability(....)

get_users_by_capability(....) pour trouver les utilisateurs avec une capacité. On peut avroi des "rôles propres au module" (exemple : module tracker), mais il ne doivent pas s'appuyer sur les rôles de mdl_role (si on clone un role étudiant pour une raison ou une autre, ces étudiants clonés ne seront plus captés par une stratégie basée sur les rôles).

 

En réponse à malika younes

Re: um parametre du fichier est manquante

par Valery Fremaux,
Avatar Développeurs de plugins

mod_memory_mod_form :

  function mod_memory_mod_form($current,$section,$cm,$course){
        $this->course=$course;
        
        parent::moodleform_mod($current,$section,$cm,$course);
    }

constructeur inutile : vous avez déjà $COURSE pour vous donner la référence au cours, donc pas besoin de passer un $course au formulaire...

donc dans la suite : $this->course->maxbytes => $COURSE->maxbytes

En réponse à malika younes

Re: um parametre du fichier est manquante

par Valery Fremaux,
Avatar Développeurs de plugins

mod_memory_form_mod mal construit :

set_data() se retrouve en plein milieu de la défintion de definition()

Ce sont deux méthodes différentes.

        $this->standard_coursemodule_elements();

et
        $this->add_action_buttons();
se retrouvent mal placées....

en fait, c'est surtout set_data qui se retrouve être une fonction locale interne d définition() ce qui sert à rien.

En réponse à malika younes

Re: um parametre du fichier est manquante

par Valery Fremaux,
Avatar Développeurs de plugins

utilisez print_object() plutot que var_dump() pour examiner vos données. 

Je sais que c'est dur au début, mais essayez de nettoyer votre code : en faisant plein d'essais dans tous les sens, on risque de laisser trainer plein de poussière partout et le code devient confus, avec plein de choses qui servent à rien...

En réponse à Valery Fremaux

Re: um parametre du fichier est manquante

par Valery Fremaux,
Avatar Développeurs de plugins

Je vois que vous utilisez un moodleform_mod :

ce type de formulaire est réservé exclusivement aux paramètres d'initialisation du module (paramètres de création d'instance ou de mise à jour). Vous ne contrôllez pas l'appel à ce formulaire (appel qui est fait par le noyau de Moodle) comme vous essayez de le faire dans view.php

Vous devez utiliser un moodleform simple dans tous les autres cas. (édition de données à l'intérieur de votre module, à l'exception du formulaire spécial mod_form.php

 Si c'est ce que vous voulez vraiment faire ( ajouter un fichier dans le formulaire de paramètre du module), alors il n'y a qu'un endroit pour correctement récupérer ces fichiers et les enregistrer dans le bon filearea :

mod/memory/lib.php § add_instance($memory) et resp. update_instance($memory)

qui sont les callbacks où le noyau vient vous donner ce qu'il a récupéré dans mod_form.php.

comme vous voyez, vous n'êtes pas encore sortis de l'eau.

La mise en oeuvre d'un module complet est aujourd'hui estimée à environ 1 mois de travail pour un développeur relativement expérimenté... pour un module "normal" (3 à 5 tables de données, toutes fonctionnalités standard supportées).

 

 

En réponse à Valery Fremaux

Re: um parametre du fichier est manquante

par malika younes,

bonjour c'est vrai c'est difficile de commencer à developper dans moodle,mais je veux essayer dur  pour reussir, et merci pour votre conseils qui va m'aiderai bcp

En réponse à malika younes

Re: um parametre du fichier est manquante

par malika younes,

mon fichier s'affiche avec deux icons:

$output='';

 $filename = $file->get_filename();
 $mimetype = $file->get_mimetype();
  $iconimage = $OUTPUT->pix_icon(file_file_icon($file), get_mimetype_description($file), 'moodle', array('class' => 'icon'));
       $path = file_encode_url($CFG->wwwroot.'/pluginfile.php', '/'.$context->id.'/mod_memory/diplom/0/'.$filename);

                $output .= $iconimage;
                $output .= "<a href=\"$path\">".s($filename)."</a>";}

}

return $output;

Annexe Capture.GIF
En réponse à malika younes

Re: um parametre du fichier est manquante

par malika younes,

pour les deux icons

  • à droite c'est vrai avec un link qui marche parfaitement
  • à gauche ,je remarque que c'est encore un fichier mais un fichier qui ne trouve pas

donc le probleme ,il affiche un icon du fichier qui le trouve pas ,qu'est qu'il peut causer ces probleme?

 

En réponse à malika younes

Re: um parametre du fichier est manquante

par Valery Fremaux,
Avatar Développeurs de plugins

comparez les deux URL et regardez votre fonction memory_pluginfile()

En réponse à Valery Fremaux

Re: um parametre du fichier est manquante

par malika younes,

j'ai comparé les URL ils ont tous les meme

  • http://localhost/moodle/pluginfile.php/120/mod_memory/diplom/0/."></a>
  • http://localhost/moodle/pluginfile.php/120/mod_memory/diplom/0/parcoursprofessionnelle.pdf">parcours professionnelle.pdf</a>
  • http://localhost/moodle/pluginfile.php/120/mod_memory/diplom/0/lmalika.pdf">lmalika.pdf</a>

dans pluginfile(parametres) {

....................

array_shift($args);

 $relativepath = implode('/', $args);
   $fullpath = "/$context->id/mod_memory/diplom/0/$relativepath";

...............

  send_stored_file($file, 0, 0, true);

}

le premier fichier s'affiche tout seul

Annexe Capture.GIF
En réponse à malika younes

Re: um parametre du fichier est manquante

par miriam chabi chabi,

probleme resolu

j'ai oublié de mettre le '/';

merci

En réponse à miriam chabi chabi

Re: um parametre du fichier est manquante

par Joseph Rézeau,
Avatar Développeurs Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

malika younes = miriam chabi chabi ?

En réponse à Joseph Rézeau

Re: um parametre du fichier est manquante

par malika younes,

non,pourquoi vous dites ca?

En réponse à malika younes

Re: um parametre du fichier est manquante

par Joseph Rézeau,
Avatar Développeurs Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

... parce que dans cette discussion que vous avez lancée, miriam chabi chabi intervient pour dire "probleme resolu j'ai oublié de mettre le '/';".

Du coup on ne sait plus très bien qui est qui, c'est tout.

Joseph

 

En réponse à Joseph Rézeau

Re: um parametre du fichier est manquante

par Daniel Méthot,
Avatar Moodleurs particulièrement utiles

Bonjour,

C'est vrai que ce qui peut être parfois nécessaire sur certains forums se révèle un peu agaçant ici par le fait que beaucoup avancent masqués... contrairement à la plupart des Moodleurs habituels.

C'est d'ailleurs tellement plus pratique de disposer des vrais noms et des vrais visages (n'est-ce pas Joseph ?...) pour se reconnaître lors des Moodlemoots...

Daniel

Moyenne des évaluations Utile (2)
En réponse à Daniel Méthot

Re: um parametre du fichier est manquante

par Valery Fremaux,
Avatar Développeurs de plugins

Ce sont peut être simplement les deux binomes du même projet. Il est courant en école d'ingénieur de faire des projets par binome ou trinome....

C'est peut être simplement le cas...

Nos étudiants ont simplement parfois un peu de mal à discerner la différence entre un forum privé et dédié, et des discussions exposées à une communauté large et attentive clin d’œil