Methods summary
public
array
|
#
actions( )
A list of actions to include.
A list of actions to include.
This method specifies which actions are defined elsewhere but used here.
These actions are pro code that are included in the pro version of the
software.
Returns
array An array of actions to include.
Overrides
|
public
|
#
actionFindMissingPermissions( )
A function to print a list of actions which are present in controller files
but no corresponding permission exists in the database.
A function to print a list of actions which are present in controller files
but no corresponding permission exists in the database.
This function should ideally be run before each release as a developer tool
to view what permissions are missing from the software. Any controller action
with no permission associated with it is assumed to be allowed so this is a good
way to look for potential security holes. Please note that all relevant
controllers must be specified by name in the array at the top of the
function.
|
public
|
|
protected
boolean
|
#
beforeAction( string $action = null )
An overridden Yii method that happens before an action.
An overridden Yii method that happens before an action.
This method handles authorization on an attempt by a user to access an
action. A slightly modified version of method is included in X2Base as a
behavior.
Parameters
- $action
string $action A paramter passed by Yii's internal action handling.
Returns
boolean True if the action is allowed to continue, otherwise throw exception.
Throws
CHttpException Generates a 403 error if authorization fails
Overrides
|
public
array
|
#
filters( )
Filters to be used by the controller.
Filters to be used by the controller.
This method defines which filters the controller will use. Filters can be
built in with Yii or defined in the controller (see AdminController::filterClearCache() ). See also Yii documentation for more
information on filters.
Returns
array An array consisting of the filters to be used.
Overrides
CController::filters()
|
public
array
|
#
behaviors( )
A list of behaviors for the controller to use.
A list of behaviors for the controller to use.
It will download missing files (including classes that aren't behaviors) if
any that are defined in AdminController::$behaviorClasses are missing from the local
filesystem.
The reason for all this is that in older versions, the updater utility, when
updating itself, will download the latest version of AdminController. This
necessitates downloading all of its dependencies, so that AdminController can
still run properly, in order to be backwards- compatible.
It uses the same form as a typical magic getter method (private storage
property, check if it's set first and return) because the method is also called
in the override CController::createAction()
LeadRoutingBehavior is used to consolidate code for lead routing
rules. As such, it has been moved to an external file. This file includes
LeadRoutingBehavior or downloads it if the file does not currently exist. See
also Yii documentation for more information on behaviors. UpdaterBehavior is a centralized, re-usable behavior class for code pertaining
to the updater that is agnostic to whether the update is being performed inside
of a web request. CommonControllerBehavior is for methods shared between
x2base and Admin controller
Returns
array An array of behaviors to implement.
Overrides
CController::behaviors()
|
public
|
#
filterClearCache( type $filterChain )
A filter to clear the cache.
A filter to clear the cache.
This method clears the cache whenever the admin controller is accessed.
Caching improves performance throughout the app, but will occasionally need to
be cleared. Keeping this filter here allows for cleaning up the cache when
required.
Parameters
- $filterChain
type $filterChain The filter chain Yii is currently acting on.
|
public
|
#
filterClearAuthCache( type $filterChain )
A filter to clear the authItem cache.
A filter to clear the authItem cache.
Parameters
- $filterChain
type $filterChain The filter chain Yii is currently acting on.
|
public
|
#
actionManageTags( )
The tag manager page of the administrative section.
The tag manager page of the administrative section.
This page allows for the admin user to view a list of tags and how many
records have that tag. From here, the admin can mass delete individual tags or
remove all tags.
|
public
|
#
actionDeleteTag( string $tag )
This function is called via AJAX by Manage Tags to remove a tag.
This function is called via AJAX by Manage Tags to remove a tag.
Parameters
- $tag
string $tag The name of the tag to be deleted.
|
public
|
#
actionManageSessions( )
An administrative page to see a list of all current sessions. From here, the
admin can toggle visible/invisible or end any user session.
An administrative page to see a list of all current sessions. From here, the
admin can toggle visible/invisible or end any user session.
|
public
|
#
actionToggleSession( mixed $id )
An AJAX called function to set a particular session to visible or
invisible
An AJAX called function to set a particular session to visible or
invisible
Parameters
- $id
mixed $id The ID of the session to be toggled.
|
public
|
#
actionEndSession( mixed $id )
An AJAX called function to allow the admin to forcibly end a session, logging
the user out.
An AJAX called function to allow the admin to forcibly end a session, logging
the user out.
Parameters
- $id
mixed $id The ID of the session.
|
public
|
#
actionViewSessionLog( )
An administrative function to view a historical list of sessions and events
associated with them.
An administrative function to view a historical list of sessions and events
associated with them.
If the admin has turned on the "Session Logging" feature in the General
Settings page, all sessions are logged in the session log here. Specific
timestamps for login/logout as well as going visible or invisible are provided
here. The admin can also click into a session to load the full history of
session related activity for that session.
|
public
|
#
actionViewSessionHistory( mixed $id )
An AJAX called function which will return HTML containing a full history of a
particular session, from login to logout.
An AJAX called function which will return HTML containing a full history of a
particular session, from login to logout.
Parameters
- $id
mixed $id The ID of the session
|
public
|
#
actionUserViewLog( )
An administrative function to display a grid of user view data--that is a log
of when a user viewed a particular record.
An administrative function to display a grid of user view data--that is a log
of when a user viewed a particular record.
|
public
|
#
actionClearViewHistory( )
Delete all ViewLog entries from the database.
Delete all ViewLog entries from the database.
|
public
|
#
actionGetRoutingType( )
Find user for lead routing.
Find user for lead routing.
This method uses LeadRoutingBehavior to determine the proper user for
lead distribution within the app. The user is echoed out to allow for access via
AJAX request.
|
public
|
#
actionRoundRobinRules( )
Render/save the Custom Lead Routing Rules
Render/save the Custom Lead Routing Rules
This method renders a grid of Custom Round Robin Rules and allows for new
rules to be created and saved. These rules are used in conjunction with AdminController::actionGetRoutingType() when the "Custom Round Robin" lead
distribution method is chosen.
|
public
|
#
actionDeleteRole( )
Delete an existing role.
This method is accessed by a form on the AdminController::manageRoles
page to allow for the deletion of admin created roles. Default system roles
(authenticated, guest, and admin) cannot be deleted this way.
|
public
|
|
public
|
#
actionRoleException( )
Create a workflow based exception for a role.
Create a workflow based exception for a role.
This method is called by a form on the AdminController::manageRoles
page to allow for the creation of workflow based exceptions for a role. Workflow
exceptions modify which fields are visible or editable based on what stage of a
workflow a contact is in.
|
public
|
#
actionWorkflowSettings( )
Modify workflow configuration settings.
Modify workflow configuration settings.
This method allows for the configuration of workflow backdating functions.
These settings control whether or not users are allowed to set workflow
completion dates to be in the past, and to what extent they can modify a
workflow action once it is marked as complete.
|
public
|
#
actionGetWorkflowStages( )
A method to echo a dropdown of workflow stages.
A method to echo a dropdown of workflow stages.
This method is called via AJAX request and echoes back a dropdown with
options consisting of all stages for a particular workflow.
|
public
|
#
actionGetRole( )
Echo out a series of inputs for a role editor page.
Echo out a series of inputs for a role editor page.
This method is called via AJAX from the "Edit Role" portion of the "Manage
Roles" page. Upon selection of a role in the dropdown on that page, this method
finds all relevant information about the role and echoes it back as a form to
allow for editing of the role.
|
public
|
#
actionManageRoles( )
A catch all page for roles.
A catch all page for roles.
This action renders a page with forms for the creation, editing, and deletion
of roles. It also displays a grid with all user created roles (default roles are
not included and cannot be edited this way).
|
public
|
#
actionViewChangelog( )
Render the changelog.
This action renders the user changelog page, which contains a list of all
changes made by users within the app.
|
public
|
|
public
|
#
actionClearChangelog( )
Delete all changelog entries from the database.
Delete all changelog entries from the database.
|
public
|
#
actionAddCriteria( )
Add notification criteria.
Add notification criteria.
This method is called by a form on the "Manage Notification Criteria" page
and is used to create a new criteria for generation notifications.
|
public
|
#
actionDeleteCriteria( integer $id )
Delete a notification criteria.
Delete a notification criteria.
This function is called to delete a user created notification critera. Some
criteria are built in to the app and cannot be deleted this way.
Parameters
- $id
integer $id The ID of the criteria to be deleted.
|
public
|
#
actionDeleteRouting( integer $id )
Delete a routing rule.
This method will delete a custom routing rule that has been configured for
the lead distribution process.
Parameters
- $id
integer $id The ID of the rule to be deleted.
|
public
|
#
actionAppSettings( )
Control general settings for the software.
Control general settings for the software.
This method renders a page with settings for a variety of admin options. This
includes things like Contact name formatting, session timeout and notification
poll times, and basic privacy the for action history. These settings are
application wide and not per user.
|
public
|
#
actionActivitySettings( )
Render a page with options for activity feed settings.
Render a page with options for activity feed settings.
The administrator is allowed to configure what sort of information should be
displayed in the activity feed and for how long. This page sets options for
automated deletion of any chosen types after a set time period to help keep the
database cleaner.
|
public
|
#
actionSetLeadRouting( )
Sets the lead routing type.
Sets the lead routing type.
This method allows for the admin to configure which option to use for lead
distribution. This is what determines the actions of LeadRoutingBehavior .
|
public
|
#
actionSetServiceRouting( )
Sets the service routing type.
Sets the service routing type.
This method allows for the admin to configure which option to use for service
case distribution. This is what determines the actions of ServiceRoutingBehavior .
|
public
|
#
actionGoogleIntegration( )
Configure google integration.
Configure google integration.
This method provides a form for the entry of Google Apps data. This will
allow for users to log in with their Google account and sync X2Engine's
calendars with their Google Calendar.
|
public
|
#
actionEmailSetup( )
Configure email settings.
Configure email settings.
This allows for configuration of how emails are handled by X2Engine. The
admin can select to use the server that the software is hosted on or a separate
mail server.
|
public
|
#
actionCreateUpdateField( boolean $search = 0, boolean $save = 0, mixed $override = 0 )
Form/submit action for adding or customizing a field.
Form/submit action for adding or customizing a field.
This method allows for the creation of custom fields linked to any
customizable module in X2Engine. This is used by "Manage Fields." It is used to
reload the form via AJAX.
Parameters
- $search
boolean $search If set to 1/true, perform a lookup for an existing field
- $save
boolean $save If set to 1/true, attempt to save the model; otherwise just echo the form.
- $override
|
public
|
#
actionRemoveField( mixed $getCount = false )
Delete a field.
This method allows for the deletion of custom fields. Default fields cannot
be deleted in this way.
|
public
|
#
actionManageFields( )
General field management.
General field management.
This action serves as the landing page for all of the custom field related
actions within the software.
|
public
|
|
public
|
|
public
|
#
actionCreatePage( )
Create a static page.
This method allows the admin to create a static page to go on the top bar
menu. The page is a basic doc editor which is then saved as a Module record of
type "Document."
|
public
|
|
public
|
#
actionRenameModules( )
Change the title of a module.
Change the title of a module.
This allows for the configuration of the display name of a module. Before
version 5.0, this would not affect text other than the top bar menu.
|
public
|
#
actionManageModules( )
Re-arrange the top bar menu.
Re-arrange the top bar menu.
This form allows for the admin to change the order and visibility of top bar
menu items for all users.
|
public
|
#
actionUploadLogo( )
Upload a custom logo
This method allows for the admin to upload their own logo to go in place of
the X2Engine logo in the top left corner of the software.
|
public
|
|
public
|
#
actionTranslationManager( )
Create or edit translations.
Create or edit translations.
This method allows the admin to access the X2Engine built in translation
manager. Any translation for any language can be edited and saved from here, and
new ones can be added.
|
public
|
#
actionConvertCustomModules( )
Function to convert custom modules to be in line with the current
codebase.
Function to convert custom modules to be in line with the current
codebase.
This function takes any pre-3.5.1 custom module and performs all necessary
operations to make the module compatible with the latest version. Additionally
an optional "updateFlag" parameter can be passed, in which case the custom
module will have its file contents re-generated to be at the latest version of
the template files. TODO: clean up backupFlag code. backupFlag checks no longer
necessary since conversion now aborts when backup fails.
|
public
|
#
actionCreateModule( )
Creates a new custom module.
Creates a new custom module.
This method allows for the creation of admin defined modules to use in the
software. These modules are more basic in functionality than most other X2
modules, but are fully customizable from the studio.
|
public
|
#
actionDeleteModule( )
Deletes a custom module.
This method deletes an admin created module from the system. All files are
deleted as well as the table associated with it.
|
public
|
#
actionExportMapping( )
Export the mapping from the model importer
Export the mapping from the model importer
|
public
|
#
actionExportModels( mixed $listId = null )
Export records from a model
Export records from a model
|
public
|
#
actionExportModelRecords( integer $page, mixed $model )
An AJAX called function which exports data to a CSV via pagination. This is a
generalized version of the Contacts export.
An AJAX called function which exports data to a CSV via pagination. This is a
generalized version of the Contacts export.
Parameters
- $page
integer $page The page of the data provider to export
- $model
|
protected
|
|
public
|
#
actionExportModule( )
Export a custom module.
This method creates a zip file from a custom module with all the proper files
and SQL for installation required to set up the module again. These zip files
can be imported into other X2 installations.
|
public
|
|
public
|
#
actionImportModelRecords( )
Bulk import of model records
Bulk import of model records
The actual meat of the import process happens here, this is called
recursively via AJAX to import sets of records. This is a refactored and
generalized version of the old Contacts importRecords.
|
public
|
#
actionImportModule( )
Import a zip of a module.
Import a zip of a module.
This method will allow the admin to import a zip file of an exported X2
module.
|
public
|
#
actionEditor( )
X2Studio Form Editor
This method allows the admin to create and edit the form layouts for all
editable modules within the software.
|
public
|
|
public
|
#
actionDeleteFormLayout( integer $id )
Delete a form layout.
Parameters
- $id
integer $id The ID of the layout to be deleted.
|
public
|
#
actionManageDropDowns( )
Landing page for admin created dropdowns
Landing page for admin created dropdowns
This method allows the admin to access the functions related to creating and
editing admin created dropdowns in the app.
|
public
|
#
actionDropDownEditor( )
Create a custom dropdown
This method allows the admin to create a custom dropdown to be used with a
module in conjunction with the form editor.
|
public
|
|
public
|
|
public
|
|
public
|
#
actionGetFieldType( )
Echos a list of custom dropdowns
Echos a list of custom dropdowns
This method is called via AJAX on the field editor to get a list of dropdowns
or modules to be used for modifying the type of field.
|
public
|
#
actionExport( )
Export all data
This method is used to export all of the data from the software as a CSV
|
public
|
#
actionPrepareExport( )
Helper function to generate the necessary CSV via ajax and insert version
data.
Helper function to generate the necessary CSV via ajax and insert version
data.
|
public
|
#
actionGlobalExport( string $model, integer $page )
An AJAX called method to export module data.
An AJAX called method to export module data.
This method actually prepares all the data via recursive AJAX requests until
all data has been exported. This exports each module into the CSV by class,
using pagination to cut down on request time.
Parameters
- $model
string $model The name of the current model being exported
- $page
integer $page The page of data which the data provider's paginator is on
|
public
|
#
actionFinishGlobalExport( )
To be called via AJAX to finalize a global export and prepare the export
deliverable
To be called via AJAX to finalize a global export and prepare the export
deliverable
|
public
|
#
actionDownloadData( string $file )
Helper function called in a lot of places to download a file
Helper function called in a lot of places to download a file
Parameters
- $file
string $file Filepath of the requested file
|
public
|
#
actionRollbackStage( string $model, string $stage, integer $importId )
An AJAX called function used to rollback a data import.
An AJAX called function used to rollback a data import.
This function is called several times with different parameters as a part of
the rollback process and runs a variety of SQL queries to remove data created as
part of the import process.
Parameters
- $model
string $model The name of the model Class
- $stage
string $stage The stage to be run for this step
- $importId
integer $importId The ID of the import being rolled back
|
public
|
#
actionRollbackImport( )
An administrative view to rollback any data imports which have been
conducted.
An administrative view to rollback any data imports which have been
conducted.
|
public
|
#
actionImport( )
Import data from a CSV
This method allows for the import of data by the admin into the software.
This import expects machine readable data (i.e. data which would be directly
inserted into the database like unix timestamps) and the final column of each
row should be the type of record being imported (e.g. Contacts, Actions, etc.)
This particular function merely renders the upload page.
|
public
|
#
actionPrepareImport( )
Helper function to prepare a lot of the necessary information for a data
import. A large amount of this data is stored in the session so as to be
preserved between the AJAX requests which will occur as a part of the import
process.
Helper function to prepare a lot of the necessary information for a data
import. A large amount of this data is stored in the session so as to be
preserved between the AJAX requests which will occur as a part of the import
process.
|
public
|
#
actionPrepareModelExport( )
Helper method to be called via ajax to prepare the model export by writing
the CSV header and setting appropriate configuration in $_SESSION
Helper method to be called via ajax to prepare the model export by writing
the CSV header and setting appropriate configuration in $_SESSION
|
public
|
#
actionPrepareModelImport( )
Helper method to be called via ajax to prepare for model import by setting
necessary configuration in $_SESSION and verifying the chosen import map
Helper method to be called via ajax to prepare for model import by setting
necessary configuration in $_SESSION and verifying the chosen import map
|
public
|
#
actionPublicInfo( )
Allows for control of setting the externally visible URL for the CRM. This
function is in the wrong place (in the middle of all the import functions) and
should be cleaned up (or possibly refactored, see my notes on the Admin
Controller refactor) but I'm only writing comments right now and trying not to
make code modifications.
Allows for control of setting the externally visible URL for the CRM. This
function is in the wrong place (in the middle of all the import functions) and
should be cleaned up (or possibly refactored, see my notes on the Admin
Controller refactor) but I'm only writing comments right now and trying not to
make code modifications.
|
public
null
|
#
actionGlobalImport( )
Import a set of CSV data into the software.
Import a set of CSV data into the software.
This function is called via AJAX and is the meat of the global import
process. It takes the variable "count" as POST data to determine how many
records it should import in this step, which is usually 50, but is arbitrary
except for server load considerations. It reads data out of the "data.csv" file
and imports it. See inline comments for details of what's going on.
Returns
null A return statement to cease further execution, could probably be cleaned up
& removed
|
public
|
#
actionCleanUpImport( )
Post-processing function for the import tool, unset session variables and
delete the uploaded data file.
Post-processing function for the import tool, unset session variables and
delete the uploaded data file.
|
public
|
#
actionCleanUpModelImport( )
Post-processing for the import process to clean out the SESSION vars.
Post-processing for the import process to clean out the SESSION vars.
|
public
|
#
actionUpdaterSettings( )
Control settings for the updater
Control settings for the updater
This method controls the update interval setting for the application.
|
public
|
#
missingClassesException( array $classes )
Prints an error message explaing what has gone wrong when the classes are
missing.
Prints an error message explaing what has gone wrong when the classes are
missing.
Parameters
- $classes
array $classes The missing dependencies
|
public
|
#
actionAuthGraph( )
Function written by Matthew to display a tree-like hierarchy of the roles
Legend:
blue: roles (type 0)
white: tasks (type 1)
red: actions (type 2)
Function written by Matthew to display a tree-like hierarchy of the roles
Legend: blue: roles (type 0) white: tasks (type 1) red: actions (type 2)
|
public
boolean
|
#
copyRemote( string $remoteFile, string $localFile, boolean $curl )
Last-resort, built-in, fail-resistant copy method
Last-resort, built-in, fail-resistant copy method
Copy method used in the case that FileUtil is not yet available (i.e. if
AdminController was downloaded in an auto-update by a much older version but
nothing else). Returns true on success and false on failure.
Parameters
- $remoteFile
string $remoteFile URL of file to fetch
- $localFile
string $localFile Path to local destination
- $curl
boolean $curl Whether to use CURL
Returns
boolean
|
public
boolean
|
#
getNoRemoteAccess( )
Magic getter for "noRemoteAccess" property.
Magic getter for "noRemoteAccess" property.
If true, signifies that there is no possible way to retrieve remote
files.
Returns
boolean
|
public
|
#
checkRemoteMethods( )
Check whether it is possible to retrieve remote files.
Check whether it is possible to retrieve remote files.
|
public
|
#
error500( type $message )
Explicit, attention-grabbing error message w/o bug reporter.
Explicit, attention-grabbing error message w/o bug reporter.
This is intended for errors that are NOT bugs, but that arise from server
malconfiguration and/or missing requirements for running X2Engine, as a
last-ditch effort to fail gracefully.
Parameters
|
public
|
|
public
|
#
actionGetAttributes( )
Echo a list of model attributes as a dropdown.
Echo a list of model attributes as a dropdown.
This method is called via AJAX as a part of creating notification criteria.
It takes the model or module name as POST data and returns a list of dropdown
options consisting of the fields available to that model.
|
public
|
#
actionConvertEmailTemplates( )
Fix email templates broken by the 5.1->5.2/5.3 media module changes.
Fix email templates broken by the 5.1->5.2/5.3 media module changes.
|