Plugins

Later on in this document I'll provide a short tutorial on the basics of creating a Hello World plugin, here I'll discuss how you can find information about plugins and, if you're a plugin developer, how to provide similar information for your users.

Introduction

Plugins are a core part of BookyFlow. I initially came up with the mechanism to achieve this back in August of 2005, when Joomla was still Mambo. My main goal was always to find a way to provide new functionality for BookyFlow without having to do a new release every time I had a new idea. Since then it has evolved, but the fundamentals haven't changed.

The main BookyFlow scripts, those delivered with BookyFlow Core, can be found in

/bookyflow/core-minicomponents (because, initially they were installed using the Joomla Component Installer functionality).

Core plugins, i.e. plugins that are part of the BookyFlow package, once they're installed can be found in /bookyflow/core-plugins.

Third party plugins can be found in /bookyflow/remote_plugins

Plugin Infos

For at least 10 years I maintained a section in the BookyFlow Manual site that held information about various plugins. The problem was that changes could be made to a plugin, but documenting those changes could often be forgotten if I was modifying several different plugins at the same time. To resolve this I came up with a more maintainable way to deliver information about the plugins you have installed on your BookyFlow based site.

There's a plugin in the BookyFlow Plugin Manager called Plugin Infos. It's a free plugin, available to all so feel free to install it on your site. Important: Requires at least PHP8.0.

Once installed it adds a new menu item under Administrator > BookyFlow > Plugin Info

Visit this page and you will see a variety of buttons. In this example we'll look at the BookyFlow Messaging System plugin.

{width="4.322916666666667in" height="1.8020833333333333in"}

Click on that button and scroll down to see information about the plugin.

{width="6.469273840769904in" height="4.5375in"}

Many plugins don't need a large amount of information. They'll just say something like "Use as a shortcode." so visit the Administrator > BookyFlow > Tools > Shortcodes page for more information about a specific plugin. More information on shortcodes can be found in the Site Manager's guide document.

Some however do contain a lot more information. The JMS plugin info for example discusses how you can show a login prompt because the JMS requires that a user be logged in before they can communicate with a property.

####### Developer notes

If you want to provide your own documentation for your plugins, you can do so by packaging a README.md file with your plugin.

This README.md file is parsed each time the registry is rebuilt (that's either when a new plugin is installed/updated/deleted, once a day, or whenever you use the Rebuild Registry tool in Administrator > BookyFlow > Tools).

The markdown in these files is basic github markdown, with a handful of minor exceptions.

Images

To include an image in the markup use the following (example from BookyFlow Messaging System plugin)

And put your image/images in the plugin's /screenshots directory.

To include video, put videos in the plugin's /videos directory. Here you'll see an example from the isotope_properties plugin.