function wiki_edit_content(&$WS) { global $CFG; $context = get_context_instance(CONTEXT_MODULE, $WS->cm->id); require_capability('mod/wiki:caneditawiki', $context); $cont = false; $txt = ''; $titlebox = ''; $oldcontentbox = ''; $viewtitle = '0'; if ($WS->pageaction == 'adddiscussion' or isset($WS->dfform['addtitle']) and $WS->pageaction == 'edit') { $viewtitle = '1'; if (isset($WS->dfform['addtitle'])) { $titlebox = $WS->dfform['addtitle']; $oldcontentbox = $WS->dfform['oldcontent']; $contentbox = $WS->dfform['content']; } else { $titlebox = ''; $oldcontentbox = $WS->dfform['content']; $contentbox = ''; } } else { if (isset($WS->dfform['content'])) { $contentbox = $WS->dfform['content']; } else { $contentbox = ''; } } //need to check if we have preview mode $preview = optional_param('dfformpreview', NULL, PARAM_ALPHA); if (isset($preview)) { //we're in preview mode print_simple_box_start('center', '100%', '', '20'); wiki_size_text("Preview", 2); // discussions if ($titlebox == '') { $txt = $oldcontentbox . $contentbox; } else { switch ($WS->dfwiki->editor) { case 'ewiki': $txt = $oldcontentbox . chr(13) . chr(10) . '!!! ' . $titlebox . ' ' . chr(13) . chr(10) . $contentbox . chr(10); break; case 'htmleditor': $txt = $oldcontentbox . chr(13) . chr(10) . '<h1> ' . $titlebox . ' </h1>' . chr(13) . chr(10) . $contentbox . chr(10); break; default: $txt = $oldcontentbox . chr(13) . chr(10) . '= ' . $titlebox . ' =' . chr(13) . chr(10) . $contentbox . chr(10); break; } } wiki_print_page_content(stripslashes_safe($txt), $WS); print_simple_box_end(); } else { //we're not in preview mode //check if there's content //echo 'wiki_forceeditorchange='.$CFG->wiki_forceeditorchange; if (!isset($WS->pagedata->content) || $CFG->wiki_forceeditorchange) { if (!isset($WS->pagedata->content)) { $WS->pagedata->content = ''; } // si no hem decidit encara l'editor per aquesta pagina i no hem adjuntat cap arxiu demanem l'editor if (!isset($WS->dfform['selectedit']) && (!isset($WS->pagedata->editor) || $WS->pagedata->editor == '') || $CFG->wiki_forceeditorchange) { $cont = true; //$pagename=stripslashes($pagename); $prop = null; $prop->border = "0"; $prop->class = "nwikileftnow"; wiki_table_start($prop); /// removed "choose different wiki syntax on new page listbox" so teachers will not get confused (nadavkav 25.10.09) /* print_string('anothereditor','wiki'); //Converts reserved chars for html to prevent chars misreading $pagetemp = stripslashes_safe($WS->page); wiki_change_column(); $prop = null; $prop->id = "sel_edit"; $prop->method = "post"; $prop->action = 'view.php?id='.$WS->linkid.'&page=edit/'.urlencode($pagetemp).'&gid='.$WS->groupmember->groupid.'&uid='.$WS->member->id; wiki_form_start($prop); wiki_div_start(); $opt = ""; if ($WS->dfwiki->editor != 'dfwiki'){ $prop = null; $prop->value = "0"; $opt = wiki_option(get_string('dfwiki','wiki'), $prop, true); } if ($WS->dfwiki->editor != 'nwiki'){ $prop = null; $prop->value = "3"; $opt .= wiki_option(get_string('nwiki','wiki'), $prop, true); } if ($WS->dfwiki->editor != 'ewiki'){ $prop = null; $prop->value = "1"; $opt .= wiki_option(get_string('ewiki','wiki'), $prop, true); } if ($WS->dfwiki->editor != 'htmleditor'){ $prop = null; $prop->value = "2"; $opt .= wiki_option(get_string('htmleditor','wiki'), $prop, true); } $prop = null; $prop->name = "dfformselectedit"; wiki_select($opt,$prop); $prop = null; $prop->value = get_string("continue"); wiki_input_submit($prop); wiki_div_end(); wiki_form_end(); */ $prop = null; $prop->class = "nwikileftnow"; wiki_change_row($prop); echo " "; wiki_table_end(); if (isset($WS->dfform['content'])) { $content_text =& $WS->dfform['content']; } else { $content_text =& $WS->pagedata->content; } if (isset($WS->dfform['selectedit'])) { switch ($WS->dfform['selectedit']) { case '0': $WS->pagedata->editor = $WS->dfwiki->editor = 'dfwiki'; break; case '1': $WS->pagedata->editor = $WS->dfwiki->editor = 'ewiki'; break; case '2': $WS->pagedata->editor = $WS->dfwiki->editor = 'htmleditor'; break; case '3': $WS->pagedata->editor = $WS->dfwiki->editor = 'nwiki'; break; default: error('No editor was selected'); break; } } else { $WS->pagedata->editor = $WS->dfwiki->editor; } wiki_print_editor($content_text, $viewtitle, $titlebox, '', $WS); } } } if (isset($WS->dfform['content'])) { $content_text = stripslashes_safe($WS->dfform['content']); } else { $content_text = stripslashes_safe($WS->pagedata->content); } // partial editing of a section available only with nwiki editor $section = optional_param('section', '', PARAM_TEXT); $sectionnum = optional_param('sectionnum', 0, PARAM_INTEGER); if (!isset($preview) && $WS->pagedata->editor == 'nwiki' && !($section == '' && $sectionnum == 0) && !wiki_is_uploading_modified()) { $section = stripslashes($section); $sectionnum = wiki_get_real_section_position($WS->page, $section, $sectionnum); $res = wiki_split_sections($content_text, $section, $sectionnum); if ($res->error != '') { $sectionhash = optional_param('sectionhash', '', PARAM_TEXT); wiki_release_lock($WS, $WS->dfwiki->id, $WS->pagedata->pagename . '#' . $sectionhash); error($res->error); } else { $content_text = $res->current_part; } } //print the editor if ($cont == false) { if (!isset($WS->dfform['selectedit'])) { $editor = optional_param('editor', '', PARAM_ALPHA); if (!empty($WS->dfform['editor'])) { $WS->pagedata->editor = $WS->dfform['editor']; } else { if (!empty($editor)) { $WS->pagedata->editor = $editor; } } if ($WS->pageaction == 'adddiscussion' or isset($WS->dfform['addtitle'])) { if (!isset($oldcontentbox)) { wiki_print_editor($contentbox, $viewtitle, $titlebox, $content_text, $WS); } else { wiki_print_editor($contentbox, $viewtitle, $titlebox, $oldcontentbox, $WS); } } else { wiki_print_editor($content_text, $viewtitle, $titlebox, '', $WS); } } else { //comming from the above form switch ($WS->dfform['selectedit']) { case '0': $WS->pagedata->editor = 'dfwiki'; wiki_print_editor($contentbox, $viewtitle, $titlebox, $oldcontentbox, $WS); break; case '1': $WS->pagedata->editor = 'ewiki'; wiki_print_editor($contentbox, $viewtitle, $titlebox, $oldcontentbox, $WS); break; case '2': $WS->pagedata->editor = 'htmleditor'; wiki_print_editor($contentbox, $viewtitle, $titlebox, $oldcontentbox, $WS); break; case '3': $WS->pagedata->editor = 'nwiki'; wiki_print_editor($contentbox, $viewtitle, $titlebox, $oldcontentbox, $WS); break; default: error('No editor was selected'); break; } } } }
function wiki_print_editor(&$content_text, $adddiscussion = '0', $addtitle = '', $oldcontent = '', &$WS) { global $CFG, $USER; //show upload error @@@@@@@@ //try to delete a file wiki_print_editor_setup($WS); require_once $CFG->dirroot . "/mod/wiki/weblib.php"; require_once $CFG->dirroot . "/mod/wiki/locallib.php"; //Scritp WIKI_TREE $prop = null; $prop->type = 'text/javascript'; if (isset($WS->dfcourse)) { $prop->src = '../mod/wiki/editor/wiki_tree.js'; } else { $prop->src = 'editor/wiki_tree.js'; } wiki_script('', $prop); if (isset($WS->dfdir->error)) { foreach ($WS->dfdir->error as $err) { $prop = null; $prop->class = 'except'; wiki_size_text($err, 3, $prop); } } if (substr($WS->pagedata->pagename, 0, strlen('discussion:')) != 'discussion:') { $event = 'view'; } else { $event = 'discussion'; } //mount editing form //Converts reserved chars for html to prevent chars misreading $pagetemp = stripslashes_safe($WS->pagedata->pagename); $pagetemp = wiki_clean_name($pagetemp); $prop = null; $prop->action = 'view.php?id=' . $WS->linkid . '&page=' . $event . '/' . urlencode($pagetemp) . '&gid=' . $WS->groupmember->groupid . '&uid=' . $WS->member->id; $prop->method = 'post'; $prop->enctype = 'multipart/form-data'; $prop->id = 'prim'; wiki_form_start($prop); wiki_table_start(); $prop = null; $prop->name = 'dfformversion'; $prop->value = $WS->pagedata->version ? $WS->pagedata->version : '0'; wiki_input_hidden($prop); $prop = null; $prop->name = 'dfformcreated'; $prop->value = $WS->pagedata->created; wiki_input_hidden($prop); $prop = null; $prop->name = 'dfformeditable'; $prop->value = $WS->pagedata->editable; wiki_input_hidden($prop); $prop = null; if ($adddiscussion == '1') { $prop->value = 'adddiscussion'; } else { $prop->value = 'edit'; } $prop->name = 'dfformaction'; wiki_input_hidden($prop); $prop = null; $prop->name = 'dfformeditor'; $prop->value = $WS->pagedata->editor; wiki_input_hidden($prop); /* necessary for joining the section with the rest of the page */ // section name $section = optional_param('section', '', PARAM_TEXT); $prop = null; $prop->name = 'section'; $preview = optional_param('dfformpreview', '', PARAM_TEXT); if ($preview != '' || wiki_is_uploading_modified()) { // if come from a preview, upload file or delete file // the string is already unslashed and encoded $prop->value = $section; } else { // gotta strip the slashes and encode it $prop->value = urlencode(stripslashes($section)); } wiki_input_hidden($prop); // section number $prop = null; $prop->name = 'sectionnum'; $prop->value = optional_param('sectionnum', '', PARAM_INTEGER); wiki_input_hidden($prop); $prop = null; $prop->name = 'sectionhash'; $prop->value = optional_param('sectionhash', '', PARAM_TEXT); wiki_input_hidden($prop); // discussion if ($adddiscussion == '1') { wiki_size_text(get_string('adddiscussionitem', 'wiki'), 2); print_string('title', 'wiki'); wiki_br(); $prop = null; $prop->name = 'dfformaddtitle'; $prop->value = $addtitle; $prop->size = '80'; wiki_input_text($prop); wiki_br(2); $prop = null; $prop->name = 'dfformoldcontent'; $prop->value = $oldcontent; wiki_input_hidden($prop); wiki_hr(); wiki_change_row(); date_default_timezone_set('UTC'); // add editing username and date to the end of each discussion (nadavkav patch) $txt = $content_text . '<br/><br/> <i>(' . get_string('discussioneditby', 'wiki') . ': ' . $USER->firstname . " " . $USER->lastname . " " . get_string('discussionediton', 'wiki') . ": " . date(DATE_RFC822) . ")</i>"; } else { $txt = $content_text; } // wikibook $prop = null; $prop->name = 'wikibook'; $prop->value = optional_param('wikibook', '', PARAM_TEXT); wiki_input_hidden($prop); wiki_print_edit_area($txt, $WS); wiki_tags_print_editbox($WS); $prop = null; $prop->class = 'nwikileftnow'; wiki_change_row($prop); if ($WS->upload_bar) { wiki_print_edit_uploaded($WS); } wiki_change_row(); $prop = null; $prop->name = 'dfformsave'; $prop->value = get_string('save', 'wiki'); wiki_input_submit($prop); $prop = null; $prop->name = 'dfformpreview'; $prop->value = get_string('preview'); wiki_input_submit($prop); $prop = null; $prop->name = 'dfformcancel'; $prop->value = get_string('cancel'); wiki_input_submit($prop); $prop = null; $prop->name = 'dfformdefinitive'; $prop->value = '1'; $prop->id = 'checkbox'; wiki_input_checkbox($prop); print_string('highlight', 'wiki'); wiki_table_end(); wiki_form_end(); }