コード例 #1
0
 /**
  * Write the plugin summary with an optional link to view the full feedback/submission.
  *
  * @param assign_plugin $plugin Submission plugin or feedback plugin
  * @param stdClass $item Submission or grade
  * @param string $returnaction The return action to pass to the
  *                             view_submission page (the current page)
  * @param string $returnparams The return params to pass to the view_submission
  *                             page (the current page)
  * @return string The summary with an optional link
  */
 private function format_plugin_summary_with_link(assign_plugin $plugin, stdClass $item, $returnaction, $returnparams)
 {
     $link = '';
     $showviewlink = false;
     $summary = $plugin->view_summary($item, $showviewlink);
     $separator = '';
     if ($showviewlink) {
         $viewstr = get_string('view' . substr($plugin->get_subtype(), strlen('assign')), 'assign');
         $icon = $this->output->pix_icon('t/preview', $viewstr);
         $urlparams = array('id' => $this->assignment->get_course_module()->id, 'sid' => $item->id, 'gid' => $item->id, 'plugin' => $plugin->get_type(), 'action' => 'viewplugin' . $plugin->get_subtype(), 'returnaction' => $returnaction, 'returnparams' => http_build_query($returnparams));
         $url = new moodle_url('/mod/assign/view.php', $urlparams);
         $link = $this->output->action_link($url, $icon);
         $separator = $this->output->spacer(array(), true);
     }
     return $link . $separator . $summary;
 }
コード例 #2
0
    /**
     * Add one plugins settings to edit plugin form
     *
     * @param assign_plugin $plugin The plugin to add the settings from
     * @param MoodleQuickForm $mform The form to add the configuration settings to. This form is modified directly (not returned)
     * @return void
     */
    private function add_plugin_settings(assign_plugin $plugin, MoodleQuickForm $mform) {
        global $CFG;
        if ($plugin->is_visible()) {
            // enabled
            //tied disableIf rule to this select element
            $mform->addElement('selectyesno', $plugin->get_subtype() . '_' . $plugin->get_type() . '_enabled', $plugin->get_name());
            $mform->addHelpButton($plugin->get_subtype() . '_' . $plugin->get_type() . '_enabled', 'enabled', $plugin->get_subtype() . '_' . $plugin->get_type());


            $default = get_config($plugin->get_subtype() . '_' . $plugin->get_type(), 'default');
            if ($plugin->get_config('enabled') !== false) {
                $default = $plugin->is_enabled();
            }
            $mform->setDefault($plugin->get_subtype() . '_' . $plugin->get_type() . '_enabled', $default);

            $plugin->get_settings($mform);

        }

    }
コード例 #3
0
ファイル: locallib.php プロジェクト: covex-nn/moodle
 /**
  * Rewrite plugin file urls so they resolve correctly in an exported zip.
  *
  * @param string $text - The replacement text
  * @param stdClass $user - The user record
  * @param assign_plugin $plugin - The assignment plugin
  */
 public function download_rewrite_pluginfile_urls($text, $user, $plugin)
 {
     $groupmode = groups_get_activity_groupmode($this->get_course_module());
     $groupname = '';
     if ($groupmode) {
         $groupid = groups_get_activity_group($this->get_course_module(), true);
         $groupname = groups_get_group_name($groupid) . '-';
     }
     if ($this->is_blind_marking()) {
         $prefix = $groupname . get_string('participant', 'assign');
         $prefix = str_replace('_', ' ', $prefix);
         $prefix = clean_filename($prefix . '_' . $this->get_uniqueid_for_user($user->id) . '_');
     } else {
         $prefix = $groupname . fullname($user);
         $prefix = str_replace('_', ' ', $prefix);
         $prefix = clean_filename($prefix . '_' . $this->get_uniqueid_for_user($user->id) . '_');
     }
     $subtype = $plugin->get_subtype();
     $type = $plugin->get_type();
     $prefix = $prefix . $subtype . '_' . $type . '_';
     $result = str_replace('@@PLUGINFILE@@/', $prefix, $text);
     return $result;
 }
コード例 #4
0
ファイル: importziplib.php プロジェクト: Jtgadbois/Pedadida
    /**
     * Does this file exist in any of the current files supported by this plugin for this user?
     *
     * @param assign $assignment - The assignment instance
     * @param stdClass $user The user matching this uploaded file
     * @param assign_plugin $plugin The matching plugin from the filename
     * @param string $filename The parsed filename from the zip
     * @param stored_file $fileinfo The info about the extracted file from the zip
     * @return bool - True if the file has been modified or is new
     */
    public function is_file_modified($assignment, $user, $plugin, $filename, $fileinfo) {
        $sg = null;

        if ($plugin->get_subtype() == 'assignsubmission') {
            $sg = $assignment->get_user_submission($user->id, false);
        } else if ($plugin->get_subtype() == 'assignfeedback') {
            $sg = $assignment->get_user_grade($user->id, false);
        } else {
            return false;
        }

        if (!$sg) {
            return true;
        }
        foreach ($plugin->get_files($sg, $user) as $pluginfilename => $file) {
            if ($pluginfilename == $filename) {
                // Extract the file and compare hashes.
                $contenthash = '';
                if (is_array($file)) {
                    $content = reset($file);
                    $contenthash = sha1($content);
                } else {
                    $contenthash = $file->get_contenthash();
                }
                if ($contenthash != $fileinfo->get_contenthash()) {
                    return true;
                } else {
                    return false;
                }
            }
        }
        return true;
    }