Delegates in Symphony 2.7.10

Delegates are functions in Symphony's core that allow extension developers to intervene at key moments in the generation of a back-end or front-end Symphony page. The delegate will usually provide a contextually relevant PHP object (for instance a page object or an event object) that the developer can then work with and pass back to the system for further processing.

More on Delegates

/all/

bundle.php #67
ModifySymphonyLauncher(string $page='/all/')

Overload the default Symphony launcher logic.

/backend/

class.administration.php #435
AdminPagePostCallback(string $page='/backend/', array $context)

Immediately after determining which class will resolve the current page, this delegate allows extension to modify the routing or provide additional information.

Context
  • $page stringThe current URL string, after the SYMPHONY_URL constant (which is /symphony/ at the moment.

  • $parts arrayAn array representation of $page

  • $callback arrayAn associative array that contains driver, pageroot, classname and context keys. The driver_location is the path to the class to render this page, driver should be the view to render, the classname the name of the class, pageroot the rootpage, before any extra URL params and context can provide additional information about the page

class.administration.php #512
AdminPagePostGenerate(string $page='/backend/', array $context)

Immediately after generating the admin page. Provided with string containing page source

Context
  • $output stringThe resulting backend page HTML as a string, passed by reference

class.administration.php #481
AdminPagePreBuild(string $page='/backend/', array $context)

Immediately before building the admin page. Provided with the page parameter

Context
  • $page stringThe result of getCurrentPage, which returns the $_GET['symphony-page'] variable.

class.administration.php #500
AdminPagePreGenerate(string $page='/backend/', array $context)

Immediately before generating the admin page. Provided with the page object

Context
  • $oPage HTMLPageAn instance of the current page to be rendered, this will usually be a class that extends HTMLPage. The Symphony backend uses a convention of contentPageName as the class that extends the HTMLPage

class.administrationpage.php #823
AppendPageAlert(string $page='/backend/')

Allows for appending of alerts. Administration::instance()->Page->Alert is way to tell what is currently in the system

class.administrationpage.php #1089
CanAccessPage(string $page='/backend/', array $context)

Immediately after the core access rules allowed access to this page (i.e. not called if the core rules denied it). Extension developers must only further restrict access to it. Extension developers must also take care of checking the current value of the allowed parameter in order to prevent conflicts with other extensions. $context['allowed'] = $context['allowed'] && customLogic();

Context
  • $allowed boolA flag to further restrict access to the page, passed by reference

  • $page_limit stringThe computed page limit for the current page

  • $page_url stringThe computed page url for the current page

  • $section.id intThe id of the section for this url

  • $section.handle stringThe handle of the section for this url

class.administrationpage.php #438
InitialiseAdminPageHead(string $page='/backend/')

Allows developers to insert items into the page HEAD. Use Administration::instance()->Page for access to the page object.

content.publish.php #1566
ModifyFieldPublishWidget(string $page='/backend/', array $context)

Allows developers modify the field before it is rendered in the publish form. Passes the Field object, Entry object, the XMLElement div and any errors for the entire Entry. Only the $div element will be altered before appending to the page, the rest are read only.

Context
  • $field Field
  • $entry Entry
  • $errors array
  • $widget Widget
field.textarea.php #170
ModifyTextareaFieldPublishWidget(string $page='/backend/', array $context)

Allows developers modify the textarea before it is rendered in the publish forms

Context
  • $field Field
  • $label Widget
  • $textarea Widget
class.administrationpage.php #668
PreRenderHeaders(string $page='/backend/')

This is just prior to the page headers being rendered, and is suitable for changing them

/backend/ resp. /frontend/

class.entry.php #276
EntryPreCheckPostFieldData(string $page='/backend/' resp. '/frontend/', array $context)

Prior to checking a field's post data.

Context
  • $section objectThe section of the field

  • $field objectThe field, passed by reference

  • $post_data arrayAll post data, passed by reference

  • $errors arrayThe errors (of fields already checked), passed by reference

/blueprints/datasources/

content.blueprintsdatasources.php #1491
DatasourcePostCreate(string $page='/blueprints/datasources/', array $context)

After creating the Datasource, the path to the Datasource file is provided

Context
  • $file stringThe path to the Datasource file

content.blueprintsdatasources.php #1509
DatasourcePostEdit(string $page='/blueprints/datasources/', array $context)

After editing the Datasource, the path to the Datasource file is provided

Context
  • $file stringThe path to the Datasource file

  • $previous_file stringThe path of the previous Datasource file in the case where a Datasource may have been renamed. To get the handle from this value, see DatasourceManager::__getHandleFromFilename

content.blueprintsdatasources.php #1396
DatasourcePreCreate(string $page='/blueprints/datasources/', array $context)

Prior to creating the Datasource, the file path where it will be written to is provided and well as the contents of that file.

Context
  • $file stringThe path to the Datasource file

  • $contents stringThe contents for this Datasource as a string passed by reference

  • $params arrayAn array of all the $dsParam* values

  • $elements arrayAn array of all the elements included in this datasource

  • $filters arrayAn associative array of all the filters for this datasource with the key being the field_id and the value the filter.

  • $dependencies arrayAn array of dependencies that this datasource has

  • $source stringThe source of the datasource's data

content.blueprintsdatasources.php #1125
DatasourcePreDelete(string $page='/blueprints/datasources/', array $context)

Prior to deleting the Datasource file. Target file path is provided.

Context
  • $file stringThe path to the Datasource file

content.blueprintsdatasources.php #1430
DatasourcePreEdit(string $page='/blueprints/datasources/', array $context)

Prior to editing a Datasource, the file path where it will be written to is provided and well as the contents of that file.

Context
  • $file stringThe path to the Datasource file

  • $contents stringThe contents for this Datasource as a string passed by reference

  • $params arrayAn array of all the $dsParam* values

  • $elements arrayAn array of all the elements included in this datasource

  • $filters arrayAn associative array of all the filters for this datasource with the key being the field_id and the value the filter.

  • $dependencies arrayAn array of dependencies that this datasource has

  • $source stringThe source of the datasource's data

/blueprints/datasources/ or /blueprints/events/

class.resourcespage.php #293
AddCustomActions(string $page='/blueprints/datasources/' or '/blueprints/events/', array $context)

Allows an extension to modify the existing options for this page's With Selected menu. If the $options parameter is an empty array, the 'With Selected' menu will not be rendered.

Context
  • $options arrayAn array of arrays, where each child array represents an option in the With Selected menu. Options should follow the same format expected by Widget::__SelectBuildOption. Passed by reference.

class.resourcespage.php #336
CustomActions(string $page='/blueprints/datasources/' or '/blueprints/events/', array $context)

Extensions can listen for any custom actions that were added through AddCustomPreferenceFieldsets or AddCustomActions delegates.

Context
  • $checked arrayAn array of the selected rows. The value is usually the ID of the the associated object.

/blueprints/events/

content.blueprintsevents.php #645
EventPostCreate(string $page='/blueprints/events/', array $context)

After creating the Event, the path to the Event file is provided

Context
  • $file stringThe path to the Event file

content.blueprintsevents.php #663
EventPostEdit(string $page='/blueprints/events/', array $context)

After editing the Event, the path to the Event file is provided

Context
  • $file stringThe path to the Event file

  • $previous_file stringThe path of the previous Event file in the case where an Event may have been renamed. To get the handle from this value, see EventManager::__getHandleFromFilename

content.blueprintsevents.php #384
EventPreDelete(string $page='/blueprints/events/', array $context)

Prior to deleting the Event file. Target file path is provided.

Context
  • $file stringThe path to the Event file

content.blueprintsevents.php #593
EventPreEdit(string $page='/blueprints/events/', array $context)

Prior to editing an Event, the file path where it will be written to is provided and well as the contents of that file.

Context
  • $file stringThe path to the Event file

  • $contents stringThe contents for this Event as a string passed by reference

  • $filters arrayAn array of the filters attached to this event

content.blueprintsevents.php #572
EventsPreCreate(string $page='/blueprints/events/', array $context)

Prior to creating an Event, the file path where it will be written to is provided and well as the contents of that file.

Context
  • $file stringThe path to the Event file

  • $contents stringThe contents for this Event as a string passed by reference

  • $filters arrayAn array of the filters attached to this event

/blueprints/events/(edit|new|info)/

content.blueprintsevents.php #234
AppendEventFilter(string $page='/blueprints/events/(edit|new|info)/', array $context)

Allows adding of new filter rules to the Event filter rule select box

Context
  • $selected arrayAn array of all the selected filters for this Event

  • $options arrayAn array of all the filters that are available, passed by reference

content.blueprintsevents.php #534
AppendEventFilterDocumentation(string $page='/blueprints/events/(edit|new|info)/', array $context)

Allows adding documentation for new filters. A reference to the $documentation array is provided, along with selected filters

Context
  • $selected arrayAn array of all the selected filters for this Event

  • $documentation arrayAn array of all the documentation XMLElements, passed by reference

  • $rootelment stringThe name of this event, as a handle.

/blueprints/pages/

content.blueprintspages.php #524
AppendPageContent(string $page='/blueprints/pages/', array $context)

After all Page related Fields have been added to the DOM, just before the actions.

Context
  • $form XMLElement
  • $fields array
  • $errors array
content.blueprintspages.php #820
PagePostCreate(string $page='/blueprints/pages/', array $context)

Just after the creation of a new page in tbl_pages

Context
  • $page_id integerThe ID of the newly created Page

  • $fields arrayAn associative array of data that was just saved for this page

content.blueprintspages.php #994
PagePostDelete(string $page='/blueprints/pages/', array $context)

Fires after all Pages have been deleted

Context
  • $page_ids arrayThe page ID's that were just deleted

content.blueprintspages.php #864
PagePostEdit(string $page='/blueprints/pages/', array $context)

Just after updating a page in tbl_pages

Context
  • $page_id integerThe ID of the Page that was just updated

  • $fields arrayAn associative array of data that was just saved for this page

content.blueprintspages.php #710
PagePostValidate(string $page='/blueprints/pages/', array $context)

Just after the Symphony validation has run, allows Developers to run custom validation logic on a Page

Context
  • $fields arrayThe $_POST['fields'] array. This should be read-only and not changed through this delegate.

  • $errors arrayAn associative array of errors, with the key matching a key in the $fields array, and the value being the string of the error. $errors is passed by reference.

content.blueprintspages.php #797
PagePreCreate(string $page='/blueprints/pages/', array $context)

Just prior to creating a new Page record in tbl_pages, provided with the $fields associative array. Use with caution, as no duplicate page checks are run after this delegate has fired

Context
  • $fields arrayThe $_POST['fields'] array passed by reference

content.blueprintspages.php #940
PagePreDelete(string $page='/blueprints/pages/', array $context)

Prior to deleting Pages

Context
  • $page_ids arrayAn array of Page ID's that are about to be deleted, passed by reference

  • $redirect stringThe absolute path that the Developer will be redirected to after the Pages are deleted

content.blueprintspages.php #841
PagePreEdit(string $page='/blueprints/pages/', array $context)

Just prior to updating a Page record in tbl_pages, provided with the $fields associative array. Use with caution, as no duplicate page checks are run after this delegate has fired

Context
  • $page_id integerThe ID of the Page that is about to be updated

  • $fields arrayThe $_POST['fields'] array passed by reference

class.pagemanager.php #208
PageTemplatePostCreate(string $page='/blueprints/pages/', array $context)

Just after a Page Template is saved after been created.

Context
  • $file stringThe path to the Page Template file

class.pagemanager.php #192
PageTemplatePreCreate(string $page='/blueprints/pages/', array $context)

Just before a Page Template is about to be created & written to disk

Context
  • $file stringThe path to the Page Template file

  • $contents stringThe contents of the $data, passed by reference

content.blueprintspages.php #890
PageTypePreCreate(string $page='/blueprints/pages/', array $context)

Just before the page's types are saved into tbl_pages_types. Use with caution as no further processing is done on the $types array to prevent duplicate $types from occurring (ie. two index page types). Your logic can use the PageManger::hasPageTypeBeenUsed function to perform this logic.

Context
  • $page_id integerThe ID of the Page that was just created or updated

  • $types arrayAn associative array of the types for this page passed by reference.

/blueprints/pages/template/

content.blueprintspages.php #636
PageTemplatePostEdit(string $page='/blueprints/pages/template/', array $context)

Just after a Page Template has been edited and written to disk

Context
  • $file stringThe path to the Page Template file

content.blueprintspages.php #617
PageTemplatePreEdit(string $page='/blueprints/pages/template/', array $context)

Just before a Page Template is about to written to disk

Context
  • $file stringThe path to the Page Template file

  • $contents stringThe contents of the $fields['body'], passed by reference

/blueprints/sections/

content.blueprintssections.php #968
AddSectionElements(string $page='/blueprints/sections/', array $context)

Allows extensions to add elements to the header of the Section Editor form. Usually for section settings, this delegate is passed the current $meta array and the $this->_errors array.

Context
  • $form XMLElementAn XMLElement of the current $this->Form, just after the Section settings have been appended, but before the Fields duplicator

  • $meta arrayThe current $_POST['meta'] array

  • $errors arrayThe current errors array

content.blueprintssections.php #836
FieldPostCreate(string $page='/blueprints/sections/', array $context)

After creation of a Field.

Context
  • $field FieldThe Field object, passed by reference

  • $data arrayThe settings for ths $field, passed by reference

content.blueprintssections.php #849
FieldPostEdit(string $page='/blueprints/sections/', array $context)

After editing of a Field.

Context
  • $field FieldThe Field object, passed by reference

  • $data arrayThe settings for ths $field, passed by reference

content.blueprintssections.php #867
SectionPostCreate(string $page='/blueprints/sections/', array $context)

After the Section has been created, and all the Field's have been created for this section, but just before the redirect

Context
  • $section_id integerThe newly created Section ID.

content.blueprintssections.php #882
SectionPostEdit(string $page='/blueprints/sections/', array $context)

After the Section has been updated, and all the Field's have been updated for this section, but just before the redirect

Context
  • $section_id integerThe edited Section ID.

content.blueprintssections.php #738
SectionPreCreate(string $page='/blueprints/sections/', array $context)

Just prior to saving the Section settings. Use with caution as there is no additional processing to ensure that Field's or Section's are unique.

Context
  • $meta arrayThe section's settings, passed by reference

  • $fields arrayAn associative array of the fields that will be saved to this section with the key being the position in the Section Editor and the value being a Field object, passed by reference

content.blueprintssections.php #915
SectionPreDelete(string $page='/blueprints/sections/', array $context)

Just prior to calling the Section Manager's delete function

Context
  • $section_ids arrayAn array of Section ID's passed by reference

content.blueprintssections.php #768
SectionPreEdit(string $page='/blueprints/sections/', array $context)

Just prior to updating the Section settings. Use with caution as there is no additional processing to ensure that Field's or Section's are unique.

Context
  • $section_id integerThe Section ID that is about to be edited.

  • $meta arrayThe section's settings, passed by reference

  • $fields arrayAn associative array of the fields that will be saved to this section with the key being the position in the Section Editor and the value being a Field object, passed by reference

/frontend/

class.datasource.section.php #594
DataSourceEntriesBuilt(string $page='/frontend/', array $context)

Immediately after building entries allow modification of the Data Source entries array

Context
  • $datasource Datasource
  • $entries array
  • $filters array
class.frontendpage.php #915
DataSourcePostExecute(string $page='/frontend/', array $context)

After the datasource has executed, either by itself or via the DataSourcePreExecute delegate, and if the $xml variable is truthy, this delegate allows extensions to modify the output XML and parameter pool

Context
  • $datasource DataSourceThe Datasource object

  • $xml mixedThe XML output of the data source. Can be an XMLElement or string.

  • $param_pool arrayThe existing param pool including output parameters of any previous data sources

class.frontendpage.php #886
DataSourcePreExecute(string $page='/frontend/', array $context)

Allows extensions to execute the data source themselves (e.g. for caching) and providing their own output XML instead

Context
  • $datasource DataSourceThe Datasource object

  • $xml mixedThe XML output of the data source. Can be an XMLElement or string.

  • $param_pool arrayThe existing param pool including output parameters of any previous data sources

class.event.section.php #591
EventFinalSaveFilter(string $page='/frontend/', array $context)

This delegate that lets extensions know the final status of the current Event. It is triggered when everything has processed correctly. The $messages array contains the results of the previous filters that have executed, and the $errors array contains any errors that have occurred as a result of this delegate. These errors cannot stop the processing of the Event, as that has already been done.

Context
  • $fields array
  • $this Event
  • $messages arrayAn associative array of array's which contain 4 values, the name of the filter (string), the status (boolean), the message (string) an optionally an associative array of additional attributes to add to the filter element.

  • $errors arrayAn associative array of array's which contain 4 values, the name of the filter (string), the status (boolean), the message (string) an optionally an associative array of additional attributes to add to the filter element.

  • $entry Entry
class.event.section.php #530
EventPostSaveFilter(string $page='/frontend/', array $context)

After saving entry from the front-end. This delegate will not force the Events to terminate if it populates the $filter_results array. Provided with references to this object, the $_POST data and also the error array

Context
  • $entry_id integer
  • $fields array
  • $entry Entry
  • $this Event
  • $messages arrayAn associative array of array's which contain 4 values, the name of the filter (string), the status (boolean), the message (string) an optionally an associative array of additional attributes to add to the filter element.

class.event.section.php #456
EventPreSaveFilter(string $page='/frontend/', array $context)

Prior to saving entry from the front-end. This delegate will force the Event to terminate if it populates the $filter_results array. All parameters are passed by reference.

Context
  • $fields array
  • $this Event
  • $messages arrayAn associative array of array's which contain 4 values, the name of the filter (string), the status (boolean), the message (string) an optionally an associative array of additional attributes to add to the filter element.

  • $post_values XMLElement
  • $entry_id integerIf editing an entry, this parameter will be an integer, otherwise null.

class.frontendpage.php #185
FrontendDevKitResolve(string $page='/frontend/', array $context)

Allows a devkit object to be specified, and stop continued execution:

Context
  • $full_generate booleanWhether this page will be completely generated (ie. invoke the XSLT transform) or not, by default this is true. Passed by reference

  • $devkit mixedAllows a devkit to register to this page

class.frontendpage.php #782
FrontendEventPostProcess(string $page='/frontend/', array $context)

Just after the page events have triggered. Provided with the XML object

Context
  • $xml XMLElementThe XMLElement to append the Events results to. Event results are contained in a root XMLElement that is the handlised version of their name.

class.frontend.php #104
FrontendInitialised(string $page='/frontend/')

FrontendInitialised is fired just after the $_page variable has been created with an instance of the FrontendPage class. This delegate is fired just before the FrontendPage->generate().

class.frontendpage.php #270
FrontendOutputPostGenerate(string $page='/frontend/', array $context)

Immediately after generating the page. Provided with string containing page source

Context
  • $output stringThe generated output of this page, ie. a string of HTML, passed by reference

class.frontendpage.php #209
FrontendOutputPreGenerate(string $page='/frontend/', array $context)

Immediately before generating the page. Provided with the page object, XML and XSLT

Context
  • $page FrontendPageThis FrontendPage object, by reference

  • $xml XMLElementThis pages XML, including the Parameters, Datasource and Event XML, by reference as an XMLElement

  • $xsl stringThis pages XSLT, by reference

class.frontendpage.php #344
FrontendPageResolved(string $page='/frontend/', array $context)

Just after having resolved the page, but prior to any commencement of output creation

Context
  • $page FrontendPageAn instance of this class, passed by reference

  • $page_data arrayAn associative array of page data, which is a combination from tbl_pages and the path of the page on the filesystem. Passed by reference

class.frontendpage.php #493
FrontendParamsPostResolve(string $page='/frontend/', array $context)

Access to the resolved param pool, including additional parameters provided by Data Source outputs

Context
  • $params arrayAn associative array of this page's parameters

class.frontendpage.php #447
FrontendParamsResolve(string $page='/frontend/', array $context)

Just after having resolved the page params, but prior to any commencement of output creation

Context
  • $params arrayAn associative array of this page's parameters

class.frontendpage.php #584
FrontendPrePageResolve(string $page='/frontend/', array $context)

Before page resolve. Allows manipulation of page without redirection

Context
  • $row mixed
  • $page FrontendPageAn instance of this FrontendPage

class.frontendpage.php #244
FrontendPreRenderHeaders(string $page='/frontend/')

This is just prior to the page headers being rendered, and is suitable for changing them

class.frontendpage.php #729
FrontendProcessEvents(string $page='/frontend/', array $context)

Manipulate the events array and event element wrapper

Context
  • $env array
  • $events stringA string of all the Events attached to this page, comma separated.

  • $wrapper XMLElementThe XMLElement to append the Events results to. Event results are contained in a root XMLElement that is the handlised version of their name.

  • $page_data arrayAn associative array of page meta data

class.devkit.php #151
ManipulateDevKitNavigation(string $page='/frontend/', array $context)

Allow navigation XML to be manipulated before it is rendered.

Context
  • $xml DOMDocument

/frontend/ or /backend/

class.mysql.php #591
PostQueryExecution(string $page='/frontend/' or '/backend/', array $context)

After a query has successfully executed, that is it was considered valid SQL, this delegate will provide the query, the query_hash and the execution time of the query.

Note that this function only starts logging once the ExtensionManager is available, which means it will not fire for the first couple of queries that set the character set.

Context
  • $query stringThe query that has just been executed

  • $query_hash stringThe hash used by Symphony to uniquely identify this query

  • $execution_time floatThe time that it took to run $query

class.mysql.php #953
QueryExecutionError(string $page='/frontend/' or '/backend/', array $context)

After a query execution has failed this delegate will provide the query, query hash, error message and the error number.

Note that this function only starts logging once the ExtensionManager is available, which means it will not fire for the first couple of queries that set the character set.

Context
  • $query stringThe query that has just been executed

  • $query_hash stringThe hash used by Symphony to uniquely identify this query

  • $msg stringThe error message provided by MySQL which includes information on why the execution failed

  • $num integerThe error number that corresponds with the MySQL error message

/login/

content.login.php #203
AuthorLoginFailure(string $page='/login/', array $context)

A failed login attempt into the Symphony backend

Context
  • $username stringThe username of the Author who attempted to login.

content.login.php #216
AuthorLoginSuccess(string $page='/login/', array $context)

A successful login attempt into the Symphony backend

Context
  • $username stringThe username of the Author who logged in.

content.login.php #307
AuthorPostPasswordResetFailure(string $page='/login/', array $context)

When a password reset has been attempted, but Symphony doesn't recognise the credentials the user has given.

Context
  • $email stringThe sanitised Email of the Author who tried to request the password reset

content.login.php #293
AuthorPostPasswordResetSuccess(string $page='/login/', array $context)

When a password reset has occurred and after the Password Reset email has been sent.

Context
  • $author_id integerThe ID of the Author who requested the password reset

/publish/

content.publish.php #574
AddCustomPublishColumn(string $page='/publish/', array $context)

Allows the creation of custom table columns for each entry. Called after all the Section Visible columns have been added as well as the Section Associations

Context
  • $tableHead arrayAn array of the current columns, passed by reference

  • $section_id integerThe current Section ID

content.publish.php #687
AddCustomPublishColumnData(string $page='/publish/', array $context)

Allows Extensions to inject custom table data for each Entry into the Publish Index

Context
  • $tableData arrayAn array of Widget::TableData, passed by reference

  • $section_id integerThe current Section ID

  • $entry_id EntryThe entry object, please note that this is by error and this will be removed in Symphony 2.4. The entry object is available in the 'entry' key as of Symphony 2.3.1.

  • $entry EntryThe entry object for this row

content.publish.php #488
AdjustPublishFiltering(string $page='/publish/', array $context)

Allows adjustments to be made to the SQL where and joins statements before they are used to fetch the entries for the page

Context
  • $section_id integerAn array of the current columns, passed by reference

  • $where stringThe current where statement, or null if not set

  • $joins string
content.blueprintssections.php #593
Delete(string $page='/publish/', array $context)

Prior to deletion of entries.

Context
  • $entry_id arrayAn array of Entry ID's that are about to be deleted, passed by reference

content.publish.php #1515
EntryPostDelete(string $page='/publish/', array $context)

After the deletion of entries, this delegate provides an array of Entry ID's that were deleted.

Context
  • $entry_id arrayAn array of Entry ID's that were deleted.

content.publish.php #1496
EntryPreDelete(string $page='/publish/', array $context)

Prior to deletion of entries. An array of Entry ID's is provided which can be manipulated. This delegate was renamed from Delete to EntryPreDelete in Symphony 2.3.

Context
  • $entry_id arrayAn array of Entry ID's passed by reference

content.publish.php #1636
PrepareAssociationsDrawer(string $page='/publish/', array $context)

Prepare Associations Drawer from an Extension

Context
  • $entry_id integerThe entry ID or null

  • $parent_associations arrayArray of Sections

  • $child_associations arrayArray of Sections

  • $drawer_position stringThe position of the Drawer, defaults to vertical-right. Available values of vertical-left,vertical-rightandhorizontal`

/publish/edit/

content.publish.php #1473
EntryPostEdit(string $page='/publish/edit/', array $context)

Just after the editing of an Entry

Context
  • $section Section
  • $entry Entry
  • $fields array
content.publish.php #1455
EntryPreEdit(string $page='/publish/edit/', array $context)

Just prior to editing of an Entry.

Context
  • $section Section
  • $entry Entry
  • $fields array
content.publish.php #1251
EntryPreRender(string $page='/publish/edit/', array $context)

Just prior to rendering of an Entry edit form.

Context
  • $section Section
  • $entry Entry
  • $fields array

/publish/new/

content.publish.php #1159
EntryPostCreate(string $page='/publish/new/', array $context)

Creation of an Entry. New Entry object is provided.

Context
  • $section Section
  • $entry Entry
  • $fields array
content.publish.php #1141
EntryPreCreate(string $page='/publish/new/', array $context)

Just prior to creation of an Entry

Context
  • $section Section
  • $entry Entry
  • $fields array

/system/authors/

content.systemauthors.php #86
AddCustomAuthorColumn(string $page='/system/authors/', array $context)

Allows the creation of custom table columns for each author. Called after all the table headers columns have been added.

Context
  • $columns arrayAn array of the current columns, passed by reference

content.systemauthors.php #171
AddCustomAuthorColumnData(string $page='/system/authors/', array $context)

Allows Extensions to inject custom table data for each Author into the Authors Index

Context
  • $tableData arrayAn array of Widget::TableData, passed by reference

  • $columns arrayAn array of the current columns

  • $author AuthorThe Author object.

content.systemauthors.php #467
AddDefaultAuthorAreas(string $page='/system/authors/', array $context)

Allows injection or manipulation of the Default Area dropdown for an Author. Take care with adding in options that are only valid for Developers, as if a normal Author is set to that option, they will be redirected to their own Author record.

Context
  • $options arrayAn associative array of options, suitable for use for the Widget::Select function. By default this will be an array of the Sections in the current installation. New options should be the path to the page after the SYMPHONY_URL constant.

  • $default_area stringThe current default_area for this Author.

  • $author AuthorThe Author object. This parameter is available @since Symphony 2.7.0

content.systemauthors.php #560
AddElementstoAuthorForm(string $page='/system/authors/', array $context)

Allows the injection of custom form fields given the current $this->Form object. Please note that this custom data should be saved in own extension tables and that modifying tbl_authors to house your data is highly discouraged.

Context
  • $form XMLElementThe contents of $this->Form after all the default form elements have been appended.

  • $author AuthorThe current Author object that is being edited

  • $fields arrayThe POST fields This parameter is available @since Symphony 2.7.0

  • $errors arrayThe error array used to validate the Author. Extension should register their own errors elsewhere and used the value to modify the UI accordingly. This parameter is available @since Symphony 2.7.0

content.systemauthors.php #646
AuthorPostCreate(string $page='/system/authors/', array $context)

Creation of a new Author. The Author object is provided as read only through this delegate.

Context
  • $author AuthorThe Author object that has just been created

  • $author_id integerThe ID of Author ID that was just created

  • $fields arrayThe POST fields This parameter is available @since Symphony 2.7.0

  • $errors arrayThe error array used to validate the Author, passed by reference. Extension should append to this array if they detect saving problems. This parameter is available @since Symphony 2.7.0

content.systemauthors.php #918
AuthorPostDelete(string $page='/system/authors/', array $context)

After deleting an author, provided with the Author ID.

Context
  • $author_id integerThe ID of Author ID that is about to be deleted

  • $author AuthorThe Author object.

  • $result integerThe result of the delete statement

content.systemauthors.php #834
AuthorPostEdit(string $page='/system/authors/', array $context)

After editing an author, provided with the Author object

Context
  • $author AuthorAn Author object

  • $fields arrayThe POST fields This parameter is available @since Symphony 2.7.0

  • $errors arrayThe error array used to validate the Author, passed by reference. Extension should append to this array if they detect saving problems. This parameter is available @since Symphony 2.7.0

content.systemauthors.php #616
AuthorPreCreate(string $page='/system/authors/', array $context)

Creation of a new Author. The Author object is provided as read only through this delegate.

Context
  • $author AuthorThe Author object that has just been created, but not yet committed, nor validated

  • $fields arrayThe POST fields

  • $errors arrayThe error array used to validate the Author, passed by reference. Extension should append to this array if they detect validation problems.

content.systemauthors.php #896
AuthorPreDelete(string $page='/system/authors/', array $context)

Prior to deleting an author, provided with the Author ID.

Context
  • $author_id integerThe ID of Author ID that is about to be deleted

  • $author AuthorThe Author object. This parameter is available @since Symphony 2.7.0

content.systemauthors.php #774
AuthorPreEdit(string $page='/system/authors/', array $context)

Before editing an author, provided with the Author object

Context
  • $author AuthorAn Author object not yet committed, nor validated

  • $fields arrayThe POST fields

  • $errors arrayThe error array used to validate the Author, passed by reference. Extension should append to this array if they detect validation problems.

/system/extensions/

content.systemextensions.php #300
ExtensionPreDisable(string $page='/system/extensions/', array $context)

Notifies just before an Extension is to be disabled.

Context
  • $extensions arrayAn array of all the extension name's to be disabled, passed by reference

content.systemextensions.php #281
ExtensionPreEnable(string $page='/system/extensions/', array $context)

Notifies just before an Extension is to be enabled.

Context
  • $extensions arrayAn array of all the extension name's to be enabled, passed by reference

content.systemextensions.php #317
ExtensionPreUninstall(string $page='/system/extensions/', array $context)

Notifies just before an Extension is to be uninstalled

Context
  • $extensions arrayAn array of all the extension name's to be uninstalled, passed by reference

/system/preferences/

content.systempreferences.php #137
AddCachingOpportunity(string $page='/system/preferences/', array $context)

Add custom Caching groups. For example a Datasource extension might want to add in the ability for set a cache driver for it's functionality. This should usually be a dropdown, which allows a developer to select what driver they want to use for caching. This choice is stored in the Configuration in a Caching node. eg. 'caching' => array ( 'remotedatasource' => 'database', 'dynamicds' => 'YourCachingExtensionClassName' )

Context
  • $wrapper XMLElementAn XMLElement of the current Caching fieldset

  • $config_path stringThe node in the Configuration where this information will be stored. Read only.

  • $available_caches arrayAn array of the available cache providers

  • $errors arrayAn array of errors

content.systempreferences.php #158
AddCustomPreferenceFieldsets(string $page='/system/preferences/', array $context)

Add Extension custom preferences. Use the $wrapper reference to append objects.

Context
  • $wrapper XMLElementAn XMLElement of the current page

  • $errors arrayAn array of errors

content.systempreferences.php #214
Save(string $page='/system/preferences/', array $context)

Just prior to saving the preferences and writing them to the CONFIG Allows extensions to preform custom validation logic on the settings.

Context
  • $settings arrayAn array of the preferences to be saved, passed by reference

  • $errors arrayAn array of errors passed by reference

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