The Basics
This section will go over the basic behavior of addons in general.
Addon Locations
This section will go over where addons can be loaded from and the difference between core
and application
addons.
Core Addons
All addons listed in the composer.json
file will be installed by composer in the /core
directory similar to the /vendor
directory.
Application Addons
All non-core addons are considered application
addons and are located in the /addons
directory.
Application addons are split into private
addons and shared
addons.
Private Addons
Private addons are located within /addons/{APP_REF}
directory and are organized by vendor just like the /core
and /vendor
directories.
Private addons are only available to the application designated by the {APP_REF}
directory in which they reside.
Shared Addons
Shared addons are located within /addons/shared
directory and are organized by vendor just like the /core
and /vendor
directories.
Shared addons are available to all applications within the PyroCMS installation.
Packaged Addons
Addons can include their own addons. While it is not common the Grid
and Repeater
field types are good examples of an addon that come packaged with it's own dependent addons.
Addons can be registered anywhere but when using this technique they are usually found within the /addons
directory within the addon itself.
Addon Object
All addon types extend the base Anomaly\Streams\Platform\Addon\Addon
class and inherit some basic functionality.
Addon::isCore()
The isCore
method returns whether the addon is core
or not.
Returns: bool
Example
if ($addon->isCore()) {
echo 'Yep!';
}
Twig
{% is addon.isCore() %}
Yep!
{% endif %}
Addon::isShared()
The isShared
method returns if the addon is shared
or not.
Returns: bool
Example
if ($addon->isShared()) {
echo 'Yep!';
}
Twig
{% addon.isShared() %}
Yep!
{% endif %}
Addon::getName()
The getName
method returns the translatable name of the addon.
Returns: string
Example
echo trans($addon->getName());
Twig
{{ trans(addon.getName()) }}
Addon::getTitle()
The getTitle
method returns the title
which generally similar to the name
but does not include the addon type.
Returns: string
Example
echo trans($addon->getTitle());
Twig
{{ trans(addon.getTitle()) }}
Addon::getDescription()
The getDescription
method returns the addon description.
Returns: string
Example
echo trans($addon->getDescription());
Twig
{{ trans(addon.getDescription()) }}
Addon::getNamespace()
The getNamespace
method returns the addon's dot namespace
with an optional key.
This is helpful for creating config keys, language keys, hinted view paths, and anything else prefixed by the addon's dot namespace.
Returns: string
Arguments
Key | Required | Type | Default | Description |
---|---|---|---|---|
$key |
false |
string |
none |
The key to append to the namespace. |
Example
$addon->getNamespace(); // anomaly.module.pages
$addon->getNamespace('config.limit') // anomaly.module.pages::config.limit
Twig
{{ addon.getNamespace() }} // anomaly.module.pages
{{ addon.getNamespace('config.limit') }} // anomaly.module.pages::config.limit
{{ config(addon.getNamespace('config.limit'), 100) }}
Addon::getPath()
The getPath
method returns the addon's installed path.
Returns: string
Example
require_once $addon->getPath() . '/some/old-timer/file.php'
Addon::getAppPath()
The getAppPath
returns the relative application path of the addon.
Returns: string
Example
require_once base_path($addon->getPath() . '/some/old-timer/file.php');
Addon::getType()
The getType
returns the addon type
in singular form.
Returns: string
Example
if ($addon->getType() == 'field_type') {
echo "I'm a field type!";
}
Twig
{% if addon.getType() == "field_type" %}
I'm a field type!
{% endif %}
Addon::getSlug()
The getSlug
method returns the slug of the addon.
Returns: string
Example
echo $addon->getSlug(); // pages
Twig
{{ addon.getSlug() }} // pages
Addon::getVendor()
The getVendor
method returns the vendor string of the addon.
Returns: string
Example
echo $addon->getVendor(); // anomaly
Twig
{{ addon.getVendor() }} // anomaly