function built_level($tofind, $page, $level) { global $WS, $CFG; //printed links array $printed_links = array(); //search in vector if (!in_array($page, $this->pagesel)) { //put in vector $this->pagesel[] = $page; if ($tofind == $page) { if ($this->pagelev > $level) { $this->pagelev = $level; } } else { //get last version if ($pageinfo = wiki_page_last_version($page)) { //get links $links = wiki_internal_link_to_array($pageinfo->refs); //foreach link do recursive foreach ($links as $link) { //get real page name $link = wiki_get_real_pagename($link); //search in printed_links if (!in_array($link, $printed_links)) { //put in printed links $printed_links[] = $link; //mount $this->built_level($tofind, $link, $level + 1); } } } } } }
function built_index($page, $level) { global $CFG, $WS; //printed links array $printed_links = array(); // 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; } //search in vector if (!in_array($page, $this->pagesel)) { //put in vector $this->pagesel[] = $page; //get last version if (!($pageinfo = wiki_page_last_version($page))) { //empty page //put in result return '<li class="wiki_listme">' . $this->images['square'] . format_text($this->trim_string($page, 20), FORMAT_PLAIN) . '<a href="' . $dir . '&gid=' . $WS->groupmember->groupid . '&uid=' . $WS->member->id . '&page=' . urlencode($page) . '">?</a></li>'; } else { //get links $links = wiki_internal_link_to_array($pageinfo->refs); $links = wiki_filter_section_links($links); //put in result if (count($links) == 0) { $res = '<li class="wiki_listme">' . $this->images['square'] . '<a href="' . $dir . '&gid=' . $WS->groupmember->groupid . '&uid=' . $WS->member->id . '&page=' . urlencode($page) . '">' . format_text($this->trim_string($page, 20), FORMAT_PLAIN) . '</a>' . '</li>'; } else { //determine if this level is opened or close if ($level <= $this->levelsel) { $display = ''; $image_ico = $this->images['minus']; } else { $display = 'display:none'; $image_ico = $this->images['plus']; } $res = '<li class="wiki_listme">' . $image_ico . '<a href="' . $dir . '&gid=' . $WS->groupmember->groupid . '&uid=' . $WS->member->id . '&page=' . urlencode($page) . '">' . format_text($this->trim_string($page, 20), FORMAT_PLAIN) . '</a> <ul class="wiki_listme" style="margin:auto auto auto 15px;' . $display . '">'; //foreach link do recursive foreach ($links as $link) { //get real page name $link = wiki_get_real_pagename($link); //search in printed_links if (!in_array($link, $printed_links)) { //put in printed links $printed_links[] = $link; //mount $res .= $this->built_index($link, $level + 1); } } $res .= '</ul></li>'; } //return result return $res; } } else { //page is already printed return '<li class="wiki_listme">' . $this->images['square'] . '<a href="' . $dir . '&gid=' . $WS->groupmember->groupid . '&uid=' . $WS->member->id . '&page=' . urlencode($page) . '"><i>' . format_text($this->trim_string($page, 20), FORMAT_PLAIN) . '</i></a></li>'; } }
/** * return an array of all visibles pages from a pagename * @param String $page: startingpagename * @return array of Strings */ function get_visible_pages_from_page($page) { global $WS, $CFG; //printed links array $printed_links = array(); //search in vector if (!in_array($page, $this->pagesel)) { //put in vector $this->pagesel[] = $page; //get last version if ($pageinfo = wiki_page_last_version($page)) { //get links $links = wiki_internal_link_to_array($pageinfo->refs); //foreach link do recursive foreach ($links as $link) { //get real page name $link = wiki_get_real_pagename($link); //search in printed_links if (!in_array($link, $printed_links)) { //put in printed links $printed_links[] = $link; //mount $this->get_visible_pages_from_page($link); } } } } }