CSMamFileHandler
extends CSPlugin
in package
The CSMamFileHandler represents a plugin to define several handlers for different file types.
To be included, it must be placed in a plugins/mam/filehandler subfolder with a file name ending with FileHandler.php.
Tags
Table of Contents
- __call() : mixed|string
- All method calls which are not defined within the plugin are forwarded to the module Therefore it is possible to get, e.g. the label by calling the getSuiteName() method.
- _construct() : void
- The construct method may be used to initialize custom plugin properties it is called immediately after instantiating the plugin all arguments passed to the getPlugins method are also available in this method.
- addAlternativePluginFolder() : void
- A path to a specific folder in which should be search for plugins.
- addContentPane() : bool
- Extends the default File editor with a content pane for this filetype.
- getAlternativePluginFolder() : array<string|int, mixed>
- getFileContentFromPost() : string
- If content has been displayed at the editor {@see prepareEditor()} which can be edited, it has to been stored when save or checkin is called within the Editor.
- getHandledTypes() : array<string|int, mixed>
- Returns an array of all handled filetypes. If the isAvailable method is not overwritten, this array is checked to proove whether the file is handled by this handler in the {@see isAvailable} method.
- getLevel() : int
- The getLevel method may be overwritten in the plugins and defines the order, the plugins are called, where the highest level is called first.
- getMetaData() : CSMetaData
- Returns the CSMetaData of the current plugin.
- getModule() : CSModule
- Returns the module, if the plugin is defined within a module.
- getOpenEditorWindowName() : string
- Returns the name of the window, where the file editor should be opened to Beside normal names the standard properties _self (always open in main window) and _blank (always open in new window) are allowed If no name is given, the default behaviour is used (main frame in tree and new window in list)
- getOpenEditorWindowParams() : string
- Returns the parameters of editor window, if the file is opened in a new window
- getPlugin() : CSPlugin|null
- Returns a CSPlugin for the given plugin type and plugin class name.
- getPluginChooser() : array<string|int, mixed>
- Returns an array all defined CSPlugins for the current plugin type
- getPluginData() : mixed
- getPluginDefinitionFile() : string
- Returns the path to the file, the plugin is defined.
- getPluginName() : mixed
- getPlugins() : array<string|int, CSPlugin>
- Returns all defined CSPlugins for the current plugin type It should be used to get all matching plugins for a given plugin api.
- getPluginsInModule() : array<string|int, mixed>
- Returns all CSPlugins for the current plugin type which are defined within the given module It should be used to get all matching plugins for a given plugin api.
- isAvailable() : bool
- Checks and returns whether this FileHandler is responsible for the given file
- prepareEditor() : mixed
- Extends the default File editor with content and parameters which are required for this filetype.
- resetLoadedPlugins() : mixed
- reset the internal plugins cache for loaded plugins
Methods
__call()
All method calls which are not defined within the plugin are forwarded to the module Therefore it is possible to get, e.g. the label by calling the getSuiteName() method.
public
__call(mixed $methodName, mixed $methodArguments) : mixed|string
Parameters
- $methodName : mixed
- $methodArguments : mixed
Tags
Return values
mixed|string —_construct()
The construct method may be used to initialize custom plugin properties it is called immediately after instantiating the plugin all arguments passed to the getPlugins method are also available in this method.
public
_construct() : void
Tags
Return values
void —addAlternativePluginFolder()
A path to a specific folder in which should be search for plugins.
public
static addAlternativePluginFolder(mixed $sPluginFolder) : void
Parameters
- $sPluginFolder : mixed
Tags
Return values
void —addContentPane()
Extends the default File editor with a content pane for this filetype.
public
addContentPane(CSGuiEditorDialog $csGuiItemEditor, CSMamFile $mamFile, bool $maySave) : bool
It is possible to define the file content in iframe which are automatically saved with the original content. For details see CSGuiEditorDialog::enableSavingContentFromInnerFrames(). The content can be prepared and is saved to the file using the method getFileContentFromPost()
Parameters
- $csGuiItemEditor : CSGuiEditorDialog
-
the CSGuiEditorDialog which can be modified
- $mamFile : CSMamFile
-
the current displayed CSMamFile
- $maySave : bool
-
whether the content may be saved or not
Tags
Return values
bool —whether a pane had been added and no other pane must be added afterwards.
getAlternativePluginFolder()
public
static getAlternativePluginFolder() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —getFileContentFromPost()
If content has been displayed at the editor {@see prepareEditor()} which can be edited, it has to been stored when save or checkin is called within the Editor.
public
getFileContentFromPost(CSMamFile $mamFile) : string
Therefore this method has to read all required parameters from the $_POST variables and return the new content which is stored to the file.
Parameters
- $mamFile : CSMamFile
-
the current displayed CSMamFile for which the content should be saved
Tags
Return values
string —the new content as string or null, if no new content has been submitted.
getHandledTypes()
Returns an array of all handled filetypes. If the isAvailable method is not overwritten, this array is checked to proove whether the file is handled by this handler in the {@see isAvailable} method.
public
getHandledTypes() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —an array of all filetypes managed by this handler
getLevel()
The getLevel method may be overwritten in the plugins and defines the order, the plugins are called, where the highest level is called first.
public
getLevel() : int
The method can also be set for all plugins within a module by overwriting the modules getLevel method.
Tags
Return values
int —the level of the plugin where it is called
getMetaData()
Returns the CSMetaData of the current plugin.
public
getMetaData() : CSMetaData
Tags
Return values
CSMetaData —getModule()
Returns the module, if the plugin is defined within a module.
public
getModule() : CSModule
This method can be used in the plugin api and the plugin wherever access to the defining module is required. If it is used in the Api, it should be noticed that this method may return null, if the plugin is directly defined in the projects or admin.local plugins directory.
Tags
Return values
CSModule —the module object, if the plugin defined in a module or null otherwise
getOpenEditorWindowName()
Returns the name of the window, where the file editor should be opened to Beside normal names the standard properties _self (always open in main window) and _blank (always open in new window) are allowed If no name is given, the default behaviour is used (main frame in tree and new window in list)
public
getOpenEditorWindowName() : string
Tags
Return values
string —the name of the editor window.
getOpenEditorWindowParams()
Returns the parameters of editor window, if the file is opened in a new window
public
getOpenEditorWindowParams() : string
Tags
Return values
string —the parameters of the new editor window.
getPlugin()
Returns a CSPlugin for the given plugin type and plugin class name.
public
static getPlugin(string $pluginApiPath, string $className[, mixed $arguments = NULL ]) : CSPlugin|null
As standard behaviour the module subfolder is guessed from the forward URL parameter. If a plugin should point to something in a special module subfolder, this scope can be added by adding the module name in squared bracket at the end of the $pluginApiPath, e.g. 'core/api/plugins/CSRecordPlugin.php[pms]' to get all CSRecordPlugins defined for pms records.
Parameters
- $pluginApiPath : string
-
The relative path in filesystem for the requested plugin api (optional: ending with the module subfolder).
- $className : string
-
The target plugin class name, which should be loaded.
- $arguments : mixed = NULL
-
one or multiple arguments which should be passed to the isAvailable method.
Tags
Return values
CSPlugin|null —Returns the requested plugin for the given parameter.
getPluginChooser()
Returns an array all defined CSPlugins for the current plugin type
public
static getPluginChooser(string $pluginApiPath[, mixed $arguments = NULL ]) : array<string|int, mixed>
Parameters
- $pluginApiPath : string
-
the relative path in filesystem for the requested plugin api (optional: ending with the module subfolder).
- $arguments : mixed = NULL
-
one ore multiple arguments which should be passed to the isAvailable method.
Tags
Return values
array<string|int, mixed> —of CSPlugins in the form [CLASSNAME => LABEL] where the CLASSNAME may be used in the CSPlugin::getPlugin method
getPluginData()
public
getPluginData() : mixed
Tags
Return values
mixed —getPluginDefinitionFile()
Returns the path to the file, the plugin is defined.
public
getPluginDefinitionFile() : string
Tags
Return values
string —the path to the plugin
getPluginName()
public
getPluginName() : mixed
Tags
Return values
mixed —getPlugins()
Returns all defined CSPlugins for the current plugin type It should be used to get all matching plugins for a given plugin api.
public
static getPlugins(string $pluginApiPath[, mixed $arguments = NULL ]) : array<string|int, CSPlugin>
As standard behaviour the module subfolder is guessed from the forward URL parameter. If a plugin should point to something in a special module subfolder, this scope can be added by adding the module name in squared bracket at the end of the $pluginApiPath, e.g. 'core/api/plugins/CSRecordPlugin.php[pms]' to get all CSRecordPlugins defined for pms records.
Parameters
- $pluginApiPath : string
-
the relative path in filesystem for the requested plugin api (optional: ending with the module subfolder).
- $arguments : mixed = NULL
-
one ore multiple arguments which should be passed to the isAvailable method.
Tags
Return values
array<string|int, CSPlugin> —array of CSPlugin objects matching the defined plugin criteria
getPluginsInModule()
Returns all CSPlugins for the current plugin type which are defined within the given module It should be used to get all matching plugins for a given plugin api.
public
static getPluginsInModule(string $moduleName, string $pluginApiPath[, mixed $sFileNamePattern = '' ][, mixed $arguments = NULL ]) : array<string|int, mixed>
Parameters
- $moduleName : string
-
the module which should be searched for plugins
- $pluginApiPath : string
-
the relative path in filesystem for the requested plugin api.
- $sFileNamePattern : mixed = ''
- $arguments : mixed = NULL
-
one ore multiple arguments which should be passed to the isAvailable method.
Tags
Return values
array<string|int, mixed> —of CSPlugin objects matching the defined plugin criterias
isAvailable()
Checks and returns whether this FileHandler is responsible for the given file
public
isAvailable([CSMamFile $mamFile = null ]) : bool
Parameters
- $mamFile : CSMamFile = null
-
the current CSMamFile
Tags
Return values
bool —whether this handler handles the given file
prepareEditor()
Extends the default File editor with content and parameters which are required for this filetype.
public
prepareEditor(CSGuiEditorDialog $csGuiItemEditor, CSMamFile $mamFile, bool $maySave) : mixed
Parameters
- $csGuiItemEditor : CSGuiEditorDialog
-
the CSGuiEditorDialog which can be modified
- $mamFile : CSMamFile
-
the current displayed CSMamFile
- $maySave : bool
-
whether the content may be saved or not
Tags
Return values
mixed —resetLoadedPlugins()
reset the internal plugins cache for loaded plugins
public
static resetLoadedPlugins() : mixed
