Table of Contents

Addons

This section will help developers get started with understanding all the different things an addon can do. It is still very much a work in progress, so if you have questions not answered here, send them to [email protected] and we will be happy to explain things further.

The bulk of the documentation for addons is still in the form of an example addon that can be downloaded from the "public downloads" section in the client area. This section of the user manual is meant to complement the example addon, not replace it.

Parts of Addons

There are a few main parts to an addon, which are listed below:

Addon Folder Guidelines

The addon's folder name is part of what defines the addon, and is used for the name var in the info.php file. To ensure the best compatibility, and reduce chances of future compatibility changes, we recommend using the following guidelines. Some of these are suggestions, and some are required in order for certain things to work in the software.

We have a website http://geocoregoodies.com, owned and operated by Geodesic Solutions, LLC. specifically for showcasing 3rd party addons (Addons created by you!). If you have created your own addon and would like to sell or give it away, register a developer account on http://geocoregoodies.com and post a listing about your addon on the site. The http://geocoregoodies.com website is powered by GeoClassAuctions Enterprise, and uses a lot of the built in features like ability for users to review addons.

You can create your own developer storefront as well once you get a few addons posted on the site that you want to be able to showcase from a single location on the site.

Geocoregoodies.com Guidelines

These guidelines are for developers wishing to advertise an addon on geocoregoodies.com. Below are the guidelines that your addon must adhere to, in order to advertise your addon by posting it on http://geocoregoodies.com. Note that we also recommend these guidelines for any custom / 1-off addon as well4), as these are considered "best practices" and good ideas to follow in general.

Addon Requirements:

These guidelines are subject to revision as needed. If any of the guidelines above are not met, we may remove your listing and attempt to contact you to re-post it with any corrections or changes needed.

Below are recommendations if you plan to post your addon on geocoregoodies.com:

Addon Suggestions:

<tip c n>Note: If you happen to find any addons posted on http://geocoregoodies.com that do not follow the requirements above, please let us know. We do try to review every addon posted but sometimes things can slip through.</tip>

Tips on Licensing / Locking to Domain

If you are creating an addon that you plan to sell to others, you may wish to use some sort of licensing or other mechanism to ensure that the addon is only used on a single installation. Or perhaps wish to encode or obfuscate7) the addon code to prevent others from "stealing" the source code and re-using it.

For brevity, the rest of this section will refer to any sort of "source code protection" or mechanisms to prevent unlicensed copying, as "license protection".

Such practices are perfectly fine as it allows 3rd party developers like yourself, to use technology to make sure your works are not stolen or used without permission, so that you can focus on making great customizations and addons. When you do so however, we ask that you go over the following guidelines:

Tips & Best Practices for Licensing your Addon:

Note that the example addon, in the info.php file, look at the method addon_example_info::enableCheck() - this is a "built in" location that you can add licensing checks if you wish. Just return "true" to allow the addon to be enabled or "false" and the addon will be disabled for "that page load". Returning false does not affect the actual enable/disable status of the addon, it basically just stops the addon from being used for that page load. If the method does not exist then it defaults to allow the addon to be used. You can see more information in the Developer API Docs Here or in the source code of the example addon.

1)
in other words, don't use it as a "lazy" way to accomplish something that can be done much better another way
2)
For one, the addon text exporter uses a . between addon name and auth tag, so export/import text would not work for your addon.
3)
For instance what you use for auth_tag in the info.php file.
4)
Yes following the guidelines can take longer, and thus cost more for custom development, for instance taking time to use an addon hook instead of editing the base software… But it also means less work for each update. In other words, following these guidelines will cost a little "more now" but save a lot in the long run. We have seen many a site have to hire a developer to re-do customizations using these guidelines after they find their site is no longer able to be updated without paying an arm and a leg for every update, just to re-apply changes.
5)
If you think that a core file needs to be modified to accomplish something, contact us for options. As stated on the developers page, we can add new hooks to the software if there is not a way to accomplish something already, or can point you to an existing way to accomplish what you need if there is already a way to do what you want.
6)
We will still remove even "free" addons that are not supported in some way by the author, if that addon becomes a "problem" meaning we get complaints about it from clients.
7)
Note that encoding the software is very different from obfuscation. We recommend encoding out of the 2, using Ioncube as that is what the main software uses itself. Obfuscation is usually very easy to bypass.
8)
Bad because there is no way to tell what addon is generating the error. Customize your errors!!
9)
Good because the error message generated by the source code protection, was customized to include the author and addon name, so it is crystal clear what is generating the error and who needs to be contacted to fix it.
10)
Yes this was sort of point 1 as well. This is actually the main reason we created this section, as that happens from time to time, a client sees the error and gets mad at us. In fact that is one of the main causes of "bad reviews" people leave on sites about our software, they see some error given by a 3rd party addon, think it is from the main software, and before we even have a chance to tell them it is not the software doing it, they leave angry reviews about us. So please help stop angry reviews of our software, include your name in license error messages! Thanks! :-)