Patches and Hacks

1

please write everything in English


Contributing?
If you want to contribute a plugin, script, hack, template or whatever please feel free to post it to our Bug Tracker to let us see, if we can include it in our distribution.


Why not keep everything in the WackoWiki distribution?
This page serves as a collection of external plugins/scripts of tools. They are not included in the distribution because either the author did not approve to that, the script is too complicated/insecure for novice users or plainly because the script does not fit within our whole concept. However we do not want to let the work on those scripts go unnoticed, so you can see those collected here.


For help on how to install those plugins, please read the Plugins documentation. (pls. add info of compatible version of WackoWiki)


-> Template - copy & paste or clone

1. Action

1.1. Char Count

{{charcount max=[number]}}
-> CharCount

1.2. Get IP

{{getip}}
-> GetIP

1.3. Hidden Content

{{hiddencontent username="UserName1,UserName2" usergroup="Admins" text="Hidden content text"}}
Hides content on a page based on user name or user group
-> Hidden Content

1.4. Image Slider

Responsive CSS3 Image Slider
{{imageslider}}
-> Image Slider

1.5. PageID Link

{{plink}}
Creates internal links using the PageID
-> PageID Link

1.6. Scheduler

{{scheduler}}
-> Scheduler

1.7. Wiki Messenger

einfacher Wiki-Messenger
{{messenger}}
-> WikiMessenger

1.8. Gallery

{{gallery}}
-> Gallery

1.9. Time stamp

{{timestamp}}
-> TimeStamp

1.10. Template Insert

bugs: no user, acl check, still need to replace the header() function (by java-script code?)
{{template.insert}}
-> Insert Template

1.11. Edit interwiki.conf

{{newinterwiki}}
-> New interwiki.conf

1.12. Poll

Add polls to your WackoWiki pages!
{{poll q="Do you like WackoWiki?" a="Yes:No"}}
-> Poll

1.13. Mass Regex Replace

Mass edit using regular expressions
-> Mass Regex Replace

2. Admin Panel

3. Formatter

3.1. BBCode

BBCode parsing class
-> BBCode Formatter

3.2. Color Box

visualize color sets as boxes
{{colorbox}}
-> ColorBox

3.3. Template Boxes

Create dynamic or static content templates to create for instance info boxes
{{tpl_name}}
-> Content Templates

3.4. CSV

Converts inline CSV data into a table.
-> CSV Formatter

3.5. GeSHi Code Highlighting

Generic Syntax Highlighter
-> GeSHi Hack

3.6. Graphviz Visualisation

With this formatter, it is possible to visualize graphs with the famous GraphViz tool.
-> Graphviz Visualisation

3.7. Highlight.js

Highlight.js is a syntax highlighter written in JavaScript. It works in the browser as well as on the server. It can work with pretty much any markup, doesn’t depend on any other frameworks, and has automatic language detection.


-> Highlight.js

3.8. MathJax

MathJax allows you to include mathematics in your web pages, either using TeX and LaTeX notation, or as MathML, and you can even use both in the same document.
-> MathJax

3.9. Ruby-Wacko-Formatter

3.10. Timeline

Converts inline data into a timeline.
-> Timeline

4. Handler

4.1. Send Page via Email

This is a handler to send a specific page to someone via email
-> SendThisPage

4.2. Slide Show

Replaces PowerPoint ;-)
-> SlideShow

5. Converter

5.1. HTML to WackoWiki converter

An HTML to WackoWiki converter written in JavaScript.
-> HTML2WackoWiki

5.2. OpenDocument To WackoWiki

OpenOffice Writer 2+ export filter
-> OpenDocument2WackoWiki

6. Hack

6.1. BadBehaviour

Bad Behavior is a set of PHP scripts which prevents spambots from accessing your site by analyzing their actual HTTP requests and comparing them to profiles from known spambots.
-> BadBehaviour

6.2. Spam-Protection for comments

avoid comment-spam added by "non-human-beings"
-> Spam-Protection for comments

6.3. Google Translate

Adds Google Translate to your page header.
-> Google Translate

6.4. Different Homepage

Different starting-page for members and visitors
-> Different Homepage

6.5. Mantis-WackoWiki Integration

Integrate WackoWiki into MantisBT
-> Mantis-WackoWiki Integration

6.6. Async Upload Hack

module for bulk upload files on a WackoWiki site using Fetch API
-> Async Upload Hack

6.7. LDAP Groups as ACL Group Aliases

-> LDAP Groups

6.8. Plugins Directory Hack

Keep modified actions, handlers and formatters separate from the codebase
-> Plugins Directory


7. Tools

7.1. Ansible Role

-> WackoWiki Ansible Role

Comments

  1. Preview Files Before Upload

    Advantages of implementing a client-side preview system with removal and metadata editing capabilities include enhanced user experience through immediate visual feedback, which allows users to confirm they have selected the correct file and catch errors like blurry images or incorrect aspect ratios before submission. This approach reduces server load and bandwidth usage by preventing the upload of invalid, oversized, or unwanted files, while also increasing user confidence by letting them verify input visually. Additionally, providing a remove option prevents unnecessary data transmission; if files are deleted client-side, they are not included in the FormData payload, avoiding the "unneeded payload" issue where deleted images are still sent to the server.

    Disadvantages primarily involve performance and memory management. Reading large images as Data URLs via FileReader.readAsDataURL() can consume significant browser memory and cause slowdowns, whereas using URL.createObjectURL() requires careful management with URL.revokeObjectURL() to prevent memory leaks, especially in single-page applications. Implementing metadata editing and dynamic DOM manipulation for previews adds development complexity, requiring robust handling of edge cases such as clearing previous previews, managing multiple file selections, and ensuring accessibility for screen readers. Furthermore, relying on client-side validation for file types and sizes is insufficient for security, necessitating redundant server-side validation to prevent malicious uploads.