Modular plugins are a key element of Brain Annex's functionality.
Each plugin provides capability for storing, presenting, editing and searching some content type, such as formatted text notes, images or documents. Plugins can also implement widgets.
The standard set of plugins coming with a standard installation of Brain Annex provide support for basic, common content types, but plugins can also be immensely specific for particular needs.
A beauty of Brain Annex plugins, and a core strength, is that they are fairly easy to write - a junior programmer at your company ought to be able to modify or create plugins for your specific company needs. And since Brain Annex is open source, the community will come up with lots of them.
Brain Annex is very integrative - and brings together a wide variety of modules by various open-source authors.
NAME | Function | Code |
---|---|---|
audio | audio or music | a |
ckeditor * | HTML text editor, used by other plugins | [NOT DIRECTLY USED] |
clock | a timer widget | c |
documents | management of documents (such as PDF's or Word files) | d |
headers | page headers (separators) | h |
images | photos and SVG graphics, including a photo viewer | i |
lists | lists of arbitrary content (including other plugin object). Optionally, with element headers (similar to a single table record) | l |
notes | formatted text (HTML) | n |
plotting | SVG plots | [NOT YET AVAILABLE FOR DIRECT PLUGIN USE] |
siteLinks | saved bookmarks, annotated | sl |
social | management of social-media data | s |
userTables | management of user-defined table and views based on them | t |
video | video files & player, including optional subtitles | v |
NAME | Function |
---|---|
basicTriples | a simple Triplestore (NoSQL semantic database) |
categories | tagging system with categories organized in a Directed Acyclic Graph (i.e. Categories can have multiple parents as well as multiple sub-categories) |
contentManager | used to add/delete/retrieve content |
membership | management of site accounts and user accounts |
orchestrator (aka Core) | initialize all other modules, in the correct order, drawing upon the Brain Annex configuration file. Create an object to provide all needed site functionality to individual web pages. |
permissions | assign and enforce permissions for non-owner users, as well as for public pages |
resourceUsage | management of users' resource usage, including optional enforcement |
These are very general modules that have multiple uses, and aren't specific to BrainAnnex. They are all (or are scheduled to become) open-source; many originate from the Brain Annex project, while a few are from other authors. As marked in the 2nd column, some of them got split off into the pForce PHP Web Framework (which is fully releasted to open source)
NAME | Part of pForce PHP Web Framework? | Function |
---|---|---|
awesomplete * | auto-completion in search box | |
byteServer | script to generate content; for example, from an image or video file (the files are not directly accessible, to enforce protection) | |
clipboard.js * | copy text to system clipboard | |
cookies | Y | to manage PHP cookies |
dbasePDO | Y | PDO-based API to connect with a database (MySQL in the case of BrainAnnex, but it could be other ones) |
dbaseRestricted | API to provide restricted access (i.e. no full freedom of SQL statements) and higher-level abstraction to database. Also provides namespace translation. Main use is to provide controlled database acces to the various plugins | |
directedGraphs | Y | implements Directed Acyclic Graphs (a more general data structure than the familiar "trees") |
dragscroll * | in use by the User Tables plugin to move around (scroll) large tables by grabbing them with the mouse | |
dropzone * | client-side support for file uploading | |
formBuilder | Y | to easily build HTML forms, as well as "Control Panels" ("Dashboards") |
logging | Y | primarily used for logging of error conditions |
navbar | to provide page navigation - in particular a navigation menu | |
pageBuilder | to create standardized HTML pages | |
parameterValidation | Y | to check the validity of parameters, especially user-generated ones |
pdfparser * | to extract text from uploaded PDF files | |
siteAuth | Y | authenticated user acces |
submitForms | used to provide a way to contact the site's admin | |
SVG | low-level graphics library and a high-level plotting functions | |
tableFramework | API to generate editable HTML tables | |
templateEvaluation | Y | to carry out replacements on templates |
text | Y | a library of text-related functions |
uploader | Y | a module to provide server-side support for file uploads |
userMessages | functions to communicate info, warning and errors to site users | |
validator | a higher-level library to both perform parameter validation and communicate failures to users | |
zipstream * | to dynamically create a zip files; for example, to bulk-download Content Items |
(*) Software from the Open-Source Community