$prop->name = "id"; $prop->value = $id; wiki_input_hidden($prop); $prop = null; $prop->name = "wdir"; $prop->value = $wdir; wiki_input_hidden($prop); $prop = null; $prop->name = "action"; $prop->value = "zip"; wiki_input_hidden($prop); $prop = null; $prop->name = "name"; $prop->size = "35"; $prop->value = "new.zip"; wiki_input_text($prop); $prop = null; $prop->name = "sesskey"; $prop->value = $USER->sesskey; wiki_input_hidden($prop); $prop = null; $prop->value = get_string("createziparchive"); wiki_input_submit($prop); wiki_div_end(); wiki_form_end(); wiki_change_column(); print_cancel($choose, $id, $wdir, $strcancel); wiki_table_end(); } else { displaydir($wdir); clearfilelist();
function wiki_export_content(&$WS, $folder = 'exportedfiles') { global $CFG, $contents; $export = optional_param('dfformexport', NULL, PARAM_ALPHA); $exportall = optional_param('dfformexportall', NULL, PARAM_ALPHA); //check if the form was filled in if (isset($export) || isset($exportall)) { //make sure the file doesn't exist $dfformname = optional_param('dfformname', NULL, PARAM_FILE); $currentname = clean_filename($dfformname); $cleandfwiki = clean_filename($WS->dfwiki->name); if (file_exists($CFG->dataroot . "/" . $WS->dfwiki->course . "/" . $folder . "/" . $cleandfwiki . $WS->cm->id . "/" . $currentname)) { $err = $currentname . ' already exists!'; error($err); } else { //export to xml wiki_export_content_XML($WS); $prop = null; $prop->class = 'textcenter'; $info = wiki_size_text(get_string("exportcorrectly", 'wiki'), 2, '', true); wiki_div($info, $prop); //make the zip $files = array(); //copy files inside temp where is the xml check_dir_exists("{$CFG->dataroot}/temp/" . $folder . "/wiki{$WS->cm->id}", true); check_dir_exists("{$CFG->dataroot}/{$WS->dfwiki->course}/moddata/wiki{$WS->cm->id}", true); $flist = list_directories_and_files("{$CFG->dataroot}/{$WS->dfwiki->course}/moddata/wiki{$WS->cm->id}"); if ($flist != null) { foreach ($flist as $fil) { $from_file = "{$CFG->dataroot}/{$WS->dfwiki->course}/moddata/wiki{$WS->cm->id}/{$fil}"; $to_file = "{$CFG->dataroot}/temp/" . $folder . "/wiki{$WS->cm->id}/{$fil}"; copy($from_file, $to_file); } } //continue compressing $filelist = list_directories_and_files("{$CFG->dataroot}/temp/" . $folder . "/wiki{$WS->cm->id}"); foreach ($filelist as $file) { $files[] = "{$CFG->dataroot}/temp/" . $folder . "/wiki{$WS->cm->id}/{$file}"; } check_dir_exists("{$CFG->dataroot}/{$WS->dfwiki->course}/" . $folder, true); check_dir_exists("{$CFG->dataroot}/{$WS->dfwiki->course}/" . $folder . "/{$cleandfwiki}{$WS->cm->id}", true); $destination = "{$CFG->dataroot}/{$WS->dfwiki->course}/" . $folder . "/{$cleandfwiki}{$WS->cm->id}/{$currentname}"; $status = zip_files($files, $destination); //delete folder inside temp that we've created $filelist2 = list_directories_and_files("{$CFG->dataroot}/temp/" . $folder . "/wiki{$WS->cm->id}"); foreach ($filelist2 as $file2) { unlink("{$CFG->dataroot}/temp/" . $folder . "/wiki{$WS->cm->id}/{$file2}"); } rmdir("{$CFG->dataroot}/temp/" . $folder . "/wiki{$WS->cm->id}"); $prop = null; $prop->border = '0'; $prop->class = 'boxaligncenter'; $prop->classtd = 'nwikileftnow'; wiki_table_start($prop); $wdir = '/' . $folder . '/' . $cleandfwiki . $WS->cm->id; $fileurl = "{$wdir}/{$currentname}"; $ffurl = "/file.php?file=/{$WS->cm->course}{$fileurl}"; $icon = mimeinfo("icon", $currentname); $prop = null; $prop->src = "{$CFG->pixpath}/f/{$icon}"; $prop->height = '16'; $prop->width = '16'; $prop->alt = 'File'; $im = wiki_img($prop, true); link_to_popup_window($ffurl, "display", $im, 480, 640); echo ' '; link_to_popup_window($ffurl, "display", htmlspecialchars($currentname), 480, 640); $prop = null; $prop->class = 'nwikileftnow'; wiki_change_row($prop); wiki_table_end(); $prop = null; $prop->border = '0'; $prop->class = 'boxaligncenter'; $prop->classtd = 'nwikileftnow'; wiki_table_start($prop); $prop = null; $prop->action = 'index.php?id=' . $WS->dfwiki->course . '&wdir=/"' . $folder; $prop->method = 'post'; $prop->id = 'form'; wiki_form_start($prop); $prop = null; $prop->name = 'dfformviewexported'; $prop->value = get_string('viewexported', 'wiki'); $input = wiki_input_submit($prop, true); wiki_div($input); wiki_form_end(); wiki_change_column(); print_continue("{$CFG->wwwroot}/mod/wiki/view.php?id={$WS->cm->id}"); wiki_table_end(); } } else { //create the form to export //first of all treat the form that we've sended about the pages to export if (!($frm = data_submitted())) { $contents = null; $contentsall = get_records_sql('SELECT DISTINCT pagename,dfwiki FROM ' . $CFG->prefix . 'wiki_pages WHERE dfwiki=' . $WS->dfwiki->id); if ($contentsall != null) { foreach ($contentsall as $call) { $contents[] = $call->pagename; } } $WS->nocontents = null; } else { if (!empty($frm->addall)) { $contents = null; $contentsall = get_records_sql('SELECT DISTINCT pagename,dfwiki FROM ' . $CFG->prefix . 'wiki_pages WHERE dfwiki=' . $WS->dfwiki->id); if ($contentsall != null) { foreach ($contentsall as $call) { $contents[] = $call->pagename; } } $WS->nocontents = null; } else { if (!empty($frm->removeall)) { $WS->nocontents = null; $nocontentsall = get_records_sql('SELECT DISTINCT pagename,dfwiki FROM ' . $CFG->prefix . 'wiki_pages WHERE dfwiki=' . $WS->dfwiki->id); if ($nocontentsall != null) { foreach ($nocontentsall as $nocall) { $WS->nocontents[] = $nocall->pagename; } } $contents = null; } else { $contents = null; $WS->nocontents = null; for ($i = 0; $i < $frm->sizecontents; $i++) { $contents[] = $frm->contents[$i]; } for ($j = 0; $j < $frm->sizenocontents; $j++) { $WS->nocontents[] = $frm->nocontents[$j]; } if (!empty($frm->add) and !empty($frm->addselect)) { foreach ($frm->addselect as $addpage) { $contents[] = $addpage; wiki_remove_nocontents($addpage, $WS); } } else { if (!empty($frm->remove) and !empty($frm->removeselect)) { foreach ($frm->removeselect as $removepage) { $WS->nocontents[] = $removepage; wiki_remove_contents($removepage); } } } } } } $prop = null; $prop->class = 'textcenter'; $info = wiki_size_text(get_string("selectpages", 'wiki'), 2, '', true); wiki_div($info, $prop); include 'pages.html'; wiki_div_end(); $prop = null; $prop->class = 'box generalbox generalboxcontent boxaligncenter textcenter'; wiki_div_start($prop); $prop = null; $prop->action = 'exportxml.php?id=' . $WS->cm->id . '&pageaction=exportxml'; $prop->method = 'post'; $prop->id = 'form'; wiki_form_start($prop); $prop = null; $prop->border = '0'; $prop->class = 'boxaligncenter'; $prop->classtd = 'textcenter'; wiki_table_start($prop); $sizecon = count($WS->nocontents); for ($i = 0; $i < $sizecon; $i++) { $prop = null; $prop->name = 'dfform[' . $WS->nocontents[$i] . ']'; $prop->value = $WS->nocontents[$i]; wiki_input_hidden($prop); } $prop = null; $prop->class = 'textcenter'; $info = wiki_size_text(get_string("otheroptions", 'wiki'), 2, '', true); wiki_div($info, $prop); $cleandfwiki = clean_filename($WS->dfwiki->name); $times = time(); $prop = null; $prop->class = 'nwikileftnow'; wiki_change_row($prop); $prop = null; $prop->name = 'dfforminfo'; $prop->value = '1'; wiki_input_checkbox($prop); print_string('exportinfo', 'wiki'); $prop = null; $prop->class = 'nwikileftnow'; wiki_change_row($prop); $prop = null; $prop->name = 'dfformblocks'; $prop->value = '1'; wiki_input_checkbox($prop); print_string('blocks', 'wiki'); $prop = null; $prop->class = 'nwikicenternow'; wiki_change_row($prop); $info = get_string('saveas', 'wiki'); $prop = null; $prop->name = 'dfformname'; $prop->value = $cleandfwiki . '-' . $times . '.zip'; $info .= wiki_input_text($prop, true); wiki_paragraph($info, ''); $prop = null; $prop->class = 'nwikicenternow'; wiki_change_row($prop); $prop = null; $prop->name = 'dfformexport'; $prop->value = get_string('export', 'wiki'); wiki_input_submit($prop); $prop = null; $prop->name = 'dfformexportall'; $prop->value = get_string('exportall', 'wiki'); wiki_input_submit($prop); $prop = null; $prop->name = 'dfformcancel'; $prop->value = get_string('cancel'); wiki_input_submit($prop); wiki_table_end(); wiki_form_end(); } }
function wiki_grade_print_edition_evaluation_box(&$WS) { $context = get_context_instance(CONTEXT_MODULE, $WS->cm->id); if (has_capability('mod/wiki:evaluateawiki', $context)) { print_box_start(); $prop = null; $prop->id = "form_grades"; $prop->method = "post"; $prop->action = 'view.php?id=' . $WS->linkid . '&page=' . urlencode($WS->pageaction . '/' . stripslashes_safe($WS->page)) . '&dfcontent=11&ver=' . $WS->ver . '&gid=' . $WS->groupmember->groupid . '&uid=' . $WS->member->id; wiki_form_start($prop); $prop = null; $prop->padding = "2"; $prop->aligntd = "right"; wiki_table_start($prop); echo '<b>' . get_string('grade') . '</b>: '; wiki_change_column(); /// 1 -> "+", 2 -> "=", 3 -> "-" $prop = null; $prop->value = '1'; $opt = wiki_option('+', $prop, true); $prop = null; $prop->value = '2'; $opt .= wiki_option('=', $prop, true); $prop = null; $prop->value = '3'; $opt .= wiki_option('-', $prop, true); $prop = null; $prop->name = "grade_edition"; wiki_select($opt, $prop); echo ' '; $prop = null; $prop->name = 'grade_edition_confirm'; $prop->value = get_string('set', 'wiki'); wiki_input_submit($prop); unset($prop); $prop->name = 'oldversion'; $prop->value = $WS->pageolddata->version; wiki_input_hidden($prop); unset($prop); $prop->name = 'currentversion'; $prop->value = $WS->pageverdata->version; wiki_input_hidden($prop); wiki_change_row(); echo '<b>' . get_string('eval_feedback', 'wiki') . '</b>: '; wiki_change_column(); unset($prop); $prop->size = 60; $prop->value = ''; $prop->name = 'feedback'; wiki_input_text($prop); $prop->align = 'right'; wiki_change_row($prop); echo '<i>' . get_string('note', 'wiki') . '</i>: '; wiki_change_column(); $oldversion = $WS->pageolddata->version; $currentversion = $WS->pageverdata->version; if ($currentversion < $oldversion) { $tmp = $currentversion; $currentversion = $oldversion; $oldversion = $tmp; } $version = $oldversion + 1; $count = $version - $currentversion; if ($count == 1) { echo get_string('evaluate_hist_edition', 'wiki') . ' ' . $version; } else { echo '<i>' . get_string('evaluate_hist_editions', 'wiki') . ': '; for ($i = $version; $i <= $currentversion; $i++) { echo $i; if ($i < $currentversion) { echo ', '; } } echo '</i>'; } wiki_table_end(); wiki_form_end(); print_box_end(); } }
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(); }