f538442f0929e412f204f1a740c2eb458397124c
[moodle.git] / tag / index.php
1 <?php // $Id$
3 require_once('../config.php');
4 require_once('lib.php');
5 require_once('pagelib.php');
6 require_once($CFG->dirroot.'/lib/weblib.php');
7 require_once($CFG->dirroot.'/blog/lib.php');
9 require_login();
11 if (empty($CFG->usetags)) {
12     error(get_string('tagsaredisabled', 'tag'));
13 }
15 $tagid       = optional_param('id', 0, PARAM_INT); // tag id
16 $tag_name    = optional_param('tag', '', PARAM_TAG); // tag 
17 if ($tag_name) {
18     $tag = tag_get_id($tag_name, TAG_RETURN_OBJECT);
19 } elseif ($tagid) {
20     $tag = tag_get_tag_by_id($tagid); // for backward compatibility
21 }
22 $edit        = optional_param('edit', -1, PARAM_BOOL);
23 $userpage    = optional_param('userpage', 0, PARAM_INT); // which page to show
24 $perpage     = optional_param('perpage', 24, PARAM_INT);
26 if (!isset($tag) || !$tag->id) {
27     redirect($CFG->wwwroot.'/tag/search.php');
28 }
30 //create a new page_tag object, defined in pagelib.php
31 $PAGE = page_create_object(PAGE_TAG_INDEX, $tag->id);
32 $pageblocks = blocks_setup($PAGE,BLOCKS_PINNED_BOTH);
33 $PAGE->tag_object = $tag;
35 if (($edit != -1) and $PAGE->user_allowed_editing()) {
36     $USER->editing = $edit;
37 }
39 $PAGE->print_header();
41 echo '<table border="0" cellpadding="3" cellspacing="0" width="100%" id="layout-table">';
42 echo '<tr valign="top">';
44 //----------------- left column -----------------
46 $blocks_preferred_width = bounded_number(180, blocks_preferred_width($pageblocks[BLOCK_POS_LEFT]), 210);
48 if (blocks_have_content($pageblocks, BLOCK_POS_LEFT) || $PAGE->user_is_editing()) {
49     echo '<td style="vertical-align: top; width: '.$blocks_preferred_width.'px;" id="left-column">';
50     blocks_print_group($PAGE, $pageblocks, BLOCK_POS_LEFT);
51     echo '</td>';
52 }
54 //----------------- middle column -----------------
56 echo '<td valign="top" id="middle-column">';
58 $tagname  = tag_display_name($tag);
60 $systemcontext   = get_context_instance(CONTEXT_SYSTEM);
61 if ($tag->flag > 0 && has_capability('moodle/tag:manage', $systemcontext)) {
62     $tagname =  '<span class="flagged-tag">' . rawurlencode($tagname) . '</span>';
63 }
65 print_heading($tagname, '', 2, 'headingblock header tag-heading');
66 tag_print_management_box($tag);
67 tag_print_description_box($tag);
69 $usercount = tag_record_count('user', $tag->id);
71 if ($usercount > 0) {
73     //user table box
74     print_box_start('generalbox', 'tag-user-table');
76     $heading = get_string('userstaggedwith', 'tag', $tagname) . ': ' . $usercount;
77     print_heading($heading, '', 3);
79     $baseurl = $CFG->wwwroot.'/tag/index.php?id=' . $tag->id;
81     print_paging_bar($usercount, $userpage, $perpage, $baseurl.'&amp;', 'userpage');
82     tag_print_tagged_users_table($tag, $userpage * $perpage, $perpage);
83     print_box_end();
84 }
86 // Print last 10 blogs
88 // I was not able to use get_items_tagged_with() because it automatically 
89 // tries to join on 'blog' table, since the itemtype is 'blog'. However blogs
90 // uses the post table so this would not really work.    - Yu 29/8/07
91 if ($blogs = blog_fetch_entries('', 10, 0, 'site', '', $tag->id)) {
93     print_box_start('generalbox', 'tag-blogs');
95     print_heading(get_string('relatedblogs', 'tag'), '', 3);
97     echo '<ul id="tagblogentries">';
98     foreach ($blogs as $blog) {
99         if ($blog->publishstate == 'draft') {
100             $class = 'class="dimmed"';
101         } else {
102             $class = '';
103         }
104         echo '<li '.$class.'>';
105         echo '<a '.$class.' href="'.$CFG->wwwroot.'/blog/index.php?postid='.$blog->id.'">';
106         echo format_string($blog->subject);
107         echo '</a>';
108         echo ' - '; 
109         echo '<a '.$class.' href="'.$CFG->wwwroot.'/user/view.php?id='.$blog->userid.'">';
110         echo fullname($blog);
111         echo '</a>';
112         echo ', '. userdate($blog->lastmodified);
113         echo '</li>';
114     }
115     echo '</ul>';
117     echo '<p class="moreblogs"><a href="'.$CFG->wwwroot.'/blog/index.php?filtertype=site&filterselect=0&tagid='.$tag->id.'">'.get_string('seeallblogs', 'tag').'</a>...</p>';
119     print_box_end();
123 echo '</td>';
126 //----------------- right column -----------------
128 $blocks_preferred_width = bounded_number(180, blocks_preferred_width($pageblocks[BLOCK_POS_RIGHT]), 210);
130 if (blocks_have_content($pageblocks, BLOCK_POS_RIGHT) || $PAGE->user_is_editing()) {
131     echo '<td style="vertical-align: top; width: '.$blocks_preferred_width.'px;" id="right-column">';
132     blocks_print_group($PAGE, $pageblocks, BLOCK_POS_RIGHT);
133     echo '</td>';
136 /// Finish the page
137 echo '</tr></table>';
141 $PAGE->print_footer();
144 ?>