DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:tagentry

This is an old revision of the document!


tagentry Plugin

Compatible with DokuWiki

  • 2020-07-29 "Hogfather" yes
  • 2018-04-22 "Greebo" unknown
  • 2017-02-19 "Frusterick Manners" yes
  • 2016-06-26 "Elenor Of Tsort" unknown

plugin Assign tags using checkboxes

Last updated on
2019-10-17
Provides
Action
Repository
Source
Conflicts with
ckgedit, codemirror, fckg
Requires
tag

Similar to tagadd

Tagged with editing, javascript, navigation, tags

The tagentry plugin displays a set of tags just below the edit form and automatically adds or modifies {{tag>}} in the wiki-text using JavaScript when a tag is clicked.

Previous Authors

Changes

Download and installation

Search and install the plugin using the Extension Manager. Refer to Plugins on how to install plugins manually.

Bugs

Moved to bugs

Discussions

it doesn't work with Opera — tested with 9.64
JavaScript is enabled and other scripts (e.g. show/hide contents) is working


Tag tables formatting

Phi - 2010/08/25

Good plugin as far as I have used it. But the screen formatting was not very exciting.
The very simple / basic modification below is done in order to get a better formatting of the XML tables of tags:
  • uniform width for the columns of the table
  • one line for each box + tag label item.
Around line 250 in action.php of the plugin replace the three following lines:
    $rv.='<div class="'.$options['class'].'">';
    $rv.=' <div><label>'.$this->getLang('assign').'</label></div>';
    $rv.=' <div class="taglist"'.$dstyle.'>';
with the following
    $rv.='<div class="'.$options['class'].'">';
    if (!$options['tagboxtable']) $rv.=' <div><label>'.$this->getLang('assign').'</label></div>';
    $rv.=' <div><label>&#160</label></div>';
    $rv.=' <div class="taglist"'.$dstyle.'>';
    if ($options['tagboxtable']) {
       $rv.='<table>';
       $rv.='<thead><tr>';
 
       $i=0;
       $ls=0;
       $lsmax=0;
       natcasesort($alltags);
       foreach ($alltags as $t) {
          if (is_array($options['blacklist']) 
              && $this->_in_casearray($t, $options['blacklist'])) 
            continue;
          $i++;
          $ls = strlen($t);
          if ($ls > $lsmax) $lsmax=$ls;
       }
 
       For ($j=1;$j<=$options['tablerowcnt'];$j++) {
            $rv.='<th>';
            if ($j == 1) $rv.="Liste&#160des&#160tags&#160".str_repeat("&#160",$lsmax-8);
            if ($j > 1) $rv.=str_repeat("_",$lsmax+1);
            $rv.='</th>';
       }
       $rv.='</tr></thead>';
       $rv.='<tbody><tr>';
    }
    else {
       $rv.='  <div>';
    }

Note: The title Liste des tags is in french but can be changed by whatever you want. Take care to use the &#160 “no-break space” characters to replace your space characters in the title.



I tried this edit, but my website wouldn't load when I made the change. Once I reverted back to the original code, my website ran normally. -JC


Use Heading of tag page

When the tag entry is a page in the namesapce tag (default tag plugin setting) you can display the first heading of the page (if useheading setting is checked) with this modifications in tagentry/action.php :

    /**
     * Return Header title or tag name
     * @param $tagname The name of tag without namespace
     * @return Title of the tag page or tag name formatted
     */
    function _getTagTitle($tagname){
        global $conf;
        if( $conf['useheading'] ){
            $tagplugin = plugin_load('helper', 'tag');
            if ( plugin_isdisabled('tag') || !$tagplugin ) {
                //msg('The Tag Plugin must be installed to display tagentry.', -1);
                return $this->clipstring($tagname);
            }
 
            $id = $tagname;
            $exist = false;
            resolve_pageID($tagplugin->namespace, $id, $exist);
            if( $exist ){
                return p_get_first_heading($id, false);
            }
        }
        return $this->clipstring($tagname);
    }
 
    // Replace this line (in function _format_tags)
    $rv.=' /> '.$this->clipstring($t).'</label>&nbsp;';
    // By this
    $rv.=' /> '.$this->_getTagTitle($t).'</label>&nbsp;';

Sphaira 2013/12/23 14:43:26


plugin/tagentry.1591408206.txt.gz · Last modified: 2020-06-06 03:50 by trailjeep