Loading...
 
Skip to main content

History: Gadgets

Source of version: 15 (current)

Copy to clipboard
This is the name of a future feature which will supersede both modules and wiki plugins. All modules and wiki plugins will become "Gadgets". This could be done in --((Tiki14)) or ((Tiki15))-- --((Tiki20))-- or --eventually, after the ((themes:Bootstrap)) (4) transition is complete. -- or --Tiki25-- as soon as possible.

Reason: there is increasing overlap between the two features.

Modules and plugins are bad names because people think it refers to plugins/modules/extensions in other Web apps.

!! Naming
Code name for this feature: The Fluffy Project (aka fluffies) on the basis that's a totally random name and better than ''plugin''.
Other possibilities discussed were:
* Gadget
* Widget
* Component
* Macro

!! Structure
* Abstract
+ Base class to contain common code, such as parameters, permissions, profile info etc
* DOM Element
+ Fluffies with a DOM element representation
+ Basically the current ~np~{div}~/np~ plugin - so all other fluffies will have common parameters such as width, class etc
* Content Body
+ Fluffies that can have content, with a mechanism to have conditional content block with an ~np~{ELSE}~/np~ such as the ~np~{group}~/np~ plugin and others


!!  Wishes
* Use the new Bootstrap classes
* Alternate behaviors for print/mobile/small screen/etc.
* All optional (like plugins are but modules aren't)
* Possible to have permissions for use
* Usable in text area (like plugins) and in Smarty Templates (like modules)
* Self-contained in a zip (for custom gadgets)
* For modules to be converted to gadgets (doable via ((Database Schema Upgrade))
* For plugins to be still functional
** Perhaps Gadget alias concept, like we have for plugin alias
* So the old plugin ~np~{listpages}~/np~ is an alias of a new gadget

-=alias=-
* (alias(Project Fluffy))
* (alias(Widgets))
* (alias(Plugin and Module Revamp))

!!! Related
* https://github.com/mozilla/brick
* ((Web Components))
* ((Plugin revamp))
* ((WYSIWYG and Markdown))
Show PHP error messages