This is an old revision of the document!
Table of Contents
Hiding IPs Plugin
Compatible with DokuWiki
Greebo, 2018-04-22
This extension has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues.
このページは日本語でご覧頂けます(This page is also available in Japanese)
I’m not a native English speaker, so this page may contain some mistakes in English sentences.
Summary
In default, DokuWiki sometimes show IPs of those who are not logging in.
For example, recent changes or old revisions are shown like this:
2018/05/27 12:39 pagename – Summary. XXX.XXX.XXX.XXX -xxx B 2018/05/22 23:54 pagename – Summary. username ±0 B
But some people think that IPs shouldn't be shown to public.
This plugin tries to replace such IPs with alternative texts (A User Not Logged in
in default).
Admins can view IPs even with this plugin.
Installation
Search and install the plugin using the Extension Manager. Refer to Plugins on how to install plugins manually.
Examples/Usage
It doesn't need any additional settings.
After you install this plugin, it'll automatically hide IPs in:
- Recent Changes (via an event HTML_RECENTFORM_OUTPUT)
- Old Revisions (via an event HTML_REVISIONSFORM_OUTPUT)
- Showing Diffs (via an event TPL_CONTENT_DISPLAY)
- Last Modified (via an event COMMON_USER_LINK)
- Page Locking (via an event COMMON_USER_LINK)
The plugin will rewrite only superficial data, core data won't be overwritten.
When to run this plugin can be specified on the config (see Configuration and Settings).
Helper Plugin Option
You can use the localization of the alternative text used by this plugin.
Here is a sample of the code:
if (!isset($_SERVER['REMOTE_USER'])) { if(!plugin_isdisabled('hidingip')) { $hidingip = plugin_load('helper', 'hidingip'); $user = $hidingip->altText(); // "$hidingip->getLang('notloggedin')" works similarly }
A practical sample can be seen in the program of my Autotweet2 plugin (Here).
How IPs are Replaced
In Recent Changes and Old Revisions
When $event->data->_content['(number)']['class']
has 'user', there is an user name or an IP address in $event->data->_content['(the next number)']
.
Thus this plugin detects the 'user' texts, and substitutes TRUE for $flag
if found.
If the $flag
is TRUE, this plugin will check whether or not there is an IP in the texts. If found, it'll be hidden .
But, the first item of the old revision is different a little from others, so there is some customizing.
In Showing Diffs
The function is similar to that in recent changes and old revisions, but it'll modify HTML directly.
In Last Modified and Page Locking
UPDATED
If $event->data['username']
is likely to be an IP, the plugin will write $event->data['name']
.
You can't use the user name like IPs (that'll be accidentally replaced. e.g.: 3.57.2.13 ).1)
Configuration and Settings
You can change the following setting by using the Configuration Manager.
Option | Description | Value Type | Default Value |
---|---|---|---|
whenToHide | When to run the plugin (In the text box, you can specify when to run if you'll use Hidingip Helper plugin in other plugins.) | multiple choice from revision (Old revisions), recent (Recent changes), diff (Showing diffs), and userlink (COMMON_USER_LINK event (such as page locking and showing “last modified”)) | revision,recent,diff,userlink |
rightToSeeIP | Who can see IP addresses? (see config “manager” and “superuser | pull-down choice from sp (Superusers) or mg (Managers (including superusers)) | sp |
Development
Change Log
- 2018-06-01
- Initial release
- 2018-06-02
- modified text garbling
- 2018-10-24
- Update with bug fixing (The problem about WARNING level errors, and the problem that the plugin didn't work well if the config Showuseras was
username_link
oremail_link
)
- 2018-10-30
- Adding some options (configs and the helper plugin section)
- 2018-11-05
- Fixed invalid syntax
Known Bugs and Issues
Currently none
ToDo/Wish List
Currently none
Contact Me
If you find some problems in this plugin, you can make issue topics on the GitHub page, or if you wanna contact me for other things, you can contact me by:
- My Twitter (Japanese account but English acceptable)