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 = '&amp;sectionhash=' . $sectionhash;
                            } else {
                                $stringhash = '';
                            }
                            $WS->pagedata->editor = 'htmleditor';
                            // force htmleditor - wysiwyg (nadavkav)
                            echo '<h1><a href="view.php?id=' . $WS->linkid . '&amp;gid=' . $WS->groupmember->groupid . '&amp;uid=' . $WS->member->id . '&amp;page=view/' . urlencode($WS->page) . '&amp;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 . '&amp;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}&amp;page={$pagename}"), $pageid, $WS->cm->id);
}