Added Joomla Module builder - Compiler

This commit is contained in:
Llewellyn van der Merwe 2019-12-06 07:31:32 +02:00
parent ffbb733576
commit e4d1917c19
No known key found for this signature in database
GPG Key ID: CAD7B16D27AF28C5
33 changed files with 2648 additions and 529 deletions

View File

@ -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.6) 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.8) 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,14 +144,14 @@ 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*: 3rd December, 2019
+ *Version*: 2.10.6
+ *Last Build*: 6th December, 2019
+ *Version*: 2.10.8
+ *Copyright*: Copyright (C) 2015 - 2019 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
+ *Line count*: **273117**
+ *Field count*: **1474**
+ *File count*: **1719**
+ *Folder count*: **274**
+ *Line count*: **277334**
+ *Field count*: **1491**
+ *File count*: **1766**
+ *Folder count*: **287**
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](http://joomlacomponentbuilder.com).
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)

View File

@ -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.6) 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.8) 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,14 +144,14 @@ 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*: 3rd December, 2019
+ *Version*: 2.10.6
+ *Last Build*: 6th December, 2019
+ *Version*: 2.10.8
+ *Copyright*: Copyright (C) 2015 - 2019 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
+ *Line count*: **273117**
+ *Field count*: **1474**
+ *File count*: **1719**
+ *Folder count*: **274**
+ *Line count*: **277334**
+ *Field count*: **1491**
+ *File count*: **1766**
+ *Folder count*: **287**
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](http://joomlacomponentbuilder.com).
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)

View File

@ -171,6 +171,16 @@
<action name="component_files_folders.edit.own" title="COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_OWN" description="COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_OWN_DESC" />
<action name="component_files_folders.edit.state" title="COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_STATE" description="COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_STATE_DESC" />
<action name="component_files_folders.version" title="COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_VERSION" description="COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_VERSION_DESC" />
<action name="component_modules.access" title="COM_COMPONENTBUILDER_COMPONENTS_MODULES_ACCESS" description="COM_COMPONENTBUILDER_COMPONENTS_MODULES_ACCESS_DESC" />
<action name="component_modules.batch" title="COM_COMPONENTBUILDER_COMPONENTS_MODULES_BATCH_USE" description="COM_COMPONENTBUILDER_COMPONENTS_MODULES_BATCH_USE_DESC" />
<action name="component_modules.create" title="COM_COMPONENTBUILDER_COMPONENTS_MODULES_CREATE" description="COM_COMPONENTBUILDER_COMPONENTS_MODULES_CREATE_DESC" />
<action name="component_modules.delete" title="COM_COMPONENTBUILDER_COMPONENTS_MODULES_DELETE" description="COM_COMPONENTBUILDER_COMPONENTS_MODULES_DELETE_DESC" />
<action name="component_modules.edit" title="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT" description="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_DESC" />
<action name="component_modules.edit.created_by" title="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_CREATED_BY" description="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_CREATED_BY_DESC" />
<action name="component_modules.edit.created" title="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_CREATED_DATE" description="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_CREATED_DATE_DESC" />
<action name="component_modules.edit.own" title="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_OWN" description="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_OWN_DESC" />
<action name="component_modules.edit.state" title="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_STATE" description="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_STATE_DESC" />
<action name="component_modules.version" title="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_VERSION" description="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_VERSION_DESC" />
<action name="component_mysql_tweaks.access" title="COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_ACCESS" description="COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_ACCESS_DESC" />
<action name="component_mysql_tweaks.batch" title="COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_BATCH_USE" description="COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_BATCH_USE_DESC" />
<action name="component_mysql_tweaks.create" title="COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_CREATE" description="COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_CREATE_DESC" />
@ -914,6 +924,17 @@
<action name="component_plugins.access" title="COM_COMPONENTBUILDER_COMPONENTS_PLUGINS_ACCESS" description="COM_COMPONENTBUILDER_COMPONENTS_PLUGINS_ACCESS_DESC" />
<action name="component_plugins.version" title="COM_COMPONENTBUILDER_COMPONENTS_PLUGINS_EDIT_VERSION" description="COM_COMPONENTBUILDER_COMPONENTS_PLUGINS_EDIT_VERSION_DESC" />
</section>
<section name="component_modules">
<action name="component_modules.edit" title="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT" description="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_DESC" />
<action name="component_modules.edit.own" title="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_OWN" description="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_OWN_DESC" />
<action name="component_modules.edit.state" title="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_STATE" description="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_STATE_DESC" />
<action name="component_modules.edit.created_by" title="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_CREATED_BY" description="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_CREATED_BY_DESC" />
<action name="component_modules.edit.created" title="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_CREATED_DATE" description="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_CREATED_DATE_DESC" />
<action name="component_modules.create" title="COM_COMPONENTBUILDER_COMPONENTS_MODULES_CREATE" description="COM_COMPONENTBUILDER_COMPONENTS_MODULES_CREATE_DESC" />
<action name="component_modules.delete" title="COM_COMPONENTBUILDER_COMPONENTS_MODULES_DELETE" description="COM_COMPONENTBUILDER_COMPONENTS_MODULES_DELETE_DESC" />
<action name="component_modules.access" title="COM_COMPONENTBUILDER_COMPONENTS_MODULES_ACCESS" description="COM_COMPONENTBUILDER_COMPONENTS_MODULES_ACCESS_DESC" />
<action name="component_modules.version" title="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_VERSION" description="COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_VERSION_DESC" />
</section>
<section name="snippet_type">
<action name="snippet_type.edit" title="COM_COMPONENTBUILDER_SNIPPET_TYPES_EDIT" description="COM_COMPONENTBUILDER_SNIPPET_TYPES_EDIT_DESC" />
<action name="snippet_type.edit.own" title="COM_COMPONENTBUILDER_SNIPPET_TYPES_EDIT_OWN" description="COM_COMPONENTBUILDER_SNIPPET_TYPES_EDIT_OWN_DESC" />

View File

@ -127,6 +127,7 @@ class ComponentbuilderController extends JControllerLegacy
'component_files_folders' => 'components_files_folders',
'component_placeholders' => 'components_placeholders',
'component_plugins' => 'components_plugins',
'component_modules' => 'components_modules',
'snippet_type' => 'snippet_types',
'library_config' => 'libraries_config',
'library_files_folders_urls' => 'libraries_files_folders_urls',

View File

@ -95,14 +95,30 @@ class ComponentbuilderControllerCompiler extends JControllerAdmin
}
$message .= '<p><button class="btn btn-small btn-success" onclick="Joomla.submitbutton(\'compiler.installCompiledComponent\')">';
$message .= 'Install ' . $model->compiler->filepath['component-folder'] . ' on this <span class="icon-joomla icon-white"></span>Joomla website. (component)</button></p>';
// switch to set multi install button
$add_multi_install = true;
// check if we have modules
if (ComponentbuilderHelper::checkArray($model->compiler->filepath['modules']))
{
foreach ($model->compiler->filepath['modules-folder'] as $module_id => $module_folder)
{
$message .= '<p><button class="btn btn-small btn-success" onclick="Joomla.submitbutton(\'compiler.installCompiledModule\', ' . (int) $module_id . ')">';
$message .= 'Install ' . $module_folder . ' on this <span class="icon-joomla icon-white"></span>Joomla website. (module)</button></p>';
}
}
// check if we have plugins
if (ComponentbuilderHelper::checkArray($model->compiler->filepath['plugins']))
{
$add_multi_install = true;
foreach ($model->compiler->filepath['plugins-folder'] as $plugin_id => $plugin_folder)
{
$message .= '<p><button class="btn btn-small btn-success" onclick="Joomla.submitbutton(\'compiler.installCompiledPlugin\', ' . (int) $plugin_id . ')">';
$message .= 'Install ' . $plugin_folder . ' on this <span class="icon-joomla icon-white"></span>Joomla website. (plugin)</button></p>';
}
}
// set multi install button
if ($add_multi_install)
{
$message .= '<h4>You can install all compiled extensions!</h4>';
$message .= '<p><button class="btn btn-small btn-success" onclick="Joomla.submitbutton(\'compiler.installCompiledExtensions\')">';
$message .= 'Install all above extensions on this <span class="icon-joomla icon-white"></span>Joomla website.</button></p>';
@ -122,13 +138,16 @@ class ComponentbuilderControllerCompiler extends JControllerAdmin
$message .= '<p><b>'.$model->compiler->actualTotalHours.' Hours</b> or <b>'.$model->compiler->actualTotalDays.' Eight Hour Days</b> <em>(a total of the realistic time frame for this project)</em><br />';
$message .= '<small>(if creating a folder and file took <b>5 seconds</b> and writing one line of code took <b>10 seconds</b>, with the normal everyday realities at the office, that includes the component planning, mapping & debugging.)</small></p>';
$message .= '<p>Project duration: <b>'.$model->compiler->projectWeekTime. ' weeks</b> or <b>'.$model->compiler->projectMonthTime.' months</b></p>';
// check if we have plugins
if (ComponentbuilderHelper::checkArray($model->compiler->filepath['plugins']))
// check if we have modules or plugins
if (ComponentbuilderHelper::checkArray($model->compiler->filepath['plugins']) || ComponentbuilderHelper::checkArray($model->compiler->filepath['modules']))
{
$plugin_url = array();
$message .= '<h2>Path to Zip Files</h2>';
$message .= '<p><b>Component Path:</b> <code>' . $model->compiler->filepath['component'] . '</code><br />';
$message .= '<b>Component URL:</b> <code>' . $url . '</code><br /><br />';
// load plugins if found
if (ComponentbuilderHelper::checkArray($model->compiler->filepath['plugins']))
{
$plugin_urls = array();
// load the plugins path/url
foreach ($model->compiler->filepath['plugins'] as $plugin_id => $plugin_path)
{
@ -140,14 +159,43 @@ class ComponentbuilderControllerCompiler extends JControllerAdmin
$message .= '<b>Plugin URL:</b> <code>' . $plugin_urls[$plugin_id] . '</code><br />';
}
}
}
// load modules if found
if (ComponentbuilderHelper::checkArray($model->compiler->filepath['modules']))
{
$module_urls = array();
// load the modules path/url
foreach ($model->compiler->filepath['modules'] as $module_id => $module_path)
{
// set module path
$message .= '<b>Module Path:</b> <code>' . $module_path . '</code><br />';
if (($pos = strpos($module_path, "/tmp/")) !== FALSE)
{
$module_urls[$module_id] = JURI::root() . substr($module_path, $pos + 1);
$message .= '<b>Module URL:</b> <code>' . $module_urls[$module_id] . '</code><br />';
}
}
}
$message .= '<br /><small>Hey! you can also download these zip files right now!</small><br />';
$message .= '<a class="btn btn-success" href="' . $url . '" ><span class="icon-download icon-white"></span>Download Component</a>&nbsp;&nbsp;';
// load the module download URL's
if (isset($module_urls) && ComponentbuilderHelper::checkArray($module_urls))
{
foreach ($module_urls as $module_id => $module_url)
{
$message .= ' <a class="btn btn-success" href="' . $module_url . '" >';
$message .= '<span class="icon-download icon-white"></span>Download ' . $model->compiler->filepath['modules-folder'][$module_id] . '</a>&nbsp;&nbsp;';
}
}
// load the plugin download URL's
if (isset($plugin_urls) && ComponentbuilderHelper::checkArray($plugin_urls))
{
foreach ($plugin_urls as $plugin_id => $plugin_url)
{
$message .= ' <a class="btn btn-success" href="' . $plugin_url . '" >';
$message .= '<span class="icon-download icon-white"></span>Download ' . $model->compiler->filepath['plugins-folder'][$plugin_id] . '</a>&nbsp;&nbsp;';
}
}
$message .= '</p>';
$message .= '<p><small><b>Remember!</b> These zip files are in your tmp folder and therefore publicly accessible until you click [Clear tmp]!</small></p>';
}
@ -164,6 +212,11 @@ class ComponentbuilderControllerCompiler extends JControllerAdmin
// set redirect
$this->setRedirect($redirect_url, $message, 'message');
$app->setUserState('com_componentbuilder.component_folder_name', $model->compiler->filepath['component-folder']);
// check if we have modules
if (ComponentbuilderHelper::checkArray($model->compiler->filepath['modules']))
{
$app->setUserState('com_componentbuilder.modules_folder_name', $model->compiler->filepath['modules-folder']);
}
// check if we have plugins
if (ComponentbuilderHelper::checkArray($model->compiler->filepath['plugins']))
{
@ -177,6 +230,7 @@ class ComponentbuilderControllerCompiler extends JControllerAdmin
$app->setUserState('com_componentbuilder.message', '');
$app->setUserState('com_componentbuilder.extension_message', '');
$app->setUserState('com_componentbuilder.component_folder_name', '');
$app->setUserState('com_componentbuilder.modules_folder_name', '');
$app->setUserState('com_componentbuilder.plugins_folder_name', '');
// set redirect
$this->setRedirect($redirect_url, $message);
@ -205,8 +259,14 @@ class ComponentbuilderControllerCompiler extends JControllerAdmin
$message = JText::_('COM_COMPONENTBUILDER_COULD_NOT_INSTALL_EXTENTIONS');
$_message = array('success' => array(), 'error' => array());
$app = JFactory::getApplication();
$fileNames = $app->getUserState('com_componentbuilder.plugins_folder_name', array());
// start file name array
$fileNames = array();
$fileNames[] = $app->getUserState('com_componentbuilder.component_folder_name', null);
// check if we have modules
$fileNames = ComponentbuilderHelper::mergeArrays(array($fileNames, $app->getUserState('com_componentbuilder.modules_folder_name', array()) ));
// check if we have plugins
$fileNames = ComponentbuilderHelper::mergeArrays(array($fileNames, $app->getUserState('com_componentbuilder.plugins_folder_name', array()) ));
// loop and install all extensions found
foreach ($fileNames as $fileName)
{
if ($this->installExtension($fileName))
@ -263,6 +323,41 @@ class ComponentbuilderControllerCompiler extends JControllerAdmin
return false;
}
/**
* Install Compiled Module
*
* @return true on success
*/
public function installCompiledModule()
{
// Check for request forgeries
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
// check if user has the right
$user = JFactory::getUser();
// set page redirect
$redirect_url = JRoute::_('index.php?option=com_componentbuilder&view=compiler', false);
$message = JText::_('COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INSTALL_THE_MODULE');
if($user->authorise('core.admin'))
{
$message = JText::_('COM_COMPONENTBUILDER_COULD_NOT_INSTALL_MODULE');
$app = JFactory::getApplication();
$fileNames = $app->getUserState('com_componentbuilder.modules_folder_name');
if (ComponentbuilderHelper::checkArray($fileNames))
{
$jinput = JFactory::getApplication()->input;
$moduleId = $jinput->post->get('install_item_id', 0, 'INT');
if ($moduleId > 0 && isset($fileNames[$moduleId]) && $this->installExtension($fileNames[$moduleId]))
{
$message = JText::sprintf('COM_COMPONENTBUILDER_ONLY_SZIP_FILE_WAS_REMOVED_THE_FROM_TMP_FOLDER_DURING_INSTALLATION', $fileNames[$moduleId]);
$this->setRedirect($redirect_url, $message, 'message');
return true;
}
}
}
$this->setRedirect($redirect_url, $message, 'error');
return false;
}
/**
* Install Compiled Plugin
*

View File

@ -157,6 +157,8 @@ class Compiler extends Infusion
// done with error
return false;
}
// if there are modules zip them
$this->zipModules();
// if there are plugins zip them
$this->zipPlugins();
// do lang mismatch check
@ -268,6 +270,62 @@ class Compiler extends Infusion
}
// free up some memory
unset($this->newFiles['dynamic']);
// do modules if found
if (ComponentbuilderHelper::checkArray($this->joomlaModules))
{
foreach ($this->joomlaModules as $module)
{
if (ComponentbuilderHelper::checkObject($module) && isset($this->newFiles[$module->key]) && ComponentbuilderHelper::checkArray($this->newFiles[$module->key]))
{
// move field or rule if needed
if (isset($module->fields_rules_paths) && $module->fields_rules_paths == 2)
{
// check the config fields
if (isset($module->config_fields) && ComponentbuilderHelper::checkArray($module->config_fields))
{
foreach ($module->config_fields as $field_name => $fieldsets)
{
foreach ($fieldsets as $fieldset => $fields)
{
foreach ($fields as $field)
{
$this->moveFieldsRules($field, $module->folder_path);
}
}
}
}
// check the fieldsets
if (isset($module->form_files) && ComponentbuilderHelper::checkArray($module->form_files))
{
foreach($module->form_files as $file => $files)
{
foreach ($files as $field_name => $fieldsets)
{
foreach ($fieldsets as $fieldset => $fields)
{
foreach ($fields as $field)
{
$this->moveFieldsRules($field, $module->folder_path);
}
}
}
}
}
}
// update the module files
foreach ($this->newFiles[$module->key] as $module_file)
{
if (JFile::exists($module_file['path']))
{
$this->setFileContent($module_file['name'], $module_file['path'], $bom, $module->key);
}
}
// free up some memory
unset($this->newFiles[$module->key]);
unset($this->fileContentDynamic[$module->key]);
}
}
}
// do plugins if found
if (ComponentbuilderHelper::checkArray($this->joomlaPlugins))
{
@ -310,7 +368,7 @@ class Compiler extends Infusion
}
}
}
// now move the files
// update the plugin files
foreach ($this->newFiles[$plugin->key] as $plugin_file)
{
if (JFile::exists($plugin_file['path']))
@ -572,6 +630,27 @@ class Compiler extends Infusion
// Trigger Event: jcb_ce_onAfterUpdateRepo
$this->triggerEvent('jcb_ce_onAfterUpdateRepo', array(&$this->componentContext, &$this->componentPath, &$repoFullPath, &$this->componentData));
// move the modules to local folder repos
if (ComponentbuilderHelper::checkArray($this->joomlaModules))
{
foreach ($this->joomlaModules as $module)
{
if (ComponentbuilderHelper::checkObject($module) && isset($module->file_name))
{
$module_context = 'module.' . $module->file_name . '.' . $module->id;
// set the repo path
$repoFullPath = $this->repoPath . '/' . $module->folder_name . '__joomla_' . $this->joomlaVersion;
// Trigger Event: jcb_ce_onBeforeUpdateRepo
$this->triggerEvent('jcb_ce_onBeforeUpdateRepo', array(&$module_context, &$module->folder_path, &$repoFullPath, &$module));
// remove old data
$this->removeFolder($repoFullPath, $this->componentData->toignore);
// set the new data
JFolder::copy($module->folder_path, $repoFullPath, '', true);
// Trigger Event: jcb_ce_onAfterUpdateRepo
$this->triggerEvent('jcb_ce_onAfterUpdateRepo', array(&$module_context, &$module->folder_path, &$repoFullPath, &$module));
}
}
}
// move the plugins to local folder repos
if (ComponentbuilderHelper::checkArray($this->joomlaPlugins))
{
@ -639,6 +718,60 @@ class Compiler extends Infusion
return false;
}
private function zipModules()
{
if (ComponentbuilderHelper::checkArray($this->joomlaModules))
{
foreach ($this->joomlaModules as $module)
{
if (ComponentbuilderHelper::checkObject($module) && isset($module->zip_name)
&& ComponentbuilderHelper::checkString($module->zip_name)
&& isset($module->folder_path)
&& ComponentbuilderHelper::checkString($module->folder_path))
{
// set module context
$module_context = $module->file_name . '.' . $module->id;
// Component Folder Name
$this->filepath['modules-folder'][$module->id] = $module->zip_name;
// the name of the zip file to create
$this->filepath['modules'][$module->id] = $this->tempPath . '/' . $module->zip_name . '.zip';
// Trigger Event: jcb_ce_onBeforeZipModule
$this->triggerEvent('jcb_ce_onBeforeZipModule', array(&$module_context, &$module->folder_path, &$this->filepath['modules'][$module->id], &$this->tempPath, &$module->zip_name, &$module));
//create the zip file
if (ComponentbuilderHelper::zip($module->folder_path, $this->filepath['modules'][$module->id]))
{
// now move to backup if zip was made and backup is required
if ($this->backupPath)
{
$__module_context = 'module.' . $module_context;
// Trigger Event: jcb_ce_onBeforeBackupZip
$this->triggerEvent('jcb_ce_onBeforeBackupZip', array(&$__module_context, &$this->filepath['modules'][$module->id], &$this->tempPath, &$this->backupPath, &$module));
// copy the zip to backup path
JFile::copy($this->filepath['modules'][$module->id], $this->backupPath . '/' . $module->zip_name . '.zip');
}
// move to sales server host
if ($module->add_sales_server == 1)
{
// make sure we have the correct file
if (isset($module->sales_server))
{
// Trigger Event: jcb_ce_onBeforeMoveToServer
$this->triggerEvent('jcb_ce_onBeforeMoveToServer', array(&$__module_context, &$this->filepath['modules'][$module->id], &$this->tempPath, &$module->zip_name, &$module));
// move to server
ComponentbuilderHelper::moveToServer($this->filepath['modules'][$module->id], $module->zip_name . '.zip', (int) $module->sales_server, $module->sales_server_protocol);
}
}
// Trigger Event: jcb_ce_onAfterZipModule
$this->triggerEvent('jcb_ce_onAfterZipModule', array(&$module_context, &$this->filepath['modules'][$module->id], &$this->tempPath, &$module->zip_name, &$module));
// remove the module folder since we are done
$this->removeFolder($module->folder_path);
}
}
}
}
}
private function zipPlugins()
{
if (ComponentbuilderHelper::checkArray($this->joomlaPlugins))

View File

@ -129,6 +129,13 @@ class Get
*/
public $joomlaPlugins = array();
/**
* The Modules data
*
* @var array
*/
public $joomlaModules = array();
/**
* The custom script placeholders - we use the (xxx) to avoid detection it should be (***)
* ##################################---> PHP/JS <---####################################
@ -1036,6 +1043,7 @@ class Get
'j.addfoldersfullpath' => 'addfoldersfullpath',
'c.addsite_views' => 'addsite_views',
'l.addjoomla_plugins' => 'addjoomla_plugins',
'k.addjoomla_modules' => 'addjoomla_modules',
'i.dashboard_tab' => 'dashboard_tab',
'i.php_dashboard_methods' => 'php_dashboard_methods',
'i.id' => 'component_dashboard_id',
@ -1062,7 +1070,8 @@ class Get
'h' => 'component_config',
'i' => 'component_dashboard',
'j' => 'component_files_folders',
'l' => 'component_plugins'
'l' => 'component_plugins',
'k' => 'component_modules'
);
// load the joins
foreach($joiners as $as => $join)
@ -1683,12 +1692,26 @@ class Get
// the default is to ignore the repo folder
$component->toignore = array('.git');
}
// get all modules
$component->addjoomla_modules = (isset($component->addjoomla_modules) && ComponentbuilderHelper::checkJson($component->addjoomla_modules)) ? json_decode($component->addjoomla_modules, true) : null;
if (ComponentbuilderHelper::checkArray($component->addjoomla_modules))
{
$joomla_modules = array_map(function($array) use(&$component) {
// only load the modules whose target association calls for it
if (!isset($array['target']) || $array['target'] != 2)
{
return $this->setJoomlaModule($array['module'], $component);
}
return null;
}, array_values($component->addjoomla_modules));
}
unset($component->addjoomla_modules);
// get all plugins
$component->addjoomla_plugins = (isset($component->addjoomla_plugins) && ComponentbuilderHelper::checkJson($component->addjoomla_plugins)) ? json_decode($component->addjoomla_plugins, true) : null;
if (ComponentbuilderHelper::checkArray($component->addjoomla_plugins))
{
$joomla_plugins = array_map(function($array) use(&$component) {
// only load the plugins whose target association calles for it
// only load the plugins whose target association calls for it
if (!isset($array['target']) || $array['target'] != 2)
{
return $this->setJoomlaPlugin($array['plugin'], $component);
@ -4523,7 +4546,7 @@ class Get
// check if the lib has already been set
if (!isset($this->libraries[$id]))
{
// make sure we should continue and that the lib is not already bein loaded
// make sure we should continue and that the lib is not already being loaded
switch ($id)
{
case 1: // No Library
@ -6218,6 +6241,576 @@ class Get
return false;
}
/**
* get the Joomla Modules IDs
*
* @return array of IDs on success
*
*/
protected function getModuleIDs()
{
if (($addjoomla_modules = ComponentbuilderHelper::getVar('component_modules', $this->componentID, 'joomla_component', 'addjoomla_modules')) !== false)
{
$addjoomla_modules = (ComponentbuilderHelper::checkJson($addjoomla_modules)) ? json_decode($addjoomla_modules, true) : null;
if (ComponentbuilderHelper::checkArray($addjoomla_modules))
{
$joomla_modules = array_filter(
array_values($addjoomla_modules),
function($array){
// only load the modules whose target association call for it
if (!isset($array['target']) || $array['target'] != 2)
{
return true;
}
return false;
});
// if we have values we return IDs
if (ComponentbuilderHelper::checkArray($joomla_modules))
{
return array_map(function($array){
return (int) $array['module'];
}, $joomla_modules);
}
}
}
return false;
}
/**
* set the Joomla modules
*
* @return true
*
*/
public function setJoomlaModule($id, &$component)
{
if (isset($this->joomlaModules[$id]))
{
return true;
}
else
{
// Create a new query object.
$query = $this->db->getQuery(true);
$query->select('a.*');
$query->select(
$this->db->quoteName(
array(
'f.addfiles',
'f.addfolders',
'f.addfilesfullpath',
'f.addfoldersfullpath',
'f.addurls',
'u.version_update',
'u.id'
), array(
'addfiles',
'addfolders',
'addfilesfullpath',
'addfoldersfullpath',
'addurls',
'version_update',
'version_update_id'
)
)
);
// from these tables
$query->from('#__componentbuilder_joomla_module AS a');
$query->join('LEFT', $this->db->quoteName('#__componentbuilder_joomla_module_updates', 'u') . ' ON (' . $this->db->quoteName('a.id') . ' = ' . $this->db->quoteName('u.joomla_module') . ')');
$query->join('LEFT', $this->db->quoteName('#__componentbuilder_joomla_module_files_folders_urls', 'f') . ' ON (' . $this->db->quoteName('a.id') . ' = ' . $this->db->quoteName('f.joomla_module') . ')');
$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())
{
// get the module data
$module = $this->db->loadObject();
// tweak system to set stuff to the module domain
$_backup_target = $this->target;
$_backup_lang = $this->lang;
$_backup_langPrefix = $this->langPrefix;
// set some keys
$module->target_type = 'M0dU|3';
$module->key = $module->id . '_' . $module->target_type;
// update to point to module
$this->target = $module->key;
$this->lang = $module->key;
// set version if not set
if (empty($module->module_version))
{
$module->module_version = '1.0.0';
}
// 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
$module->code_name = ComponentbuilderHelper::safeClassFunctionName($module->name);
// set official name
$module->official_name = ucwords($module->name);
// set langPrefix
$this->langPrefix = 'MOD_' . strtoupper($module->code_name);
// set lang prefix
$module->lang_prefix = $this->langPrefix;
// set module class name
$module->class_helper_name = 'Mod' . ucfirst($module->code_name) . 'Helper';
$module->class_data_name = 'Mod' . ucfirst($module->code_name) . 'Data';
// set module install class name
$module->installer_class_name = 'mod_' . ucfirst($module->code_name) . 'InstallerScript';
// set module folder name
$module->folder_name = 'mod_' . strtolower($module->code_name);
// set the zip name
$module->zip_name = $module->folder_name . '_v' . str_replace('.', '_', $module->module_version). '__J' . $this->joomlaVersion;
// set module file name
$module->file_name = $module->folder_name;
// set official_name lang strings
$this->setLangContent($module->key, $this->langPrefix, $module->official_name);
// set some placeholder for this module
$this->placeholders[$this->bbb . 'Module_name' . $this->ddd] = $module->official_name;
$this->placeholders[$this->bbb . 'Module' . $this->ddd] = ucfirst($module->code_name);
$this->placeholders[$this->bbb . 'module' . $this->ddd] = strtolower($module->code_name);
$this->placeholders[$this->bbb . 'module.version' . $this->ddd] = $module->module_version;
$this->placeholders[$this->bbb . 'module_version' . $this->ddd] = str_replace('.', '_', $module->module_version);
// set description (TODO) add description field to module
if (!isset($module->description) || !ComponentbuilderHelper::checkString($module->description))
{
$module->description = '';
}
else
{
$module->description = $this->setPlaceholders($this->setDynamicValues($module->description), $this->placeholders);
$this->setLangContent($module->key, $module->lang_prefix . '_DESCRIPTION', $module->description);
$module->description = '<p>' . $module->description . '</p>';
}
$module->xml_description = "<h1>" . $module->official_name . " (v." . $module->module_version . ")</h1> <div style='clear: both;'></div>" . $module->description . "<p>Created by <a href='" . trim($component->website) . "' target='_blank'>" . trim(JFilterOutput::cleanText($component->author)) . "</a><br /><small>Development started " . JFactory::getDate($module->created)->format("jS F, Y") . "</small></p>";
// set xml description
$this->setLangContent($module->key, $module->lang_prefix . '_XML_DESCRIPTION', $module->xml_description);
// update the readme if set
if ($module->addreadme == 1 && !empty($module->readme))
{
$module->readme = $this->setPlaceholders($this->setDynamicValues(base64_decode($module->readme)), $this->placeholders);
}
else
{
$module->addreadme = 0;
unset($module->readme);
}
// get the custom_get
$module->custom_get = (isset($module->custom_get) && ComponentbuilderHelper::checkJson($module->custom_get)) ? json_decode($module->custom_get, true) : null;
if (ComponentbuilderHelper::checkArray($module->custom_get))
{
$module->custom_get = $this->setGetData($module->custom_get, $module->key, $module->key);
}
else
{
$module->custom_get = false;
}
// set helper class details
if ($module->add_class_helper >= 1 && ComponentbuilderHelper::checkString($module->class_helper_code))
{
if ($module->add_class_helper_header == 1 && ComponentbuilderHelper::checkString($module->class_helper_header))
{
// set GUI mapper field
$guiMapper['field'] = 'class_helper_header';
// base64 Decode code
$module->class_helper_header = PHP_EOL . $this->setGuiCodePlaceholder(
$this->setPlaceholders($this->setDynamicValues(base64_decode($module->class_helper_header)), $this->placeholders),
$guiMapper
) . PHP_EOL;
}
else
{
$module->add_class_helper_header = 0;
$module->class_helper_header = '';
}
// set GUI mapper field
$guiMapper['field'] = 'class_helper_code';
// base64 Decode code
$module->class_helper_code = $this->setGuiCodePlaceholder(
$this->setPlaceholders($this->setDynamicValues(base64_decode($module->class_helper_code)), $this->placeholders),
$guiMapper
);
// set class type
if ($module->add_class_helper == 2)
{
$module->class_helper_type = 'abstract class ';
}
else
{
$module->class_helper_type = 'class ';
}
}
else
{
$module->add_class_helper = 0;
$module->class_helper_code = '';
$module->class_helper_header = '';
}
// base64 Decode mod_code
if (isset($module->mod_code) && ComponentbuilderHelper::checkString($module->mod_code))
{
// set GUI mapper field
$guiMapper['field'] = 'mod_code';
$module->mod_code = $this->setGuiCodePlaceholder(
$this->setPlaceholders($this->setDynamicValues(base64_decode($module->mod_code)), $this->placeholders),
$guiMapper
);
}
else
{
$module->mod_code = "// get the module class sfx";
$module->mod_code .= PHP_EOL . "\$moduleclass_sfx = htmlspecialchars(\$params->get('moduleclass_sfx'), ENT_COMPAT, 'UTF-8');";
$module->mod_code .= PHP_EOL . "// load the default Tmpl";
$module->mod_code .= PHP_EOL . "require JModuleHelper::getLayoutPath('mod_" . strtolower($module->code_name) . "', \$params->get('layout', 'default'));";
}
// base64 Decode default header
if (isset($module->default_header) && ComponentbuilderHelper::checkString($module->default_header))
{
// set GUI mapper field
$guiMapper['field'] = 'default_header';
$module->default_header = $this->setGuiCodePlaceholder(
$this->setPlaceholders($this->setDynamicValues(base64_decode($module->default_header)), $this->placeholders),
$guiMapper
);
}
else
{
$module->default_header = '';
}
// base64 Decode default
if (isset($module->default) && ComponentbuilderHelper::checkString($module->default))
{
// set GUI mapper field
$guiMapper['field'] = 'default';
$module->default = $this->setGuiCodePlaceholder(
$this->setPlaceholders($this->setDynamicValues(base64_decode($module->default)), $this->placeholders),
$guiMapper
);
}
else
{
$module->default = '<h1>No Tmpl set</h1>';
}
// start the config array
$module->config_fields = array();
// create the form arrays
$module->form_files = array();
$module->fieldsets_label = array();
$module->fieldsets_paths = array();
// set global fields rule to default component path
$module->fields_rules_paths = 1;
// set the fields data
$module->fields = (isset($module->fields) && ComponentbuilderHelper::checkJson($module->fields)) ? json_decode($module->fields, true) : null;
if (ComponentbuilderHelper::checkArray($module->fields))
{
// ket global key
$key = $module->key;
$dynamic_fields = array('fieldset' => 'basic', 'fields_name' => 'params', 'file' => 'config');
foreach ($module->fields as $n => &$form)
{
if (isset($form['fields']) && ComponentbuilderHelper::checkArray($form['fields']))
{
// make sure the dynamic_field is set to dynamic_value by default
foreach ($dynamic_fields as $dynamic_field => $dynamic_value)
{
if (!isset($form[$dynamic_field]) || !ComponentbuilderHelper::checkString($form[$dynamic_field]))
{
$form[$dynamic_field] = $dynamic_value;
}
else
{
if ('fields_name' === $dynamic_field && strpos($form[$dynamic_field], '.') !== false)
{
$form[$dynamic_field] = $form[$dynamic_field];
}
else
{
$form[$dynamic_field] = ComponentbuilderHelper::safeString($form[$dynamic_field]);
}
}
}
// check if field is external form file
if (!isset($form['module']) || $form['module'] != 1)
{
// now build the form key
$unique = $form['file'] . $form['fields_name'] . $form['fieldset'];
}
else
{
// now build the form key
$unique = $form['fields_name'] . $form['fieldset'];
}
// set global fields rule path switchs
if ($module->fields_rules_paths == 1 && isset($form['fields_rules_paths']) && $form['fields_rules_paths'] == 2)
{
$module->fields_rules_paths = 2;
}
// set where to path is pointing
$module->fieldsets_paths[$unique] = $form['fields_rules_paths'];
// add the label if set to lang
if (isset($form['label']) && ComponentbuilderHelper::checkString($form['label']))
{
$module->fieldsets_label[$unique] = $this->setLang($form['label']);
}
// build the fields
$form['fields'] = array_map(function($field) use ($key, $unique){
// make sure the alias and title is 0
$field['alias'] = 0;
$field['title'] = 0;
// set the field details
$this->setFieldDetails($field, $key, $key, $unique);
// update the default if set
if (ComponentbuilderHelper::checkString($field['custom_value']) && isset($field['settings']))
{
if (($old_default = ComponentbuilderHelper::getBetween($field['settings']->xml, 'default="', '"', false)) !== false)
{
// replace old default
$field['settings']->xml = str_replace('default="' . $old_default . '"', 'default="' . $field['custom_value'] . '"', $field['settings']->xml);
}
else
{
// add the default (hmmm not ideal but okay it should work)
$field['settings']->xml = 'default="' . $field['custom_value'] . '" ' . $field['settings']->xml;
}
}
unset($field['custom_value']);
// return field
return $field;
}, array_values($form['fields']));
// check if field is external form file
if (!isset($form['module']) || $form['module'] != 1)
{
// load the form file
if (!isset($module->form_files[$form['file']]))
{
$module->form_files[$form['file']] = array();
}
if (!isset($module->form_files[$form['file']][$form['fields_name']]))
{
$module->form_files[$form['file']][$form['fields_name']] = array();
}
if (!isset($module->form_files[$form['file']][$form['fields_name']][$form['fieldset']]))
{
$module->form_files[$form['file']][$form['fields_name']][$form['fieldset']] = array();
}
// do some house cleaning (for fields)
foreach ($form['fields'] as $field)
{
// so first we lock the field name in
$this->getFieldName($field, $module->key, $unique);
// add the fields to the global form file builder
$module->form_files[$form['file']][$form['fields_name']][$form['fieldset']][] = $field;
}
// remove form
unset($module->fields[$n]);
}
else
{
// load the config form
if (!isset($module->config_fields[$form['fields_name']]))
{
$module->config_fields[$form['fields_name']] = array();
}
if (!isset($module->config_fields[$form['fields_name']][$form['fieldset']]))
{
$module->config_fields[$form['fields_name']][$form['fieldset']] = array();
}
// do some house cleaning (for fields)
foreach ($form['fields'] as $field)
{
// so first we lock the field name in
$this->getFieldName($field, $module->key, $unique);
// add the fields to the config builder
$module->config_fields[$form['fields_name']][$form['fieldset']][] = $field;
}
// remove form
unset($module->fields[$n]);
}
}
else
{
unset($module->fields[$n]);
}
}
}
unset($module->fields);
// set the add targets
$addArray = array('files' => 'files', 'folders' => 'folders', 'urls' => 'urls', 'filesfullpath' => 'files', 'foldersfullpath' => 'folders');
foreach ($addArray as $addTarget => $targetHere)
{
// set the add target data
$module->{'add' . $addTarget} = (isset($module->{'add' . $addTarget}) && ComponentbuilderHelper::checkJson($module->{'add' . $addTarget})) ? json_decode($module->{'add' . $addTarget}, true) : null;
if (ComponentbuilderHelper::checkArray($module->{'add' . $addTarget}))
{
if (isset($module->{$targetHere}) && ComponentbuilderHelper::checkArray($module->{$targetHere}))
{
foreach ($module->{'add' . $addTarget} as $taget)
{
$module->{$targetHere}[] = $taget;
}
}
else
{
$module->{$targetHere} = array_values($module->{'add' . $addTarget});
}
}
unset($module->{'add' . $addTarget});
}
// load the library
if (!isset($this->libManager[$this->target]))
{
$this->libManager[$this->target] = array();
}
if (!isset($this->libManager[$this->target][$module->code_name]))
{
$this->libManager[$this->target][$module->code_name] = array();
}
// make sure json become array
if (ComponentbuilderHelper::checkJson($module->libraries))
{
$module->libraries = json_decode($module->libraries, true);
}
// if we have an array add it
if (ComponentbuilderHelper::checkArray($module->libraries))
{
foreach ($module->libraries as $library)
{
if (!isset($this->libManager[$this->target][$module->code_name][$library]))
{
if ($this->getMediaLibrary((int) $library))
{
$this->libManager[$this->target][$module->code_name][(int) $library] = true;
}
}
}
}
elseif (is_numeric($module->libraries) && !isset($this->libManager[$this->target][$module->code_name][(int) $module->libraries]))
{
if ($this->getMediaLibrary((int) $module->libraries))
{
$this->libManager[$this->target][$module->code_name][(int) $module->libraries] = true;
}
}
// add PHP in module install
$module->add_install_script = false;
$addScriptMethods = array('php_preflight', 'php_postflight', 'php_method');
$addScriptTypes = array('install', 'update', 'uninstall');
foreach ($addScriptMethods as $scriptMethod)
{
foreach ($addScriptTypes as $scriptType)
{
if (isset($module->{'add_' . $scriptMethod . '_' . $scriptType}) && $module->{'add_' . $scriptMethod . '_' . $scriptType} == 1 && ComponentbuilderHelper::checkString($module->{$scriptMethod . '_' . $scriptType}))
{
// set GUI mapper field
$guiMapper['field'] = $scriptMethod . '_' . $scriptType;
$module->{$scriptMethod . '_' . $scriptType} = $this->setGuiCodePlaceholder(
$this->setPlaceholders($this->setDynamicValues(base64_decode($module->{$scriptMethod . '_' . $scriptType})), $this->placeholders),
$guiMapper
);
$module->add_install_script = true;
}
else
{
unset($module->{$scriptMethod . '_' . $scriptType});
$module->{'add_' . $scriptMethod . '_' . $scriptType} = 0;
}
}
}
// add_sql
if ($module->add_sql == 1 && ComponentbuilderHelper::checkString($module->sql))
{
$module->sql = $this->setPlaceholders($this->setDynamicValues(base64_decode($module->sql)), $this->placeholders);
}
else
{
unset($module->sql);
$module->add_sql = 0;
}
// add_sql_uninstall
if ($module->add_sql_uninstall == 1 && ComponentbuilderHelper::checkString($module->sql_uninstall))
{
$module->sql_uninstall = $this->setPlaceholders($this->setDynamicValues(base64_decode($module->sql_uninstall)), $this->placeholders);
}
else
{
unset($module->sql_uninstall);
$module->add_sql_uninstall = 0;
}
// update the URL of the update_server if set
if ($module->add_update_server == 1 && ComponentbuilderHelper::checkString($module->update_server_url))
{
$module->update_server_url = $this->setPlaceholders($this->setDynamicValues($module->update_server_url), $this->placeholders);
}
// add the update/sales server FTP details if that is the expected protocol
$serverArray = array('update_server', 'sales_server');
foreach ($serverArray as $server)
{
if ($module->{'add_' . $server} == 1 && is_numeric($module->{$server}) && $module->{$server} > 0)
{
// get the server protocol
$module->{$server . '_protocol'} = ComponentbuilderHelper::getVar('server', (int) $module->{$server}, 'id', 'protocol');
}
else
{
$module->{$server} = 0;
// only change this for sales server (update server can be added loacaly to the zip file)
if ('sales_server' === $server)
{
$module->{'add_' . $server} = 0;
}
$module->{$server . '_protocol'} = 0;
}
}
// set the update server stuff (TODO)
// update_server_xml_path
// update_server_xml_file_name
// rest globals
$this->target = $_backup_target;
$this->lang = $_backup_lang;
$this->langPrefix = $_backup_langPrefix;
unset($this->placeholders[$this->bbb . 'Module_name' . $this->ddd]);
unset($this->placeholders[$this->bbb . 'Module' . $this->ddd]);
unset($this->placeholders[$this->bbb . 'module' . $this->ddd]);
unset($this->placeholders[$this->bbb . 'module.version' . $this->ddd]);
unset($this->placeholders[$this->bbb . 'module_version' . $this->ddd]);
$this->joomlaModules[$id] = $module;
return true;
}
}
return false;
}
/**
* get the module xml template
*
* @return string
*
*/
public function getModuleXMLTemplate(&$module)
{
$xml = '<?xml version="1.0" encoding="utf-8"?>';
$xml .= PHP_EOL . '<extension type="module" version="3.8" client="site" method="upgrade">';
$xml .= PHP_EOL . $this->_t(1) . '<name>' . $module->lang_prefix . '</name>';
$xml .= PHP_EOL . $this->_t(1) . '<creationDate>' . $this->hhh . 'BUILDDATE' . $this->hhh . '</creationDate>';
$xml .= PHP_EOL . $this->_t(1) . '<author>' . $this->hhh . 'AUTHOR' . $this->hhh . '</author>';
$xml .= PHP_EOL . $this->_t(1) . '<authorEmail>' . $this->hhh . 'AUTHOREMAIL' . $this->hhh . '</authorEmail>';
$xml .= PHP_EOL . $this->_t(1) . '<authorUrl>' . $this->hhh . 'AUTHORWEBSITE' . $this->hhh . '</authorUrl>';
$xml .= PHP_EOL . $this->_t(1) . '<copyright>' . $this->hhh . 'COPYRIGHT' . $this->hhh . '</copyright>';
$xml .= PHP_EOL . $this->_t(1) . '<license>' . $this->hhh . 'LICENSE' . $this->hhh . '</license>';
$xml .= PHP_EOL . $this->_t(1) . '<version>' . $module->module_version . '</version>';
$xml .= PHP_EOL . $this->_t(1) . '<description>' . $module->lang_prefix . '_XML_DESCRIPTION</description>';
$xml .= $this->hhh . 'MAINXML' . $this->hhh;
$xml .= PHP_EOL . '</extension>';
return $xml;
}
/**
* get the Joomla plugins IDs
*
@ -7512,7 +8105,23 @@ class Get
// set the lang for both since we don't know what area is being targeted
$_tmp = $this->lang;
// set the lang based on target
if (strpos($target, 'plugin') !== false)
if (strpos($target, 'module') !== false)
{
// backup lang prefix
$_tmp_lang_prefix = $this->langPrefix;
// set the new lang prefix
$this->langPrefix = strtoupper(str_replace('module', 'mod', $target));
// now set the lang
if (isset($this->langKeys[$this->langPrefix]))
{
$this->lang = $this->langKeys[$this->langPrefix];
}
else
{
$this->lang = 'module';
}
}
elseif (strpos($target, 'plugin') !== false)
{
// backup lang prefix
$_tmp_lang_prefix = $this->langPrefix;
@ -7739,6 +8348,19 @@ class Get
$localPaths['site'] = JPATH_ROOT . '/components/com_' . $this->componentCodeName;
// TODO later to include the JS and CSS
$localPaths['media'] = JPATH_ROOT . '/media/com_' . $this->componentCodeName;
// Painfull but we need to folder paths for the linked modules
if (($module_ids = $this->getModuleIDs()) !== false)
{
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;
// }
}
}
// Painfull but we need to folder paths for the linked plugins
if (($plugin_ids = $this->getPluginIDs()) !== false)
{

View File

@ -371,6 +371,8 @@ class Structure extends Get
$this->removeFolder($this->componentPath);
// load the libraries files/folders and url's
$this->setLibraries();
// load the module files/folders and url's
$this->buildModules();
// load the plugin files/folders and url's
$this->buildPlugins();
// set the Joomla Version Data
@ -416,6 +418,384 @@ class Structure extends Get
return '';
}
/**
* Build the Modules files, folders, url's and config
*
* @return void
*
*/
private function buildModules()
{
if (ComponentbuilderHelper::checkArray($this->joomlaModules))
{
// Trigger Event: jcb_ce_onBeforeSetModules
$this->triggerEvent('jcb_ce_onBeforeBuildModules', array(&$this->componentContext, &$this->joomlaModules));
foreach ($this->joomlaModules as $module)
{
if (ComponentbuilderHelper::checkObject($module) && isset($module->folder_name)
&& ComponentbuilderHelper::checkString($module->folder_name))
{
// module path
$module->folder_path = $this->compilerPath . '/' . $module->folder_name;
// set the module paths
$this->dynamicPaths[$module->key] = $module->folder_path;
// make sure there is no old build
$this->removeFolder($module->folder_path);
// creat the main component folder
if (!JFolder::exists($module->folder_path))
{
JFolder::create($module->folder_path);
// count the folder created
$this->folderCount++;
$this->indexHTML($module->folder_name, $this->compilerPath);
}
// set main mod file
$fileDetails = array('path' => $module->folder_path . '/' . $module->file_name . '.php',
'name' => $module->file_name . '.php', 'zip' => $module->file_name . '.php');
$this->writeFile($fileDetails['path'],
'<?php' . PHP_EOL . '// main modfile' .
PHP_EOL . $this->hhh . 'BOM' . $this->hhh . PHP_EOL .
PHP_EOL . '// No direct access to this file' . PHP_EOL .
"defined('_JEXEC') or die('Restricted access');" . PHP_EOL .
$this->hhh . 'MODCODE' . $this->hhh);
$this->newFiles[$module->key][] = $fileDetails;
// count the file created
$this->fileCount++;
// set custom_get
if ($module->custom_get)
{
$fileDetails = array('path' => $module->folder_path . '/data.php',
'name' => 'data.php', 'zip' => 'data.php');
$this->writeFile($fileDetails['path'],
'<?php' . PHP_EOL . '// get data file' .
PHP_EOL . $this->hhh . 'BOM' . $this->hhh . PHP_EOL .
PHP_EOL . '// No direct access to this file' . PHP_EOL .
"defined('_JEXEC') or die('Restricted access');" . PHP_EOL . PHP_EOL .
'/**' . PHP_EOL .
' * Module ' . $module->official_name . ' Data' . PHP_EOL .
' */' . PHP_EOL .
"class " . $module->class_data_name . ' extends \JObject' . PHP_EOL .
"{" . $this->hhh . 'DYNAMICGETS' . $this->hhh . "}" . PHP_EOL);
$this->newFiles[$module->key][] = $fileDetails;
// count the file created
$this->fileCount++;
}
// set helper file
if ($module->add_class_helper >= 1)
{
$fileDetails = array('path' => $module->folder_path . '/helper.php',
'name' => 'helper.php', 'zip' => 'helper.php');
$this->writeFile($fileDetails['path'],
'<?php' . PHP_EOL . '// helper file' .
PHP_EOL . $this->hhh . 'BOM' . $this->hhh . PHP_EOL .
PHP_EOL . '// No direct access to this file' . PHP_EOL .
"defined('_JEXEC') or die('Restricted access');" . PHP_EOL .
$this->hhh . 'HELPERCODE' . $this->hhh);
$this->newFiles[$module->key][] = $fileDetails;
// count the file created
$this->fileCount++;
}
// set main xml file
$fileDetails = array('path' => $module->folder_path . '/' . $module->file_name . '.xml',
'name' => $module->file_name . '.xml', 'zip' => $module->file_name . '.xml');
$this->writeFile($fileDetails['path'], $this->getModuleXMLTemplate($module));
$this->newFiles[$module->key][] = $fileDetails;
// count the file created
$this->fileCount++;
// set tmpl folder
if (!JFolder::exists($module->folder_path . '/tmpl'))
{
JFolder::create($module->folder_path . '/tmpl');
// count the folder created
$this->folderCount++;
$this->indexHTML($module->folder_name . '/tmpl', $this->compilerPath);
}
// set default file
$fileDetails = array('path' => $module->folder_path . '/tmpl/default.php',
'name' => 'default.php', 'zip' => 'tmpl/default.php');
$this->writeFile($fileDetails['path'],
'<?php' . PHP_EOL . '// default tmpl' .
PHP_EOL . $this->hhh . 'BOM' . $this->hhh . PHP_EOL .
PHP_EOL . '// No direct access to this file' . PHP_EOL .
"defined('_JEXEC') or die('Restricted access');" . PHP_EOL .
$this->hhh . 'MODDEFAULT' . $this->hhh);
$this->newFiles[$module->key][] = $fileDetails;
// count the file created
$this->fileCount++;
// set install script if needed
if ($module->add_install_script)
{
$fileDetails = array('path' => $module->folder_path . '/script.php',
'name' => 'script.php', 'zip' => 'script.php');
$this->writeFile($fileDetails['path'],
'<?php' . PHP_EOL . '// Script template' .
PHP_EOL . $this->hhh . 'BOM' . $this->hhh . PHP_EOL .
PHP_EOL . '// No direct access to this file' . PHP_EOL .
"defined('_JEXEC') or die('Restricted access');" . PHP_EOL .
$this->hhh . 'INSTALLCLASS' . $this->hhh);
$this->newFiles[$module->key][] = $fileDetails;
// count the file created
$this->fileCount++;
}
// set readme if found
if ($module->addreadme)
{
$fileDetails = array('path' => $module->folder_path . '/README.md',
'name' => 'README.md', 'zip' => 'README.md');
$this->writeFile($fileDetails['path'], $module->readme);
$this->newFiles[$module->key][] = $fileDetails;
// count the file created
$this->fileCount++;
}
// set fields & rules folders if needed
if (isset($module->fields_rules_paths) && $module->fields_rules_paths == 2)
{
// create fields folder
if (!JFolder::exists($module->folder_path . '/fields'))
{
JFolder::create($module->folder_path . '/fields');
// count the folder created
$this->folderCount++;
$this->indexHTML($module->folder_name . '/fields', $this->compilerPath);
}
// create rules folder
if (!JFolder::exists($module->folder_path . '/rules'))
{
JFolder::create($module->folder_path . '/rules');
// count the folder created
$this->folderCount++;
$this->indexHTML($module->folder_name . '/rules', $this->compilerPath);
}
}
// set forms folder if needed
if (isset($module->form_files) && ComponentbuilderHelper::checkArray($module->form_files))
{
// create forms folder
if (!JFolder::exists($module->folder_path . '/forms'))
{
JFolder::create($module->folder_path . '/forms');
// count the folder created
$this->folderCount++;
$this->indexHTML($module->folder_name . '/forms', $this->compilerPath);
}
// set the template files
foreach($module->form_files as $file => $fields)
{
// set file details
$fileDetails = array('path' => $module->folder_path . '/forms/' . $file . '.xml',
'name' => $file . '.xml', 'zip' => 'forms/' . $file . '.xml');
// biuld basic XML
$xml = '<?xml version="1.0" encoding="utf-8"?>';
$xml .= PHP_EOL . '<!--' . $this->setLine(__LINE__) . ' default paths of ' . $file . ' form points to ' . $this->componentCodeName . ' -->';
// search if we must add the component path
$add_component_path = false;
foreach ($fields as $field_name => $fieldsets)
{
if (!$add_component_path)
{
foreach ($fieldsets as $fieldset => $field)
{
if (!$add_component_path && isset($module->fieldsets_paths[$file . $field_name . $fieldset]) && $module->fieldsets_paths[$file . $field_name . $fieldset] == 1)
{
$add_component_path = true;
}
}
}
}
// only add if part of the component field types path is required
if ($add_component_path)
{
$xml .= PHP_EOL . '<form';
$xml .= PHP_EOL . $this->_t(1) . 'addrulepath="/administrator/components/com_' . $this->componentCodeName . '/models/rules"';
$xml .= PHP_EOL . $this->_t(1) . 'addfieldpath="/administrator/components/com_' . $this->componentCodeName . '/models/fields"';
$xml .= PHP_EOL . '>';
}
else
{
$xml .= PHP_EOL . '<form>';
}
// add the fields
foreach ($fields as $field_name => $fieldsets)
{
// check if we have an double fields naming set
$field_name_inner = '';
$field_name_outer = $field_name;
if (strpos($field_name, '.') !== false)
{
$field_names = explode('.', $field_name);
if (count((array) $field_names) == 2)
{
$field_name_outer = $field_names[0];
$field_name_inner = $field_names[1];
}
}
$xml .= PHP_EOL . $this->_t(1) . '<fields name="' . $field_name_outer . '">';
foreach ($fieldsets as $fieldset => $field)
{
// default to the field set name
$label = $fieldset;
if (isset($module->fieldsets_label[$file.$field_name.$fieldset]))
{
$label = $module->fieldsets_label[$file.$field_name.$fieldset];
}
// add path to module rules and custom fields
if (isset($module->fieldsets_paths[$file.$field_name.$fieldset]) && $module->fieldsets_paths[$file.$field_name.$fieldset] == 2)
{
$xml .= PHP_EOL . $this->_t(1) . '<!--' . $this->setLine(__LINE__) . ' default paths of ' . $fieldset . ' fieldset points to the module -->';
$xml .= PHP_EOL . $this->_t(1) . '<fieldset name="' . $fieldset . '" label="' . $label . '"';
$xml .= PHP_EOL . $this->_t(2) . 'addrulepath="/modules/' . strtolower($module->code_name) . '/rules"';
$xml .= PHP_EOL . $this->_t(2) . 'addfieldpath="/modules/' . strtolower($module->code_name) . '/fields"';
$xml .= PHP_EOL . $this->_t(1) . '>';
}
else
{
$xml .= PHP_EOL . $this->_t(1) . '<fieldset name="' . $fieldset . '" label="' . $label . '">';
}
// check if we have an inner field set
if (ComponentbuilderHelper::checkString($field_name_inner))
{
$xml .= PHP_EOL . $this->_t(1) . '<fields name="' . $field_name_inner . '">';
}
// add the placeholder of the fields
$xml .= $this->hhh . 'FIELDSET_' . $file.$field_name.$fieldset . $this->hhh;
// check if we have an inner field set
if (ComponentbuilderHelper::checkString($field_name_inner))
{
$xml .= PHP_EOL . $this->_t(1) . '</fields>';
}
$xml .= PHP_EOL . $this->_t(1) . '</fieldset>';
}
$xml .= PHP_EOL . $this->_t(1) . '</fields>';
}
$xml .= PHP_EOL . '</form>';
// add xml to file
$this->writeFile($fileDetails['path'], $xml);
$this->newFiles[$module->key][] = $fileDetails;
// count the file created
$this->fileCount++;
}
}
// set SQL stuff if needed
if ($module->add_sql || $module->add_sql_uninstall)
{
// create SQL folder
if (!JFolder::exists($module->folder_path . '/sql'))
{
JFolder::create($module->folder_path . '/sql');
// count the folder created
$this->folderCount++;
$this->indexHTML($module->folder_name . '/sql', $this->compilerPath);
}
// create mysql folder
if (!JFolder::exists($module->folder_path . '/sql/mysql'))
{
JFolder::create($module->folder_path . '/sql/mysql');
// count the folder created
$this->folderCount++;
$this->indexHTML($module->folder_name . '/sql/mysql', $this->compilerPath);
}
// now set the install file
if ($module->add_sql)
{
$this->writeFile($module->folder_path . '/sql/mysql/install.sql', $module->sql);
// count the file created
$this->fileCount++;
}
// now set the uninstall file
if ($module->add_sql_uninstall)
{
$this->writeFile($module->folder_path . '/sql/mysql/uninstall.sql', $module->sql_uninstall);
// count the file created
$this->fileCount++;
}
}
// creat the language folder
if (!JFolder::exists($module->folder_path . '/language'))
{
JFolder::create($module->folder_path . '/language');
// count the folder created
$this->folderCount++;
// also the lang tag
if (!JFolder::exists($module->folder_path . '/language/' . $this->langTag))
{
JFolder::create($module->folder_path . '/language/' . $this->langTag);
// count the folder created
$this->folderCount++;
}
}
// check if this lib has files
if (isset($module->files) && ComponentbuilderHelper::checkArray($module->files))
{
// add to component files
foreach ($module->files as $file)
{
// set the path finder
$file['target_type'] = $module->target_type;
$file['target_id'] = $module->id;
$this->componentData->files[] = $file;
}
}
// check if this lib has folders
if (isset($module->folders) && ComponentbuilderHelper::checkArray($module->folders))
{
// add to component folders
foreach ($module->folders as $folder)
{
// set the path finder
$folder['target_type'] = $module->target_type;
$folder['target_id'] = $module->id;
$this->componentData->folders[] = $folder;
}
}
// check if this module has urls
if (isset($module->urls) && ComponentbuilderHelper::checkArray($module->urls))
{
// add to component urls
foreach ($module->urls as $n => &$url)
{
// should we add the local folder
if (isset($url['type']) && $url['type'] > 1 && isset($url['url'])
&& ComponentbuilderHelper::checkString($url['url']))
{
// set file name
$fileName = basename($url['url']);
// get the file contents
$data = ComponentbuilderHelper::getFileContents($url['url']);
// build sub path
if (strpos($fileName, '.js') !== false)
{
$path = '/js';
}
elseif (strpos($fileName, '.css') !== false)
{
$path = '/css';
}
else
{
$path = '';
}
// create sub media path if not set
if (!JFolder::exists($module->folder_path .$path))
{
JFolder::create($module->folder_path . $path);
// count the folder created
$this->folderCount++;
$this->indexHTML($module->folder_name . $path, $this->compilerPath);
}
// set the path to module file
$url['path'] = $module->folder_path . $path . '/' . $fileName; // we need this for later
// write data to path
$this->writeFile($url['path'], $data);
// count the file created
$this->fileCount++;
}
}
}
}
}
}
}
/**
* Build the Plugins files, folders, url's and config
*

View File

@ -2586,10 +2586,19 @@ class Interpretation extends Fields
{
$methods = '';
// then set the needed custom methods
if (ComponentbuilderHelper::checkArray($main_view['settings']->custom_get))
if (ComponentbuilderHelper::checkArray($main_view) && isset($main_view['settings']) && ComponentbuilderHelper::checkObject($main_view['settings']) && isset($main_view['settings']->custom_get))
{
$_dynamic_get = $main_view['settings']->custom_get;
}
elseif (ComponentbuilderHelper::checkObject($main_view) && isset($main_view->custom_get))
{
$_dynamic_get = $main_view->custom_get;
}
// check if we have an array
if (isset($_dynamic_get) && ComponentbuilderHelper::checkArray($_dynamic_get))
{
// start dynamic build
foreach ($main_view['settings']->custom_get as $view)
foreach ($_dynamic_get as $view)
{
// fix alias to use in code
$view->code = ComponentbuilderHelper::safeString($code);
@ -2664,7 +2673,10 @@ class Interpretation extends Fields
}
}
// load uikit get method
if (ComponentbuilderHelper::checkArray($main_view) && isset($main_view['settings']))
{
$methods .= $this->setUikitGetMethod();
}
return $methods;
}
@ -4001,9 +4013,22 @@ class Interpretation extends Fields
public function setLibrariesLoader($view)
{
// check call sig
if (isset($view['settings']) && isset($view['settings']->code))
{
$code = $view['settings']->code;
$view_active = true;
}
elseif (isset($view->code_name))
{
$code = $view->code_name;
$view_active = false;
}
// reset bucket
$setter = '';
// allways load these in
if ($view_active)
{
$setter .= PHP_EOL . PHP_EOL . $this->_t(2) . "//" . $this->setLine(__LINE__) . " always make sure jquery is loaded.";
$setter .= PHP_EOL . $this->_t(2) . "JHtml::_('jquery.framework');";
$setter .= PHP_EOL . $this->_t(2) . "//" . $this->setLine(__LINE__) . " Load the header checker class.";
@ -4017,10 +4042,11 @@ class Interpretation extends Fields
}
$setter .= PHP_EOL . $this->_t(2) . "//" . $this->setLine(__LINE__) . " Initialize the header checker.";
$setter .= PHP_EOL . $this->_t(2) . "\$HeaderCheck = new " . $this->componentCodeName . "HeaderCheck;";
}
// check if this view should get libraries
if (isset($this->libManager[$this->target][$view['settings']->code]) && ComponentbuilderHelper::checkArray($this->libManager[$this->target][$view['settings']->code]))
if (isset($this->libManager[$this->target][$code]) && ComponentbuilderHelper::checkArray($this->libManager[$this->target][$code]))
{
foreach ($this->libManager[$this->target][$view['settings']->code] as $id => $true)
foreach ($this->libManager[$this->target][$code] as $id => $true)
{
if (isset($this->libraries[$id]) && ComponentbuilderHelper::checkObject($this->libraries[$id]) && isset($this->libraries[$id]->document) && ComponentbuilderHelper::checkString($this->libraries[$id]->document))
{
@ -4033,6 +4059,11 @@ class Interpretation extends Fields
}
}
}
// convert back to $document if module call (oops :)
if (!$view_active)
{
return str_replace('$this->document->', '$document->', $setter);
}
return $setter;
}
@ -16641,6 +16672,220 @@ function vdm_dkim() {
return $matches[1];
}
public function getModCode(&$module)
{
return PHP_EOL . $module->mod_code . PHP_EOL;
}
public function getModDefault(&$module)
{
return PHP_EOL . $module->default_header . PHP_EOL . '?>' . PHP_EOL . $module->default . PHP_EOL;
}
public function getModHelperCode(&$module)
{
return
$module->class_helper_header . PHP_EOL .
$module->class_helper_type . $module->class_helper_name . PHP_EOL . '{' . PHP_EOL .
$module->class_helper_code . PHP_EOL .
"}" . PHP_EOL;
}
public function getModuleMainXML(&$module)
{
// set the custom table key
$dbkey = 'yyy';
// build the xml
$xml = '';
// search if we must add the component path
$add_component_path = false;
// build the config fields
$config_fields = array();
if (isset($module->config_fields) && ComponentbuilderHelper::checkArray($module->config_fields))
{
foreach ($module->config_fields as $field_name => $fieldsets)
{
foreach ($fieldsets as $fieldset => $fields)
{
// get the field set
$xmlFields = $this->getExtensionFieldsetXML($module, $fields, $dbkey);
// make sure the xml is set and a string
if (isset($xmlFields) && ComponentbuilderHelper::checkString($xmlFields))
{
$config_fields[$field_name . $fieldset] = $xmlFields;
}
$dbkey++;
// check if the fieldset path requiers component paths
if (!$add_component_path && isset($module->fieldsets_paths[$field_name . $fieldset]) && $module->fieldsets_paths[$field_name . $fieldset] == 1)
{
$add_component_path = true;
}
}
}
}
// switch to add the xml
$addLang = false;
// now build the language files
if (isset($this->langContent[$module->key]))
{
$lang = array_map(function ($langstring, $placeholder)
{
return $placeholder . '="' . $langstring . '"';
}, $this->langContent[$module->key], array_keys($this->langContent[$module->key]));
// add to language file
$this->writeFile($module->folder_path . '/language/' . $this->langTag . '/' . $this->langTag . '.' . $module->file_name . '.ini', implode(PHP_EOL, $lang));
$this->writeFile($module->folder_path . '/language/' . $this->langTag . '/' . $this->langTag . '.' . $module->file_name . '.sys.ini', implode(PHP_EOL, $lang));
// set the line counter
$this->lineCount = $this->lineCount + count((array) $lang);
unset($lang);
// trigger the xml
$addLang = true;
}
// get all files and folders in module folder
$files = JFolder::files($module->folder_path);
$folders = JFolder::folders($module->folder_path);
// the files/folders to ignore
$ignore = array('sql', 'language', 'script.php', $module->file_name . '.xml', $module->file_name . '.php');
// should the scriptfile be added
if ($module->add_install_script)
{
$xml .= PHP_EOL . PHP_EOL . $this->_t(1) . '<!--' . $this->setLine(__LINE__) . ' Scripts to run on installation -->';
$xml .= PHP_EOL . $this->_t(1) . '<scriptfile>script.php</scriptfile>';
}
// should the sql install be added
if ($module->add_sql)
{
$xml .= PHP_EOL . PHP_EOL . $this->_t(1) . '<!--' . $this->setLine(__LINE__) . ' Runs on install; New in Joomla 1.5 -->';
$xml .= PHP_EOL . $this->_t(1) . '<install>';
$xml .= PHP_EOL . $this->_t(2) . '<sql>';
$xml .= PHP_EOL . $this->_t(3) . '<file driver="mysql" charset="utf8">sql/mysql/install.sql</file>';
$xml .= PHP_EOL . $this->_t(2) . '<sql>';
$xml .= PHP_EOL . $this->_t(1) . '</install>';
}
// should the sql uninstall be added
if ($module->add_sql_uninstall)
{
$xml .= PHP_EOL . PHP_EOL . $this->_t(1) . '<!--' . $this->setLine(__LINE__) . ' Runs on uninstall; New in Joomla 1.5 -->';
$xml .= PHP_EOL . $this->_t(1) . '<uninstall>';
$xml .= PHP_EOL . $this->_t(2) . '<sql>';
$xml .= PHP_EOL . $this->_t(3) . '<file driver="mysql" charset="utf8">sql/mysql/uninstall.sql</file>';
$xml .= PHP_EOL . $this->_t(2) . '<sql>';
$xml .= PHP_EOL . $this->_t(1) . '</uninstall>';
}
// should the language xml be added
if ($addLang)
{
$xml .= PHP_EOL . PHP_EOL . $this->_t(1) . '<!--' . $this->setLine(__LINE__) . ' Language files -->';
$xml .= PHP_EOL . $this->_t(1) . '<languages folder="language">';
$xml .= PHP_EOL . $this->_t(2) . '<language tag="en-GB">' . $this->langTag . '/' . $this->langTag . '.' . $module->file_name . '.ini</language>';
$xml .= PHP_EOL . $this->_t(2) . '<language tag="en-GB">' . $this->langTag . '/' . $this->langTag . '.' . $module->file_name . '.sys.ini</language>';
$xml .= PHP_EOL . $this->_t(1) . '</languages>';
}
// add the module files
$xml .= PHP_EOL . PHP_EOL . $this->_t(1) . '<!--' . $this->setLine(__LINE__) . ' Model files -->';
$xml .= PHP_EOL . $this->_t(1) . '<files>';
$xml .= PHP_EOL . $this->_t(2) . '<filename module="' . $module->file_name . '">' . $module->file_name . '.php</filename>';
// add other files found
if (ComponentbuilderHelper::checkArray($files))
{
foreach ($files as $file)
{
// only add what is not ignored
if (!in_array($file, $ignore))
{
$xml .= PHP_EOL . $this->_t(2) . '<filename>' . $file . '</filename>';
}
}
}
// add language folder
if ($addLang)
{
$xml .= PHP_EOL . $this->_t(2) . '<folder>language</folder>';
}
// add sql folder
if ($module->add_sql || $module->add_sql_uninstall)
{
$xml .= PHP_EOL . $this->_t(2) . '<folder>sql</folder>';
}
// add other files found
if (ComponentbuilderHelper::checkArray($folders))
{
foreach ($folders as $folder)
{
// only add what is not ignored
if (!in_array($folder, $ignore))
{
$xml .= PHP_EOL . $this->_t(2) . '<folder>' . $folder . '</folder>';
}
}
}
$xml .= PHP_EOL . $this->_t(1) . '</files>';
// now add the Config Params if needed
if (ComponentbuilderHelper::checkArray($config_fields))
{
$xml .= PHP_EOL . PHP_EOL . $this->_t(1) . '<!--' . $this->setLine(__LINE__) . ' Config parameter -->';
// only add if part of the component field types path is required
if ($add_component_path)
{
// add path to module rules and custom fields
$xml .= PHP_EOL . $this->_t(1) . '<config';
$xml .= PHP_EOL . $this->_t(2) . 'addrulepath="/administrator/components/com_' . $this->componentCodeName . '/modules/rules"';
$xml .= PHP_EOL . $this->_t(2) . 'addfieldpath="/administrator/components/com_' . $this->componentCodeName . '/modules/fields"';
$xml .= PHP_EOL . $this->_t(1) . '>';
}
else
{
$xml .= PHP_EOL . $this->_t(1) . '<config>';
}
// add the fields
foreach ($module->config_fields as $field_name => $fieldsets)
{
$xml .= PHP_EOL . $this->_t(1) . '<fields name="' . $field_name . '">';
foreach ($fieldsets as $fieldset => $fields)
{
// default to the field set name
$label = $fieldset;
if (isset($module->fieldsets_label[$field_name.$fieldset]))
{
$label = $module->fieldsets_label[$field_name.$fieldset];
}
// add path to module rules and custom fields
if (isset($module->fieldsets_paths[$field_name . $fieldset]) && $module->fieldsets_paths[$field_name . $fieldset] == 2)
{
$xml .= PHP_EOL . $this->_t(1) . '<!--' . $this->setLine(__LINE__) . ' default paths of ' . $fieldset . ' fieldset points to the module -->';
$xml .= PHP_EOL . $this->_t(1) . '<fieldset name="' . $fieldset . '" label="' . $label . '"';
$xml .= PHP_EOL . $this->_t(2) . 'addrulepath="/modules/' . $module->file_name . '/rules"';
$xml .= PHP_EOL . $this->_t(2) . 'addfieldpath="/modules/' . $module->file_name . '/fields"';
$xml .= PHP_EOL . $this->_t(1) . '>';
}
else
{
$xml .= PHP_EOL . $this->_t(1) . '<fieldset name="' . $fieldset . '" label="' . $label . '">';
}
// load the fields
if (isset($config_fields[$field_name.$fieldset]))
{
$xml .= $config_fields[$field_name.$fieldset];
unset($config_fields[$field_name.$fieldset]);
}
$xml .= PHP_EOL . $this->_t(1) . '</fieldset>';
}
$xml .= PHP_EOL . $this->_t(1) . '</fields>';
}
$xml .= PHP_EOL . $this->_t(1) . '</config>';
}
// set update server if found
if ($module->add_update_server)
{
$xml .= PHP_EOL . PHP_EOL . $this->_t(1) . '<!--' . $this->setLine(__LINE__) . ' Update servers -->';
$xml .= PHP_EOL . $this->_t(1) . '<updateservers>';
$xml .= PHP_EOL . $this->_t(2) . '<server type="extension" priority="1" name="' . $module->official_name . '">' . $module->update_server_url . '</server>';
$xml .= PHP_EOL . $this->_t(1) . '</updateservers>';
}
return $xml;
}
public function getPluginMainClass(&$plugin)
{
return
@ -16672,7 +16917,7 @@ function vdm_dkim() {
foreach ($fieldsets as $fieldset => $fields)
{
// get the field set
$xmlFields = $this->getPluginFieldsetXML($plugin, $fields, $dbkey);
$xmlFields = $this->getExtensionFieldsetXML($plugin, $fields, $dbkey);
// make sure the xml is set and a string
if (isset($xmlFields) && ComponentbuilderHelper::checkString($xmlFields))
{
@ -16850,7 +17095,7 @@ function vdm_dkim() {
return $xml;
}
public function getPluginFieldsetXML(&$plugin, &$fields, $dbkey = 'zz')
public function getExtensionFieldsetXML(&$extension, &$fields, $dbkey = 'zz')
{
// set some defaults
$view = '';
@ -16866,12 +17111,12 @@ function vdm_dkim() {
if ($this->fieldBuilderType == 1)
{
// string manipulation
$xmlField = $this->setDynamicField($field, $view, $viewType, $plugin->lang_prefix, $plugin->key, $plugin->key, $this->globalPlaceholders, $dbkey, false);
$xmlField = $this->setDynamicField($field, $view, $viewType, $extension->lang_prefix, $extension->key, $extension->key, $this->globalPlaceholders, $dbkey, false);
}
else
{
// simpleXMLElement class
$newxmlField = $this->setDynamicField($field, $view, $viewType, $plugin->lang_prefix, $plugin->key, $plugin->key, $this->globalPlaceholders, $dbkey, false);
$newxmlField = $this->setDynamicField($field, $view, $viewType, $extension->lang_prefix, $extension->key, $extension->key, $this->globalPlaceholders, $dbkey, false);
if (isset($newxmlField->fieldXML))
{
$xmlField = dom_import_simplexml($newxmlField->fieldXML);
@ -16888,24 +17133,24 @@ function vdm_dkim() {
return $fieldset;
}
public function getPluginInstallClass(&$plugin)
public function getExtensionInstallClass(&$extension)
{
// yes we are adding it
$script = PHP_EOL . '/**';
$script .= PHP_EOL . ' * ' . $plugin->official_name . ' script file.';
$script .= PHP_EOL . ' * ' . $extension->official_name . ' script file.';
$script .= PHP_EOL . ' *';
$script .= PHP_EOL . ' * @package ' . $plugin->class_name;
$script .= PHP_EOL . ' * @package ' . $extension->class_name;
$script .= PHP_EOL . ' */';
$script .= PHP_EOL . 'class ' . $plugin->installer_class_name;
$script .= PHP_EOL . 'class ' . $extension->installer_class_name;
$script .= PHP_EOL . '{';
// set constructor
if (isset($plugin->add_php_script_construct)
&& $plugin->add_php_script_construct == 1
&& ComponentbuilderHelper::checkString($plugin->php_script_construct))
if (isset($extension->add_php_script_construct)
&& $extension->add_php_script_construct == 1
&& ComponentbuilderHelper::checkString($extension->php_script_construct))
{
$script .= $this->setInstallMethodScript('construct', $plugin->php_script_construct);
$script .= $this->setInstallMethodScript('construct', $extension->php_script_construct);
}
// add PHP in plugin install
// add PHP in extension install
$addScriptMethods = array('php_preflight', 'php_postflight', 'php_method');
$addScriptTypes = array('install', 'update', 'uninstall', 'discover_install');
// set some buckets for sorting
@ -16921,18 +17166,18 @@ function vdm_dkim() {
{
foreach ($addScriptTypes as $scriptType)
{
if (isset($plugin->{'add_' . $scriptMethod . '_' . $scriptType})
&& $plugin->{'add_' . $scriptMethod . '_' . $scriptType} == 1
&& ComponentbuilderHelper::checkString($plugin->{$scriptMethod . '_' . $scriptType}))
if (isset($extension->{'add_' . $scriptMethod . '_' . $scriptType})
&& $extension->{'add_' . $scriptMethod . '_' . $scriptType} == 1
&& ComponentbuilderHelper::checkString($extension->{$scriptMethod . '_' . $scriptType}))
{
// add to the main methods
if ('php_method' === $scriptMethod)
{
${'function_' . $scriptType}[] = $plugin->{$scriptMethod . '_' . $scriptType};
${'function_' . $scriptType}[] = $extension->{$scriptMethod . '_' . $scriptType};
}
else
{
${'function_' . $scriptMethod}[$scriptType][] = $plugin->{$scriptMethod . '_' . $scriptType};
${'function_' . $scriptMethod}[$scriptType][] = $extension->{$scriptMethod . '_' . $scriptType};
${'has_' . $scriptMethod} = true;
}
}

View File

@ -1029,17 +1029,65 @@ class Infusion extends Interpretation
$this->fileContentStatic[$this->hhh . 'README' . $this->hhh] = $this->componentData->readme;
}
// infuze plugin data if set
// tweak system to set stuff to the module domain
$_backup_target = $this->target;
$_backup_lang = $this->lang;
$_backup_langPrefix = $this->langPrefix;
// infuse module data if set
if (ComponentbuilderHelper::checkArray($this->joomlaModules))
{
foreach ($this->joomlaModules as $module)
{
if (ComponentbuilderHelper::checkObject($module))
{
$this->target = $module->key;
$this->lang = $module->key;
$this->langPrefix = $module->lang_prefix;
// MODCODE
$this->fileContentDynamic[$module->key][$this->hhh . 'MODCODE' . $this->hhh] = $this->getModCode($module);
// DYNAMICGET
$this->fileContentDynamic[$module->key][$this->hhh . 'DYNAMICGETS' . $this->hhh] = $this->setCustomViewCustomMethods($module, $module->key);
// HELPERCODE
if ($module->add_class_helper >= 1)
{
$this->fileContentDynamic[$module->key][$this->hhh . 'HELPERCODE' . $this->hhh] = $this->getModHelperCode($module);
}
// MODDEFAULT
$this->fileContentDynamic[$module->key][$this->hhh . 'MODDEFAULT' . $this->hhh] = $this->getModDefault($module);
// only add install script if needed
if ($module->add_install_script)
{
// INSTALLCLASS
$this->fileContentDynamic[$module->key][$this->hhh . 'INSTALLCLASS' . $this->hhh] = $this->getExtensionInstallClass($module);
}
// FIELDSET
if (isset($module->form_files) && ComponentbuilderHelper::checkArray($module->form_files))
{
foreach($module->form_files as $file => $files)
{
foreach ($files as $field_name => $fieldsets)
{
foreach ($fieldsets as $fieldset => $fields)
{
// FIELDSET_ . $file.$field_name.$fieldset
$this->fileContentDynamic[$module->key][$this->hhh . 'FIELDSET_' . $file.$field_name.$fieldset . $this->hhh] =
$this->getExtensionFieldsetXML($module, $fields);
}
}
}
}
// MAINXML
$this->fileContentDynamic[$module->key][$this->hhh . 'MAINXML' . $this->hhh] = $this->getModuleMainXML($module);
}
}
}
// infuse plugin data if set
if (ComponentbuilderHelper::checkArray($this->joomlaPlugins))
{
foreach ($this->joomlaPlugins as $plugin)
{
if (ComponentbuilderHelper::checkObject($plugin))
{
// tweak system to set stuff to the plugin domain
$_backup_target = $this->target;
$_backup_lang = $this->lang;
$_backup_langPrefix = $this->langPrefix;
$this->target = $plugin->key;
$this->lang = $plugin->key;
$this->langPrefix = $plugin->lang_prefix;
@ -1049,7 +1097,7 @@ class Infusion extends Interpretation
if ($plugin->add_install_script)
{
// INSTALLCLASS
$this->fileContentDynamic[$plugin->key][$this->hhh . 'INSTALLCLASS' . $this->hhh] = $this->getPluginInstallClass($plugin);
$this->fileContentDynamic[$plugin->key][$this->hhh . 'INSTALLCLASS' . $this->hhh] = $this->getExtensionInstallClass($plugin);
}
// FIELDSET
if (isset($plugin->form_files) && ComponentbuilderHelper::checkArray($plugin->form_files))
@ -1062,20 +1110,20 @@ class Infusion extends Interpretation
{
// FIELDSET_ . $file.$field_name.$fieldset
$this->fileContentDynamic[$plugin->key][$this->hhh . 'FIELDSET_' . $file.$field_name.$fieldset . $this->hhh] =
$this->getPluginFieldsetXML($plugin, $fields);
$this->getExtensionFieldsetXML($plugin, $fields);
}
}
}
}
// MAINXML
$this->fileContentDynamic[$plugin->key][$this->hhh . 'MAINXML' . $this->hhh] = $this->getPluginMainXML($plugin);
}
}
}
// rest globals
$this->target = $_backup_target;
$this->lang = $_backup_lang;
$this->langPrefix = $_backup_langPrefix;
}
}
}
// Trigger Event: jcb_ce_onAfterBuildFilesContent
$this->triggerEvent('jcb_ce_onAfterBuildFilesContent', array(&$this->componentContext, &$this->componentData, &$this->fileContentStatic, &$this->fileContentDynamic, &$this->placeholders, &$this->hhh));

View File

@ -1981,6 +1981,46 @@ COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_N_ITEMS_UNFEATURED="%s Components
COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_N_ITEMS_UNFEATURED_1="%s Component Files & Folders unfeatured."
COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_N_ITEMS_UNPUBLISHED="%s Components Files & Folders unpublished."
COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_N_ITEMS_UNPUBLISHED_1="%s Component Files & Folders unpublished."
COM_COMPONENTBUILDER_COMPONENTS_MODULES="Components Modules"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_ACCESS="Components Modules Access"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_ACCESS_DESC="Allows the users in this group to access access components modules"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_BATCH_OPTIONS="Batch process the selected Components Modules"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_BATCH_TIP="All changes will be applied to all selected Components Modules"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_BATCH_USE="Components Modules Batch Use"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch components modules"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_CREATE="Components Modules Create"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_CREATE_DESC="Allows the users in this group to create create components modules"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_DELETE="Components Modules Delete"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_DELETE_DESC="Allows the users in this group to delete delete components modules"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT="Components Modules Edit"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_CREATED_BY="Components Modules Edit Created By"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_CREATED_BY_DESC="Allows the users in this group to update the created by of the edit created by components modules"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_CREATED_DATE="Components Modules Edit Created Date"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_CREATED_DATE_DESC="Allows the users in this group to update the created date of the edit created components modules"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_DESC="Allows the users in this group to edit the component modules"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_OWN="Components Modules Edit Own"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_OWN_DESC="Allows the users in this group to edit edit own components modules created by them"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_STATE="Components Modules Edit State"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_STATE_DESC="Allows the users in this group to update the state of the component modules"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_VERSION="Components Modules Edit Version"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_VERSION_DESC="Allows users in this group to edit versions of version components modules"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_N_ITEMS_ARCHIVED="%s Components Modules archived."
COM_COMPONENTBUILDER_COMPONENTS_MODULES_N_ITEMS_ARCHIVED_1="%s Component Modules archived."
COM_COMPONENTBUILDER_COMPONENTS_MODULES_N_ITEMS_CHECKED_IN_0="No Component Modules successfully checked in."
COM_COMPONENTBUILDER_COMPONENTS_MODULES_N_ITEMS_CHECKED_IN_1="%d Component Modules successfully checked in."
COM_COMPONENTBUILDER_COMPONENTS_MODULES_N_ITEMS_CHECKED_IN_MORE="%d Components Modules successfully checked in."
COM_COMPONENTBUILDER_COMPONENTS_MODULES_N_ITEMS_DELETED="%s Components Modules deleted."
COM_COMPONENTBUILDER_COMPONENTS_MODULES_N_ITEMS_DELETED_1="%s Component Modules deleted."
COM_COMPONENTBUILDER_COMPONENTS_MODULES_N_ITEMS_FEATURED="%s Components Modules featured."
COM_COMPONENTBUILDER_COMPONENTS_MODULES_N_ITEMS_FEATURED_1="%s Component Modules featured."
COM_COMPONENTBUILDER_COMPONENTS_MODULES_N_ITEMS_PUBLISHED="%s Components Modules published."
COM_COMPONENTBUILDER_COMPONENTS_MODULES_N_ITEMS_PUBLISHED_1="%s Component Modules published."
COM_COMPONENTBUILDER_COMPONENTS_MODULES_N_ITEMS_TRASHED="%s Components Modules trashed."
COM_COMPONENTBUILDER_COMPONENTS_MODULES_N_ITEMS_TRASHED_1="%s Component Modules trashed."
COM_COMPONENTBUILDER_COMPONENTS_MODULES_N_ITEMS_UNFEATURED="%s Components Modules unfeatured."
COM_COMPONENTBUILDER_COMPONENTS_MODULES_N_ITEMS_UNFEATURED_1="%s Component Modules unfeatured."
COM_COMPONENTBUILDER_COMPONENTS_MODULES_N_ITEMS_UNPUBLISHED="%s Components Modules unpublished."
COM_COMPONENTBUILDER_COMPONENTS_MODULES_N_ITEMS_UNPUBLISHED_1="%s Component Modules unpublished."
COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS="Components mysql Tweaks"
COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_ACCESS="Components Mysql Tweaks Access"
COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_ACCESS_DESC="Allows the users in this group to access access components mysql tweaks"
@ -2946,6 +2986,42 @@ COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_STATUS="Status"
COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_VERSION_DESC="A count of the number of times this Component Files & Folders has been revised."
COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_VERSION_LABEL="Version"
COM_COMPONENTBUILDER_COMPONENT_GLOBAL_SETTINGS="Component Global Settings"
COM_COMPONENTBUILDER_COMPONENT_MODULES="Component Modules"
COM_COMPONENTBUILDER_COMPONENT_MODULES_ADDJOOMLA_MODULES="Addjoomla Modules"
COM_COMPONENTBUILDER_COMPONENT_MODULES_ADDJOOMLA_MODULES_DESCRIPTION="Setup the Joomla modules for this component."
COM_COMPONENTBUILDER_COMPONENT_MODULES_ADDJOOMLA_MODULES_LABEL="Joomla Modules"
COM_COMPONENTBUILDER_COMPONENT_MODULES_COMPILE_AMP_EXPORT="Compile &amp; Export"
COM_COMPONENTBUILDER_COMPONENT_MODULES_COMPILE_ONLY="Compile (only)"
COM_COMPONENTBUILDER_COMPONENT_MODULES_CREATED_BY_DESC="The user that created this Component Modules."
COM_COMPONENTBUILDER_COMPONENT_MODULES_CREATED_BY_LABEL="Created By"
COM_COMPONENTBUILDER_COMPONENT_MODULES_CREATED_DATE_DESC="The date this Component Modules was created."
COM_COMPONENTBUILDER_COMPONENT_MODULES_CREATED_DATE_LABEL="Created Date"
COM_COMPONENTBUILDER_COMPONENT_MODULES_EDIT="Editing the Component Modules"
COM_COMPONENTBUILDER_COMPONENT_MODULES_ERROR_UNIQUE_ALIAS="Another Component Modules has the same alias."
COM_COMPONENTBUILDER_COMPONENT_MODULES_EXPORT_ONLY="Export (only)"
COM_COMPONENTBUILDER_COMPONENT_MODULES_ID="Id"
COM_COMPONENTBUILDER_COMPONENT_MODULES_JOOMLA_COMPONENT="Joomla Component"
COM_COMPONENTBUILDER_COMPONENT_MODULES_JOOMLA_COMPONENT_DESCRIPTION="Select a Joomla Component"
COM_COMPONENTBUILDER_COMPONENT_MODULES_JOOMLA_COMPONENT_LABEL="Component"
COM_COMPONENTBUILDER_COMPONENT_MODULES_MODIFIED_BY_DESC="The last user that modified this Component Modules."
COM_COMPONENTBUILDER_COMPONENT_MODULES_MODIFIED_BY_LABEL="Modified By"
COM_COMPONENTBUILDER_COMPONENT_MODULES_MODIFIED_DATE_DESC="The date this Component Modules was modified."
COM_COMPONENTBUILDER_COMPONENT_MODULES_MODIFIED_DATE_LABEL="Modified Date"
COM_COMPONENTBUILDER_COMPONENT_MODULES_MODULE="Module"
COM_COMPONENTBUILDER_COMPONENT_MODULES_MODULES="Modules"
COM_COMPONENTBUILDER_COMPONENT_MODULES_MODULE_LABEL="Modules"
COM_COMPONENTBUILDER_COMPONENT_MODULES_NEW="A New Component Modules"
COM_COMPONENTBUILDER_COMPONENT_MODULES_NOTE_ON_JOOMLA_MODULES_DESCRIPTION="Do not add the same Joomla modules twice it will not work."
COM_COMPONENTBUILDER_COMPONENT_MODULES_NOTE_ON_JOOMLA_MODULES_LABEL="Setting Joomla Modules"
COM_COMPONENTBUILDER_COMPONENT_MODULES_ORDERING_LABEL="Ordering"
COM_COMPONENTBUILDER_COMPONENT_MODULES_PERMISSION="Permissions"
COM_COMPONENTBUILDER_COMPONENT_MODULES_PUBLISHING="Publishing"
COM_COMPONENTBUILDER_COMPONENT_MODULES_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Component Modules to customise the alias."
COM_COMPONENTBUILDER_COMPONENT_MODULES_STATUS="Status"
COM_COMPONENTBUILDER_COMPONENT_MODULES_TARGET_DESCRIPTION="Association"
COM_COMPONENTBUILDER_COMPONENT_MODULES_TARGET_LABEL="Target"
COM_COMPONENTBUILDER_COMPONENT_MODULES_VERSION_DESC="A count of the number of times this Component Modules has been revised."
COM_COMPONENTBUILDER_COMPONENT_MODULES_VERSION_LABEL="Version"
COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS="Component mysql Tweaks"
COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_ADD_SQL_DESCRIPTION="if set in view"
COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_ADD_SQL_LABEL="Add MySQL"
@ -3536,6 +3612,7 @@ COM_COMPONENTBUILDER_COPYRIGHT_S="Copyright: %s"
COM_COMPONENTBUILDER_COULD_NOT_CLEAR_THE_TMP_FOLDER="Could not clear the tmp folder!"
COM_COMPONENTBUILDER_COULD_NOT_INSTALL_COMPONENT="Could not install component!"
COM_COMPONENTBUILDER_COULD_NOT_INSTALL_EXTENTIONS="Could not install extentions!"
COM_COMPONENTBUILDER_COULD_NOT_INSTALL_MODULE="Could not install module!"
COM_COMPONENTBUILDER_COULD_NOT_INSTALL_PLUGIN="Could not install plugin!"
COM_COMPONENTBUILDER_CREATE="Create"
COM_COMPONENTBUILDER_CREATE_A_SNIPPET="create a snippet"
@ -3709,7 +3786,7 @@ COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_DASHBOARD="Dashboard"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_DATABASE="Database"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_DEFAULT="Default"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_DEFAULT_DESCRIPTION="Add the code here."
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_DEFAULT_LABEL="Default View"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_DEFAULT_LABEL="Default Tmpl"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_DELETE="Delete"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_DESCRIPTION="Description"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_DESCRIPTION_DESCRIPTION="Enter some description"
@ -4200,10 +4277,11 @@ COM_COMPONENTBUILDER_CUSTOM_CODE_NOTE_PLACEHOLDERS_EXPLAINED_DESCRIPTION="<div c
<div id='usedin-n' style='display:none;'><h2>Libraries</h2><div id='area-n'></div></div>
<div id='usedin-o' style='display:none;'><h2>Custom Code</h2><div id='area-o'></div></div>
<div id='usedin-p' style='display:none;'><h2>Validation Rule</h2><div id='area-p'></div></div>
<div id='usedin-q' style='display:none;'><h2>Joomla Plugin</h2><div id='area-q'></div></div>
<div id='usedin-r' style='display:none;'><h2>Class Extends</h2><div id='area-r'></div></div>
<div id='usedin-s' style='display:none;'><h2>Class Property</h2><div id='area-s'></div></div>
<div id='usedin-t' style='display:none;'><h2>Class Method</h2><div id='area-t'></div></div>
<div id='usedin-q' style='display:none;'><h2>Joomla Method</h2><div id='area-q'></div></div>
<div id='usedin-r' style='display:none;'><h2>Joomla Plugin</h2><div id='area-r'></div></div>
<div id='usedin-s' style='display:none;'><h2>Class Extends</h2><div id='area-s'></div></div>
<div id='usedin-t' style='display:none;'><h2>Class Property</h2><div id='area-t'></div></div>
<div id='usedin-u' style='display:none;'><h2>Class Method</h2><div id='area-u'></div></div>
<div id='loading-usedin' style='display: none;'><h2>Scanning Database<span class='loading-dots'>..</span></h2></div>
<div id='note-usedin-found' style='display: none;'><small>You can edit the above areas where this code is used.</small></div>
<div id='note-usedin-not' style='display: none;'><small>This code is not used in any area of the JCB custom code blocks at this time.</small></div>
@ -6025,20 +6103,15 @@ COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_N_ITEMS_UNFEATURED="%s Joomla Module
COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_N_ITEMS_UNFEATURED_1="%s Joomla Module Updates unfeatured."
COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_N_ITEMS_UNPUBLISHED="%s Joomla Modules Updates unpublished."
COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_N_ITEMS_UNPUBLISHED_1="%s Joomla Module Updates unpublished."
COM_COMPONENTBUILDER_JOOMLA_MODULE_ABSTRACT_CLASS_HELPER_CODE="Abstract Class Helper Code"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ABSTRACT_CLASS_HELPER_CODE_DESCRIPTION="Add the class properties & methods here."
COM_COMPONENTBUILDER_JOOMLA_MODULE_ABSTRACT_CLASS_HELPER_CODE_LABEL="Abstract Class Helper Properties & Methods"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ABSTRACT_CLASS_HELPER_HEADER="Abstract Class Helper Header"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ABSTRACT_CLASS_HELPER_HEADER_DESCRIPTION="The class header, where JLoader, namespace and use is added."
COM_COMPONENTBUILDER_JOOMLA_MODULE_ABSTRACT_CLASS_HELPER_HEADER_LABEL="Abstract Class Helper Header"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ABSTRACT_CLASS="abstract class"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADDREADME="Addreadme"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADDREADME_LABEL="Add README"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_ABSTRACT_CLASS_HELPER="Add Abstract Class Helper"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_ABSTRACT_CLASS_HELPER_DESCRIPTION="You can add an abstract helper class to your module."
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_ABSTRACT_CLASS_HELPER_LABEL="Add Abstract Class Helper"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_CUSTOM_ABSTRACT_CLASS_HELPER_HEADER="Add Custom Abstract Class Helper Header"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_CUSTOM_ABSTRACT_CLASS_HELPER_HEADER_DESCRIPTION="You can add your own custom abstract helper header script."
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_CUSTOM_ABSTRACT_CLASS_HELPER_HEADER_LABEL="Add Custom Abstract Class Helper Header"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_CLASS_HELPER="Add Class Helper"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_CLASS_HELPER_DESCRIPTION="You can add a helper class to your module."
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_CLASS_HELPER_HEADER="Add Class Helper Header"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_CLASS_HELPER_HEADER_DESCRIPTION="You can add your own custom helper header script."
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_CLASS_HELPER_HEADER_LABEL="Add Class Helper Header"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_CLASS_HELPER_LABEL="Add Class Helper"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_PHP_METHOD_UNINSTALL="Add Php Method Uninstall"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_PHP_METHOD_UNINSTALL_LABEL="Add PHP Method (uninstall)"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_PHP_POSTFLIGHT_INSTALL="Add Php Postflight Install"
@ -6061,6 +6134,13 @@ 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_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."
COM_COMPONENTBUILDER_JOOMLA_MODULE_CLASS_HELPER_CODE_LABEL="Class Helper Properties & Methods"
COM_COMPONENTBUILDER_JOOMLA_MODULE_CLASS_HELPER_HEADER="Class Helper Header"
COM_COMPONENTBUILDER_JOOMLA_MODULE_CLASS_HELPER_HEADER_DESCRIPTION="The class header, where JLoader, namespace and use is added."
COM_COMPONENTBUILDER_JOOMLA_MODULE_CLASS_HELPER_HEADER_LABEL="Class Helper Header"
COM_COMPONENTBUILDER_JOOMLA_MODULE_CODE="Code"
COM_COMPONENTBUILDER_JOOMLA_MODULE_COMPONENT="Component"
COM_COMPONENTBUILDER_JOOMLA_MODULE_CREATED_BY_DESC="The user that created this Joomla Module."
@ -6075,7 +6155,7 @@ COM_COMPONENTBUILDER_JOOMLA_MODULE_CUSTOM_VALUE_HINT="Custom Value Here"
COM_COMPONENTBUILDER_JOOMLA_MODULE_CUSTOM_VALUE_LABEL="Custom Value"
COM_COMPONENTBUILDER_JOOMLA_MODULE_DEFAULT="Default"
COM_COMPONENTBUILDER_JOOMLA_MODULE_DEFAULT_DESCRIPTION="Add the code here."
COM_COMPONENTBUILDER_JOOMLA_MODULE_DEFAULT_LABEL="Default View"
COM_COMPONENTBUILDER_JOOMLA_MODULE_DEFAULT_LABEL="Default Tmpl"
COM_COMPONENTBUILDER_JOOMLA_MODULE_DESCRIPTION="Description"
COM_COMPONENTBUILDER_JOOMLA_MODULE_DESCRIPTION_DESCRIPTION="Add Description Here"
COM_COMPONENTBUILDER_JOOMLA_MODULE_DESCRIPTION_HINT="Add Description Here"
@ -6219,6 +6299,7 @@ COM_COMPONENTBUILDER_JOOMLA_MODULE_FILE_LABEL="File Name"
COM_COMPONENTBUILDER_JOOMLA_MODULE_FORMS_FIELDS="Forms & Fields"
COM_COMPONENTBUILDER_JOOMLA_MODULE_GET_SNIPPETS_BUTTON_ACCESS="Joomla Module Get Snippets Button Access"
COM_COMPONENTBUILDER_JOOMLA_MODULE_GET_SNIPPETS_BUTTON_ACCESS_DESC="Allows the users in this group to access the get snippets button."
COM_COMPONENTBUILDER_JOOMLA_MODULE_HELPER="Helper"
COM_COMPONENTBUILDER_JOOMLA_MODULE_HTML="HTML"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ID="Id"
COM_COMPONENTBUILDER_JOOMLA_MODULE_LABEL_DESCRIPTION="Not mandatory, used to Label the Fieldset"
@ -6239,6 +6320,9 @@ COM_COMPONENTBUILDER_JOOMLA_MODULE_MODULE_VERSION_DESCRIPTION="Add Version Numbe
COM_COMPONENTBUILDER_JOOMLA_MODULE_MODULE_VERSION_HINT="1.0.0"
COM_COMPONENTBUILDER_JOOMLA_MODULE_MODULE_VERSION_LABEL="Version"
COM_COMPONENTBUILDER_JOOMLA_MODULE_MODULE_VERSION_MESSAGE="Error! Please add version here."
COM_COMPONENTBUILDER_JOOMLA_MODULE_MOD_CODE="Mod Code"
COM_COMPONENTBUILDER_JOOMLA_MODULE_MOD_CODE_DESCRIPTION="The code that is added to the main mod_name.php file"
COM_COMPONENTBUILDER_JOOMLA_MODULE_MOD_CODE_LABEL="Module Code"
COM_COMPONENTBUILDER_JOOMLA_MODULE_MYSQL="MySQL"
COM_COMPONENTBUILDER_JOOMLA_MODULE_NAME="Name"
COM_COMPONENTBUILDER_JOOMLA_MODULE_NAME_DESCRIPTION="Enter Name Here"
@ -6247,12 +6331,16 @@ COM_COMPONENTBUILDER_JOOMLA_MODULE_NAME_LABEL="Name"
COM_COMPONENTBUILDER_JOOMLA_MODULE_NAME_MESSAGE="Error! Please add name here."
COM_COMPONENTBUILDER_JOOMLA_MODULE_NEW="A New Joomla Module"
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO="No"
COM_COMPONENTBUILDER_JOOMLA_MODULE_NONE="None"
COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code>&lt;?php echo JText::_(&apos;Text&apos;); ?&gt;</code>"
COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_ADD_LANGUAGE_STRING_LABEL="Add Language String"
COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LIBRARIES_OPTIONS_DESCRIPTION="<p>All libraries added to modules are added to the component media folder for now</p>
<p>So over here you are able to manually add HTML code to your model default tmpl.</p>"
COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LIBRARIES_OPTIONS_LABEL="Libraries Options"
COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LINKED_TO_NOTICE_DESCRIPTION="<div id='display_linked_to'>Searching the database.<span class='loading-dots'></span></div>"
COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LINKED_TO_NOTICE_LABEL="Linked To"
COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_MODEL_DESCRIPTION="<p>So over here you are able to manually code your model.</p><p>We have also added some code via the <a href='https://github.com/vdm-io/boilerplate' title='look at the boilerplate repo' target='_blank'>boilerplate repo</a> that can serve as a starting point, simple select them and it will be added to your code.</p><p><p>If you have added any fields in the Config/Params tab, these fields will be available to you in the <code>$this->params</code> object, and can be accessed via the field name <code>$this->params->get('fieldname');</code> with the get method.</p>"
COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_MODEL_LABEL="Easy Model Build Options"
COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_MOD_FILE_OPTIONS_DESCRIPTION="<p>If you have added any fields in the Config/Params tab, these fields will be available to you in the <code>$params</code> object, and can be accessed via the field name <code>$params->get('fieldname');</code> with the get method.</p>"
COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_MOD_FILE_OPTIONS_LABEL="Mod File Options"
COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_SNIPPET_USAGE_LABEL="Snippet Usage"
COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_UIKIT_SNIPPET_LABEL="Snippet Details"
COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_UPDATE_SERVER_NOTE_FTP_DESCRIPTION="During compilation the file will be moved to the server. You still need to point the above <b>update server</b> url to the xml file location on your server for it to work correctly."
@ -7717,10 +7805,11 @@ COM_COMPONENTBUILDER_PLACEHOLDER_NOTE_PLACEHOLDERS_PLACEDIN_DESCRIPTION="<div cl
<div id='placedin-n' style='display:none;'><h2>Libraries</h2><div id='area-n'></div></div>
<div id='placedin-o' style='display:none;'><h2>Custom Code</h2><div id='area-o'></div></div>
<div id='placedin-p' style='display:none;'><h2>Validation Rule</h2><div id='area-p'></div></div>
<div id='placedin-q' style='display:none;'><h2>Joomla Plugin</h2><div id='area-q'></div></div>
<div id='placedin-r' style='display:none;'><h2>Class Extends</h2><div id='area-r'></div></div>
<div id='placedin-s' style='display:none;'><h2>Class Property</h2><div id='area-s'></div></div>
<div id='placedin-t' style='display:none;'><h2>Class Method</h2><div id='area-t'></div></div>
<div id='placedin-q' style='display:none;'><h2>Joomla Method</h2><div id='area-q'></div></div>
<div id='placedin-r' style='display:none;'><h2>Joomla Plugin</h2><div id='area-r'></div></div>
<div id='placedin-s' style='display:none;'><h2>Class Extends</h2><div id='area-s'></div></div>
<div id='placedin-t' style='display:none;'><h2>Class Property</h2><div id='area-t'></div></div>
<div id='placedin-u' style='display:none;'><h2>Class Method</h2><div id='area-u'></div></div>
<div id='loading-placedin' style='display: none;'><h2>Scanning Database<span class='loading-dots'>..</span></h2></div>
<div id='note-placedin-found' style='display: none;'><small>You can edit the above areas where this placeholder is used.</small></div>
<div id='note-placedin-not' style='display: none;'><small>This placeholder is not used in any area of the JCB custom code blocks at this time.</small></div>
@ -8123,7 +8212,7 @@ COM_COMPONENTBUILDER_SITE_VIEW_DASHBOARD="Dashboard"
COM_COMPONENTBUILDER_SITE_VIEW_DATABASE="Database"
COM_COMPONENTBUILDER_SITE_VIEW_DEFAULT="Default"
COM_COMPONENTBUILDER_SITE_VIEW_DEFAULT_DESCRIPTION="Add the code here."
COM_COMPONENTBUILDER_SITE_VIEW_DEFAULT_LABEL="Default View"
COM_COMPONENTBUILDER_SITE_VIEW_DEFAULT_LABEL="Default Tmpl"
COM_COMPONENTBUILDER_SITE_VIEW_DELETE="Delete"
COM_COMPONENTBUILDER_SITE_VIEW_DESCRIPTION="Description"
COM_COMPONENTBUILDER_SITE_VIEW_DESCRIPTION_DESCRIPTION="Enter some description"
@ -8797,6 +8886,7 @@ COM_COMPONENTBUILDER_THE_COMPONENT_CUSTOM_ADMIN_MENUS="The component custom admi
COM_COMPONENTBUILDER_THE_COMPONENT_CUSTOM_ADMIN_VIEWS="The component custom admin views"
COM_COMPONENTBUILDER_THE_COMPONENT_DASHBOARD="The component dashboard"
COM_COMPONENTBUILDER_THE_COMPONENT_FILES_FOLDERS="The component files & folders"
COM_COMPONENTBUILDER_THE_COMPONENT_MODULES="The component modules"
COM_COMPONENTBUILDER_THE_COMPONENT_MYSQL_TWEAKS="The component mysql tweaks"
COM_COMPONENTBUILDER_THE_COMPONENT_PLACEHOLDERS="The component placeholders"
COM_COMPONENTBUILDER_THE_COMPONENT_PLUGINS="The component plugins"
@ -8862,6 +8952,7 @@ COM_COMPONENTBUILDER_TYPE_COMPONENT_CUSTOM_ADMIN_MENUS="Component Custom Admin M
COM_COMPONENTBUILDER_TYPE_COMPONENT_CUSTOM_ADMIN_VIEWS="Component Custom Admin Views"
COM_COMPONENTBUILDER_TYPE_COMPONENT_DASHBOARD="Component Dashboard"
COM_COMPONENTBUILDER_TYPE_COMPONENT_FILES_FOLDERS="Component Files & Folders"
COM_COMPONENTBUILDER_TYPE_COMPONENT_MODULES="Component Modules"
COM_COMPONENTBUILDER_TYPE_COMPONENT_MYSQL_TWEAKS="Component mysql Tweaks"
COM_COMPONENTBUILDER_TYPE_COMPONENT_PLACEHOLDERS="Component Placeholders"
COM_COMPONENTBUILDER_TYPE_COMPONENT_PLUGINS="Component Plugins"
@ -9028,6 +9119,7 @@ COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_CLONE_A_COMPONENT_PLEASE_CONT
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_IMPORT_A_COMPONENT_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_FOR_MORE_HELP="You do not have permission to import a component, please contact your system administrator for more help."
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INSTALL_THESE_EXTENSIONS="You do not have permission to install these extensions!"
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INSTALL_THE_COMPONENT="You do not have permission to install the component!"
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INSTALL_THE_MODULE="You do not have permission to install the module!"
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INSTALL_THE_PLUGIN="You do not have permission to install the plugin!"
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RUN_THE_EXPANSION_MODULE="You do not have permission to run the expansion module!"
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RUN_THE_GET_BOILERPLATE_MODULE="You do not have permission to run the get boilerplate module!"

View File

@ -311,6 +311,26 @@ COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_STATE="Components Files Fold
COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_STATE_DESC="Allows the users in this group to update the state of the component files folders"
COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_VERSION="Components Files Folders Edit Version"
COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version components files folders"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_ACCESS="Components Modules Access"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_ACCESS_DESC="Allows the users in this group to access access components modules"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_BATCH_USE="Components Modules Batch Use"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch components modules"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_CREATE="Components Modules Create"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_CREATE_DESC="Allows the users in this group to create create components modules"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_DELETE="Components Modules Delete"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_DELETE_DESC="Allows the users in this group to delete delete components modules"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT="Components Modules Edit"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_CREATED_BY="Components Modules Edit Created By"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_CREATED_BY_DESC="Allows the users in this group to update the created by of the edit created by components modules"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_CREATED_DATE="Components Modules Edit Created Date"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_CREATED_DATE_DESC="Allows the users in this group to update the created date of the edit created components modules"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_DESC="Allows the users in this group to edit the component modules"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_OWN="Components Modules Edit Own"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_OWN_DESC="Allows the users in this group to edit edit own components modules created by them"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_STATE="Components Modules Edit State"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_STATE_DESC="Allows the users in this group to update the state of the component modules"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_VERSION="Components Modules Edit Version"
COM_COMPONENTBUILDER_COMPONENTS_MODULES_EDIT_VERSION_DESC="Allows users in this group to edit versions of version components modules"
COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_ACCESS="Components Mysql Tweaks Access"
COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_ACCESS_DESC="Allows the users in this group to access access components mysql tweaks"
COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_BATCH_USE="Components Mysql Tweaks Batch Use"

View File

@ -26,8 +26,7 @@ $fields_tab_layout = 'fields_' . $layout_path_array[1];
// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
'abstract_class_helper_header',
'abstract_class_helper_code'
'mod_code'
);
$hiddenFields = $displayData->get('hidden_fields') ?: array();

View File

@ -26,8 +26,7 @@ $fields_tab_layout = 'fields_' . $layout_path_array[1];
// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
'add_abstract_class_helper',
'add_custom_abstract_class_helper_header'
'custom_get'
);
$hiddenFields = $displayData->get('hidden_fields') ?: array();

View File

@ -26,7 +26,7 @@ $fields_tab_layout = 'fields_' . $layout_path_array[1];
// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
'custom_get'
'note_mod_file_options'
);
$hiddenFields = $displayData->get('hidden_fields') ?: array();

View File

@ -29,7 +29,7 @@ $fields = $displayData->get($fields_tab_layout) ?: array(
'name',
'description',
'libraries',
'note_model',
'note_libraries_options',
'note_add_language_string'
);

View File

@ -148,6 +148,11 @@ else
'views' => 'components_dashboard',
'title' => JText::_('COM_COMPONENTBUILDER_THE_COMPONENT_DASHBOARD'),
'icon' => 'dashboard'),
array(
'view' => 'component_modules',
'views' => 'components_modules',
'title' => JText::_('COM_COMPONENTBUILDER_THE_COMPONENT_MODULES'),
'icon' => 'cube'),
array(
'view' => 'component_plugins',
'views' => 'components_plugins',

View File

@ -926,9 +926,11 @@ class ComponentbuilderModelAjax extends JModelList
protected $linkedKeys = array(
'field' => array(
array('table' => 'component_config', 'tables' => 'components_config', 'fields' => array('addconfig' => 'field', 'joomla_component' => 'NAME'), 'linked' => 'COM_COMPONENTBUILDER_JOOMLA_COMPONENT', 'linked_name' => 'system_name'),
array('table' => 'library_config', 'tables' => 'libraries_config', 'fields' => array('addconfig' => 'field', 'library' => 'NAME'), 'linked' => 'COM_COMPONENTBUILDER_LIBRARY', 'linked_name' => 'name'),
array('table' => 'admin_fields', 'tables' => 'admins_fields', 'fields' => array('addfields' => 'field', 'admin_view' => 'NAME'), 'linked' => 'COM_COMPONENTBUILDER_ADMIN_VIEW', 'linked_name' => 'system_name'),
array('table' => 'field', 'tables' => 'fields', 'fields' => array('xml' => 'fields', 'name' => 'NAME', 'fieldtype' => 'TYPE'), 'linked' => 'COM_COMPONENTBUILDER_FIELD', 'type_name' => 'name'),
array('table' => 'joomla_plugin', 'tables' => 'joomla_plugins', 'fields' => array('fields' => 'field', 'system_name' => 'NAME'), 'linked' => 'COM_COMPONENTBUILDER_JOOMLA_PLUGIN')
array('table' => 'joomla_module', 'tables' => 'joomla_modules', 'fields' => array('fields' => 'fields.fields.field', 'system_name' => 'NAME'), 'linked' => 'COM_COMPONENTBUILDER_JOOMLA_MODULE'),
array('table' => 'joomla_plugin', 'tables' => 'joomla_plugins', 'fields' => array('fields' => 'fields.fields.field', 'system_name' => 'NAME'), 'linked' => 'COM_COMPONENTBUILDER_JOOMLA_PLUGIN')
),
'admin_view' => array(
array('table' => 'component_admin_views', 'tables' => 'components_admin_views', 'fields' => array('addadmin_views' => 'adminview', 'joomla_component' => 'NAME'), 'linked' => 'COM_COMPONENTBUILDER_JOOMLA_COMPONENT', 'linked_name' => 'system_name')
@ -949,6 +951,9 @@ class ComponentbuilderModelAjax extends JModelList
array('table' => 'site_view', 'tables' => 'site_views', 'fields' => array('custom_get' => 'ARRAY', 'main_get' => 'INT', 'system_name' => 'NAME'), 'linked' => 'COM_COMPONENTBUILDER_SITE_VIEW'),
array('table' => 'custom_admin_view', 'tables' => 'custom_admin_views', 'fields' => array('custom_get' => 'ARRAY', 'main_get' => 'INT', 'system_name' => 'NAME'), 'linked' => 'COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW')
),
'joomla_module' => array(
array('table' => 'component_modules', 'tables' => 'components_modules', 'fields' => array('addjoomla_modules' => 'module', 'joomla_component' => 'NAME'), 'linked' => 'COM_COMPONENTBUILDER_JOOMLA_COMPONENT', 'linked_name' => 'system_name')
),
'joomla_plugin' => array(
array('table' => 'component_plugins', 'tables' => 'components_plugins', 'fields' => array('addjoomla_plugins' => 'plugin', 'joomla_component' => 'NAME'), 'linked' => 'COM_COMPONENTBUILDER_JOOMLA_COMPONENT', 'linked_name' => 'system_name')
)
@ -1081,14 +1086,46 @@ class ComponentbuilderModelAjax extends JModelList
}
}
else
{
// check if this is a sub sub form target
if (strpos($target, '.') !== false)
{
$_target = (array) explode('.', $target);
// check that we have an array and get the size
if (($_size = ComponentbuilderHelper::checkArray($_target)) !== false)
{
foreach ($item->{$key} as $row)
{
if (isset($row[$target]) && $row[$target] == $id)
if ($_size == 2)
{
if (isset($row[$_target[0]]) && isset($row[$_target[0]][$_target[1]]) && $row[$_target[0]][$_target[1]] == $id)
{
$found = true;
}
}
elseif ($_size == 3 && isset($row[$_target[0]]) && ComponentbuilderHelper::checkArray($row[$_target[0]]))
{
foreach ($row[$_target[0]] as $_row)
{
if (!$found && isset($_row[$_target[2]]) && $_row[$_target[2]] == $id)
{
$found = true;
}
}
}
}
}
}
else
{
foreach ($item->{$key} as $row)
{
if (!$found && isset($row[$target]) && $row[$target] == $id)
{
$found = true;
}
}
}
}
}
// if string (fields)
@ -2488,29 +2525,37 @@ class ComponentbuilderModelAjax extends JModelList
'not_base64' => array(),
'name' => 'name'
),
// #__componentbuilder_joomla_plugin (q)
'joomla_plugin' => array(
'search' => array('id', 'system_name', 'name', 'main_class_code', 'head', 'description', 'php_script_construct', 'php_preflight_install', 'php_preflight_update',
'php_preflight_uninstall', 'php_postflight_install', 'php_postflight_update', 'php_method_uninstall'),
'views' => 'joomla_plugins',
'not_base64' => array('description' => 'string'),
// #__componentbuilder_joomla_module (q)
'joomla_module' => array(
'search' => array('id', 'system_name', 'name', 'default', 'description', 'mod_code', 'class_helper_header', 'class_helper_code', 'php_script_construct', 'php_preflight_install', 'php_preflight_update',
'php_preflight_uninstall', 'php_postflight_install', 'php_postflight_update', 'php_method_uninstall', 'sql', 'sql_uninstall', 'readme'),
'views' => 'joomla_modules',
'not_base64' => array('description' => 'string', 'readme' => 'string'),
'name' => 'system_name'
),
// #__componentbuilder_class_extends (r)
// #__componentbuilder_joomla_plugin (r)
'joomla_plugin' => array(
'search' => array('id', 'system_name', 'name', 'main_class_code', 'head', 'description', 'php_script_construct', 'php_preflight_install', 'php_preflight_update',
'php_preflight_uninstall', 'php_postflight_install', 'php_postflight_update', 'php_method_uninstall', 'sql', 'sql_uninstall', 'readme'),
'views' => 'joomla_plugins',
'not_base64' => array('description' => 'string', 'readme' => 'string'),
'name' => 'system_name'
),
// #__componentbuilder_class_extends (s)
'class_extends' => array(
'search' => array('id', 'name', 'head', 'comment'),
'views' => 'class_extendings',
'not_base64' => array(),
'name' => 'name'
),
// #__componentbuilder_class_property (s)
// #__componentbuilder_class_property (t)
'class_property' => array(
'search' => array('id', 'name', 'default', 'comment'),
'views' => 'class_properties',
'not_base64' => array(),
'name' => 'name'
),
// #__componentbuilder_class_method (t)
// #__componentbuilder_class_method (u)
'class_method' => array(
'search' => array('id', 'name', 'code', 'comment'),
'views' => 'class_methods',

View File

@ -184,6 +184,9 @@ class ComponentbuilderModelComponentbuilder extends JModelList
'component_plugins.create' => 'component_plugins.create',
'components_plugins.access' => 'component_plugins.access',
'component_plugins.access' => 'component_plugins.access',
'component_modules.create' => 'component_modules.create',
'components_modules.access' => 'component_modules.access',
'component_modules.access' => 'component_modules.access',
'snippet_type.create' => 'snippet_type.create',
'snippet_types.access' => 'snippet_type.access',
'snippet_type.access' => 'snippet_type.access',

View File

@ -313,8 +313,8 @@ function usedin(functioName, ide) {
jQuery('#note-usedin-not').hide();
jQuery('#note-usedin-found').hide();
jQuery('#loading-usedin').show();
var targets = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t']; // if you update this, also update (below 19) & [customcode-codeUsedInHtmlNote]!
var targetNumber = 19;
var targets = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u']; // if you update this, also update (below 20) & [customcode-codeUsedInHtmlNote]!
var targetNumber = 20;
var run = 0;
var usedinChecker = setInterval(function(){
var target = targets[run];

View File

@ -9,7 +9,7 @@
*/
// Some Global Values
jform_vvvvvxbvwd_required = false;
jform_vvvvvxcvwd_required = false;
jform_vvvvvxrvwe_required = false;
jform_vvvvvxsvwf_required = false;
jform_vvvvvxtvwg_required = false;
@ -17,12 +17,12 @@ jform_vvvvvxtvwg_required = false;
// Initial Script
jQuery(document).ready(function()
{
var add_custom_abstract_class_helper_header_vvvvvxb = jQuery("#jform_add_custom_abstract_class_helper_header input[type='radio']:checked").val();
var add_abstract_class_helper_vvvvvxb = jQuery("#jform_add_abstract_class_helper input[type='radio']:checked").val();
vvvvvxb(add_custom_abstract_class_helper_header_vvvvvxb,add_abstract_class_helper_vvvvvxb);
var add_class_helper_vvvvvxb = jQuery("#jform_add_class_helper").val();
vvvvvxb(add_class_helper_vvvvvxb);
var add_abstract_class_helper_vvvvvxd = jQuery("#jform_add_abstract_class_helper input[type='radio']:checked").val();
vvvvvxd(add_abstract_class_helper_vvvvvxd);
var add_class_helper_header_vvvvvxc = jQuery("#jform_add_class_helper_header input[type='radio']:checked").val();
var add_class_helper_vvvvvxc = jQuery("#jform_add_class_helper").val();
vvvvvxc(add_class_helper_header_vvvvvxc,add_class_helper_vvvvvxc);
var add_php_script_construct_vvvvvxe = jQuery("#jform_add_php_script_construct input[type='radio']:checked").val();
vvvvvxe(add_php_script_construct_vvvvvxe);
@ -81,51 +81,122 @@ jQuery(document).ready(function()
});
// the vvvvvxb function
function vvvvvxb(add_custom_abstract_class_helper_header_vvvvvxb,add_abstract_class_helper_vvvvvxb)
function vvvvvxb(add_class_helper_vvvvvxb)
{
if (isSet(add_class_helper_vvvvvxb) && add_class_helper_vvvvvxb.constructor !== Array)
{
var temp_vvvvvxb = add_class_helper_vvvvvxb;
var add_class_helper_vvvvvxb = [];
add_class_helper_vvvvvxb.push(temp_vvvvvxb);
}
else if (!isSet(add_class_helper_vvvvvxb))
{
var add_class_helper_vvvvvxb = [];
}
var add_class_helper = add_class_helper_vvvvvxb.some(add_class_helper_vvvvvxb_SomeFunc);
// set this function logic
if (add_class_helper)
{
jQuery('#jform_add_class_helper_header').closest('.control-group').show();
jQuery('#jform_class_helper_code-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_add_class_helper_header').closest('.control-group').hide();
jQuery('#jform_class_helper_code-lbl').closest('.control-group').hide();
}
}
// the vvvvvxb Some function
function add_class_helper_vvvvvxb_SomeFunc(add_class_helper_vvvvvxb)
{
// set the function logic
if (add_custom_abstract_class_helper_header_vvvvvxb == 1 && add_abstract_class_helper_vvvvvxb == 1)
if (add_class_helper_vvvvvxb == 1 || add_class_helper_vvvvvxb == 2)
{
jQuery('#jform_abstract_class_helper_header-lbl').closest('.control-group').show();
// add required attribute to abstract_class_helper_header field
if (jform_vvvvvxbvwd_required)
return true;
}
return false;
}
// the vvvvvxc function
function vvvvvxc(add_class_helper_header_vvvvvxc,add_class_helper_vvvvvxc)
{
if (isSet(add_class_helper_header_vvvvvxc) && add_class_helper_header_vvvvvxc.constructor !== Array)
{
updateFieldRequired('abstract_class_helper_header',0);
jQuery('#jform_abstract_class_helper_header').prop('required','required');
jQuery('#jform_abstract_class_helper_header').attr('aria-required',true);
jQuery('#jform_abstract_class_helper_header').addClass('required');
jform_vvvvvxbvwd_required = false;
var temp_vvvvvxc = add_class_helper_header_vvvvvxc;
var add_class_helper_header_vvvvvxc = [];
add_class_helper_header_vvvvvxc.push(temp_vvvvvxc);
}
else if (!isSet(add_class_helper_header_vvvvvxc))
{
var add_class_helper_header_vvvvvxc = [];
}
var add_class_helper_header = add_class_helper_header_vvvvvxc.some(add_class_helper_header_vvvvvxc_SomeFunc);
if (isSet(add_class_helper_vvvvvxc) && add_class_helper_vvvvvxc.constructor !== Array)
{
var temp_vvvvvxc = add_class_helper_vvvvvxc;
var add_class_helper_vvvvvxc = [];
add_class_helper_vvvvvxc.push(temp_vvvvvxc);
}
else if (!isSet(add_class_helper_vvvvvxc))
{
var add_class_helper_vvvvvxc = [];
}
var add_class_helper = add_class_helper_vvvvvxc.some(add_class_helper_vvvvvxc_SomeFunc);
// set this function logic
if (add_class_helper_header && add_class_helper)
{
jQuery('#jform_class_helper_header-lbl').closest('.control-group').show();
// add required attribute to class_helper_header field
if (jform_vvvvvxcvwd_required)
{
updateFieldRequired('class_helper_header',0);
jQuery('#jform_class_helper_header').prop('required','required');
jQuery('#jform_class_helper_header').attr('aria-required',true);
jQuery('#jform_class_helper_header').addClass('required');
jform_vvvvvxcvwd_required = false;
}
}
else
{
jQuery('#jform_abstract_class_helper_header-lbl').closest('.control-group').hide();
// remove required attribute from abstract_class_helper_header field
if (!jform_vvvvvxbvwd_required)
jQuery('#jform_class_helper_header-lbl').closest('.control-group').hide();
// remove required attribute from class_helper_header field
if (!jform_vvvvvxcvwd_required)
{
updateFieldRequired('abstract_class_helper_header',1);
jQuery('#jform_abstract_class_helper_header').removeAttr('required');
jQuery('#jform_abstract_class_helper_header').removeAttr('aria-required');
jQuery('#jform_abstract_class_helper_header').removeClass('required');
jform_vvvvvxbvwd_required = true;
updateFieldRequired('class_helper_header',1);
jQuery('#jform_class_helper_header').removeAttr('required');
jQuery('#jform_class_helper_header').removeAttr('aria-required');
jQuery('#jform_class_helper_header').removeClass('required');
jform_vvvvvxcvwd_required = true;
}
}
}
// the vvvvvxd function
function vvvvvxd(add_abstract_class_helper_vvvvvxd)
// the vvvvvxc Some function
function add_class_helper_header_vvvvvxc_SomeFunc(add_class_helper_header_vvvvvxc)
{
// set the function logic
if (add_abstract_class_helper_vvvvvxd == 1)
if (add_class_helper_header_vvvvvxc == 1)
{
jQuery('#jform_abstract_class_helper_code-lbl').closest('.control-group').show();
jQuery('#jform_add_custom_abstract_class_helper_header').closest('.control-group').show();
return true;
}
else
return false;
}
// the vvvvvxc Some function
function add_class_helper_vvvvvxc_SomeFunc(add_class_helper_vvvvvxc)
{
// set the function logic
if (add_class_helper_vvvvvxc == 1 || add_class_helper_vvvvvxc == 2)
{
jQuery('#jform_abstract_class_helper_code-lbl').closest('.control-group').hide();
jQuery('#jform_add_custom_abstract_class_helper_header').closest('.control-group').hide();
return true;
}
return false;
}
// the vvvvvxe function

View File

@ -111,12 +111,12 @@
filter="HTML"
hint="COM_COMPONENTBUILDER_JOOMLA_MODULE_DESCRIPTION_HINT"
/>
<!-- Php_postflight_update Field. Type: Editor. (joomla) -->
<!-- Php_method_uninstall Field. Type: Editor. (joomla) -->
<field
type="editor"
name="php_postflight_update"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_PHP_POSTFLIGHT_UPDATE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_PHP_POSTFLIGHT_UPDATE_DESCRIPTION"
name="php_method_uninstall"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_PHP_METHOD_UNINSTALL_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_PHP_METHOD_UNINSTALL_DESCRIPTION"
width="100%"
height="450px"
cols="15"
@ -143,6 +143,38 @@
filter="raw"
validate="code"
/>
<!-- Php_postflight_update Field. Type: Editor. (joomla) -->
<field
type="editor"
name="php_postflight_update"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_PHP_POSTFLIGHT_UPDATE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_PHP_POSTFLIGHT_UPDATE_DESCRIPTION"
width="100%"
height="450px"
cols="15"
rows="30"
buttons="no"
syntax="php"
editor="codemirror|none"
filter="raw"
validate="code"
/>
<!-- Php_preflight_update Field. Type: Editor. (joomla) -->
<field
type="editor"
name="php_preflight_update"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_PHP_PREFLIGHT_UPDATE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_PHP_PREFLIGHT_UPDATE_DESCRIPTION"
width="100%"
height="450px"
cols="15"
rows="30"
buttons="no"
syntax="php"
editor="codemirror|none"
filter="raw"
validate="code"
/>
<!-- Php_preflight_uninstall Field. Type: Editor. (joomla) -->
<field
type="editor"
@ -159,36 +191,30 @@
filter="raw"
validate="code"
/>
<!-- Note_update_server_note_other Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_update_server_note_other" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_UPDATE_SERVER_NOTE_OTHER_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_UPDATE_SERVER_NOTE_OTHER_DESCRIPTION" heading="h4" class="alert alert-success note_update_server_note_other" />
<!-- Update_server_url Field. Type: Url. (joomla) -->
<!-- Readme Field. Type: Editor. (joomla) -->
<field
type="url"
name="update_server_url"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATE_SERVER_URL_LABEL"
size="60"
maxlength="150"
default=""
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATE_SERVER_URL_DESCRIPTION"
class="text_area span12"
filter="url"
validated="url"
message="COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATE_SERVER_URL_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATE_SERVER_URL_HINT"
/>
<!-- Sql_uninstall Field. Type: Textarea. (joomla) -->
<field
type="textarea"
name="sql_uninstall"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_SQL_UNINSTALL_LABEL"
rows="30"
cols="15"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_SQL_UNINSTALL_DESCRIPTION"
class="text_area span12"
type="editor"
name="readme"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_README_LABEL"
default="You can use all the normal markdown, including the place-holders."
width="100%"
height="1200px"
buttons="false"
editor="none"
filter="raw"
hint="COM_COMPONENTBUILDER_JOOMLA_MODULE_SQL_UNINSTALL_HINT"
required="true"
/>
<!-- Note_libraries_options Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_libraries_options" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LIBRARIES_OPTIONS_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LIBRARIES_OPTIONS_DESCRIPTION" heading="h4" class="alert alert-info note_libraries_options" />
<!-- Note_linked_to_notice Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_linked_to_notice" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LINKED_TO_NOTICE_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LINKED_TO_NOTICE_DESCRIPTION" heading="h4" class="note_linked_to_notice" />
<!-- Not_required Field. Type: Hidden. (joomla) -->
<field
type="hidden"
name="not_required"
default="[]"
/>
<!-- Note_snippet_usage Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_snippet_usage" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_SNIPPET_USAGE_LABEL" heading="h4" class="snippet-usage note_snippet_usage" />
<!-- Default Field. Type: Editor. (joomla) -->
<field
type="editor"
@ -205,8 +231,6 @@
filter="raw"
validate="code"
/>
<!-- Note_snippet_usage Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_snippet_usage" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_SNIPPET_USAGE_LABEL" heading="h4" class="snippet-usage note_snippet_usage" />
<!-- Note_uikit_snippet Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_uikit_snippet" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_UIKIT_SNIPPET_LABEL" heading="h4" class="snippet-code note_uikit_snippet" />
<!-- Snippet Field. Type: Snippets. (custom) -->
@ -222,36 +246,6 @@
/>
<!-- Note_add_language_string Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_add_language_string" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_ADD_LANGUAGE_STRING_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION" heading="h4" class="note_add_language_string" />
<!-- Note_model Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_model" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_MODEL_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_MODEL_DESCRIPTION" heading="h4" class="alert alert-info note_model" />
<!-- Libraries Field. Type: Libraries. (custom) -->
<field
type="libraries"
name="libraries"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_LIBRARIES_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_LIBRARIES_DESCRIPTION"
class="list_class"
multiple="true"
default="0"
required="false"
button="true"
/>
<!-- Php_method_uninstall Field. Type: Editor. (joomla) -->
<field
type="editor"
name="php_method_uninstall"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_PHP_METHOD_UNINSTALL_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_PHP_METHOD_UNINSTALL_DESCRIPTION"
width="100%"
height="450px"
cols="15"
rows="30"
buttons="no"
syntax="php"
editor="codemirror|none"
filter="raw"
validate="code"
/>
<!-- Sql Field. Type: Textarea. (joomla) -->
<field
type="textarea"
@ -265,42 +259,20 @@
hint="COM_COMPONENTBUILDER_JOOMLA_MODULE_SQL_HINT"
required="true"
/>
<!-- Note_linked_to_notice Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_linked_to_notice" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LINKED_TO_NOTICE_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LINKED_TO_NOTICE_DESCRIPTION" heading="h4" class="note_linked_to_notice" />
<!-- Readme Field. Type: Editor. (joomla) -->
<field
type="editor"
name="readme"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_README_LABEL"
default="You can use all the normal markdown, including the place-holders."
width="100%"
height="1200px"
buttons="false"
editor="none"
filter="raw"
/>
<!-- Not_required Field. Type: Hidden. (joomla) -->
<field
type="hidden"
name="not_required"
default="[]"
/>
<!-- Note_update_server_note_ftp Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_update_server_note_ftp" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_UPDATE_SERVER_NOTE_FTP_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_UPDATE_SERVER_NOTE_FTP_DESCRIPTION" heading="h4" class="alert alert-success note_update_server_note_ftp" />
<!-- Module_version Field. Type: Text. (joomla) -->
<!-- Sql_uninstall Field. Type: Textarea. (joomla) -->
<field
type="text"
name="module_version"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_MODULE_VERSION_LABEL"
size="40"
maxlength="50"
default="1.0.0"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_MODULE_VERSION_DESCRIPTION"
class="text_area"
type="textarea"
name="sql_uninstall"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_SQL_UNINSTALL_LABEL"
rows="30"
cols="15"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_SQL_UNINSTALL_DESCRIPTION"
class="text_area span12"
filter="raw"
hint="COM_COMPONENTBUILDER_JOOMLA_MODULE_SQL_UNINSTALL_HINT"
required="true"
filter="CMD"
message="COM_COMPONENTBUILDER_JOOMLA_MODULE_MODULE_VERSION_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_MODULE_MODULE_VERSION_HINT"
/>
<!-- Add_sales_server Field. Type: Radio. (joomla) -->
<field
@ -316,20 +288,61 @@
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Add_abstract_class_helper Field. Type: Radio. (joomla) -->
<!-- Update_server_url Field. Type: Url. (joomla) -->
<field
type="radio"
name="add_abstract_class_helper"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_ABSTRACT_CLASS_HELPER_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_ABSTRACT_CLASS_HELPER_DESCRIPTION"
class="btn-group btn-group-yesno"
default="0">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_MODULE_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
type="url"
name="update_server_url"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATE_SERVER_URL_LABEL"
size="60"
maxlength="150"
default=""
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATE_SERVER_URL_DESCRIPTION"
class="text_area span12"
filter="url"
validated="url"
message="COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATE_SERVER_URL_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATE_SERVER_URL_HINT"
/>
<!-- Libraries Field. Type: Libraries. (custom) -->
<field
type="libraries"
name="libraries"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_LIBRARIES_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_LIBRARIES_DESCRIPTION"
class="list_class"
multiple="true"
default="0"
required="false"
button="true"
/>
<!-- Note_update_server_note_other Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_update_server_note_other" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_UPDATE_SERVER_NOTE_OTHER_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_UPDATE_SERVER_NOTE_OTHER_DESCRIPTION" heading="h4" class="alert alert-success note_update_server_note_other" />
<!-- Module_version Field. Type: Text. (joomla) -->
<field
type="text"
name="module_version"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_MODULE_VERSION_LABEL"
size="40"
maxlength="50"
default="1.0.0"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_MODULE_VERSION_DESCRIPTION"
class="text_area"
required="true"
filter="CMD"
message="COM_COMPONENTBUILDER_JOOMLA_MODULE_MODULE_VERSION_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_MODULE_MODULE_VERSION_HINT"
/>
<!-- Custom_get Field. Type: Customgets. (custom) -->
<field
type="customgets"
name="custom_get"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_CUSTOM_GET_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_CUSTOM_GET_DESCRIPTION"
multiple="true"
default=""
/>
<!-- Note_mod_file_options Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_mod_file_options" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_MOD_FILE_OPTIONS_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_MOD_FILE_OPTIONS_DESCRIPTION" heading="h4" class="alert alert-info note_mod_file_options" />
<!-- Add_php_preflight_uninstall Field. Type: Radio. (joomla) -->
<field
type="radio"
@ -344,20 +357,23 @@
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Add_custom_abstract_class_helper_header Field. Type: Radio. (joomla) -->
<!-- Mod_code Field. Type: Editor. (joomla) -->
<field
type="radio"
name="add_custom_abstract_class_helper_header"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_CUSTOM_ABSTRACT_CLASS_HELPER_HEADER_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_CUSTOM_ABSTRACT_CLASS_HELPER_HEADER_DESCRIPTION"
class="btn-group btn-group-yesno"
default="0">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_MODULE_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
type="editor"
name="mod_code"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_MOD_CODE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_MOD_CODE_DESCRIPTION"
width="100%"
height="500px"
cols="15"
rows="10"
buttons="no"
syntax="php"
editor="codemirror|none"
filter="raw"
required="true"
validate="code"
/>
<!-- Add_php_postflight_install Field. Type: Radio. (joomla) -->
<field
type="radio"
@ -372,15 +388,24 @@
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Custom_get Field. Type: Customgets. (custom) -->
<!-- Add_class_helper Field. Type: List. (joomla) -->
<field
type="customgets"
name="custom_get"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_CUSTOM_GET_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_CUSTOM_GET_DESCRIPTION"
multiple="true"
default=""
/>
type="list"
name="add_class_helper"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_CLASS_HELPER_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_CLASS_HELPER_DESCRIPTION"
class="list_class"
multiple="false"
required="true"
default="0">
<!-- Option Set. -->
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NONE</option>
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_MODULE_CLASS</option>
<option value="2">
COM_COMPONENTBUILDER_JOOMLA_MODULE_ABSTRACT_CLASS</option>
</field>
<!-- Add_php_postflight_update Field. Type: Radio. (joomla) -->
<field
type="radio"
@ -395,23 +420,20 @@
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Abstract_class_helper_header Field. Type: Editor. (joomla) -->
<!-- Add_class_helper_header Field. Type: Radio. (joomla) -->
<field
type="editor"
name="abstract_class_helper_header"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ABSTRACT_CLASS_HELPER_HEADER_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_ABSTRACT_CLASS_HELPER_HEADER_DESCRIPTION"
width="100%"
height="100px"
cols="15"
rows="10"
buttons="no"
syntax="php"
editor="codemirror|none"
filter="raw"
required="false"
validate="code"
/>
type="radio"
name="add_class_helper_header"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_CLASS_HELPER_HEADER_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_CLASS_HELPER_HEADER_DESCRIPTION"
class="btn-group btn-group-yesno"
default="0">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_MODULE_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Add_php_method_uninstall Field. Type: Radio. (joomla) -->
<field
type="radio"
@ -426,12 +448,43 @@
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Abstract_class_helper_code Field. Type: Editor. (joomla) -->
<!-- Class_helper_header Field. Type: Editor. (joomla) -->
<field
type="editor"
name="abstract_class_helper_code"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ABSTRACT_CLASS_HELPER_CODE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_ABSTRACT_CLASS_HELPER_CODE_DESCRIPTION"
name="class_helper_header"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_CLASS_HELPER_HEADER_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_CLASS_HELPER_HEADER_DESCRIPTION"
width="100%"
height="100px"
cols="15"
rows="10"
buttons="no"
syntax="php"
editor="codemirror|none"
filter="raw"
required="false"
validate="code"
/>
<!-- Add_sql Field. Type: Radio. (joomla) -->
<field
type="radio"
name="add_sql"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_SQL_LABEL"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_MODULE_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Class_helper_code Field. Type: Editor. (joomla) -->
<field
type="editor"
name="class_helper_code"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_CLASS_HELPER_CODE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_CLASS_HELPER_CODE_DESCRIPTION"
width="100%"
height="800px"
cols="40"
@ -442,11 +495,11 @@
filter="raw"
validate="code"
/>
<!-- Add_sql Field. Type: Radio. (joomla) -->
<!-- Add_sql_uninstall Field. Type: Radio. (joomla) -->
<field
type="radio"
name="add_sql"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_SQL_LABEL"
name="add_sql_uninstall"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_SQL_UNINSTALL_LABEL"
class="btn-group btn-group-yesno"
default="0"
required="true">
@ -590,14 +643,13 @@
</field>
</form>
</field>
<!-- Add_sql_uninstall Field. Type: Radio. (joomla) -->
<!-- Addreadme Field. Type: Radio. (joomla) -->
<field
type="radio"
name="add_sql_uninstall"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_SQL_UNINSTALL_LABEL"
name="addreadme"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADDREADME_LABEL"
class="btn-group btn-group-yesno"
default="0"
required="true">
default="0">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_MODULE_YES</option>
@ -618,13 +670,14 @@
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Addreadme Field. Type: Radio. (joomla) -->
<!-- Add_update_server Field. Type: Radio. (joomla) -->
<field
type="radio"
name="addreadme"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADDREADME_LABEL"
name="add_update_server"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_UPDATE_SERVER_LABEL"
class="btn-group btn-group-yesno"
default="0">
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_MODULE_YES</option>
@ -647,34 +700,6 @@
filter="raw"
validate="code"
/>
<!-- Add_update_server Field. Type: Radio. (joomla) -->
<field
type="radio"
name="add_update_server"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_UPDATE_SERVER_LABEL"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_MODULE_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Add_php_preflight_install Field. Type: Radio. (joomla) -->
<field
type="radio"
name="add_php_preflight_install"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_PHP_PREFLIGHT_INSTALL_LABEL"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_MODULE_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Update_server_target Field. Type: Radio. (joomla) -->
<field
type="radio"
@ -692,6 +717,22 @@
<option value="3">
COM_COMPONENTBUILDER_JOOMLA_MODULE_OTHER</option>
</field>
<!-- Add_php_preflight_install Field. Type: Radio. (joomla) -->
<field
type="radio"
name="add_php_preflight_install"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_PHP_PREFLIGHT_INSTALL_LABEL"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_MODULE_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Note_update_server_note_zip Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_update_server_note_zip" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_UPDATE_SERVER_NOTE_ZIP_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_UPDATE_SERVER_NOTE_ZIP_DESCRIPTION" heading="h4" class="alert alert-info note_update_server_note_zip" />
<!-- Php_preflight_install Field. Type: Editor. (joomla) -->
<field
type="editor"
@ -708,8 +749,17 @@
filter="raw"
validate="code"
/>
<!-- Note_update_server_note_zip Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_update_server_note_zip" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_UPDATE_SERVER_NOTE_ZIP_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_UPDATE_SERVER_NOTE_ZIP_DESCRIPTION" heading="h4" class="alert alert-info note_update_server_note_zip" />
<!-- Update_server Field. Type: Servers. (custom) -->
<field
type="servers"
name="update_server"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATE_SERVER_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATE_SERVER_DESCRIPTION"
class="list_class"
multiple="false"
default="0"
button="true"
/>
<!-- Add_php_preflight_update Field. Type: Radio. (joomla) -->
<field
type="radio"
@ -724,33 +774,6 @@
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Update_server Field. Type: Servers. (custom) -->
<field
type="servers"
name="update_server"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATE_SERVER_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATE_SERVER_DESCRIPTION"
class="list_class"
multiple="false"
default="0"
button="true"
/>
<!-- Php_preflight_update Field. Type: Editor. (joomla) -->
<field
type="editor"
name="php_preflight_update"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_PHP_PREFLIGHT_UPDATE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_PHP_PREFLIGHT_UPDATE_DESCRIPTION"
width="100%"
height="450px"
cols="15"
rows="30"
buttons="no"
syntax="php"
editor="codemirror|none"
filter="raw"
validate="code"
/>
<!-- Sales_server Field. Type: Servers. (custom) -->
<field
type="servers"

View File

@ -78,8 +78,8 @@ function placedin(placeholder, ide) {
jQuery('#note-placedin-not').hide();
jQuery('#note-placedin-found').hide();
jQuery('#loading-placedin').show();
var targets = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t']; // if you update this, also update (below 19) & [customcode-codeUsedInHtmlNote]!
var targetNumber = 19;
var targets = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u']; // if you update this, also update (below 20) & [customcode-codeUsedInHtmlNote]!
var targetNumber = 20;
var run = 0;
var placedinChecker = setInterval(function(){
var target = targets[run];

View File

@ -1900,29 +1900,37 @@ class ComponentbuilderModelJoomla_components extends JModelList
'not_base64' => array(),
'name' => 'name'
),
// #__componentbuilder_joomla_plugin (q)
'joomla_plugin' => array(
'search' => array('id', 'system_name', 'name', 'main_class_code', 'head', 'description', 'php_script_construct', 'php_preflight_install', 'php_preflight_update',
'php_preflight_uninstall', 'php_postflight_install', 'php_postflight_update', 'php_method_uninstall'),
'views' => 'joomla_plugins',
'not_base64' => array('description' => 'string'),
// #__componentbuilder_joomla_module (q)
'joomla_module' => array(
'search' => array('id', 'system_name', 'name', 'default', 'description', 'mod_code', 'class_helper_header', 'class_helper_code', 'php_script_construct', 'php_preflight_install', 'php_preflight_update',
'php_preflight_uninstall', 'php_postflight_install', 'php_postflight_update', 'php_method_uninstall', 'sql', 'sql_uninstall', 'readme'),
'views' => 'joomla_modules',
'not_base64' => array('description' => 'string', 'readme' => 'string'),
'name' => 'system_name'
),
// #__componentbuilder_class_extends (r)
// #__componentbuilder_joomla_plugin (r)
'joomla_plugin' => array(
'search' => array('id', 'system_name', 'name', 'main_class_code', 'head', 'description', 'php_script_construct', 'php_preflight_install', 'php_preflight_update',
'php_preflight_uninstall', 'php_postflight_install', 'php_postflight_update', 'php_method_uninstall', 'sql', 'sql_uninstall', 'readme'),
'views' => 'joomla_plugins',
'not_base64' => array('description' => 'string', 'readme' => 'string'),
'name' => 'system_name'
),
// #__componentbuilder_class_extends (s)
'class_extends' => array(
'search' => array('id', 'name', 'head', 'comment'),
'views' => 'class_extendings',
'not_base64' => array(),
'name' => 'name'
),
// #__componentbuilder_class_property (s)
// #__componentbuilder_class_property (t)
'class_property' => array(
'search' => array('id', 'name', 'default', 'comment'),
'views' => 'class_properties',
'not_base64' => array(),
'name' => 'name'
),
// #__componentbuilder_class_method (t)
// #__componentbuilder_class_method (u)
'class_method' => array(
'search' => array('id', 'name', 'code', 'comment'),
'views' => 'class_methods',

View File

@ -30,7 +30,7 @@ class ComponentbuilderModelJoomla_module extends JModelAdmin
'name',
'description',
'libraries',
'note_model',
'note_libraries_options',
'note_add_language_string'
),
'right' => array(
@ -66,6 +66,20 @@ class ComponentbuilderModelJoomla_module extends JModelAdmin
'php_method_uninstall'
)
),
'readme' => array(
'left' => array(
'addreadme',
'readme'
)
),
'mysql' => array(
'fullwidth' => array(
'add_sql',
'sql',
'add_sql_uninstall',
'sql_uninstall'
)
),
'dynamic_integration' => array(
'left' => array(
'add_update_server',
@ -79,31 +93,27 @@ class ComponentbuilderModelJoomla_module extends JModelAdmin
'sales_server'
)
),
'mysql' => array(
'fullwidth' => array(
'add_sql',
'sql',
'add_sql_uninstall',
'sql_uninstall'
)
),
'readme' => array(
'left' => array(
'addreadme',
'readme'
)
),
'code' => array(
'left' => array(
'add_abstract_class_helper',
'add_custom_abstract_class_helper_header'
),
'right' => array(
'custom_get'
),
'right' => array(
'note_mod_file_options'
),
'fullwidth' => array(
'abstract_class_helper_header',
'abstract_class_helper_code'
'mod_code'
)
),
'helper' => array(
'left' => array(
'add_class_helper'
),
'right' => array(
'add_class_helper_header'
),
'fullwidth' => array(
'class_helper_header',
'class_helper_code'
)
),
'forms_fields' => array(
@ -224,10 +234,10 @@ class ComponentbuilderModelJoomla_module extends JModelAdmin
$item->metadata = $registry->toArray();
}
if (!empty($item->php_postflight_update))
if (!empty($item->php_method_uninstall))
{
// base64 Decode php_postflight_update.
$item->php_postflight_update = base64_decode($item->php_postflight_update);
// base64 Decode php_method_uninstall.
$item->php_method_uninstall = base64_decode($item->php_method_uninstall);
}
if (!empty($item->php_postflight_install))
@ -236,52 +246,64 @@ class ComponentbuilderModelJoomla_module extends JModelAdmin
$item->php_postflight_install = base64_decode($item->php_postflight_install);
}
if (!empty($item->php_postflight_update))
{
// base64 Decode php_postflight_update.
$item->php_postflight_update = base64_decode($item->php_postflight_update);
}
if (!empty($item->php_preflight_update))
{
// base64 Decode php_preflight_update.
$item->php_preflight_update = base64_decode($item->php_preflight_update);
}
if (!empty($item->php_preflight_uninstall))
{
// base64 Decode php_preflight_uninstall.
$item->php_preflight_uninstall = base64_decode($item->php_preflight_uninstall);
}
if (!empty($item->sql_uninstall))
{
// base64 Decode sql_uninstall.
$item->sql_uninstall = base64_decode($item->sql_uninstall);
}
if (!empty($item->default))
{
// base64 Decode default.
$item->default = base64_decode($item->default);
}
if (!empty($item->php_method_uninstall))
{
// base64 Decode php_method_uninstall.
$item->php_method_uninstall = base64_decode($item->php_method_uninstall);
}
if (!empty($item->sql))
{
// base64 Decode sql.
$item->sql = base64_decode($item->sql);
}
if (!empty($item->readme))
{
// base64 Decode readme.
$item->readme = base64_decode($item->readme);
}
if (!empty($item->abstract_class_helper_header))
if (!empty($item->default))
{
// base64 Decode abstract_class_helper_header.
$item->abstract_class_helper_header = base64_decode($item->abstract_class_helper_header);
// base64 Decode default.
$item->default = base64_decode($item->default);
}
if (!empty($item->abstract_class_helper_code))
if (!empty($item->sql))
{
// base64 Decode abstract_class_helper_code.
$item->abstract_class_helper_code = base64_decode($item->abstract_class_helper_code);
// base64 Decode sql.
$item->sql = base64_decode($item->sql);
}
if (!empty($item->sql_uninstall))
{
// base64 Decode sql_uninstall.
$item->sql_uninstall = base64_decode($item->sql_uninstall);
}
if (!empty($item->mod_code))
{
// base64 Decode mod_code.
$item->mod_code = base64_decode($item->mod_code);
}
if (!empty($item->class_helper_header))
{
// base64 Decode class_helper_header.
$item->class_helper_header = base64_decode($item->class_helper_header);
}
if (!empty($item->class_helper_code))
{
// base64 Decode class_helper_code.
$item->class_helper_code = base64_decode($item->class_helper_code);
}
if (!empty($item->php_script_construct))
@ -296,12 +318,6 @@ class ComponentbuilderModelJoomla_module extends JModelAdmin
$item->php_preflight_install = base64_decode($item->php_preflight_install);
}
if (!empty($item->php_preflight_update))
{
// base64 Decode php_preflight_update.
$item->php_preflight_update = base64_decode($item->php_preflight_update);
}
if (!empty($item->libraries))
{
// Convert the libraries field to an array.
@ -1211,10 +1227,10 @@ class ComponentbuilderModelJoomla_module extends JModelAdmin
$data['fields'] = '';
}
// Set the php_postflight_update string to base64 string.
if (isset($data['php_postflight_update']))
// Set the php_method_uninstall string to base64 string.
if (isset($data['php_method_uninstall']))
{
$data['php_postflight_update'] = base64_encode($data['php_postflight_update']);
$data['php_method_uninstall'] = base64_encode($data['php_method_uninstall']);
}
// Set the php_postflight_install string to base64 string.
@ -1223,52 +1239,64 @@ class ComponentbuilderModelJoomla_module extends JModelAdmin
$data['php_postflight_install'] = base64_encode($data['php_postflight_install']);
}
// Set the php_postflight_update string to base64 string.
if (isset($data['php_postflight_update']))
{
$data['php_postflight_update'] = base64_encode($data['php_postflight_update']);
}
// Set the php_preflight_update string to base64 string.
if (isset($data['php_preflight_update']))
{
$data['php_preflight_update'] = base64_encode($data['php_preflight_update']);
}
// Set the php_preflight_uninstall string to base64 string.
if (isset($data['php_preflight_uninstall']))
{
$data['php_preflight_uninstall'] = base64_encode($data['php_preflight_uninstall']);
}
// Set the sql_uninstall string to base64 string.
if (isset($data['sql_uninstall']))
{
$data['sql_uninstall'] = base64_encode($data['sql_uninstall']);
}
// Set the default string to base64 string.
if (isset($data['default']))
{
$data['default'] = base64_encode($data['default']);
}
// Set the php_method_uninstall string to base64 string.
if (isset($data['php_method_uninstall']))
{
$data['php_method_uninstall'] = base64_encode($data['php_method_uninstall']);
}
// Set the sql string to base64 string.
if (isset($data['sql']))
{
$data['sql'] = base64_encode($data['sql']);
}
// Set the readme string to base64 string.
if (isset($data['readme']))
{
$data['readme'] = base64_encode($data['readme']);
}
// Set the abstract_class_helper_header string to base64 string.
if (isset($data['abstract_class_helper_header']))
// Set the default string to base64 string.
if (isset($data['default']))
{
$data['abstract_class_helper_header'] = base64_encode($data['abstract_class_helper_header']);
$data['default'] = base64_encode($data['default']);
}
// Set the abstract_class_helper_code string to base64 string.
if (isset($data['abstract_class_helper_code']))
// Set the sql string to base64 string.
if (isset($data['sql']))
{
$data['abstract_class_helper_code'] = base64_encode($data['abstract_class_helper_code']);
$data['sql'] = base64_encode($data['sql']);
}
// Set the sql_uninstall string to base64 string.
if (isset($data['sql_uninstall']))
{
$data['sql_uninstall'] = base64_encode($data['sql_uninstall']);
}
// Set the mod_code string to base64 string.
if (isset($data['mod_code']))
{
$data['mod_code'] = base64_encode($data['mod_code']);
}
// Set the class_helper_header string to base64 string.
if (isset($data['class_helper_header']))
{
$data['class_helper_header'] = base64_encode($data['class_helper_header']);
}
// Set the class_helper_code string to base64 string.
if (isset($data['class_helper_code']))
{
$data['class_helper_code'] = base64_encode($data['class_helper_code']);
}
// Set the php_script_construct string to base64 string.
@ -1283,12 +1311,6 @@ class ComponentbuilderModelJoomla_module extends JModelAdmin
$data['php_preflight_install'] = base64_encode($data['php_preflight_install']);
}
// Set the php_preflight_update string to base64 string.
if (isset($data['php_preflight_update']))
{
$data['php_preflight_update'] = base64_encode($data['php_preflight_update']);
}
// Set the Params Items to data
if (isset($data['params']) && is_array($data['params']))
{

View File

@ -144,10 +144,8 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_component` (
CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_module` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
`abstract_class_helper_code` MEDIUMTEXT NOT NULL,
`abstract_class_helper_header` TEXT NOT NULL,
`add_abstract_class_helper` TINYINT(1) NOT NULL DEFAULT 0,
`add_custom_abstract_class_helper_header` TINYINT(1) NOT NULL DEFAULT 0,
`add_class_helper` TINYINT(1) NOT NULL DEFAULT 0,
`add_class_helper_header` TINYINT(1) NOT NULL DEFAULT 0,
`add_php_method_uninstall` TINYINT(1) NOT NULL DEFAULT 0,
`add_php_postflight_install` TINYINT(1) NOT NULL DEFAULT 0,
`add_php_postflight_update` TINYINT(1) NOT NULL DEFAULT 0,
@ -160,11 +158,14 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_module` (
`add_sql_uninstall` TINYINT(1) NOT NULL DEFAULT 0,
`add_update_server` TINYINT(1) NOT NULL DEFAULT 0,
`addreadme` TINYINT(1) NOT NULL DEFAULT 0,
`class_helper_code` MEDIUMTEXT NOT NULL,
`class_helper_header` TEXT NOT NULL,
`custom_get` TEXT NOT NULL,
`default` TEXT NOT NULL,
`description` TEXT NOT NULL,
`fields` TEXT NOT NULL,
`libraries` TEXT NOT NULL,
`mod_code` TEXT NOT NULL,
`module_version` CHAR(64) NOT NULL DEFAULT '',
`name` VARCHAR(255) NOT NULL DEFAULT '',
`php_method_uninstall` MEDIUMTEXT NOT NULL,
@ -204,11 +205,11 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_module` (
KEY `idx_add_php_method_uninstall` (`add_php_method_uninstall`),
KEY `idx_add_sql` (`add_sql`),
KEY `idx_add_sql_uninstall` (`add_sql_uninstall`),
KEY `idx_add_php_script_construct` (`add_php_script_construct`),
KEY `idx_addreadme` (`addreadme`),
KEY `idx_add_php_script_construct` (`add_php_script_construct`),
KEY `idx_add_update_server` (`add_update_server`),
KEY `idx_add_php_preflight_install` (`add_php_preflight_install`),
KEY `idx_update_server_target` (`update_server_target`),
KEY `idx_add_php_preflight_install` (`add_php_preflight_install`),
KEY `idx_add_php_preflight_update` (`add_php_preflight_update`),
KEY `idx_name` (`name`),
KEY `idx_access` (`access`),
@ -1601,6 +1602,32 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_component_plugins` (
KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
CREATE TABLE IF NOT EXISTS `#__componentbuilder_component_modules` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
`addjoomla_modules` TEXT NOT NULL,
`joomla_component` INT(11) NOT NULL DEFAULT 0,
`params` text NOT NULL,
`published` TINYINT(3) NOT NULL DEFAULT 1,
`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`version` INT(10) unsigned NOT NULL DEFAULT 1,
`hits` INT(10) unsigned NOT NULL DEFAULT 0,
`access` INT(10) unsigned NOT NULL DEFAULT 0,
`ordering` INT(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
KEY `idx_joomla_component` (`joomla_component`),
KEY `idx_access` (`access`),
KEY `idx_checkout` (`checked_out`),
KEY `idx_createdby` (`created_by`),
KEY `idx_modifiedby` (`modified_by`),
KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
CREATE TABLE IF NOT EXISTS `#__componentbuilder_snippet_type` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',

View File

@ -35,6 +35,7 @@ DROP TABLE IF EXISTS `#__componentbuilder_component_dashboard`;
DROP TABLE IF EXISTS `#__componentbuilder_component_files_folders`;
DROP TABLE IF EXISTS `#__componentbuilder_component_placeholders`;
DROP TABLE IF EXISTS `#__componentbuilder_component_plugins`;
DROP TABLE IF EXISTS `#__componentbuilder_component_modules`;
DROP TABLE IF EXISTS `#__componentbuilder_snippet_type`;
DROP TABLE IF EXISTS `#__componentbuilder_library_config`;
DROP TABLE IF EXISTS `#__componentbuilder_library_files_folders_urls`;

View File

@ -54,13 +54,13 @@ Joomla.submitbutton = function(task, key)
if (isValid){
jQuery('#form').hide();
// get correct form based on task
if (task == 'compiler.compiler' || task == 'compiler.installCompiledPlugin') {
if (task == 'compiler.compiler' || task == 'compiler.installCompiledModule' || task == 'compiler.installCompiledPlugin') {
var form = document.getElementById('compilerForm');
} else {
var form = document.getElementById('adminForm');
}
// set the plugin id
if (task == 'compiler.installCompiledPlugin') {
if (task == 'compiler.installCompiledModule' || task == 'compiler.installCompiledPlugin') {
form.install_item_id.value = key;
}
// set the task value

View File

@ -137,6 +137,11 @@ $edit = "index.php?option=com_componentbuilder&view=joomla_components&task=jooml
'views' => 'components_dashboard',
'title' => JText::_('COM_COMPONENTBUILDER_THE_COMPONENT_DASHBOARD'),
'icon' => 'dashboard'),
array(
'view' => 'component_modules',
'views' => 'components_modules',
'title' => JText::_('COM_COMPONENTBUILDER_THE_COMPONENT_MODULES'),
'icon' => 'cube'),
array(
'view' => 'component_plugins',
'views' => 'components_plugins',

View File

@ -81,6 +81,22 @@ $componentParams = $this->params; // will be removed just use $this->params inst
</div>
<?php echo JHtml::_('bootstrap.endTab'); ?>
<?php echo JHtml::_('bootstrap.addTab', 'joomla_moduleTab', 'helper', JText::_('COM_COMPONENTBUILDER_JOOMLA_MODULE_HELPER', true)); ?>
<div class="row-fluid form-horizontal-desktop">
<div class="span6">
<?php echo JLayoutHelper::render('joomla_module.helper_left', $this); ?>
</div>
<div class="span6">
<?php echo JLayoutHelper::render('joomla_module.helper_right', $this); ?>
</div>
</div>
<div class="row-fluid form-horizontal-desktop">
<div class="span12">
<?php echo JLayoutHelper::render('joomla_module.helper_fullwidth', $this); ?>
</div>
</div>
<?php echo JHtml::_('bootstrap.endTab'); ?>
<?php echo JHtml::_('bootstrap.addTab', 'joomla_moduleTab', 'forms_fields', JText::_('COM_COMPONENTBUILDER_JOOMLA_MODULE_FORMS_FIELDS', true)); ?>
<div class="row-fluid form-horizontal-desktop">
</div>
@ -175,52 +191,52 @@ $componentParams = $this->params; // will be removed just use $this->params inst
<script type="text/javascript">
// #jform_add_custom_abstract_class_helper_header listeners for add_custom_abstract_class_helper_header_vvvvvxb function
jQuery('#jform_add_custom_abstract_class_helper_header').on('keyup',function()
// #jform_add_class_helper listeners for add_class_helper_vvvvvxb function
jQuery('#jform_add_class_helper').on('keyup',function()
{
var add_custom_abstract_class_helper_header_vvvvvxb = jQuery("#jform_add_custom_abstract_class_helper_header input[type='radio']:checked").val();
var add_abstract_class_helper_vvvvvxb = jQuery("#jform_add_abstract_class_helper input[type='radio']:checked").val();
vvvvvxb(add_custom_abstract_class_helper_header_vvvvvxb,add_abstract_class_helper_vvvvvxb);
var add_class_helper_vvvvvxb = jQuery("#jform_add_class_helper").val();
vvvvvxb(add_class_helper_vvvvvxb);
});
jQuery('#adminForm').on('change', '#jform_add_custom_abstract_class_helper_header',function (e)
jQuery('#adminForm').on('change', '#jform_add_class_helper',function (e)
{
e.preventDefault();
var add_custom_abstract_class_helper_header_vvvvvxb = jQuery("#jform_add_custom_abstract_class_helper_header input[type='radio']:checked").val();
var add_abstract_class_helper_vvvvvxb = jQuery("#jform_add_abstract_class_helper input[type='radio']:checked").val();
vvvvvxb(add_custom_abstract_class_helper_header_vvvvvxb,add_abstract_class_helper_vvvvvxb);
var add_class_helper_vvvvvxb = jQuery("#jform_add_class_helper").val();
vvvvvxb(add_class_helper_vvvvvxb);
});
// #jform_add_abstract_class_helper listeners for add_abstract_class_helper_vvvvvxb function
jQuery('#jform_add_abstract_class_helper').on('keyup',function()
// #jform_add_class_helper_header listeners for add_class_helper_header_vvvvvxc function
jQuery('#jform_add_class_helper_header').on('keyup',function()
{
var add_custom_abstract_class_helper_header_vvvvvxb = jQuery("#jform_add_custom_abstract_class_helper_header input[type='radio']:checked").val();
var add_abstract_class_helper_vvvvvxb = jQuery("#jform_add_abstract_class_helper input[type='radio']:checked").val();
vvvvvxb(add_custom_abstract_class_helper_header_vvvvvxb,add_abstract_class_helper_vvvvvxb);
var add_class_helper_header_vvvvvxc = jQuery("#jform_add_class_helper_header input[type='radio']:checked").val();
var add_class_helper_vvvvvxc = jQuery("#jform_add_class_helper").val();
vvvvvxc(add_class_helper_header_vvvvvxc,add_class_helper_vvvvvxc);
});
jQuery('#adminForm').on('change', '#jform_add_abstract_class_helper',function (e)
jQuery('#adminForm').on('change', '#jform_add_class_helper_header',function (e)
{
e.preventDefault();
var add_custom_abstract_class_helper_header_vvvvvxb = jQuery("#jform_add_custom_abstract_class_helper_header input[type='radio']:checked").val();
var add_abstract_class_helper_vvvvvxb = jQuery("#jform_add_abstract_class_helper input[type='radio']:checked").val();
vvvvvxb(add_custom_abstract_class_helper_header_vvvvvxb,add_abstract_class_helper_vvvvvxb);
var add_class_helper_header_vvvvvxc = jQuery("#jform_add_class_helper_header input[type='radio']:checked").val();
var add_class_helper_vvvvvxc = jQuery("#jform_add_class_helper").val();
vvvvvxc(add_class_helper_header_vvvvvxc,add_class_helper_vvvvvxc);
});
// #jform_add_abstract_class_helper listeners for add_abstract_class_helper_vvvvvxd function
jQuery('#jform_add_abstract_class_helper').on('keyup',function()
// #jform_add_class_helper listeners for add_class_helper_vvvvvxc function
jQuery('#jform_add_class_helper').on('keyup',function()
{
var add_abstract_class_helper_vvvvvxd = jQuery("#jform_add_abstract_class_helper input[type='radio']:checked").val();
vvvvvxd(add_abstract_class_helper_vvvvvxd);
var add_class_helper_header_vvvvvxc = jQuery("#jform_add_class_helper_header input[type='radio']:checked").val();
var add_class_helper_vvvvvxc = jQuery("#jform_add_class_helper").val();
vvvvvxc(add_class_helper_header_vvvvvxc,add_class_helper_vvvvvxc);
});
jQuery('#adminForm').on('change', '#jform_add_abstract_class_helper',function (e)
jQuery('#adminForm').on('change', '#jform_add_class_helper',function (e)
{
e.preventDefault();
var add_abstract_class_helper_vvvvvxd = jQuery("#jform_add_abstract_class_helper input[type='radio']:checked").val();
vvvvvxd(add_abstract_class_helper_vvvvvxd);
var add_class_helper_header_vvvvvxc = jQuery("#jform_add_class_helper_header input[type='radio']:checked").val();
var add_class_helper_vvvvvxc = jQuery("#jform_add_class_helper").val();
vvvvvxc(add_class_helper_header_vvvvvxc,add_class_helper_vvvvvxc);
});

View File

@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.2" method="upgrade">
<name>COM_COMPONENTBUILDER</name>
<creationDate>3rd December, 2019</creationDate>
<creationDate>6th December, 2019</creationDate>
<author>Llewellyn van der Merwe</author>
<authorEmail>llewellyn@joomlacomponentbuilder.com</authorEmail>
<authorUrl>http://www.joomlacomponentbuilder.com</authorUrl>
<copyright>Copyright (C) 2015 - 2019 Vast Development Method. All rights reserved.</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<version>2.10.6</version>
<version>2.10.8</version>
<description><![CDATA[
<h1>Component Builder (v.2.10.6)</h1>
<h1>Component Builder (v.2.10.8)</h1>
<div style="clear: both;"></div>
<p>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.
@ -39,6 +39,7 @@ Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/compo
<folder>js</folder>
<folder>css</folder>
<folder>images</folder>
<folder>uikit-v3</folder>
<folder>uikit-v2</folder>
<folder>footable-v3</folder>
</media>

View File

@ -857,7 +857,41 @@
<version>2.10.6</version>
<infourl title="Component Builder!">http://www.joomlacomponentbuilder.com</infourl>
<downloads>
<downloadurl type="full" format="zip">https://github.com/vdm-io/Joomla-Component-Builder/releases/download/v2.10.6/JCB_v2.10.6.zip</downloadurl>
<downloadurl type="full" format="zip">https://github.com/vdm-io/Joomla-Component-Builder/releases/download/v2.10.7/JCB_v2.10.7.zip</downloadurl>
</downloads>
<tags>
<tag>stable</tag>
</tags>
<maintainer>Llewellyn van der Merwe</maintainer>
<maintainerurl>http://www.joomlacomponentbuilder.com</maintainerurl>
<targetplatform name="joomla" version="3.*"/>
</update>
<update>
<name>Component Builder</name>
<description>Builds Complex Joomla Components</description>
<element>com_componentbuilder</element>
<type>component</type>
<version>2.10.7</version>
<infourl title="Component Builder!">http://www.joomlacomponentbuilder.com</infourl>
<downloads>
<downloadurl type="full" format="zip">https://github.com/vdm-io/Joomla-Component-Builder/releases/download/v2.10.7/JCB_v2.10.7.zip</downloadurl>
</downloads>
<tags>
<tag>stable</tag>
</tags>
<maintainer>Llewellyn van der Merwe</maintainer>
<maintainerurl>http://www.joomlacomponentbuilder.com</maintainerurl>
<targetplatform name="joomla" version="3.*"/>
</update>
<update>
<name>Component Builder</name>
<description>Builds Complex Joomla Components</description>
<element>com_componentbuilder</element>
<type>component</type>
<version>2.10.8</version>
<infourl title="Component Builder!">http://www.joomlacomponentbuilder.com</infourl>
<downloads>
<downloadurl type="full" format="zip">http://domain.com/demo.zip</downloadurl>
</downloads>
<tags>
<tag>stable</tag>

View File

@ -3402,6 +3402,92 @@ class com_componentbuilderInstallerScript
}
}
// Create a new query object.
$query = $db->getQuery(true);
// Select id from content type table
$query->select($db->quoteName('type_id'));
$query->from($db->quoteName('#__content_types'));
// Where Component_modules alias is found
$query->where( $db->quoteName('type_alias') . ' = '. $db->quote('com_componentbuilder.component_modules') );
$db->setQuery($query);
// Execute query to see if alias is found
$db->execute();
$component_modules_found = $db->getNumRows();
// Now check if there were any rows
if ($component_modules_found)
{
// Since there are load the needed component_modules type ids
$component_modules_ids = $db->loadColumn();
// Remove Component_modules from the content type table
$component_modules_condition = array( $db->quoteName('type_alias') . ' = '. $db->quote('com_componentbuilder.component_modules') );
// Create a new query object.
$query = $db->getQuery(true);
$query->delete($db->quoteName('#__content_types'));
$query->where($component_modules_condition);
$db->setQuery($query);
// Execute the query to remove Component_modules items
$component_modules_done = $db->execute();
if ($component_modules_done)
{
// If succesfully remove Component_modules add queued success message.
$app->enqueueMessage(JText::_('The (com_componentbuilder.component_modules) type alias was removed from the <b>#__content_type</b> table'));
}
// Remove Component_modules items from the contentitem tag map table
$component_modules_condition = array( $db->quoteName('type_alias') . ' = '. $db->quote('com_componentbuilder.component_modules') );
// Create a new query object.
$query = $db->getQuery(true);
$query->delete($db->quoteName('#__contentitem_tag_map'));
$query->where($component_modules_condition);
$db->setQuery($query);
// Execute the query to remove Component_modules items
$component_modules_done = $db->execute();
if ($component_modules_done)
{
// If succesfully remove Component_modules add queued success message.
$app->enqueueMessage(JText::_('The (com_componentbuilder.component_modules) type alias was removed from the <b>#__contentitem_tag_map</b> table'));
}
// Remove Component_modules items from the ucm content table
$component_modules_condition = array( $db->quoteName('core_type_alias') . ' = ' . $db->quote('com_componentbuilder.component_modules') );
// Create a new query object.
$query = $db->getQuery(true);
$query->delete($db->quoteName('#__ucm_content'));
$query->where($component_modules_condition);
$db->setQuery($query);
// Execute the query to remove Component_modules items
$component_modules_done = $db->execute();
if ($component_modules_done)
{
// If succesfully remove Component_modules add queued success message.
$app->enqueueMessage(JText::_('The (com_componentbuilder.component_modules) type alias was removed from the <b>#__ucm_content</b> table'));
}
// Make sure that all the Component_modules items are cleared from DB
foreach ($component_modules_ids as $component_modules_id)
{
// Remove Component_modules items from the ucm base table
$component_modules_condition = array( $db->quoteName('ucm_type_id') . ' = ' . $component_modules_id);
// Create a new query object.
$query = $db->getQuery(true);
$query->delete($db->quoteName('#__ucm_base'));
$query->where($component_modules_condition);
$db->setQuery($query);
// Execute the query to remove Component_modules items
$db->execute();
// Remove Component_modules items from the ucm history table
$component_modules_condition = array( $db->quoteName('ucm_type_id') . ' = ' . $component_modules_id);
// Create a new query object.
$query = $db->getQuery(true);
$query->delete($db->quoteName('#__ucm_history'));
$query->where($component_modules_condition);
$db->setQuery($query);
// Execute the query to remove Component_modules items
$db->execute();
}
}
// Create a new query object.
$query = $db->getQuery(true);
// Select id from content type table
@ -5146,6 +5232,31 @@ class com_componentbuilderInstallerScript
$app->enqueueMessage(JText::_('The com_componentbuilder.component_plugins type alias was removed from the <b>#__action_log_config</b> table'));
}
// Set db if not set already.
if (!isset($db))
{
$db = JFactory::getDbo();
}
// Set app if not set already.
if (!isset($app))
{
$app = JFactory::getApplication();
}
// Remove Componentbuilder Component_modules from the action_log_config table
$component_modules_action_log_config = array( $db->quoteName('type_alias') . ' = '. $db->quote('com_componentbuilder.component_modules') );
// Create a new query object.
$query = $db->getQuery(true);
$query->delete($db->quoteName('#__action_log_config'));
$query->where($component_modules_action_log_config);
$db->setQuery($query);
// Execute the query to remove com_componentbuilder.component_modules
$component_modules_action_log_config_done = $db->execute();
if ($component_modules_action_log_config_done)
{
// If successfully removed Componentbuilder Component_modules add queued success message.
$app->enqueueMessage(JText::_('The com_componentbuilder.component_modules type alias was removed from the <b>#__action_log_config</b> table'));
}
// Set db if not set already.
if (!isset($db))
{
@ -5827,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": "php_postflight_update","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","php_postflight_update":"php_postflight_update","php_postflight_install":"php_postflight_install","php_preflight_uninstall":"php_preflight_uninstall","update_server_url":"update_server_url","sql_uninstall":"sql_uninstall","default":"default","snippet":"snippet","libraries":"libraries","php_method_uninstall":"php_method_uninstall","sql":"sql","readme":"readme","not_required":"not_required","module_version":"module_version","add_sales_server":"add_sales_server","add_abstract_class_helper":"add_abstract_class_helper","add_php_preflight_uninstall":"add_php_preflight_uninstall","add_custom_abstract_class_helper_header":"add_custom_abstract_class_helper_header","add_php_postflight_install":"add_php_postflight_install","custom_get":"custom_get","add_php_postflight_update":"add_php_postflight_update","abstract_class_helper_header":"abstract_class_helper_header","add_php_method_uninstall":"add_php_method_uninstall","abstract_class_helper_code":"abstract_class_helper_code","add_sql":"add_sql","add_sql_uninstall":"add_sql_uninstall","add_php_script_construct":"add_php_script_construct","addreadme":"addreadme","php_script_construct":"php_script_construct","add_update_server":"add_update_server","add_php_preflight_install":"add_php_preflight_install","update_server_target":"update_server_target","php_preflight_install":"php_preflight_install","add_php_preflight_update":"add_php_preflight_update","update_server":"update_server","php_preflight_update":"php_preflight_update","sales_server":"sales_server","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": "php_method_uninstall","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","php_method_uninstall":"php_method_uninstall","php_postflight_install":"php_postflight_install","php_postflight_update":"php_postflight_update","php_preflight_update":"php_preflight_update","php_preflight_uninstall":"php_preflight_uninstall","readme":"readme","not_required":"not_required","default":"default","snippet":"snippet","sql":"sql","sql_uninstall":"sql_uninstall","add_sales_server":"add_sales_server","update_server_url":"update_server_url","libraries":"libraries","module_version":"module_version","custom_get":"custom_get","add_php_preflight_uninstall":"add_php_preflight_uninstall","mod_code":"mod_code","add_php_postflight_install":"add_php_postflight_install","add_class_helper":"add_class_helper","add_php_postflight_update":"add_php_postflight_update","add_class_helper_header":"add_class_helper_header","add_php_method_uninstall":"add_php_method_uninstall","class_helper_header":"class_helper_header","add_sql":"add_sql","class_helper_code":"class_helper_code","add_sql_uninstall":"add_sql_uninstall","addreadme":"addreadme","add_php_script_construct":"add_php_script_construct","add_update_server":"add_update_server","php_script_construct":"php_script_construct","update_server_target":"update_server_target","add_php_preflight_install":"add_php_preflight_install","php_preflight_install":"php_preflight_install","update_server":"update_server","add_php_preflight_update":"add_php_preflight_update","sales_server":"sales_server","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","snippet","add_sales_server","add_abstract_class_helper","add_php_preflight_uninstall","add_custom_abstract_class_helper_header","add_php_postflight_install","add_php_postflight_update","add_php_method_uninstall","add_sql","add_sql_uninstall","add_php_script_construct","addreadme","add_update_server","add_php_preflight_install","update_server_target","add_php_preflight_update","update_server","sales_server"],"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": "libraries","targetTable": "#__componentbuilder_library","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "custom_get","targetTable": "#__componentbuilder_dynamic_get","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "update_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "sales_server","targetTable": "#__componentbuilder_server","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","snippet","add_sales_server","add_php_preflight_uninstall","add_php_postflight_install","add_class_helper","add_php_postflight_update","add_class_helper_header","add_php_method_uninstall","add_sql","add_sql_uninstall","addreadme","add_php_script_construct","add_update_server","update_server_target","add_php_preflight_install","update_server","add_php_preflight_update","sales_server"],"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": "libraries","targetTable": "#__componentbuilder_library","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "custom_get","targetTable": "#__componentbuilder_dynamic_get","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "update_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "sales_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"}]}';
// Set the object into the content types table.
$joomla_module_Inserted = $db->insertObject('#__content_types', $joomla_module);
@ -6278,6 +6389,18 @@ class com_componentbuilderInstallerScript
// Set the object into the content types table.
$component_plugins_Inserted = $db->insertObject('#__content_types', $component_plugins);
// Create the component_modules content type object.
$component_modules = new stdClass();
$component_modules->type_title = 'Componentbuilder Component_modules';
$component_modules->type_alias = 'com_componentbuilder.component_modules';
$component_modules->table = '{"special": {"dbtable": "#__componentbuilder_component_modules","key": "id","type": "Component_modules","prefix": "componentbuilderTable","config": "array()"},"common": {"dbtable": "#__ucm_content","key": "ucm_id","type": "Corecontent","prefix": "JTable","config": "array()"}}';
$component_modules->field_mappings = '{"common": {"core_content_item_id": "id","core_title": "joomla_component","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "null","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": {"joomla_component":"joomla_component"}}';
$component_modules->router = 'ComponentbuilderHelperRoute::getComponent_modulesRoute';
$component_modules->content_history_options = '{"formFile": "administrator/components/com_componentbuilder/models/forms/component_modules.xml","hideFields": ["asset_id","checked_out","checked_out_time","version"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","joomla_component"],"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": "joomla_component","targetTable": "#__componentbuilder_joomla_component","targetColumn": "id","displayColumn": "system_name"}]}';
// Set the object into the content types table.
$component_modules_Inserted = $db->insertObject('#__content_types', $component_modules);
// Create the snippet_type content type object.
$snippet_type = new stdClass();
$snippet_type->type_title = 'Componentbuilder Snippet_type';
@ -7046,6 +7169,23 @@ class com_componentbuilderInstallerScript
// Set the object into the action log config table.
$component_plugins_Inserted = $db->insertObject('#__action_log_config', $component_plugins_action_log_config);
// Set db if not set already.
if (!isset($db))
{
$db = JFactory::getDbo();
}
// Create the component_modules action log config object.
$component_modules_action_log_config = new stdClass();
$component_modules_action_log_config->type_title = 'COMPONENT_MODULES';
$component_modules_action_log_config->type_alias = 'com_componentbuilder.component_modules';
$component_modules_action_log_config->id_holder = 'id';
$component_modules_action_log_config->title_holder = 'joomla_component';
$component_modules_action_log_config->table_name = '#__componentbuilder_component_modules';
$component_modules_action_log_config->text_prefix = 'COM_COMPONENTBUILDER';
// Set the object into the action log config table.
$component_modules_Inserted = $db->insertObject('#__action_log_config', $component_modules_action_log_config);
// Set db if not set already.
if (!isset($db))
{
@ -7240,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": "php_postflight_update","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","php_postflight_update":"php_postflight_update","php_postflight_install":"php_postflight_install","php_preflight_uninstall":"php_preflight_uninstall","update_server_url":"update_server_url","sql_uninstall":"sql_uninstall","default":"default","snippet":"snippet","libraries":"libraries","php_method_uninstall":"php_method_uninstall","sql":"sql","readme":"readme","not_required":"not_required","module_version":"module_version","add_sales_server":"add_sales_server","add_abstract_class_helper":"add_abstract_class_helper","add_php_preflight_uninstall":"add_php_preflight_uninstall","add_custom_abstract_class_helper_header":"add_custom_abstract_class_helper_header","add_php_postflight_install":"add_php_postflight_install","custom_get":"custom_get","add_php_postflight_update":"add_php_postflight_update","abstract_class_helper_header":"abstract_class_helper_header","add_php_method_uninstall":"add_php_method_uninstall","abstract_class_helper_code":"abstract_class_helper_code","add_sql":"add_sql","add_sql_uninstall":"add_sql_uninstall","add_php_script_construct":"add_php_script_construct","addreadme":"addreadme","php_script_construct":"php_script_construct","add_update_server":"add_update_server","add_php_preflight_install":"add_php_preflight_install","update_server_target":"update_server_target","php_preflight_install":"php_preflight_install","add_php_preflight_update":"add_php_preflight_update","update_server":"update_server","php_preflight_update":"php_preflight_update","sales_server":"sales_server","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": "php_method_uninstall","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","php_method_uninstall":"php_method_uninstall","php_postflight_install":"php_postflight_install","php_postflight_update":"php_postflight_update","php_preflight_update":"php_preflight_update","php_preflight_uninstall":"php_preflight_uninstall","readme":"readme","not_required":"not_required","default":"default","snippet":"snippet","sql":"sql","sql_uninstall":"sql_uninstall","add_sales_server":"add_sales_server","update_server_url":"update_server_url","libraries":"libraries","module_version":"module_version","custom_get":"custom_get","add_php_preflight_uninstall":"add_php_preflight_uninstall","mod_code":"mod_code","add_php_postflight_install":"add_php_postflight_install","add_class_helper":"add_class_helper","add_php_postflight_update":"add_php_postflight_update","add_class_helper_header":"add_class_helper_header","add_php_method_uninstall":"add_php_method_uninstall","class_helper_header":"class_helper_header","add_sql":"add_sql","class_helper_code":"class_helper_code","add_sql_uninstall":"add_sql_uninstall","addreadme":"addreadme","add_php_script_construct":"add_php_script_construct","add_update_server":"add_update_server","php_script_construct":"php_script_construct","update_server_target":"update_server_target","add_php_preflight_install":"add_php_preflight_install","php_preflight_install":"php_preflight_install","update_server":"update_server","add_php_preflight_update":"add_php_preflight_update","sales_server":"sales_server","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","snippet","add_sales_server","add_abstract_class_helper","add_php_preflight_uninstall","add_custom_abstract_class_helper_header","add_php_postflight_install","add_php_postflight_update","add_php_method_uninstall","add_sql","add_sql_uninstall","add_php_script_construct","addreadme","add_update_server","add_php_preflight_install","update_server_target","add_php_preflight_update","update_server","sales_server"],"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": "libraries","targetTable": "#__componentbuilder_library","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "custom_get","targetTable": "#__componentbuilder_dynamic_get","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "update_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "sales_server","targetTable": "#__componentbuilder_server","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","snippet","add_sales_server","add_php_preflight_uninstall","add_php_postflight_install","add_class_helper","add_php_postflight_update","add_class_helper_header","add_php_method_uninstall","add_sql","add_sql_uninstall","addreadme","add_php_script_construct","add_update_server","update_server_target","add_php_preflight_install","update_server","add_php_preflight_update","sales_server"],"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": "libraries","targetTable": "#__componentbuilder_library","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "custom_get","targetTable": "#__componentbuilder_dynamic_get","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "update_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "sales_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"}]}';
// Check if joomla_module type is already in content_type DB.
$joomla_module_id = null;
@ -8337,6 +8477,35 @@ class com_componentbuilderInstallerScript
$component_plugins_Inserted = $db->insertObject('#__content_types', $component_plugins);
}
// Create the component_modules content type object.
$component_modules = new stdClass();
$component_modules->type_title = 'Componentbuilder Component_modules';
$component_modules->type_alias = 'com_componentbuilder.component_modules';
$component_modules->table = '{"special": {"dbtable": "#__componentbuilder_component_modules","key": "id","type": "Component_modules","prefix": "componentbuilderTable","config": "array()"},"common": {"dbtable": "#__ucm_content","key": "ucm_id","type": "Corecontent","prefix": "JTable","config": "array()"}}';
$component_modules->field_mappings = '{"common": {"core_content_item_id": "id","core_title": "joomla_component","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "null","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": {"joomla_component":"joomla_component"}}';
$component_modules->router = 'ComponentbuilderHelperRoute::getComponent_modulesRoute';
$component_modules->content_history_options = '{"formFile": "administrator/components/com_componentbuilder/models/forms/component_modules.xml","hideFields": ["asset_id","checked_out","checked_out_time","version"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","joomla_component"],"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": "joomla_component","targetTable": "#__componentbuilder_joomla_component","targetColumn": "id","displayColumn": "system_name"}]}';
// Check if component_modules type is already in content_type DB.
$component_modules_id = null;
$query = $db->getQuery(true);
$query->select($db->quoteName(array('type_id')));
$query->from($db->quoteName('#__content_types'));
$query->where($db->quoteName('type_alias') . ' LIKE '. $db->quote($component_modules->type_alias));
$db->setQuery($query);
$db->execute();
// Set the object into the content types table.
if ($db->getNumRows())
{
$component_modules->type_id = $db->loadResult();
$component_modules_Updated = $db->updateObject('#__content_types', $component_modules, 'type_id');
}
else
{
$component_modules_Inserted = $db->insertObject('#__content_types', $component_modules);
}
// Create the snippet_type content type object.
$snippet_type = new stdClass();
$snippet_type->type_title = 'Componentbuilder Snippet_type';
@ -8816,7 +8985,7 @@ class com_componentbuilderInstallerScript
echo '<a target="_blank" href="http://www.joomlacomponentbuilder.com" title="Component Builder">
<img src="components/com_componentbuilder/assets/images/vdm-component.jpg"/>
</a>
<h3>Upgrade to Version 2.10.6 Was Successful! Let us know if anything is not working as expected.</h3>';
<h3>Upgrade to Version 2.10.8 Was Successful! Let us know if anything is not working as expected.</h3>';
// Set db if not set already.
if (!isset($db))
@ -10099,6 +10268,40 @@ class com_componentbuilderInstallerScript
$component_plugins_action_log_config_Inserted = $db->insertObject('#__action_log_config', $component_plugins_action_log_config);
}
// Set db if not set already.
if (!isset($db))
{
$db = JFactory::getDbo();
}
// Create the component_modules action log config object.
$component_modules_action_log_config = new stdClass();
$component_modules_action_log_config->id = null;
$component_modules_action_log_config->type_title = 'COMPONENT_MODULES';
$component_modules_action_log_config->type_alias = 'com_componentbuilder.component_modules';
$component_modules_action_log_config->id_holder = 'id';
$component_modules_action_log_config->title_holder = 'joomla_component';
$component_modules_action_log_config->table_name = '#__componentbuilder_component_modules';
$component_modules_action_log_config->text_prefix = 'COM_COMPONENTBUILDER';
// Check if component_modules action log config is already in action_log_config DB.
$query = $db->getQuery(true);
$query->select($db->quoteName(array('id')));
$query->from($db->quoteName('#__action_log_config'));
$query->where($db->quoteName('type_alias') . ' LIKE '. $db->quote($component_modules_action_log_config->type_alias));
$db->setQuery($query);
$db->execute();
// Set the object into the content types table.
if ($db->getNumRows())
{
$component_modules_action_log_config->id = $db->loadResult();
$component_modules_action_log_config_Updated = $db->updateObject('#__action_log_config', $component_modules_action_log_config, 'id');
}
else
{
$component_modules_action_log_config_Inserted = $db->insertObject('#__action_log_config', $component_modules_action_log_config);
}
// Set db if not set already.
if (!isset($db))
{