Example #1
0
 /**
  * Displays the list of tags associated with an entry
  *
  * @param array $tags list of instances of core_tag or stdClass
  * @param string $label label to display in front, by default 'Tags' (get_string('tags')), set to null
  *               to use default, set to '' (empty string) to omit the label completely
  * @param string $classes additional classes for the enclosing div element
  * @param int $limit limit the number of tags to display, if size of $tags is more than this limit the "more" link
  *               will be appended to the end, JS will toggle the rest of the tags
  * @param context $pagecontext specify if needed to overwrite the current page context for the view tag link
  * @return string
  */
 public function tag_list($tags, $label = null, $classes = '', $limit = 10, $pagecontext = null)
 {
     $list = new \core_tag\output\taglist($tags, $label, $classes, $limit, $pagecontext);
     return $this->render_from_template('core_tag/taglist', $list->export_for_template($this));
 }
Example #2
0
 /**
  * Renders the tag index page
  *
  * @param core_tag_tag $tag
  * @param \core_tag\output\tagindex[] $entities
  * @param int $tagareaid
  * @param bool $exclusivemode if set to true it means that no other entities tagged with this tag
  *             are displayed on the page and the per-page limit may be bigger
  * @param int $fromctx context id where the link was displayed, may be used by callbacks
  *            to display items in the same context first
  * @param int $ctx context id where to search for records
  * @param bool $rec search in subcontexts as well
  * @param int $page 0-based number of page being displayed
  * @return string
  */
 public function tag_index_page($tag, $entities, $tagareaid, $exclusivemode, $fromctx, $ctx, $rec, $page)
 {
     global $CFG, $OUTPUT;
     $this->page->requires->js_call_amd('core/tag', 'init_tagindex_page');
     $tagname = $tag->get_display_name();
     $systemcontext = context_system::instance();
     if ($tag->flag > 0 && has_capability('moodle/tag:manage', $systemcontext)) {
         $tagname = '<span class="flagged-tag">' . $tagname . '</span>';
     }
     $rv = '';
     $rv .= $this->output->heading($tagname, 2);
     $rv .= $this->tag_links($tag);
     if ($desciption = $tag->get_formatted_description()) {
         $rv .= $this->output->box($desciption, 'generalbox tag-description');
     }
     $relatedtagslimit = 10;
     $relatedtags = $tag->get_related_tags();
     $taglist = new \core_tag\output\taglist($relatedtags, get_string('relatedtags', 'tag'), 'tag-relatedtags', $relatedtagslimit);
     $rv .= $OUTPUT->render_from_template('core_tag/taglist', $taglist->export_for_template($OUTPUT));
     // Display quick menu of the item types (if more than one item type found).
     $entitylinks = array();
     foreach ($entities as $entity) {
         if (!empty($entity->hascontent)) {
             $entitylinks[] = '<li><a href="#' . $entity->anchor . '">' . core_tag_area::display_name($entity->component, $entity->itemtype) . '</a></li>';
         }
     }
     if (count($entitylinks) > 1) {
         $rv .= '<div class="tag-index-toc"><ul class="inline-list">' . join('', $entitylinks) . '</ul></div>';
     } else {
         if (!$entitylinks) {
             $rv .= '<div class="tag-noresults">' . get_string('noresultsfor', 'tag', $tagname) . '</div>';
         }
     }
     // Display entities tagged with the tag.
     $content = '';
     foreach ($entities as $entity) {
         if (!empty($entity->hascontent)) {
             $content .= $this->output->render_from_template('core_tag/index', $entity->export_for_template($this->output));
         }
     }
     if ($exclusivemode) {
         $rv .= $content;
     } else {
         if ($content) {
             $rv .= html_writer::div($content, 'tag-index-items');
         }
     }
     // Display back link if we are browsing one tag area.
     if ($tagareaid) {
         $url = $tag->get_view_url(0, $fromctx, $ctx, $rec);
         $rv .= '<div class="tag-backtoallitems">' . html_writer::link($url, get_string('backtoallitems', 'tag', $tag->get_display_name())) . '</div>';
     }
     return $rv;
 }