function wiki_action_content(&$WS) { if ($WS->wikibookinfo) { echo $WS->wikibookinfo->navibar; } $section = optional_param('section', '', PARAM_TEXT); $sectionnum = optional_param('sectionnum', 0, PARAM_INTEGER); $sectionhash = optional_param('sectionhash', '', PARAM_TEXT); $preview = optional_param('dfformpreview', '', PARAM_TEXT); $action = optional_param('dfformaction', '', PARAM_TEXT); $sectionstring = ''; if ($section == '' && $sectionnum == 0) { // main page $section = ''; } else { if ($action == 'edit' && $preview == '' && !wiki_is_uploading_modified()) { $section = ''; } else { $section = urldecode($section); $sectionstring = strtolower(get_string('section', '')); if ($preview != '' || wiki_is_uploading_modified()) { $sectionstring = ' (' . $sectionstring . ' ' . $section . ')'; } else { $sectionstring = ' (' . $sectionstring . ' ' . stripslashes($section) . ')'; } } } //this is used for giving an appropiate format to the pagename when a simple id is given if (is_numeric($WS->page)) { echo '<h1>' . wiki_get_pagename_from_id($WS) . $sectionstring . '</h1>'; } else { if (substr($WS->page, 0, strlen('discussion:')) == 'discussion:') { echo '<h1>'; print_string('discussionabout', 'wiki'); $pagename = substr($WS->page, strlen('discussion:'), strlen($WS->page)); echo ': <i>' . format_text($pagename, FORMAT_PLAIN) . '</i></h1>'; } else { if ($WS->pageaction == 'admin') { echo '<h1>' . get_string("admin", "wiki") . ": " . format_text($WS->page, FORMAT_PLAIN) . $sectionstring . '</h1>'; } else { if ($WS->wikibookinfo) { echo '<h1>' . format_text($WS->wikibookinfo->title, FORMAT_PLAIN) . $sectionstring . '</h1>'; } else { if ($WS->pageaction == 'info') { echo '<h1>' . format_text($WS->page, FORMAT_PLAIN) . '</h1>' . '<h3>' . get_string('created_on', 'wiki') . ' ' . strftime('%A, %d %B %Y, %H:%M', $WS->pagedata->created); if (wiki_grade_got_permission($WS)) { // don't show the grade if the user hasn't permission $grade = wiki_grade_get_wikigrade($WS); echo '<br/>' . get_string('grade') . ': ' . $grade . '</h3>'; } } else { if ($section == '') { echo '<h1>' . format_text($WS->page, FORMAT_PLAIN) . '</h1>'; } else { if ($sectionhash != '') { $stringhash = '&sectionhash=' . $sectionhash; } else { $stringhash = ''; } $WS->pagedata->editor = 'htmleditor'; // force htmleditor - wysiwyg (nadavkav) echo '<h1><a href="view.php?id=' . $WS->linkid . '&gid=' . $WS->groupmember->groupid . '&uid=' . $WS->member->id . '&page=view/' . urlencode($WS->page) . '&editor=' . $WS->pagedata->editor . $stringhash . '">' . format_text($WS->page, FORMAT_PLAIN) . '</a>' . $sectionstring . '</h1>'; } } } } } } print_box_start(); if ($sectionhash != '') { $pagename = $WS->pagedata->pagename . '#' . $sectionhash; } else { $pagename = $WS->pagedata->pagename; } switch ($WS->pageaction) { case 'view': wiki_release_lock($WS, $WS->dfwiki->id, $pagename); wiki_view_content($WS); break; case 'edit': if (wiki_set_lock($WS)) { wiki_edit_content($WS); } break; case 'info': wiki_release_lock($WS, $WS->dfwiki->id, $pagename); wiki_info_content($WS); break; case 'discussion': wiki_release_lock($WS, $WS->dfwiki->id, $pagename); wiki_release_lock($WS, $WS->dfwiki->id, $WS->page); wiki_view_content($WS); break; case 'editdiscussion': if (wiki_set_lock($WS)) { wiki_edit_content($WS); } break; case 'adddiscussion': wiki_release_lock($WS, $WS->dfwiki->id, $pagename); wiki_edit_content($WS); break; case 'infodiscussion': wiki_release_lock($WS, $WS->dfwiki->id, $pagename); wiki_info_content($WS); break; case 'navigator': wiki_release_lock($WS, $WS->dfwiki->id, $pagename); wiki_navigator_content($WS); break; case 'admin': wiki_release_lock($WS, $WS->dfwiki->id, $pagename); wiki_admin($WS); break; default: print_string('nopageaction', 'wiki'); break; } print_box_end(); // show wiki tags wiki_tags_print_viewbox($WS); // add grade evaluation box if possible wiki_grade_print_page_evaluation_box($WS); if ($WS->wikibookinfo) { echo $WS->wikibookinfo->navibar; } }
function wiki_grade_append_to_discussion($WS, $pagename, $grade, $comment) { global $USER, $CFG, $COURSE; $context = get_context_instance(CONTEXT_MODULE, $WS->cm->id); $wikimanager = wiki_manager_get_instance(); $title = get_string('eval_discuss_title', 'wiki'); switch ($WS->dfform['editor']) { case 'ewiki': $append = chr(13) . chr(10) . '!!! ' . $title . ' ' . chr(13) . chr(10); break; case 'htmleditor': $append = chr(13) . chr(10) . '<h1> ' . $title . ' </h1>' . chr(13) . chr(10); break; default: $append = chr(13) . chr(10) . '= ' . $title . ' =' . chr(13) . chr(10); break; } $anonymous = optional_param('grade_anonymous', '', PARAM_TEXT); if ($anonymous == 'on') { $a->user = get_string('eval_anonymous_user', 'wiki'); } else { $info = $wikimanager->get_user_info_by_id($USER->id); $userprofile = '<a href="' . $CFG->wwwroot . '/user/view.php?id=' . $USER->id . '&course=' . $COURSE->id . '">' . $info->firstname . ' ' . $info->lastname . '</a>'; $a->user = get_string('user') . ' ' . $userprofile; } $a->grade = wiki_grade_get_wikigrade($WS, $grade); $append .= get_string('eval_discuss_body_1', 'wiki', $a); $append .= "\n {$comment}\n"; unset($a); $a->quality = wiki_grade_get_quality($pagename, $WS->dfwiki->id, $WS->member->id, $WS->groupmember->groupid, 0); $append .= get_string('eval_discuss_body_2', 'wiki', $a); $pagename = 'discussion:' . $pagename; $data->pagename = $pagename; $page = wiki_page_last_version($pagename, $WS); if ($page) { $txt = $page->content . $append; $data->version = $page->version + 1; $data->created = $page->created; //get internal links of the page $links_refs = wiki_sintax_find_internal_links($txt); $links_clean = wiki_clean_internal_links($links_refs); $txt = wiki_set_clean_internal_links($txt, $links_refs, $links_clean); $data->refs = wiki_internal_link_to_string($links_refs); $data->editor = $page->editor; $data->editable = $page->editable; $data->hits = $page->hits; } else { $txt = $append; $data->version = 1; $data->created = time(); $data->refs = ''; //$data->editor = $WS->dfform['editor']; $data->editor = 'nwiki'; $data->editable = 1; $data->hits = 0; } $data->author = $USER->username; $data->userid = $USER->id; $data->ownerid = $WS->member->id; $data->lastmodified = time(); $data->content = addslashes($txt); $data->dfwiki = $WS->dfwiki->id; $data->groupid = $WS->groupmember->groupid; //$WS->groupmember->groupid = isset($WS->gid) ? $WS->gid : $WS->groupmember->groupid; //Check if the version passed is the last one or another one. if (($max = wiki_page_current_version_number($data, $WS)) >= $data->version) { notify("WARNING: some discussion version may be overwrited.", 'notifyproblem', $align = 'center'); $data->version = $max + 1; } ///Add some slashes before inserting the record $data->pagename = addslashes($data->pagename); $newpage = new wiki_page(PAGERECORD, $data); if (!($pageid = $wikimanager->save_wiki_page($newpage))) { error(get_string('noinsert', 'wiki')); } add_to_log($COURSE->id, 'wiki', 'save page', addslashes("view.php?id={$WS->cm->id}&page={$pagename}"), $pageid, $WS->cm->id); }