SproutCMS

This is the code documentation for the SproutCMS project

Page options:

Inherited members

class HasCategoriesAdminController

An abstract class for controllers of things which have categories.

Variables

NameVisibilityDescription
$action_log
Should this controller log add/edit/delete actions?
$add_defaults 
$category_archive
Do we have the 'archive' feature for categories?
You will need a "show_admin TINYINT UNSIGNED DEFAULT 1" column on the category table.
$category_reorder
Enables re-ordering for categories.
You will need a "record_order" column on the category table.
$category_single
Enables single-cat mode.
This uses radiobuttons instead of checkboxes in the category selection UI.
$controller_name 
$db 
$duplicate_defaults
Default values used for duplicating a record.
$duplicate_enabled
Flag to turn duplication on or off
$export_modifiers
Modifiers applied to data prior to export
Should be a class which extends ColModifier
Can be an object instance or string of a class name
$friendly_name 
$import_columns
The columns to allow import for
$import_duplicates
The default selection for the "duplicates" option
Values are "new", "merge", "merge_blank" and "skip".
$import_headings
If a client is providing CSVs which don't have headings
You'll need to provide them in this array
$import_id_column
Typically, we don't want to import the ID, and just let autoinc do it's thing
$main_actions
Actions for the itemlist
$main_add
Should a link be shown above the list for adding records? (default yes)
$main_columns 
$main_delete
Is deletion allowed, with an option shown in the UI? (default: no)
$main_modes
Different modes available for the main view
By default, there is only one mode: list
$main_order
Order of main view records
$main_where
An additional where clause for the main view
$navigation_name
The friendly name used in the sidebar navigation. Defaults to matching the friendly name.
$per_subsite
Should a UI for editing the "subsite_id" field on a record be shown?
If enabled by extending classes, then the table should contain a 'subsite_id' INT UNSIGNED column
$records_per_page
The default number of records to show per page
$refine_bar
Defines the widgets for the refine bar
$table_name
This is the name of the table to get data from. Will be automatically deducted from the controller name if not specified

Functions

NameVisibilityDescription
__callpublicHandles methods that do not exist.
__constructpublicConstructor
_actionLogpublic 
_addPreRenderprotectedHook called by _getAddForm() just before the view is rendered
_addSavepublicProcess the saving of an add.
_deletePostSavepublicDoes custom actions after the _deleteSave method is called, e.g. clearing cache data
_deletePreSavepublicDoes custom actions before _deleteSave method is called, e.g. extra security checks
_deleteSavepublicDeletes an item and logs the deleted data
_duplicatePreRenderprotectedHook called by _getDuplicateForm() just before the view is rendered
_duplicateSavepublicProcess the saving of a duplication. Basic version just calls _editSave
_editPreRenderprotectedHook called by _getEditForm() just before the view is rendered
_editSavepublicProcess the saving of a record.
_exportDatapublicDoes the actual export. Return false on error.
_extraMultiCategorisepublicForm to change the categories for a number of records
_extraMultiDeletepublicForm to delete multiple records
_getAddFormpublicReturns a page title and HTML for a form to add a record
_getAddSubActionspublicReturn the sub-actions for adding a record (e.g. preview)
_getContentspublicReturns the main list of records for this controller
_getContentsQueryprotectedReturns the SQL query for use by the contents list.
_getContentsViewpublicReturn HTML for a resultset of items
_getContentsViewListpublicFormats a resultset of items into an Itemlist
_getCustomAddSaveHTMLpublicOptional custom HTML for the save box
_getCustomDuplicateSaveHTMLpublicOptional custom HTML for the save box
_getCustomEditSaveHTMLpublicOptional custom HTML for the save box
_getDeleteFormpublicReturn HTML which represents the form for deleting a record
_getDeleteSubActionspublicReturn the sub-actions for deleting a record (e.g. cancel)
_getDuplicateFormpublicReturns the edit form for duplicating a record
_getDuplicateSubActionspublicReturn the sub-actions for duplicating a record
_getEditFormpublicReturns the edit form for adding a record
_getEditLiveUrlpublicReturn the URL to use for the 'view live site' button, when editing a given record
_getEditSubActionspublicReturn the sub-actions for editing a record (e.g. deleting)
_getExportpublicReturns form for doing exports
_getExportQueryprotectedReturns the SQL query for use by the export tools.
_getImportpublicReturns a form which contains options for doing an export
_getNavigationpublicReturns the contents of the navigation pane
_getRecordprotectedFetch the record with a given id
_getRefineClauseprotectedReturn the WHERE clause to use for a given key which is provided by the RefineBar
_getSearchFormpublicReturn HTML for a search form
_getToolspublicAdditional categry tools
_getVisibilityFieldspublicReturn the fields to show in the sidebar when adding or editing a record.
_identifierpublicCreates the identifier used in the heading, and for reordering.
_importColGuessprotectedTry to guess the database name for a given CSV heading.
_importDatapublicDoes the actual import
_importExtraOptionsprotectedCalled when the import form is being built.
_importPostprotectedCalled at the end of the the import process, after everything has been done.
_importPostRecordprotectedCalled after a record has been inserted or updated.
_importPreprotectedCalled at the beginning of the the import process.
_importPreRecordprotectedCalled after the field data has been determined, but before the insert or update is run.
_intropublicReturns the intro HTML for this controller.
_invalidateCachespublicThis is called after every add, edit and delete, as well as other (i.e. bulk) actions.
_isAddSavedpublicIs the "add" action saved?
_isDeleteSavedpublicCheck if deletion of a particular record is allowed
_isEditSavedpublicIs the "edit" action saved?
_modeSelectorprotectedReturns HTML for a ui component to update the current main view mode
_paginationBarprotectedBuilds the HTML for showing the navigation through pages in the admin.
_preSaveprotected 
_runpublicThe router/kohana will invoke this method to invoke an action.
ajaxLookuppublicReturn list of records for given search term
ajaxLookupListpublicReturn list of records for given search term
applyRefineFilterprotectedApplies filters defined in the query string using a LIKE contains
autoSetEmptyParamprotectedAuto-set the "empty" param for fields with foreign keys to be NULL
catAllowAddpublicReturn true if categories are allowed to be added.
catAllowDeletepublicReturn true if categories are allowed to be deleted.
catAllowEditpublicReturn true if categories are allowed to be edited.
deleteRecordprotectedDeletes a record, and logs the deletion
generateFormViewprotectedGenerates a form view from a JSON config file
getCategoryArchivepublicReturns TRUE if category archive is enabled, FALSE otherwise
getControllerNamepublicReturns the defined controller name.
getCssClassNamepublicReturn the class name for this controller, expressed in CSS style, i.e. with dashes
getDuplicateEnabledpublicReturns the duplication enabling flag
getFriendlyNamepublicReturns the defined controller friendly name
getModulePathpublicGets the relative path to the module the controller lives in, or sprout itself
getNavigationNamepublicReturns the defined controller navigation name
getTableNamepublicReturns the defined table name
getTopnavNamepublicGets the name of the controller to use for the top nav
initRefineBarprotectedInitialises the refine bar if it isn't already set, with a search widget for the 'name' field if it exists
initTableNameprotectedInitialises the table name if it isn't already set, using the plural of the shorthand controller name
injectVisiblityFieldsprotectedInject the visiblity fields into a loaded json configuration, so they actually save
isPerSubsitepublicIf true, then a UI for editing the "subsite_id" for a record should be shown
jsonExtraValidateprotectedDo any additional validation prior to saving the record
loadEditJsonprotectedLoads a JSON config file for an automated edit-type form for this controller
loadFormJsonprotectedLoads a config file for a JsonForm associated with this controller
loadRecordprotectedFetches the pre-update record from the database.
logActionprotectedStores a history item in the database, recording an add (i.e. insert), edit, or delete.
logAddprotectedLogs an add action. This is a wrapper for Controller::logAction
logAddCategoryprotectedLogs the adding of a record to a category. This is a wrapper for Controller::logAction
logDeleteprotectedLogs a delete action. This is a wrapper for Controller::logAction
logDeleteCategoryprotectedLogs the removal of a record from a category. This is a wrapper for Controller::logAction
logEditprotectedLogs an edit action. This is a wrapper for Controller::logAction
postJsonMultiTagpublicMulti-tag some items. Uses AJAX. Returns JSON.
postMultiCategorisepublicChange the categories for a number of records
postMultiDeletepublicDelete multiple records
replaceSetprotectedInserts records which are in $new_records, but are not in the specified table
saveJsonDataprotectedAutomatically saves the data associated with a submission on a JSON-generated form
updateCategoriesprotectedUpdates the category table for this controller (so for articles, the updated table will be articles_cat_join)

public __call (from BaseController)

void $BaseController->__call ( string $method , array $args );

Handles methods that do not exist.

public __construct

void $HasCategoriesAdminController->__construct ( );

Constructor

public _actionLog (from ManagedAdminController)

unknown $ManagedAdminController->_actionLog ( );

This function does not have a description

protected _addPreRender (from ManagedAdminController)

void $ManagedAdminController->_addPreRender ( mixed $view );

Hook called by _getAddForm() just before the view is rendered

public _addSave (from ManagedAdminController)

boolean $ManagedAdminController->_addSave ( int &$item_id );

Process the saving of an add.

public _deletePostSave (from ManagedAdminController)

void $ManagedAdminController->_deletePostSave ( int $item_id );

Does custom actions after the _deleteSave method is called, e.g. clearing cache data

public _deletePreSave (from ManagedAdminController)

void $ManagedAdminController->_deletePreSave ( int $item_id );

Does custom actions before _deleteSave method is called, e.g. extra security checks

public _deleteSave

bool $HasCategoriesAdminController->_deleteSave ( int $item_id );

Deletes an item and logs the deleted data

This method should not be overridden unless absolutely necessary.

protected _duplicatePreRender (from ManagedAdminController)

void $ManagedAdminController->_duplicatePreRender ( mixed $view , mixed $item_id );

Hook called by _getDuplicateForm() just before the view is rendered

public _duplicateSave (from ManagedAdminController)

boolean $ManagedAdminController->_duplicateSave ( int $id );

Process the saving of a duplication. Basic version just calls _editSave

protected _editPreRender (from ManagedAdminController)

void $ManagedAdminController->_editPreRender ( mixed $view , mixed $item_id );

Hook called by _getEditForm() just before the view is rendered

public _editSave (from ManagedAdminController)

boolean $ManagedAdminController->_editSave ( int $item_id );

Process the saving of a record.

public _exportData (from ManagedAdminController)

array $ManagedAdminController->_exportData ( );

Does the actual export. Return false on error.

public _extraMultiCategorise

unknown $HasCategoriesAdminController->_extraMultiCategorise ( );

Form to change the categories for a number of records

public _extraMultiDelete (from ManagedAdminController)

unknown $ManagedAdminController->_extraMultiDelete ( );

Form to delete multiple records

public _getAddForm

array $HasCategoriesAdminController->_getAddForm ( );

Returns a page title and HTML for a form to add a record

public _getAddSubActions (from ManagedAdminController)

array $ManagedAdminController->_getAddSubActions ( );

Return the sub-actions for adding a record (e.g. preview)
These are rendered into HTML using AdminController::renderSubActions

public _getContents

unknown $HasCategoriesAdminController->_getContents ( );

Returns the main list of records for this controller

protected _getContentsQuery (from ManagedAdminController)

string $ManagedAdminController->_getContentsQuery ( string $where , string $order , array &$params );

Returns the SQL query for use by the contents list.

The query MUST NOT include a LIMIT clause.
The query MUST include a SQL_CALC_FOUND_ROWS clause.
The main table SHOULD be aliased to 'item'.

public _getContentsView

unknown $HasCategoriesAdminController->_getContentsView ( Traversable $items , string $mode , StdClass $category );

Return HTML for a resultset of items
The returned HTML will be sandwiched between the refinebar and the pagination bar.

public _getContentsViewList

unknown $HasCategoriesAdminController->_getContentsViewList ( Traversable $items , StdClass $category );

Formats a resultset of items into an Itemlist

public _getCustomAddSaveHTML (from ManagedAdminController)

unknown $ManagedAdminController->_getCustomAddSaveHTML ( );

Optional custom HTML for the save box
Return NULL to use the default HTML

public _getCustomDuplicateSaveHTML (from ManagedAdminController)

unknown $ManagedAdminController->_getCustomDuplicateSaveHTML ( return $item_id );

Optional custom HTML for the save box
Return NULL to use the default HTML

public _getCustomEditSaveHTML (from ManagedAdminController)

unknown $ManagedAdminController->_getCustomEditSaveHTML ( return $item_id );

Optional custom HTML for the save box
Return NULL to use the default HTML

public _getDeleteForm (from ManagedAdminController)

string $ManagedAdminController->_getDeleteForm ( int $id );

Return HTML which represents the form for deleting a record

public _getDeleteSubActions (from ManagedAdminController)

array $ManagedAdminController->_getDeleteSubActions ( mixed $item_id );

Return the sub-actions for deleting a record (e.g. cancel)
These are rendered into HTML using AdminController::renderSubActions

public _getDuplicateForm

unknown $HasCategoriesAdminController->_getDuplicateForm ( int $id );

Returns the edit form for duplicating a record

public _getDuplicateSubActions (from ManagedAdminController)

array $ManagedAdminController->_getDuplicateSubActions ( mixed $item_id );

Return the sub-actions for duplicating a record
These are rendered into HTML using AdminController::renderSubActions

public _getEditForm

unknown $HasCategoriesAdminController->_getEditForm ( int $id );

Returns the edit form for adding a record

public _getEditLiveUrl (from ManagedAdminController)

string|null $ManagedAdminController->_getEditLiveUrl ( int $item_id );

Return the URL to use for the 'view live site' button, when editing a given record

public _getEditSubActions (from ManagedAdminController)

array $ManagedAdminController->_getEditSubActions ( mixed $item_id );

Return the sub-actions for editing a record (e.g. deleting)
These are rendered into HTML using AdminController::renderSubActions

public _getExport (from ManagedAdminController)

unknown $ManagedAdminController->_getExport ( );

Returns form for doing exports

protected _getExportQuery (from ManagedAdminController)

unknown $ManagedAdminController->_getExportQuery ( [ string $where ] );

Returns the SQL query for use by the export tools.
The query does MUST NOT include a LIMIT clause.

public _getImport (from ManagedAdminController)

unknown $ManagedAdminController->_getImport ( mixed $filename );

Returns a form which contains options for doing an export

public _getNavigation

unknown $HasCategoriesAdminController->_getNavigation ( );

Returns the contents of the navigation pane

protected _getRecord (from ManagedAdminController)

array $ManagedAdminController->_getRecord ( int $id );

Fetch the record with a given id

protected _getRefineClause

string $HasCategoriesAdminController->_getRefineClause ( string $key , string $val , array &$query_params );

Return the WHERE clause to use for a given key which is provided by the RefineBar

Allows custom non-table clauses to be added.
Is only called for key names which begin with an underscore.
The base table is aliased to 'item'.

public _getSearchForm (from ManagedAdminController)

unknown $ManagedAdminController->_getSearchForm ( );

Return HTML for a search form

public _getTools

unknown $HasCategoriesAdminController->_getTools ( );

Additional categry tools

public _getVisibilityFields (from ManagedAdminController)

array $ManagedAdminController->_getVisibilityFields ( );

Return the fields to show in the sidebar when adding or editing a record.
These fields are shown under a heading of "Visibility"

Key is the field name, value is the field label

public _identifier (from ManagedAdminController)

string $ManagedAdminController->_identifier ( array $item );

Creates the identifier used in the heading, and for reordering.

protected _importColGuess (from ManagedAdminController)

string $ManagedAdminController->_importColGuess ( string $csv_heading );

Try to guess the database name for a given CSV heading.
If you can't figure it out, return NULL.
If NULL is returned, the rudimentry almost-exact guesser will be run.

public _importData (from ManagedAdminController)

unknown $ManagedAdminController->_importData ( string $filename );

Does the actual import

protected _importExtraOptions

unknown $HasCategoriesAdminController->_importExtraOptions ( );

Called when the import form is being built.

Returns HTML of extra options to display, or null if no extra options.

protected _importPost (from ManagedAdminController)

unknown $ManagedAdminController->_importPost ( );

Called at the end of the the import process, after everything has been done.
Is called from within a transaction.
Return FALSE to abort the import.

protected _importPostRecord

unknown $HasCategoriesAdminController->_importPostRecord ( int $record_id , array $new_data , array $existing_record , string $type , boolean $raw_data );

Called after a record has been inserted or updated.

protected _importPre (from ManagedAdminController)

unknown $ManagedAdminController->_importPre ( );

Called at the beginning of the the import process.
Is called from within a transaction.
Return FALSE to abort the import.

protected _importPreRecord (from ManagedAdminController)

unknown $ManagedAdminController->_importPreRecord ( array &$new_data , array $raw_data );

Called after the field data has been determined, but before the insert or update is run.

Return FALSE to skip the record.

public _intro (from ManagedAdminController)

void $ManagedAdminController->_intro ( );

Returns the intro HTML for this controller.

public _invalidateCaches (from ManagedAdminController)

void $ManagedAdminController->_invalidateCaches ( string $action [, int $item_id ] );

This is called after every add, edit and delete, as well as other (i.e. bulk) actions.
Use it to clear any frontend caches. The default is an empty method.

public _isAddSaved (from ManagedAdminController)

bool $ManagedAdminController->_isAddSaved ( );

Is the "add" action saved?
These may be false if the UI provides its own save mechanism (e.g. multi-add)

public _isDeleteSaved (from ManagedAdminController)

bool $ManagedAdminController->_isDeleteSaved ( int $item_id );

Check if deletion of a particular record is allowed
This method may be overridden if ignoring the $main_delete property is desired

public _isEditSaved (from ManagedAdminController)

bool $ManagedAdminController->_isEditSaved ( mixed $item_id );

Is the "edit" action saved?
These may be false if the UI provides its own save mechanism

protected _modeSelector (from ManagedAdminController)

unknown $ManagedAdminController->_modeSelector ( mixed $current_mode );

Returns HTML for a ui component to update the current main view mode

protected _paginationBar (from ManagedAdminController)

HTML $ManagedAdminController->_paginationBar ( The $current_page , The $total_row_count );

Builds the HTML for showing the navigation through pages in the admin.
This method is FINAL to help keep the user interface consistent.

protected _preSave (from ManagedAdminController)

void $ManagedAdminController->_preSave ( mixed $id , mixed &$data );

This function does not have a description

public _run (from BaseController)

void $BaseController->_run ( mixed $method , mixed $args );

The router/kohana will invoke this method to invoke an action.

If you please, you may wrap this method to create before/after hooks.

public ajaxLookup (from ManagedAdminController)

void $ManagedAdminController->ajaxLookup ( );

Return list of records for given search term
Used for Fb::autocomplete

public ajaxLookupList (from ManagedAdminController)

void $ManagedAdminController->ajaxLookupList ( );

Return list of records for given search term
Used for Fb::autocompleteList

protected applyRefineFilter (from ManagedAdminController)

array $ManagedAdminController->applyRefineFilter ( [ array $source_data ] );

Applies filters defined in the query string using a LIKE contains
Only fields which exist in the RefineBar will be filtered

protected autoSetEmptyParam (from Controller)

null $Controller->autoSetEmptyParam ( array &$conf );

Auto-set the "empty" param for fields with foreign keys to be NULL

This greatly reduces the number of foreign-key constraints hit in day-to-day use,
especially with file fields.

public catAllowAdd

unknown $HasCategoriesAdminController->catAllowAdd ( );

Return true if categories are allowed to be added.

public catAllowDelete

unknown $HasCategoriesAdminController->catAllowDelete ( mixed $category_id );

Return true if categories are allowed to be deleted.

public catAllowEdit

unknown $HasCategoriesAdminController->catAllowEdit ( mixed $category_id );

Return true if categories are allowed to be edited.

protected deleteRecord (from Controller)

int $Controller->deleteRecord ( string $table , int $record_id [, int $parent_log_id ] );

Deletes a record, and logs the deletion
This should be used by all _deleteSave methods
Starts a transaction and commits it if not already in a transaction when called

protected generateFormView (from Controller)

array $Controller->generateFormView ( mixed $file_name );

Generates a form view from a JSON config file

public getCategoryArchive

unknown $HasCategoriesAdminController->getCategoryArchive ( );

Returns TRUE if category archive is enabled, FALSE otherwise

public getControllerName (from ManagedAdminController)

unknown $ManagedAdminController->getControllerName ( );

Returns the defined controller name.

public getCssClassName (from BaseController)

string $BaseController->getCssClassName ( );

Return the class name for this controller, expressed in CSS style, i.e. with dashes

Example: When called from BlogPostController --> 'blog-post-controller'

public getDuplicateEnabled (from ManagedAdminController)

unknown $ManagedAdminController->getDuplicateEnabled ( );

Returns the duplication enabling flag

public getFriendlyName (from ManagedAdminController)

unknown $ManagedAdminController->getFriendlyName ( );

Returns the defined controller friendly name

public getModulePath (from BaseController)

string $BaseController->getModulePath ( );

Gets the relative path to the module the controller lives in, or sprout itself

public getNavigationName (from ManagedAdminController)

unknown $ManagedAdminController->getNavigationName ( );

Returns the defined controller navigation name

public getTableName (from ManagedAdminController)

unknown $ManagedAdminController->getTableName ( );

Returns the defined table name

public getTopnavName (from ManagedAdminController)

unknown $ManagedAdminController->getTopnavName ( );

Gets the name of the controller to use for the top nav

protected initRefineBar (from ManagedAdminController)

void $ManagedAdminController->initRefineBar ( );

Initialises the refine bar if it isn't already set, with a search widget for the 'name' field if it exists
Most controllers which need a custom refine bar should call this before adding their own search widgets

protected initTableName (from ManagedAdminController)

void $ManagedAdminController->initTableName ( );

Initialises the table name if it isn't already set, using the plural of the shorthand controller name

protected injectVisiblityFields (from ManagedAdminController)

void $ManagedAdminController->injectVisiblityFields ( array &$conf );

Inject the visiblity fields into a loaded json configuration, so they actually save

public isPerSubsite (from ManagedAdminController)

unknown $ManagedAdminController->isPerSubsite ( );

If true, then a UI for editing the "subsite_id" for a record should be shown

protected jsonExtraValidate (from Controller)

void $Controller->jsonExtraValidate ( int $id , Validator $validator );

Do any additional validation prior to saving the record

protected loadEditJson (from Controller)

array $Controller->loadEditJson ( );

Loads a JSON config file for an automated edit-type form for this controller

protected loadFormJson (from Controller)

array $Controller->loadFormJson ( string $file_name );

Loads a config file for a JsonForm associated with this controller

protected loadRecord (from Controller)

bool|array $Controller->loadRecord ( string $table , int $record_id );

Fetches the pre-update record from the database.
Used by the action log system, and disabled if the action log system has been turned off

protected logAction (from Controller)

int $Controller->logAction ( string $table , int $record_id , int $type , array $data [, int $parent_log_id ] );

Stores a history item in the database, recording an add (i.e. insert), edit, or delete.
Should be called AFTER the action has been made.
N.B. This is a low-level method; the friendlier wrapper methods are preferred;
e.g. Controller::logAdd, Controller::logEdit

protected logAdd (from Controller)

int $Controller->logAdd ( string $table , int $record_id );

Logs an add action. This is a wrapper for Controller::logAction

protected logAddCategory (from Controller)

int $Controller->logAddCategory ( string $table , int $record_id , int $cat_id );

Logs the adding of a record to a category. This is a wrapper for Controller::logAction

protected logDelete (from Controller)

int $Controller->logDelete ( string $table , int $record_id , array $data [, int $parent_log_id ] );

Logs a delete action. This is a wrapper for Controller::logAction

protected logDeleteCategory (from Controller)

int $Controller->logDeleteCategory ( string $table , int $record_id , int $cat_id );

Logs the removal of a record from a category. This is a wrapper for Controller::logAction

protected logEdit (from Controller)

int $Controller->logEdit ( string $table , int $record_id , array $data );

Logs an edit action. This is a wrapper for Controller::logAction

public postJsonMultiTag (from ManagedAdminController)

void $ManagedAdminController->postJsonMultiTag ( );

Multi-tag some items. Uses AJAX. Returns JSON.

public postMultiCategorise

void $HasCategoriesAdminController->postMultiCategorise ( );

Change the categories for a number of records

public postMultiDelete (from ManagedAdminController)

void $ManagedAdminController->postMultiDelete ( );

Delete multiple records

protected replaceSet (from Controller)

void $Controller->replaceSet ( string $table , array $new_records , array $conditions );

Inserts records which are in $new_records, but are not in the specified table
Deletes records which are in the specified table, but not in $new_records
Updates records which are in both

Matching is done on the 'id' field, as a result the $new_records arrays MUST contain an id field.

protected saveJsonData (from Controller)

bool $Controller->saveJsonData ( array $conf , int &$item_id [, string $mode ] );

Automatically saves the data associated with a submission on a JSON-generated form

protected updateCategories

boolean $HasCategoriesAdminController->updateCategories ( mixed $item_id , array $categories );

Updates the category table for this controller (so for articles, the updated table will be articles_cat_join)
so that the records for the specified item match the category ids provided.