@@ -77,12 +67,7 @@ EOF;
$LANG = $vars['_lang']; // an array of the currently loaded language variables
// Get module configuration parameters
- $configTextField = $vars['Text Field Name'];
- $configPasswordField = $vars['Password Field Name'];
- $configCheckboxField = $vars['Checkbox Field Name'];
- $configDropdownField = $vars['Dropdown Field Name'];
- $configRadioField = $vars['Radio Field Name'];
- $configTextareaField = $vars['Textarea Field Name'];
+ $configTextareaField = $vars['Available Accounts'];
return << 'Addon Module Sample',
- // Description displayed within the admin interface
- 'description' => 'This module provides an example WHMCS Addon Module'
- . ' which can be used as a basis for building a custom addon module.',
- // Module author name
- 'author' => 'Your name goes here',
- // Default language
- 'language' => 'english',
- // Version number
- 'version' => '1.0',
- 'fields' => [
- // a text field type allows for single line text input
- 'Text Field Name' => [
- 'FriendlyName' => 'Text Field Name',
- 'Type' => 'text',
- 'Size' => '25',
- 'Default' => 'Default value',
- 'Description' => 'Description goes here',
- ],
- // a password field type allows for masked text input
- 'Password Field Name' => [
- 'FriendlyName' => 'Password Field Name',
- 'Type' => 'password',
- 'Size' => '25',
- 'Default' => '',
- 'Description' => 'Enter secret value here',
- ],
- // the yesno field type displays a single checkbox option
- 'Checkbox Field Name' => [
- 'FriendlyName' => 'Checkbox Field Name',
- 'Type' => 'yesno',
- 'Description' => 'Tick to enable',
- ],
- // the dropdown field type renders a select menu of options
- 'Dropdown Field Name' => [
- 'FriendlyName' => 'Dropdown Field Name',
- 'Type' => 'dropdown',
- 'Options' => [
- 'option1' => 'Display Value 1',
- 'option2' => 'Second Option',
- 'option3' => 'Another Option',
- ],
- 'Default' => 'option2',
- 'Description' => 'Choose one',
- ],
- // the radio field type displays a series of radio button options
- 'Radio Field Name' => [
- 'FriendlyName' => 'Radio Field Name',
- 'Type' => 'radio',
- 'Options' => 'First Option,Second Option,Third Option',
- 'Default' => 'Third Option',
- 'Description' => 'Choose your option!',
- ],
- // the textarea field type allows for multi-line text input
- 'Textarea Field Name' => [
- 'FriendlyName' => 'Textarea Field Name',
- 'Type' => 'textarea',
- 'Rows' => '3',
- 'Cols' => '60',
- 'Default' => 'A default value goes here...',
- 'Description' => 'Freeform multi-line text input field',
- ],
- ]
- ];
-}
-
-/**
- * Activate.
- *
- * Called upon activation of the module for the first time.
- * Use this function to perform any database and schema modifications
- * required by your module.
- *
- * This function is optional.
- *
- * @see https://developers.whmcs.com/advanced/db-interaction/
- *
- * @return array Optional success/failure message
- */
-function addonmodule_activate()
-{
- // Create custom tables and schema required by your module
- try {
- Capsule::schema()
- ->create(
- 'mod_addonexample',
- function ($table) {
- /** @var \Illuminate\Database\Schema\Blueprint $table */
- $table->increments('id');
- $table->text('demo');
- }
- );
-
- return [
- // Supported values here include: success, error or info
- 'status' => 'success',
- 'description' => 'This is a demo module only. '
- . 'In a real module you might report a success or instruct a '
- . 'user how to get started with it here.',
- ];
- } catch (\Exception $e) {
- return [
- // Supported values here include: success, error or info
- 'status' => "error",
- 'description' => 'Unable to create mod_addonexample: ' . $e->getMessage(),
- ];
- }
-}
-
-/**
- * Deactivate.
- *
- * Called upon deactivation of the module.
- * Use this function to undo any database and schema modifications
- * performed by your module.
- *
- * This function is optional.
- *
- * @see https://developers.whmcs.com/advanced/db-interaction/
- *
- * @return array Optional success/failure message
- */
-function addonmodule_deactivate()
-{
- // Undo any database and schema modifications made by your module here
- try {
- Capsule::schema()
- ->dropIfExists('mod_addonexample');
-
- return [
- // Supported values here include: success, error or info
- 'status' => 'success',
- 'description' => 'This is a demo module only. '
- . 'In a real module you might report a success here.',
- ];
- } catch (\Exception $e) {
- return [
- // Supported values here include: success, error or info
- "status" => "error",
- "description" => "Unable to drop mod_addonexample: {$e->getMessage()}",
- ];
- }
-}
-
-/**
- * Upgrade.
- *
- * Called the first time the module is accessed following an update.
- * Use this function to perform any required database and schema modifications.
- *
- * This function is optional.
- *
- * @see https://laravel.com/docs/5.2/migrations
- *
- * @return void
- */
-function addonmodule_upgrade($vars)
-{
- $currentlyInstalledVersion = $vars['version'];
-
- /// Perform SQL schema changes required by the upgrade to version 1.1 of your module
- if ($currentlyInstalledVersion < 1.1) {
- $schema = Capsule::schema();
- // Alter the table and add a new text column called "demo2"
- $schema->table('mod_addonexample', function($table) {
- $table->text('demo2');
- });
- }
-
- /// Perform SQL schema changes required by the upgrade to version 1.2 of your module
- if ($currentlyInstalledVersion < 1.2) {
- $schema = Capsule::schema();
- // Alter the table and add a new text column called "demo3"
- $schema->table('mod_addonexample', function($table) {
- $table->text('demo3');
- });
- }
-}
-
-/**
- * Admin Area Output.
- *
- * Called when the addon module is accessed via the admin area.
- * Should return HTML output for display to the admin user.
- *
- * This function is optional.
- *
- * @see AddonModule\Admin\Controller::index()
- *
- * @return string
- */
-function addonmodule_output($vars)
-{
- // Get common module parameters
- $modulelink = $vars['modulelink']; // eg. addonmodules.php?module=addonmodule
- $version = $vars['version']; // eg. 1.0
- $_lang = $vars['_lang']; // an array of the currently loaded language variables
-
- // Get module configuration parameters
- $configTextField = $vars['Text Field Name'];
- $configPasswordField = $vars['Password Field Name'];
- $configCheckboxField = $vars['Checkbox Field Name'];
- $configDropdownField = $vars['Dropdown Field Name'];
- $configRadioField = $vars['Radio Field Name'];
- $configTextareaField = $vars['Textarea Field Name'];
-
- // Dispatch and handle request here. What follows is a demonstration of one
- // possible way of handling this using a very basic dispatcher implementation.
-
- $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
-
- $dispatcher = new AdminDispatcher();
- $response = $dispatcher->dispatch($action, $vars);
- echo $response;
-}
-
-/**
- * Admin Area Sidebar Output.
- *
- * Used to render output in the admin area sidebar.
- * This function is optional.
- *
- * @param array $vars
- *
- * @return string
- */
-function addonmodule_sidebar($vars)
-{
- // Get common module parameters
- $modulelink = $vars['modulelink'];
- $version = $vars['version'];
- $_lang = $vars['_lang'];
-
- // Get module configuration parameters
- $configTextField = $vars['Text Field Name'];
- $configPasswordField = $vars['Password Field Name'];
- $configCheckboxField = $vars['Checkbox Field Name'];
- $configDropdownField = $vars['Dropdown Field Name'];
- $configRadioField = $vars['Radio Field Name'];
- $configTextareaField = $vars['Textarea Field Name'];
-
- $sidebar = '
Sidebar output HTML goes here
';
- return $sidebar;
-}
-
-/**
- * Client Area Output.
- *
- * Called when the addon module is accessed via the client area.
- * Should return an array of output parameters.
- *
- * This function is optional.
- *
- * @see AddonModule\Client\Controller::index()
- *
- * @return array
- */
-function addonmodule_clientarea($vars)
-{
- // Get common module parameters
- $modulelink = $vars['modulelink']; // eg. index.php?m=addonmodule
- $version = $vars['version']; // eg. 1.0
- $_lang = $vars['_lang']; // an array of the currently loaded language variables
-
- // Get module configuration parameters
- $configTextField = $vars['Text Field Name'];
- $configPasswordField = $vars['Password Field Name'];
- $configCheckboxField = $vars['Checkbox Field Name'];
- $configDropdownField = $vars['Dropdown Field Name'];
- $configRadioField = $vars['Radio Field Name'];
- $configTextareaField = $vars['Textarea Field Name'];
-
- /**
- * Dispatch and handle request here. What follows is a demonstration of one
- * possible way of handling this using a very basic dispatcher implementation.
- */
-
- $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
-
- $dispatcher = new ClientDispatcher();
- return $dispatcher->dispatch($action, $vars);
-}
diff --git a/modules/addons/addonmodule/hooks.php b/modules/addons/addonmodule/hooks.php
deleted file mode 100644
index d6924e8..0000000
--- a/modules/addons/addonmodule/hooks.php
+++ /dev/null
@@ -1,38 +0,0 @@
-$action($parameters);
- }
- }
-}
diff --git a/modules/addons/addonmodule/lib/Client/Controller.php b/modules/addons/addonmodule/lib/Client/Controller.php
deleted file mode 100644
index 0cddf88..0000000
--- a/modules/addons/addonmodule/lib/Client/Controller.php
+++ /dev/null
@@ -1,86 +0,0 @@
- 'Sample Addon Module',
- 'breadcrumb' => array(
- 'index.php?m=addonmodule' => 'Sample Addon Module',
- ),
- 'templatefile' => 'publicpage',
- 'requirelogin' => false, // Set true to restrict access to authenticated client users
- 'forcessl' => false, // Deprecated as of Version 7.0. Requests will always use SSL if available.
- 'vars' => array(
- 'modulelink' => $modulelink,
- 'configTextField' => $configTextField,
- 'customVariable' => 'your own content goes here',
- ),
- );
- }
-
- /**
- * Secret action.
- *
- * @param array $vars Module configuration parameters
- *
- * @return array
- */
- public function secret($vars)
- {
- // Get common module parameters
- $modulelink = $vars['modulelink']; // eg. addonmodules.php?module=addonmodule
- $version = $vars['version']; // eg. 1.0
- $LANG = $vars['_lang']; // an array of the currently loaded language variables
-
- // Get module configuration parameters
- $configTextField = $vars['Text Field Name'];
- $configPasswordField = $vars['Password Field Name'];
- $configCheckboxField = $vars['Checkbox Field Name'];
- $configDropdownField = $vars['Dropdown Field Name'];
- $configRadioField = $vars['Radio Field Name'];
- $configTextareaField = $vars['Textarea Field Name'];
-
- return array(
- 'pagetitle' => 'Sample Addon Module',
- 'breadcrumb' => array(
- 'index.php?m=addonmodule' => 'Sample Addon Module',
- 'index.php?m=addonmodule&action=secret' => 'Secret Page',
- ),
- 'templatefile' => 'secretpage',
- 'requirelogin' => true, // Set true to restrict access to authenticated client users
- 'forcessl' => false, // Deprecated as of Version 7.0. Requests will always use SSL if available.
- 'vars' => array(
- 'modulelink' => $modulelink,
- 'configTextField' => $configTextField,
- 'customVariable' => 'your own content goes here',
- ),
- );
- }
-}
diff --git a/modules/addons/addonmodule/templates/js/sample.js b/modules/addons/addonmodule/templates/js/sample.js
deleted file mode 100644
index e69de29..0000000
diff --git a/modules/addons/addonmodule/templates/publicpage.tpl b/modules/addons/addonmodule/templates/publicpage.tpl
deleted file mode 100644
index 3ff831e..0000000
--- a/modules/addons/addonmodule/templates/publicpage.tpl
+++ /dev/null
@@ -1,43 +0,0 @@
-
Public Client Area Sample Page
-
-
This is an example of a public client area page that does not require a login to view.
-
-
All the template variables you define along with some additional standard template variables are available within this template. You can use the Smarty {ldelim}debug{rdelim} function call to see a full list.
This is an example of a client area page that requires authentication to access.
-
-
You will have either been prompted to login or already have an active login state to access this page.
-
-
All the template variables you define along with some additional standard template variables are available within this template. You can use the Smarty {ldelim}debug{rdelim} function call to see a full list.