function get_content() { global $WS, $CFG; if ($this->content !== NULL) { return $this->content; } //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); $this->content = new stdClass(); $this->content->items = array(); $this->content->icons = array(); //$this->content->footer = '<br />'.helpbutton ('index', get_string('block_index', 'wiki'), 'wiki', true, false, '', true).get_string('block_index', 'wiki'); //If we are out of a dfwiki activity or in a different //dfwiki format course and we want to create a block: if (empty($WS->dfwiki)) { $this->content->text = get_string('block_warning', 'wiki'); return $this->content; } $list = '<table border="0" cellspacing="0" cellpadding="0"><tr><td class="nwikileftnow"> <ul class="wiki_listme">'; $ead = wiki_manager_get_instance(); if (isset($WS->pagedata->pagename)) { $this->levelsel = $ead->level($WS->pagedata->pagename); } //call recursive function $list .= $this->built_index($WS->dfwiki->pagename, 0); $list .= '</ul></td></tr></table>'; $this->content->text = $list; $this->content->footer .= '<style>.wiki_listme { padding-right:5px; } .dir-rtl td.nwikileftnow { text-align:right; } </style>'; return $this->content; }
function get_content() { global $CFG, $WS; $wiki = wiki_param('dfwiki'); $groupmember = wiki_param('groupmember'); if ($this->content !== NULL) { return $this->content; } //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); $this->content = new stdClass(); $this->content->items = array(); $this->content->icons = array(); //$this->content->footer = '<br />'.helpbutton ('list_pages', get_string('block_list_pages', 'wiki'), 'wiki', true, false, '', true).get_string('block_list_pages', 'wiki'); $this->content->items[] = '<a href="http://www.google.com">google</a>'; $this->content->icons[] = '<img src="icon.gif" alt="">'; //If we are out of a dfwiki activity or in a different //dfwiki format course and we want to create a block: if (empty($WS->dfwiki)) { $this->content->text = get_string('block_warning', 'wiki'); return $this->content; } $ead = wiki_manager_get_instance(); $pages = $ead->get_wiki_page_names_of_wiki($wiki, $groupmember->groupid); $this->orderpages($pages); $syns = $ead->get_wiki_synonyms(); $this->orderpages($syns); $list = '<table border="0" cellspacing="0" cellpadding="0"><tr><td class="nwikileftnow"> <ul class="wiki_listme">'; if (!isset($WS->pagedata->pagename)) { $WS->load_page_data(); } if (count($pages) != 0) { foreach ($this->ordereds as $key => $ordered) { //chack if the letter is the curretn one. if ($key == $this->get_index($WS->pagedata->pagename)) { $display = ''; $image_ico = $this->images['minus']; } else { $display = 'display:none'; $image_ico = $this->images['plus']; } $list .= '<li class="wiki_listme">' . $image_ico . '<a href="#" class="wiki_folding">' . $key . '</a> <ul class="wiki_listme" style="margin:auto auto auto 15px;' . $display . '">'; // dfwiki-block || course-block $dir = ""; if ($this->instance->pagetype == "mod-wiki-view") { $dir = $CFG->wwwroot . '/mod/wiki/view.php?id=' . $WS->cm->id; } else { $dir = $CFG->wwwroot . '/course/view.php?id=' . $WS->cm->course; } foreach ($ordered as $link) { if (in_array($link, $syns)) { $page_icon = $this->images['syn']; $page = wiki_get_real_pagename($link); } else { $page_icon = $this->images['square']; $page = $link; } $list .= '<li class="wiki_listme">' . $page_icon . '<a href="' . $dir . '&page=' . urlencode($page) . '&gid=' . $WS->groupmember->groupid . '&uid=' . $WS->member->id . '" title="' . urlencode($link) . '">' . format_text($this->trim_string($link, 20), FORMAT_PLAIN) . '</a>' . '</li>'; } $list .= '</ul></li>'; } } else { $list .= '<li>' . get_string('nopages', 'wiki') . '</li>'; } $list .= '</ul></td></tr></table>'; $this->content->text = $list; $this->content->footer .= '<style>.wiki_listme { padding-right:5px; } .dir-rtl td.nwikileftnow { text-align:right; } </style>'; return $this->content; }
function wiki_print_menu_groups_and_students($listgroups, $listgroupsmembers, &$WS) { //this function prints the groupmode menu with the students global $CFG, $COURSE, $USER; if (empty($listgroupsmembers)) { return; } $wikimanager = wiki_manager_get_instance(); $wikipersistor = new wiki_persistor(); //if we are in visible groups with separate students //and the user is not a teacher or admin //then we don't take his group in the menu list $context = get_context_instance(CONTEXT_MODULE, $WS->cm->id); //if((($WS->dfwiki->groupmode == 1) && ($WS->cm->studentmode == 2)) if (isset($WS->cm->groupmode) && $WS->cm->groupmode == 1 && $WS->dfwiki->studentmode > 0 && !has_capability('mod/wiki:editanywiki', $context)) { $usergroupids = $wikipersistor->get_groupid_by_userid_and_courseid($USER->id, $COURSE->id); $userid = array(); foreach ($usergroupids as $usergroup) { $userid[] = $usergroup->groupid; } foreach ($listgroups as $key => $group) { if (!in_array($group->id, $userid)) { unset($listgroups[$key]); } } } if (isset($WS->cm->groupmode) && $WS->cm->groupmode == 1 && $WS->dfwiki->studentmode == 1 && !has_capability('mod/wiki:editanywiki', $context)) { foreach ($listgroupsmembers as $key => $member) { foreach ($usergroupids as $usergroup) { if ($member->groupid == $usergroup->groupid && $member->id != $USER->id) { unset($listgroupsmembers[$key]); } } } } //if((($WS->dfwiki->groupmode == 2) && ($WS->cm->studentmode == 1)) if (isset($WS->cm->groupmode) && $WS->cm->groupmode == 2 && $WS->dfwiki->studentmode == 1 && !has_capability('mod/wiki:editanywiki', $context)) { //the user group $usergroupids = $wikipersistor->get_groupid_by_userid_and_courseid($USER->id, $COURSE->id); $listgroups = $wikimanager->get_course_groups($COURSE->id); //Course students list without the user group //We take the groups, and id, firstname and lastname of the students //$listgroupmembers = $wikimanager->get_course_members($COURSE->id); foreach ($listgroupsmembers as $key => $member) { foreach ($usergroupids as $usergroup) { if ($member->groupid == $usergroup->groupid && $member->id != $USER->id) { unset($listgroupsmembers[$key]); //break; } } } } $cm->id = isset($WS->dfcourse) ? $COURSE->id : $WS->cm->id; $prop = null; $prop->type = "text/javascript"; $info = ' //<![CDATA[ function wiki_select_group(groups, groupstudent){ var i=0; var j=0; var k=0; var numstudents=0 ; var numgroups=0; numgroups = groups.length; for(i=0; i<numgroups; i++){ numstudents = groupstudent[i].length; for(j=0; j<numstudents; j++){ if((document.forms[\'form_sel_group\'].selectstudent.options[k].selected)&&(document.forms[\'form_sel_group\'].selectstudent.options[k].value == groupstudent[i][j])){ document.forms[\'form_sel_group\'].selectgroup.value = groups[i]; } k++; } } } var groups = new Array();'; $ind = 0; foreach ($listgroups as $lgroup) { $info .= "\n groups[{$ind}] = '{$lgroup->id}';"; $ind++; } if (has_capability('mod/wiki:editawiki', get_context_instance(CONTEXT_MODULE, $cm->id))) { $info .= "\n\t\t\tgroups[{$ind}] = '0';"; } else { if (isset($usergroupids)) { foreach ($usergroupids as $usergroup) { $info .= "\n\t\t\t\t groups[{$ind}] = '{$usergroup->groupid}';"; } } } $info .= ' var groupstudent = new Array(); //]]>'; wiki_script($info, $prop); $prop = null; $prop->border = "0"; $prop->class = "boxalignright"; $prop->classtd = "nwikileftnow"; wiki_table_start($prop); $group = get_field('groups_members', 'id', 'groupid', $WS->groupmember->groupid, 'userid', $WS->member->id); if (!empty($group) and isset($listgroupsmembers[$group])) { echo get_string('viewpagestudent', 'wiki') . $listgroupsmembers[$group]->lastname . ', ' . $listgroupsmembers[$group]->firstname; wiki_table_end(); $prop = null; $prop->border = "0"; $prop->class = "boxalignright"; $prop->classtd = "nwikileftnow"; wiki_table_start($prop); } print_string('anotherstudent', 'wiki'); wiki_change_column(); $prop = null; $prop->id = "form_sel_group"; $prop->method = "post"; $prop->action = 'view.php?id=' . $cm->id; wiki_form_start($prop); wiki_div_start(); $i = 0; $opt = null; $opt2 = null; foreach ($listgroups as $lgroup) { $liststudentsingroup[$i] = wiki_students_in_a_group($lgroup->id, $listgroupsmembers); $j = 0; $prop = null; $prop->type = "text/javascript"; $info = "groupstudent[{$i}] = new Array();"; wiki_script($info, $prop); foreach ($liststudentsingroup[$i] as $lstudentsingroup) { $prop = null; $prop->value = $lstudentsingroup->id; $opt .= wiki_option($lstudentsingroup->lastname . ', ' . $lstudentsingroup->firstname, $prop, true); $prop = null; $prop->type = "text/javascript"; $info = "groupstudent[{$i}][{$j}]= '{$lstudentsingroup->id}';"; wiki_script($info, $prop); $j++; } if ($WS->cm->groupmode != 0) { $prop = null; $prop->label = $lgroup->name; $opt2 .= wiki_optgroup($opt, $prop, true); $opt = null; } $i++; } if (has_capability('mod/wiki:editawiki', get_context_instance(CONTEXT_MODULE, $cm->id))) { $prop = null; $prop->value = $USER->id; $opt .= wiki_option($USER->lastname . ', ' . $USER->firstname, $prop, true); $prop = null; $prop->type = "text/javascript"; $info = "groupstudent[{$i}] = new Array(); groupstudent[{$i}][0] = {$USER->id};"; wiki_script($info, $prop); $prop = null; $prop->label = "teacher"; $opt2 .= wiki_optgroup($opt, $prop, true); $opt = null; } else { if (isset($usergroupid)) { $prop = null; $prop->value = $USER->id; $opt .= wiki_option($USER->lastname . ', ' . $USER->firstname, $prop, true); $prop = null; $prop->type = "text/javascript"; $info = "groupstudent[{$i}] = new Array(); groupstudent[{$i}][0] = {$USER->id};"; wiki_script($info, $prop); $prop = null; $prop->label = "user"; $opt2 .= wiki_optgroup($opt, $prop, true); $opt = null; } } $prop = null; $prop->id = "selectstudent"; $prop->name = "dfformselectstudent"; $prop->events = 'onchange="javascript:wiki_select_group(groups, groupstudent)"'; wiki_select($opt2, $prop); $prop = null; $prop->id = "selectgroup"; $prop->name = "dfformselectgroup"; wiki_input_hidden($prop); $prop = null; $prop->type = "text/javascript"; $info = "this.wiki_select_group(groups, groupstudent)"; wiki_script($info, $prop); $prop = null; $prop->value = get_string("continue"); wiki_input_submit($prop); wiki_div_end(); wiki_form_end(); wiki_table_end(); }
function wiki_print_edit_area(&$content_text, &$WS) { global $USER, $dfwiki_editor; //select editor: switch ($WS->pagedata->editor) { case 'htmleditor': //moodle html editor $prop = null; $prop->border = 0; $prop->width = '100%'; $prop->aligntd = 'right'; wiki_table_start($prop); helpbutton('howtowiki_htmleditor', get_string('helpeditor', 'wiki'), 'wiki'); wiki_change_row(); print_textarea(true, 20, 70, 0, 0, 'dfformcontent', $content_text); use_html_editor('dfformcontent'); wiki_table_end(); break; default: //default and dfwiki editor //print buttons wiki_table_start(); $prop = null; $prop->width = '100%'; $prop->valigntd = 'top'; $prop->classtd = 'nwikitambuttons'; wiki_table_start($prop); $prop = null; $prop->type = 'text/javascript'; $prop->src = 'editor/buttons.js'; wiki_script('', $prop); $prop = null; $prop->type = 'text/javascript'; $prop->src = '../mod/wiki/editor/buttons.js'; wiki_script('', $prop); $info = ""; if (isset($dfwiki_editor)) { foreach ($dfwiki_editor as $button) { $text = $button[4] != '' ? get_string($button[4], 'wiki') : ''; if (isset($WS->dfcourse)) { $info .= 'addButton(\'../mod/wiki/editor/images/' . $button[0] . '\',\'' . get_string($button[1], 'wiki') . '\',\'' . $button[2] . '\',\'' . $button[3] . '\',\'' . $text . "');\n"; } else { $info .= 'addButton(\'editor/images/' . $button[0] . '\',\'' . get_string($button[1], 'wiki') . '\',\'' . $button[2] . '\',\'' . $button[3] . '\',\'' . $text . "');\n"; } } } $prop = null; $prop->type = 'text/javascript'; wiki_script($info, $prop); $prop = null; $prop->valign = 'top'; wiki_change_column($prop); wiki_print_edit_smileis($WS); $prop = null; $prop->align = 'right'; $prop->valign = 'top'; wiki_change_column($prop); helpbutton('howtowiki_' . $WS->pagedata->editor, get_string('helpeditor', 'wiki'), 'wiki'); wiki_table_end(); wiki_change_row(); $info = ' var cont=0; function onKeyPress(e) { cont++; if(cont==200){ <!-- No es pot accedir al checkbox a traves de document.form.dfform[definitive] --> document.getElementById("checkbox").click() } }'; $prop = null; $prop->type = 'text/javascript'; wiki_script($info, $prop); $prop = null; $prop->cols = $WS->editor_size->editorcols; $prop->rows = $WS->editor_size->editorrows; $prop->name = 'dfformcontent'; $prop->events = 'onkeypress="return onKeyPress(event);"'; wiki_textarea(s($content_text), $prop); wiki_table_end(); break; } }