Plugin Templates for CA / Appstore


Squid

Recommended Posts

Now that CA supports plugins, there is a separate xml schema for them which is basically a trimmed down docker template.

 

There is no naming convention for the actual template files, but you really should avoid any punctuation, quotation marks, etc that could mess up the appfeed.

 

After creating the templates, you will need to create a new gitHub repository (a new one because if there are any other .xml files within an existing repository, the appfeed will wind up trying to parse them with unknown results on the appfeed / community applications), transfer the templates to them, and them let me know the url to the repository.

 

 

The basic template is as follows:

 

<?xml version="1.0" encoding="utf-8"?>
<Containers>
<PluginURL>https://raw.githubusercontent.com/Squidly271/docker.categorize/master/plugins/docker.categorize.plg</PluginURL>
<PluginAuthor>Squid</PluginAuthor>
<Beta>False</Beta>
<Category>Other:</Category>
<Name>Application Categorizer</Name>
<Description>
This plugin is for application developers ONLY.  It will create the category entries for application templates so that Community Applications can display the apps correctly.  (Either docker apps or plugins)
</Description>
<Support>http://lime-technology.com/forum/index.php?topic=40111.0</Support>
<Icon>http://www.graphicsfuel.com/wp-content/uploads/2012/03/folder-icon-512x512.png</Icon>
<IconFA>refresh</IconFA>
</Containers>

 

 

<PluginURL> Mandatory.  The full path to the .plg file

 

<PluginAuthor> is technically optional, but without it, no one will know who created the plugin

 

<Category> The entry for this tag is created by the Application Template Categorizer  http://lime-technology.com/forum/index.php?topic=40111.0.  Copy and paste into your template whatever that plugin tells you.  The entry must match other wise your plugin will not display under the correct categories.  Generally, this entry will be either Tools: or Tools:System

 

<Beta>True or False will flag the plugin as being beta or not.  If not present, it will default to false

 

<Support>Full link to the forum thread where you want support requests handled * See below notes

 

<Icon>Self explanatory.  Note that unlike a .plg file, there is NO limitiations on size or dimensions.  CA internally resizes everything to 96x96, but you can have any dimensions you like.  Under ideal circumstances, you should save the image in one of your GitHub repositories and reference that.  Images from random websites may change on occasion or be deleted by that website.

 

<IconFA>Used in 6.7+  a font awesome or unRaid specific icon to display in CA in lieu of an image 

 

<Description>Self Explanatory

 

Additionally, you can also have the following optional entries within the template:

 

 

<Overview> Contains a condensed description for the container (basically the same thing as the description, but without any formatting or instructions  (You should add this if you decide to add formatting to the description) http://lime-technology.com/forum/index.php?topic=39106.msg365627#msg365627

 

<Project> The entry contains a url to the project page (home page) for the container (eg: https://plex.tvhttp://lime-technology.com/forum/index.php?topic=40299.msg394762#msg394762

 

<MinVer> and <MaxVer> - Sets minimum and maximum unRaid versions that the plugin will be allowed to install on.  Description here: http://lime-technology.com/forum/index.php?topic=40299.msg427252#msg427252 - Note that setting min or max in the .plg's attributes will override these settings

 

<Licence> or <License>  Optionally displays licence information for the app  http://lime-technology.com/forum/index.php?topic=40262.msg444243#msg444243

Note:  Do not include any references to any XML attributes if you are copying and pasting changelogs, descriptions, etc.  (ie: edit out any &name;)  They will mess up the appfeed parser.

 

 

Additionally, CA supports placing an optional donate button at the bottom of the popup changelogs and full descriptions.  The tags associated with this are:

 

<DonateText> A short blurb of why to donate (eg: Server's Cost Money, I'm paying for a divorce, I'm out of beer, etc

<DonateLink> A link to take you to the actual website where the donations are handled

 

 

NOTE that & are disallowed in entries.  You will need to replace them with this: &

 

* If you set a support attribute in the .plg file, then it's entry will override the <Support> in the xml.  Conversely, if the .plg does not have a support attribute, then when installing the plugin, CA will automatically add the attribute to the .plg based upon the <Support> in the xml

 

Whether or not you publish the URL to manually install the plugin in your support thread is up to you, but it's not necessary and IMO just confuses people.

 

Regarding "Developer Status":

 

1)  You earn the status of Community Developer by not only creating containers/integrating them with CA, but by showing your commitment to providing support for them.

 

2)  You can create a post for support for your container anywhere and then simply PM a moderator to move it to the docker containers forum.

 

3)  After sufficient time contributing, you can request official Community Developer status by PMing Squid and I (jonp).  If he approves, I will add you.

 

  • Thanks 1
Link to comment
  • 2 years later...
On 2015-12-06 at 3:37 PM, Squid said:

<PluginURL> Mandatory.  The full path to the .plg file

Just a comment about this line.  This should match the URL listed in the .plg file exactly (after any variable substitution)   CA currently does a simple substitution of raw.github.com to rawgithubuser.com to try and alleviate any mismatches between the two.  But, because there are numerous possible redirects and formats for the URL, mismatches may hinder the ability for CA to determine if the .plg is installed and CA will not follow the redirects to determine the actual URL of the .plg file because it slows everything down significantly.  This is especially important if you have named the plugin identically to another plugin.

 

In case you have different URLs listed in the .plg and in the .xml template that are not equivalent via the substitution listed above, I will ask (insists actually) that you change either the template or the .plg to match each other.

Link to comment

Going forward, <Changes> in the Plugin's .xml used for CA is completely ignored (and automatically removed).  The Changelog for a plugin is now grabbed directly from the .plg file online instead

 

IE: Any plugin author that was updated their .xml with the Changelog no longer needs to do that.

Link to comment

Going forward, <Date> is deprecated.  Now the date updated for the plugin is picked up automatically by the application feed for CA from the .plg file.

 

Additionally, <MinVer> and <MaxVer> while not deprecated are automatically over-written if the min / max attributes exist within the .plg file

 

Link to comment
  • 1 year later...
  • 3 months later...
  • Squid pinned this topic
  • 3 months later...

In addition to the <Requires> tag (if you use it), plugins also have an option in addition to <Requires>.  This is <RequiresFile> eg:

<RequiresFile>/var/log/plugins/unassigned.devices.plg</RequiresFile>

 

When this is used (in addition to Requires), if this file does not exist then the installation button and a reinstallation will not be allowed at all.  MinVer and MaxVer take precedence over this (and if not met, the app won't even show up).  If this condition isn't met, the app will still appear, but no option to install it will be given until the file exists (eg: until Unassigned Devices is installed)

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.