From 86f671c87cd99172230e7bb71a988414a4fb9ce8 Mon Sep 17 00:00:00 2001 From: Llewellyn van der Merwe Date: Fri, 13 Mar 2020 04:45:08 +0200 Subject: [PATCH] Added module area target client switch. Added the custom code placeholder search to modules. Improved the JCB backup feature to only move the zip package to the backup location. --- README.md | 12 +- admin/README.txt | 12 +- admin/helpers/compiler/a_Get.php | 86 +++++- .../en-GB/en-GB.com_componentbuilder.ini | 5 + admin/layouts/joomla_module/html_above.php | 3 +- admin/models/forms/joomla_module.xml | 244 ++++++++++-------- admin/models/joomla_components.php | 21 +- admin/models/joomla_module.php | 29 ++- admin/models/joomla_modules.php | 52 +++- admin/sql/install.mysql.utf8.sql | 13 +- .../joomla_modules/tmpl/default_body.php | 3 + .../joomla_modules/tmpl/default_foot.php | 2 +- .../joomla_modules/tmpl/default_head.php | 3 + admin/views/joomla_modules/view.html.php | 66 +++++ componentbuilder.xml | 6 +- componentbuilder_update_server.xml | 17 ++ script.php | 10 +- 17 files changed, 403 insertions(+), 181 deletions(-) diff --git a/README.md b/README.md index 17a1baab6..40f307e44 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ The Component Builder for [Joomla](https://extensions.joomla.org/extension/compo Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will safe you lots of time and money. A real must have! -You can install it quite easily and with no limitations. On [github](https://github.com/vdm-io/Joomla-Component-Builder/releases) is the latest release (2.10.11) with **ALL** its features and **ALL** concepts totally open-source and free! +You can install it quite easily and with no limitations. On [github](https://github.com/vdm-io/Joomla-Component-Builder/releases) is the latest release (2.10.12) with **ALL** its features and **ALL** concepts totally open-source and free! > Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45) @@ -144,13 +144,13 @@ TODO + *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) + *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder) + *First Build*: 30th April, 2015 -+ *Last Build*: 27th February, 2020 -+ *Version*: 2.10.11 ++ *Last Build*: 13th March, 2020 ++ *Version*: 2.10.12 + *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved. + *License*: GNU General Public License version 2 or later; see LICENSE.txt -+ *Line count*: **278669** -+ *Field count*: **1505** -+ *File count*: **1756** ++ *Line count*: **278824** ++ *Field count*: **1506** ++ *File count*: **1757** + *Folder count*: **278** > This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](http://joomlacomponentbuilder.com). diff --git a/admin/README.txt b/admin/README.txt index 17a1baab6..40f307e44 100644 --- a/admin/README.txt +++ b/admin/README.txt @@ -12,7 +12,7 @@ The Component Builder for [Joomla](https://extensions.joomla.org/extension/compo Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will safe you lots of time and money. A real must have! -You can install it quite easily and with no limitations. On [github](https://github.com/vdm-io/Joomla-Component-Builder/releases) is the latest release (2.10.11) with **ALL** its features and **ALL** concepts totally open-source and free! +You can install it quite easily and with no limitations. On [github](https://github.com/vdm-io/Joomla-Component-Builder/releases) is the latest release (2.10.12) with **ALL** its features and **ALL** concepts totally open-source and free! > Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45) @@ -144,13 +144,13 @@ TODO + *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) + *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder) + *First Build*: 30th April, 2015 -+ *Last Build*: 27th February, 2020 -+ *Version*: 2.10.11 ++ *Last Build*: 13th March, 2020 ++ *Version*: 2.10.12 + *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved. + *License*: GNU General Public License version 2 or later; see LICENSE.txt -+ *Line count*: **278669** -+ *Field count*: **1505** -+ *File count*: **1756** ++ *Line count*: **278824** ++ *Field count*: **1506** ++ *File count*: **1757** + *Folder count*: **278** > This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](http://joomlacomponentbuilder.com). diff --git a/admin/helpers/compiler/a_Get.php b/admin/helpers/compiler/a_Get.php index aeaaddb44..14a6bacac 100644 --- a/admin/helpers/compiler/a_Get.php +++ b/admin/helpers/compiler/a_Get.php @@ -6278,6 +6278,64 @@ class Get return false; } + /** + * get the Joomla module path + * + * @return array of module path and target site area on success + * + */ + protected function getModulePath($id) + { + if (is_numeric($id) && $id > 0) + { + // Create a new query object. + $query = $this->db->getQuery(true); + + $query->select('a.*'); + $query->select( + $this->db->quoteName( + array( + 'a.name', + 'a.target' + ), array( + 'name', + 'target' + ) + ) + ); + // from these tables + $query->from('#__componentbuilder_joomla_module AS a'); + $query->where($this->db->quoteName('a.id') . ' = ' . (int) $id); + $this->db->setQuery($query); + $this->db->execute(); + if ($this->db->getNumRows()) + { + // get the module data + $module = $this->db->loadObject(); + // update the name if it has dynamic values + $module->name = $this->setPlaceholders($this->setDynamicValues($module->name), $this->globalPlaceholders); + // set safe class function name + $module->code_name = ComponentbuilderHelper::safeClassFunctionName($module->name); + // set module folder name + $module->folder_name = 'mod_' . strtolower($module->code_name); + // set the lang key + $this->langKeys[strtoupper($module->folder_name)] = $module->id . '_M0dU|3'; + // return the path + if ($module->target == 2) + { + // administrator client area + return JPATH_ADMINISTRATOR . '/modules/' . $module->folder_name; + } + else + { + // default is the site client area + return JPATH_ROOT . '/modules/' . $module->folder_name; + } + } + } + return false; + } + /** * get the Joomla Modules IDs * @@ -6379,11 +6437,22 @@ class Get { $module->module_version = '1.0.0'; } + // set target client + if ($module->target == 2) + { + $module->target_client = 'admin'; + } + else + { + // default is site area + $module->target_client = 'site'; + } + unset($module->target); // set GUI mapper $guiMapper = array( 'table' => 'joomla_module', 'id' => (int) $id, 'type' => 'php'); // update the name if it has dynamic values $module->name = $this->setPlaceholders($this->setDynamicValues($module->name), $this->placeholders); - // update the name if it has dynamic values + // set safe class function name $module->code_name = ComponentbuilderHelper::safeClassFunctionName($module->name); // set official name $module->official_name = ComponentbuilderHelper::safeString($module->name, 'W'); @@ -6832,7 +6901,7 @@ class Get public function getModuleXMLTemplate(&$module) { $xml = ''; - $xml .= PHP_EOL . ''; + $xml .= PHP_EOL . ''; $xml .= PHP_EOL . $this->_t(1) . '' . $module->lang_prefix . ''; $xml .= PHP_EOL . $this->_t(1) . '' . $this->hhh . 'BUILDDATE' . $this->hhh . ''; $xml .= PHP_EOL . $this->_t(1) . '' . $this->hhh . 'AUTHOR' . $this->hhh . ''; @@ -6912,7 +6981,6 @@ class Get $query->from('#__componentbuilder_joomla_plugin AS a'); $query->join('LEFT', $this->db->quoteName('#__componentbuilder_joomla_plugin_group', 'g') . ' ON (' . $this->db->quoteName('a.joomla_plugin_group') . ' = ' . $this->db->quoteName('g.id') . ')'); $query->where($this->db->quoteName('a.id') . ' = ' . (int) $id); - $query->where($this->db->quoteName('a.published') . ' >= 1'); $this->db->setQuery($query); $this->db->execute(); if ($this->db->getNumRows()) @@ -8390,12 +8458,12 @@ class Get { foreach ($module_ids as $module_id) { - // get the module group and folder name -// if (($path = $this->getModulePath($module_id)) !== false) -// { -// // set the path -// $localPaths['module_' . str_replace('/', '_', $path)] = JPATH_ROOT . '/modules/' . $path; -// } + // get the module folder path + if (($path = $this->getModulePath($module_id)) !== false) + { + // set the path + $localPaths['module_' . str_replace('/', '_', $path)] = $path; + } } } // Painfull but we need to folder paths for the linked plugins diff --git a/admin/language/en-GB/en-GB.com_componentbuilder.ini b/admin/language/en-GB/en-GB.com_componentbuilder.ini index ffa7124a2..6f813bd96 100644 --- a/admin/language/en-GB/en-GB.com_componentbuilder.ini +++ b/admin/language/en-GB/en-GB.com_componentbuilder.ini @@ -6167,6 +6167,7 @@ COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_SQL_UNINSTALL="Add Sql Uninstall" COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_SQL_UNINSTALL_LABEL="Add MySQL - (Uninstall)" COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_UPDATE_SERVER="Add Update Server" COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_UPDATE_SERVER_LABEL="Add Update Server" +COM_COMPONENTBUILDER_JOOMLA_MODULE_ADMIN="Admin" COM_COMPONENTBUILDER_JOOMLA_MODULE_CLASS="class" COM_COMPONENTBUILDER_JOOMLA_MODULE_CLASS_HELPER_CODE="Class Helper Code" COM_COMPONENTBUILDER_JOOMLA_MODULE_CLASS_HELPER_CODE_DESCRIPTION="Add the class properties & methods here." @@ -6422,6 +6423,7 @@ COM_COMPONENTBUILDER_JOOMLA_MODULE_SALES_SERVER_LABEL="Sales Server" COM_COMPONENTBUILDER_JOOMLA_MODULE_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Joomla Module to customise the alias." COM_COMPONENTBUILDER_JOOMLA_MODULE_SCRIPT_FILE="Script File" COM_COMPONENTBUILDER_JOOMLA_MODULE_SERVER="Server" +COM_COMPONENTBUILDER_JOOMLA_MODULE_SITE="Site" COM_COMPONENTBUILDER_JOOMLA_MODULE_SNIPPET="Snippet" COM_COMPONENTBUILDER_JOOMLA_MODULE_SNIPPET_DESCRIPTION="Select a snippet you would like to use or review." COM_COMPONENTBUILDER_JOOMLA_MODULE_SNIPPET_LABEL="Select a Snippet" @@ -6439,6 +6441,9 @@ COM_COMPONENTBUILDER_JOOMLA_MODULE_SYSTEM_NAME_DESCRIPTION="Used only in the sys COM_COMPONENTBUILDER_JOOMLA_MODULE_SYSTEM_NAME_HINT="The System Name Here" COM_COMPONENTBUILDER_JOOMLA_MODULE_SYSTEM_NAME_LABEL="System Name" COM_COMPONENTBUILDER_JOOMLA_MODULE_SYSTEM_NAME_MESSAGE="Error! Please add some text here." +COM_COMPONENTBUILDER_JOOMLA_MODULE_TARGET="Target" +COM_COMPONENTBUILDER_JOOMLA_MODULE_TARGET_DESCRIPTION="Set the area this module is targeting." +COM_COMPONENTBUILDER_JOOMLA_MODULE_TARGET_LABEL="Target Area" COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATES="Joomla Module Updates" COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATES_CREATED_BY_DESC="The user that created this Joomla Module Updates." COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATES_CREATED_BY_LABEL="Created By" diff --git a/admin/layouts/joomla_module/html_above.php b/admin/layouts/joomla_module/html_above.php index b4cee2ab9..d0d101f99 100644 --- a/admin/layouts/joomla_module/html_above.php +++ b/admin/layouts/joomla_module/html_above.php @@ -27,7 +27,8 @@ $fields_tab_layout = 'fields_' . $layout_path_array[1]; // get the fields $fields = $displayData->get($fields_tab_layout) ?: array( 'system_name', - 'module_version' + 'module_version', + 'target' ); $hiddenFields = $displayData->get('hidden_fields') ?: array(); diff --git a/admin/models/forms/joomla_module.xml b/admin/models/forms/joomla_module.xml index b290b7193..b1b2279f2 100644 --- a/admin/models/forms/joomla_module.xml +++ b/admin/models/forms/joomla_module.xml @@ -99,6 +99,22 @@ message="COM_COMPONENTBUILDER_JOOMLA_MODULE_SYSTEM_NAME_MESSAGE" hint="COM_COMPONENTBUILDER_JOOMLA_MODULE_SYSTEM_NAME_HINT" /> + + + + + + + + + + + + + + + + + + COM_COMPONENTBUILDER_JOOMLA_MODULE_NO - + + + + + + + + + + + + + + + + + + + + + + + + + + + COM_COMPONENTBUILDER_JOOMLA_MODULE_OTHER - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - COM_COMPONENTBUILDER_JOOMLA_MODULE_NO - - + + COM_COMPONENTBUILDER_JOOMLA_MODULE_NO - + diff --git a/admin/models/joomla_components.php b/admin/models/joomla_components.php index 9c4a53cc2..aa3c20858 100644 --- a/admin/models/joomla_components.php +++ b/admin/models/joomla_components.php @@ -131,16 +131,14 @@ class ComponentbuilderModelJoomla_components extends JModelList { // set custom folder path $this->customPath = $this->params->get('custom_folder_path', JPATH_COMPONENT_ADMINISTRATOR.'/custom'); + // set the backup paths + $comConfig = JFactory::getConfig(); + $this->backupPath = $comConfig->get('tmp_path'); // check what type of export or backup this is if ('backup' === $this->activeType || 'manualBackup' === $this->activeType) { - // set the paths - if (!$this->backupPath = $this->params->get('cronjob_backup_folder_path', null)) - { - // set the paths - $comConfig = JFactory::getConfig(); - $this->backupPath = $comConfig->get('tmp_path'); - } + // set the zip path + $this->zipPath = $this->params->get('cronjob_backup_folder_path', $this->backupPath); // check what backup type we are working with here $this->backupType = $this->params->get('cronjob_backup_type', 1); // 1 = local folder; 2 = remote server (default is local) // if remote server get the ID @@ -162,9 +160,8 @@ class ComponentbuilderModelJoomla_components extends JModelList } else { - // set the paths - $comConfig = JFactory::getConfig(); - $this->backupPath = $comConfig->get('tmp_path'); + // set the zip path + $this->zipPath = $this->backupPath; // set the package name if (count($items) == 1) { @@ -177,7 +174,7 @@ class ComponentbuilderModelJoomla_components extends JModelList } // set the package path $this->packagePath = rtrim($this->backupPath, '/') . '/' . $this->packageName; - $this->zipPath = $this->packagePath .'.zip'; + $this->zipPath = rtrim($this->zipPath, '/') . '/' . $this->packageName .'.zip'; if (JFolder::exists($this->packagePath)) { // remove if old folder is found @@ -187,7 +184,7 @@ class ComponentbuilderModelJoomla_components extends JModelList JFolder::create($this->packagePath); // Get the basic encryption. $basickey = ComponentbuilderHelper::getCryptKey('basic'); - // Get the encription object. + // Get the encryption object. if ($basickey) { $basic = new FOFEncryptAes($basickey, 128); diff --git a/admin/models/joomla_module.php b/admin/models/joomla_module.php index 8732bc762..a513031ff 100644 --- a/admin/models/joomla_module.php +++ b/admin/models/joomla_module.php @@ -45,7 +45,8 @@ class ComponentbuilderModelJoomla_module extends JModelAdmin ), 'above' => array( 'system_name', - 'module_version' + 'module_version', + 'target' ) ), 'script_file' => array( @@ -66,19 +67,6 @@ class ComponentbuilderModelJoomla_module extends JModelAdmin 'php_method_uninstall' ) ), - 'dynamic_integration' => array( - 'left' => array( - 'add_update_server', - 'update_server_url', - 'update_server_target', - 'note_update_server_note_ftp', - 'note_update_server_note_zip', - 'note_update_server_note_other', - 'update_server', - 'add_sales_server', - 'sales_server' - ) - ), 'readme' => array( 'left' => array( 'addreadme', @@ -93,6 +81,19 @@ class ComponentbuilderModelJoomla_module extends JModelAdmin 'sql_uninstall' ) ), + 'dynamic_integration' => array( + 'left' => array( + 'add_update_server', + 'update_server_url', + 'update_server_target', + 'note_update_server_note_ftp', + 'note_update_server_note_zip', + 'note_update_server_note_other', + 'update_server', + 'add_sales_server', + 'sales_server' + ) + ), 'code' => array( 'left' => array( 'custom_get' diff --git a/admin/models/joomla_modules.php b/admin/models/joomla_modules.php index 606bb21ad..c2c550c10 100644 --- a/admin/models/joomla_modules.php +++ b/admin/models/joomla_modules.php @@ -28,7 +28,8 @@ class ComponentbuilderModelJoomla_modules extends JModelList 'a.created_by','created_by', 'a.modified_by','modified_by', 'a.system_name','system_name', - 'a.description','description' + 'a.description','description', + 'a.target','target' ); } @@ -53,7 +54,10 @@ class ComponentbuilderModelJoomla_modules extends JModelList $this->setState('filter.system_name', $system_name); $description = $this->getUserStateFromRequest($this->context . '.filter.description', 'filter_description'); - $this->setState('filter.description', $description); + $this->setState('filter.description', $description); + + $target = $this->getUserStateFromRequest($this->context . '.filter.target', 'filter_target'); + $this->setState('filter.target', $target); $sorting = $this->getUserStateFromRequest($this->context . '.filter.sorting', 'filter_sorting', 0, 'int'); $this->setState('filter.sorting', $sorting); @@ -109,10 +113,44 @@ class ComponentbuilderModelJoomla_modules extends JModelList } } - } + } + + // set selection value to a translatable value + if (ComponentbuilderHelper::checkArray($items)) + { + foreach ($items as $nr => &$item) + { + // convert target + $item->target = $this->selectionTranslation($item->target, 'target'); + } + } + // return items return $items; + } + + /** + * Method to convert selection values to translatable string. + * + * @return translatable string + */ + public function selectionTranslation($value,$name) + { + // Array of target language strings + if ($name === 'target') + { + $targetArray = array( + 1 => 'COM_COMPONENTBUILDER_JOOMLA_MODULE_SITE', + 2 => 'COM_COMPONENTBUILDER_JOOMLA_MODULE_ADMIN' + ); + // Now check if value is found in this array + if (isset($targetArray[$value]) && ComponentbuilderHelper::checkString($targetArray[$value])) + { + return $targetArray[$value]; + } + } + return $value; } /** @@ -174,6 +212,11 @@ class ComponentbuilderModelJoomla_modules extends JModelList } } + // Filter by Target. + if ($target = $this->getState('filter.target')) + { + $query->where('a.target = ' . $db->quote($db->escape($target))); + } // Add the list ordering clause. $orderCol = $this->state->get('list.ordering', 'a.id'); @@ -202,7 +245,8 @@ class ComponentbuilderModelJoomla_modules extends JModelList $id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.modified_by'); $id .= ':' . $this->getState('filter.system_name'); - $id .= ':' . $this->getState('filter.description'); + $id .= ':' . $this->getState('filter.description'); + $id .= ':' . $this->getState('filter.target'); return parent::getStoreId($id); } diff --git a/admin/sql/install.mysql.utf8.sql b/admin/sql/install.mysql.utf8.sql index de7fa98d0..fe7db6418 100644 --- a/admin/sql/install.mysql.utf8.sql +++ b/admin/sql/install.mysql.utf8.sql @@ -183,6 +183,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_module` ( `sql` MEDIUMTEXT NOT NULL, `sql_uninstall` MEDIUMTEXT NOT NULL, `system_name` VARCHAR(255) NOT NULL DEFAULT '', + `target` TINYINT(1) NOT NULL DEFAULT 0, `update_server` INT(11) NOT NULL DEFAULT 0, `update_server_target` TINYINT(1) NOT NULL DEFAULT 0, `update_server_url` VARCHAR(255) NOT NULL DEFAULT '', @@ -200,13 +201,13 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_module` ( `ordering` INT(11) NOT NULL DEFAULT 0, PRIMARY KEY (`id`), KEY `idx_system_name` (`system_name`), + KEY `idx_add_php_method_uninstall` (`add_php_method_uninstall`), + KEY `idx_add_php_postflight_update` (`add_php_postflight_update`), KEY `idx_add_php_postflight_install` (`add_php_postflight_install`), KEY `idx_add_php_preflight_uninstall` (`add_php_preflight_uninstall`), - KEY `idx_update_server_target` (`update_server_target`), KEY `idx_addreadme` (`addreadme`), KEY `idx_add_sql` (`add_sql`), - KEY `idx_add_php_postflight_update` (`add_php_postflight_update`), - KEY `idx_add_php_method_uninstall` (`add_php_method_uninstall`), + KEY `idx_update_server_target` (`update_server_target`), KEY `idx_add_sql_uninstall` (`add_sql_uninstall`), KEY `idx_add_update_server` (`add_update_server`), KEY `idx_add_php_script_construct` (`add_php_script_construct`), @@ -2101,8 +2102,8 @@ INSERT INTO `#__componentbuilder_validation_rule` (`id`, `name`, `php`, `short_d (1, 'inspect', 'CS8qKg0KCSAqIE1ldGhvZCB0byB0ZXN0IHRoZSB2YWx1ZS4NCgkgKg0KCSAqIEBwYXJhbSAgIFxTaW1wbGVYTUxFbGVtZW50ICAkZWxlbWVudCAgVGhlIFNpbXBsZVhNTEVsZW1lbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgYDxmaWVsZD5gIHRhZyBmb3IgdGhlIGZvcm0gZmllbGQgb2JqZWN0Lg0KCSAqIEBwYXJhbSAgIG1peGVkICAgICAgICAgICAgICAkdmFsdWUgICAgVGhlIGZvcm0gZmllbGQgdmFsdWUgdG8gdmFsaWRhdGUuDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICAgICAgICRncm91cCAgICBUaGUgZmllbGQgbmFtZSBncm91cCBjb250cm9sIHZhbHVlLiBUaGlzIGFjdHMgYXMgYW4gYXJyYXkgY29udGFpbmVyIGZvciB0aGUgZmllbGQuDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3IgZXhhbXBsZSBpZiB0aGUgZmllbGQgaGFzIG5hbWU9ImZvbyIgYW5kIHRoZSBncm91cCB2YWx1ZSBpcyBzZXQgdG8gImJhciIgdGhlbiB0aGUNCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGwgZmllbGQgbmFtZSB3b3VsZCBlbmQgdXAgYmVpbmcgImJhcltmb29dIi4NCgkgKiBAcGFyYW0gICBSZWdpc3RyeSAgICAgICAgICAgJGlucHV0ICAgIEFuIG9wdGlvbmFsIFJlZ2lzdHJ5IG9iamVjdCB3aXRoIHRoZSBlbnRpcmUgZGF0YSBzZXQgdG8gdmFsaWRhdGUgYWdhaW5zdCB0aGUgZW50aXJlIGZvcm0uDQoJICogQHBhcmFtICAgRm9ybSAgICAgICAgICAgICAgICRmb3JtICAgICBUaGUgZm9ybSBvYmplY3QgZm9yIHdoaWNoIHRoZSBmaWVsZCBpcyBiZWluZyB0ZXN0ZWQuDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuICBUcnVlIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlLg0KCSAqDQoJICogQHNpbmNlICAgMTEuMQ0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0KFxTaW1wbGVYTUxFbGVtZW50ICRlbGVtZW50LCAkdmFsdWUsICRncm91cCA9IG51bGwsIFJlZ2lzdHJ5ICRpbnB1dCA9IG51bGwsIEZvcm0gJGZvcm0gPSBudWxsKQ0KCXsNCgkJLy8gbG9vayBpbnRvIHRoZXNlIHZhbHVlcyBvbmUgYXQgYSB0aW1lDQoJCWVjaG8gJ2VsZW1lbnQ8YnIgLz4nOw0KCQl2YXJfZHVtcCgkZWxlbWVudCk7DQoJCWVjaG8gJ3ZhbHVlPGJyIC8+JzsNCgkJdmFyX2R1bXAoJHZhbHVlKTsNCgkJZWNobyAnZ3JvdXA8YnIgLz4nOw0KCQl2YXJfZHVtcCgkZ3JvdXApOw0KCQllY2hvICdpbnB1dDxiciAvPic7DQoJCXZhcl9kdW1wKCRpbnB1dCk7DQoJCWVjaG8gJ2Zvcm08YnIgLz4nOw0KCQl2YXJfZHVtcCgkZm9ybSk7DQoJCWpleGl0KCk7DQoJfQ==', 'simple function to inspect the test values', 1, '2018-03-30 09:22:15'), (2, 'code', 'CS8qKg0KCSAqIE1ldGhvZCB0byB0ZXN0IHRoZSB2YWx1ZS4NCgkgKg0KCSAqIEBwYXJhbSAgIFxTaW1wbGVYTUxFbGVtZW50ICAkZWxlbWVudCAgVGhlIFNpbXBsZVhNTEVsZW1lbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgYDxmaWVsZD5gIHRhZyBmb3IgdGhlIGZvcm0gZmllbGQgb2JqZWN0Lg0KCSAqIEBwYXJhbSAgIG1peGVkICAgICAgICAgICAgICAkdmFsdWUgICAgVGhlIGZvcm0gZmllbGQgdmFsdWUgdG8gdmFsaWRhdGUuDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICAgICAgICRncm91cCAgICBUaGUgZmllbGQgbmFtZSBncm91cCBjb250cm9sIHZhbHVlLiBUaGlzIGFjdHMgYXMgYW4gYXJyYXkgY29udGFpbmVyIGZvciB0aGUgZmllbGQuDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3IgZXhhbXBsZSBpZiB0aGUgZmllbGQgaGFzIG5hbWU9ImZvbyIgYW5kIHRoZSBncm91cCB2YWx1ZSBpcyBzZXQgdG8gImJhciIgdGhlbiB0aGUNCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGwgZmllbGQgbmFtZSB3b3VsZCBlbmQgdXAgYmVpbmcgImJhcltmb29dIi4NCgkgKiBAcGFyYW0gICBSZWdpc3RyeSAgICAgICAgICAgJGlucHV0ICAgIEFuIG9wdGlvbmFsIFJlZ2lzdHJ5IG9iamVjdCB3aXRoIHRoZSBlbnRpcmUgZGF0YSBzZXQgdG8gdmFsaWRhdGUgYWdhaW5zdCB0aGUgZW50aXJlIGZvcm0uDQoJICogQHBhcmFtICAgRm9ybSAgICAgICAgICAgICAgICRmb3JtICAgICBUaGUgZm9ybSBvYmplY3QgZm9yIHdoaWNoIHRoZSBmaWVsZCBpcyBiZWluZyB0ZXN0ZWQuDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuICBUcnVlIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlLg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0KFxTaW1wbGVYTUxFbGVtZW50ICRlbGVtZW50LCAkdmFsdWUsICRncm91cCA9IG51bGwsIFJlZ2lzdHJ5ICRpbnB1dCA9IG51bGwsIEZvcm0gJGZvcm0gPSBudWxsKQ0KCXsNCgkJLy8gVGhpcyByZW1vdmVzIGFsbCB2YWxpZGF0aW9uIChpcyBkYW5nZXJvdXMpIGJ1dCBuZWVkZWQgdG8gc3VibWl0IGNvZGUgdmlhIEpDQg0KCQlyZXR1cm4gdHJ1ZTsNCg0KCQkvKioNCgkJICogTXkgaWRlYSBpcyB0byBhZGQgc29tZSBraW5kIG9mIHZhbGlkYXRpb24gdG8gaW1wcm92ZSBKQ0IgY29kZSAocGVyL2xhbmd1YWdlKQ0KCQkgKg0KCQkgKiBTbyBhdCB0aGlzIHRpbWUgdGhpcyBjb2RlIHZhbGlkYXRpb24gaXMgdXNlZCBmb3IgSmF2YVNjcmlwdCxDU1MsSFRNTCBhbmQgUEhQLg0KCQkgKiBXZSBjYW4gc2VlIHdoYXQgbGFuZ3VhZ2UgaXMgYmVpbmcgd29ya2VkIG9uIHdpdGggdGhlIHN5bnRheCBwcm9wZXJ0eSBpbiB0aGUgJGVsZW1lbnQuIChpbiBKQ0IpDQoJCSAqIFdoYXQgY29tcGxpY2F0ZXMgdGhpbmdzIGlzIHRoZSBwbGFjZWhvbGRlcnMsIG9mIGJvdGggY3VzdG9tIGNvZGUsIGNvbXBvbmVudCwgYW5kIHZpZXcgbmFtZXMuDQoJCSAqIElkZWFsbHkgd2UgY291bGQgc3RyaXAgdGhlbSBhbmQgdGhlbiB2YWxpZGF0ZSB0aGUgY29kZSB0byBiZWluZyBzeW50YWN0aWNhbGx5IGNvcnJlY3QuDQoJCSAqIEJ1dCBzaW5jZSBzb21lIG9mIHRoZSBwbGFjZWhvbGRlcnMgZm9ybSBwYXJ0IG9mIHRoZSBjbGFzcy9mdW5jdGlvbiBuYW1lcyBhbmQgdGhlIG1vcmUsIGl0IHNlZW1zIGxpa2Ugd2UgYXJlIHByZXNzZWQgZm9yIGEgbXVjaCBtb3JlIGFkdmFuY2Ugc29sdXRpb24uDQoJCSAqIElmIHlvdSBoYXZlIGFueSBpZGVhcyB0byBob3cgd2UgY2FuIGdvIGFib3V0IHRvIGRvIHRoaXMsIHRoZW4gcGxlYXNlIG9wZW4gYW4gaXNzdWUgb24gZ2l0aHViIGFuZCBsZXRzIGJlZ2luLiAodGhpcyBpcyBhIG5pY2UgdG8gaGF2ZSwgc28gZG9uJ3QgYnJlYWsgYSBsZWcuLi4pDQoJCSAqLw0KCX0=', 'To validate code', 1, '2018-06-24 19:11:45'), (3, 'uniquefield', 'CS8qKg0KCSAqIE1ldGhvZCB0byB0ZXN0IHRoZSBmaWVsZCB2YWx1ZSBmb3IgdW5pcXVlbmVzcy4NCgkgKg0KCSAqIEBwYXJhbSAgIFxTaW1wbGVYTUxFbGVtZW50ICAkZWxlbWVudCAgVGhlIFNpbXBsZVhNTEVsZW1lbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgYDxmaWVsZD5gIHRhZyBmb3IgdGhlIGZvcm0gZmllbGQgb2JqZWN0Lg0KCSAqIEBwYXJhbSAgIG1peGVkICAgICAgICAgICAgICAkdmFsdWUgICAgVGhlIGZvcm0gZmllbGQgdmFsdWUgdG8gdmFsaWRhdGUuDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICAgICAgICRncm91cCAgICBUaGUgZmllbGQgbmFtZSBncm91cCBjb250cm9sIHZhbHVlLiBUaGlzIGFjdHMgYXMgYW4gYXJyYXkgY29udGFpbmVyIGZvciB0aGUgZmllbGQuDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3IgZXhhbXBsZSBpZiB0aGUgZmllbGQgaGFzIG5hbWU9ImZvbyIgYW5kIHRoZSBncm91cCB2YWx1ZSBpcyBzZXQgdG8gImJhciIgdGhlbiB0aGUNCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGwgZmllbGQgbmFtZSB3b3VsZCBlbmQgdXAgYmVpbmcgImJhcltmb29dIi4NCgkgKiBAcGFyYW0gICBSZWdpc3RyeSAgICAgICAgICAgJGlucHV0ICAgIEFuIG9wdGlvbmFsIFJlZ2lzdHJ5IG9iamVjdCB3aXRoIHRoZSBlbnRpcmUgZGF0YSBzZXQgdG8gdmFsaWRhdGUgYWdhaW5zdCB0aGUgZW50aXJlIGZvcm0uDQoJICogQHBhcmFtICAgRm9ybSAgICAgICAgICAgICAgICRmb3JtICAgICBUaGUgZm9ybSBvYmplY3QgZm9yIHdoaWNoIHRoZSBmaWVsZCBpcyBiZWluZyB0ZXN0ZWQuDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuICBUcnVlIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlLg0KCSAqDQoJICogQHNpbmNlICAgMTEuMQ0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0KFxTaW1wbGVYTUxFbGVtZW50ICRlbGVtZW50LCAkdmFsdWUsICRncm91cCA9IG51bGwsIFJlZ2lzdHJ5ICRpbnB1dCA9IG51bGwsIEZvcm0gJGZvcm0gPSBudWxsKQ0KCXsNCgkJLy8gR2V0IHRoZSBkYXRhYmFzZSBvYmplY3QgYW5kIGEgbmV3IHF1ZXJ5IG9iamVjdC4NCgkJJGRiID0gXEpGYWN0b3J5OjpnZXREYm8oKTsNCgkJJHF1ZXJ5ID0gJGRiLT5nZXRRdWVyeSh0cnVlKTsNCg0KCQkvLyBHZXQgdGhlIGV4dHJhIGZpZWxkIGNoZWNrIGF0dHJpYnV0ZS4NCgkJJGlkID0gKCRpbnB1dCBpbnN0YW5jZW9mIFJlZ2lzdHJ5KSA/ICRpbnB1dC0+Z2V0KCdpZCcsIG51bGwpIDogbnVsbDsNCg0KCQkvLyBnZXQgdGhlIGNvbXBvbmVudCAmIHRhYmxlIG5hbWUNCgkJJHRhYmxlID0gKCRmb3JtIGluc3RhbmNlb2YgRm9ybSkgPyAkZm9ybS0+Z2V0TmFtZSgpIDogJyc7DQoNCgkJLy8gZ2V0IHRoZSBjb2x1bW4gbmFtZQ0KCQkkbmFtZSA9IChhcnJheSkgJGVsZW1lbnQtPmF0dHJpYnV0ZXMoKS0+eyduYW1lJ307DQoJCSRjb2x1bW4gPSAoc3RyaW5nKSB0cmltKCRuYW1lWzBdKTsNCgkJDQoJCS8vIGNoZWNrIHRoYXQgd2UgaGF2ZSBhIHZhbHVlDQoJCWlmIChzdHJsZW4oJHRhYmxlKSA+IDMgJiYgc3RycG9zKCR0YWJsZSwgJ1tbW2NvbXBvbmVudF1dXS4nKSAhPT0gZmFsc2UpDQoJCXsNCgkJCS8vIG5vdyBnZXQgdGhlIHRhYmxlIG5hbWUNCgkJCSR0YWJsZUFycmF5ID0gZXhwbG9kZSgnLicsICR0YWJsZSk7DQoJCQkvLyBkbyB3ZSBoYXZlIHR3byB2YWx1ZXMNCgkJCWlmIChjb3VudCggKGFycmF5KSAkdGFibGVBcnJheSkgPT0gMikNCgkJCXsNCgkJCQkvLyBCdWlsZCB0aGUgcXVlcnkuDQoJCQkJJHF1ZXJ5LT5zZWxlY3QoJ0NPVU5UKCopJykNCgkJCQkJLT5mcm9tKCcjX19bW1tjb21wb25lbnRdXV1fJyAuIChzdHJpbmcpICR0YWJsZUFycmF5WzFdKQ0KCQkJCQktPndoZXJlKCRkYi0+cXVvdGVOYW1lKCRjb2x1bW4pIC4gJyA9ICcgLiAkZGItPnF1b3RlKCR2YWx1ZSkpOw0KDQoJCQkJLy8gcmVtb3ZlIHRoaXMgaXRlbSBmcm9tIHRoZSBsaXN0DQoJCQkJaWYgKCRpZCA+IDApDQoJCQkJew0KCQkJCQkkcXVlcnktPndoZXJlKCRkYi0+cXVvdGVOYW1lKCdpZCcpIC4gJyA8PiAnIC4gKGludCkgJGlkKTsNCgkJCQl9DQoNCgkJCQkvLyBTZXQgYW5kIHF1ZXJ5IHRoZSBkYXRhYmFzZS4NCgkJCQkkZGItPnNldFF1ZXJ5KCRxdWVyeSk7DQoJCQkJJGR1cGxpY2F0ZSA9IChib29sKSAkZGItPmxvYWRSZXN1bHQoKTsNCg0KCQkJCWlmICgkZHVwbGljYXRlKQ0KCQkJCXsNCgkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCX0NCgkJCX0NCgkJfQ0KDQoJCXJldHVybiB0cnVlOw0KCX0=', 'unique field value', 1, '2018-07-21 06:06:42'), -(4, 'memberloginname', 'CS8qKg0KCSAqIE1ldGhvZCB0byB0ZXN0IHRoZSB1c2VybmFtZSBmb3IgdW5pcXVlbmVzcy4NCgkgKg0KCSAqIEBwYXJhbSAgIFxTaW1wbGVYTUxFbGVtZW50ICAkZWxlbWVudCAgVGhlIFNpbXBsZVhNTEVsZW1lbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgYDxmaWVsZD5gIHRhZyBmb3IgdGhlIGZvcm0gZmllbGQgb2JqZWN0Lg0KCSAqIEBwYXJhbSAgIG1peGVkICAgICAgICAgICAgICAkdmFsdWUgICAgVGhlIGZvcm0gZmllbGQgdmFsdWUgdG8gdmFsaWRhdGUuDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICAgICAgICRncm91cCAgICBUaGUgZmllbGQgbmFtZSBncm91cCBjb250cm9sIHZhbHVlLiBUaGlzIGFjdHMgYXMgYW4gYXJyYXkgY29udGFpbmVyIGZvciB0aGUgZmllbGQuDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3IgZXhhbXBsZSBpZiB0aGUgZmllbGQgaGFzIG5hbWU9ImZvbyIgYW5kIHRoZSBncm91cCB2YWx1ZSBpcyBzZXQgdG8gImJhciIgdGhlbiB0aGUNCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGwgZmllbGQgbmFtZSB3b3VsZCBlbmQgdXAgYmVpbmcgImJhcltmb29dIi4NCgkgKiBAcGFyYW0gICBSZWdpc3RyeSAgICAgICAgICAgJGlucHV0ICAgIEFuIG9wdGlvbmFsIFJlZ2lzdHJ5IG9iamVjdCB3aXRoIHRoZSBlbnRpcmUgZGF0YSBzZXQgdG8gdmFsaWRhdGUgYWdhaW5zdCB0aGUgZW50aXJlIGZvcm0uDQoJICogQHBhcmFtICAgRm9ybSAgICAgICAgICAgICAgICRmb3JtICAgICBUaGUgZm9ybSBvYmplY3QgZm9yIHdoaWNoIHRoZSBmaWVsZCBpcyBiZWluZyB0ZXN0ZWQuDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuICBUcnVlIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlLg0KCSAqDQoJICogQHNpbmNlICAgMTEuMQ0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0KFxTaW1wbGVYTUxFbGVtZW50ICRlbGVtZW50LCAkdmFsdWUsICRncm91cCA9IG51bGwsIFJlZ2lzdHJ5ICRpbnB1dCA9IG51bGwsIEZvcm0gJGZvcm0gPSBudWxsKQ0KCXsNCgkJLy8gR2V0IHRoZSBkYXRhYmFzZSBvYmplY3QgYW5kIGEgbmV3IHF1ZXJ5IG9iamVjdC4NCgkJJGRiID0gXEpGYWN0b3J5OjpnZXREYm8oKTsNCgkJJHF1ZXJ5ID0gJGRiLT5nZXRRdWVyeSh0cnVlKTsNCg0KCQkvLyBCdWlsZCB0aGUgcXVlcnkuDQoJCSRxdWVyeS0+c2VsZWN0KCdDT1VOVCgqKScpDQoJCQktPmZyb20oJyNfX3VzZXJzJykNCgkJCS0+d2hlcmUoJ3VzZXJuYW1lID0gJyAuICRkYi0+cXVvdGUoJHZhbHVlKSk7DQoNCgkJLy8gR2V0IHRoZSB1c2VyIElEIGlmIHNldC4NCgkJJHVzZXJJZCA9ICgkZm9ybSBpbnN0YW5jZW9mIEZvcm0gJiYgKCR1c2VySWQgPSAkZm9ybS0+Z2V0VmFsdWUoJ3VzZXInKSkpID8gJHVzZXJJZCA6ICgoJGlucHV0IGluc3RhbmNlb2YgUmVnaXN0cnkgJiYgKCR1c2VySWQgPSAkaW5wdXQtPmdldCgndXNlcicpKSkgPyAkdXNlcklkIDogJycpOw0KCQkkcXVlcnktPndoZXJlKCRkYi0+cXVvdGVOYW1lKCdpZCcpIC4gJyA8PiAnIC4gKGludCkgJHVzZXJJZCk7DQoNCgkJLy8gU2V0IGFuZCBxdWVyeSB0aGUgZGF0YWJhc2UuDQoJCSRkYi0+c2V0UXVlcnkoJHF1ZXJ5KTsNCgkJJGR1cGxpY2F0ZSA9IChib29sKSAkZGItPmxvYWRSZXN1bHQoKTsNCg0KCQlpZiAoJGR1cGxpY2F0ZSkNCgkJew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJcmV0dXJuIHRydWU7DQoJfQ==', 'Validate the member username', 1, '2018-09-16 00:42:59'), -(5, 'memberuseremail', 'CS8qKg0KCSAqIFRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gdXNlIGluIHRlc3RpbmcgYSBmb3JtIGZpZWxkIHZhbHVlLg0KCSAqDQoJICogQHZhciAgICBzdHJpbmcNCgkgKiBAc2luY2UgIDExLjENCgkgKiBAbGluayAgIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWwtbWFya3VwL2lucHV0LmVtYWlsLmh0bWwNCgkgKi8NCglwcm90ZWN0ZWQgJHJlZ2V4ID0gIl5bYS16QS1aMC05LiEjJCUmJyorLz0/Xl9ge3x9fi1dK0BbYS16QS1aMC05LV0rKD86XC5bYS16QS1aMC05LV0rKSokIjsNCg0KCS8qKg0KCSAqIE1ldGhvZCB0byB0ZXN0IHRoZSBlbWFpbCBhZGRyZXNzIGFuZCBvcHRpb25hbGx5IGNoZWNrIGZvciB1bmlxdWVuZXNzLg0KCSAqDQoJICogQHBhcmFtICAgXFNpbXBsZVhNTEVsZW1lbnQgICRlbGVtZW50ICBUaGUgU2ltcGxlWE1MRWxlbWVudCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBgPGZpZWxkPmAgdGFnIGZvciB0aGUgZm9ybSBmaWVsZCBvYmplY3QuDQoJICogQHBhcmFtICAgbWl4ZWQgICAgICAgICAgICAgICR2YWx1ZSAgICBUaGUgZm9ybSBmaWVsZCB2YWx1ZSB0byB2YWxpZGF0ZS4NCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICAgICAgICAgJGdyb3VwICAgIFRoZSBmaWVsZCBuYW1lIGdyb3VwIGNvbnRyb2wgdmFsdWUuIFRoaXMgYWN0cyBhcyBhbiBhcnJheSBjb250YWluZXIgZm9yIHRoZSBmaWVsZC4NCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvciBleGFtcGxlIGlmIHRoZSBmaWVsZCBoYXMgbmFtZT0iZm9vIiBhbmQgdGhlIGdyb3VwIHZhbHVlIGlzIHNldCB0byAiYmFyIiB0aGVuIHRoZQ0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbCBmaWVsZCBuYW1lIHdvdWxkIGVuZCB1cCBiZWluZyAiYmFyW2Zvb10iLg0KCSAqIEBwYXJhbSAgIFJlZ2lzdHJ5ICAgICAgICAgICAkaW5wdXQgICAgQW4gb3B0aW9uYWwgUmVnaXN0cnkgb2JqZWN0IHdpdGggdGhlIGVudGlyZSBkYXRhIHNldCB0byB2YWxpZGF0ZSBhZ2FpbnN0IHRoZSBlbnRpcmUgZm9ybS4NCgkgKiBAcGFyYW0gICBGb3JtICAgICAgICAgICAgICAgJGZvcm0gICAgIFRoZSBmb3JtIG9iamVjdCBmb3Igd2hpY2ggdGhlIGZpZWxkIGlzIGJlaW5nIHRlc3RlZC4NCgkgKg0KCSAqIEByZXR1cm4gIGJvb2xlYW4gIFRydWUgaWYgdGhlIHZhbHVlIGlzIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UuDQoJICoNCgkgKiBAc2luY2UgICAxMS4xDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIHRlc3QoXFNpbXBsZVhNTEVsZW1lbnQgJGVsZW1lbnQsICR2YWx1ZSwgJGdyb3VwID0gbnVsbCwgUmVnaXN0cnkgJGlucHV0ID0gbnVsbCwgRm9ybSAkZm9ybSA9IG51bGwpDQoJew0KCQkvLyBJZiB0aGUgZmllbGQgaXMgZW1wdHkgYW5kIG5vdCByZXF1aXJlZCwgdGhlIGZpZWxkIGlzIHZhbGlkLg0KCQkkcmVxdWlyZWQgPSAoKHN0cmluZykgJGVsZW1lbnRbJ3JlcXVpcmVkJ10gPT0gJ3RydWUnIHx8IChzdHJpbmcpICRlbGVtZW50WydyZXF1aXJlZCddID09ICdyZXF1aXJlZCcpOw0KDQoJCWlmICghJHJlcXVpcmVkICYmIGVtcHR5KCR2YWx1ZSkpDQoJCXsNCgkJCXJldHVybiB0cnVlOw0KCQl9DQoNCgkJLy8gSWYgdGhlIHRsZCBhdHRyaWJ1dGUgaXMgcHJlc2VudCwgY2hhbmdlIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gcmVxdWlyZSBhdCBsZWFzdCAyIGNoYXJhY3RlcnMgZm9yIGl0Lg0KCQkkdGxkID0gKChzdHJpbmcpICRlbGVtZW50Wyd0bGQnXSA9PSAndGxkJyB8fCAoc3RyaW5nKSAkZWxlbWVudFsndGxkJ10gPT0gJ3JlcXVpcmVkJyk7DQoNCgkJaWYgKCR0bGQpDQoJCXsNCgkJCSR0aGlzLT5yZWdleCA9ICJeW2EtekEtWjAtOS4hIyQlJicqKy89P15fYHt8fX4tXStAW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSkiDQoJCQkJLiAnPyg/OlwuW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KSskJzsNCgkJfQ0KDQoJCS8vIERldGVybWluZSBpZiB0aGUgbXVsdGlwbGUgYXR0cmlidXRlIGlzIHByZXNlbnQNCgkJJG11bHRpcGxlID0gKChzdHJpbmcpICRlbGVtZW50WydtdWx0aXBsZSddID09ICd0cnVlJyB8fCAoc3RyaW5nKSAkZWxlbWVudFsnbXVsdGlwbGUnXSA9PSAnbXVsdGlwbGUnKTsNCg0KCQlpZiAoISRtdWx0aXBsZSkNCgkJew0KCQkJLy8gSGFuZGxlIGlkbiBlbWFpbCBhZGRyZXNzZXMgYnkgY29udmVydGluZyB0byBwdW55Y29kZS4NCgkJCSR2YWx1ZSA9IFxKU3RyaW5nUHVueWNvZGU6OmVtYWlsVG9QdW55Y29kZSgkdmFsdWUpOw0KDQoJCQkvLyBUZXN0IHRoZSB2YWx1ZSBhZ2FpbnN0IHRoZSByZWd1bGFyIGV4cHJlc3Npb24uDQoJCQlpZiAoIXBhcmVudDo6dGVzdCgkZWxlbWVudCwgJHZhbHVlLCAkZ3JvdXAsICRpbnB1dCwgJGZvcm0pKQ0KCQkJew0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJfQ0KCQllbHNlDQoJCXsNCgkJCSR2YWx1ZXMgPSBleHBsb2RlKCcsJywgJHZhbHVlKTsNCg0KCQkJZm9yZWFjaCAoJHZhbHVlcyBhcyAkdmFsdWUpDQoJCQl7DQoJCQkJLy8gSGFuZGxlIGlkbiBlbWFpbCBhZGRyZXNzZXMgYnkgY29udmVydGluZyB0byBwdW55Y29kZS4NCgkJCQkkdmFsdWUgPSBcSlN0cmluZ1B1bnljb2RlOjplbWFpbFRvUHVueWNvZGUoJHZhbHVlKTsNCg0KCQkJCS8vIFRlc3QgdGhlIHZhbHVlIGFnYWluc3QgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbi4NCgkJCQlpZiAoIXBhcmVudDo6dGVzdCgkZWxlbWVudCwgJHZhbHVlLCAkZ3JvdXAsICRpbnB1dCwgJGZvcm0pKQ0KCQkJCXsNCgkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCX0NCgkJCX0NCgkJfQ0KDQoJCS8vIENoZWNrIGlmIHdlIHNob3VsZCB0ZXN0IGZvciB1bmlxdWVuZXNzLiBUaGlzIG9ubHkgY2FuIGJlIHVzZWQgaWYgbXVsdGlwbGUgaXMgbm90IHRydWUNCgkJJHVuaXF1ZSA9ICgoc3RyaW5nKSAkZWxlbWVudFsndW5pcXVlJ10gPT0gJ3RydWUnIHx8IChzdHJpbmcpICRlbGVtZW50Wyd1bmlxdWUnXSA9PSAndW5pcXVlJyk7DQoNCgkJaWYgKCR1bmlxdWUgJiYgISRtdWx0aXBsZSkNCgkJew0KCQkJLy8gR2V0IHRoZSBkYXRhYmFzZSBvYmplY3QgYW5kIGEgbmV3IHF1ZXJ5IG9iamVjdC4NCgkJCSRkYiA9IFxKRmFjdG9yeTo6Z2V0RGJvKCk7DQoJCQkkcXVlcnkgPSAkZGItPmdldFF1ZXJ5KHRydWUpOw0KDQoJCQkvLyBCdWlsZCB0aGUgcXVlcnkuDQoJCQkkcXVlcnktPnNlbGVjdCgnQ09VTlQoKiknKQ0KCQkJCS0+ZnJvbSgnI19fdXNlcnMnKQ0KCQkJCS0+d2hlcmUoJ2VtYWlsID0gJyAuICRkYi0+cXVvdGUoJHZhbHVlKSk7DQoNCgkJCS8vIEdldCB0aGUgZXh0cmEgZmllbGQgY2hlY2sgYXR0cmlidXRlLg0KCQkJJHVzZXJJZCA9ICgkZm9ybSBpbnN0YW5jZW9mIEZvcm0gJiYgKCR1c2VySWQgPSAkZm9ybS0+Z2V0VmFsdWUoJ3VzZXInKSkpID8gJHVzZXJJZCA6ICgoJGlucHV0IGluc3RhbmNlb2YgUmVnaXN0cnkgJiYgKCR1c2VySWQgPSAkaW5wdXQtPmdldCgndXNlcicpKSkgPyAkdXNlcklkIDogJycpOw0KCQkJJHF1ZXJ5LT53aGVyZSgkZGItPnF1b3RlTmFtZSgnaWQnKSAuICcgPD4gJyAuIChpbnQpICR1c2VySWQpOw0KDQoJCQkvLyBTZXQgYW5kIHF1ZXJ5IHRoZSBkYXRhYmFzZS4NCgkJCSRkYi0+c2V0UXVlcnkoJHF1ZXJ5KTsNCgkJCSRkdXBsaWNhdGUgPSAoYm9vbCkgJGRiLT5sb2FkUmVzdWx0KCk7DQoNCgkJCWlmICgkZHVwbGljYXRlKQ0KCQkJew0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiB0cnVlOw0KCX0=', 'Validate the member useremail', 1, '2018-09-16 00:43:44'), +(4, 'memberloginname', 'CS8qKg0KCSAqIE1ldGhvZCB0byB0ZXN0IHRoZSB1c2VybmFtZSBmb3IgdW5pcXVlbmVzcy4NCgkgKg0KCSAqIEBwYXJhbSAgIFxTaW1wbGVYTUxFbGVtZW50ICAkZWxlbWVudCAgVGhlIFNpbXBsZVhNTEVsZW1lbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgYDxmaWVsZD5gIHRhZyBmb3IgdGhlIGZvcm0gZmllbGQgb2JqZWN0Lg0KCSAqIEBwYXJhbSAgIG1peGVkICAgICAgICAgICAgICAkdmFsdWUgICAgVGhlIGZvcm0gZmllbGQgdmFsdWUgdG8gdmFsaWRhdGUuDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICAgICAgICRncm91cCAgICBUaGUgZmllbGQgbmFtZSBncm91cCBjb250cm9sIHZhbHVlLiBUaGlzIGFjdHMgYXMgYW4gYXJyYXkgY29udGFpbmVyIGZvciB0aGUgZmllbGQuDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3IgZXhhbXBsZSBpZiB0aGUgZmllbGQgaGFzIG5hbWU9ImZvbyIgYW5kIHRoZSBncm91cCB2YWx1ZSBpcyBzZXQgdG8gImJhciIgdGhlbiB0aGUNCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGwgZmllbGQgbmFtZSB3b3VsZCBlbmQgdXAgYmVpbmcgImJhcltmb29dIi4NCgkgKiBAcGFyYW0gICBSZWdpc3RyeSAgICAgICAgICAgJGlucHV0ICAgIEFuIG9wdGlvbmFsIFJlZ2lzdHJ5IG9iamVjdCB3aXRoIHRoZSBlbnRpcmUgZGF0YSBzZXQgdG8gdmFsaWRhdGUgYWdhaW5zdCB0aGUgZW50aXJlIGZvcm0uDQoJICogQHBhcmFtICAgRm9ybSAgICAgICAgICAgICAgICRmb3JtICAgICBUaGUgZm9ybSBvYmplY3QgZm9yIHdoaWNoIHRoZSBmaWVsZCBpcyBiZWluZyB0ZXN0ZWQuDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuICBUcnVlIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlLg0KCSAqDQoJICogQHNpbmNlICAgMTEuMQ0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0KFxTaW1wbGVYTUxFbGVtZW50ICRlbGVtZW50LCAkdmFsdWUsICRncm91cCA9IG51bGwsIFJlZ2lzdHJ5ICRpbnB1dCA9IG51bGwsIEZvcm0gJGZvcm0gPSBudWxsKQ0KCXsNCgkJLy8gR2V0IHRoZSBkYXRhYmFzZSBvYmplY3QgYW5kIGEgbmV3IHF1ZXJ5IG9iamVjdC4NCgkJJGRiID0gXEpGYWN0b3J5OjpnZXREYm8oKTsNCgkJJHF1ZXJ5ID0gJGRiLT5nZXRRdWVyeSh0cnVlKTsNCg0KCQkvLyBCdWlsZCB0aGUgcXVlcnkuDQoJCSRxdWVyeS0+c2VsZWN0KCdDT1VOVCgqKScpDQoJCQktPmZyb20oJyNfX3VzZXJzJykNCgkJCS0+d2hlcmUoJ3VzZXJuYW1lID0gJyAuICRkYi0+cXVvdGUoJHZhbHVlKSk7DQoNCgkJLy8gR2V0IHRoZSB1c2VyIElEIGlmIHNldC4NCgkJJHVzZXJJZCA9ICgkZm9ybSBpbnN0YW5jZW9mIEZvcm0gJiYgKCR1c2VySWQgPSAkZm9ybS0+Z2V0VmFsdWUoJ3VzZXInKSkpID8gJHVzZXJJZCA6ICgoJGlucHV0IGluc3RhbmNlb2YgUmVnaXN0cnkgJiYgKCR1c2VySWQgPSAkaW5wdXQtPmdldCgndXNlcicpKSkgPyAkdXNlcklkIDogMCk7DQoJCS8vIGlmIHN0aWxsIG5vdCB1c2VyIGlzIGZvdW5kIGdldCBtZW1iZXIgaWQNCgkJaWYgKCR1c2VySWQgPT0gMCkNCgkJew0KCQkJJG1lbWJlcklkID0gKCRmb3JtIGluc3RhbmNlb2YgRm9ybSAmJiAoJG1lbWJlcklkID0gJGZvcm0tPmdldFZhbHVlKCdpZCcpKSkgPyAkbWVtYmVySWQgOiAoKCRpbnB1dCBpbnN0YW5jZW9mIFJlZ2lzdHJ5ICYmICgkbWVtYmVySWQgPSAkaW5wdXQtPmdldCgnaWQnKSkpID8gJG1lbWJlcklkIDogMCk7DQoJCX0NCgkJLy8gZ2V0IGFjY291bnQgdHlwZSBpZiBuZWVkZWQNCgkJaWYgKCR1c2VySWQgPT0gMCAmJiAkbWVtYmVySWQgPiAwKQ0KCQl7DQoJCQkkYWNjb3VudElkID0gKCRmb3JtIGluc3RhbmNlb2YgRm9ybSAmJiAoJGFjY291bnRJZCA9ICRmb3JtLT5nZXRWYWx1ZSgnYWNjb3VudCcpKSkgPyAkYWNjb3VudElkIDogKCgkaW5wdXQgaW5zdGFuY2VvZiBSZWdpc3RyeSAmJiAoJGFjY291bnRJZCA9ICRpbnB1dC0+Z2V0KCdhY2NvdW50JykpKSA/ICRhY2NvdW50SWQgOiAwKTsNCgkJCS8vIG1ha2Ugc3VyZSB0aGVzZSBhY2NvdW50IGlzIHNldA0KCQkJaWYgKCRhY2NvdW50SWQgPT0gMCkNCgkJCXsNCgkJCQkkYWNjb3VudElkID0gW1tbQ29tcG9uZW50XV1dSGVscGVyOjpnZXRWYXIoJ21lbWJlcicsICRtZW1iZXJJZCwgJ2lkJywgJ2FjY291bnQnKTsNCgkJCX0NCgkJfQ0KCQkvLyBnZXQgdXNlciB2YWx1ZSBpZiBub3Qgc2V0IChkdWUgdG8gcGVybWlzc2lvbnMpDQoJCWlmICgkdXNlcklkID09IDAgJiYgJG1lbWJlcklkID4gMCAmJiAkYWNjb3VudElkID4gMCAmJiAoMSA9PSAkYWNjb3VudElkIHx8IDQgPT0gJGFjY291bnRJZCkpDQoJCXsNCgkJCSR1c2VySWQgPSBbW1tDb21wb25lbnRdXV1IZWxwZXI6OmdldFZhcignbWVtYmVyJywgJG1lbWJlcklkLCAnaWQnLCAndXNlcicpOw0KCQl9DQoJCSRxdWVyeS0+d2hlcmUoJGRiLT5xdW90ZU5hbWUoJ2lkJykgLiAnIDw+ICcgLiAoaW50KSAkdXNlcklkKTsNCg0KCQkvLyBTZXQgYW5kIHF1ZXJ5IHRoZSBkYXRhYmFzZS4NCgkJJGRiLT5zZXRRdWVyeSgkcXVlcnkpOw0KCQkkZHVwbGljYXRlID0gKGJvb2wpICRkYi0+bG9hZFJlc3VsdCgpOw0KDQoJCWlmICgkZHVwbGljYXRlKQ0KCQl7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQlyZXR1cm4gdHJ1ZTsNCgl9', 'Validate the member username', 1, '2018-09-16 00:42:59'), +(5, 'memberuseremail', 'CS8qKg0KCSAqIFRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gdXNlIGluIHRlc3RpbmcgYSBmb3JtIGZpZWxkIHZhbHVlLg0KCSAqDQoJICogQHZhciAgICBzdHJpbmcNCgkgKiBAc2luY2UgIDExLjENCgkgKiBAbGluayAgIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWwtbWFya3VwL2lucHV0LmVtYWlsLmh0bWwNCgkgKi8NCglwcm90ZWN0ZWQgJHJlZ2V4ID0gIl5bYS16QS1aMC05LiEjJCUmJyorLz0/Xl9ge3x9fi1dK0BbYS16QS1aMC05LV0rKD86XC5bYS16QS1aMC05LV0rKSokIjsNCg0KCS8qKg0KCSAqIE1ldGhvZCB0byB0ZXN0IHRoZSBlbWFpbCBhZGRyZXNzIGFuZCBvcHRpb25hbGx5IGNoZWNrIGZvciB1bmlxdWVuZXNzLg0KCSAqDQoJICogQHBhcmFtICAgXFNpbXBsZVhNTEVsZW1lbnQgICRlbGVtZW50ICBUaGUgU2ltcGxlWE1MRWxlbWVudCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBgPGZpZWxkPmAgdGFnIGZvciB0aGUgZm9ybSBmaWVsZCBvYmplY3QuDQoJICogQHBhcmFtICAgbWl4ZWQgICAgICAgICAgICAgICR2YWx1ZSAgICBUaGUgZm9ybSBmaWVsZCB2YWx1ZSB0byB2YWxpZGF0ZS4NCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICAgICAgICAgJGdyb3VwICAgIFRoZSBmaWVsZCBuYW1lIGdyb3VwIGNvbnRyb2wgdmFsdWUuIFRoaXMgYWN0cyBhcyBhbiBhcnJheSBjb250YWluZXIgZm9yIHRoZSBmaWVsZC4NCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvciBleGFtcGxlIGlmIHRoZSBmaWVsZCBoYXMgbmFtZT0iZm9vIiBhbmQgdGhlIGdyb3VwIHZhbHVlIGlzIHNldCB0byAiYmFyIiB0aGVuIHRoZQ0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbCBmaWVsZCBuYW1lIHdvdWxkIGVuZCB1cCBiZWluZyAiYmFyW2Zvb10iLg0KCSAqIEBwYXJhbSAgIFJlZ2lzdHJ5ICAgICAgICAgICAkaW5wdXQgICAgQW4gb3B0aW9uYWwgUmVnaXN0cnkgb2JqZWN0IHdpdGggdGhlIGVudGlyZSBkYXRhIHNldCB0byB2YWxpZGF0ZSBhZ2FpbnN0IHRoZSBlbnRpcmUgZm9ybS4NCgkgKiBAcGFyYW0gICBGb3JtICAgICAgICAgICAgICAgJGZvcm0gICAgIFRoZSBmb3JtIG9iamVjdCBmb3Igd2hpY2ggdGhlIGZpZWxkIGlzIGJlaW5nIHRlc3RlZC4NCgkgKg0KCSAqIEByZXR1cm4gIGJvb2xlYW4gIFRydWUgaWYgdGhlIHZhbHVlIGlzIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UuDQoJICoNCgkgKiBAc2luY2UgICAxMS4xDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIHRlc3QoXFNpbXBsZVhNTEVsZW1lbnQgJGVsZW1lbnQsICR2YWx1ZSwgJGdyb3VwID0gbnVsbCwgUmVnaXN0cnkgJGlucHV0ID0gbnVsbCwgRm9ybSAkZm9ybSA9IG51bGwpDQoJew0KCQkvLyBJZiB0aGUgZmllbGQgaXMgZW1wdHkgYW5kIG5vdCByZXF1aXJlZCwgdGhlIGZpZWxkIGlzIHZhbGlkLg0KCQkkcmVxdWlyZWQgPSAoKHN0cmluZykgJGVsZW1lbnRbJ3JlcXVpcmVkJ10gPT0gJ3RydWUnIHx8IChzdHJpbmcpICRlbGVtZW50WydyZXF1aXJlZCddID09ICdyZXF1aXJlZCcpOw0KDQoJCWlmICghJHJlcXVpcmVkICYmIGVtcHR5KCR2YWx1ZSkpDQoJCXsNCgkJCXJldHVybiB0cnVlOw0KCQl9DQoNCgkJLy8gSWYgdGhlIHRsZCBhdHRyaWJ1dGUgaXMgcHJlc2VudCwgY2hhbmdlIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gcmVxdWlyZSBhdCBsZWFzdCAyIGNoYXJhY3RlcnMgZm9yIGl0Lg0KCQkkdGxkID0gKChzdHJpbmcpICRlbGVtZW50Wyd0bGQnXSA9PSAndGxkJyB8fCAoc3RyaW5nKSAkZWxlbWVudFsndGxkJ10gPT0gJ3JlcXVpcmVkJyk7DQoNCgkJaWYgKCR0bGQpDQoJCXsNCgkJCSR0aGlzLT5yZWdleCA9ICJeW2EtekEtWjAtOS4hIyQlJicqKy89P15fYHt8fX4tXStAW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSkiDQoJCQkJLiAnPyg/OlwuW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KSskJzsNCgkJfQ0KDQoJCS8vIERldGVybWluZSBpZiB0aGUgbXVsdGlwbGUgYXR0cmlidXRlIGlzIHByZXNlbnQNCgkJJG11bHRpcGxlID0gKChzdHJpbmcpICRlbGVtZW50WydtdWx0aXBsZSddID09ICd0cnVlJyB8fCAoc3RyaW5nKSAkZWxlbWVudFsnbXVsdGlwbGUnXSA9PSAnbXVsdGlwbGUnKTsNCg0KCQlpZiAoISRtdWx0aXBsZSkNCgkJew0KCQkJLy8gSGFuZGxlIGlkbiBlbWFpbCBhZGRyZXNzZXMgYnkgY29udmVydGluZyB0byBwdW55Y29kZS4NCgkJCSR2YWx1ZSA9IFxKU3RyaW5nUHVueWNvZGU6OmVtYWlsVG9QdW55Y29kZSgkdmFsdWUpOw0KDQoJCQkvLyBUZXN0IHRoZSB2YWx1ZSBhZ2FpbnN0IHRoZSByZWd1bGFyIGV4cHJlc3Npb24uDQoJCQlpZiAoIXBhcmVudDo6dGVzdCgkZWxlbWVudCwgJHZhbHVlLCAkZ3JvdXAsICRpbnB1dCwgJGZvcm0pKQ0KCQkJew0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJfQ0KCQllbHNlDQoJCXsNCgkJCSR2YWx1ZXMgPSBleHBsb2RlKCcsJywgJHZhbHVlKTsNCg0KCQkJZm9yZWFjaCAoJHZhbHVlcyBhcyAkdmFsdWUpDQoJCQl7DQoJCQkJLy8gSGFuZGxlIGlkbiBlbWFpbCBhZGRyZXNzZXMgYnkgY29udmVydGluZyB0byBwdW55Y29kZS4NCgkJCQkkdmFsdWUgPSBcSlN0cmluZ1B1bnljb2RlOjplbWFpbFRvUHVueWNvZGUoJHZhbHVlKTsNCg0KCQkJCS8vIFRlc3QgdGhlIHZhbHVlIGFnYWluc3QgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbi4NCgkJCQlpZiAoIXBhcmVudDo6dGVzdCgkZWxlbWVudCwgJHZhbHVlLCAkZ3JvdXAsICRpbnB1dCwgJGZvcm0pKQ0KCQkJCXsNCgkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCX0NCgkJCX0NCgkJfQ0KDQoJCS8vIENoZWNrIGlmIHdlIHNob3VsZCB0ZXN0IGZvciB1bmlxdWVuZXNzLiBUaGlzIG9ubHkgY2FuIGJlIHVzZWQgaWYgbXVsdGlwbGUgaXMgbm90IHRydWUNCgkJJHVuaXF1ZSA9ICgoc3RyaW5nKSAkZWxlbWVudFsndW5pcXVlJ10gPT0gJ3RydWUnIHx8IChzdHJpbmcpICRlbGVtZW50Wyd1bmlxdWUnXSA9PSAndW5pcXVlJyk7DQoNCgkJaWYgKCR1bmlxdWUgJiYgISRtdWx0aXBsZSkNCgkJew0KCQkJLy8gR2V0IHRoZSBkYXRhYmFzZSBvYmplY3QgYW5kIGEgbmV3IHF1ZXJ5IG9iamVjdC4NCgkJCSRkYiA9IFxKRmFjdG9yeTo6Z2V0RGJvKCk7DQoJCQkkcXVlcnkgPSAkZGItPmdldFF1ZXJ5KHRydWUpOw0KDQoJCQkvLyBCdWlsZCB0aGUgcXVlcnkuDQoJCQkkcXVlcnktPnNlbGVjdCgnQ09VTlQoKiknKQ0KCQkJCS0+ZnJvbSgnI19fdXNlcnMnKQ0KCQkJCS0+d2hlcmUoJ2VtYWlsID0gJyAuICRkYi0+cXVvdGUoJHZhbHVlKSk7DQoNCgkJCS8vIEdldCB0aGUgdXNlciBJRCBpZiBzZXQuDQoJCQkkdXNlcklkID0gKCRmb3JtIGluc3RhbmNlb2YgRm9ybSAmJiAoJHVzZXJJZCA9ICRmb3JtLT5nZXRWYWx1ZSgndXNlcicpKSkgPyAkdXNlcklkIDogKCgkaW5wdXQgaW5zdGFuY2VvZiBSZWdpc3RyeSAmJiAoJHVzZXJJZCA9ICRpbnB1dC0+Z2V0KCd1c2VyJykpKSA/ICR1c2VySWQgOiAwKTsNCgkJCS8vIGlmIHN0aWxsIG5vdCB1c2VyIGlzIGZvdW5kIGdldCBtZW1iZXIgaWQNCgkJCWlmICgkdXNlcklkID09IDApDQoJCQl7DQoJCQkJJG1lbWJlcklkID0gKCRmb3JtIGluc3RhbmNlb2YgRm9ybSAmJiAoJG1lbWJlcklkID0gJGZvcm0tPmdldFZhbHVlKCdpZCcpKSkgPyAkbWVtYmVySWQgOiAoKCRpbnB1dCBpbnN0YW5jZW9mIFJlZ2lzdHJ5ICYmICgkbWVtYmVySWQgPSAkaW5wdXQtPmdldCgnaWQnKSkpID8gJG1lbWJlcklkIDogMCk7DQoJCQl9DQoJCQkvLyBnZXQgYWNjb3VudCB0eXBlIGlmIG5lZWRlZA0KCQkJaWYgKCR1c2VySWQgPT0gMCAmJiAkbWVtYmVySWQgPiAwKQ0KCQkJew0KCQkJCSRhY2NvdW50SWQgPSAoJGZvcm0gaW5zdGFuY2VvZiBGb3JtICYmICgkYWNjb3VudElkID0gJGZvcm0tPmdldFZhbHVlKCdhY2NvdW50JykpKSA/ICRhY2NvdW50SWQgOiAoKCRpbnB1dCBpbnN0YW5jZW9mIFJlZ2lzdHJ5ICYmICgkYWNjb3VudElkID0gJGlucHV0LT5nZXQoJ2FjY291bnQnKSkpID8gJGFjY291bnRJZCA6IDApOw0KCQkJCS8vIG1ha2Ugc3VyZSB0aGVzZSBhY2NvdW50IGlzIHNldA0KCQkJCWlmICgkYWNjb3VudElkID09IDApDQoJCQkJew0KCQkJCQkkYWNjb3VudElkID0gW1tbQ29tcG9uZW50XV1dSGVscGVyOjpnZXRWYXIoJ21lbWJlcicsICRtZW1iZXJJZCwgJ2lkJywgJ2FjY291bnQnKTsNCgkJCQl9DQoJCQl9DQoJCQkvLyBnZXQgdXNlciB2YWx1ZSBpZiBub3Qgc2V0IChkdWUgdG8gcGVybWlzc2lvbnMpDQoJCQlpZiAoJHVzZXJJZCA9PSAwICYmICRtZW1iZXJJZCA+IDAgJiYgJGFjY291bnRJZCA+IDAgJiYgKDEgPT0gJGFjY291bnRJZCB8fCA0ID09ICRhY2NvdW50SWQpKQ0KCQkJew0KCQkJCSR1c2VySWQgPSBbW1tDb21wb25lbnRdXV1IZWxwZXI6OmdldFZhcignbWVtYmVyJywgJG1lbWJlcklkLCAnaWQnLCAndXNlcicpOw0KCQkJfQ0KCQkJJHF1ZXJ5LT53aGVyZSgkZGItPnF1b3RlTmFtZSgnaWQnKSAuICcgPD4gJyAuIChpbnQpICR1c2VySWQpOw0KDQoJCQkvLyBTZXQgYW5kIHF1ZXJ5IHRoZSBkYXRhYmFzZS4NCgkJCSRkYi0+c2V0UXVlcnkoJHF1ZXJ5KTsNCgkJCSRkdXBsaWNhdGUgPSAoYm9vbCkgJGRiLT5sb2FkUmVzdWx0KCk7DQoNCgkJCWlmICgkZHVwbGljYXRlKQ0KCQkJew0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiB0cnVlOw0KCX0=', 'Validate the member useremail', 1, '2018-09-16 00:43:44'), (6, 'iban', 'CS8qKg0KCSogTWV0aG9kIHRvIGNoZWNrIGlmIElCQU4gaXMgdmFsaWQuDQoJKg0KCSogQHBhcmFtICAgXFNpbXBsZVhNTEVsZW1lbnQgICRlbGVtZW50ICBUaGUgU2ltcGxlWE1MRWxlbWVudCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBgPGZpZWxkPmAgdGFnIGZvciB0aGUgZm9ybSBmaWVsZCBvYmplY3QuDQoJKiBAcGFyYW0gICBtaXhlZCAgICAgICAgICAgICAgJHZhbHVlICAgIFRoZSBmb3JtIGZpZWxkIHZhbHVlIHRvIHZhbGlkYXRlLg0KCSogQHBhcmFtICAgc3RyaW5nICAgICAgICAgICAgICRncm91cCAgICBUaGUgZmllbGQgbmFtZSBncm91cCBjb250cm9sIHZhbHVlLiBUaGlzIGFjdHMgYXMgYW4gYXJyYXkgY29udGFpbmVyIGZvciB0aGUgZmllbGQuDQoJKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvciBleGFtcGxlIGlmIHRoZSBmaWVsZCBoYXMgbmFtZT0iZm9vIiBhbmQgdGhlIGdyb3VwIHZhbHVlIGlzIHNldCB0byAiYmFyIiB0aGVuIHRoZQ0KCSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsIGZpZWxkIG5hbWUgd291bGQgZW5kIHVwIGJlaW5nICJiYXJbZm9vXSIuDQoJKiBAcGFyYW0gICBSZWdpc3RyeSAgICAgICAgICAgJGlucHV0ICAgIEFuIG9wdGlvbmFsIFJlZ2lzdHJ5IG9iamVjdCB3aXRoIHRoZSBlbnRpcmUgZGF0YSBzZXQgdG8gdmFsaWRhdGUgYWdhaW5zdCB0aGUgZW50aXJlIGZvcm0uDQoJKiBAcGFyYW0gICBGb3JtICAgICAgICAgICAgICAgJGZvcm0gICAgIFRoZSBmb3JtIG9iamVjdCBmb3Igd2hpY2ggdGhlIGZpZWxkIGlzIGJlaW5nIHRlc3RlZC4NCgkqDQoJKiBAcmV0dXJuICBib29sZWFuICBUcnVlIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlLg0KCSoNCgkqIEBzaW5jZSAgIDMuOS4wDQoJKi8NCglwdWJsaWMgZnVuY3Rpb24gdGVzdChcU2ltcGxlWE1MRWxlbWVudCAkZWxlbWVudCwgJHZhbHVlLCAkZ3JvdXAgPSBudWxsLCBSZWdpc3RyeSAkaW5wdXQgPSBudWxsLCBGb3JtICRmb3JtID0gbnVsbCkNCgl7DQoJCSRjb3VudHJ5Q29kZU9mZnNldCA9IDA7IC8vIENPVU5UUllfQ09ERV9PRkZTRVQNCgkJJGNvdW50cnlDb2RlTGVuZ3RoID0gMjsgLy9DT1VOVFJZX0NPREVfTEVOR1RIDQoJCSRjaGVja3N1bU9mZnNldCA9IDI7IC8vQ0hFQ0tTVU1fT0ZGU0VUDQoJCSRjaGVja3N1bUxlbmd0aCA9IDI7IC8vQ0hFQ0tTVU1fTEVOR1RIDQoJCSRpbnN0aXR1dGVJZGVudGlmaWNhdGlvbk9mZnNldCA9IDQ7IC8vSU5TVElUVVRFX0lERU5USUZJQ0FUSU9OX09GRlNFVA0KDQoJCS8qKg0KCQkqIEB2YXIgYXJyYXkgQ291bnRyeSBjb2RlIHRvIHNpemUsIHJlZ2V4IGZvcm1hdCBmb3IgZWFjaCBjb3VudHJ5IHRoYXQgc3VwcG9ydHMgSUJBTg0KCQkqLw0KCQkkaWJhbkZvcm1hdE1hcCA9IGFycmF5KA0KCQkJJ0FBJyA9PiBhcnJheSgxMiwgJ15bQS1aMC05XXsxMn0kJyksDQoJCQknQUQnID0+IGFycmF5KDIwLCAnXlswLTldezR9WzAtOV17NH1bQS1aMC05XXsxMn0kJyksDQoJCQknQUUnID0+IGFycmF5KDE5LCAnXlswLTldezN9WzAtOV17MTZ9JCcpLA0KCQkJJ0FMJyA9PiBhcnJheSgyNCwgJ15bMC05XXs4fVtBLVowLTldezE2fSQnKSwNCgkJCSdBTycgPT4gYXJyYXkoMjEsICdeWzAtOV17MjF9JCcpLA0KCQkJJ0FUJyA9PiBhcnJheSgxNiwgJ15bMC05XXs1fVswLTldezExfSQnKSwNCgkJCSdBWCcgPT4gYXJyYXkoMTQsICdeWzAtOV17Nn1bMC05XXs3fVswLTldezF9JCcpLA0KCQkJJ0FaJyA9PiBhcnJheSgyNCwgJ15bQS1aXXs0fVtBLVowLTldezIwfSQnKSwNCgkJCSdCQScgPT4gYXJyYXkoMTYsICdeWzAtOV17M31bMC05XXszfVswLTldezh9WzAtOV17Mn0kJyksDQoJCQknQkUnID0+IGFycmF5KDEyLCAnXlswLTldezN9WzAtOV17N31bMC05XXsyfSQnKSwNCgkJCSdCRicgPT4gYXJyYXkoMjMsICdeWzAtOV17MjN9JCcpLA0KCQkJJ0JHJyA9PiBhcnJheSgxOCwgJ15bQS1aXXs0fVswLTldezR9WzAtOV17Mn1bQS1aMC05XXs4fSQnKSwNCgkJCSdCSCcgPT4gYXJyYXkoMTgsICdeW0EtWl17NH1bQS1aMC05XXsxNH0kJyksDQoJCQknQkknID0+IGFycmF5KDEyLCAnXlswLTldezEyfSQnKSwNCgkJCSdCSicgPT4gYXJyYXkoMjQsICdeW0EtWl17MX1bMC05XXsyM30kJyksDQoJCQknQkwnID0+IGFycmF5KDIzLCAnXlswLTldezV9WzAtOV17NX1bQS1aMC05XXsxMX1bMC05XXsyfSQnKSwNCgkJCSdCUicgPT4gYXJyYXkoMjUsICdeWzAtOV17OH1bMC05XXs1fVswLTldezEwfVtBLVpdezF9W0EtWjAtOV17MX0kJyksDQoJCQknQ0gnID0+IGFycmF5KDE3LCAnXlswLTldezV9W0EtWjAtOV17MTJ9JCcpLA0KCQkJJ0NJJyA9PiBhcnJheSgyNCwgJ15bQS1aXXsxfVswLTldezIzfSQnKSwNCgkJCSdDTScgPT4gYXJyYXkoMjMsICdeWzAtOV17MjN9JCcpLA0KCQkJJ0NSJyA9PiBhcnJheSgxNywgJ15bMC05XXs0fVswLTldezEzfSQnKSwNCgkJCSdDVicgPT4gYXJyYXkoMjEsICdeWzAtOV17MjF9JCcpLA0KCQkJJ0NZJyA9PiBhcnJheSgyNCwgJ15bMC05XXszfVswLTldezV9W0EtWjAtOV17MTZ9JCcpLA0KCQkJJ0NaJyA9PiBhcnJheSgyMCwgJ15bMC05XXs0fVswLTldezZ9WzAtOV17MTB9JCcpLA0KCQkJJ0RFJyA9PiBhcnJheSgxOCwgJ15bMC05XXs4fVswLTldezEwfSQnKSwNCgkJCSdESycgPT4gYXJyYXkoMTQsICdeWzAtOV17NH1bMC05XXs5fVswLTldezF9JCcpLA0KCQkJJ0RPJyA9PiBhcnJheSgyNCwgJ15bQS1aMC05XXs0fVswLTldezIwfSQnKSwNCgkJCSdEWicgPT4gYXJyYXkoMjAsICdeWzAtOV17MjB9JCcpLA0KCQkJJ0VFJyA9PiBhcnJheSgxNiwgJ15bMC05XXsyfVswLTldezJ9WzAtOV17MTF9WzAtOV17MX0kJyksDQoJCQknRVMnID0+IGFycmF5KDIwLCAnXlswLTldezR9WzAtOV17NH1bMC05XXsxfVswLTldezF9WzAtOV17MTB9JCcpLA0KCQkJJ0ZJJyA9PiBhcnJheSgxNCwgJ15bMC05XXs2fVswLTldezd9WzAtOV17MX0kJyksDQoJCQknRk8nID0+IGFycmF5KDE0LCAnXlswLTldezR9WzAtOV17OX1bMC05XXsxfSQnKSwNCgkJCSdGUicgPT4gYXJyYXkoMjMsICdeWzAtOV17NX1bMC05XXs1fVtBLVowLTldezExfVswLTldezJ9JCcpLA0KCQkJJ0dCJyA9PiBhcnJheSgxOCwgJ15bQS1aXXs0fVswLTldezZ9WzAtOV17OH0kJyksDQoJCQknR0UnID0+IGFycmF5KDE4LCAnXltBLVpdezJ9WzAtOV17MTZ9JCcpLA0KCQkJJ0dGJyA9PiBhcnJheSgyMywgJ15bMC05XXs1fVswLTldezV9W0EtWjAtOV17MTF9WzAtOV17Mn0kJyksDQoJCQknR0knID0+IGFycmF5KDE5LCAnXltBLVpdezR9W0EtWjAtOV17MTV9JCcpLA0KCQkJJ0dMJyA9PiBhcnJheSgxNCwgJ15bMC05XXs0fVswLTldezl9WzAtOV17MX0kJyksDQoJCQknR1AnID0+IGFycmF5KDIzLCAnXlswLTldezV9WzAtOV17NX1bQS1aMC05XXsxMX1bMC05XXsyfSQnKSwNCgkJCSdHUicgPT4gYXJyYXkoMjMsICdeWzAtOV17M31bMC05XXs0fVtBLVowLTldezE2fSQnKSwNCgkJCSdHVCcgPT4gYXJyYXkoMjQsICdeW0EtWjAtOV17NH1bQS1aMC05XXsyMH0kJyksDQoJCQknSFInID0+IGFycmF5KDE3LCAnXlswLTldezd9WzAtOV17MTB9JCcpLA0KCQkJJ0hVJyA9PiBhcnJheSgyNCwgJ15bMC05XXszfVswLTldezR9WzAtOV17MX1bMC05XXsxNX1bMC05XXsxfSQnKSwNCgkJCSdJRScgPT4gYXJyYXkoMTgsICdeW0EtWl17NH1bMC05XXs2fVswLTldezh9JCcpLA0KCQkJJ0lMJyA9PiBhcnJheSgxOSwgJ15bMC05XXszfVswLTldezN9WzAtOV17MTN9JCcpLA0KCQkJJ0lSJyA9PiBhcnJheSgyMiwgJ15bMC05XXsyMn0kJyksDQoJCQknSVMnID0+IGFycmF5KDIyLCAnXlswLTldezR9WzAtOV17Mn1bMC05XXs2fVswLTldezEwfSQnKSwNCgkJCSdJVCcgPT4gYXJyYXkoMjMsICdeW0EtWl17MX1bMC05XXs1fVswLTldezV9W0EtWjAtOV17MTJ9JCcpLA0KCQkJJ0pPJyA9PiBhcnJheSgyNiwgJ15bQS1aXXs0fVswLTldezR9W0EtWjAtOV17MTh9JCcpLA0KCQkJJ0tXJyA9PiBhcnJheSgyNiwgJ15bQS1aXXs0fVtBLVowLTldezIyfSQnKSwNCgkJCSdLWicgPT4gYXJyYXkoMTYsICdeWzAtOV17M31bQS1aMC05XXsxM30kJyksDQoJCQknTEInID0+IGFycmF5KDI0LCAnXlswLTldezR9W0EtWjAtOV17MjB9JCcpLA0KCQkJJ0xDJyA9PiBhcnJheSgyOCwgJ15bQS1aXXs0fVtBLVowLTldezI0fSQnKSwNCgkJCSdMSScgPT4gYXJyYXkoMTcsICdeWzAtOV17NX1bQS1aMC05XXsxMn0kJyksDQoJCQknTFQnID0+IGFycmF5KDE2LCAnXlswLTldezV9WzAtOV17MTF9JCcpLA0KCQkJJ0xVJyA9PiBhcnJheSgxNiwgJ15bMC05XXszfVtBLVowLTldezEzfSQnKSwNCgkJCSdMVicgPT4gYXJyYXkoMTcsICdeW0EtWl17NH1bQS1aMC05XXsxM30kJyksDQoJCQknTUMnID0+IGFycmF5KDIzLCAnXlswLTldezV9WzAtOV17NX1bQS1aMC05XXsxMX1bMC05XXsyfSQnKSwNCgkJCSdNRCcgPT4gYXJyYXkoMjAsICdeW0EtWjAtOV17Mn1bQS1aMC05XXsxOH0kJyksDQoJCQknTUUnID0+IGFycmF5KDE4LCAnXlswLTldezN9WzAtOV17MTN9WzAtOV17Mn0kJyksDQoJCQknTUYnID0+IGFycmF5KDIzLCAnXlswLTldezV9WzAtOV17NX1bQS1aMC05XXsxMX1bMC05XXsyfSQnKSwNCgkJCSdNRycgPT4gYXJyYXkoMjMsICdeWzAtOV17MjN9JCcpLA0KCQkJJ01LJyA9PiBhcnJheSgxNSwgJ15bMC05XXszfVtBLVowLTldezEwfVswLTldezJ9JCcpLA0KCQkJJ01MJyA9PiBhcnJheSgyNCwgJ15bQS1aXXsxfVswLTldezIzfSQnKSwNCgkJCSdNUScgPT4gYXJyYXkoMjMsICdeWzAtOV17NX1bMC05XXs1fVtBLVowLTldezExfVswLTldezJ9JCcpLA0KCQkJJ01SJyA9PiBhcnJheSgyMywgJ15bMC05XXs1fVswLTldezV9WzAtOV17MTF9WzAtOV17Mn0kJyksDQoJCQknTVQnID0+IGFycmF5KDI3LCAnXltBLVpdezR9WzAtOV17NX1bQS1aMC05XXsxOH0kJyksDQoJCQknTVUnID0+IGFycmF5KDI2LCAnXltBLVpdezR9WzAtOV17Mn1bMC05XXsyfVswLTldezEyfVswLTldezN9W0EtWl17M30kJyksDQoJCQknTVonID0+IGFycmF5KDIxLCAnXlswLTldezIxfSQnKSwNCgkJCSdOQycgPT4gYXJyYXkoMjMsICdeWzAtOV17NX1bMC05XXs1fVtBLVowLTldezExfVswLTldezJ9JCcpLA0KCQkJJ05MJyA9PiBhcnJheSgxNCwgJ15bQS1aXXs0fVswLTldezEwfSQnKSwNCgkJCSdOTycgPT4gYXJyYXkoMTEsICdeWzAtOV17NH1bMC05XXs2fVswLTldezF9JCcpLA0KCQkJJ1BGJyA9PiBhcnJheSgyMywgJ15bMC05XXs1fVswLTldezV9W0EtWjAtOV17MTF9WzAtOV17Mn0kJyksDQoJCQknUEsnID0+IGFycmF5KDIwLCAnXltBLVpdezR9W0EtWjAtOV17MTZ9JCcpLA0KCQkJJ1BMJyA9PiBhcnJheSgyNCwgJ15bMC05XXs4fVswLTldezE2fSQnKSwNCgkJCSdQTScgPT4gYXJyYXkoMjMsICdeWzAtOV17NX1bMC05XXs1fVtBLVowLTldezExfVswLTldezJ9JCcpLA0KCQkJJ1BTJyA9PiBhcnJheSgyNSwgJ15bQS1aXXs0fVtBLVowLTldezIxfSQnKSwNCgkJCSdQVCcgPT4gYXJyYXkoMjEsICdeWzAtOV17NH1bMC05XXs0fVswLTldezExfVswLTldezJ9JCcpLA0KCQkJJ1FBJyA9PiBhcnJheSgyNSwgJ15bQS1aXXs0fVswLTldezR9W0EtWjAtOV17MTd9JCcpLA0KCQkJJ1JFJyA9PiBhcnJheSgyMywgJ15bMC05XXs1fVswLTldezV9W0EtWjAtOV17MTF9WzAtOV17Mn0kJyksDQoJCQknUk8nID0+IGFycmF5KDIwLCAnXltBLVpdezR9W0EtWjAtOV17MTZ9JCcpLA0KCQkJJ1JTJyA9PiBhcnJheSgxOCwgJ15bMC05XXszfVswLTldezEzfVswLTldezJ9JCcpLA0KCQkJJ1NBJyA9PiBhcnJheSgyMCwgJ15bMC05XXsyfVtBLVowLTldezE4fSQnKSwNCgkJCSdTQycgPT4gYXJyYXkoMjcsICdeW0EtWl17NH1bMC05XXs0fVswLTldezE2fVtBLVpdezN9JCcpLA0KCQkJJ1NFJyA9PiBhcnJheSgyMCwgJ15bMC05XXszfVswLTldezE2fVswLTldezF9JCcpLA0KCQkJJ1NJJyA9PiBhcnJheSgxNSwgJ15bMC05XXs1fVswLTldezh9WzAtOV17Mn0kJyksDQoJCQknU0snID0+IGFycmF5KDIwLCAnXlswLTldezR9WzAtOV17Nn1bMC05XXsxMH0kJyksDQoJCQknU00nID0+IGFycmF5KDIzLCAnXltBLVpdezF9WzAtOV17NX1bMC05XXs1fVtBLVowLTldezEyfSQnKSwNCgkJCSdTTicgPT4gYXJyYXkoMjQsICdeW0EtWl17MX1bMC05XXsyM30kJyksDQoJCQknU1QnID0+IGFycmF5KDIxLCAnXlswLTldezh9WzAtOV17MTF9WzAtOV17Mn0kJyksDQoJCQknVEYnID0+IGFycmF5KDIzLCAnXlswLTldezV9WzAtOV17NX1bQS1aMC05XXsxMX1bMC05XXsyfSQnKSwNCgkJCSdUTCcgPT4gYXJyYXkoMTksICdeWzAtOV17M31bMC05XXsxNH1bMC05XXsyfSQnKSwNCgkJCSdUTicgPT4gYXJyYXkoMjAsICdeWzAtOV17Mn1bMC05XXszfVswLTldezEzfVswLTldezJ9JCcpLA0KCQkJJ1RSJyA9PiBhcnJheSgyMiwgJ15bMC05XXs1fVswLTldezF9W0EtWjAtOV17MTZ9JCcpLA0KCQkJJ1VBJyA9PiBhcnJheSgyNSwgJ15bMC05XXs2fVtBLVowLTldezE5fSQnKSwNCgkJCSdWRycgPT4gYXJyYXkoMjAsICdeW0EtWl17NH1bMC05XXsxNn0kJyksDQoJCQknV0YnID0+IGFycmF5KDIzLCAnXlswLTldezV9WzAtOV17NX1bQS1aMC05XXsxMX1bMC05XXsyfSQnKSwNCgkJCSdYSycgPT4gYXJyYXkoMTYsICdeWzAtOV17NH1bMC05XXsxMH1bMC05XXsyfSQnKSwNCgkJCSdZVCcgPT4gYXJyYXkoMjMsICdeWzAtOV17NX1bMC05XXs1fVtBLVowLTldezExfVswLTldezJ9JCcpDQoJCSk7DQoNCgkJLy8gQ0xFQU4gVVAgSUJBTg0KCQkkaWJhbiA9IHByZWdfcmVwbGFjZSgnL1teYS16MC05XSsvaScsICcnLCB0cmltKHN0cnRvdXBwZXIoJHZhbHVlKSkpOw0KDQoJCS8vIENIRUNLIENvdW50cnkgQ29kZQ0KCQkkY291bnRyeUNvZGUgPSBzdWJzdHIoJGliYW4sICRjb3VudHJ5Q29kZU9mZnNldCwgJGNvdW50cnlDb2RlTGVuZ3RoKTsNCgkJJGlzQ291bnRyeUNvZGVWYWxpZCA9ICEoaXNzZXQoJGliYW5Gb3JtYXRNYXBbJGNvdW50cnlDb2RlXSkgPT09IGZhbHNlKTsNCg0KCQkkdmFsaWRMZW5ndGggPSAkY291bnRyeUNvZGVMZW5ndGggKyAkY2hlY2tzdW1MZW5ndGggKyAkaWJhbkZvcm1hdE1hcFskY291bnRyeUNvZGVdWzBdOw0KCQkkaXNMZW5ndGhWYWxpZCA9IHN0cmxlbigkaWJhbikgPT09ICR2YWxpZExlbmd0aDsNCg0KCQkkYWNjb3VudElkZW50aWZpY2F0aW9uID0gc3Vic3RyKCRpYmFuLCAkaW5zdGl0dXRlSWRlbnRpZmljYXRpb25PZmZzZXQpOw0KCQkkaXNGb3JtYXRWYWxpZCA9ICEocHJlZ19tYXRjaCgnLycgLiAkaWJhbkZvcm1hdE1hcFskY291bnRyeUNvZGVdWzFdIC4gJy8nLCAkYWNjb3VudElkZW50aWZpY2F0aW9uKSAhPT0gMSk7DQoNCgkJJGNoZWNrc3VtID0gc3Vic3RyKCRpYmFuLCAkY2hlY2tzdW1PZmZzZXQsICRjaGVja3N1bUxlbmd0aCk7DQoJCSRhY2NvdW50SWRlbnRpZmljYXRpb24gPSBzdWJzdHIoJGliYW4sICRpbnN0aXR1dGVJZGVudGlmaWNhdGlvbk9mZnNldCk7DQoNCgkJLy8gR0VUIE5VTUVSSUMgQ09VTlRSWSBDT0RFDQoJCSRudW1lcmljUmVwcmVzZW50YXRpb24gPSAnJzsNCgkJJGxldHRlclJlcHJlc2VudGF0aW9uID0gJGNvdW50cnlDb2RlOw0KCQlmb3JlYWNoIChzdHJfc3BsaXQoJGxldHRlclJlcHJlc2VudGF0aW9uKSBhcyAkY2hhcikNCgkJew0KCQkJJG9yZCA9IG9yZCgkY2hhcik7DQoJCQlpZiAoJG9yZCA+PSA2NSAmJiAkb3JkIDw9IDkwKQ0KCQkJew0KCQkJCSRudW1lcmljUmVwcmVzZW50YXRpb24gLj0gKHN0cmluZykgKCRvcmQgLSA1NSk7DQoJCQl9DQoJCQllbHNlaWYgKCRvcmQgPj0gNDggJiYgJG9yZCA8PSA1NykNCgkJCXsNCgkJCQkkbnVtZXJpY1JlcHJlc2VudGF0aW9uIC49IChzdHJpbmcpICgkb3JkIC0gNDgpOw0KCQkJfQ0KCQl9DQoJCSRudW1lcmljQ291bnRyeUNvZGUgPSAkbnVtZXJpY1JlcHJlc2VudGF0aW9uOw0KDQoJCSRudW1lcmljUmVwcmVzZW50YXRpb24gPSAnJzsNCgkJJGxldHRlclJlcHJlc2VudGF0aW9uID0gJGFjY291bnRJZGVudGlmaWNhdGlvbjsNCgkJZm9yZWFjaCAoc3RyX3NwbGl0KCRsZXR0ZXJSZXByZXNlbnRhdGlvbikgYXMgJGNoYXIpDQoJCXsNCgkJCSRvcmQgPSBvcmQoJGNoYXIpOw0KCQkJaWYgKCRvcmQgPj0gNjUgJiYgJG9yZCA8PSA5MCkNCgkJCXsNCgkJCQkkbnVtZXJpY1JlcHJlc2VudGF0aW9uIC49IChzdHJpbmcpICgkb3JkIC0gNTUpOw0KCQkJfQ0KCQkJZWxzZWlmICgkb3JkID49IDQ4ICYmICRvcmQgPD0gNTcpDQoJCQl7DQoJCQkJJG51bWVyaWNSZXByZXNlbnRhdGlvbiAuPSAoc3RyaW5nKSAoJG9yZCAtIDQ4KTsNCgkJCX0NCgkJfQ0KCQkkbnVtZXJpY0FjY291bnRJZGVudGlmaWNhdGlvbiA9ICRudW1lcmljUmVwcmVzZW50YXRpb247DQoJCSRpbnZlcnRlZEliYW4gPSAkbnVtZXJpY0FjY291bnRJZGVudGlmaWNhdGlvbiAuICRudW1lcmljQ291bnRyeUNvZGUgLiAkY2hlY2tzdW07DQoNCgkJLy8gQ0hFQ0tTVU0gQkNNT0QNCgkJJHggPSAkaW52ZXJ0ZWRJYmFuOw0KCQkkeSA9IDk3Ow0KCQlpZiAoIWZ1bmN0aW9uX2V4aXN0cygnYmNtb2QnKSkNCgkJew0KCQkJJHRha2UgPSA1Ow0KCQkJJG1vZCA9ICcnOw0KCQkJZG8gew0KCQkJCSRhID0gKGludCkkbW9kIC4gc3Vic3RyKCR4LCAwLCAkdGFrZSk7DQoJCQkJJHggPSBzdWJzdHIoJHgsICR0YWtlKTsNCgkJCQkkbW9kID0gJGEgJSAkeTsNCgkJCX0gd2hpbGUgKHN0cmxlbigkeCkpOw0KCQkJJGJjbW9kID0gKHN0cmluZykkbW9kOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJJGJjbW9kID0gYmNtb2QoJHgsICR5KTsNCgkJfQ0KDQoJCSRpc0NoZWNrc3VtVmFsaWQgPSAkYmNtb2QgPT09ICcxJzsNCg0KCQlpZiAoISRpc0NvdW50cnlDb2RlVmFsaWQgfHwgISRpc0xlbmd0aFZhbGlkIHx8ICEkaXNGb3JtYXRWYWxpZCB8fCAhJGlzQ2hlY2tzdW1WYWxpZCkNCgkJew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkgICAgcmV0dXJuIHRydWU7DQoJCX0NCgl9', 'IBAN validation', 1, '2019-02-12 23:14:43'); -- @@ -2294,7 +2295,7 @@ INSERT INTO `#__componentbuilder_component_admin_views` (`id`, `addadmin_views`, -- INSERT INTO `#__componentbuilder_component_site_views` (`id`, `addsite_views`, `joomla_component`, `published`, `created`, `modified`, `version`, `hits`, `ordering`) VALUES -(27, '{\"addsite_views0\":{\"siteview\":\"23\",\"menu\":\"1\",\"metadata\":\"1\",\"default_view\":\"1\",\"access\":\"1\",\"public_access\":\"1\"},\"addsite_views1\":{\"siteview\":\"25\",\"metadata\":\"1\",\"access\":\"1\",\"public_access\":\"1\"}}', 25, 1, '2017-10-28 03:56:26', '2018-04-15 16:22:24', 3, '', ''); +(27, '{\"addsite_views0\":{\"siteview\":\"23\",\"menu\":\"1\",\"metadata\":\"1\",\"default_view\":\"1\",\"access\":\"1\",\"public_access\":\"1\"},\"addsite_views1\":{\"siteview\":\"25\",\"metadata\":\"1\",\"access\":\"1\"}}', 25, 1, '2017-10-28 03:56:26', '2020-02-27 21:32:04', 4, '', ''); -- -- Dumping data for table `#__componentbuilder_component_custom_admin_views` diff --git a/admin/views/joomla_modules/tmpl/default_body.php b/admin/views/joomla_modules/tmpl/default_body.php index e941feef8..168f2ecfe 100644 --- a/admin/views/joomla_modules/tmpl/default_body.php +++ b/admin/views/joomla_modules/tmpl/default_body.php @@ -101,6 +101,9 @@ $edit = "index.php?option=com_componentbuilder&view=joomla_modules&task=joomla_m + + target); ?> + escape($item->description); ?> diff --git a/admin/views/joomla_modules/tmpl/default_foot.php b/admin/views/joomla_modules/tmpl/default_foot.php index d2ec5dd2a..e2b7f794d 100644 --- a/admin/views/joomla_modules/tmpl/default_foot.php +++ b/admin/views/joomla_modules/tmpl/default_foot.php @@ -14,5 +14,5 @@ defined('_JEXEC') or die('Restricted access'); ?> - pagination->getListFooter(); ?> + pagination->getListFooter(); ?> \ No newline at end of file diff --git a/admin/views/joomla_modules/tmpl/default_head.php b/admin/views/joomla_modules/tmpl/default_head.php index e05683d52..0ca94b9c1 100644 --- a/admin/views/joomla_modules/tmpl/default_head.php +++ b/admin/views/joomla_modules/tmpl/default_head.php @@ -32,6 +32,9 @@ defined('_JEXEC') or die('Restricted access'); listDirn, $this->listOrder); ?> + + + listDirn, $this->listOrder); ?> diff --git a/admin/views/joomla_modules/view.html.php b/admin/views/joomla_modules/view.html.php index 498da050b..41b4dfee9 100644 --- a/admin/views/joomla_modules/view.html.php +++ b/admin/views/joomla_modules/view.html.php @@ -184,6 +184,36 @@ class ComponentbuilderViewJoomla_modules extends JViewLegacy 'batch[access]', JHtml::_('select.options', JHtml::_('access.assetgroups'), 'value', 'text') ); + } + + // Set Target Selection + $this->targetOptions = $this->getTheTargetSelections(); + // We do some sanitation for Target filter + if (ComponentbuilderHelper::checkArray($this->targetOptions) && + isset($this->targetOptions[0]->value) && + !ComponentbuilderHelper::checkString($this->targetOptions[0]->value)) + { + unset($this->targetOptions[0]); + } + // Only load Target filter if it has values + if (ComponentbuilderHelper::checkArray($this->targetOptions)) + { + // Target Filter + JHtmlSidebar::addFilter( + '- Select '.JText::_('COM_COMPONENTBUILDER_JOOMLA_MODULE_TARGET_LABEL').' -', + 'filter_target', + JHtml::_('select.options', $this->targetOptions, 'value', 'text', $this->state->get('filter.target')) + ); + + if ($this->canBatch && $this->canCreate && $this->canEdit) + { + // Target Batch Selection + JHtmlBatch_::addListSelection( + '- Keep Original '.JText::_('COM_COMPONENTBUILDER_JOOMLA_MODULE_TARGET_LABEL').' -', + 'batch[target]', + JHtml::_('select.options', $this->targetOptions, 'value', 'text') + ); + } } } @@ -234,5 +264,41 @@ class ComponentbuilderViewJoomla_modules extends JViewLegacy 'a.description' => JText::_('COM_COMPONENTBUILDER_JOOMLA_MODULE_DESCRIPTION_LABEL'), 'a.id' => JText::_('JGRID_HEADING_ID') ); + } + + protected function getTheTargetSelections() + { + // Get a db connection. + $db = JFactory::getDbo(); + + // Create a new query object. + $query = $db->getQuery(true); + + // Select the text. + $query->select($db->quoteName('target')); + $query->from($db->quoteName('#__componentbuilder_joomla_module')); + $query->order($db->quoteName('target') . ' ASC'); + + // Reset the query using our newly populated query object. + $db->setQuery($query); + + $results = $db->loadColumn(); + + if ($results) + { + // get model + $model = $this->getModel(); + $results = array_unique($results); + $_filter = array(); + foreach ($results as $target) + { + // Translate the target selection + $text = $model->selectionTranslation($target,'target'); + // Now add the target and its text to the options array + $_filter[] = JHtml::_('select.option', $target, JText::_($text)); + } + return $_filter; + } + return false; } } diff --git a/componentbuilder.xml b/componentbuilder.xml index eb0c3abdf..7f5327984 100644 --- a/componentbuilder.xml +++ b/componentbuilder.xml @@ -1,15 +1,15 @@ COM_COMPONENTBUILDER - 27th February, 2020 + 13th March, 2020 Llewellyn van der Merwe llewellyn@joomlacomponentbuilder.com http://www.joomlacomponentbuilder.com Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved. GNU General Public License version 2 or later; see LICENSE.txt - 2.10.11 + 2.10.12 Component Builder (v.2.10.11) +

Component Builder (v.2.10.12)

The Component Builder for [Joomla](https://extensions.joomla.org/extension/component-builder/) is highly advanced tool that is truly able to build extremely complex components in a fraction of the time. diff --git a/componentbuilder_update_server.xml b/componentbuilder_update_server.xml index 976efb168..f72ddbb73 100644 --- a/componentbuilder_update_server.xml +++ b/componentbuilder_update_server.xml @@ -934,4 +934,21 @@ http://www.joomlacomponentbuilder.com + + Component Builder + Builds Complex Joomla Components + com_componentbuilder + component + 2.10.12 + http://www.joomlacomponentbuilder.com + + http://domain.com/demo.zip + + + stable + + Llewellyn van der Merwe + http://www.joomlacomponentbuilder.com + + \ No newline at end of file diff --git a/script.php b/script.php index a6e132946..ff5c32189 100644 --- a/script.php +++ b/script.php @@ -5938,9 +5938,9 @@ class com_componentbuilderInstallerScript $joomla_module->type_title = 'Componentbuilder Joomla_module'; $joomla_module->type_alias = 'com_componentbuilder.joomla_module'; $joomla_module->table = '{"special": {"dbtable": "#__componentbuilder_joomla_module","key": "id","type": "Joomla_module","prefix": "componentbuilderTable","config": "array()"},"common": {"dbtable": "#__ucm_content","key": "ucm_id","type": "Corecontent","prefix": "JTable","config": "array()"}}'; - $joomla_module->field_mappings = '{"common": {"core_content_item_id": "id","core_title": "system_name","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "default","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "null","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "null","core_metadesc": "null","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"system_name":"system_name","description":"description","add_php_postflight_install":"add_php_postflight_install","add_php_preflight_uninstall":"add_php_preflight_uninstall","update_server":"update_server","update_server_target":"update_server_target","addreadme":"addreadme","add_sql":"add_sql","snippet":"snippet","libraries":"libraries","add_php_postflight_update":"add_php_postflight_update","add_php_method_uninstall":"add_php_method_uninstall","default":"default","add_sql_uninstall":"add_sql_uninstall","add_update_server":"add_update_server","not_required":"not_required","module_version":"module_version","sales_server":"sales_server","custom_get":"custom_get","php_preflight_update":"php_preflight_update","php_preflight_uninstall":"php_preflight_uninstall","mod_code":"mod_code","php_postflight_install":"php_postflight_install","add_class_helper":"add_class_helper","php_postflight_update":"php_postflight_update","add_class_helper_header":"add_class_helper_header","php_method_uninstall":"php_method_uninstall","class_helper_header":"class_helper_header","sql":"sql","class_helper_code":"class_helper_code","sql_uninstall":"sql_uninstall","readme":"readme","add_php_script_construct":"add_php_script_construct","update_server_url":"update_server_url","php_script_construct":"php_script_construct","add_php_preflight_install":"add_php_preflight_install","php_preflight_install":"php_preflight_install","add_sales_server":"add_sales_server","add_php_preflight_update":"add_php_preflight_update","guid":"guid","name":"name"}}'; + $joomla_module->field_mappings = '{"common": {"core_content_item_id": "id","core_title": "system_name","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "default","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "null","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "null","core_metadesc": "null","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"system_name":"system_name","target":"target","description":"description","add_php_method_uninstall":"add_php_method_uninstall","add_php_postflight_update":"add_php_postflight_update","add_php_postflight_install":"add_php_postflight_install","add_php_preflight_uninstall":"add_php_preflight_uninstall","addreadme":"addreadme","not_required":"not_required","default":"default","snippet":"snippet","add_sql":"add_sql","update_server_target":"update_server_target","add_sql_uninstall":"add_sql_uninstall","update_server":"update_server","add_update_server":"add_update_server","libraries":"libraries","module_version":"module_version","sales_server":"sales_server","custom_get":"custom_get","php_preflight_update":"php_preflight_update","php_preflight_uninstall":"php_preflight_uninstall","mod_code":"mod_code","php_postflight_install":"php_postflight_install","add_class_helper":"add_class_helper","php_postflight_update":"php_postflight_update","add_class_helper_header":"add_class_helper_header","php_method_uninstall":"php_method_uninstall","class_helper_header":"class_helper_header","sql":"sql","class_helper_code":"class_helper_code","sql_uninstall":"sql_uninstall","readme":"readme","add_php_script_construct":"add_php_script_construct","update_server_url":"update_server_url","php_script_construct":"php_script_construct","add_php_preflight_install":"add_php_preflight_install","php_preflight_install":"php_preflight_install","add_sales_server":"add_sales_server","add_php_preflight_update":"add_php_preflight_update","guid":"guid","name":"name"}}'; $joomla_module->router = 'ComponentbuilderHelperRoute::getJoomla_moduleRoute'; - $joomla_module->content_history_options = '{"formFile": "administrator/components/com_componentbuilder/models/forms/joomla_module.xml","hideFields": ["asset_id","checked_out","checked_out_time","version","not_required"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","add_php_postflight_install","add_php_preflight_uninstall","update_server","update_server_target","addreadme","add_sql","snippet","add_php_postflight_update","add_php_method_uninstall","add_sql_uninstall","add_update_server","sales_server","add_class_helper","add_class_helper_header","add_php_script_construct","add_php_preflight_install","add_sales_server","add_php_preflight_update"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "update_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "snippet","targetTable": "#__componentbuilder_snippet","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "libraries","targetTable": "#__componentbuilder_library","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "sales_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "custom_get","targetTable": "#__componentbuilder_dynamic_get","targetColumn": "id","displayColumn": "name"}]}'; + $joomla_module->content_history_options = '{"formFile": "administrator/components/com_componentbuilder/models/forms/joomla_module.xml","hideFields": ["asset_id","checked_out","checked_out_time","version","not_required"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","target","add_php_method_uninstall","add_php_postflight_update","add_php_postflight_install","add_php_preflight_uninstall","addreadme","snippet","add_sql","update_server_target","add_sql_uninstall","update_server","add_update_server","sales_server","add_class_helper","add_class_helper_header","add_php_script_construct","add_php_preflight_install","add_sales_server","add_php_preflight_update"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "snippet","targetTable": "#__componentbuilder_snippet","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "update_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "libraries","targetTable": "#__componentbuilder_library","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "sales_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "custom_get","targetTable": "#__componentbuilder_dynamic_get","targetColumn": "id","displayColumn": "name"}]}'; // Set the object into the content types table. $joomla_module_Inserted = $db->insertObject('#__content_types', $joomla_module); @@ -7380,9 +7380,9 @@ class com_componentbuilderInstallerScript $joomla_module->type_title = 'Componentbuilder Joomla_module'; $joomla_module->type_alias = 'com_componentbuilder.joomla_module'; $joomla_module->table = '{"special": {"dbtable": "#__componentbuilder_joomla_module","key": "id","type": "Joomla_module","prefix": "componentbuilderTable","config": "array()"},"common": {"dbtable": "#__ucm_content","key": "ucm_id","type": "Corecontent","prefix": "JTable","config": "array()"}}'; - $joomla_module->field_mappings = '{"common": {"core_content_item_id": "id","core_title": "system_name","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "default","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "null","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "null","core_metadesc": "null","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"system_name":"system_name","description":"description","add_php_postflight_install":"add_php_postflight_install","add_php_preflight_uninstall":"add_php_preflight_uninstall","update_server":"update_server","update_server_target":"update_server_target","addreadme":"addreadme","add_sql":"add_sql","snippet":"snippet","libraries":"libraries","add_php_postflight_update":"add_php_postflight_update","add_php_method_uninstall":"add_php_method_uninstall","default":"default","add_sql_uninstall":"add_sql_uninstall","add_update_server":"add_update_server","not_required":"not_required","module_version":"module_version","sales_server":"sales_server","custom_get":"custom_get","php_preflight_update":"php_preflight_update","php_preflight_uninstall":"php_preflight_uninstall","mod_code":"mod_code","php_postflight_install":"php_postflight_install","add_class_helper":"add_class_helper","php_postflight_update":"php_postflight_update","add_class_helper_header":"add_class_helper_header","php_method_uninstall":"php_method_uninstall","class_helper_header":"class_helper_header","sql":"sql","class_helper_code":"class_helper_code","sql_uninstall":"sql_uninstall","readme":"readme","add_php_script_construct":"add_php_script_construct","update_server_url":"update_server_url","php_script_construct":"php_script_construct","add_php_preflight_install":"add_php_preflight_install","php_preflight_install":"php_preflight_install","add_sales_server":"add_sales_server","add_php_preflight_update":"add_php_preflight_update","guid":"guid","name":"name"}}'; + $joomla_module->field_mappings = '{"common": {"core_content_item_id": "id","core_title": "system_name","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "default","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "null","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "null","core_metadesc": "null","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"system_name":"system_name","target":"target","description":"description","add_php_method_uninstall":"add_php_method_uninstall","add_php_postflight_update":"add_php_postflight_update","add_php_postflight_install":"add_php_postflight_install","add_php_preflight_uninstall":"add_php_preflight_uninstall","addreadme":"addreadme","not_required":"not_required","default":"default","snippet":"snippet","add_sql":"add_sql","update_server_target":"update_server_target","add_sql_uninstall":"add_sql_uninstall","update_server":"update_server","add_update_server":"add_update_server","libraries":"libraries","module_version":"module_version","sales_server":"sales_server","custom_get":"custom_get","php_preflight_update":"php_preflight_update","php_preflight_uninstall":"php_preflight_uninstall","mod_code":"mod_code","php_postflight_install":"php_postflight_install","add_class_helper":"add_class_helper","php_postflight_update":"php_postflight_update","add_class_helper_header":"add_class_helper_header","php_method_uninstall":"php_method_uninstall","class_helper_header":"class_helper_header","sql":"sql","class_helper_code":"class_helper_code","sql_uninstall":"sql_uninstall","readme":"readme","add_php_script_construct":"add_php_script_construct","update_server_url":"update_server_url","php_script_construct":"php_script_construct","add_php_preflight_install":"add_php_preflight_install","php_preflight_install":"php_preflight_install","add_sales_server":"add_sales_server","add_php_preflight_update":"add_php_preflight_update","guid":"guid","name":"name"}}'; $joomla_module->router = 'ComponentbuilderHelperRoute::getJoomla_moduleRoute'; - $joomla_module->content_history_options = '{"formFile": "administrator/components/com_componentbuilder/models/forms/joomla_module.xml","hideFields": ["asset_id","checked_out","checked_out_time","version","not_required"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","add_php_postflight_install","add_php_preflight_uninstall","update_server","update_server_target","addreadme","add_sql","snippet","add_php_postflight_update","add_php_method_uninstall","add_sql_uninstall","add_update_server","sales_server","add_class_helper","add_class_helper_header","add_php_script_construct","add_php_preflight_install","add_sales_server","add_php_preflight_update"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "update_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "snippet","targetTable": "#__componentbuilder_snippet","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "libraries","targetTable": "#__componentbuilder_library","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "sales_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "custom_get","targetTable": "#__componentbuilder_dynamic_get","targetColumn": "id","displayColumn": "name"}]}'; + $joomla_module->content_history_options = '{"formFile": "administrator/components/com_componentbuilder/models/forms/joomla_module.xml","hideFields": ["asset_id","checked_out","checked_out_time","version","not_required"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","target","add_php_method_uninstall","add_php_postflight_update","add_php_postflight_install","add_php_preflight_uninstall","addreadme","snippet","add_sql","update_server_target","add_sql_uninstall","update_server","add_update_server","sales_server","add_class_helper","add_class_helper_header","add_php_script_construct","add_php_preflight_install","add_sales_server","add_php_preflight_update"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "snippet","targetTable": "#__componentbuilder_snippet","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "update_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "libraries","targetTable": "#__componentbuilder_library","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "sales_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "custom_get","targetTable": "#__componentbuilder_dynamic_get","targetColumn": "id","displayColumn": "name"}]}'; // Check if joomla_module type is already in content_type DB. $joomla_module_id = null; @@ -9115,7 +9115,7 @@ class com_componentbuilderInstallerScript echo ' -

Upgrade to Version 2.10.11 Was Successful! Let us know if anything is not working as expected.

'; +

Upgrade to Version 2.10.12 Was Successful! Let us know if anything is not working as expected.

'; // Set db if not set already. if (!isset($db))