コード例 #1
0
function ouwiki_tree_index($pageid, &$index, $subwiki, $cm)
{
    $thispage = $index[$pageid];
    $output = '<li>' . ouwiki_display_page_in_index($thispage, $subwiki, $cm);
    if (count($thispage->children) > 0) {
        $output .= '<ul>';
        foreach ($thispage->children as $childid) {
            $output .= ouwiki_tree_index($childid, $index, $subwiki, $cm);
        }
        $output .= '</ul>';
    }
    $output .= '</li>';
    return $output;
}
// Get actual index
$index = ouwiki_get_subwiki_index($subwiki->id);
$orphans = false;
if (count($index) == 0) {
    print '<p>' . get_string('startpagedoesnotexist', 'ouwiki') . '</p>';
} else {
    if ($treemode) {
        ouwiki_build_tree($index);
        // Print out in hierarchical form...
        print '<ul class="ouw_indextree">';
        print ouwiki_tree_index(reset($index)->pageid, $index, $subwiki, $cm);
        print '</ul>';
        foreach ($index as $indexitem) {
            if (count($indexitem->linksfrom) == 0 && !is_null($indexitem->title)) {
                $orphans = true;
            }
        }
コード例 #2
0
 public function test_ouwiki_structure()
 {
     $this->resetAfterTest(true);
     $user = $this->get_new_user();
     $course = $this->get_new_course();
     // Setup a wiki to use.
     $ouwiki = $this->get_new_ouwiki($course->id, OUWIKI_SUBWIKIS_SINGLE);
     $cm = get_coursemodule_from_instance('ouwiki', $ouwiki->id);
     $this->assertNotEmpty($cm);
     $context = context_module::instance($cm->id);
     $groupid = 0;
     $this->setUser($user);
     $subwiki = ouwiki_get_subwiki($course, $ouwiki, $cm, $context, $groupid, $user->id, true);
     // Create the start page.
     $startpagename = 'testpage1';
     $formdata = null;
     $startpageversion = ouwiki_get_current_page($subwiki, $startpagename, OUWIKI_GETPAGE_CREATE);
     $verid = ouwiki_save_new_version($course, $cm, $ouwiki, $subwiki, $startpagename, $startpagename, -1, -1, -1, null, $formdata);
     // Create a page with no sub pages.
     $pagename2 = 'testpage2';
     $content2 = 'testcontent2';
     ouwiki_create_new_page($course, $cm, $ouwiki, $subwiki, $startpagename, $pagename2, $content2, $formdata);
     // Try get that page.
     $pageversion = ouwiki_get_current_page($subwiki, $pagename2);
     $this->assertEquals($pageversion->title, $pagename2);
     // Test fullname info from ouwiki_get_current_page.
     $this->assertEquals(fullname($user), fullname($pageversion));
     // Add another page to start page.
     $pagename3 = 'testpage3';
     $content3 = 'testcontent3';
     // We don't get anything returned for this.
     ouwiki_create_new_page($course, $cm, $ouwiki, $subwiki, $startpagename, $pagename3, $content3, $formdata);
     // Try get that page.
     $pageversion = ouwiki_get_current_page($subwiki, $pagename3);
     $this->assertEquals($pageversion->title, $pagename3);
     // Test fullname info from ouwiki_get_current_page.
     $this->assertEquals(fullname($user), fullname($pageversion));
     // Add another page to start page.
     $pagename9 = 'testpage9';
     $content9 = 'testcontent9';
     // We don't get anything returned for this.
     ouwiki_create_new_page($course, $cm, $ouwiki, $subwiki, $startpagename, $pagename9, $content9, $formdata);
     // Try get that page.
     $pageversion = ouwiki_get_current_page($subwiki, $pagename9);
     $this->assertEquals($pageversion->title, $pagename9);
     // Test fullname info from ouwiki_get_current_page.
     $this->assertEquals(fullname($user), fullname($pageversion));
     // Add pages to testpage3.
     // Add page to test page 3.
     $pagename4 = 'testpage4';
     $content4 = 'testcontent4';
     // We don't get anything returned for this.
     ouwiki_create_new_page($course, $cm, $ouwiki, $subwiki, $pagename3, $pagename4, $content4, $formdata);
     // Try get that page.
     $pageversion = ouwiki_get_current_page($subwiki, $pagename4);
     $this->assertEquals($pageversion->title, $pagename4);
     // Test fullname info from ouwiki_get_current_page.
     $this->assertEquals(fullname($user), fullname($pageversion));
     // Add another page to testpage 3.
     $pagename8 = 'testpage8';
     $content8 = 'testcontent8';
     // We don't get anything returned for this.
     ouwiki_create_new_page($course, $cm, $ouwiki, $subwiki, $pagename3, $pagename8, $content8, $formdata);
     // Try get that page.
     $pageversion = ouwiki_get_current_page($subwiki, $pagename8);
     $this->assertEquals($pageversion->title, $pagename8);
     // Test fullname info from ouwiki_get_current_page.
     $this->assertEquals(fullname($user), fullname($pageversion));
     // Add pages to testpage4.
     // Add page to test page 4.
     $pagename5 = 'testpage5';
     $content5 = 'testcontent5';
     // We don't get anything returned for this.
     ouwiki_create_new_page($course, $cm, $ouwiki, $subwiki, $pagename4, $pagename5, $content5, $formdata);
     // Try get that page.
     $pageversion = ouwiki_get_current_page($subwiki, $pagename5);
     $this->assertEquals($pageversion->title, $pagename5);
     // Test fullname info from ouwiki_get_current_page.
     $this->assertEquals(fullname($user), fullname($pageversion));
     // Add another page to testpage 4.
     $pagename7 = 'testpage7';
     $content7 = 'testcontent7';
     // We don't get anything returned for this.
     ouwiki_create_new_page($course, $cm, $ouwiki, $subwiki, $pagename4, $pagename7, $content7, $formdata);
     // Try get that page.
     $pageversion = ouwiki_get_current_page($subwiki, $pagename7);
     $this->assertEquals($pageversion->title, $pagename7);
     // Test fullname info from ouwiki_get_current_page.
     $this->assertEquals(fullname($user), fullname($pageversion));
     // Add page to test page 5.
     $pagename6 = 'testpage6';
     $content6 = 'testcontent6';
     // We don't get anything returned for this.
     ouwiki_create_new_page($course, $cm, $ouwiki, $subwiki, $pagename5, $pagename6, $content6, $formdata);
     // Try get that page.
     $pageversion = ouwiki_get_current_page($subwiki, $pagename6);
     $this->assertEquals($pageversion->title, $pagename6);
     // Test fullname info from ouwiki_get_current_page.
     $this->assertEquals(fullname($user), fullname($pageversion));
     // Add page to test page 9.
     $pagename10 = 'testpage10';
     $content10 = 'testcontent10';
     // We don't get anything returned for this.
     ouwiki_create_new_page($course, $cm, $ouwiki, $subwiki, $pagename9, $pagename10, $content10, $formdata);
     // Try get that page.
     $pageversion = ouwiki_get_current_page($subwiki, $pagename10);
     $this->assertEquals($pageversion->title, $pagename10);
     // Test fullname info from ouwiki_get_current_page.
     $this->assertEquals(fullname($user), fullname($pageversion));
     // Add another page to testpage 9.
     $pagename12 = 'testpage12';
     $content12 = 'testcontent12';
     // We don't get anything returned for this.
     ouwiki_create_new_page($course, $cm, $ouwiki, $subwiki, $pagename9, $pagename12, $content12, $formdata);
     // Try get that page.
     $pageversion = ouwiki_get_current_page($subwiki, $pagename12);
     $this->assertEquals($pageversion->title, $pagename12);
     // Test fullname info from ouwiki_get_current_page.
     $this->assertEquals(fullname($user), fullname($pageversion));
     // Add page to test page 10.
     $pagename11 = 'testpage11';
     $content11 = 'testcontent11';
     // We don't get anything returned for this.
     ouwiki_create_new_page($course, $cm, $ouwiki, $subwiki, $pagename10, $pagename11, $content11, $formdata);
     // Try get that page.
     $pageversion = ouwiki_get_current_page($subwiki, $pagename11);
     $this->assertEquals($pageversion->title, $pagename11);
     // Test fullname info from ouwiki_get_current_page.
     $this->assertEquals(fullname($user), fullname($pageversion));
     // Create the index.
     $index = ouwiki_get_subwiki_index($subwiki->id);
     // Check to see that there are 12 posts.
     $this->assertEquals(count($index), 12);
     reset($index);
     $orphans = false;
     // Check for orphan posts - there should be none.
     foreach ($index as $indexitem) {
         if (count($indexitem->linksfrom) == 0 && $indexitem->title !== 'testpage1') {
             $orphans = true;
             break;
         }
     }
     $this->assertEquals($orphans, false);
     // Test tree structure functions.
     // Build tree.
     ouwiki_build_tree($index);
     // Check to see whether pages have the correct number of children in them including the root node.
     $page = $this->get_page_from_index_by_pagename('testpage3', $index);
     $subtree = ouwiki_get_sub_tree_from_index($page->pageid, $index);
     $this->assertEquals(6, count($subtree));
     // Check to see whether pages have the correct number of children in them including the root node.
     $page = $this->get_page_from_index_by_pagename('testpage4', $index);
     $subtree = ouwiki_get_sub_tree_from_index($page->pageid, $index);
     $this->assertEquals(4, count($subtree));
     // Check linkto, linksfrom, and children arrays for testpage 4
     // - see structure diagram in function description for links to, from, and children for P4.
     $linksfrom = $page->linksfrom;
     $linksto = $page->linksto;
     $children = $page->children;
     $this->assertEquals(count($linksfrom), 1);
     $this->assertEquals(count($linksto), 2);
     $this->assertEquals(count($children), 2);
     // Test linksfrom from testpage 4.
     $p = $this->get_page_from_index_by_pageid($linksfrom[0], $index);
     $this->assertEquals($p->title, $pagename3);
     // Test linksto for testpage 4.
     $p = $this->get_page_from_index_by_pageid($linksto[0], $index);
     $this->assertEquals($p->title, $pagename5);
     $p = $this->get_page_from_index_by_pageid($linksto[1], $index);
     $this->assertEquals($p->title, $pagename7);
     // Test children for testpage 4.
     $p = $this->get_page_from_index_by_pageid($children[0], $index);
     $this->assertEquals($p->title, $pagename5);
     $p = $this->get_page_from_index_by_pageid($children[1], $index);
     $this->assertEquals($p->title, $pagename7);
     // Check to see whether pages have the correct number of children in them including the root node.
     $page = $this->get_page_from_index_by_pagename('testpage5', $index);
     $this->assertEquals(2, count(ouwiki_get_sub_tree_from_index($page->pageid, $index)));
     // Check to see whether pages have the correct number of children in them including the root node.
     $page = $this->get_page_from_index_by_pagename('testpage9', $index);
     $this->assertEquals(4, count(ouwiki_get_sub_tree_from_index($page->pageid, $index)));
     // Check to see whether pages have the correct number of children in them including the root node.
     $page = $this->get_page_from_index_by_pagename('testpage10', $index);
     $this->assertEquals(2, count(ouwiki_get_sub_tree_from_index($page->pageid, $index)));
 }
コード例 #3
0
    }
    $commentsbyroles = array();
    $editsbyroles = array();
    $totalusers = 0;
    if (!$csv) {
        print <<<EOF
\t\t<tr>\t\t\t
\t\t\t<td class='ouw_leftcol'><a href="reportsgroup.php?id={$wikiid}&amp;viewgroup={$viewgroupid}">{$group->name}</a><div class='ouw_groupcolumn'></div></td>
EOF;
    } else {
        print $csv->line() . $csv->quote($group->name);
    }
    foreach ($rolenames as $roleid => $rolename) {
        $usercount = count(ouwiki_get_users($contexts, $viewgroupid, $roleid));
        if ($usercount > 0) {
            $allsubwikipages = ouwiki_get_subwiki_index($subwiki->id);
            $pagecount = count($allsubwikipages);
            $totalusers += $usercount;
            $activeusers = ouwiki_get_activeusers($contexts, $subwiki->id, $viewgroupid, $roleid);
            $activeusercount = count($activeusers);
            $inactiveusercount = $usercount - $activeusercount;
            // calc comments
            $pagecomments = ouwiki_get_pagecomments($contexts, $subwiki->id, $viewgroupid, $roleid);
            $commentsbyroles[$rolename] = $pagecomments;
            $commentcount = 0;
            foreach ($pagecomments as $pagecomment) {
                $commentcount += $pagecomment->commentcount;
                $pagecommentcount[$pagecomment->pagetitle] += $pagecomment->commentcount;
            }
            $rolescommentcount[$rolename] = $commentcount;
            $pageedits = ouwiki_get_editedpages($contexts, $subwiki->id, $viewgroupid, $roleid);
コード例 #4
0
ファイル: import.php プロジェクト: michaudg/moodle-mod_ouwiki
     // Prepare form parameters.
     $wikiinfo = array('importid' => $selectedact->id, 'subwikiid' => $selectedsubwiki->id);
     $pageparams['step']++;
     $pageparams['courseid'] = $importedfromcourse->id;
     $form = new mod_ouwiki_import_pageselect_form(null, array('params' => array_merge($pageparams, $wikiinfo), 'pages' => $pages));
     $form->display();
 } else {
     if ($curstep == 3) {
         // Confirmation - check OK to proceed and look for merge conflicts, locks etc.
         require_sesskey();
         $selectedact = required_param('importid', PARAM_INT);
         $selectedsubwiki = required_param('subwikiid', PARAM_INT);
         $selectedouwiki = '';
         ouwiki_get_wikiinfo($selectedact, $selectedsubwiki, $selectedouwiki, $importedfromcourse);
         // Build up index, get selected pages - making sure sub pages are included.
         $index = ouwiki_get_subwiki_index($selectedsubwiki->id);
         ouwiki_build_tree($index);
         $pagelist = array();
         // Our list of page ids to import.
         if ($pages = optional_param('pages', null, PARAM_SEQUENCE)) {
             // Full page list available e.g. from cancel.
             $pagelist = explode(',', $pages);
         } else {
             // Find pages sent from step 1, get any linked pages also.
             foreach ($_POST as $key => $value) {
                 if (strpos($key, 'page') === 0) {
                     // Add in page and recursive add of links.
                     ouwiki_add_linkedpages($pagelist, $index, $value);
                 }
             }
             $pagelist = array_unique($pagelist);