CINXE.COM
plugin:listeabo [DokuWiki]
<!DOCTYPE html> <html lang="en" dir="ltr" class="no-js"> <head> <meta charset="utf-8" /> <title>plugin:listeabo [DokuWiki]</title> <meta name="generator" content="DokuWiki"/> <meta name="theme-color" content="#008800"/> <meta name="robots" content="index,follow"/> <meta name="keywords" content="plugin,listeabo"/> <link rel="search" type="application/opensearchdescription+xml" href="/lib/exe/opensearch.php" title="DokuWiki"/> <link rel="start" href="/"/> <link rel="contents" href="/plugin:listeabo?do=index" title="Sitemap"/> <link rel="manifest" href="/lib/exe/manifest.php"/> <link rel="alternate" type="application/rss+xml" title="Recent Changes" href="/feed.php"/> <link rel="alternate" type="application/rss+xml" title="Current namespace" href="/feed.php?mode=list&ns=plugin"/> <link rel="edit" title="Edit this page" href="/plugin:listeabo?do=edit"/> <link rel="alternate" type="text/html" title="Plain HTML" href="/_export/xhtml/plugin:listeabo"/> <link rel="alternate" type="text/plain" title="Wiki Markup" href="/_export/raw/plugin:listeabo"/> <link rel="canonical" href="https://www.dokuwiki.org/plugin:listeabo"/> <link rel="stylesheet" href="/lib/exe/css.php?t=dokuwiki&tseed=f1005bad3d81fc9c803c7f93d32a390e"/> <script >var NS='plugin';var JSINFO = {"plugins":{"edittable":{"default columnwidth":""}},"id":"plugin:listeabo","namespace":"plugin","ACT":"show","useHeadingNavigation":0,"useHeadingContent":0};(function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer="defer"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" defer="defer"></script> <script src="/lib/exe/js.php?t=dokuwiki&tseed=f1005bad3d81fc9c803c7f93d32a390e&lang=en" defer="defer"></script> <meta name="viewport" content="width=device-width,initial-scale=1" /> <link rel="shortcut icon" href="/lib/tpl/dokuwiki/images/favicon.ico" /> <link rel="apple-touch-icon" href="/lib/tpl/dokuwiki/images/apple-touch-icon.png" /> <meta name="verify-v1" content="OVxl3gsCv2MhZqh1cBQyl0JytWXSwXMjyvwc+4w3WtA=" /> <meta name="google-site-verification" content="YhTVK69hW94ZXUtc2zSLPxTkZKbZIn0zK67mz5WQB-E" /> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-83791-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-83791-1', { 'anonymize_ip': true }); </script> </head> <body> <div id="dokuwiki__site"><div id="dokuwiki__top" class="site dokuwiki mode_show tpl_dokuwiki showSidebar hasSidebar"> <!-- ********** HEADER ********** --> <header id="dokuwiki__header"><div class="pad group"> <div class="headings group"> <ul class="a11y skip"> <li><a href="#dokuwiki__content">skip to content</a></li> </ul> <h1 class="logo"><a href="/start" accesskey="h" title="Home [h]"><img src="/lib/tpl/dokuwiki/images/logo.png" width="64" height="64" alt="" /><span>DokuWiki</span></a></h1> <p class="claim">It's better when it's simple</p> </div> <div class="tools group"> <!-- USER TOOLS --> <div id="dokuwiki__usertools"> <h3 class="a11y">User Tools</h3> <ul> <li class="action login"><a href="/plugin:listeabo?do=login&sectok=" title="Log In" rel="nofollow"><span>Log In</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 17.25V14H3v-4h7V6.75L15.25 12 10 17.25M8 2h9a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2v-4h2v4h9V4H8v4H6V4a2 2 0 0 1 2-2z"/></svg></a></li> </ul> </div> <!-- SITE TOOLS --> <div id="dokuwiki__sitetools"> <h3 class="a11y">Site Tools</h3> <form action="/start" method="get" role="search" class="search doku_form" id="dw__search" accept-charset="utf-8"><input type="hidden" name="do" value="search" /><input type="hidden" name="id" value="plugin:listeabo" /><div class="no"><input name="q" type="text" class="edit" title="[F]" accesskey="f" placeholder="Search" autocomplete="on" id="qsearch__in" value="" /><button value="1" type="submit" title="Search">Search</button><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form> <div class="mobileTools"> <form action="/doku.php" method="get" accept-charset="utf-8"><div class="no"><input type="hidden" name="id" value="plugin:listeabo" /><select name="do" class="edit quickselect" title="Tools"><option value="">Tools</option><optgroup label="Page Tools"><option value="edit">Edit this page</option><option value="revisions">Old revisions</option><option value="backlink">Backlinks</option></optgroup><optgroup label="Site Tools"><option value="recent">Recent Changes</option><option value="media">Media Manager</option><option value="index">Sitemap</option></optgroup><optgroup label="User Tools"><option value="login">Log In</option></optgroup></select><button type="submit">></button></div></form> </div> <ul> <li class="action recent"><a href="/plugin:listeabo?do=recent" title="Recent Changes [r]" rel="nofollow" accesskey="r">Recent Changes</a></li><li class="action media"><a href="/plugin:listeabo?do=media&ns=plugin" title="Media Manager" rel="nofollow">Media Manager</a></li><li class="action index"><a href="/plugin:listeabo?do=index" title="Sitemap [x]" rel="nofollow" accesskey="x">Sitemap</a></li> </ul> </div> </div> <!-- BREADCRUMBS --> <div class="breadcrumbs"> <div class="trace"><span class="bchead">Trace:</span> <span class="bcsep">•</span> <span class="curid"><bdi><a href="/plugin:listeabo" class="breadcrumbs" title="plugin:listeabo">listeabo</a></bdi></span></div> </div> <hr class="a11y" /> </div></header><!-- /header --> <div class="wrapper group"> <!-- ********** ASIDE ********** --> <nav id="dokuwiki__aside" aria-label="Sidebar"><div class="pad aside include group"> <h3 class="toggle">Sidebar</h3> <div class="content"><div class="group"> <p> <strong>Learn about DokuWiki</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/features" class="wikilink1" title="features" data-wiki-id="features">Features</a> & <a href="/blogroll" class="wikilink1" title="blogroll" data-wiki-id="blogroll">reviews</a> </div> </li> <li class="level1"><div class="li"> <a href="/install" class="wikilink1" title="install" data-wiki-id="install">Installation guide</a></div> </li> <li class="level1"><div class="li"> <a href="/manual" class="wikilink1" title="manual" data-wiki-id="manual">User manual</a> & <a href="/wiki:syntax" class="wikilink1" title="wiki:syntax" data-wiki-id="wiki:syntax">syntax</a></div> </li> <li class="level1"><div class="li"> <a href="/changes" class="wikilink1" title="changes" data-wiki-id="changes">Release notes</a></div> </li> <li class="level1"><div class="li"> <a href="/faq" class="wikilink1" title="faq" data-wiki-id="faq">FAQ</a></div> </li> </ul> <p> <strong>Advanced Use</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/extensions" class="wikilink1" title="extensions" data-wiki-id="extensions">Extensions</a></div> </li> <li class="level1"><div class="li"> <a href="/development" class="wikilink1" title="development" data-wiki-id="development">Development manual</a></div> </li> </ul> <p> <strong>Corporate Use</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/faq:support" class="wikilink1" title="faq:support" data-wiki-id="faq:support">Get support</a></div> </li> <li class="level1"><div class="li"> <a href="/donate" class="wikilink1" title="donate" data-wiki-id="donate">Donations</a></div> </li> </ul> <p> <strong>Our Community</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/teams:getting_involved" class="wikilink1" title="teams:getting_involved" data-wiki-id="teams:getting_involved">Get involved</a></div> </li> <li class="level1"><div class="li"> <a href="/dokuinstall" class="wikilink1" title="dokuinstall" data-wiki-id="dokuinstall">Users</a></div> </li> <li class="level1"><div class="li"> <a href="http://forum.dokuwiki.org" class="urlextern" title="http://forum.dokuwiki.org">User forum</a></div> </li> <li class="level1"><div class="li"> <a href="/mailinglist" class="wikilink1" title="mailinglist" data-wiki-id="mailinglist">Development mailinglist</a></div> </li> </ul> <hr /> <p> Follow us on <a href="https://phpc.social/@dokuwiki" class="urlextern" title="https://phpc.social/@dokuwiki">Mastodon</a> and other <a href="/social" class="wikilink1" title="social" data-wiki-id="social">social networks</a>. </p> <p> <a href="/privacy" class="wikilink1" title="privacy" data-wiki-id="privacy">Our Privacy Policy</a> </p> </div></div> </div></nav><!-- /aside --> <!-- ********** CONTENT ********** --> <main id="dokuwiki__content"><div class="pad group"> <div class="pageId"><span>plugin:listeabo</span></div> <div class="page group"> <!-- wikipage start --> <!-- TOC START --> <div id="dw__toc" class="dw__toc"> <h3 class="toggle">Table of Contents</h3> <div> <ul class="toc"> <li class="level1"><div class="li"><a href="#listeabo_plugin">listeabo Plugin</a></div> <ul class="toc"> <li class="level2"><div class="li"><a href="#description">Description</a></div></li> <li class="level2"><div class="li"><a href="#template_customization">Template customization</a></div></li> <li class="level2"><div class="li"><a href="#version_history">Version history</a></div></li> <li class="level2"><div class="li"><a href="#discussion">Discussion</a></div> <ul class="toc"> <li class="level3"><div class="li"><a href="#section20080929">2008-09-29</a></div></li> <li class="level3"><div class="li"><a href="#section20081217">2008-12-17</a></div></li> <li class="level3"><div class="li"><a href="#section20090102">2009-01-02</a></div></li> <li class="level3"><div class="li"><a href="#installation_error">2009-08-17 Installation error</a></div></li> <li class="level3"><div class="li"><a href="#section20090904">2009-09-04</a></div></li> <li class="level3"><div class="li"><a href="#adding_button_in_lemming">2010-03-29 Adding button in Lemming</a></div></li> <li class="level3"><div class="li"><a href="#display_fix_for_anteater_and_newer_versions">Display fix for Anteater (and newer) versions</a></div></li> <li class="level3"><div class="li"><a href="#to_make_it_work_under_angua">To make it work under Angua</a></div></li> <li class="level3"><div class="li"><a href="#requiredremove_not_existing_users_from_abo">Required: Remove not existing users from Abo</a></div></li> </ul></li> </ul></li> </ul> </div> </div> <!-- TOC END --> <h1 class="sectionedit1" id="listeabo_plugin">listeabo Plugin</h1> <div class="level1"> <div class="pluginrepo_entry"><div class="usageInfo"><div class="compatibility"><p class="label">Compatible with DokuWiki</p><p>2008-05-05</p></div><ul class="actions"><li><a class="download" href="http://emauvaisfr.free.fr/dokuwiki/listeabo.tar.gz">Download</a></li><li><a class="donate" href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=79ZVTRTJ52DDY&lc=FR&item_name=Plugin%20dokuwiki%20%28Etienne%20M%2e%29&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted">Donate</a></li></ul><div class="clearer"></div></div><div class="mainInfo"><p class="description"><a class="media" href="/plugins"><img alt="plugin" class="medialeft" src="/lib/plugins/pluginrepo/images/dwplugin.png" width="60" height="60" /></a> Displays the subscription list (fr: Affiche la liste des abonnements)</p></div><div class="metaInfo"><dl><dt>Last updated on</dt><dd>2009-01-05</dd><dt>Provides</dt><dd><a href="/plugins?plugintype=2#extension__table" class="wikilink1" title="List all Admin plugins">Admin</a>, <a href="/plugins?plugintype=4#extension__table" class="wikilink1" title="List all Action plugins">Action</a></dd></dl></div><div class="moreInfo"><div class="notify"><p>This extension has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues.</p></div><p class="similar">Similar to <a href="/plugin:usersubscriptions" class="wikilink1" title="plugin:usersubscriptions" data-wiki-id="plugin:usersubscriptions">usersubscriptions</a></p><p class="tags">Tagged with <a href="/plugins?plugintag=listing#extension__table" class="wikilink1" title="List all plugins with this tag">listing</a>, <a href="/plugins?plugintag=subscription#extension__table" class="wikilink1" title="List all plugins with this tag">subscription</a>, <a href="/plugins?plugintag=users#extension__table" class="wikilink1" title="List all plugins with this tag">users</a></p></div><div class="authorInfo"><strong>By <a href="mailto:emauvaisfr%20%5Bat%5D%20yahoo%20%5Bdot%5D%20fr" class="mail" title="emauvaisfr [at] yahoo [dot] fr">Etienne M.</a></strong><ul><li><a href="/plugin:calc" class="wikilink1" title="plugin:calc" data-wiki-id="plugin:calc">calc</a></li> <li><a href="/plugin:xtermrtf" class="wikilink1" title="plugin:xtermrtf" data-wiki-id="plugin:xtermrtf">xtermrtf</a></li> <li><a href="/plugin:pageseditees" class="wikilink1" title="plugin:pageseditees" data-wiki-id="plugin:pageseditees">pageseditees</a></li> <li><a href="/plugin:favoris" class="wikilink1" title="plugin:favoris" data-wiki-id="plugin:favoris">favoris</a></li> <li><a href="/plugin:piclens" class="wikilink1" title="plugin:piclens" data-wiki-id="plugin:piclens">piclens</a></li> <li><a href="/plugin:message" class="wikilink1" title="plugin:message" data-wiki-id="plugin:message">message</a></li> <li><a href="/plugin:snap" class="wikilink1" title="plugin:snap" data-wiki-id="plugin:snap">snap</a></li> <li><a href="/plugin:lytebox" class="wikilink1" title="plugin:lytebox" data-wiki-id="plugin:lytebox">lytebox</a></li> </ul></div></div> </div> <div class="secedit editbutton_section editbutton_1"><form class="button btn_secedit" method="post" action="/plugin:listeabo"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1453455877" /><input type="hidden" name="summary" value="[listeabo Plugin] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="listeabo_plugin" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="1-660" /><button type="submit" title="listeabo Plugin">Edit</button></div></form></div> <h2 class="sectionedit2" id="description">Description</h2> <div class="level2"> <ul> <li class="level1"><div class="li"> action: displays your subscription list</div> </li> <li class="level1"><div class="li"> admin: displays all the subscriptions</div> </li> <li class="level1"><div class="li"> French, German and English. It's easy to add your own language.</div> </li> </ul> </div> <div class="secedit editbutton_section editbutton_2"><form class="button btn_secedit" method="post" action="/plugin:listeabo"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1453455877" /><input type="hidden" name="summary" value="[Description] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="description" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="661-839" /><button type="submit" title="Description">Edit</button></div></form></div> <h2 class="sectionedit3" id="template_customization">Template customization</h2> <div class="level2"> <ul> <li class="level1 node"><div class="li"> This will add a button/link after the “Subscribe Page Changes” / “Subscribe Namespace Changes” buttons/links, at the bottom of your pages</div> <ul> <li class="level2"><div class="li"> Add a line into the ./inc/lang/xx/lang.php file (xx is your language code): <pre class="code php"><span class="re0">$lang</span><span class="br0">[</span><span class="st_h">'btn_listeabo'</span><span class="br0">]</span> <span class="sy0">=</span> <span class="st_h">'Subscriptions'</span><span class="sy0">;</span></pre> </div> </li> <li class="level2"><div class="li"> Modify ./inc/template.php to add the new button/link:<pre class="code php"><span class="br0">[</span><span class="sy0">...</span><span class="br0">]</span> <span class="kw1">case</span> <span class="st_h">'subscription'</span><span class="sy0">:</span> <span class="kw1">if</span><span class="br0">(</span><span class="re0">$conf</span><span class="br0">[</span><span class="st_h">'useacl'</span><span class="br0">]</span> <span class="sy0">&&</span> <span class="re0">$auth</span> <span class="sy0">&&</span> <span class="re0">$ACT</span> <span class="sy0">==</span> <span class="st_h">'show'</span> <span class="sy0">&&</span> <span class="re0">$conf</span><span class="br0">[</span><span class="st_h">'subscribers'</span><span class="br0">]</span> <span class="sy0">==</span> <span class="nu0">1</span><span class="br0">)</span><span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span><span class="re0">$_SERVER</span><span class="br0">[</span><span class="st_h">'REMOTE_USER'</span><span class="br0">]</span><span class="br0">)</span><span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span><span class="re0">$INFO</span><span class="br0">[</span><span class="st_h">'subscribed'</span><span class="br0">]</span><span class="br0">)</span><span class="br0">{</span> <span class="kw1">print</span> html_btn<span class="br0">(</span><span class="st_h">'unsubscribe'</span><span class="sy0">,</span><span class="re0">$ID</span><span class="sy0">,</span><span class="st_h">''</span><span class="sy0">,</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span><span class="st_h">'do'</span> <span class="sy0">=></span> <span class="st_h">'unsubscribe'</span><span class="sy0">,</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span> <span class="br0">}</span> <span class="kw1">else</span> <span class="br0">{</span> <span class="kw1">print</span> html_btn<span class="br0">(</span><span class="st_h">'subscribe'</span><span class="sy0">,</span><span class="re0">$ID</span><span class="sy0">,</span><span class="st_h">''</span><span class="sy0">,</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span><span class="st_h">'do'</span> <span class="sy0">=></span> <span class="st_h">'subscribe'</span><span class="sy0">,</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span> <span class="br0">}</span> <span class="kw1">if</span><span class="br0">(</span><span class="re0">$INFO</span><span class="br0">[</span><span class="st_h">'subscribedns'</span><span class="br0">]</span><span class="br0">)</span><span class="br0">{</span> <span class="kw1">print</span> html_btn<span class="br0">(</span><span class="st_h">'unsubscribens'</span><span class="sy0">,</span><span class="re0">$ID</span><span class="sy0">,</span><span class="st_h">''</span><span class="sy0">,</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span><span class="st_h">'do'</span> <span class="sy0">=></span> <span class="st_h">'unsubscribens'</span><span class="sy0">,</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span> <span class="br0">}</span> <span class="kw1">else</span> <span class="br0">{</span> <span class="kw1">print</span> html_btn<span class="br0">(</span><span class="st_h">'subscribens'</span><span class="sy0">,</span><span class="re0">$ID</span><span class="sy0">,</span><span class="st_h">''</span><span class="sy0">,</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span><span class="st_h">'do'</span> <span class="sy0">=></span> <span class="st_h">'subscribens'</span><span class="sy0">,</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span> <span class="br0">}</span> <span class="co1">//listeabo</span> <span class="kw1">print</span> html_btn<span class="br0">(</span><span class="st_h">'listeabo'</span><span class="sy0">,</span> <span class="re0">$ID</span><span class="sy0">,</span> <span class="st_h">''</span><span class="sy0">,</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span><span class="st_h">'do'</span> <span class="sy0">=></span> <span class="st_h">'listeabo'</span><span class="sy0">,</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span> <span class="co1">///listeabo</span> <span class="kw1">return</span> <span class="kw4">true</span><span class="sy0">;</span> <span class="br0">}</span> <span class="br0">}</span> <span class="kw1">return</span> <span class="kw4">false</span><span class="sy0">;</span> <span class="br0">[</span><span class="sy0">...</span><span class="br0">]</span> <span class="kw1">case</span> <span class="st_h">'subscribens'</span><span class="sy0">:</span> <span class="kw1">if</span><span class="br0">(</span><span class="re0">$conf</span><span class="br0">[</span><span class="st_h">'useacl'</span><span class="br0">]</span> <span class="sy0">&&</span> <span class="re0">$auth</span> <span class="sy0">&&</span> <span class="re0">$ACT</span> <span class="sy0">==</span> <span class="st_h">'show'</span> <span class="sy0">&&</span> <span class="re0">$conf</span><span class="br0">[</span><span class="st_h">'subscribers'</span><span class="br0">]</span> <span class="sy0">==</span> <span class="nu0">1</span><span class="br0">)</span><span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span><span class="re0">$_SERVER</span><span class="br0">[</span><span class="st_h">'REMOTE_USER'</span><span class="br0">]</span><span class="br0">)</span><span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span><span class="re0">$INFO</span><span class="br0">[</span><span class="st_h">'subscribedns'</span><span class="br0">]</span><span class="br0">)</span> <span class="br0">{</span> tpl_link<span class="br0">(</span>wl<span class="br0">(</span><span class="re0">$ID</span><span class="sy0">,</span><span class="st_h">'do=unsubscribens'</span><span class="br0">)</span><span class="sy0">,</span> <span class="re0">$pre</span><span class="sy0">.</span><span class="br0">(</span><span class="br0">(</span><span class="re0">$inner</span><span class="br0">)</span>?<span class="re0">$inner</span><span class="sy0">:</span><span class="re0">$lang</span><span class="br0">[</span><span class="st_h">'btn_unsubscribens'</span><span class="br0">]</span><span class="br0">)</span><span class="sy0">.</span><span class="re0">$suf</span><span class="sy0">,</span> <span class="st_h">'class="action unsubscribens" rel="nofollow"'</span><span class="br0">)</span><span class="sy0">;</span> <span class="br0">}</span> <span class="kw1">else</span> <span class="br0">{</span> tpl_link<span class="br0">(</span>wl<span class="br0">(</span><span class="re0">$ID</span><span class="sy0">,</span><span class="st_h">'do=subscribens'</span><span class="br0">)</span><span class="sy0">,</span> <span class="re0">$pre</span><span class="sy0">.</span><span class="br0">(</span><span class="br0">(</span><span class="re0">$inner</span><span class="br0">)</span>?<span class="re0">$inner</span><span class="sy0">:</span><span class="re0">$lang</span><span class="br0">[</span><span class="st_h">'btn_subscribens'</span><span class="br0">]</span><span class="br0">)</span><span class="sy0">.</span><span class="re0">$suf</span><span class="sy0">,</span> <span class="st_h">'class="action subscribens" rel="nofollow"'</span><span class="br0">)</span><span class="sy0">;</span> <span class="br0">}</span> <span class="co1">//listeabo</span> tpl_link<span class="br0">(</span>wl<span class="br0">(</span><span class="re0">$ID</span><span class="sy0">,</span><span class="st_h">'do=listeabo'</span><span class="br0">)</span><span class="sy0">,</span> <span class="re0">$pre</span><span class="sy0">.</span><span class="br0">(</span><span class="br0">(</span><span class="re0">$inner</span><span class="br0">)</span>?<span class="re0">$inner</span><span class="sy0">:</span><span class="re0">$lang</span><span class="br0">[</span><span class="st_h">'btn_listeabo'</span><span class="br0">]</span><span class="br0">)</span><span class="sy0">.</span><span class="re0">$suf</span><span class="sy0">,</span> <span class="st_h">'class="action subscribens" rel="nofollow"'</span><span class="br0">)</span><span class="sy0">;</span> <span class="co1">///listeabo</span> <span class="kw1">return</span> <span class="kw4">true</span><span class="sy0">;</span> <span class="br0">}</span> <span class="br0">}</span> <span class="kw1">return</span> <span class="kw4">false</span><span class="sy0">;</span></pre> </div> </li> </ul> </li> </ul> </div> <div class="secedit editbutton_section editbutton_3"><form class="button btn_secedit" method="post" action="/plugin:listeabo"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1453455877" /><input type="hidden" name="summary" value="[Template customization] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="template_customization" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="840-2918" /><button type="submit" title="Template customization">Edit</button></div></form></div> <h2 class="sectionedit4" id="version_history">Version history</h2> <div class="level2"> <ul> <li class="level1"><div class="li"> 2008-09-12: first one!</div> </li> <li class="level1"><div class="li"> 2008-09-29: corrects PHP warnings.</div> </li> <li class="level1"><div class="li"> 2008-10-06: Better superuser detection.</div> </li> <li class="level1"><div class="li"> 2008-11-26: German language added (thanks to Otto R.)</div> </li> <li class="level1"><div class="li"> 2009-01-05: Bugs corrected: BOM in the German lang.php file and error message when there are no subscriptions yet (thanks to Benjamin).</div> </li> </ul> </div> <div class="secedit editbutton_section editbutton_4"><form class="button btn_secedit" method="post" action="/plugin:listeabo"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1453455877" /><input type="hidden" name="summary" value="[Version history] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="version_history" /><input type="hidden" name="codeblockOffset" value="2" /><input type="hidden" name="range" value="2919-3255" /><button type="submit" title="Version history">Edit</button></div></form></div> <h2 class="sectionedit5" id="discussion">Discussion</h2> <div class="level2"> <ul> <li class="level1"><div class="li"> Tell me…</div> </li> <li class="level1"><div class="li"> </div> </li> </ul> </div> <div class="secedit editbutton_section editbutton_5"><form class="button btn_secedit" method="post" action="/plugin:listeabo"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1453455877" /><input type="hidden" name="summary" value="[Discussion] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="discussion" /><input type="hidden" name="codeblockOffset" value="2" /><input type="hidden" name="range" value="3256-3301" /><button type="submit" title="Discussion">Edit</button></div></form></div> <h3 class="sectionedit6" id="section20080929">2008-09-29</h3> <div class="level3"> <ul> <li class="level1"><div class="li"> Nice one. And it almost works. But there are a few minor things to change.</div> </li> <li class="level1"><div class="li"> First we need to add a button to our navi bar. Open lib/tpl/your_template/main.php and add<pre class="code php"><span class="kw2"><?php</span> tpl_button<span class="br0">(</span><span class="st_h">'listeabo'</span><span class="br0">)</span><span class="sy1">?></span></pre> <p> to it (in default template you might wanna use line 61 for that). </p> </div> </li> <li class="level1 node"><div class="li"> Now, we can marvel at some PHP errors to fix. To do that, just open up the action.php of your plugin.<br/> Go to line 87 where you can read<pre class="code php"><span class="kw1">if</span> <span class="br0">(</span><span class="sy0">!</span><a href="http://www.php.net/in_array"><span class="kw3">in_array</span></a><span class="br0">(</span><span class="re0">$page2</span><span class="sy0">,</span> <span class="re0">$mespages</span><span class="br0">)</span><span class="br0">)</span> <span class="re0">$mespages</span><span class="br0">[</span><span class="br0">]</span><span class="sy0">=</span><span class="re0">$page2</span><span class="sy0">;</span></pre> <p> and replace it with </p> <pre class="code php"><span class="kw1">if</span> <span class="br0">(</span><span class="sy0">!</span><a href="http://www.php.net/is_array"><span class="kw3">is_array</span></a><span class="br0">(</span><span class="re0">$mespages</span><span class="br0">)</span> <span class="sy0">||</span> <span class="sy0">!</span><a href="http://www.php.net/in_array"><span class="kw3">in_array</span></a><span class="br0">(</span><span class="re0">$page2</span><span class="sy0">,</span> <span class="re0">$mespages</span><span class="br0">)</span><span class="br0">)</span> <span class="re0">$mespages</span><span class="br0">[</span><span class="br0">]</span><span class="sy0">=</span><span class="re0">$page2</span><span class="sy0">;</span></pre> <p> because we don't know, if $mespages really <em>is</em> an array. </p> </div> <ul> <li class="level2"><div class="li"> → Correction done in version 2008-09-29. Thanks!</div> </li> </ul> </li> <li class="level1 node"><div class="li"> After that, we're almost done.<br/> Finally search for<pre class="code php"><span class="re0">$titrePage</span> <span class="sy0">=</span> <span class="re0">$pagelist</span><span class="sy0">-></span>_getMeta<span class="br0">(</span><span class="st_h">'title'</span><span class="br0">)</span><span class="sy0">;</span></pre> <p> on line 111 and change it to </p> <pre class="code php"><span class="re0">$titrePage</span> <span class="sy0">=</span> <span class="re0">$pagelist</span><span class="sy0">-></span>_getMeta<span class="br0">(</span><span class="re0">$page</span><span class="br0">[</span><span class="st_h">'id'</span><span class="br0">]</span><span class="sy0">,</span> <span class="st_h">'title'</span><span class="br0">)</span><span class="sy0">;</span></pre> <p> What the author forgot is that helper_plugin_pagelist::_getMeta() needs the current page $id as its first parameter. </p> </div> <ul> <li class="level2"><div class="li"> → It doesn't work for me. When I add the id parameter, the _getMeta function doesn't send me the good page title…</div> </li> </ul> </li> <li class="level1"><div class="li"> Hope this helps,<br/> best regards from Germany,<br/> P. Tietz <tietz_patrick [at] web [dot] de></div> </li> </ul> </div> <div class="secedit editbutton_section editbutton_6"><form class="button btn_secedit" method="post" action="/plugin:listeabo"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1453455877" /><input type="hidden" name="summary" value="[2008-09-29] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="section20080929" /><input type="hidden" name="codeblockOffset" value="2" /><input type="hidden" name="range" value="3302-4599" /><button type="submit" title="2008-09-29">Edit</button></div></form></div> <h3 class="sectionedit7" id="section20081217">2008-12-17</h3> <div class="level3"> <ul> <li class="level1"><div class="li"> Would love to use this plugin, while using the arctic template I had to do some more modifications.</div> </li> <li class="level1"><div class="li"> I have one remaining bug which i can't figure out, the following message is shown:<br/> <strong>Warning:</strong> Cannot modify header information - headers already sent by (output started at E:\$Apache_Dokuwiki\dokuwiki\lib\plugins\listeabo\lang\de\lang.php:1) in <strong>E:\$Apache_Dokuwiki\dokuwiki\inc\actions.php</strong> on line <strong>141</strong></div> </li> </ul> <blockquote><div class="no"> The German language file has a <a href="https://en.wikipedia.org/wiki/Byte Order Mark" class="interwiki iw_wp" title="https://en.wikipedia.org/wiki/Byte Order Mark">BOM</a> that causes this effect. Open it for instance with SciTE and remove it, then this plugin works fine.<br/> Hope that helps, Benjamin <b-j [at] gmx.de></div></blockquote> <blockquote><div class="no"> <blockquote><div class="no"> Corrected with version 2009-01-05<br/> Thanks</div></blockquote> </div></blockquote> <ul> <li class="level1"><div class="li"> I hope someone has an idea,<br/> best regards from Germany,<br/> Franklin <franklin_ankum [at] hotmail [dot] com> </div> </li> </ul> </div> <div class="secedit editbutton_section editbutton_7"><form class="button btn_secedit" method="post" action="/plugin:listeabo"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1453455877" /><input type="hidden" name="summary" value="[2008-12-17] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="section20081217" /><input type="hidden" name="codeblockOffset" value="7" /><input type="hidden" name="range" value="4600-5412" /><button type="submit" title="2008-12-17">Edit</button></div></form></div> <h3 class="sectionedit8" id="section20090102">2009-01-02</h3> <div class="level3"> <p> If there are no subscriptions yet, the plugin causes a warning: </p> <pre class="code">Warning: Invalid argument supplied for foreach() in /path_to_wiki/lib/plugins/listeabo/action.php on line 84</pre> <p> As the function <code>$this→list_mlist(…)</code> in line 69 returns <code>NULL</code> in this case the <code>foreach</code>-loop fails. As a workaround I would suggest to modify line 84 as following: </p> <pre class="code"> foreach((is_array($pages) ? $pages : array()) as $page) {</pre> <p> Best regards from Germany,<br/> Benjamin <b-j [at] gmx.de> </p> <blockquote><div class="no"> Thanks! Corrected in the new version (2009-01-05)<br/> Happy new year!</div></blockquote> </div> <div class="secedit editbutton_section editbutton_8"><form class="button btn_secedit" method="post" action="/plugin:listeabo"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1453455877" /><input type="hidden" name="summary" value="[2009-01-02] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="section20090102" /><input type="hidden" name="codeblockOffset" value="7" /><input type="hidden" name="range" value="5413-5977" /><button type="submit" title="2009-01-02">Edit</button></div></form></div> <h3 class="sectionedit9" id="installation_error">2009-08-17 Installation error</h3> <div class="level3"> <p> Hello, </p> <p> There is an error when I try to install the plugin with the Plugin Manager : </p> <pre class="code">Impossible de télécharger le fichier du plugin: http://membres.lycos.fr/emauvais/dokuwiki/listeabo.tar.gz Warning: gzinflate() [function.gzinflate]: data error in /homez.195/giquello/www/cyrille/inc/HTTPClient.php on line 381</pre> <p> But it works when I do it by hand … </p> <p> (PHP Version 5.2.10 and DokuWiki-2009-02-14b.tgz) </p> </div> <div class="secedit editbutton_section editbutton_9"><form class="button btn_secedit" method="post" action="/plugin:listeabo"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1453455877" /><input type="hidden" name="summary" value="[2009-08-17 Installation error] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="installation_error" /><input type="hidden" name="codeblockOffset" value="7" /><input type="hidden" name="range" value="5978-6432" /><button type="submit" title="2009-08-17 Installation error">Edit</button></div></form></div> <h3 class="sectionedit10" id="section20090904">2009-09-04</h3> <div class="level3"> <p> Good plugin - Tank You! </p> <p> <em>Info:</em> The plugin requires the <a href="/plugin:pagelist" class="wikilink1" title="plugin:pagelist" data-wiki-id="plugin:pagelist">pagelist</a> plugin for displaying the subscriptions. </p> <p> <em>Error:</em> The unsubscribe Button in the list view doesn't work for namespace subscriptions. It links to<br/> <code>doku.php/namespace1:namespace2:?do=unsubscribens</code> </p> <p> It jumps to the start page, but doesn't unsubscribe the namespace subscription.<br/> I don't know how I can correct this behaviour. </p> <p> (DokuWiki 2009-02-14b) </p> <p> I fixed it. It links now on a namespace subscriptions to the first page which is found in the namespace. </p> <p> on line 126 I replaced: </p> <pre class="code php"> <span class="kw1">else</span> <span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span><span class="re0">$page</span><span class="sy0">==</span><span class="st_h">''</span><span class="br0">)</span> <span class="re0">$page</span> <span class="sy0">=</span> <span class="st0">"root"</span><span class="sy0">;</span> <span class="kw1">print</span> <span class="re0">$this</span><span class="sy0">-></span><span class="me1">getLang</span><span class="br0">(</span><span class="st_h">'abo_cat'</span><span class="br0">)</span><span class="sy0">.</span><span class="st0">" <span class="es1">\"</span>"</span><span class="sy0">.</span><a href="http://www.php.net/preg_replace"><span class="kw3">preg_replace</span></a><span class="br0">(</span><span class="st0">"/:$/"</span><span class="sy0">,</span><span class="st0">""</span><span class="sy0">,</span><span class="re0">$page</span><span class="br0">)</span><span class="sy0">.</span><span class="st0">"<span class="es1">\"</span>"</span><span class="sy0">;</span> <span class="re0">$nbCat</span><span class="sy0">++;</span> <span class="br0">}</span></pre> <p> with this </p> <pre class="code php"> <span class="kw1">else</span> <span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span><span class="re0">$page</span><span class="sy0">==</span><span class="st_h">''</span><span class="br0">)</span> <span class="re0">$page</span> <span class="sy0">=</span> <span class="st0">"root"</span><span class="sy0">;</span> <span class="kw1">else</span> <span class="re0">$page</span> <span class="sy0">=</span> <span class="re0">$this</span><span class="sy0">-></span><span class="me1">next_file</span><span class="br0">(</span><span class="re0">$page</span><span class="br0">)</span><span class="sy0">;</span> <span class="kw1">print</span> <span class="re0">$this</span><span class="sy0">-></span><span class="me1">getLang</span><span class="br0">(</span><span class="st_h">'abo_cat'</span><span class="br0">)</span><span class="sy0">.</span><span class="st0">" <span class="es1">\"</span>"</span><span class="sy0">.</span><a href="http://www.php.net/preg_replace"><span class="kw3">preg_replace</span></a><span class="br0">(</span><span class="st0">"/:.[^:]*$/"</span><span class="sy0">,</span><span class="st0">""</span><span class="sy0">,</span><span class="re0">$page</span><span class="br0">)</span><span class="sy0">.</span><span class="st0">"<span class="es1">\"</span>"</span><span class="sy0">;</span> <span class="re0">$nbCat</span><span class="sy0">++;</span> <span class="br0">}</span></pre> <p> and added this function: </p> <pre class="code php"> <span class="kw2">function</span> next_file<span class="br0">(</span><span class="re0">$wiki_dir</span><span class="br0">)</span><span class="br0">{</span> <span class="kw2">global</span> <span class="re0">$conf</span><span class="sy0">;</span> <span class="re0">$dir</span> <span class="sy0">=</span> <span class="re0">$conf</span><span class="br0">[</span><span class="st_h">'savedir'</span><span class="br0">]</span><span class="sy0">.</span><span class="st_h">'/pages/'</span><span class="sy0">.</span><span class="re0">$wiki_dir</span><span class="sy0">;</span> <span class="re0">$dir</span> <span class="sy0">=</span> <a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">(</span><span class="st0">":"</span><span class="sy0">,</span><span class="st0">"/"</span><span class="sy0">,</span><span class="re0">$dir</span><span class="br0">)</span><span class="sy0">;</span> <span class="kw1">if</span><span class="br0">(</span><span class="re0">$dh</span> <span class="sy0">=</span> <a href="http://www.php.net/opendir"><span class="kw3">opendir</span></a><span class="br0">(</span><span class="re0">$dir</span><span class="br0">)</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">while</span><span class="br0">(</span><span class="br0">(</span><span class="re0">$file</span> <span class="sy0">=</span> <a href="http://www.php.net/readdir"><span class="kw3">readdir</span></a><span class="br0">(</span><span class="re0">$dh</span><span class="br0">)</span><span class="br0">)</span> <span class="sy0">!==</span> <span class="kw4">false</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span><span class="re0">$file</span> <span class="sy0">!=</span> <span class="st0">"."</span> <span class="sy0">&&</span> <span class="re0">$file</span> <span class="sy0">!=</span> <span class="st0">".."</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">if</span> <span class="br0">(</span><a href="http://www.php.net/is_file"><span class="kw3">is_file</span></a><span class="br0">(</span><span class="re0">$dir</span><span class="sy0">.</span><span class="re0">$file</span><span class="br0">)</span><span class="br0">)</span> <span class="br0">{</span> <a href="http://www.php.net/closedir"><span class="kw3">closedir</span></a><span class="br0">(</span><span class="re0">$dh</span><span class="br0">)</span><span class="sy0">;</span> <span class="re0">$file</span> <span class="sy0">=</span> <a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">(</span><span class="st0">".txt"</span><span class="sy0">,</span><span class="st0">""</span><span class="sy0">,</span><span class="re0">$file</span><span class="br0">)</span><span class="sy0">;</span> <span class="kw1">return</span> <span class="re0">$wiki_dir</span><span class="sy0">.</span><span class="re0">$file</span><span class="sy0">;</span> <span class="br0">}</span> <span class="br0">}</span> <span class="br0">}</span> <span class="br0">}</span> <span class="br0">}</span></pre> <p> (DokuWiki 2009-12-25c “Lemming”) </p> <p> <em><a href="mailto:arno%20%5Bdot%5D%20puschmann%20%5Bat%5D%20it%20%5Bdash%5D%20ng%20%5Bdot%5D%20com" class="mail" title="arno [dot] puschmann [at] it [dash] ng [dot] com">apuschmann</a> 2010/04/12 16:22</em> </p> </div> <div class="secedit editbutton_section editbutton_10"><form class="button btn_secedit" method="post" action="/plugin:listeabo"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1453455877" /><input type="hidden" name="summary" value="[2009-09-04] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="section20090904" /><input type="hidden" name="codeblockOffset" value="7" /><input type="hidden" name="range" value="6433-8199" /><button type="submit" title="2009-09-04">Edit</button></div></form></div> <h3 class="sectionedit11" id="adding_button_in_lemming">2010-03-29 Adding button in Lemming</h3> <div class="level3"> <p> (DokuWiki 2009-12-25c) </p> <p> The file <code><dokuwiki>/inc/template.php</code> has changed in this DokuWiki version. The <a href="#template_customization" title="plugin:listeabo ↵" class="wikilink1">Template custimization</a> to add the button as described above isn't up to date. I'm not sure if it is right but following worked for me. I added only following three lines to <code>template.php</code> (between //listeabo): </p> <pre class="code php"><span class="sy0">...</span> <span class="kw1">case</span> <span class="st_h">'subscribens'</span><span class="sy0">:</span> <span class="kw1">if</span><span class="br0">(</span><span class="re0">$conf</span><span class="br0">[</span><span class="st_h">'useacl'</span><span class="br0">]</span> <span class="sy0">&&</span> <span class="re0">$auth</span> <span class="sy0">&&</span> <span class="re0">$ACT</span> <span class="sy0">==</span> <span class="st_h">'show'</span> <span class="sy0">&&</span> <span class="re0">$conf</span><span class="br0">[</span><span class="st_h">'subscribers'</span><span class="br0">]</span> <span class="sy0">==</span> <span class="nu0">1</span><span class="br0">)</span><span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span><span class="re0">$_SERVER</span><span class="br0">[</span><span class="st_h">'REMOTE_USER'</span><span class="br0">]</span><span class="br0">)</span><span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span><span class="re0">$INFO</span><span class="br0">[</span><span class="st_h">'subscribedns'</span><span class="br0">]</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span>actionOK<span class="br0">(</span><span class="st_h">'unsubscribens'</span><span class="br0">)</span><span class="br0">)</span> <span class="re0">$out</span> <span class="sy0">.=</span> tpl_link<span class="br0">(</span>wl<span class="br0">(</span><span class="re0">$ID</span><span class="sy0">,</span><span class="st_h">'do=unsubscribens'</span><span class="br0">)</span><span class="sy0">,</span> <span class="re0">$pre</span><span class="sy0">.</span><span class="br0">(</span><span class="br0">(</span><span class="re0">$inner</span><span class="br0">)</span>?<span class="re0">$inner</span><span class="sy0">:</span><span class="re0">$lang</span><span class="br0">[</span><span class="st_h">'btn_unsubscribens'</span><span class="br0">]</span><span class="br0">)</span><span class="sy0">.</span><span class="re0">$suf</span><span class="sy0">,</span> <span class="st_h">'class="action unsubscribens" rel="nofollow"'</span><span class="sy0">,</span><span class="nu0">1</span><span class="br0">)</span><span class="sy0">;</span> <span class="br0">}</span> <span class="kw1">else</span> <span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span>actionOK<span class="br0">(</span><span class="st_h">'subscribens'</span><span class="br0">)</span><span class="br0">)</span> <span class="re0">$out</span> <span class="sy0">.=</span> tpl_link<span class="br0">(</span>wl<span class="br0">(</span><span class="re0">$ID</span><span class="sy0">,</span><span class="st_h">'do=subscribens'</span><span class="br0">)</span><span class="sy0">,</span> <span class="re0">$pre</span><span class="sy0">.</span><span class="br0">(</span><span class="br0">(</span><span class="re0">$inner</span><span class="br0">)</span>?<span class="re0">$inner</span><span class="sy0">:</span><span class="re0">$lang</span><span class="br0">[</span><span class="st_h">'btn_subscribens'</span><span class="br0">]</span><span class="br0">)</span><span class="sy0">.</span><span class="re0">$suf</span><span class="sy0">,</span> <span class="st_h">'class="action subscribens" rel="nofollow"'</span><span class="sy0">,</span><span class="nu0">1</span><span class="br0">)</span><span class="sy0">;</span> <span class="br0">}</span> <span class="co1">//listeabo</span> <span class="re0">$out</span> <span class="sy0">.=</span> tpl_link<span class="br0">(</span>wl<span class="br0">(</span><span class="re0">$ID</span><span class="sy0">,</span><span class="st_h">'do=listeabo'</span><span class="br0">)</span><span class="sy0">,</span> <span class="re0">$pre</span><span class="sy0">.</span><span class="br0">(</span><span class="br0">(</span><span class="re0">$inner</span><span class="br0">)</span>?<span class="re0">$inner</span><span class="sy0">:</span><span class="re0">$lang</span><span class="br0">[</span><span class="st_h">'btn_listeabo'</span><span class="br0">]</span><span class="br0">)</span><span class="sy0">.</span><span class="re0">$suf</span><span class="sy0">,</span> <span class="st_h">'class="action subscribens" rel="nofollow"'</span><span class="sy0">,</span><span class="nu0">1</span><span class="br0">)</span><span class="sy0">;</span> <span class="co1">//listeabo</span> <span class="br0">}</span> <span class="br0">}</span> <span class="sy0">...</span></pre> </div> <div class="secedit editbutton_section editbutton_11"><form class="button btn_secedit" method="post" action="/plugin:listeabo"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1453455877" /><input type="hidden" name="summary" value="[2010-03-29 Adding button in Lemming] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="adding_button_in_lemming" /><input type="hidden" name="codeblockOffset" value="10" /><input type="hidden" name="range" value="8200-9603" /><button type="submit" title="2010-03-29 Adding button in Lemming">Edit</button></div></form></div> <h3 class="sectionedit12" id="display_fix_for_anteater_and_newer_versions">Display fix for Anteater (and newer) versions</h3> <div class="level3"> <p> Since Anteater DokuWiki stores additional data about digest mail subscriptions in the *.mlist files. This prevents the plugin from displaying the usernames in a proper way. To re-enable the “good look” you could add the following three lines to your action.php: <a href="https://github.com/lupo49/plugin-listeabo/commit/ef2fcd1acba9707dd581d0ba12e199f6a4d11564#L0R94" class="urlextern" title="https://github.com/lupo49/plugin-listeabo/commit/ef2fcd1acba9707dd581d0ba12e199f6a4d11564#L0R94">action.php - Line 94-96</a> — <a href="https://forum.dokuwiki.org/u/lupo49" class="interwiki iw_user" title="https://forum.dokuwiki.org/u/lupo49">M. S.</a> <em>2011/04/29 20:52</em> </p> </div> <div class="secedit editbutton_section editbutton_12"><form class="button btn_secedit" method="post" action="/plugin:listeabo"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1453455877" /><input type="hidden" name="summary" value="[Display fix for Anteater (and newer) versions] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="display_fix_for_anteater_and_newer_versions" /><input type="hidden" name="codeblockOffset" value="11" /><input type="hidden" name="range" value="9604-10095" /><button type="submit" title="Display fix for Anteater (and newer) versions">Edit</button></div></form></div> <h3 class="sectionedit13" id="to_make_it_work_under_angua">To make it work under Angua</h3> <div class="level3"> <p> I actually like this plugin but I was only interested in the Admin-part here so no guarantee for the rest of this. <br/> In addition to the digest-patch above some <abbr title="HyperText Markup Language">HTML</abbr>-Escape characters in the .mlist files needed to be replaced. There is probably some function that does this and catches some more escapes, but I do not know it. So the full patch is: </p> <pre class="code php"><span class="sy0">...</span> <span class="kw1">foreach</span><span class="br0">(</span><a href="http://www.php.net/file"><span class="kw3">file</span></a><span class="br0">(</span><span class="re0">$page</span><span class="br0">)</span> <span class="kw1">as</span> <span class="re0">$nom</span><span class="br0">)</span> <span class="br0">{</span> <span class="re0">$nom</span><span class="sy0">=</span><a href="http://www.php.net/chop"><span class="kw3">chop</span></a><span class="br0">(</span><span class="re0">$nom</span><span class="br0">)</span><span class="sy0">;</span> <span class="co1">//added code at line 90</span> <span class="co1">// Discard digest information of the line</span> <span class="re0">$digest</span> <span class="sy0">=</span> <a href="http://www.php.net/strpos"><span class="kw3">strpos</span></a><span class="br0">(</span><span class="re0">$nom</span><span class="sy0">,</span> <span class="st_h">' '</span><span class="br0">)</span><span class="sy0">;</span> <span class="kw1">if</span><span class="br0">(</span><span class="re0">$digest</span><span class="br0">)</span> <span class="re0">$nom</span> <span class="sy0">=</span> <a href="http://www.php.net/substr"><span class="kw3">substr</span></a><span class="br0">(</span><span class="re0">$nom</span><span class="sy0">,</span> <span class="nu0">0</span><span class="sy0">,</span> <span class="re0">$digest</span><span class="br0">)</span><span class="sy0">;</span> <span class="re0">$search</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span><span class="st0">"<span class="es6">%5f</span>"</span><span class="sy0">,</span> <span class="st0">"<span class="es6">%2d</span>"</span><span class="br0">)</span><span class="sy0">;</span> <span class="re0">$replace</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span><span class="st0">"_"</span><span class="sy0">,</span> <span class="st0">"-"</span><span class="br0">)</span><span class="sy0">;</span> <span class="re0">$nom</span> <span class="sy0">=</span> <a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">(</span><span class="re0">$search</span><span class="sy0">,</span> <span class="re0">$replace</span><span class="sy0">,</span><span class="re0">$nom</span><span class="br0">)</span><span class="sy0">;</span> <span class="co1">//and added code</span> <span class="sy0">...</span></pre> <p> Also the table layout can be improved, but that's a matter of taste. <br/> You should also have a look at the english lang.php. <br/> Watch out for the hardcoded “doku.php” string in action.php when the <abbr title="Uniform Resource Locator">URL</abbr> for pages is constructed in case you renamed that file. </p> </div> <div class="secedit editbutton_section editbutton_13"><form class="button btn_secedit" method="post" action="/plugin:listeabo"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1453455877" /><input type="hidden" name="summary" value="[To make it work under Angua] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="to_make_it_work_under_angua" /><input type="hidden" name="codeblockOffset" value="11" /><input type="hidden" name="range" value="10096-11083" /><button type="submit" title="To make it work under Angua">Edit</button></div></form></div> <h3 class="sectionedit14" id="requiredremove_not_existing_users_from_abo">Required: Remove not existing users from Abo</h3> <div class="level3"> <p> It would be nice, if there would be a possibility in the admin area of this plugin, to clean the <code>.mlist</code> files from entries of users, that do not longer exist… Thanks in advance! </p> </div> <div class="secedit editbutton_section editbutton_14"><form class="button btn_secedit" method="post" action="/plugin:listeabo"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1453455877" /><input type="hidden" name="summary" value="[Required: Remove not existing users from Abo] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="requiredremove_not_existing_users_from_abo" /><input type="hidden" name="codeblockOffset" value="12" /><input type="hidden" name="range" value="11084-" /><button type="submit" title="Required: Remove not existing users from Abo">Edit</button></div></form></div> <!-- wikipage stop --> </div> <div class="docInfo"><bdi>plugin/listeabo.txt</bdi> · Last modified: <time datetime="2016-01-22T10:44:37+0100">2016-01-22 10:44</time> by <bdi>Aleksandr</bdi></div> <hr class="a11y" /> </div></main><!-- /content --> <!-- PAGE ACTIONS --> <nav id="dokuwiki__pagetools" aria-labelledby="dokuwiki__pagetools__heading"> <h3 class="a11y" id="dokuwiki__pagetools__heading">Page Tools</h3> <div class="tools"> <ul> <li class="edit"><a href="/plugin:listeabo?do=edit" title="Edit this page [e]" rel="nofollow" accesskey="e"><span>Edit this page</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z"/></svg></a></li><li class="revs"><a href="/plugin:listeabo?do=revisions" title="Old revisions [o]" rel="nofollow" accesskey="o"><span>Old revisions</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 7v5.11l4.71 2.79.79-1.28-4-2.37V7m0-5C8.97 2 5.91 3.92 4.27 6.77L2 4.5V11h6.5L5.75 8.25C6.96 5.73 9.5 4 12.5 4a7.5 7.5 0 0 1 7.5 7.5 7.5 7.5 0 0 1-7.5 7.5c-3.27 0-6.03-2.09-7.06-5h-2.1c1.1 4.03 4.77 7 9.16 7 5.24 0 9.5-4.25 9.5-9.5A9.5 9.5 0 0 0 12.5 2z"/></svg></a></li><li class="backlink"><a href="/plugin:listeabo?do=backlink" title="Backlinks" rel="nofollow"><span>Backlinks</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.59 13.41c.41.39.41 1.03 0 1.42-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0 5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.982 2.982 0 0 0 0-4.24 2.982 2.982 0 0 0-4.24 0l-3.53 3.53a2.982 2.982 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0 5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.982 2.982 0 0 0 0 4.24 2.982 2.982 0 0 0 4.24 0l3.53-3.53a2.982 2.982 0 0 0 0-4.24.973.973 0 0 1 0-1.42z"/></svg></a></li><li class="top"><a href="#dokuwiki__top" title="Back to top [t]" rel="nofollow" accesskey="t"><span>Back to top</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"/></svg></a></li> </ul> </div> </nav> </div><!-- /wrapper --> <!-- ********** FOOTER ********** --> <footer id="dokuwiki__footer"><div class="pad"> <div class="license">Except where otherwise noted, content on this wiki is licensed under the following license: <bdi><a href="https://creativecommons.org/licenses/by-sa/4.0/deed.en" rel="license" class="urlextern">CC Attribution-Share Alike 4.0 International</a></bdi></div> <div class="buttons"> <a href="https://creativecommons.org/licenses/by-sa/4.0/deed.en" rel="license"><img src="/lib/images/license/button/cc-by-sa.png" alt="CC Attribution-Share Alike 4.0 International" /></a> <a href="https://www.dokuwiki.org/donate" title="Donate" ><img src="/lib/tpl/dokuwiki/images/button-donate.gif" width="80" height="15" alt="Donate" /></a> <a href="https://php.net" title="Powered by PHP" ><img src="/lib/tpl/dokuwiki/images/button-php.gif" width="80" height="15" alt="Powered by PHP" /></a> <a href="//validator.w3.org/check/referer" title="Valid HTML5" ><img src="/lib/tpl/dokuwiki/images/button-html5.png" width="80" height="15" alt="Valid HTML5" /></a> <a href="//jigsaw.w3.org/css-validator/check/referer?profile=css3" title="Valid CSS" ><img src="/lib/tpl/dokuwiki/images/button-css.png" width="80" height="15" alt="Valid CSS" /></a> <a href="https://dokuwiki.org/" title="Driven by DokuWiki" ><img src="/lib/tpl/dokuwiki/images/button-dw.png" width="80" height="15" alt="Driven by DokuWiki" /></a> </div> <div style="margin-top: 2em; font-size:90%" class="dokuwiki"><div style="float:right"><a href="http://www.splitbrain.org/personal#imprint" style="float:right; text-decoration: none; color:#333">Imprint</a></div></div><!-- Include for DokuWiki site wide top bar --> <style type="text/css"> @media screen { body { padding-top: 30px; } #global__header { position: absolute; top: 0; left: 0; text-align: left; vertical-align: middle; line-height: 1.5; background-color: #333; box-shadow: 0 0 8px rgba(0,0,0,0.5); width: 100%; margin: 0; padding: 5px 20px; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; white-space: nowrap; overflow: hidden; } #global__header h2 { position: absolute; left: -99999em; top: 0; overflow: hidden; display: inline; } #global__header ul, #global__header li { margin: 0; padding: 0; list-style: none; display: inline; line-height: 1.5; } #global__header a { color: #bbb; text-decoration: none; margin-right: 20px; font-size: 14px; font-weight: normal; } #global__header a:hover, #global__header a:active, #global__header a:focus { color: #fff; text-decoration: underline; } #global__header form { float: right; margin: 0 0 0 20px; } #global__header input { background-color: #333; background-image: none; border: 1px solid #bbb; color: #fff; box-shadow: none; border-radius: 2px; margin: 0; line-height: normal; padding: 1px 0 1px 0; height: auto; } #global__header input.button { border: none; color: #bbb; } #global__header input.button:hover, #global__header input.button:active, #global__header input.button:focus { color: #fff; text-decoration: underline; } } /* /@media */ @media only screen and (min-width: 601px) { /* changes specific for www.dokuwiki.org */ #dokuwiki__header { padding-top: 3em; } #dokuwiki__usertools { top: 3em; } /* changes specific for bugs.dokuwiki.org */ div#container div#showtask { top: 40px; } } /* /@media */ @media only screen and (max-width: 600px) { body { padding-top: 0; } #global__header { position: static; white-space: normal; overflow: auto; } #global__header form { float: none; display: block; margin: 0 0 .4em; } } /* /@media */ @media print { #global__header { display: none; } } /* /@media */ </style> <div id="global__header"> <h2>Global DokuWiki Links</h2> <form method="get" action="https://search.dokuwiki.org/" target="_top"> <input type="text" name="q" title="Search all DokuWiki sites at once" class="input" /> <input type="submit" title="Search all DokuWiki sites at once" value="Search" class="button" /> </form> <ul> <li><a href="https://download.dokuwiki.org" title="Download the latest release" target="_top">Download</a></li> <li><a href="https://www.dokuwiki.org" title="Read the DokuWiki documentation" target="_top">Wiki</a></li> <li><a href="https://forum.dokuwiki.org" title="Ask questions in the DokuWiki forum" target="_top">Forum</a></li> <li><a href="https://irc.dokuwiki.org" title="Check IRC chat logs or join the chat" target="_top">IRC</a></li> <li><a href="https://github.com/splitbrain/dokuwiki/issues" title="Report and track bugs" target="_top">Bugs</a></li> <li><a href="https://translate.dokuwiki.org/" title="Help translating the DokuWiki interface" target="_top">Translate</a></li> <li><a href="https://github.com/splitbrain/dokuwiki" title="Access the most recent git commits" target="_top">Git</a></li> <li><a href="https://xref.dokuwiki.org/reference/dokuwiki/" title="Cross-Reference of the DokuWiki source code" target="_top">XRef</a></li> <li><a href="https://codesearch.dokuwiki.org/" title="Search through the sources of DokuWiki, plugins and templates" target="_top">Code Search</a></li> </ul> </div> <!-- end of DokuWiki top bar include --> </div></footer><!-- /footer --> </div></div><!-- /site --> <div class="no"><img src="/lib/exe/taskrunner.php?id=plugin%3Alisteabo&1734075925" width="2" height="1" alt="" /></div> <div id="screen__mode" class="no"></div></body> </html>