public abstract class Extension

class.extension.php #12

The abstract Extension class contains common methods that most extensions require to get started in the Symphony environment. They include the installation updating and uninstallation, as well as a delegate subscription hook so an extension can perform custom logic at various times during Symphony execution.

Constants

static string CRLF = PHP_EOL

The end-of-line constant.

Deprecated

This will be removed in the next version of Symphony

static integer $NAV_CHILD

Determines that a new item is to be added to an existing navigation group in the Symphony backend

Methods

void __construct(array $args)

The extension constructor takes an associative array of arguments and sets the $this->_Parent variable using the 'parent' key. It appears that this is the only key set in the $args array by Symphony

Parameters
  • $args arrayAn associative array of arguments, but default this will contain one, 'parent'.

array about()

The about method allows an extension to provide information about itself as an associative array. eg. 'name' => 'Name of Extension', 'version' => '1.8', 'release-date' => 'YYYY-MM-DD', 'author' => array( 'name' => 'Author Name', 'website' => 'Author Website', 'email' => 'Author Email' ), 'description' => 'A description about this extension'

Returns

An associative array describing this extension.

boolean disable()

This method runs when a user selects Disable from the Symphony backend.

See Also
boolean enable()

Extensions can be disabled in the backend which stops them from functioning by removing their delegate subscription information but keeps their settings intact (usually stored in the database). This method runs when a user selects Enable from the Symphony backend.

See Also
array fetchNavigation()

When the Symphony navigation is being generated, this method will be called to allow extension to inject any custom backend pages into the navigation. If an extension wants to create a new group in the navigation it is possible by returning an array with the group information and then an array of links for this group. The extension can also inject link items into existing group's of the navigation using the 'location' key, which will accept a numeric index of the existing group, or the handle of an existing group. Navigation items in Symphony are initially provided from the ASSETS . /navigation.xml file which defines the default Blueprints and System groups. The indexes for these groups are 100 and 200 respectively. Groups cannot provide a link, this is done by the children. All links are relative to the Extension by default (ie. EXTENSIONS . /extension_handle/. An example of a returned navigation array is provided below. Note that if an extension wants to edit the current navigation, this is not possible through this function and rather it should be done using the NavigationPreRender delegate.

array( 'name' => 'New Group', 'children' => array( array( 'name' => 'Extension Name', 'link' => '/link/relative/to/extension/handle/' ) ) )

Returns

An associative array of navigation items to add to the Navigation. This function defaults to returning null, which adds nothing to the Symphony navigation

See Also
array getSubscribedDelegates()

Extensions use delegates to perform logic at certain times throughout Symphony. This function allows an extension to subscribe to a delegate which will notify the extension when it is used so that it can perform it's custom logic. This method returns an array with the delegate name, delegate namespace, and then name of the method that should be called. The method that is called is passed an associative array containing the current context which is the $this->_Parent, current page object and any other variables that is passed via this delegate. eg.

array( array( 'page' => '/current/path/', 'delegate' => 'DelegateName', 'callback' => 'funtionToCall' ) )

boolean install()

Any logic that assists this extension in being installed such as table creation, checking for dependancies etc.

Returns

True if the install completely successfully, false otherwise

See Also
boolean uninstall()

Any logic that should be run when an extension is to be uninstalled such as the removal of database tables.

See Also
boolean update(string $previousVersion)

Logic that should take place when an extension is to be been updated when a user runs the 'Enable' action from the backend. The currently installed version of this extension is provided so that it can be compared to the current version of the extension in the file system. This is commonly done using PHP's version_compare function. Common logic done by this method is to update differences between extension tables.

Parameters
  • $previousVersion stringThe currently installed version of this extension from the tbl_extensions table. The current version of this extension is provided by the about() method.

See Also

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details