Merged MDL-13640 to move "Manage tags" link
[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 $systemcontext   = get_context_instance(CONTEXT_SYSTEM);
41 $PAGE->print_header();
43 // Manage all tags links
44 if (has_capability('moodle/tag:manage', $systemcontext)) {
45     echo '<div class="managelink"><a href="'. $CFG->wwwroot .'/tag/manage.php">'. get_string('managetags', 'tag') .'</a></div>' ;
46 }
48 echo '<table border="0" cellpadding="3" cellspacing="0" width="100%" id="layout-table">';
49 echo '<tr valign="top">';
51 //----------------- left column -----------------
53 $blocks_preferred_width = bounded_number(180, blocks_preferred_width($pageblocks[BLOCK_POS_LEFT]), 210);
55 if (blocks_have_content($pageblocks, BLOCK_POS_LEFT) || $PAGE->user_is_editing()) {
56     echo '<td style="vertical-align: top; width: '.$blocks_preferred_width.'px;" id="left-column">';
57     blocks_print_group($PAGE, $pageblocks, BLOCK_POS_LEFT);
58     echo '</td>';
59 }
61 //----------------- middle column -----------------
63 echo '<td valign="top" id="middle-column">';
65 $tagname  = tag_display_name($tag);
67 if ($tag->flag > 0 && has_capability('moodle/tag:manage', $systemcontext)) {
68     $tagname =  '<span class="flagged-tag">' . rawurlencode($tagname) . '</span>';
69 }
71 print_heading($tagname, '', 2, 'headingblock header tag-heading');
72 tag_print_management_box($tag);
73 tag_print_description_box($tag);
75 $usercount = tag_record_count('user', $tag->id);
77 if ($usercount > 0) {
79     //user table box
80     print_box_start('generalbox', 'tag-user-table');
82     $heading = get_string('userstaggedwith', 'tag', $tagname) . ': ' . $usercount;
83     print_heading($heading, '', 3);
85     $baseurl = $CFG->wwwroot.'/tag/index.php?id=' . $tag->id;
87     print_paging_bar($usercount, $userpage, $perpage, $baseurl.'&amp;', 'userpage');
88     tag_print_tagged_users_table($tag, $userpage * $perpage, $perpage);
89     print_box_end();
90 }
92 // Print last 10 blogs
94 // I was not able to use get_items_tagged_with() because it automatically 
95 // tries to join on 'blog' table, since the itemtype is 'blog'. However blogs
96 // uses the post table so this would not really work.    - Yu 29/8/07
97 if ($blogs = blog_fetch_entries('', 10, 0, 'site', '', $tag->id)) {
99     print_box_start('generalbox', 'tag-blogs');
101     print_heading(get_string('relatedblogs', 'tag'), '', 3);
103     echo '<ul id="tagblogentries">';
104     foreach ($blogs as $blog) {
105         if ($blog->publishstate == 'draft') {
106             $class = 'class="dimmed"';
107         } else {
108             $class = '';
109         }
110         echo '<li '.$class.'>';
111         echo '<a '.$class.' href="'.$CFG->wwwroot.'/blog/index.php?postid='.$blog->id.'">';
112         echo format_string($blog->subject);
113         echo '</a>';
114         echo ' - '; 
115         echo '<a '.$class.' href="'.$CFG->wwwroot.'/user/view.php?id='.$blog->userid.'">';
116         echo fullname($blog);
117         echo '</a>';
118         echo ', '. userdate($blog->lastmodified);
119         echo '</li>';
120     }
121     echo '</ul>';
123     echo '<p class="moreblogs"><a href="'.$CFG->wwwroot.'/blog/index.php?filtertype=site&filterselect=0&tagid='.$tag->id.'">'.get_string('seeallblogs', 'tag').'</a>...</p>';
125     print_box_end();
129 echo '</td>';
132 //----------------- right column -----------------
134 $blocks_preferred_width = bounded_number(180, blocks_preferred_width($pageblocks[BLOCK_POS_RIGHT]), 210);
136 if (blocks_have_content($pageblocks, BLOCK_POS_RIGHT) || $PAGE->user_is_editing()) {
137     echo '<td style="vertical-align: top; width: '.$blocks_preferred_width.'px;" id="right-column">';
138     blocks_print_group($PAGE, $pageblocks, BLOCK_POS_RIGHT);
139     echo '</td>';
142 /// Finish the page
143 echo '</tr></table>';
147 $PAGE->print_footer();
150 ?>