MDL-19823 Converted print_box* to $OUTPUT->box*
[moodle.git] / tag / index.php
1 <?php // $Id$
3 require_once('../config.php');
4 require_once('lib.php');
5 require_once('locallib.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     print_error('tagsaredisabled', 'tag');
13 }
15 $tagid       = optional_param('id', 0, PARAM_INT); // tag id
16 $tagname     = optional_param('tag', '', PARAM_TAG); // tag
18 $edit        = optional_param('edit', -1, PARAM_BOOL);
19 $userpage    = optional_param('userpage', 0, PARAM_INT); // which page to show
20 $perpage     = optional_param('perpage', 24, PARAM_INT);
22 $systemcontext   = get_context_instance(CONTEXT_SYSTEM);
24 if ($tagname) {
25     $tag = tag_get('name', $tagname, '*');
26 } else if ($tagid) {
27     $tag = tag_get('id', $tagid, '*');
28 }
30 if (empty($tag)) {
31     redirect($CFG->wwwroot.'/tag/search.php');
32 }
34 $PAGE->set_url('tag/index.php', array('id' => $tag->id));
35 $PAGE->set_subpage($tag->id);
36 $PAGE->set_context($systemcontext);
37 $PAGE->set_blocks_editing_capability('moodle/tag:editblocks');
39 if (($edit != -1) and $PAGE->user_allowed_editing()) {
40     $USER->editing = $edit;
41 }
43 $tagname = tag_display_name($tag);
45 $navlinks = array();
46 $navlinks[] = array('name' => get_string('tags', 'tag'), 'link' => "{$CFG->wwwroot}/tag/search.php", 'type' => '');
47 $navlinks[] = array('name' => $tagname, 'link' => '', 'type' => '');
49 $navigation = build_navigation($navlinks);
50 $title = get_string('tag', 'tag') .' - '. $tagname;
52 $button = '';
53 if ($PAGE->user_allowed_editing() ) {
54     $button = $OUTPUT->edit_button(new moodle_url("$CFG->wwwroot/tag/index.php", array('id' => $tagid)));
55 }
56 print_header_simple($title, '', $navigation, '', '', '', $button);
58 // Manage all tags links
59 if (has_capability('moodle/tag:manage', $systemcontext)) {
60     echo '<div class="managelink"><a href="'. $CFG->wwwroot .'/tag/manage.php">'. get_string('managetags', 'tag') .'</a></div>' ;
61 }
63 $tagname  = tag_display_name($tag);
65 if ($tag->flag > 0 && has_capability('moodle/tag:manage', $systemcontext)) {
66     $tagname =  '<span class="flagged-tag">' . $tagname . '</span>';
67 }
69 echo $OUTPUT->heading($tagname, 2, 'headingblock header tag-heading');
70 tag_print_management_box($tag);
71 tag_print_description_box($tag);
73 echo '<div style="text-align: center "><p><a href="#course">'.get_string('courses').
74  '</a> | <a href="#blog">'.get_string('relatedblogs', 'tag').
75  '</a> | <a href="#user">'.get_string('users').'</a></p></div>';
77 // Display courses tagged with the tag
78 require_once($CFG->dirroot.'/tag/coursetagslib.php');
79 if ($courses = coursetag_get_tagged_courses($tag->id)) {
81     $totalcount = count( $courses );
82     echo $OUTPUT->box_start('generalbox', 'tag-blogs'); //could use an id separate from tag-blogs, but would have to copy the css style to make it look the same
84     $heading = get_string('courses') . ' ' . get_string('taggedwith', 'tag', $tagname) .': '. $totalcount;
85     echo "<a name='course'></a>";
86     echo $OUTPUT->heading($heading, 3);
88     foreach ($courses as $course) {
89         print_course($course);
90         }
92     echo $OUTPUT->box_end();
93 }
95 // Print up to 10 previous blogs entries
97 // I was not able to use get_items_tagged_with() because it automatically
98 // tries to join on 'blog' table, since the itemtype is 'blog'. However blogs
99 // uses the post table so this would not really work.    - Yu 29/8/07
100 if (has_capability('moodle/blog:view', $systemcontext)) {  // You have to see blogs obviously
102     $count = 10;
103     if ($blogs = blog_fetch_entries('', $count, 0, 'site', '', $tag->id)) {
105         echo $OUTPUT->box_start('generalbox', 'tag-blogs');
106         $heading = get_string('relatedblogs', 'tag', $tagname). ' ' . get_string('taggedwith', 'tag', $tagname);
107         echo "<a name='blog'></a>";
108         echo $OUTPUT->heading($heading, 3);
110         echo '<ul id="tagblogentries">';
111         foreach ($blogs as $blog) {
112             if ($blog->publishstate == 'draft') {
113                 $class = 'class="dimmed"';
114             } else {
115                 $class = '';
116             }
117             echo '<li '.$class.'>';
118             echo '<a '.$class.' href="'.$CFG->wwwroot.'/blog/index.php?postid='.$blog->id.'">';
119             echo format_string($blog->subject);
120             echo '</a>';
121             echo ' - ';
122             echo '<a '.$class.' href="'.$CFG->wwwroot.'/user/view.php?id='.$blog->userid.'">';
123             echo fullname($blog);
124             echo '</a>';
125             echo ', '. userdate($blog->lastmodified);
126             echo '</li>';
127         }
128         echo '</ul>';
130         echo '<p class="moreblogs"><a href="'.$CFG->wwwroot.'/blog/index.php?filtertype=site&amp;filterselect=0&amp;tagid='.$tag->id.'">'.get_string('seeallblogs', 'tag', $tagname).'</a></p>';
132         echo $OUTPUT->box_end();
133     }
136 $usercount = tag_record_count('user', $tag->id);
137 if ($usercount > 0) {
139     //user table box
140     echo $OUTPUT->box_start('generalbox', 'tag-user-table');
142     $heading = get_string('users'). ' ' . get_string('taggedwith', 'tag', $tagname) . ': ' . $usercount;
143     echo "<a name='user'></a>";
144     echo $OUTPUT->heading($heading, 3);
146     $baseurl = new moodle_url($CFG->wwwroot.'/tag/index.php', array('id' => $tag->id));
147     $pagingbar = moodle_paging_bar::make($totalcount, $page, $perpage, $baseurl);
148     $pagingbar->pagevar = 'userpage';
149     echo $OUTPUT->paging_bar($pagingbar);
150     tag_print_tagged_users_table($tag, $userpage * $perpage, $perpage);
151     echo $OUTPUT->box_end();
154 echo $OUTPUT->footer();
155 ?>