Improved the export feature for all views, and much more... #581

Merged
Llewellyn merged 14 commits from staging into master 2020-08-08 13:38:06 +00:00
195 changed files with 4209 additions and 2190 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! 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.11.2) 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.11.3) 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) > Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
@ -144,13 +144,13 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) + *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder) + *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
+ *First Build*: 30th April, 2015 + *First Build*: 30th April, 2015
+ *Last Build*: 25th May, 2020 + *Last Build*: 29th July, 2020
+ *Version*: 2.11.2 + *Version*: 2.11.3
+ *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved. + *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt + *License*: GNU General Public License version 2 or later; see LICENSE.txt
+ *Line count*: **282168** + *Line count*: **283076**
+ *Field count*: **1522** + *Field count*: **1527**
+ *File count*: **1783** + *File count*: **1785**
+ *Folder count*: **295** + *Folder count*: **295**
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](http://joomlacomponentbuilder.com). > This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](http://joomlacomponentbuilder.com).

7
SECURITY.md Normal file
View File

@ -0,0 +1,7 @@
# Security Policy
## Reporting a Vulnerability
Report all security issues on the JCB website, and not on GitHub.
### [joomlacomponentbuilder.com/report-security-issues](http://joomlacomponentbuilder.com/report-security-issues)

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! 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.11.2) 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.11.3) 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) > Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
@ -144,13 +144,13 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) + *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder) + *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
+ *First Build*: 30th April, 2015 + *First Build*: 30th April, 2015
+ *Last Build*: 25th May, 2020 + *Last Build*: 29th July, 2020
+ *Version*: 2.11.2 + *Version*: 2.11.3
+ *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved. + *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt + *License*: GNU General Public License version 2 or later; see LICENSE.txt
+ *Line count*: **282168** + *Line count*: **283076**
+ *Field count*: **1522** + *Field count*: **1527**
+ *File count*: **1783** + *File count*: **1785**
+ *Folder count*: **295** + *Folder count*: **295**
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](http://joomlacomponentbuilder.com). > This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](http://joomlacomponentbuilder.com).

View File

@ -18,6 +18,7 @@ defined('_JEXEC') or die('Restricted access');
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
use Joomla\CMS\Language\Language; use Joomla\CMS\Language\Language;
use Joomla\Registry\Registry;
use Joomla\String\StringHelper; use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;###ADMIN_HELPER_CLASS_HEADER### use Joomla\Utilities\ArrayHelper;###ADMIN_HELPER_CLASS_HEADER###

View File

@ -20,7 +20,7 @@ defined('_JEXEC') or die('Restricted access');
/** /**
* ###Component### ###View### Component Category Tree * ###Component### ###View### Component Category Tree
*/ */
class ###Component######Views###Categories extends JCategories class ###Component######View###Categories extends JCategories
{ {
/** /**
* Class constructor * Class constructor
@ -31,7 +31,7 @@ class ###Component######Views###Categories extends JCategories
public function __construct($options = array()) public function __construct($options = array())
{ {
$options['table'] = '#__###component###_###view###'; $options['table'] = '#__###component###_###view###';
$options['extension'] = 'com_###component###.###views###'; $options['extension'] = 'com_###component###.###view###';
parent::__construct($options); parent::__construct($options);
} }

View File

@ -18,6 +18,7 @@ defined('_JEXEC') or die('Restricted access');
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
use Joomla\CMS\Language\Language; use Joomla\CMS\Language\Language;
use Joomla\Registry\Registry;
use Joomla\String\StringHelper; use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;###SITE_HELPER_CLASS_HEADER### use Joomla\Utilities\ArrayHelper;###SITE_HELPER_CLASS_HEADER###

View File

@ -17,9 +17,7 @@ defined('_JEXEC') or die('Restricted access');
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
// import the ###JFORM_extends### field type ###JFORM_TYPE_HEADER###
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('###JFORM_extends###');
/** /**
* ###Type### Form Field class for the ###Component### component * ###Type### Form Field class for the ###Component### component

View File

@ -24,9 +24,10 @@ JHtml::_('formbehavior.chosen', 'select');
JHtml::_('behavior.keepalive'); JHtml::_('behavior.keepalive');
JHtml::_('behavior.tabstate'); JHtml::_('behavior.tabstate');
JHtml::_('behavior.calendar'); JHtml::_('behavior.calendar');
$componentParams = $this->params; // will be removed just use $this->params instead
?> ?>
<div class="###component###-###view###">
<?php echo $this->toolbar->render(); ?> <?php echo $this->toolbar->render(); ?>
<form action="<?php echo JRoute::_('index.php?option=com_###component###&layout=edit&id='. (int) $this->item->id . $this->referral); ?>" method="post" name="adminForm" id="adminForm" class="form-validate" enctype="multipart/form-data"> <form action="<?php echo JRoute::_('index.php?option=com_###component###&layout=edit&id='. (int) $this->item->id . $this->referral); ?>" method="post" name="adminForm" id="adminForm" class="form-validate" enctype="multipart/form-data">
###EDITBODY### ###EDITBODY###
</form>###EDITBODYSCRIPT### </form>
</div>###EDITBODYSCRIPT###

View File

@ -0,0 +1,20 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <http://www.joomlacomponentbuilder.com>
* @github Joomla Component Builder <https://github.com/vdm-io/Joomla-Component-Builder>
* @copyright Copyright (C) 2015 - 2018 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
?>
###BOM###
// No direct access to this file
defined('JPATH_BASE') or die('Restricted access');###ADMIN_LAYOUT_CODE###
?>###ADMIN_LAYOUT_BODY###

View File

@ -376,6 +376,11 @@
"rename": "JFormRule", "rename": "JFormRule",
"type": "rule" "type": "rule"
}, },
"layout_admin.php": {
"path": "c0mp0n3nt/admin/layouts",
"rename": "layout_admin",
"type": "layout"
},
"layoutitems.php": { "layoutitems.php": {
"path": "c0mp0n3nt/admin/layouts/VIEW", "path": "c0mp0n3nt/admin/layouts/VIEW",
"rename": "layoutitems", "rename": "layoutitems",

View File

@ -47,6 +47,71 @@
/> />
<field type="spacer" name="spacerHistory" hr="true" /> <field type="spacer" name="spacerHistory" hr="true" />
<!-- Subform_layouts Field. Type: Subform. (joomla) -->
<field
type="subform"
name="subform_layouts"
label="COM_COMPONENTBUILDER_CONFIG_SUBFORM_LAYOUTS_LABEL"
layout="joomla.form.field.subform.repeatable-table"
multiple="true"
buttons="add,remove,move"
description="COM_COMPONENTBUILDER_CONFIG_SUBFORM_LAYOUTS_DESCRIPTION"
icon="list"
max="9"
min="1">
<form hidden="true" name="list_subform_layouts_modal" repeat="true">
<!-- View_field Field. Type: List. (joomla) -->
<field
type="list"
name="view_field"
label="COM_COMPONENTBUILDER_CONFIG_VIEW_FIELD_LABEL"
class="list_class"
multiple="false"
filter="CMD"
required="true"
default="default">
<!-- Option Set. -->
<option value="default">
COM_COMPONENTBUILDER_CONFIG_DEFAULT</option>
<option value="admin_custom_tabs.tabs">
COM_COMPONENTBUILDER_CONFIG_ADMIN_CUSTOM_TABS_TABS</option>
<option value="admin_fields.addfields">
COM_COMPONENTBUILDER_CONFIG_ADMIN_FIELDS_ADDFIELDS</option>
<option value="admin_fields_conditions.addconditions">
COM_COMPONENTBUILDER_CONFIG_ADMIN_FIELDS_CONDITIONS_ADDCONDITIONS</option>
<option value="admin_fields_relations.addrelations">
COM_COMPONENTBUILDER_CONFIG_ADMIN_FIELDS_RELATIONS_ADDRELATIONS</option>
<option value="component_admin_views.addadmin_views">
COM_COMPONENTBUILDER_CONFIG_COMPONENT_ADMIN_VIEWS_ADDADMIN_VIEWS</option>
<option value="component_custom_admin_views.addcustom_admin_views">
COM_COMPONENTBUILDER_CONFIG_COMPONENT_CUSTOM_ADMIN_VIEWS_ADDCUSTOM_ADMIN_VIEWS</option>
<option value="component_site_views.addsite_views">
COM_COMPONENTBUILDER_CONFIG_COMPONENT_SITE_VIEWS_ADDSITE_VIEWS</option>
<option value="dynamic_get.join_db_table">
COM_COMPONENTBUILDER_CONFIG_DYNAMIC_GET_JOIN_DB_TABLE</option>
<option value="dynamic_get.join_view_table">
COM_COMPONENTBUILDER_CONFIG_DYNAMIC_GET_JOIN_VIEW_TABLE</option>
</field>
<!-- Layout Field. Type: List. (joomla) -->
<field
type="list"
name="layout"
label="COM_COMPONENTBUILDER_CONFIG_LAYOUT_LABEL"
class="list_class"
multiple="false"
filter="CMD"
required="true"
default="joomla.form.field.subform.repeatable-table">
<!-- Option Set. -->
<option value="joomla.form.field.subform.repeatable-table">
COM_COMPONENTBUILDER_CONFIG_REPEATABLETABLE_JOOMLA</option>
<option value="joomla.form.field.subform.repeatable">
COM_COMPONENTBUILDER_CONFIG_REPEATABLE_JOOMLA</option>
<option value="repeatablejcb">
COM_COMPONENTBUILDER_CONFIG_REPEATABLE_UIKIT</option>
</field>
</form>
</field>
<!-- Editor Field. Type: Plugins. (joomla) --> <!-- Editor Field. Type: Plugins. (joomla) -->
<field <field
type="plugins" type="plugins"
@ -246,6 +311,20 @@
max="100" max="100"
step="10" step="10"
/> />
<!-- Export_language_strings Field. Type: Radio. (joomla) -->
<field
type="radio"
name="export_language_strings"
label="COM_COMPONENTBUILDER_CONFIG_EXPORT_LANGUAGE_STRINGS_LABEL"
description="COM_COMPONENTBUILDER_CONFIG_EXPORT_LANGUAGE_STRINGS_DESCRIPTION"
class="btn-group btn-group-yesno"
default="1">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_CONFIG_YES</option>
<option value="0">
COM_COMPONENTBUILDER_CONFIG_NO</option>
</field>
<!-- Spacer_hr_six Field. Type: Spacer. A None Database Field. (joomla) --> <!-- Spacer_hr_six Field. Type: Spacer. A None Database Field. (joomla) -->
<field type="spacer" name="spacer_hr_six" hr="true" class="spacer_hr_six" /> <field type="spacer" name="spacer_hr_six" hr="true" class="spacer_hr_six" />
<!-- Compiler_field_builder_type Field. Type: List. (joomla) --> <!-- Compiler_field_builder_type Field. Type: List. (joomla) -->

View File

@ -111,7 +111,7 @@ class Compiler extends Infusion
// Trigger Event: jcb_ce_onBeforeUpdateFiles // Trigger Event: jcb_ce_onBeforeUpdateFiles
$this->triggerEvent( $this->triggerEvent(
'jcb_ce_onBeforeUpdateFiles', 'jcb_ce_onBeforeUpdateFiles',
array(&$this->componentContext, $this) array(&$this->componentContext, &$this)
); );
// now update the files // now update the files
if (!$this->updateFiles()) if (!$this->updateFiles())
@ -121,7 +121,7 @@ class Compiler extends Infusion
// Trigger Event: jcb_ce_onBeforeGetCustomCode // Trigger Event: jcb_ce_onBeforeGetCustomCode
$this->triggerEvent( $this->triggerEvent(
'jcb_ce_onBeforeGetCustomCode', 'jcb_ce_onBeforeGetCustomCode',
array(&$this->componentContext, $this) array(&$this->componentContext, &$this)
); );
// now insert into the new files // now insert into the new files
if ($this->getCustomCode()) if ($this->getCustomCode())
@ -129,7 +129,7 @@ class Compiler extends Infusion
// Trigger Event: jcb_ce_onBeforeAddCustomCode // Trigger Event: jcb_ce_onBeforeAddCustomCode
$this->triggerEvent( $this->triggerEvent(
'jcb_ce_onBeforeAddCustomCode', 'jcb_ce_onBeforeAddCustomCode',
array(&$this->componentContext, $this) array(&$this->componentContext, &$this)
); );
$this->addCustomCode(); $this->addCustomCode();
@ -137,7 +137,7 @@ class Compiler extends Infusion
// Trigger Event: jcb_ce_onBeforeSetLangFileData // Trigger Event: jcb_ce_onBeforeSetLangFileData
$this->triggerEvent( $this->triggerEvent(
'jcb_ce_onBeforeSetLangFileData', 'jcb_ce_onBeforeSetLangFileData',
array(&$this->componentContext, $this) array(&$this->componentContext, &$this)
); );
// set the lang data now // set the lang data now
$this->setLangFileData(); $this->setLangFileData();

View File

@ -322,8 +322,8 @@ class Get
= array( = array(
'Joomla' . '.JText._(', 'Joomla' . '.JText._(',
'JText:' . ':script(', 'JText:' . ':script(',
'JText:' . ':_(', 'Text:' . ':_(', // namespace and J version will be found
'JText:' . ':sprintf(', 'Text:' . ':sprintf(', // namespace and J version will be found
'JustTEXT:' . ':_(' 'JustTEXT:' . ':_('
); );
@ -835,7 +835,7 @@ class Get
} }
} }
// Trigger Event: jcb_ce_onBeforeGet // Trigger Event: jcb_ce_onBeforeGet
$this->triggerEvent('jcb_ce_onBeforeGet', array(&$config, $this)); $this->triggerEvent('jcb_ce_onBeforeGet', array(&$config, &$this));
// set the Joomla version // set the Joomla version
$this->joomlaVersion = $config['version']; $this->joomlaVersion = $config['version'];
// set the minfy switch of the JavaScript // set the minfy switch of the JavaScript
@ -923,14 +923,14 @@ class Get
// Trigger Event: jcb_ce_onBeforeGetComponentData // Trigger Event: jcb_ce_onBeforeGetComponentData
$this->triggerEvent( $this->triggerEvent(
'jcb_ce_onBeforeGetComponentData', 'jcb_ce_onBeforeGetComponentData',
array(&$this->componentContext, $this) array(&$this->componentContext, &$this)
); );
// get the component data // get the component data
$this->componentData = $this->getComponentData(); $this->componentData = $this->getComponentData();
// Trigger Event: jcb_ce_onAfterGetComponentData // Trigger Event: jcb_ce_onAfterGetComponentData
$this->triggerEvent( $this->triggerEvent(
'jcb_ce_onAfterGetComponentData', 'jcb_ce_onAfterGetComponentData',
array(&$this->componentContext, $this) array(&$this->componentContext, &$this)
); );
// make sure we have a version // make sure we have a version
if (strpos($this->componentData->component_version, '.') if (strpos($this->componentData->component_version, '.')
@ -969,7 +969,7 @@ class Get
// Trigger Event: jcb_ce_onBeforeGet // Trigger Event: jcb_ce_onBeforeGet
$this->triggerEvent( $this->triggerEvent(
'jcb_ce_onAfterGet', array(&$this->componentContext, $this) 'jcb_ce_onAfterGet', array(&$this->componentContext, &$this)
); );
return true; return true;
@ -1201,7 +1201,7 @@ class Get
array(&$this->componentContext, &$component) array(&$this->componentContext, &$component)
); );
// set upater // set updater
$updater = array( $updater = array(
'unique' => array( 'unique' => array(
'addadmin_views' => array('table' => 'component_admin_views', 'addadmin_views' => array('table' => 'component_admin_views',
@ -1281,7 +1281,8 @@ class Get
); );
// set the add targets // set the add targets
$addArrayF = array('files' => 'files', 'folders' => 'folders', $addArrayF = array('files' => 'files',
'folders' => 'folders',
'filesfullpath' => 'files', 'filesfullpath' => 'files',
'foldersfullpath' => 'folders'); 'foldersfullpath' => 'folders');
foreach ($addArrayF as $addTarget => $targetHere) foreach ($addArrayF as $addTarget => $targetHere)
@ -1413,6 +1414,8 @@ class Get
? json_decode($component->addadmin_views, true) : null; ? json_decode($component->addadmin_views, true) : null;
if (ComponentbuilderHelper::checkArray($component->addadmin_views)) if (ComponentbuilderHelper::checkArray($component->addadmin_views))
{ {
$this->lang = 'admin';
$this->target = 'admin';
// sort the views according to order // sort the views according to order
usort( usort(
$component->addadmin_views, function ($a, $b) { $component->addadmin_views, function ($a, $b) {
@ -2923,6 +2926,10 @@ class Get
false, false,
$guiMapper $guiMapper
); );
// check if we have template or layouts to load
$this->setTemplateAndLayoutData($view->{$scripter}, $name_single);
unset($view->{$scripter}); unset($view->{$scripter});
} }
} }
@ -2953,6 +2960,9 @@ class Get
), ),
$guiMapper $guiMapper
); );
// check if we have template or layouts to load
$this->setTemplateAndLayoutData($view->{$button_code_field}, $name_single);
} }
} }
// set the button array // set the button array
@ -3045,6 +3055,7 @@ class Get
$name_single, $name_single,
$guiMapper $guiMapper
); );
if ($addAjaxSite) if ($addAjaxSite)
{ {
$this->setCustomScriptBuilder( $this->setCustomScriptBuilder(
@ -4988,6 +4999,8 @@ class Get
{ {
$script = $this->setGuiCodePlaceholder($script, $config); $script = $this->setGuiCodePlaceholder($script, $config);
} }
// add base64 locking option of a string
$script = $this->setBase64LOCK($script);
// load the script // load the script
if ($first && $second && $third) if ($first && $second && $third)
{ {
@ -8716,6 +8729,8 @@ class Get
'php_method'); 'php_method');
$addScriptTypes = array('install', 'update', $addScriptTypes = array('install', 'update',
'uninstall'); 'uninstall');
// the next are php placeholders
$guiMapper['type'] = 'php';
foreach ($addScriptMethods as $scriptMethod) foreach ($addScriptMethods as $scriptMethod)
{ {
foreach ($addScriptTypes as $scriptType) foreach ($addScriptTypes as $scriptType)
@ -9851,7 +9866,7 @@ class Get
*/ */
protected function customCodeFactory(&$paths, &$today) protected function customCodeFactory(&$paths, &$today)
{ {
// we must first store the current woking directory // we must first store the current working directory
$joomla = getcwd(); $joomla = getcwd();
$counter = array(1 => 0, 2 => 0); $counter = array(1 => 0, 2 => 0);
// file types to get // file types to get
@ -10337,6 +10352,35 @@ class Get
} }
} }
/**
* Lock a string with bsae64 (basic)
*
* @param string $string The code string
*
* @return string
*
*/
protected function setBase64LOCK($script)
{
if (strpos($script, 'LOCKBASE64((((') !== false)
{
// get the strings
$values = ComponentbuilderHelper::getAllBetween($script, 'LOCKBASE64((((', '))))');
$locker = array();
// convert them
foreach($values as $value)
{
$locker['LOCKBASE64((((' . $value . '))))'] = "base64_decode( preg_replace('/\s+/', ''," .
PHP_EOL . $this->_t(2) . "'" .
wordwrap(base64_encode($value), 64, PHP_EOL . $this->_t(2), true) .
"'))";
}
// update the script
return $this->setPlaceholders($script, $locker);
}
return $script;
}
/** /**
* Set the JCB GUI code placeholder * Set the JCB GUI code placeholder
* *

View File

@ -2556,7 +2556,8 @@ class Structure extends Get
public function moveFieldsRules($field, $path) public function moveFieldsRules($field, $path)
{ {
// check if we have a subform or repeatable field // check if we have a subform or repeatable field
if ($field['type_name'] === 'subform' || $field['type_name'] === 'repeatable') if ($field['type_name'] === 'subform'
|| $field['type_name'] === 'repeatable')
{ {
// since we could have a custom field or rule inside // since we could have a custom field or rule inside
$this->moveMultiFieldsRules($field, $path); $this->moveMultiFieldsRules($field, $path);
@ -2624,7 +2625,7 @@ class Structure extends Get
* move the fields and Rules of multi fields * move the fields and Rules of multi fields
* *
* @param array $multi_field The field data * @param array $multi_field The field data
* @param string $path The path to move to * @param string $path The path to move to
* *
* @return void * @return void
* *
@ -2632,13 +2633,19 @@ class Structure extends Get
protected function moveMultiFieldsRules($multi_field, $path) protected function moveMultiFieldsRules($multi_field, $path)
{ {
// get the fields ids // get the fields ids
$ids = array_map( 'trim', explode(',', ComponentbuilderHelper::getBetween($multi_field['settings']->xml, 'fields="', '"'))); $ids = array_map(
'trim', explode(
',', ComponentbuilderHelper::getBetween(
$multi_field['settings']->xml, 'fields="', '"'
)
)
);
if (ComponentbuilderHelper::checkArray($ids)) if (ComponentbuilderHelper::checkArray($ids))
{ {
foreach ($ids as $id) foreach ($ids as $id)
{ {
// setup the field // setup the field
$field = array(); $field = array();
$field['field'] = $id; $field['field'] = $id;
$this->setFieldDetails($field); $this->setFieldDetails($field);
// move field and rules if needed // move field and rules if needed
@ -2835,10 +2842,24 @@ class Structure extends Get
{ {
$path = $details->path; $path = $details->path;
} }
$zipPath = str_replace('c0mp0n3nt/', '', $path); // make sure we have component to replace
$path = str_replace( if (strpos($path, 'c0mp0n3nt') !== false)
'c0mp0n3nt/', $this->componentPath . '/', $path {
); $zipPath = str_replace('c0mp0n3nt/', '', $path);
$path = str_replace(
'c0mp0n3nt/', $this->componentPath . '/', $path
);
}
else
{
$this->app->enqueueMessage(
JText::sprintf(
'<hr /><h3>c0mp0n3nt issue found</h3><p>The path (%s) could not be used.</p>',
$path
), 'Error'
);
continue;
}
// setup the folder // setup the folder
if (!JFolder::exists($path)) if (!JFolder::exists($path))
@ -2878,7 +2899,7 @@ class Structure extends Get
// move the file to its place // move the file to its place
JFile::copy( JFile::copy(
$this->templatePath . '/' . $item, $this->templatePath . '/' . $item,
$path . '/' . $new, '', true $path . '/' . $new
); );
// count the file created // count the file created
$this->fileCount++; $this->fileCount++;
@ -2934,9 +2955,10 @@ class Structure extends Get
'rename' => 1); 'rename' => 1);
$this->componentData->folders[] = $importView; $this->componentData->folders[] = $importView;
// move the phpspreadsheet Folder (TODO we must move this to a library package) // move the phpspreadsheet Folder (TODO we must move this to a library package)
$PHPExcel = array('folderpath' => 'JPATH_LIBRARIES/phpspreadsheet/vendor', $PHPExcel
'path' => '/libraries/phpspreadsheet/', = array('folderpath' => 'JPATH_LIBRARIES/phpspreadsheet/vendor',
'rename' => 0); 'path' => '/libraries/phpspreadsheet/',
'rename' => 0);
$this->componentData->folders[] = $PHPExcel; $this->componentData->folders[] = $PHPExcel;
} }
if (2 == $this->uikit || 1 == $this->uikit) if (2 == $this->uikit || 1 == $this->uikit)

View File

@ -2328,6 +2328,7 @@ class Fields extends Structure
. ComponentbuilderHelper::safeString($typeName, 'F') . ComponentbuilderHelper::safeString($typeName, 'F')
. ". (custom) -->"; . ". (custom) -->";
$field .= PHP_EOL . $this->_t(2) . $taber . "<field"; $field .= PHP_EOL . $this->_t(2) . $taber . "<field";
$optionSet = '';
foreach ($fieldAttributes as $property => $value) foreach ($fieldAttributes as $property => $value)
{ {
if ($property != 'option') if ($property != 'option')
@ -2335,8 +2336,274 @@ class Fields extends Structure
$field .= PHP_EOL . $this->_t(2) . $taber . $this->_t(1) $field .= PHP_EOL . $this->_t(2) . $taber . $this->_t(1)
. $property . '="' . $value . '"'; . $property . '="' . $value . '"';
} }
elseif ($property === 'option')
{
$optionSet = '';
if (strtolower($typeName) === 'groupedlist'
&& strpos(
$value, ','
) !== false
&& strpos($value, '@@') !== false)
{
// reset the group temp arrays
$groups_ = array();
$grouped_ = array('group' => array(),
'option' => array());
$order_ = array();
// mulitpal options
$options = explode(',', $value);
foreach ($options as $option)
{
if (strpos($option, '@@') !== false)
{
// set the group label
$valueKeyArray = explode('@@', $option);
if (count((array) $valueKeyArray) == 2)
{
$langValue = $langView . '_'
. ComponentbuilderHelper::safeFieldName(
$valueKeyArray[0], true
);
// add to lang array
$this->setLangContent(
$this->lang, $langValue,
$valueKeyArray[0]
);
// now add group label
$groups_[$valueKeyArray[1]] = PHP_EOL
. $this->_t(1) . $taber . $this->_t(2)
. '<group label="' . $langValue . '">';
// set order
$order_['group' . $valueKeyArray[1]]
= $valueKeyArray[1];
}
}
elseif (strpos($option, '|') !== false)
{
// has other value then text
$valueKeyArray = explode('|', $option);
if (count((array) $valueKeyArray) == 3)
{
$langValue = $langView . '_'
. ComponentbuilderHelper::safeFieldName(
$valueKeyArray[1], true
);
// add to lang array
$this->setLangContent(
$this->lang, $langValue,
$valueKeyArray[1]
);
// now add to option set
$grouped_['group'][$valueKeyArray[2]][]
= PHP_EOL . $this->_t(1) . $taber
. $this->_t(3) . '<option value="'
. $valueKeyArray[0] . '">' . PHP_EOL
. $this->_t(1) . $taber . $this->_t(4)
. $langValue . '</option>';
$optionArray[$valueKeyArray[0]]
= $langValue;
// set order
$order_['group' . $valueKeyArray[2]]
= $valueKeyArray[2];
}
else
{
$langValue = $langView . '_'
. ComponentbuilderHelper::safeFieldName(
$valueKeyArray[1], true
);
// add to lang array
$this->setLangContent(
$this->lang, $langValue,
$valueKeyArray[1]
);
// now add to option set
$grouped_['option'][$valueKeyArray[0]]
= PHP_EOL . $this->_t(1) . $taber
. $this->_t(2) . '<option value="'
. $valueKeyArray[0] . '">' . PHP_EOL
. $this->_t(1) . $taber . $this->_t(3)
. $langValue . '</option>';
$optionArray[$valueKeyArray[0]]
= $langValue;
// set order
$order_['option' . $valueKeyArray[0]]
= $valueKeyArray[0];
}
}
else
{
// text is also the value
$langValue = $langView . '_'
. ComponentbuilderHelper::safeFieldName(
$option, true
);
// add to lang array
$this->setLangContent(
$this->lang, $langValue, $option
);
// now add to option set
$grouped_['option'][$option] = PHP_EOL
. $this->_t(1) . $taber . $this->_t(2)
. '<option value="' . $option . '">'
. PHP_EOL . $this->_t(1) . $taber
. $this->_t(3) . $langValue . '</option>';
$optionArray[$option] = $langValue;
// set order
$order_['option' . $option] = $option;
}
}
// now build the groups
foreach ($order_ as $pointer_ => $_id)
{
// load the default key
$key_ = 'group';
if (strpos($pointer_, 'option') !== false)
{
// load the option field
$key_ = 'option';
}
// check if this is a group loader
if ('group' === $key_ && isset($groups_[$_id])
&& isset($grouped_[$key_][$_id])
&& ComponentbuilderHelper::checkArray(
$grouped_[$key_][$_id]
))
{
// set group label
$optionSet .= $groups_[$_id];
foreach ($grouped_[$key_][$_id] as $option_)
{
$optionSet .= $option_;
}
unset($groups_[$_id]);
unset($grouped_[$key_][$_id]);
// close the group
$optionSet .= PHP_EOL . $this->_t(1) . $taber
. $this->_t(2) . '</group>';
}
elseif (isset($grouped_[$key_][$_id])
&& ComponentbuilderHelper::checkString(
$grouped_[$key_][$_id]
))
{
$optionSet .= $grouped_[$key_][$_id];
}
}
}
elseif (strpos($value, ',') !== false)
{
// mulitpal options
$options = explode(',', $value);
foreach ($options as $option)
{
if (strpos($option, '|') !== false)
{
// has other value then text
list($v, $t) = explode('|', $option);
$langValue = $langView . '_'
. ComponentbuilderHelper::safeFieldName(
$t, true
);
// add to lang array
$this->setLangContent(
$this->lang, $langValue, $t
);
// now add to option set
$optionSet .= PHP_EOL . $this->_t(1)
. $taber . $this->_t(2) . '<option value="'
. $v . '">' . PHP_EOL . $this->_t(1)
. $taber . $this->_t(3) . $langValue
. '</option>';
$optionArray[$v] = $langValue;
}
else
{
// text is also the value
$langValue = $langView . '_'
. ComponentbuilderHelper::safeFieldName(
$option, true
);
// add to lang array
$this->setLangContent(
$this->lang, $langValue, $option
);
// now add to option set
$optionSet .= PHP_EOL . $this->_t(2)
. $taber . $this->_t(1) . '<option value="'
. $option . '">' . PHP_EOL . $this->_t(2)
. $taber . $this->_t(2) . $langValue
. '</option>';
$optionArray[$option] = $langValue;
}
}
}
else
{
// one option
if (strpos($value, '|') !== false)
{
// has other value then text
list($v, $t) = explode('|', $value);
$langValue = $langView . '_'
. ComponentbuilderHelper::safeFieldName(
$t, true
);
// add to lang array
$this->setLangContent($this->lang, $langValue, $t);
// now add to option set
$optionSet .= PHP_EOL . $this->_t(2) . $taber
. $this->_t(1) . '<option value="' . $v . '">'
. PHP_EOL . $this->_t(2) . $taber . $this->_t(2)
. $langValue . '</option>';
$optionArray[$v] = $langValue;
}
else
{
// text is also the value
$langValue = $langView . '_'
. ComponentbuilderHelper::safeFieldName(
$value, true
);
// add to lang array
$this->setLangContent(
$this->lang, $langValue, $value
);
// now add to option set
$optionSet .= PHP_EOL . $this->_t(2)
. $taber . $this->_t(1) . '<option value="'
. $value . '">' . PHP_EOL . $this->_t(2)
. $taber . $this->_t(2) . $langValue
. '</option>';
$optionArray[$value] = $langValue;
}
}
}
}
// if options were found
if (ComponentbuilderHelper::checkString($optionSet))
{
$field .= '>';
$field .= PHP_EOL . $this->_t(3) . $taber . "<!--"
. $this->setLine(__LINE__) . " Option Set. -->";
$field .= $optionSet;
$field .= PHP_EOL . $this->_t(2) . $taber . "</field>";
}
// if no options found and must have a list of options
elseif (ComponentbuilderHelper::fieldCheck($typeName, 'list'))
{
$optionArray = false;
$field .= PHP_EOL . $this->_t(2) . $taber . "/>";
$field .= PHP_EOL . $this->_t(2) . $taber . "<!--"
. $this->setLine(__LINE__)
. " No Manual Options Were Added In Field Settings. -->"
. PHP_EOL;
}
else
{
$optionArray = false;
$field .= PHP_EOL . $this->_t(2) . $taber . "/>";
} }
$field .= PHP_EOL . $this->_t(2) . $taber . "/>";
// incase the field is in the config and has not been set // incase the field is in the config and has not been set
if ('config' === $view_name_single && 'configs' === $view_name_list if ('config' === $view_name_single && 'configs' === $view_name_list
|| (strpos($view_name_single, 'P|uG!n') !== false || (strpos($view_name_single, 'P|uG!n') !== false
@ -3083,6 +3350,244 @@ class Fields extends Structure
{ {
$field->fieldXML->addAttribute($property, $value); $field->fieldXML->addAttribute($property, $value);
} }
elseif ($property === 'option')
{
ComponentbuilderHelper::xmlComment(
$field->fieldXML,
$this->setLine(__LINE__) . " Option Set."
);
if (strtolower($typeName) === 'groupedlist'
&& strpos(
$value, ','
) !== false
&& strpos($value, '@@') !== false)
{
// reset the group temp arrays
$groups_ = array();
$grouped_ = array('group' => array(),
'option' => array());
$order_ = array();
// mulitpal options
$options = explode(',', $value);
foreach ($options as $option)
{
if (strpos($option, '@@') !== false)
{
// set the group label
$valueKeyArray = explode('@@', $option);
if (count((array) $valueKeyArray) == 2)
{
$langValue = $langView . '_'
. ComponentbuilderHelper::safeFieldName(
$valueKeyArray[0], true
);
// add to lang array
$this->setLangContent(
$this->lang, $langValue,
$valueKeyArray[0]
);
// now add group label
$groups_[$valueKeyArray[1]] = $langValue;
// set order
$order_['group' . $valueKeyArray[1]]
= $valueKeyArray[1];
}
}
elseif (strpos($option, '|') !== false)
{
// has other value then text
$valueKeyArray = explode('|', $option);
if (count((array) $valueKeyArray) == 3)
{
$langValue = $langView . '_'
. ComponentbuilderHelper::safeFieldName(
$valueKeyArray[1], true
);
// add to lang array
$this->setLangContent(
$this->lang, $langValue,
$valueKeyArray[1]
);
// now add to option set
$grouped_['group'][$valueKeyArray[2]][]
= array('value' => $valueKeyArray[0],
'text' => $langValue);
$optionArray[$valueKeyArray[0]]
= $langValue;
// set order
$order_['group' . $valueKeyArray[2]]
= $valueKeyArray[2];
}
else
{
$langValue = $langView . '_'
. ComponentbuilderHelper::safeFieldName(
$valueKeyArray[1], true
);
// add to lang array
$this->setLangContent(
$this->lang, $langValue,
$valueKeyArray[1]
);
// now add to option set
$grouped_['option'][$valueKeyArray[0]]
= array('value' => $valueKeyArray[0],
'text' => $langValue);
$optionArray[$valueKeyArray[0]]
= $langValue;
// set order
$order_['option' . $valueKeyArray[0]]
= $valueKeyArray[0];
}
}
else
{
// text is also the value
$langValue = $langView . '_'
. ComponentbuilderHelper::safeFieldName(
$option, true
);
// add to lang array
$this->setLangContent(
$this->lang, $langValue, $option
);
// now add to option set
$grouped_['option'][$option]
= array('value' => $option,
'text' => $langValue);
$optionArray[$option] = $langValue;
// set order
$order_['option' . $option] = $option;
}
}
// now build the groups
foreach ($order_ as $pointer_ => $_id)
{
// load the default key
$key_ = 'group';
if (strpos($pointer_, 'option') !== false)
{
// load the option field
$key_ = 'option';
}
// check if this is a group loader
if ('group' === $key_ && isset($groups_[$_id])
&& isset($grouped_[$key_][$_id])
&& ComponentbuilderHelper::checkArray(
$grouped_[$key_][$_id]
))
{
// set group label
$groupXML = $field->fieldXML->addChild('group');
$groupXML->addAttribute(
'label', $groups_[$_id]
);
foreach ($grouped_[$key_][$_id] as $option_)
{
$groupOptionXML = $groupXML->addChild(
'option'
);
$groupOptionXML->addAttribute(
'value', $option_['value']
);
$groupOptionXML[] = $option_['text'];
}
unset($groups_[$_id]);
unset($grouped_[$key_][$_id]);
}
elseif (isset($grouped_[$key_][$_id])
&& ComponentbuilderHelper::checkString(
$grouped_[$key_][$_id]
))
{
$optionXML = $field->fieldXML->addChild(
'option'
);
$optionXML->addAttribute(
'value', $grouped_[$key_][$_id]['value']
);
$optionXML[] = $grouped_[$key_][$_id]['text'];
}
}
}
elseif (strpos($value, ',') !== false)
{
// mulitpal options
$options = explode(',', $value);
foreach ($options as $option)
{
$optionXML = $field->fieldXML->addChild('option');
if (strpos($option, '|') !== false)
{
// has other value then text
list($v, $t) = explode('|', $option);
$langValue = $langView . '_'
. ComponentbuilderHelper::safeFieldName(
$t, true
);
// add to lang array
$this->setLangContent(
$this->lang, $langValue, $t
);
// now add to option set
$optionXML->addAttribute('value', $v);
$optionArray[$v] = $langValue;
}
else
{
// text is also the value
$langValue = $langView . '_'
. ComponentbuilderHelper::safeFieldName(
$option, true
);
// add to lang array
$this->setLangContent(
$this->lang, $langValue, $option
);
// now add to option set
$optionXML->addAttribute('value', $option);
$optionArray[$option] = $langValue;
}
$optionXML[] = $langValue;
}
}
else
{
// one option
$optionXML = $field->fieldXML->addChild('option');
if (strpos($value, '|') !== false)
{
// has other value then text
list($v, $t) = explode('|', $value);
$langValue = $langView . '_'
. ComponentbuilderHelper::safeFieldName(
$t, true
);
// add to lang array
$this->setLangContent($this->lang, $langValue, $t);
// now add to option set
$optionXML->addAttribute('value', $v);
$optionArray[$v] = $langValue;
}
else
{
// text is also the value
$langValue = $langView . '_'
. ComponentbuilderHelper::safeFieldName(
$value, true
);
// add to lang array
$this->setLangContent(
$this->lang, $langValue, $value
);
// now add to option set
$optionXML->addAttribute('value', $value);
$optionArray[$value] = $langValue;
}
$optionXML[] = $langValue;
}
}
} }
// incase the field is in the config and has not been set (or is part of a plugin or module) // incase the field is in the config and has not been set (or is part of a plugin or module)
if (('config' === $view_name_single if (('config' === $view_name_single
@ -3636,10 +4141,6 @@ class Fields extends Structure
{ {
$xmlValue = 'JGLOBAL_TITLE'; $xmlValue = 'JGLOBAL_TITLE';
} }
elseif ($property['name'] === 'description')
{
$xmlValue = 'JFIELD_TITLE_DESC';
}
} }
// only load value if found or is mandatory // only load value if found or is mandatory
if (ComponentbuilderHelper::checkString($xmlValue) if (ComponentbuilderHelper::checkString($xmlValue)
@ -3689,7 +4190,7 @@ class Fields extends Structure
= '8qvZHoyuFYQqpj0YQbc6F3o5DhBlmS-_-a8pmCZfOVSfANjkmV5LG8pCdAY2JNYu6cB'; = '8qvZHoyuFYQqpj0YQbc6F3o5DhBlmS-_-a8pmCZfOVSfANjkmV5LG8pCdAY2JNYu6cB';
foreach ($phpTracker as $searchKey => $phpKey) foreach ($phpTracker as $searchKey => $phpKey)
{ {
// we must search for more code in the xml just incase // we must search for more code in the xml just encase
foreach (range(2, 30) as $phpLine) foreach (range(2, 30) as $phpLine)
{ {
$get_ = $searchKey . '_' . $phpLine; $get_ = $searchKey . '_' . $phpLine;
@ -4112,7 +4613,7 @@ class Fields extends Structure
{ {
$this->setScriptMediaSwitch[$typeName] = $typeName; $this->setScriptMediaSwitch[$typeName] = $typeName;
} }
// setup gategory for this view // setup category for this view
if ($dbSwitch && $typeName === 'category') if ($dbSwitch && $typeName === 'category')
{ {
if (isset($this->catOtherName[$view_name_list]) if (isset($this->catOtherName[$view_name_list])
@ -4134,13 +4635,41 @@ class Fields extends Structure
$field['settings']->xml, 'extension="', '"' $field['settings']->xml, 'extension="', '"'
), $this->placeholders ), $this->placeholders
); );
// if they left out the extention for some reason // if they left out the extension for some reason
if (!ComponentbuilderHelper::checkString($_extension)) if (!ComponentbuilderHelper::checkString($_extension))
{ {
$_extension = 'com_' . $this->componentCodeName . '.' $_extension = 'com_' . $this->componentCodeName . '.'
. $otherView; . $otherView;
} }
// load the category builder // check the context (does our target match)
if (strpos($_extension, '.') !== false)
{
$target_view = trim(explode('.', $_extension)[1]);
// from my understanding the target extension view and the otherView must align
// so I will here check that it does, and if not raise an error message to fix this
if ($target_view !== $otherView)
{
$target_extension = trim(explode('.', $_extension)[0]);
$correction = $target_extension . '.' . $otherView;
$this->app->enqueueMessage(
JText::sprintf(
'<hr /><h3>Category targeting view mismatch</h3>
<a>The <a href="index.php?option=com_componentbuilder&view=fields&task=field.edit&id=%s" target="_blank" title="open field">
category field</a> in <b>(%s) admin view</b> has a mismatching target view.
<br />To correct the mismatch, the <b>extension</b> value <code>%s</code> in the <a href="index.php?option=com_componentbuilder&view=fields&task=field.edit&id=%s" target="_blank" title="open category field">
field</a> must be changed to <code>%s</code>
for <a href="https://github.com/vdm-io/Joomla-Component-Builder/issues/561" target="_blank" title="view issue on gitHub">
best category integration with Joomla</a>.
<br /><b>Please watch <a href="https://youtu.be/R4WQgcu6Xns" target="_blank" title="very important info on the topic">
this tutorial</a> before proceeding!!!</b>,
<a href="https://gist.github.com/Llewellynvdm/e053dc39ae3b2bf769c76a3e62c75b95" target="_blank" title="first watch the tutorial to understand how to use this code">code fix</a></p>',
$field['field'], $view_name_single, $_extension,
$field['field'], $correction
), 'Error'
);
}
}
// load the category builder - TODO must move all to single view
$this->categoryBuilder[$view_name_list] = array('code' => $name, $this->categoryBuilder[$view_name_list] = array('code' => $name,
'name' => $listLangName, 'name' => $listLangName,
'extension' => $_extension); 'extension' => $_extension);
@ -4345,15 +4874,15 @@ class Fields extends Structure
&& $typeName != 'repeatable' && $typeName != 'repeatable'
&& $typeName != 'subform')) && $typeName != 'subform'))
{ {
$this->filterBuilder[$view_name_list][] = array('type' => $typeName, $this->filterBuilder[$view_name_list][] = array('type' => $typeName,
'code' => $name, 'code' => $name,
'lang' => $listLangName, 'lang' => $listLangName,
'database' => $view_name_single, 'database' => $view_name_single,
'function' => ComponentbuilderHelper::safeString( 'function' => ComponentbuilderHelper::safeString(
$name, 'F' $name, 'F'
), ),
'custom' => $custom, 'custom' => $custom,
'options' => $options); 'options' => $options);
} }
// build the layout // build the layout
@ -4418,21 +4947,20 @@ class Fields extends Structure
); );
// set the [[[PLACEHOLDER]]] options // set the [[[PLACEHOLDER]]] options
$replace = array( $replace = array(
$this->bbb . 'JPREFIX' . $this->ddd => $jprefix, $this->bbb . 'JPREFIX' . $this->ddd => $jprefix,
$this->bbb . 'TABLE' $this->bbb . 'TABLE'
. $this->ddd => $data['custom']['table'], . $this->ddd => (isset($data['custom']['table'])) ? $data['custom']['table'] :'',
$this->bbb . 'ID' $this->bbb . 'ID'
. $this->ddd => $data['custom']['id'], . $this->ddd => (isset($data['custom']['id'])) ? $data['custom']['id'] :'',
$this->bbb . 'TEXT' $this->bbb . 'TEXT'
. $this->ddd => $data['custom']['text'], . $this->ddd => (isset($data['custom']['text'])) ? $data['custom']['text'] :'',
$this->bbb . 'CODE_TEXT' . $this->ddd => $data['code'] . '_' $this->bbb . 'CODE_TEXT' . $this->ddd => (isset($data['code'], $data['custom']['text'])) ? $data['code'] . '_' . $data['custom']['text'] :'',
. $data['custom']['text'], $this->bbb . 'CODE' . $this->ddd => (isset($data['code'])) ? $data['code'] :'',
$this->bbb . 'CODE' . $this->ddd => $data['code'], $this->bbb . 'view_type' . $this->ddd => $view_name_single
$this->bbb . 'view_type' . $this->ddd => $view_name_single
. '_' . $data['type'], . '_' . $data['type'],
$this->bbb . 'type' . $this->ddd => $data['type'], $this->bbb . 'type' . $this->ddd => (isset($data['type'])) ? $data['type'] :'',
$this->bbb . 'com_component' $this->bbb . 'com_component'
. $this->ddd => (isset($data['custom']['component']) . $this->ddd => (isset($data['custom']['component'])
&& ComponentbuilderHelper::checkString( && ComponentbuilderHelper::checkString(
$data['custom']['component'] $data['custom']['component']
)) ? ComponentbuilderHelper::safeString( )) ? ComponentbuilderHelper::safeString(
@ -4440,19 +4968,19 @@ class Fields extends Structure
) : 'com_' . $this->componentCodeName, ) : 'com_' . $this->componentCodeName,
// set the generic values // set the generic values
$this->bbb . 'component' $this->bbb . 'component'
. $this->ddd => $this->componentCodeName, . $this->ddd => $this->componentCodeName,
$this->bbb . 'Component' $this->bbb . 'Component'
. $this->ddd => $this->fileContentStatic[$this->hhh . $this->ddd => $this->fileContentStatic[$this->hhh
. 'Component' . $this->hhh], . 'Component' . $this->hhh],
$this->bbb . 'view' $this->bbb . 'view'
. $this->ddd => (isset($data['custom']['view']) . $this->ddd => (isset($data['custom']['view'])
&& ComponentbuilderHelper::checkString( && ComponentbuilderHelper::checkString(
$data['custom']['view'] $data['custom']['view']
)) ? ComponentbuilderHelper::safeString( )) ? ComponentbuilderHelper::safeString(
$data['custom']['view'] $data['custom']['view']
) : $view_name_single, ) : $view_name_single,
$this->bbb . 'views' $this->bbb . 'views'
. $this->ddd => (isset($data['custom']['views']) . $this->ddd => (isset($data['custom']['views'])
&& ComponentbuilderHelper::checkString( && ComponentbuilderHelper::checkString(
$data['custom']['views'] $data['custom']['views']
)) ? ComponentbuilderHelper::safeString( )) ? ComponentbuilderHelper::safeString(
@ -4520,12 +5048,21 @@ class Fields extends Structure
$this->buildDynamique( $this->buildDynamique(
$target, 'fieldcustom', $data['custom']['type'] $target, 'fieldcustom', $data['custom']['type']
); );
// get the extends name
$JFORM_extends = ComponentbuilderHelper::safeString(
$data['custom']['extends']
);
// JFORM_TYPE_HEADER <<<DYNAMIC>>>
$add_default_header = true;
$this->fileContentDynamic['customfield_'
. $data['type']][$this->hhh . 'JFORM_TYPE_HEADER' . $this->hhh]
= "//" . $this->setLine(
__LINE__
) . " Import the " . $JFORM_extends . " field type classes needed";
// JFORM_extens <<<DYNAMIC>>> // JFORM_extens <<<DYNAMIC>>>
$this->fileContentDynamic['customfield_' $this->fileContentDynamic['customfield_'
. $data['type']][$this->hhh . 'JFORM_extends' . $this->hhh] . $data['type']][$this->hhh . 'JFORM_extends' . $this->hhh]
= ComponentbuilderHelper::safeString( = $JFORM_extends;
$data['custom']['extends']
);
// JFORM_EXTENDS <<<DYNAMIC>>> // JFORM_EXTENDS <<<DYNAMIC>>>
$this->fileContentDynamic['customfield_' $this->fileContentDynamic['customfield_'
. $data['type']][$this->hhh . 'JFORM_EXTENDS' . $this->hhh] . $data['type']][$this->hhh . 'JFORM_EXTENDS' . $this->hhh]
@ -4558,15 +5095,56 @@ class Fields extends Structure
); );
} }
} }
// JFORM_TYPE_PHP <<<DYNAMIC>>> // check if this is header text
$this->fileContentDynamic['customfield_' if('HEADER' === $x)
. $data['type']][$this->hhh . 'JFORM_TYPE_PHP' {
. $this->hhh] $this->fileContentDynamic['customfield_'
.= PHP_EOL . $this->setPlaceholders( . $data['type']][$this->hhh . 'JFORM_TYPE_HEADER'
$phpBucket, $replace . $this->hhh]
); .= PHP_EOL . $this->setPlaceholders(
$phpBucket, $replace
);
// stop default headers from loading
$add_default_header = false;
}
else
{
// JFORM_TYPE_PHP <<<DYNAMIC>>>
$this->fileContentDynamic['customfield_'
. $data['type']][$this->hhh . 'JFORM_TYPE_PHP'
. $this->hhh]
.= PHP_EOL . $this->setPlaceholders(
$phpBucket, $replace
);
}
} }
} }
// check if we should add default header
if ($add_default_header)
{
$this->fileContentDynamic['customfield_'
. $data['type']][$this->hhh . 'JFORM_TYPE_HEADER'
. $this->hhh]
.= PHP_EOL . "jimport('joomla.form.helper');";
$this->fileContentDynamic['customfield_'
. $data['type']][$this->hhh . 'JFORM_TYPE_HEADER'
. $this->hhh]
.= PHP_EOL . "JFormHelper::loadFieldClass('"
. $JFORM_extends . "');";
}
// check the the JFormHelper::loadFieldClass(..) was set
elseif (strpos(
$this->fileContentDynamic['customfield_'
. $data['type']][$this->hhh . 'JFORM_TYPE_HEADER'
. $this->hhh], 'JFormHelper::loadFieldClass('
) === false)
{
$this->fileContentDynamic['customfield_'
. $data['type']][$this->hhh . 'JFORM_TYPE_HEADER'
. $this->hhh]
.= PHP_EOL . "JFormHelper::loadFieldClass('"
. $JFORM_extends . "');";
}
} }
else else
{ {

View File

@ -1637,6 +1637,9 @@ class Interpretation extends Fields
$exel[] = $this->_t(3) . "->setLastModifiedBy(\$modified)"; $exel[] = $this->_t(3) . "->setLastModifiedBy(\$modified)";
$exel[] = $this->_t(3) . "->setTitle(\$title)"; $exel[] = $this->_t(3) . "->setTitle(\$title)";
$exel[] = $this->_t(3) . "->setSubject(\$subjectTab);"; $exel[] = $this->_t(3) . "->setSubject(\$subjectTab);";
$exel[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " The file type";
$exel[] = $this->_t(2) . "\$file_type = 'Xls';";
$exel[] = $this->_t(2) . "//" . $this->setLine(__LINE__) $exel[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " set description"; . " set description";
$exel[] = $this->_t(2) . "if (\$description)"; $exel[] = $this->_t(2) . "if (\$description)";
@ -1682,27 +1685,52 @@ class Interpretation extends Fields
$exel[] = $this->_t(2) . "));"; $exel[] = $this->_t(2) . "));";
$exel[] = PHP_EOL . $this->_t(2) . "//" . $this->setLine(__LINE__) $exel[] = PHP_EOL . $this->_t(2) . "//" . $this->setLine(__LINE__)
. " Add some data"; . " Add some data";
$exel[] = $this->_t(2) . "if (self::checkArray(\$rows))"; $exel[] = $this->_t(2) . "if ((\$size = self::checkArray(\$rows)) !== false)";
$exel[] = $this->_t(2) . "{"; $exel[] = $this->_t(2) . "{";
$exel[] = $this->_t(3) . "\$i = 1;"; $exel[] = $this->_t(3) . "\$i = 1;";
$exel[] = $this->_t(3) . "foreach (\$rows as \$array){"; $exel[] = PHP_EOL . $this->_t(3) . "//" . $this->setLine(__LINE__)
. " Based on data size we adapt the behaviour.";
$exel[] = $this->_t(3) . "\$xls_mode = 1;";
$exel[] = $this->_t(3) . "if (\$size > 3000)";
$exel[] = $this->_t(3) . "{";
$exel[] = $this->_t(4) . "\$xls_mode = 3;";
$exel[] = $this->_t(4) . "\$file_type = 'Csv';";
$exel[] = $this->_t(3) . "}";
$exel[] = $this->_t(3) . "elseif (\$size > 2000)";
$exel[] = $this->_t(3) . "{";
$exel[] = $this->_t(4) . "\$xls_mode = 2;";
$exel[] = $this->_t(3) . "}";
$exel[] = PHP_EOL . $this->_t(3) . "//" . $this->setLine(__LINE__)
. " Set active sheet and get it.";
$exel[] = $this->_t(3) . "\$active_sheet = \$spreadsheet->setActiveSheetIndex(0);";
$exel[] = $this->_t(3) . "foreach (\$rows as \$array)";
$exel[] = $this->_t(3) . "{";
$exel[] = $this->_t(4) . "\$a = 'A';"; $exel[] = $this->_t(4) . "\$a = 'A';";
$exel[] = $this->_t(4) . "foreach (\$array as \$value){"; $exel[] = $this->_t(4) . "foreach (\$array as \$value)";
$exel[] = $this->_t(4) . "{";
$exel[] = $this->_t(5) $exel[] = $this->_t(5)
. "\$spreadsheet->setActiveSheetIndex(0)->setCellValue(\$a.\$i, \$value);"; . "\$active_sheet->setCellValue(\$a.\$i, \$value);";
$exel[] = $this->_t(5) . "if (\$i == 1){"; $exel[] = $this->_t(5) . "if (\$xls_mode != 3)";
$exel[] = $this->_t(6) $exel[] = $this->_t(5) . "{";
. "\$spreadsheet->getActiveSheet()->getColumnDimension(\$a)->setAutoSize(true);"; $exel[] = $this->_t(6) . "if (\$i == 1)";
$exel[] = $this->_t(6) $exel[] = $this->_t(6) . "{";
. "\$spreadsheet->getActiveSheet()->getStyle(\$a.\$i)->applyFromArray(\$headerStyles);"; $exel[] = $this->_t(7)
$exel[] = $this->_t(6) . "\$active_sheet->getColumnDimension(\$a)->setAutoSize(true);";
. "\$spreadsheet->getActiveSheet()->getStyle(\$a.\$i)->getAlignment()->setHorizontal(PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);"; $exel[] = $this->_t(7)
$exel[] = $this->_t(5) . "} elseif (\$a === 'A'){"; . "\$active_sheet->getStyle(\$a.\$i)->applyFromArray(\$headerStyles);";
$exel[] = $this->_t(6) $exel[] = $this->_t(7)
. "\$spreadsheet->getActiveSheet()->getStyle(\$a.\$i)->applyFromArray(\$sideStyles);"; . "\$active_sheet->getStyle(\$a.\$i)->getAlignment()->setHorizontal(PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);";
$exel[] = $this->_t(5) . "} else {"; $exel[] = $this->_t(6) . "}";
$exel[] = $this->_t(6) $exel[] = $this->_t(6) . "elseif (\$a === 'A')";
. "\$spreadsheet->getActiveSheet()->getStyle(\$a.\$i)->applyFromArray(\$normalStyles);"; $exel[] = $this->_t(6) . "{";
$exel[] = $this->_t(7)
. "\$active_sheet->getStyle(\$a.\$i)->applyFromArray(\$sideStyles);";
$exel[] = $this->_t(6) . "}";
$exel[] = $this->_t(6) . "elseif (\$xls_mode == 1)";
$exel[] = $this->_t(6) . "{";
$exel[] = $this->_t(7)
. "\$active_sheet->getStyle(\$a.\$i)->applyFromArray(\$normalStyles);";
$exel[] = $this->_t(6) . "}";
$exel[] = $this->_t(5) . "}"; $exel[] = $this->_t(5) . "}";
$exel[] = $this->_t(5) . "\$a++;"; $exel[] = $this->_t(5) . "\$a++;";
$exel[] = $this->_t(4) . "}"; $exel[] = $this->_t(4) . "}";
@ -1725,7 +1753,7 @@ class Interpretation extends Fields
$exel[] = $this->_t(2) $exel[] = $this->_t(2)
. "header('Content-Type: application/vnd.ms-excel');"; . "header('Content-Type: application/vnd.ms-excel');";
$exel[] = $this->_t(2) $exel[] = $this->_t(2)
. "header('Content-Disposition: attachment;filename=\"'.\$fileName.'.xls\"');"; . "header('Content-Disposition: attachment;filename=\"' . \$fileName . '.' . strtolower(\$file_type) .'\"');";
$exel[] = $this->_t(2) . "header('Cache-Control: max-age=0');"; $exel[] = $this->_t(2) . "header('Cache-Control: max-age=0');";
$exel[] = $this->_t(2) . "//" . $this->setLine(__LINE__) $exel[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " If you're serving to IE 9, then the following may be needed"; . " If you're serving to IE 9, then the following may be needed";
@ -1744,7 +1772,7 @@ class Interpretation extends Fields
$exel[] = $this->_t(2) . "header ('Pragma: public'); //" $exel[] = $this->_t(2) . "header ('Pragma: public'); //"
. $this->setLine(__LINE__) . " HTTP/1.0"; . $this->setLine(__LINE__) . " HTTP/1.0";
$exel[] = PHP_EOL . $this->_t(2) $exel[] = PHP_EOL . $this->_t(2)
. "\$writer = IOFactory::createWriter(\$spreadsheet, 'Xls');"; . "\$writer = IOFactory::createWriter(\$spreadsheet, \$file_type);";
$exel[] = $this->_t(2) . "\$writer->save('php://output');"; $exel[] = $this->_t(2) . "\$writer->save('php://output');";
$exel[] = $this->_t(2) . "jexit();"; $exel[] = $this->_t(2) . "jexit();";
$exel[] = $this->_t(1) . "}"; $exel[] = $this->_t(1) . "}";
@ -1849,10 +1877,38 @@ class Interpretation extends Fields
$method = array(); $method = array();
$method[] = PHP_EOL . PHP_EOL . $this->_t(1) . "/**"; $method[] = PHP_EOL . PHP_EOL . $this->_t(1) . "/**";
$method[] = $this->_t(1) . " * Greate user and update given table"; $method[] = $this->_t(1) . " * Greate user and update given table";
$method[] = $this->_t(1) . " *";
$method[] = $this->_t(1) . " * @param array \$credentials Array('name' => string, 'username' => string, 'email' => string, 'password' => string, 'password2' => string)";
$method[] = $this->_t(1) . " * @param int \$autologin";
$method[] = $this->_t(1) . " * @param array \$params Array('useractivation' => int, 'sendpassword' => int, 'allowUserRegistration' => int)";
$method[] = $this->_t(1) . " * @param array \$mode 1 = Site Registrations; 0 = Admin Registration; 2 = Custom Helper Method Called registerUser";
$method[] = $this->_t(1) . " *";
$method[] = $this->_t(1) . " * @return int|Error User ID on success, or an error.";
$method[] = $this->_t(1) . " */"; $method[] = $this->_t(1) . " */";
$method[] = $this->_t(1) $method[] = $this->_t(1)
. "public static function createUser(\$new)"; . "public static function createUser(\$credentials, \$autologin = 0,";
$method[] = $this->_t(2) . "\$params = array(";
$method[] = $this->_t(3) . "'useractivation' => 0, 'sendpassword' => 1";
$method[] = $this->_t(2) . "), \$mode = 1";
$method[] = $this->_t(1) . ")";
$method[] = $this->_t(1) . "{"; $method[] = $this->_t(1) . "{";
$method[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " Override mode";
$method[] = $this->_t(2) . "if (\$mode == 2 && method_exists(__CLASS__, 'registerUser'))";
$method[] = $this->_t(2) . "{";
$method[] = $this->_t(3) . "//" . $this->setLine(__LINE__)
. " Update params";
$method[] = $this->_t(3) . "\$params['autologin'] = \$autologin;";
$method[] = $this->_t(3) . "//" . $this->setLine(__LINE__)
. " Now Register User";
$method[] = $this->_t(3) . "return self::registerUser(\$credentials, \$params);";
$method[] = $this->_t(2) . "}";
$method[] = $this->_t(2) . "elseif (\$mode == 2)";
$method[] = $this->_t(2) . "{";
$method[] = $this->_t(3) . "//" . $this->setLine(__LINE__)
. " Fallback to Site Registrations";
$method[] = $this->_t(3) . "\$mode = 1;";
$method[] = $this->_t(2) . "}";
$method[] = $this->_t(2) . "//" . $this->setLine(__LINE__) $method[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " load the user component language files if there is an error."; . " load the user component language files if there is an error.";
$method[] = $this->_t(2) . "\$lang = JFactory::getLanguage();"; $method[] = $this->_t(2) . "\$lang = JFactory::getLanguage();";
@ -1864,75 +1920,159 @@ class Interpretation extends Fields
$method[] = $this->_t(2) $method[] = $this->_t(2)
. "\$lang->load(\$extension, \$base_dir, \$language_tag, \$reload);"; . "\$lang->load(\$extension, \$base_dir, \$language_tag, \$reload);";
$method[] = $this->_t(2) . "//" . $this->setLine(__LINE__) $method[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " load the user regestration model"; . " Load the correct user model.";
$method[] = $this->_t(2) $method[] = $this->_t(2) . "if (\$mode == 1) //" . $this->setLine(__LINE__)
. "\$model = self::getModel('registration', JPATH_ROOT. '/components/com_users', 'Users');"; . " 1 = Site Registrations";
$method[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " make sure no activation is needed";
$method[] = $this->_t(2)
. "\$useractivation = self::setParams('com_users','useractivation',0);";
$method[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " make sure password is send";
$method[] = $this->_t(2)
. "\$sendpassword = self::setParams('com_users','sendpassword',1);";
$method[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " Check if password was set";
$method[] = $this->_t(2)
. "if (isset(\$new['password']) && isset(\$new['password2']) && self::checkString(\$new['password']) && self::checkString(\$new['password2']))";
$method[] = $this->_t(2) . "{"; $method[] = $this->_t(2) . "{";
$method[] = $this->_t(3) . "//" . $this->setLine(__LINE__) $method[] = $this->_t(3) . "//" . $this->setLine(__LINE__)
. " Use the users passwords"; . " Load the user site-registration model";
$method[] = $this->_t(3) . "\$password = \$new['password'];"; $method[] = $this->_t(3)
$method[] = $this->_t(3) . "\$password2 = \$new['password2'];"; . "\$model = self::getModel('registration', \$base_dir . '/components/' . \$extension, 'Users');";
$method[] = $this->_t(2) . "}"; $method[] = $this->_t(2) . "}";
$method[] = $this->_t(2) . "else"; $method[] = $this->_t(2) . "else //" . $this->setLine(__LINE__)
. " 0 = Admin Registration";
$method[] = $this->_t(2) . "{"; $method[] = $this->_t(2) . "{";
$method[] = $this->_t(3) . "//" . $this->setLine(__LINE__) $method[] = $this->_t(3) . "//" . $this->setLine(__LINE__)
. " Set random password"; . " Load the backend-user model";
$method[] = $this->_t(3) . "\$password = self::randomkey(8);"; $method[] = $this->_t(3)
$method[] = $this->_t(3) . "\$password2 = \$password;"; . "\$model = self::getModel('user', JPATH_ADMINISTRATOR . '/components/' . \$extension, 'Users');";
$method[] = $this->_t(2) . "}"; $method[] = $this->_t(2) . "}";
$method[] = $this->_t(2) . "//" . $this->setLine(__LINE__) $method[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " set username if not set"; . " Check if we have params/config";
$method[] = $this->_t(2) . "if (self::checkArray(\$params))";
$method[] = $this->_t(2) . "{";
$method[] = $this->_t(3) . "//" . $this->setLine(__LINE__)
. " Make changes to user config";
$method[] = $this->_t(3)
. "foreach (\$params as \$param => \$set)";
$method[] = $this->_t(3) . "{";
$method[] = $this->_t(4) . "//" . $this->setLine(__LINE__)
. " If you know of a better path, let me know";
$method[] = $this->_t(4)
."\$params[\$param] = self::setParams(\$extension, \$param, \$set);";
$method[] = $this->_t(3) . "}";
$method[] = $this->_t(2) . "}";
$method[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " Set username to email if not set";
$method[] = $this->_t(2) $method[] = $this->_t(2)
. "if (!isset(\$new['username']) || !self::checkString(\$new['username']))"; . "if (!isset(\$credentials['username']) || !self::checkString(\$credentials['username']))";
$method[] = $this->_t(2) . "{"; $method[] = $this->_t(2) . "{";
$method[] = $this->_t(3) $method[] = $this->_t(3)
. "\$new['username'] = self::safeString(\$new['name']);"; . "\$credentials['username'] = \$credentials['email'];";
$method[] = $this->_t(2) . "}"; $method[] = $this->_t(2) . "}";
$method[] = $this->_t(2) . "//" . $this->setLine(__LINE__) $method[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " linup new user data"; . " Lineup new user data array";
$method[] = $this->_t(2) . "\$data = array("; $method[] = $this->_t(2) . "\$data = array(";
$method[] = $this->_t(3) . "'username' => \$new['username'],"; $method[] = $this->_t(3) . "'username' => \$credentials['username'],";
$method[] = $this->_t(3) . "'name' => \$new['name'],"; $method[] = $this->_t(3) . "'name' => \$credentials['name'],";
$method[] = $this->_t(3) . "'email1' => \$new['email'],";
$method[] = $this->_t(3)
. "'password1' => \$password, // First password field";
$method[] = $this->_t(3)
. "'password2' => \$password2, // Confirm password field";
$method[] = $this->_t(3) . "'block' => 0 );"; $method[] = $this->_t(3) . "'block' => 0 );";
$method[] = $this->_t(2) . "//" . $this->setLine(__LINE__) $method[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " register the new user"; . " Added details based on mode";
$method[] = $this->_t(2) . "\$userId = \$model->register(\$data);"; $method[] = $this->_t(2) . "if (\$mode == 1) //". $this->setLine(__LINE__)
. " 1 = Site-registration mode";
$method[] = $this->_t(2) . "{";
$method[] = $this->_t(3) . "\$data['email1'] = \$credentials['email'];";
$method[] = $this->_t(2) . "}";
$method[] = $this->_t(2) . "else //" . $this->setLine(__LINE__)
. " 0 = Admin-registration mode";
$method[] = $this->_t(2) . "{";
$method[] = $this->_t(3) . "\$data['email'] = \$credentials['email'];";
$method[] = $this->_t(3) . "\$data['registerDate'] = JFactory::getDate()->toSql();";
$method[] = $this->_t(2) . "}";
$method[] = $this->_t(2) . "//" . $this->setLine(__LINE__) $method[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " set activation back to default"; . " Check if password was set";
$method[] = $this->_t(2) $method[] = $this->_t(2)
. "self::setParams('com_users','useractivation',\$useractivation);"; . "if (\$mode == 1 && (!isset(\$credentials['password']) || !isset(\$credentials['password2']) || !self::checkString(\$credentials['password']) || !self::checkString(\$credentials['password2'])))";
$method[] = $this->_t(2) . "{";
$method[] = $this->_t(3) . "//" . $this->setLine(__LINE__)
. " Set random password when empty password was submitted,";
$method[] = $this->_t(3) . "//" . $this->setLine(__LINE__)
. " when using the 1 = site-registration mode";
$method[] = $this->_t(3) . "\$credentials['password'] = self::randomkey(8);";
$method[] = $this->_t(3) . "\$credentials['password2'] = \$credentials['password'];";
$method[] = $this->_t(2) . "}";
$method[] = $this->_t(2) . "//" . $this->setLine(__LINE__) $method[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " set send password back to default"; . " Now Add password if set";
$method[] = $this->_t(2) $method[] = $this->_t(2)
. "self::setParams('com_users','sendpassword',\$sendpassword);"; . "if (isset(\$credentials['password']) && isset(\$credentials['password2']) && self::checkString(\$credentials['password']) && self::checkString(\$credentials['password2']))";
$method[] = $this->_t(2) . "{";
$method[] = $this->_t(3) . "if (\$mode == 1) //". $this->setLine(__LINE__)
. " 1 = Site-registration mode";
$method[] = $this->_t(3) . "{";
$method[] = $this->_t(4) . "\$data['password1'] = \$credentials['password'];";
$method[] = $this->_t(3) . "}";
$method[] = $this->_t(3) . "else //" . $this->setLine(__LINE__)
. " 0 = Admin-registration mode";
$method[] = $this->_t(3) . "{";
$method[] = $this->_t(4) . "\$data['password'] = \$credentials['password'];";
$method[] = $this->_t(3) . "}";
$method[] = $this->_t(3) . "\$data['password2'] = \$credentials['password2'];";
$method[] = $this->_t(2) . "}";
$method[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " Load the group/s value if set, only for Admin Registration (\$mode == 0)";
$method[] = $this->_t(2)
. "if (\$mode == 0 && isset(\$credentials['groups']) && self::checkArray(\$credentials['groups']))";
$method[] = $this->_t(2) . "{";
$method[] = $this->_t(3)
. "\$data['groups'] = \$credentials['groups'];";
$method[] = $this->_t(2) . "}";
$method[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " Create the new user";
$method[] = $this->_t(2) . "if (\$mode == 1) //". $this->setLine(__LINE__)
. " 1 = Site-registration mode";
$method[] = $this->_t(2) . "{";
$method[] = $this->_t(3) . "\$userId = \$model->register(\$data);";
$method[] = $this->_t(2) . "}";
$method[] = $this->_t(2) . "else //" . $this->setLine(__LINE__)
. " 0 = Admin-registration mode";
$method[] = $this->_t(2) . "{";
$method[] = $this->_t(3) . "\$model->save(\$data);";
$method[] = $this->_t(3) . "\$userId = \$model->getState('user.id', 0);";
$method[] = $this->_t(2) . "}";
$method[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " Check if we have params";
$method[] = $this->_t(2) . "if (self::checkArray(\$params))";
$method[] = $this->_t(2) . "{";
$method[] = $this->_t(3) . "//" . $this->setLine(__LINE__)
. " Change user params/config back";
$method[] = $this->_t(3)
. "foreach (\$params as \$param => \$set)";
$method[] = $this->_t(3) . "{";
$method[] = $this->_t(4) . "//" . $this->setLine(__LINE__)
. " If you know of a better path, let me know";
$method[] = $this->_t(4)
."self::setParams(\$extension, \$param, \$set);";
$method[] = $this->_t(3) . "}";
$method[] = $this->_t(2) . "}";
$method[] = $this->_t(2) . "//" . $this->setLine(__LINE__) $method[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " if user is created"; . " if user is created";
$method[] = $this->_t(2) . "if (\$userId > 0)"; $method[] = $this->_t(2) . "if (\$userId > 0)";
$method[] = $this->_t(2) . "{"; $method[] = $this->_t(2) . "{";
$method[] = $this->_t(3) . "//" . $this->setLine(__LINE__)
. " Auto Login if Needed";
$method[] = $this->_t(3) . "if (\$autologin && isset(\$credentials['password']))";
$method[] = $this->_t(3) . "{";
$method[] = $this->_t(4) . "//" . $this->setLine(__LINE__)
. " Try to login";
$method[] = $this->_t(4) . "try{";
$method[] = $this->_t(5) . "JFactory::getApplication()->login(\$credentials);";
$method[] = $this->_t(4) . "} catch (Exception \$exception){";
$method[] = $this->_t(5) . "//" . $this->setLine(__LINE__)
. " Do noting for now, may want to set redirect.";
$method[] = $this->_t(4) . "}";
$method[] = $this->_t(3) . "}";
$method[] = $this->_t(3) . "//" . $this->setLine(__LINE__)
. " Return ID";
$method[] = $this->_t(3) . "return \$userId;"; $method[] = $this->_t(3) . "return \$userId;";
$method[] = $this->_t(2) . "}"; $method[] = $this->_t(2) . "}";
$method[] = $this->_t(2) . "return \$model->getError();"; $method[] = $this->_t(2) . "return \$model->getError();";
$method[] = $this->_t(1) . "}"; $method[] = $this->_t(1) . "}";
$method[] = PHP_EOL . $this->_t(1) $method[] = PHP_EOL . $this->_t(1)
. "protected static function setParams(\$component,\$target,\$value)"; . "public static function setParams(\$component,\$target,\$value)";
$method[] = $this->_t(1) . "{"; $method[] = $this->_t(1) . "{";
$method[] = $this->_t(2) . "//" . $this->setLine(__LINE__) $method[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " Get the params and set the new values"; . " Get the params and set the new values";
@ -1957,7 +2097,7 @@ class Interpretation extends Fields
$method[] = $this->_t(3) . "//" . $this->setLine(__LINE__) $method[] = $this->_t(3) . "//" . $this->setLine(__LINE__)
. " Execute the query"; . " Execute the query";
$method[] = $this->_t(3) . "\$db->setQuery(\$query);"; $method[] = $this->_t(3) . "\$db->setQuery(\$query);";
$method[] = $this->_t(3) . "\$db->query();"; $method[] = $this->_t(3) . "\$db->execute();";
$method[] = $this->_t(2) . "}"; $method[] = $this->_t(2) . "}";
$method[] = $this->_t(2) . "return \$was;"; $method[] = $this->_t(2) . "return \$was;";
$method[] = $this->_t(1) . "}"; $method[] = $this->_t(1) . "}";
@ -1991,17 +2131,12 @@ class Interpretation extends Fields
$method[] = $this->_t(2) . "}"; $method[] = $this->_t(2) . "}";
$method[] = $this->_t(2) . "// set username"; $method[] = $this->_t(2) . "// set username";
$method[] = $this->_t(2) $method[] = $this->_t(2)
. "if (isset(\$new['username']) && self::checkString(\$new['username']))"; . "if (!isset(\$new['username']) || !self::checkString(\$new['username']))";
$method[] = $this->_t(2) . "{"; $method[] = $this->_t(2) . "{";
$method[] = $this->_t(3) $method[] = $this->_t(3)
. "\$new['username'] = self::safeString(\$new['username']);"; . "\$new['username'] = \$new['email'];";
$method[] = $this->_t(2) . "}"; $method[] = $this->_t(2) . "}";
$method[] = $this->_t(2) . "else"; $method[] = $this->_t(2) . "// lineup update user data";
$method[] = $this->_t(2) . "{";
$method[] = $this->_t(3)
. "\$new['username'] = self::safeString(\$new['name']);";
$method[] = $this->_t(2) . "}";
$method[] = $this->_t(2) . "// linup update user data";
$method[] = $this->_t(2) . "\$data = array("; $method[] = $this->_t(2) . "\$data = array(";
$method[] = $this->_t(3) . "'id' => \$new['id'],"; $method[] = $this->_t(3) . "'id' => \$new['id'],";
$method[] = $this->_t(3) . "'username' => \$new['username'],"; $method[] = $this->_t(3) . "'username' => \$new['username'],";
@ -3025,11 +3160,16 @@ class Interpretation extends Fields
. $ter['table_key'] . " " . $ter['operator'] . $ter['table_key'] . " " . $ter['operator']
. " (' . implode(',', \$array) . ')');"; . " (' . implode(',', \$array) . ')');";
$string .= PHP_EOL . $this->_t(2) . $tab . "}"; $string .= PHP_EOL . $this->_t(2) . $tab . "}";
$string .= PHP_EOL . $this->_t(2) . $tab . "else"; // check if empty is allowed
$string .= PHP_EOL . $this->_t(2) . $tab . "{"; if (!isset($ter['empty']) || !$ter['empty'])
$string .= PHP_EOL . $this->_t(2) . $tab {
. $this->_t(1) . "return false;"; $string .= PHP_EOL . $this->_t(2) . $tab
$string .= PHP_EOL . $this->_t(2) . $tab . "}"; . "else";
$string .= PHP_EOL . $this->_t(2) . $tab . "{";
$string .= PHP_EOL . $this->_t(2) . $tab
. $this->_t(1) . "return false;";
$string .= PHP_EOL . $this->_t(2) . $tab . "}";
}
} }
else else
{ {
@ -3058,11 +3198,16 @@ class Interpretation extends Fields
. $ter['table_key'] . " " . $ter['operator'] . $ter['table_key'] . " " . $ter['operator']
. " ' . \$checkValue);"; . " ' . \$checkValue);";
$string .= PHP_EOL . $this->_t(2) . $tab . "}"; $string .= PHP_EOL . $this->_t(2) . $tab . "}";
$string .= PHP_EOL . $this->_t(2) . $tab . "else"; // check if empty is allowed
$string .= PHP_EOL . $this->_t(2) . $tab . "{"; if (!isset($ter['empty']) || !$ter['empty'])
$string .= PHP_EOL . $this->_t(2) . $tab {
. $this->_t(1) . "return false;"; $string .= PHP_EOL . $this->_t(2) . $tab
$string .= PHP_EOL . $this->_t(2) . $tab . "}"; . "else";
$string .= PHP_EOL . $this->_t(2) . $tab . "{";
$string .= PHP_EOL . $this->_t(2) . $tab
. $this->_t(1) . "return false;";
$string .= PHP_EOL . $this->_t(2) . $tab . "}";
}
} }
break; break;
case 9: case 9:
@ -5260,7 +5405,10 @@ class Interpretation extends Fields
. " this is where you want to load your module position"; . " this is where you want to load your module position";
$addModule[] = $this->_t(3) $addModule[] = $this->_t(3)
. "\$modules = JModuleHelper::getModules(\$position);"; . "\$modules = JModuleHelper::getModules(\$position);";
$addModule[] = $this->_t(3) . "if (\$modules)"; $addModule[] = $this->_t(3) . "if ("
. $this->fileContentStatic[$this->hhh . 'Component'
. $this->hhh]
. "Helper::checkArray(\$modules, true))";
$addModule[] = $this->_t(3) . "{"; $addModule[] = $this->_t(3) . "{";
$addModule[] = $this->_t(4) . "//" . $this->setLine(__LINE__) $addModule[] = $this->_t(4) . "//" . $this->setLine(__LINE__)
. " set the place holder"; . " set the place holder";
@ -5521,7 +5669,8 @@ class Interpretation extends Fields
$buttons[] = $this->_t(1) . $tab . $this->_t(2) $buttons[] = $this->_t(1) . $tab . $this->_t(2)
. "JToolBarHelper::custom('" . $viewName . "." . "JToolBarHelper::custom('" . $viewName . "."
. $custom_button['method'] . "', '" . $custom_button['method'] . "', '"
. $custom_button['icomoon'] . "', '', '" . $keyLang . $custom_button['icomoon'] . " custom-button-"
. strtolower($custom_button['method']) . "', '', '" . $keyLang
. "', false);"; . "', false);";
$buttons[] = $this->_t(1) . $tab . $this->_t(1) . "}"; $buttons[] = $this->_t(1) . $tab . $this->_t(1) . "}";
} }
@ -5555,7 +5704,8 @@ class Interpretation extends Fields
) . $tab . $this->_t(1) ) . $tab . $this->_t(1)
. "JToolBarHelper::custom('" . $viewsName . "." . "JToolBarHelper::custom('" . $viewsName . "."
. $custom_button['method'] . "', '" . $custom_button['method'] . "', '"
. $custom_button['icomoon'] . "', '', '" . $custom_button['icomoon'] . " custom-button-"
. strtolower($custom_button['method']) . "', '', '"
. $keyLang . "', false);"; . $keyLang . "', false);";
$this->onlyFunctionButton[$viewsName][] = $this->_t( $this->onlyFunctionButton[$viewsName][] = $this->_t(
1 1
@ -5575,7 +5725,8 @@ class Interpretation extends Fields
$buttons[] = $this->_t(1) . $tab . $this->_t(2) $buttons[] = $this->_t(1) . $tab . $this->_t(2)
. "JToolBarHelper::custom('" . $viewsName . "." . "JToolBarHelper::custom('" . $viewsName . "."
. $custom_button['method'] . "', '" . $custom_button['method'] . "', '"
. $custom_button['icomoon'] . "', '', '" . $custom_button['icomoon'] . " custom-button-"
. strtolower($custom_button['method']) . "', '', '"
. $keyLang . "', '" . $validateSelection . $keyLang . "', '" . $validateSelection
. "');"; . "');";
$buttons[] = $this->_t(1) . $tab . $this->_t(1) $buttons[] = $this->_t(1) . $tab . $this->_t(1)
@ -5660,10 +5811,16 @@ class Interpretation extends Fields
// return buttons if they were build // return buttons if they were build
if (ComponentbuilderHelper::checkArray($buttons)) if (ComponentbuilderHelper::checkArray($buttons))
{ {
// set the custom get form method JAVASCRIPT_FOR_BUTTONS // just to check if the submission script is manually added
$this->fileContentDynamic[$view['settings']->code][$this->hhh if (!isset($view['settings']->php_document) ||
. $TARGET . '_JAVASCRIPT_FOR_BUTTONS' . $this->hhh] strpos(implode(' ', $view['settings']->php_document),
= $this->setJavaScriptForButtons(); '/submitbutton.js') === false)
{
// set the custom get form method JAVASCRIPT_FOR_BUTTONS
$this->fileContentDynamic[$view['settings']->code][$this->hhh
. $TARGET . '_JAVASCRIPT_FOR_BUTTONS' . $this->hhh]
= $this->setJavaScriptForButtons();
}
// insure the form is added (only if no form exist) // insure the form is added (only if no form exist)
if (isset($view['settings']->default) if (isset($view['settings']->default)
&& strpos( && strpos(
@ -8476,19 +8633,21 @@ class Interpretation extends Fields
public function getCategoryContentType($view, $views, $component) public function getCategoryContentType($view, $views, $component)
{ {
// get the other view
$otherView = $this->catCodeBuilder[$view]['view'];
$category = $this->catCodeBuilder[$view]['code']; $category = $this->catCodeBuilder[$view]['code'];
$Component = ComponentbuilderHelper::safeString($component, 'F'); $Component = ComponentbuilderHelper::safeString($component, 'F');
$View = ComponentbuilderHelper::safeString($view, 'F'); $View = ComponentbuilderHelper::safeString($view, 'F');
// build uninstall script for content types // build uninstall script for content types
$this->uninstallScriptBuilder[$View . ' ' . $category] = 'com_' $this->uninstallScriptBuilder[$View . ' ' . $category] = 'com_'
. $component . '.' . $views . '.category'; . $component . '.' . $otherView . '.category';
$this->uninstallScriptContent[$View . ' ' . $category] = $View . ' ' $this->uninstallScriptContent[$View . ' ' . $category] = $View . ' '
. $category; . $category;
// set the title // set the title
$array['type_title'] = $Component . ' ' . $View . ' ' $array['type_title'] = $Component . ' ' . $View . ' '
. ComponentbuilderHelper::safeString($category, 'F'); . ComponentbuilderHelper::safeString($category, 'F');
// set the alias // set the alias
$array['type_alias'] = 'com_' . $component . '.' . $views . '.category'; $array['type_alias'] = 'com_' . $component . '.' . $otherView . '.category';
// set the table // set the table
$array['table'] $array['table']
= '{"special":{"dbtable":"#__categories","key":"id","type":"Category","prefix":"JTable","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"JTable","config":"array()"}}'; = '{"special":{"dbtable":"#__categories","key":"id","type":"Category","prefix":"JTable","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"JTable","config":"array()"}}';
@ -11450,13 +11609,10 @@ class Interpretation extends Fields
// if to be linked // if to be linked
if ($item['type'] === 'category' && !$item['title']) if ($item['type'] === 'category' && !$item['title'])
{ {
// get the other view
$otherViews = $this->catCodeBuilder[$viewName_single]['views'];
// return the link to category // return the link to category
return 'index.php?option=com_categories&task=category.edit&id=<?php echo (int)$item->' return 'index.php?option=com_categories&task=category.edit&id=<?php echo (int)$item->'
. $item['code'] . '; ?>&extension=com_' . $item['code'] . '; ?>&extension='
. $this->componentCodeName . '.' . $otherViews; . $this->categoryBuilder[$viewName_list]['extension'];
} }
elseif ($item['type'] === 'user' && !$item['title']) elseif ($item['type'] === 'user' && !$item['title'])
{ {
@ -11517,11 +11673,10 @@ class Interpretation extends Fields
if ($item['type'] === 'category' && !$item['title']) if ($item['type'] === 'category' && !$item['title'])
{ {
// get the other view // get the other view
$otherViews = $this->catCodeBuilder[$viewName_single]['views']; $otherView = $this->catCodeBuilder[$viewName_single]['view'];
// return the authority to category // return the authority to category
return $user . "->authorise('core.edit', 'com_" return $user . "->authorise('core.edit', 'com_"
. $this->componentCodeName . "." . $otherViews . $this->componentCodeName . "." . $otherView
. ".category.' . (int)\$item->" . $item['code'] . ")"; . ".category.' . (int)\$item->" . $item['code'] . ")";
} }
elseif ($item['type'] === 'user' && !$item['title']) elseif ($item['type'] === 'user' && !$item['title'])
@ -12624,10 +12779,11 @@ class Interpretation extends Fields
if ($items_one || $items_two) if ($items_one || $items_two)
{ {
// check if the item has permissions. // check if the item has permissions.
$publishingPer = array(); $publishingPerOR = array();
$allToBeChekced = array('core.delete', 'core.edit.created_by', $allToBeChekcedOR = array('core.edit.created_by',
'core.edit.state', 'core.edit.created'); 'core.edit.created',
foreach ($allToBeChekced as $core_permission) 'core.edit.state');
foreach ($allToBeChekcedOR as $core_permission)
{ {
if ($coreLoad && isset($core[$core_permission]) if ($coreLoad && isset($core[$core_permission])
&& isset($this->permissionBuilder['global'][$core[$core_permission]]) && isset($this->permissionBuilder['global'][$core[$core_permission]])
@ -12640,13 +12796,38 @@ class Interpretation extends Fields
)) ))
{ {
// set permissions. // set permissions.
$publishingPer[] = "\$this->canDo->get('" $publishingPerOR[] = "\$this->canDo->get('"
. $core[$core_permission] . "')"; . $core[$core_permission] . "')";
} }
else else
{ {
// set permissions. // set permissions.
$publishingPer[] = "\$this->canDo->get('" . $core_permission $publishingPerOR[] = "\$this->canDo->get('" . $core_permission
. "')";
}
}
$publishingPerAND = array();
$allToBeChekcedAND = array('core.delete', 'core.edit.state');
foreach ($allToBeChekcedAND as $core_permission)
{
if ($coreLoad && isset($core[$core_permission])
&& isset($this->permissionBuilder['global'][$core[$core_permission]])
&& ComponentbuilderHelper::checkArray(
$this->permissionBuilder['global'][$core[$core_permission]]
)
&& in_array(
$view_name_single,
$this->permissionBuilder['global'][$core[$core_permission]]
))
{
// set permissions.
$publishingPerAND[] = "\$this->canDo->get('"
. $core[$core_permission] . "')";
}
else
{
// set permissions.
$publishingPerAND[] = "\$this->canDo->get('" . $core_permission
. "')"; . "')";
} }
} }
@ -12657,8 +12838,11 @@ class Interpretation extends Fields
{ {
$tabs .= $_customTabHTML; $tabs .= $_customTabHTML;
} }
// add the AND values to OR
$publishingPerOR[] = '(' . implode(' && ', $publishingPerAND) . ')';
// now build the complete showhide behaviour for the publishing area
$tabs .= PHP_EOL . PHP_EOL . $this->_t(1) . "<?php if (" . implode( $tabs .= PHP_EOL . PHP_EOL . $this->_t(1) . "<?php if (" . implode(
' || ', $publishingPer ' || ', $publishingPerOR
) . ") : ?>"; ) . ") : ?>";
// set the default publishing tab // set the default publishing tab
$tabs .= PHP_EOL . $this->_t(1) $tabs .= PHP_EOL . $this->_t(1)
@ -14222,9 +14406,9 @@ class Interpretation extends Fields
$query .= PHP_EOL . $this->_t(1) . "{"; $query .= PHP_EOL . $this->_t(1) . "{";
$query .= PHP_EOL . $this->_t(2) . "//" . $this->setLine(__LINE__) $query .= PHP_EOL . $this->_t(2) . "//" . $this->setLine(__LINE__)
. " setup the query"; . " setup the query";
$query .= PHP_EOL . $this->_t(2) . "if (" $query .= PHP_EOL . $this->_t(2) . "if ((\$pks_size = "
. $this->fileContentStatic[$this->hhh . 'Component' . $this->fileContentStatic[$this->hhh . 'Component'
. $this->hhh] . "Helper::checkArray(\$pks))"; . $this->hhh] . "Helper::checkArray(\$pks)) !== false || 'bulk' === \$pks)";
$query .= PHP_EOL . $this->_t(2) . "{"; $query .= PHP_EOL . $this->_t(2) . "{";
$query .= PHP_EOL . $this->_t(3) . "//" . $this->setLine(__LINE__) $query .= PHP_EOL . $this->_t(3) . "//" . $this->setLine(__LINE__)
. " Set a value to know this is " . $config['type'] . " Set a value to know this is " . $config['type']
@ -14256,8 +14440,39 @@ class Interpretation extends Fields
. "\$query->from(\$db->quoteName('#__" . "\$query->from(\$db->quoteName('#__"
. $this->componentCodeName . "_" . $viewName_single . $this->componentCodeName . "_" . $viewName_single
. "', 'a'));"; . "', 'a'));";
$query .= PHP_EOL . $this->_t(3) . "//" . $this->setLine(__LINE__)
. " The bulk export path";
$query .= PHP_EOL . $this->_t(3) . "if ('bulk' === \$pks)";
$query .= PHP_EOL . $this->_t(3) $query .= PHP_EOL . $this->_t(3)
. "{";
$query .= PHP_EOL . $this->_t(4)
. "\$query->where('a.id > 0');";
$query .= PHP_EOL . $this->_t(3)
. "}";
$query .= PHP_EOL . $this->_t(3) . "//" . $this->setLine(__LINE__)
. " A large array of ID's will not work out well";
$query .= PHP_EOL . $this->_t(3) . "elseif (\$pks_size > 500)";
$query .= PHP_EOL . $this->_t(3)
. "{";
$query .= PHP_EOL . $this->_t(4) . "//" . $this->setLine(__LINE__)
. " Use lowest ID";
$query .= PHP_EOL . $this->_t(4)
. "\$query->where('a.id >= ' . (int) min(\$pks));";
$query .= PHP_EOL . $this->_t(4) . "//" . $this->setLine(__LINE__)
. " Use highest ID";
$query .= PHP_EOL . $this->_t(4)
. "\$query->where('a.id <= ' . (int) max(\$pks));";
$query .= PHP_EOL . $this->_t(3)
. "}";
$query .= PHP_EOL . $this->_t(3) . "//" . $this->setLine(__LINE__)
. " The normal default path";
$query .= PHP_EOL . $this->_t(3) . "else";
$query .= PHP_EOL . $this->_t(3)
. "{";
$query .= PHP_EOL . $this->_t(4)
. "\$query->where('a.id IN (' . implode(',',\$pks) . ')');"; . "\$query->where('a.id IN (' . implode(',',\$pks) . ')');";
$query .= PHP_EOL . $this->_t(3)
. "}";
// add custom filtering php // add custom filtering php
$query .= $this->getCustomScriptBuilder( $query .= $this->getCustomScriptBuilder(
'php_getlistquery', $viewName_single, 'php_getlistquery', $viewName_single,
@ -16625,7 +16840,7 @@ class Interpretation extends Fields
$fix .= PHP_EOL . $this->_t(1) . "{"; $fix .= PHP_EOL . $this->_t(1) . "{";
$fix .= PHP_EOL . $this->_t(2) . "//" . $this->setLine(__LINE__) $fix .= PHP_EOL . $this->_t(2) . "//" . $this->setLine(__LINE__)
. " check if the not_required field is set"; . " check if the not_required field is set";
$fix .= PHP_EOL . $this->_t(2) . "if (" . $Component $fix .= PHP_EOL . $this->_t(2) . "if (isset(\$data['not_required']) && " . $Component
. "Helper::checkString(\$data['not_required']))"; . "Helper::checkString(\$data['not_required']))";
$fix .= PHP_EOL . $this->_t(2) . "{"; $fix .= PHP_EOL . $this->_t(2) . "{";
$fix .= PHP_EOL . $this->_t(3) $fix .= PHP_EOL . $this->_t(3)
@ -17459,26 +17674,30 @@ class Interpretation extends Fields
$otherViews = $viewName_list; $otherViews = $viewName_list;
$otherView = $viewName_single; $otherView = $viewName_single;
} }
// set the OtherView value
$this->fileContentDynamic['category' . $otherView][$this->hhh
. 'otherview' . $this->hhh]
= $otherView;
// load the category helper details in not already loaded // load the category helper details in not already loaded
if (!isset( if (!isset(
$this->fileContentDynamic['category' . $otherViews][$this->hhh $this->fileContentDynamic['category' . $otherView][$this->hhh
. 'view' . $this->hhh] . 'view' . $this->hhh]
)) ))
{ {
// lets also set the category helper for this view // lets also set the category helper for this view
$target = array('site' => 'category' . $viewName_list); $target = array('site' => 'category' . $otherView);
$this->buildDynamique($target, 'category'); $this->buildDynamique($target, 'category');
// insure the file gets updated // insure the file gets updated
$this->fileContentDynamic['category' . $otherViews][$this->hhh $this->fileContentDynamic['category' . $otherView][$this->hhh
. 'view' . $this->hhh] . 'view' . $this->hhh]
= $otherView; = $otherView;
$this->fileContentDynamic['category' . $otherViews][$this->hhh $this->fileContentDynamic['category' . $otherView][$this->hhh
. 'View' . $this->hhh] . 'View' . $this->hhh]
= ucfirst($otherView); = ucfirst($otherView);
$this->fileContentDynamic['category' . $otherViews][$this->hhh $this->fileContentDynamic['category' . $otherView][$this->hhh
. 'views' . $this->hhh] . 'views' . $this->hhh]
= $otherViews; = $otherViews;
$this->fileContentDynamic['category' . $otherViews][$this->hhh $this->fileContentDynamic['category' . $otherView][$this->hhh
. 'Views' . $this->hhh] . 'Views' . $this->hhh]
= ucfirst($otherViews); = ucfirst($otherViews);
// set script to global helper file // set script to global helper file
@ -17486,12 +17705,12 @@ class Interpretation extends Fields
$includeHelper[] = "\n//" . $this->setLine(__LINE__) $includeHelper[] = "\n//" . $this->setLine(__LINE__)
. "Insure this view category file is loaded."; . "Insure this view category file is loaded.";
$includeHelper[] = "\$classname = '" . ucfirst($component) $includeHelper[] = "\$classname = '" . ucfirst($component)
. ucfirst($viewName_list) . "Categories';"; . ucfirst($otherView) . "Categories';";
$includeHelper[] = "if (!class_exists(\$classname))"; $includeHelper[] = "if (!class_exists(\$classname))";
$includeHelper[] = "{"; $includeHelper[] = "{";
$includeHelper[] = $this->_t(1) $includeHelper[] = $this->_t(1)
. "\$path = JPATH_SITE . '/components/com_" . $component . "\$path = JPATH_SITE . '/components/com_" . $component
. "/helpers/category" . $viewName_list . ".php';"; . "/helpers/category" . $otherView . ".php';";
$includeHelper[] = $this->_t(1) . "if (is_file(\$path))"; $includeHelper[] = $this->_t(1) . "if (is_file(\$path))";
$includeHelper[] = $this->_t(1) . "{"; $includeHelper[] = $this->_t(1) . "{";
$includeHelper[] = $this->_t(2) . "include_once \$path;"; $includeHelper[] = $this->_t(2) . "include_once \$path;";
@ -17593,7 +17812,7 @@ class Interpretation extends Fields
. " If the category has been passed in the URL check it."; . " If the category has been passed in the URL check it.";
$allow[] = $this->_t(3) $allow[] = $this->_t(3)
. "\$allow = \$user->authorise('core.create', \$this->option . '." . "\$allow = \$user->authorise('core.create', \$this->option . '."
. $otherViews . ".category.' . \$categoryId);"; . $otherView . ".category.' . \$categoryId);";
$allow[] = $this->_t(2) . "}"; $allow[] = $this->_t(2) . "}";
$allow[] = PHP_EOL . $this->_t(2) . "if (\$allow === null)"; $allow[] = PHP_EOL . $this->_t(2) . "if (\$allow === null)";
$allow[] = $this->_t(2) . "{"; $allow[] = $this->_t(2) . "{";
@ -18168,6 +18387,8 @@ class Interpretation extends Fields
) . " Check for existing item."; ) . " Check for existing item.";
$getForm[] = $this->_t(2) . "//" . $this->setLine(__LINE__) $getForm[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " Modify the form based on Edit State access controls."; . " Modify the form based on Edit State access controls.";
// get the other view
$otherView = $this->catCodeBuilder[$viewName_single]['view'];
// check if the item has permissions. // check if the item has permissions.
if ($coreLoad && isset($core['core.edit.state']) if ($coreLoad && isset($core['core.edit.state'])
&& isset($this->permissionBuilder[$core['core.edit.state']]) && isset($this->permissionBuilder[$core['core.edit.state']])
@ -18185,7 +18406,7 @@ class Interpretation extends Fields
. $viewName_single . ".' . (int) \$id))"; . $viewName_single . ".' . (int) \$id))";
$getForm[] = $this->_t(3) $getForm[] = $this->_t(3)
. "|| (isset(\$catid) && \$catid != 0 && !\$user->authorise('core.edit.state', 'com_" . "|| (isset(\$catid) && \$catid != 0 && !\$user->authorise('core.edit.state', 'com_"
. $component . "." . $viewName_list . $component . "." . $otherView
. ".category.' . (int) \$catid))"; . ".category.' . (int) \$catid))";
$getForm[] = $this->_t(3) $getForm[] = $this->_t(3)
. "|| (\$id == 0 && !\$user->authorise('" . "|| (\$id == 0 && !\$user->authorise('"
@ -18199,7 +18420,7 @@ class Interpretation extends Fields
. $component . "." . $viewName_single . ".' . (int) \$id))"; . $component . "." . $viewName_single . ".' . (int) \$id))";
$getForm[] = $this->_t(3) $getForm[] = $this->_t(3)
. "|| (isset(\$catid) && \$catid != 0 && !\$user->authorise('core.edit.state', 'com_" . "|| (isset(\$catid) && \$catid != 0 && !\$user->authorise('core.edit.state', 'com_"
. $component . "." . $viewName_list . $component . "." . $otherView
. ".category.' . (int) \$catid))"; . ".category.' . (int) \$catid))";
$getForm[] = $this->_t(3) $getForm[] = $this->_t(3)
. "|| (\$id == 0 && !\$user->authorise('core.edit.state', 'com_" . "|| (\$id == 0 && !\$user->authorise('core.edit.state', 'com_"
@ -18728,7 +18949,7 @@ class Interpretation extends Fields
$allow[] = PHP_EOL . $this->_t(3) . "\$user = JFactory::getUser();"; $allow[] = PHP_EOL . $this->_t(3) . "\$user = JFactory::getUser();";
$allow[] = $this->_t(3) $allow[] = $this->_t(3)
. "\$allow = \$user->authorise('core.delete', 'com_" . "\$allow = \$user->authorise('core.delete', 'com_"
. $component . "." . $otherViews . $component . "." . $otherView
. ".category.' . (int) \$record->catid);"; . ".category.' . (int) \$record->catid);";
// check if the item has permissions. // check if the item has permissions.
if ($coreLoad if ($coreLoad
@ -18882,7 +19103,7 @@ class Interpretation extends Fields
$allow[] = $this->_t(2) . "{"; $allow[] = $this->_t(2) . "{";
$allow[] = $this->_t(3) $allow[] = $this->_t(3)
. "\$catpermission = \$user->authorise('core.edit.state', 'com_" . "\$catpermission = \$user->authorise('core.edit.state', 'com_"
. $component . "." . $otherViews . $component . "." . $otherView
. ".category.' . (int) \$record->catid);"; . ".category.' . (int) \$record->catid);";
$allow[] = $this->_t(3) $allow[] = $this->_t(3)
. "if (!\$catpermission && !is_null(\$catpermission))"; . "if (!\$catpermission && !is_null(\$catpermission))";
@ -20817,7 +21038,7 @@ class Interpretation extends Fields
// move the image to its place // move the image to its place
JFile::copy( JFile::copy(
JPATH_SITE . '/' . $path, JPATH_SITE . '/' . $path,
$imagePath . '/vdm-component.' . $type, '', true $imagePath . '/vdm-component.' . $type
); );
// now set the type to global for re-use // now set the type to global for re-use
$this->componentImageType = $type; $this->componentImageType = $type;
@ -21056,8 +21277,7 @@ class Interpretation extends Fields
} }
// move the image to its place // move the image to its place
JFile::copy( JFile::copy(
JPATH_SITE . '/' . $path, $imagePath . '/' . $imageName, JPATH_SITE . '/' . $path, $imagePath . '/' . $imageName
'', true
); );
} }
} }
@ -25057,7 +25277,7 @@ function vdm_dkim() {
// Trigger Event: jcb_ce_onBeforeBuildAccessSections // Trigger Event: jcb_ce_onBeforeBuildAccessSections
$this->triggerEvent( $this->triggerEvent(
'jcb_ce_onBeforeBuildAccessSections', 'jcb_ce_onBeforeBuildAccessSections',
array(&$this->componentContext, $this) array(&$this->componentContext, &$this)
); );
$this->componentHead[] = '<section name="component">'; $this->componentHead[] = '<section name="component">';
@ -25484,7 +25704,7 @@ function vdm_dkim() {
// Trigger Event: jcb_ce_onAfterBuildAccessSections // Trigger Event: jcb_ce_onAfterBuildAccessSections
$this->triggerEvent( $this->triggerEvent(
'jcb_ce_onAfterBuildAccessSections', 'jcb_ce_onAfterBuildAccessSections',
array(&$this->componentContext, $this) array(&$this->componentContext, &$this)
); );
// set the views permissions now // set the views permissions now
@ -26361,10 +26581,10 @@ function vdm_dkim() {
$xml .= PHP_EOL . $this->_t(1) . '<config'; $xml .= PHP_EOL . $this->_t(1) . '<config';
$xml .= PHP_EOL . $this->_t(2) $xml .= PHP_EOL . $this->_t(2)
. 'addrulepath="/administrator/components/com_' . 'addrulepath="/administrator/components/com_'
. $this->componentCodeName . '/modules/rules"'; . $this->componentCodeName . '/models/rules"';
$xml .= PHP_EOL . $this->_t(2) $xml .= PHP_EOL . $this->_t(2)
. 'addfieldpath="/administrator/components/com_' . 'addfieldpath="/administrator/components/com_'
. $this->componentCodeName . '/modules/fields"'; . $this->componentCodeName . '/models/fields"';
$xml .= PHP_EOL . $this->_t(1) . '>'; $xml .= PHP_EOL . $this->_t(1) . '>';
} }
else else
@ -26397,12 +26617,24 @@ function vdm_dkim() {
. $fieldset . ' fieldset points to the module -->'; . $fieldset . ' fieldset points to the module -->';
$xml .= PHP_EOL . $this->_t(1) . '<fieldset name="' $xml .= PHP_EOL . $this->_t(1) . '<fieldset name="'
. $fieldset . '" label="' . $label . '"'; . $fieldset . '" label="' . $label . '"';
$xml .= PHP_EOL . $this->_t(2) if ($module->target == 2)
. 'addrulepath="/modules/' . $module->file_name {
. '/rules"'; $xml .= PHP_EOL . $this->_t(2)
$xml .= PHP_EOL . $this->_t(2) . 'addrulepath="/administrator/modules/' . $module->file_name
. 'addfieldpath="/modules/' . $module->file_name . '/rules"';
. '/fields"'; $xml .= PHP_EOL . $this->_t(2)
. 'addfieldpath="/administrator/modules/' . $module->file_name
. '/fields"';
}
else
{
$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) . '>'; $xml .= PHP_EOL . $this->_t(1) . '>';
} }
else else

View File

@ -1077,6 +1077,9 @@ class Infusion extends Interpretation
); );
} }
// setup the layouts
$this->setCustomViewLayouts();
// ADMIN_HELPER_CLASS_HEADER // ADMIN_HELPER_CLASS_HEADER
$this->fileContentStatic[$this->hhh . 'ADMIN_HELPER_CLASS_HEADER' $this->fileContentStatic[$this->hhh . 'ADMIN_HELPER_CLASS_HEADER'
. $this->hhh] . $this->hhh]
@ -1760,6 +1763,7 @@ class Infusion extends Interpretation
&$this->placeholders, &$this->hhh) &$this->placeholders, &$this->hhh)
); );
} }
// setup the layouts // setup the layouts
$this->setCustomViewLayouts(); $this->setCustomViewLayouts();
} }
@ -1930,7 +1934,7 @@ class Infusion extends Interpretation
// Trigger Event: jcb_ce_onBeforeInfuseModuleData // Trigger Event: jcb_ce_onBeforeInfuseModuleData
$this->triggerEvent( $this->triggerEvent(
'jcb_ce_onBeforeInfuseModuleData', 'jcb_ce_onBeforeInfuseModuleData',
array(&$this->componentContext, &$module, $this) array(&$this->componentContext, &$module, &$this)
); );
$this->target = $module->key; $this->target = $module->key;
$this->lang = $module->key; $this->lang = $module->key;
@ -1994,7 +1998,7 @@ class Infusion extends Interpretation
// Trigger Event: jcb_ce_onAfterInfuseModuleData // Trigger Event: jcb_ce_onAfterInfuseModuleData
$this->triggerEvent( $this->triggerEvent(
'jcb_ce_onAfterInfuseModuleData', 'jcb_ce_onAfterInfuseModuleData',
array(&$this->componentContext, &$module, $this) array(&$this->componentContext, &$module, &$this)
); );
} }
} }
@ -2009,7 +2013,7 @@ class Infusion extends Interpretation
// Trigger Event: jcb_ce_onBeforeInfusePluginData // Trigger Event: jcb_ce_onBeforeInfusePluginData
$this->triggerEvent( $this->triggerEvent(
'jcb_ce_onBeforeInfusePluginData', 'jcb_ce_onBeforeInfusePluginData',
array(&$this->componentContext, &$plugin, $this) array(&$this->componentContext, &$plugin, &$this)
); );
$this->target = $plugin->key; $this->target = $plugin->key;
$this->lang = $plugin->key; $this->lang = $plugin->key;
@ -2056,7 +2060,7 @@ class Infusion extends Interpretation
// Trigger Event: jcb_ce_onAfterInfusePluginData // Trigger Event: jcb_ce_onAfterInfusePluginData
$this->triggerEvent( $this->triggerEvent(
'jcb_ce_onAfterInfusePluginData', 'jcb_ce_onAfterInfusePluginData',
array(&$this->componentContext, &$plugin, $this) array(&$this->componentContext, &$plugin, &$this)
); );
} }
} }

View File

@ -13,6 +13,7 @@
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
use Joomla\CMS\Language\Language; use Joomla\CMS\Language\Language;
use Joomla\Registry\Registry;
use Joomla\String\StringHelper; use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper; use Joomla\Utilities\ArrayHelper;
use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\IOFactory;
@ -56,7 +57,7 @@ abstract class ComponentbuilderHelper
/** /**
* Array of php fields Allowed (16) * Array of php fields Allowed (16)
**/ **/
public static $phpFieldArray = array('', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'x'); public static $phpFieldArray = array('', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'x', 'HEADER');
/** /**
* The global params * The global params
@ -2964,7 +2965,15 @@ abstract class ComponentbuilderHelper
$script['setdata'][] = self::_t(3) . "\$jinput = JFactory::getApplication()->input;"; $script['setdata'][] = self::_t(3) . "\$jinput = JFactory::getApplication()->input;";
$script['setdata'][] = self::_t(3) . "foreach(\$target_headers as \$header)"; $script['setdata'][] = self::_t(3) . "foreach(\$target_headers as \$header)";
$script['setdata'][] = self::_t(3) . "{"; $script['setdata'][] = self::_t(3) . "{";
$script['setdata'][] = self::_t(4) . "\$data['target_headers'][\$header] = \$jinput->getString(\$header, null);"; $script['setdata'][] = self::_t(4) . "if ((\$column = \$jinput->getString(\$header, false)) !== false ||";
$script['setdata'][] = self::_t(5) . "(\$column = \$jinput->getString(strtolower(\$header), false)) !== false)";
$script['setdata'][] = self::_t(4) . "{";
$script['setdata'][] = self::_t(5) . "\$data['target_headers'][\$header] = \$column;";
$script['setdata'][] = self::_t(4) . "}";
$script['setdata'][] = self::_t(4) . "else";
$script['setdata'][] = self::_t(4) . "{";
$script['setdata'][] = self::_t(5) . "\$data['target_headers'][\$header] = null;";
$script['setdata'][] = self::_t(4) . "}";
$script['setdata'][] = self::_t(3) . "}"; $script['setdata'][] = self::_t(3) . "}";
$script['setdata'][] = self::_t(3) . "// set the data"; $script['setdata'][] = self::_t(3) . "// set the data";
$script['setdata'][] = self::_t(3) . "if(isset(\$package['dir']))"; $script['setdata'][] = self::_t(3) . "if(isset(\$package['dir']))";
@ -5534,14 +5543,61 @@ abstract class ComponentbuilderHelper
* *
*/ */
public static function getEditURL(&$item, $view, $views, $ref = '', $component = 'com_componentbuilder', $jRoute = true) public static function getEditURL(&$item, $view, $views, $ref = '', $component = 'com_componentbuilder', $jRoute = true)
{
// build record
$record = new stdClass();
// check if user can edit
if (self::canEditItem($record, $item, $view, $views, $component))
{
// set the edit link
if ($jRoute)
{
return JRoute::_("index.php?option=" . $component . "&view=" . $views . "&task=" . $view . ".edit&id=" . $record->id . $ref);
}
return "index.php?option=" . $component . "&view=" . $views . "&task=" . $view . ".edit&id=" . $record->id . $ref;
}
return false;
}
/**
* Can Edit (either any, or own)
*
* @param int $item The item to edit
* @param string $view The type of item to edit
* @param string $views The list view controller name
* @param string $component The component these views belong to
*
* @return bool if user can edit returns true els
*
*/
public static function allowEdit(&$item, $view, $views, $component = 'com_componentbuilder')
{
// build record
$record = new stdClass();
return self::canEditItem($record, $item, $view, $views, $component);
}
/**
* Can Edit (either any, or own)
*
* @param int $item The item to edit
* @param string $view The type of item to edit
* @param string $views The list view controller name
* @param string $component The component these views belong to
*
* @return bool if user can edit returns true els
*
*/
protected static function canEditItem(&$record, &$item, $view, $views, $component = 'com_componentbuilder')
{ {
// make sure the user has access to view // make sure the user has access to view
if (!JFactory::getUser()->authorise($view. '.access', $component)) if (!JFactory::getUser()->authorise($view. '.access', $component))
{ {
return false; return false;
} }
// build record // we start with false.
$record = new stdClass(); $can_edit = false;
// check that we have the ID // check that we have the ID
if (self::checkObject($item) && isset($item->id)) if (self::checkObject($item) && isset($item->id))
{ {
@ -5571,26 +5627,15 @@ abstract class ComponentbuilderHelper
// get user action permission to edit // get user action permission to edit
$action = self::getActions($view, $record, $views, 'edit', str_replace('com_', '', $component)); $action = self::getActions($view, $record, $views, 'edit', str_replace('com_', '', $component));
// check if the view permission is set // check if the view permission is set
if (($edit = $action->get($view . '.edit', 'none-set')) === 'none-set') if (($can_edit = $action->get($view . '.edit', 'none-set')) === 'none-set')
{ {
// fall back on the core permission then // fall back on the core permission then (this can be an issue)
$edit = $action->get('core.edit', 'none-set'); $can_edit = ($action->get('core.edit', false) || $action->get('core.edit.own', false));
}
// can edit
if ($edit)
{
// set the edit link
if ($jRoute)
{
return JRoute::_("index.php?option=" . $component . "&view=" . $views . "&task=" . $view . ".edit&id=" . $record->id . $ref);
}
return "index.php?option=" . $component . "&view=" . $views . "&task=" . $view . ".edit&id=" . $record->id . $ref;
} }
} }
return false; return $can_edit;
} }
/** /**
* set subform type table * set subform type table
* *
@ -5632,9 +5677,9 @@ abstract class ComponentbuilderHelper
/** /**
* Change to nice fancy date * Change to nice fancy date
*/ */
public static function fancyDate($date) public static function fancyDate($date, $check_stamp = true)
{ {
if (!self::isValidTimeStamp($date)) if ($check_stamp && !self::isValidTimeStamp($date))
{ {
$date = strtotime($date); $date = strtotime($date);
} }
@ -5644,9 +5689,9 @@ abstract class ComponentbuilderHelper
/** /**
* get date based in period past * get date based in period past
*/ */
public static function fancyDynamicDate($date) public static function fancyDynamicDate($date, $check_stamp = true)
{ {
if (!self::isValidTimeStamp($date)) if ($check_stamp && !self::isValidTimeStamp($date))
{ {
$date = strtotime($date); $date = strtotime($date);
} }
@ -5670,9 +5715,9 @@ abstract class ComponentbuilderHelper
/** /**
* Change to nice fancy day time and date * Change to nice fancy day time and date
*/ */
public static function fancyDayTimeDate($time) public static function fancyDayTimeDate($time, $check_stamp = true)
{ {
if (!self::isValidTimeStamp($time)) if ($check_stamp && !self::isValidTimeStamp($time))
{ {
$time = strtotime($time); $time = strtotime($time);
} }
@ -5682,9 +5727,9 @@ abstract class ComponentbuilderHelper
/** /**
* Change to nice fancy time and date * Change to nice fancy time and date
*/ */
public static function fancyDateTime($time) public static function fancyDateTime($time, $check_stamp = true)
{ {
if (!self::isValidTimeStamp($time)) if ($check_stamp && !self::isValidTimeStamp($time))
{ {
$time = strtotime($time); $time = strtotime($time);
} }
@ -5694,9 +5739,9 @@ abstract class ComponentbuilderHelper
/** /**
* Change to nice hour:minutes time * Change to nice hour:minutes time
*/ */
public static function fancyTime($time) public static function fancyTime($time, $check_stamp = true)
{ {
if (!self::isValidTimeStamp($time)) if ($check_stamp && !self::isValidTimeStamp($time))
{ {
$time = strtotime($time); $time = strtotime($time);
} }
@ -5706,9 +5751,9 @@ abstract class ComponentbuilderHelper
/** /**
* set the date day as Sunday through Saturday * set the date day as Sunday through Saturday
*/ */
public static function setDayName($date) public static function setDayName($date, $check_stamp = true)
{ {
if (!self::isValidTimeStamp($date)) if ($check_stamp && !self::isValidTimeStamp($date))
{ {
$date = strtotime($date); $date = strtotime($date);
} }
@ -5718,9 +5763,9 @@ abstract class ComponentbuilderHelper
/** /**
* set the date month as January through December * set the date month as January through December
*/ */
public static function setMonthName($date) public static function setMonthName($date, $check_stamp = true)
{ {
if (!self::isValidTimeStamp($date)) if ($check_stamp && !self::isValidTimeStamp($date))
{ {
$date = strtotime($date); $date = strtotime($date);
} }
@ -5730,9 +5775,9 @@ abstract class ComponentbuilderHelper
/** /**
* set the date day as 1st * set the date day as 1st
*/ */
public static function setDay($date) public static function setDay($date, $check_stamp = true)
{ {
if (!self::isValidTimeStamp($date)) if ($check_stamp && !self::isValidTimeStamp($date))
{ {
$date = strtotime($date); $date = strtotime($date);
} }
@ -5742,9 +5787,9 @@ abstract class ComponentbuilderHelper
/** /**
* set the date month as 5 * set the date month as 5
*/ */
public static function setMonth($date) public static function setMonth($date, $check_stamp = true)
{ {
if (!self::isValidTimeStamp($date)) if ($check_stamp && !self::isValidTimeStamp($date))
{ {
$date = strtotime($date); $date = strtotime($date);
} }
@ -5754,9 +5799,9 @@ abstract class ComponentbuilderHelper
/** /**
* set the date year as 2004 (for charts) * set the date year as 2004 (for charts)
*/ */
public static function setYear($date) public static function setYear($date, $check_stamp = true)
{ {
if (!self::isValidTimeStamp($date)) if ($check_stamp && !self::isValidTimeStamp($date))
{ {
$date = strtotime($date); $date = strtotime($date);
} }
@ -5766,9 +5811,9 @@ abstract class ComponentbuilderHelper
/** /**
* set the date as 2004/05 (for charts) * set the date as 2004/05 (for charts)
*/ */
public static function setYearMonth($date, $spacer = '/') public static function setYearMonth($date, $spacer = '/', $check_stamp = true)
{ {
if (!self::isValidTimeStamp($date)) if ($check_stamp && !self::isValidTimeStamp($date))
{ {
$date = strtotime($date); $date = strtotime($date);
} }
@ -5778,15 +5823,27 @@ abstract class ComponentbuilderHelper
/** /**
* set the date as 2004/05/03 (for charts) * set the date as 2004/05/03 (for charts)
*/ */
public static function setYearMonthDay($date, $spacer = '/') public static function setYearMonthDay($date, $spacer = '/', $check_stamp = true)
{ {
if (!self::isValidTimeStamp($date)) if ($check_stamp && !self::isValidTimeStamp($date))
{ {
$date = strtotime($date); $date = strtotime($date);
} }
return date('Y' . $spacer . 'm' . $spacer . 'd', $date); return date('Y' . $spacer . 'm' . $spacer . 'd', $date);
} }
/**
* set the date as 03/05/2004
*/
public static function setDayMonthYear($date, $spacer = '/', $check_stamp = true)
{
if ($check_stamp && !self::isValidTimeStamp($date))
{
$date = strtotime($date);
}
return date('d' . $spacer . 'm' . $spacer . 'Y', $date);
}
/** /**
* Check if string is a valid time stamp * Check if string is a valid time stamp
*/ */
@ -5797,6 +5854,57 @@ abstract class ComponentbuilderHelper
&& ($timestamp >= ~PHP_INT_MAX); && ($timestamp >= ~PHP_INT_MAX);
} }
/**
* Check if string is a valid date
* https://www.php.net/manual/en/function.checkdate.php#113205
*/
public static function isValidateDate($date, $format = 'Y-m-d H:i:s')
{
$d = DateTime::createFromFormat($format, $date);
return $d && $d->format($format) == $date;
}
/**
* The subform layouts
**/
protected static $subformLayouts = false;
/**
* get the subform layout
*
* @input string The view name
* @input string The string name
*
* @returns string on success
**/
public static function getSubformLayout($view, $field, $default = 'repeatablejcb')
{
// get global values
if (self::$subformLayouts === false)
{
self::$subformLayouts = JComponentHelper::getParams('com_componentbuilder')->get('subform_layouts', false);
}
// check what we found (else) return default
if (self::checkObject(self::$subformLayouts))
{
// looking for
$target = $view . '.' . $field;
foreach (self::$subformLayouts as $subform)
{
if ($target === $subform->view_field)
{
return $subform->layout;
}
elseif ('default' === $subform->view_field)
{
$default = $subform->layout;
}
}
}
return $default;
}
/** /**
* Load the Composer Vendors * Load the Composer Vendors
@ -6033,12 +6141,12 @@ abstract class ComponentbuilderHelper
if ($user->authorise('field.access', 'com_componentbuilder') && $user->authorise('field.submenu', 'com_componentbuilder')) if ($user->authorise('field.access', 'com_componentbuilder') && $user->authorise('field.submenu', 'com_componentbuilder'))
{ {
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_FIELDS'), 'index.php?option=com_componentbuilder&view=fields', $submenu === 'fields'); JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_FIELDS'), 'index.php?option=com_componentbuilder&view=fields', $submenu === 'fields');
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_FIELD_FIELDS_CATEGORIES'), 'index.php?option=com_categories&view=categories&extension=com_componentbuilder.fields', $submenu === 'categories.fields'); JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_FIELD_FIELDS_CATEGORIES'), 'index.php?option=com_categories&view=categories&extension=com_componentbuilder.field', $submenu === 'categories.field');
} }
if ($user->authorise('fieldtype.access', 'com_componentbuilder') && $user->authorise('fieldtype.submenu', 'com_componentbuilder')) if ($user->authorise('fieldtype.access', 'com_componentbuilder') && $user->authorise('fieldtype.submenu', 'com_componentbuilder'))
{ {
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_FIELDTYPES'), 'index.php?option=com_componentbuilder&view=fieldtypes', $submenu === 'fieldtypes'); JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_FIELDTYPES'), 'index.php?option=com_componentbuilder&view=fieldtypes', $submenu === 'fieldtypes');
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_FIELDTYPE_FIELDTYPES_CATEGORIES'), 'index.php?option=com_categories&view=categories&extension=com_componentbuilder.fieldtypes', $submenu === 'categories.fieldtypes'); JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_FIELDTYPE_FIELDTYPES_CATEGORIES'), 'index.php?option=com_categories&view=categories&extension=com_componentbuilder.fieldtype', $submenu === 'categories.fieldtype');
} }
if ($user->authorise('language_translation.access', 'com_componentbuilder') && $user->authorise('language_translation.submenu', 'com_componentbuilder')) if ($user->authorise('language_translation.access', 'com_componentbuilder') && $user->authorise('language_translation.submenu', 'com_componentbuilder'))
{ {
@ -6201,6 +6309,8 @@ abstract class ComponentbuilderHelper
->setLastModifiedBy($modified) ->setLastModifiedBy($modified)
->setTitle($title) ->setTitle($title)
->setSubject($subjectTab); ->setSubject($subjectTab);
// The file type
$file_type = 'Xls';
// set description // set description
if ($description) if ($description)
{ {
@ -6240,21 +6350,46 @@ abstract class ComponentbuilderHelper
)); ));
// Add some data // Add some data
if (self::checkArray($rows)) if (($size = self::checkArray($rows)) !== false)
{ {
$i = 1; $i = 1;
foreach ($rows as $array){
// Based on data size we adapt the behaviour.
$xls_mode = 1;
if ($size > 3000)
{
$xls_mode = 3;
$file_type = 'Csv';
}
elseif ($size > 2000)
{
$xls_mode = 2;
}
// Set active sheet and get it.
$active_sheet = $spreadsheet->setActiveSheetIndex(0);
foreach ($rows as $array)
{
$a = 'A'; $a = 'A';
foreach ($array as $value){ foreach ($array as $value)
$spreadsheet->setActiveSheetIndex(0)->setCellValue($a.$i, $value); {
if ($i == 1){ $active_sheet->setCellValue($a.$i, $value);
$spreadsheet->getActiveSheet()->getColumnDimension($a)->setAutoSize(true); if ($xls_mode != 3)
$spreadsheet->getActiveSheet()->getStyle($a.$i)->applyFromArray($headerStyles); {
$spreadsheet->getActiveSheet()->getStyle($a.$i)->getAlignment()->setHorizontal(PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER); if ($i == 1)
} elseif ($a === 'A'){ {
$spreadsheet->getActiveSheet()->getStyle($a.$i)->applyFromArray($sideStyles); $active_sheet->getColumnDimension($a)->setAutoSize(true);
} else { $active_sheet->getStyle($a.$i)->applyFromArray($headerStyles);
$spreadsheet->getActiveSheet()->getStyle($a.$i)->applyFromArray($normalStyles); $active_sheet->getStyle($a.$i)->getAlignment()->setHorizontal(PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
}
elseif ($a === 'A')
{
$active_sheet->getStyle($a.$i)->applyFromArray($sideStyles);
}
elseif ($xls_mode == 1)
{
$active_sheet->getStyle($a.$i)->applyFromArray($normalStyles);
}
} }
$a++; $a++;
} }
@ -6274,7 +6409,7 @@ abstract class ComponentbuilderHelper
// Redirect output to a client's web browser (Excel5) // Redirect output to a client's web browser (Excel5)
header('Content-Type: application/vnd.ms-excel'); header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$fileName.'.xls"'); header('Content-Disposition: attachment;filename="' . $fileName . '.' . strtolower($file_type) .'"');
header('Cache-Control: max-age=0'); header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed // If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1'); header('Cache-Control: max-age=1');
@ -6285,7 +6420,7 @@ abstract class ComponentbuilderHelper
header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1 header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header ('Pragma: public'); // HTTP/1.0 header ('Pragma: public'); // HTTP/1.0
$writer = IOFactory::createWriter($spreadsheet, 'Xls'); $writer = IOFactory::createWriter($spreadsheet, $file_type);
$writer->save('php://output'); $writer->save('php://output');
jexit(); jexit();
} }

View File

@ -7,6 +7,7 @@ COM_COMPONENTBUILDER_ACCESS="Access"
COM_COMPONENTBUILDER_ACCESS_BULK_TOOLS="Access Bulk Tools" COM_COMPONENTBUILDER_ACCESS_BULK_TOOLS="Access Bulk Tools"
COM_COMPONENTBUILDER_ACCESS_DENIED="Access denied!" COM_COMPONENTBUILDER_ACCESS_DENIED="Access denied!"
COM_COMPONENTBUILDER_ACTIVE_ONLY_FOUR_TEXT_FIELD="Active (only 4 text_field)" COM_COMPONENTBUILDER_ACTIVE_ONLY_FOUR_TEXT_FIELD="Active (only 4 text_field)"
COM_COMPONENTBUILDER_ADD="Add"
COM_COMPONENTBUILDER_ADD_ACCESS="Add Access" COM_COMPONENTBUILDER_ADD_ACCESS="Add Access"
COM_COMPONENTBUILDER_ADD_CORRESPONDING_LINE_NUMBERS_TO_THE_DYNAMIC_COMMENTS_SO_TO_SEE_WHERE_IN_THE_COMPILER_THE_LINES_OF_CODE_WAS_BUILD_THIS_WILL_HELP_IF_YOU_NEED_TO_GET_MORE_TECHNICAL_WITH_AN_ISSUE_ON_GITHUB_OR_EVEN_FOR_YOUR_OWN_DEBUGGING="Add corresponding line numbers to the dynamic comments, so to see where in the compiler the lines of code was build. This will help if you need to get more technical with an issue on github, or even for your own debugging." COM_COMPONENTBUILDER_ADD_CORRESPONDING_LINE_NUMBERS_TO_THE_DYNAMIC_COMMENTS_SO_TO_SEE_WHERE_IN_THE_COMPILER_THE_LINES_OF_CODE_WAS_BUILD_THIS_WILL_HELP_IF_YOU_NEED_TO_GET_MORE_TECHNICAL_WITH_AN_ISSUE_ON_GITHUB_OR_EVEN_FOR_YOUR_OWN_DEBUGGING="Add corresponding line numbers to the dynamic comments, so to see where in the compiler the lines of code was build. This will help if you need to get more technical with an issue on github, or even for your own debugging."
COM_COMPONENTBUILDER_ADD_CUSTOM_CODE_PLACEHOLDERS="Add Custom Code Placeholders" COM_COMPONENTBUILDER_ADD_CUSTOM_CODE_PLACEHOLDERS="Add Custom Code Placeholders"
@ -3234,6 +3235,10 @@ COM_COMPONENTBUILDER_CONDITIONS="Conditions"
COM_COMPONENTBUILDER_CONFIG_ACTIVE="Active" COM_COMPONENTBUILDER_CONFIG_ACTIVE="Active"
COM_COMPONENTBUILDER_CONFIG_ADD_MENU_PREFIX_DESCRIPTION="Would you like to add a prefix to the Joomla menu name of your components" COM_COMPONENTBUILDER_CONFIG_ADD_MENU_PREFIX_DESCRIPTION="Would you like to add a prefix to the Joomla menu name of your components"
COM_COMPONENTBUILDER_CONFIG_ADD_MENU_PREFIX_LABEL="Add Menu Prefix" COM_COMPONENTBUILDER_CONFIG_ADD_MENU_PREFIX_LABEL="Add Menu Prefix"
COM_COMPONENTBUILDER_CONFIG_ADMIN_CUSTOM_TABS_TABS="Admin Custom Tabs (tabs)"
COM_COMPONENTBUILDER_CONFIG_ADMIN_FIELDS_ADDFIELDS="Admin Fields (addfields)"
COM_COMPONENTBUILDER_CONFIG_ADMIN_FIELDS_CONDITIONS_ADDCONDITIONS="Admin Fields Conditions (addconditions)"
COM_COMPONENTBUILDER_CONFIG_ADMIN_FIELDS_RELATIONS_ADDRELATIONS="Admin Fields Relations (addrelations)"
COM_COMPONENTBUILDER_CONFIG_ALMOST_FLAT_LOAD="Almost Flat" COM_COMPONENTBUILDER_CONFIG_ALMOST_FLAT_LOAD="Almost Flat"
COM_COMPONENTBUILDER_CONFIG_ALPHANUMERIC="Alphanumeric" COM_COMPONENTBUILDER_CONFIG_ALPHANUMERIC="Alphanumeric"
COM_COMPONENTBUILDER_CONFIG_ALPHANUMERICDOT="Alphanumeric+dot" COM_COMPONENTBUILDER_CONFIG_ALPHANUMERICDOT="Alphanumeric+dot"
@ -3335,7 +3340,10 @@ COM_COMPONENTBUILDER_CONFIG_COMPILER_FOLDER_PATH_MESSAGE="Error! Please add some
COM_COMPONENTBUILDER_CONFIG_COMPILER_PLUGIN_DESCRIPTION="Select the plugin you would like to use in JCB's compiler" COM_COMPONENTBUILDER_CONFIG_COMPILER_PLUGIN_DESCRIPTION="Select the plugin you would like to use in JCB's compiler"
COM_COMPONENTBUILDER_CONFIG_COMPILER_PLUGIN_LABEL="Activate Compiler Plugins" COM_COMPONENTBUILDER_CONFIG_COMPILER_PLUGIN_LABEL="Activate Compiler Plugins"
COM_COMPONENTBUILDER_CONFIG_COMPONENT="Component" COM_COMPONENTBUILDER_CONFIG_COMPONENT="Component"
COM_COMPONENTBUILDER_CONFIG_COMPONENT_ADMIN_VIEWS_ADDADMIN_VIEWS="Component Admin Views (addadmin_views)"
COM_COMPONENTBUILDER_CONFIG_COMPONENT_CUSTOM_ADMIN_VIEWS_ADDCUSTOM_ADMIN_VIEWS="Component Custom Admin Views (addcustom_admin_views)"
COM_COMPONENTBUILDER_CONFIG_COMPONENT_LABEL="Component" COM_COMPONENTBUILDER_CONFIG_COMPONENT_LABEL="Component"
COM_COMPONENTBUILDER_CONFIG_COMPONENT_SITE_VIEWS_ADDSITE_VIEWS="Component Site Views (addsite_views)"
COM_COMPONENTBUILDER_CONFIG_CRONJOB_BACKUP_FOLDER_PATH_DESCRIPTION="Here you can set the path to where all components are backed up to." COM_COMPONENTBUILDER_CONFIG_CRONJOB_BACKUP_FOLDER_PATH_DESCRIPTION="Here you can set the path to where all components are backed up to."
COM_COMPONENTBUILDER_CONFIG_CRONJOB_BACKUP_FOLDER_PATH_HINT="/home/user/fullbackup" COM_COMPONENTBUILDER_CONFIG_CRONJOB_BACKUP_FOLDER_PATH_HINT="/home/user/fullbackup"
COM_COMPONENTBUILDER_CONFIG_CRONJOB_BACKUP_FOLDER_PATH_LABEL="Cronjob Backup Folder Path" COM_COMPONENTBUILDER_CONFIG_CRONJOB_BACKUP_FOLDER_PATH_LABEL="Cronjob Backup Folder Path"
@ -3378,6 +3386,8 @@ COM_COMPONENTBUILDER_CONFIG_DKIM_VALUE_DESCRIPTION="This is the TXT value to use
COM_COMPONENTBUILDER_CONFIG_DKIM_VALUE_HINT="v=DKIM1;k=rsa;g=*;s=email;h=sha1;t=s;p=PUBLICKEY" COM_COMPONENTBUILDER_CONFIG_DKIM_VALUE_HINT="v=DKIM1;k=rsa;g=*;s=email;h=sha1;t=s;p=PUBLICKEY"
COM_COMPONENTBUILDER_CONFIG_DKIM_VALUE_LABEL="Value" COM_COMPONENTBUILDER_CONFIG_DKIM_VALUE_LABEL="Value"
COM_COMPONENTBUILDER_CONFIG_DONT_LOAD="Not" COM_COMPONENTBUILDER_CONFIG_DONT_LOAD="Not"
COM_COMPONENTBUILDER_CONFIG_DYNAMIC_GET_JOIN_DB_TABLE="Dynamic Get (join_db_table)"
COM_COMPONENTBUILDER_CONFIG_DYNAMIC_GET_JOIN_VIEW_TABLE="Dynamic Get (join_view_table)"
COM_COMPONENTBUILDER_CONFIG_EDITOR_DESCRIPTION="Select the editor you would like to use as the JCB global editor for all custom coding areas." COM_COMPONENTBUILDER_CONFIG_EDITOR_DESCRIPTION="Select the editor you would like to use as the JCB global editor for all custom coding areas."
COM_COMPONENTBUILDER_CONFIG_EDITOR_LABEL="Select an editor" COM_COMPONENTBUILDER_CONFIG_EDITOR_LABEL="Select an editor"
COM_COMPONENTBUILDER_CONFIG_EMAILFROM_DESCRIPTION="The global email address that will be used to send system email." COM_COMPONENTBUILDER_CONFIG_EMAILFROM_DESCRIPTION="The global email address that will be used to send system email."
@ -3446,6 +3456,8 @@ COM_COMPONENTBUILDER_CONFIG_EXPORT_EMAIL_DESCRIPTION="Enter Email"
COM_COMPONENTBUILDER_CONFIG_EXPORT_EMAIL_HINT="Email Here" COM_COMPONENTBUILDER_CONFIG_EXPORT_EMAIL_HINT="Email Here"
COM_COMPONENTBUILDER_CONFIG_EXPORT_EMAIL_LABEL="Email" COM_COMPONENTBUILDER_CONFIG_EXPORT_EMAIL_LABEL="Email"
COM_COMPONENTBUILDER_CONFIG_EXPORT_EMAIL_MESSAGE="Error! Please email address here." COM_COMPONENTBUILDER_CONFIG_EXPORT_EMAIL_MESSAGE="Error! Please email address here."
COM_COMPONENTBUILDER_CONFIG_EXPORT_LANGUAGE_STRINGS_DESCRIPTION="All the export of language strings during JCB package export."
COM_COMPONENTBUILDER_CONFIG_EXPORT_LANGUAGE_STRINGS_LABEL="Export Language Strings"
COM_COMPONENTBUILDER_CONFIG_EXPORT_LICENSE_DESCRIPTION="Add License Here" COM_COMPONENTBUILDER_CONFIG_EXPORT_LICENSE_DESCRIPTION="Add License Here"
COM_COMPONENTBUILDER_CONFIG_EXPORT_LICENSE_HINT="Add License Here" COM_COMPONENTBUILDER_CONFIG_EXPORT_LICENSE_HINT="Add License Here"
COM_COMPONENTBUILDER_CONFIG_EXPORT_LICENSE_LABEL="License" COM_COMPONENTBUILDER_CONFIG_EXPORT_LICENSE_LABEL="License"
@ -3485,6 +3497,7 @@ COM_COMPONENTBUILDER_CONFIG_JCB_COMMUNITY_PACKAGES="JCB Community Packages"
COM_COMPONENTBUILDER_CONFIG_JCB_PACKAGE_DIRECTORIES_DESCRIPTION="Here you can manage what package directories show in the JCB package import area." COM_COMPONENTBUILDER_CONFIG_JCB_PACKAGE_DIRECTORIES_DESCRIPTION="Here you can manage what package directories show in the JCB package import area."
COM_COMPONENTBUILDER_CONFIG_JCB_PACKAGE_DIRECTORIES_LABEL="Directories" COM_COMPONENTBUILDER_CONFIG_JCB_PACKAGE_DIRECTORIES_LABEL="Directories"
COM_COMPONENTBUILDER_CONFIG_LANGUAGE_LABEL="Language" COM_COMPONENTBUILDER_CONFIG_LANGUAGE_LABEL="Language"
COM_COMPONENTBUILDER_CONFIG_LAYOUT_LABEL="Layout"
COM_COMPONENTBUILDER_CONFIG_LOCAL_FOLDER="Local Folder" COM_COMPONENTBUILDER_CONFIG_LOCAL_FOLDER="Local Folder"
COM_COMPONENTBUILDER_CONFIG_MAILER_DESCRIPTION="Select what mailer you would like to use to send emails." COM_COMPONENTBUILDER_CONFIG_MAILER_DESCRIPTION="Select what mailer you would like to use to send emails."
COM_COMPONENTBUILDER_CONFIG_MAILER_LABEL="Mailer" COM_COMPONENTBUILDER_CONFIG_MAILER_LABEL="Mailer"
@ -3567,6 +3580,9 @@ COM_COMPONENTBUILDER_CONFIG_PHP_MAIL="PHP Mail"
COM_COMPONENTBUILDER_CONFIG_PLACEHOLDERS_DESCRIPTION="Should JCB insert the custom code placeholders? This is only applicable if this component has custom code." COM_COMPONENTBUILDER_CONFIG_PLACEHOLDERS_DESCRIPTION="Should JCB insert the custom code placeholders? This is only applicable if this component has custom code."
COM_COMPONENTBUILDER_CONFIG_PLACEHOLDERS_LABEL="Add Custom Code Placeholders" COM_COMPONENTBUILDER_CONFIG_PLACEHOLDERS_LABEL="Add Custom Code Placeholders"
COM_COMPONENTBUILDER_CONFIG_REMOTE_SERVER="Remote Server" COM_COMPONENTBUILDER_CONFIG_REMOTE_SERVER="Remote Server"
COM_COMPONENTBUILDER_CONFIG_REPEATABLETABLE_JOOMLA="Repeatable-table (joomla)"
COM_COMPONENTBUILDER_CONFIG_REPEATABLE_JOOMLA="Repeatable (Joomla)"
COM_COMPONENTBUILDER_CONFIG_REPEATABLE_UIKIT="Repeatable (UIkit)"
COM_COMPONENTBUILDER_CONFIG_REPLYNAME_DESCRIPTION="Text displayed in the header &quot;Reply To:&quot; field when replying to the site email. Usually the the person that receives the response. (leave blank for none)" COM_COMPONENTBUILDER_CONFIG_REPLYNAME_DESCRIPTION="Text displayed in the header &quot;Reply To:&quot; field when replying to the site email. Usually the the person that receives the response. (leave blank for none)"
COM_COMPONENTBUILDER_CONFIG_REPLYNAME_HINT="Reply Name Here" COM_COMPONENTBUILDER_CONFIG_REPLYNAME_HINT="Reply Name Here"
COM_COMPONENTBUILDER_CONFIG_REPLYNAME_LABEL="Reply to Name" COM_COMPONENTBUILDER_CONFIG_REPLYNAME_LABEL="Reply to Name"
@ -3602,6 +3618,8 @@ COM_COMPONENTBUILDER_CONFIG_SSL="SSL"
COM_COMPONENTBUILDER_CONFIG_STORAGE_TIME_TO_LIVE_DESCRIPTION="How long should the data that is stored in the browser memory remain unchanged before it is removed and updated." COM_COMPONENTBUILDER_CONFIG_STORAGE_TIME_TO_LIVE_DESCRIPTION="How long should the data that is stored in the browser memory remain unchanged before it is removed and updated."
COM_COMPONENTBUILDER_CONFIG_STORAGE_TIME_TO_LIVE_LABEL="Update Cycle" COM_COMPONENTBUILDER_CONFIG_STORAGE_TIME_TO_LIVE_LABEL="Update Cycle"
COM_COMPONENTBUILDER_CONFIG_STRING_MANIPULATION="String Manipulation" COM_COMPONENTBUILDER_CONFIG_STRING_MANIPULATION="String Manipulation"
COM_COMPONENTBUILDER_CONFIG_SUBFORM_LAYOUTS_DESCRIPTION="Select the sub-form layouts you would like to use."
COM_COMPONENTBUILDER_CONFIG_SUBFORM_LAYOUTS_LABEL="Sub-form Layouts"
COM_COMPONENTBUILDER_CONFIG_TLS="TLS" COM_COMPONENTBUILDER_CONFIG_TLS="TLS"
COM_COMPONENTBUILDER_CONFIG_TRUE="True" COM_COMPONENTBUILDER_CONFIG_TRUE="True"
COM_COMPONENTBUILDER_CONFIG_TYPE_NAME_BUILDER_DESCRIPTION="The default option only uses alphabetical characters and converts all numbers in field names to the English equivalent like <em>1</em> becomes <b>one</b>.<br />Alphanumeric+dot keeps the numbers unconverted unless it is at the beginning of the field name, and allows for a dot (.) to be used in the type name for namespacing." COM_COMPONENTBUILDER_CONFIG_TYPE_NAME_BUILDER_DESCRIPTION="The default option only uses alphabetical characters and converts all numbers in field names to the English equivalent like <em>1</em> becomes <b>one</b>.<br />Alphanumeric+dot keeps the numbers unconverted unless it is at the beginning of the field name, and allows for a dot (.) to be used in the type name for namespacing."
@ -3616,6 +3634,7 @@ COM_COMPONENTBUILDER_CONFIG_UIKIT_MIN_LABEL="Load Minified"
COM_COMPONENTBUILDER_CONFIG_UIKIT_STYLE_DESC="Set the css style that should be used." COM_COMPONENTBUILDER_CONFIG_UIKIT_STYLE_DESC="Set the css style that should be used."
COM_COMPONENTBUILDER_CONFIG_UIKIT_STYLE_LABEL="css Style" COM_COMPONENTBUILDER_CONFIG_UIKIT_STYLE_LABEL="css Style"
COM_COMPONENTBUILDER_CONFIG_VDM_PACKAGES="VDM Packages" COM_COMPONENTBUILDER_CONFIG_VDM_PACKAGES="VDM Packages"
COM_COMPONENTBUILDER_CONFIG_VIEW_FIELD_LABEL="View & Field"
COM_COMPONENTBUILDER_CONFIG_YES="Yes" COM_COMPONENTBUILDER_CONFIG_YES="Yes"
COM_COMPONENTBUILDER_CONFIRMATION_STEP_BEFORE_IMPORTING="Confirmation Step Before Importing!" COM_COMPONENTBUILDER_CONFIRMATION_STEP_BEFORE_IMPORTING="Confirmation Step Before Importing!"
COM_COMPONENTBUILDER_CONTEXT="Context" COM_COMPONENTBUILDER_CONTEXT="Context"
@ -4495,6 +4514,8 @@ COM_COMPONENTBUILDER_DYNAMIC_GET_DIRECTION_LABEL="Ordering Direction"
COM_COMPONENTBUILDER_DYNAMIC_GET_E="e" COM_COMPONENTBUILDER_DYNAMIC_GET_E="e"
COM_COMPONENTBUILDER_DYNAMIC_GET_EDIT="Editing the Dynamic Get" COM_COMPONENTBUILDER_DYNAMIC_GET_EDIT="Editing the Dynamic Get"
COM_COMPONENTBUILDER_DYNAMIC_GET_EE="ee" COM_COMPONENTBUILDER_DYNAMIC_GET_EE="ee"
COM_COMPONENTBUILDER_DYNAMIC_GET_EMPTY_DESCRIPTION="Empty"
COM_COMPONENTBUILDER_DYNAMIC_GET_EMPTY_LABEL="Allow"
COM_COMPONENTBUILDER_DYNAMIC_GET_EQUAL="equal" COM_COMPONENTBUILDER_DYNAMIC_GET_EQUAL="equal"
COM_COMPONENTBUILDER_DYNAMIC_GET_EQUAL_OR_NOT="equal or not" COM_COMPONENTBUILDER_DYNAMIC_GET_EQUAL_OR_NOT="equal or not"
COM_COMPONENTBUILDER_DYNAMIC_GET_ERROR_UNIQUE_ALIAS="Another Dynamic Get has the same alias." COM_COMPONENTBUILDER_DYNAMIC_GET_ERROR_UNIQUE_ALIAS="Another Dynamic Get has the same alias."
@ -5871,7 +5892,7 @@ Project duration: **###projectWeekTime### weeks** or **###projectMonthTime### mo
## Donations<br /> ## Donations<br />
<br /> <br />
If you want to support this project, please consider donating:<br /> If you want to support this project, please consider donating:<br />
* PayPal: [paypal.me/asseblief](https://www.paypal.me/asseblief) (Asseblief = Please) in Afrikaans<br /> * PayPal: [paypal.me/donationgeek](https://www.paypal.me/donationgeek)<br />
* Bitcoin: 18vURxYpPFjvNk8BnUy1ovCAyQmY3MzkSf<br /> * Bitcoin: 18vURxYpPFjvNk8BnUy1ovCAyQmY3MzkSf<br />
* Ethereum: 0x9548144662b47327c954f3e214edb96662d51218 * Ethereum: 0x9548144662b47327c954f3e214edb96662d51218
</code></div>" </code></div>"
@ -7717,6 +7738,7 @@ COM_COMPONENTBUILDER_MODEL_AFTER_MODELLING="Model (after modelling)"
COM_COMPONENTBUILDER_MODEL_BEFORE_MODELLING="Model (before modelling)" COM_COMPONENTBUILDER_MODEL_BEFORE_MODELLING="Model (before modelling)"
COM_COMPONENTBUILDER_MODULE="Module" COM_COMPONENTBUILDER_MODULE="Module"
COM_COMPONENTBUILDER_MODULES="Modules" COM_COMPONENTBUILDER_MODULES="Modules"
COM_COMPONENTBUILDER_MOVE="Move"
COM_COMPONENTBUILDER_NAME="Name" COM_COMPONENTBUILDER_NAME="Name"
COM_COMPONENTBUILDER_NAME_ASC="Name (Asc)" COM_COMPONENTBUILDER_NAME_ASC="Name (Asc)"
COM_COMPONENTBUILDER_NAME_DESC="Name (Desc)" COM_COMPONENTBUILDER_NAME_DESC="Name (Desc)"
@ -7913,6 +7935,7 @@ COM_COMPONENTBUILDER_PUBLISHING="Publishing"
COM_COMPONENTBUILDER_READY_TO_COMPILE_A_COMPONENT="Ready to compile a component" COM_COMPONENTBUILDER_READY_TO_COMPILE_A_COMPONENT="Ready to compile a component"
COM_COMPONENTBUILDER_REFRESH="Refresh" COM_COMPONENTBUILDER_REFRESH="Refresh"
COM_COMPONENTBUILDER_RELEASED_THIS="released this" COM_COMPONENTBUILDER_RELEASED_THIS="released this"
COM_COMPONENTBUILDER_REMOVE="Remove"
COM_COMPONENTBUILDER_RENAME="Rename" COM_COMPONENTBUILDER_RENAME="Rename"
COM_COMPONENTBUILDER_REPORT_AN_ISSUE_BSB="Report an issue: <b>%s</b>" COM_COMPONENTBUILDER_REPORT_AN_ISSUE_BSB="Report an issue: <b>%s</b>"
COM_COMPONENTBUILDER_REQUIRES_THE_VALUE_ENTERED_BE_ONE_OF_THE_OPTIONS_IN_AN_ELEMENT_OF_TYPEQUOTLISTQUOT_THAT_IS_THAT_THE_ELEMENT_IS_A_SELECT_LIST="Requires the value entered be one of the options in an element of type=&quot;list&quot;: that is, that the element is a select list." COM_COMPONENTBUILDER_REQUIRES_THE_VALUE_ENTERED_BE_ONE_OF_THE_OPTIONS_IN_AN_ELEMENT_OF_TYPEQUOTLISTQUOT_THAT_IS_THAT_THE_ELEMENT_IS_A_SELECT_LIST="Requires the value entered be one of the options in an element of type=&quot;list&quot;: that is, that the element is a select list."

View File

@ -13,7 +13,7 @@
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
// set the defaults // set the defaults
$items = $displayData->vyffields; $items = $displayData->vycfields;
$user = JFactory::getUser(); $user = JFactory::getUser();
$id = $displayData->item->id; $id = $displayData->item->id;
// set the edit URL // set the edit URL
@ -118,8 +118,8 @@ $can = ComponentbuilderHelper::getActions('field');
<?php echo JText::_($item->store); ?> <?php echo JText::_($item->store); ?>
</td> </td>
<td> <td>
<?php if ($user->authorise('core.edit', 'com_componentbuilder.fields.category.' . (int)$item->catid)): ?> <?php if ($user->authorise('core.edit', 'com_componentbuilder.field.category.' . (int)$item->catid)): ?>
<a href="index.php?option=com_categories&task=category.edit&id=<?php echo (int)$item->catid; ?>&extension=com_componentbuilder.fields"><?php echo $displayData->escape($item->category_title); ?></a> <a href="index.php?option=com_categories&task=category.edit&id=<?php echo (int)$item->catid; ?>&extension=com_componentbuilder.field"><?php echo $displayData->escape($item->category_title); ?></a>
<?php else: ?> <?php else: ?>
<?php echo $displayData->escape($item->category_title); ?> <?php echo $displayData->escape($item->category_title); ?>
<?php endif; ?> <?php endif; ?>

View File

@ -0,0 +1,95 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <http://www.joomlacomponentbuilder.com>
* @github Joomla Component Builder <https://github.com/vdm-io/Joomla-Component-Builder>
* @copyright Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// No direct access to this file
defined('JPATH_BASE') or die('Restricted access');
/**
* Make thing clear
*
* @var JForm $tmpl The Empty form for template
* @var array $forms Array of JForm instances for render the rows
* @var bool $multiple The multiple state for the form field
* @var int $min Count of minimum repeating in multiple mode
* @var int $max Count of maximum repeating in multiple mode
* @var string $fieldname The field name
* @var string $control The forms control
* @var string $label The field label
* @var string $description The field description
* @var array $buttons Array of the buttons that will be rendered
* @var bool $groupByFieldset Whether group the subform fields by it`s fieldset
*/
extract($displayData);
// Add script
JHtml::_('jquery.ui', array('core', 'sortable'));
JHtml::_('script', 'system/subform-repeatable.js', array('version' => 'auto', 'relative' => true));
$sublayout = 'sectionjcb';
?>
<div class="row-fluid">
<div class="subform-repeatable-wrapper subform-layout">
<div class="subform-repeatable"
data-bt-add="a.group-add-<?php echo $unique_subform_id; ?>"
data-bt-remove="a.group-remove-<?php echo $unique_subform_id; ?>"
data-bt-move="a.group-move-<?php echo $unique_subform_id; ?>"
data-repeatable-element="div.subform-repeatable-jcb-group-<?php echo $unique_subform_id; ?>"
data-minimum="<?php echo $min; ?>" data-maximum="<?php echo $max; ?>"
>
<?php if (!empty($buttons['add'])) : ?>
<div class="btn-toolbar">
<div class="btn-group">
<a class="btn btn-mini button btn-success group-add group-add-<?php echo $unique_subform_id; ?>" aria-label="<?php echo JText::_('COM_COMPONENTBUILDER_ADD'); ?>">
<span class="icon-plus" aria-hidden="true"></span>
</a>
</div>
</div>
<?php endif; ?>
<?php
foreach ($forms as $k => $form) :
echo JLayoutHelper::render(
$sublayout,
array(
'form' => $form,
'basegroup' => $fieldname,
'group' => $fieldname . $k,
'buttons' => $buttons,
'unique_subform_id' => $unique_subform_id
)
);
endforeach;
?>
<?php if ($multiple) : ?>
<template class="subform-repeatable-template-section" style="display: none;"><?php
// Use str_replace to escape HTML in a simple way, it need for IE compatibility, and should be removed later
echo str_replace(
array('<', '>'),
array('SUBFORMLT', 'SUBFORMGT'),
trim(
JLayoutHelper::render(
$sublayout,
array(
'form' => $tmpl,
'basegroup' => $fieldname,
'group' => $fieldname . 'X',
'buttons' => $buttons,
'unique_subform_id' => $unique_subform_id
)
)
)
);
?></template>
<?php endif; ?>
</div>
</div>
</div>

View File

@ -0,0 +1,62 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <http://www.joomlacomponentbuilder.com>
* @github Joomla Component Builder <https://github.com/vdm-io/Joomla-Component-Builder>
* @copyright Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// No direct access to this file
defined('JPATH_BASE') or die('Restricted access');
/**
* Make thing clear
*
* @var JForm $form The form instance for render the section
* @var string $basegroup The base group name
* @var string $group Current group name
* @var array $buttons Array of the buttons that will be rendered
*/
extract($displayData);
?>
<div
class="subform-repeatable-group subform-repeatable-jcb-group-<?php echo $unique_subform_id; ?>"
data-base-name="<?php echo $basegroup; ?>"
data-group="<?php echo $group; ?>"
>
<?php if (!empty($buttons)) : ?>
<div class="btn-toolbar text-right">
<div class="btn-group">
<?php if (!empty($buttons['add'])) : ?>
<a class="btn btn-mini button btn-success group-add group-add-<?php echo $unique_subform_id; ?>" aria-label="<?php echo JText::_('COM_COMPONENTBUILDER_ADD'); ?>">
<span class="icon-plus" aria-hidden="true"></span>
</a>
<?php endif; ?>
<?php if (!empty($buttons['remove'])) : ?>
<a class="btn btn-mini button btn-danger group-remove group-remove-<?php echo $unique_subform_id; ?>" aria-label="<?php echo JText::_('COM_COMPONENTBUILDER_REMOVE'); ?>">
<span class="icon-minus" aria-hidden="true"></span>
</a>
<?php endif; ?>
<?php if (!empty($buttons['move'])) : ?>
<a class="btn btn-mini button btn-primary group-move group-move-<?php echo $unique_subform_id; ?>" aria-label="<?php echo JText::_('COM_COMPONENTBUILDER_MOVE'); ?>">
<span class="icon-move" aria-hidden="true"></span>
</a>
<?php endif; ?>
</div>
</div>
<?php endif; ?>
<div data-uk-grid-margin="" class="uk-grid">
<?php foreach ($form->getGroup('') as $field) : ?>
<div class="uk-width-medium-1-4 uk-width-large-1-5">
<div class="uk-panel">
<?php echo $field->renderField(); ?>
</div>
</div>
<?php endforeach; ?>
</div>
</div>

View File

@ -13,7 +13,7 @@
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
// set the defaults // set the defaults
$items = $displayData->vyplinked_components; $items = $displayData->vymlinked_components;
$user = JFactory::getUser(); $user = JFactory::getUser();
$id = $displayData->item->id; $id = $displayData->item->id;
// set the edit URL // set the edit URL

View File

@ -225,6 +225,9 @@ class ComponentbuilderModelAdmin_custom_tabs extends JModelAdmin
$form->setValue($redirectedField, null, $redirectedValue); $form->setValue($redirectedField, null, $redirectedValue);
} }
} }
// update the tabs (sub form) layout
$form->setFieldAttribute('tabs', 'layout', ComponentbuilderHelper::getSubformLayout('admin_custom_tabs', 'tabs'));
return $form; return $form;
} }

View File

@ -246,6 +246,9 @@ class ComponentbuilderModelAdmin_fields extends JModelAdmin
$form->setValue($redirectedField, null, $redirectedValue); $form->setValue($redirectedField, null, $redirectedValue);
} }
} }
// update the addfields (sub form) layout
$form->setFieldAttribute('addfields', 'layout', ComponentbuilderHelper::getSubformLayout('admin_fields', 'addfields'));
return $form; return $form;
} }

View File

@ -246,6 +246,9 @@ class ComponentbuilderModelAdmin_fields_conditions extends JModelAdmin
$form->setValue($redirectedField, null, $redirectedValue); $form->setValue($redirectedField, null, $redirectedValue);
} }
} }
// update the addconditions (sub form) layout
$form->setFieldAttribute('addconditions', 'layout', ComponentbuilderHelper::getSubformLayout('admin_fields_conditions', 'addconditions'));
return $form; return $form;
} }

View File

@ -308,6 +308,9 @@ class ComponentbuilderModelAdmin_fields_relations extends JModelAdmin
$form->setValue($redirectedField, null, $redirectedValue); $form->setValue($redirectedField, null, $redirectedValue);
} }
} }
// update the addrelations (sub form) layout
$form->setFieldAttribute('addrelations', 'layout', ComponentbuilderHelper::getSubformLayout('admin_fields_relations', 'addrelations'));
return $form; return $form;
} }

View File

@ -800,8 +800,8 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin
} }
// Only load the GUID if new item // Only load the GUID if new item (or empty)
if (0 == $id) if (0 == $id || !($val = $form->getValue('guid')))
{ {
$form->setValue('guid', null, ComponentbuilderHelper::GUID()); $form->setValue('guid', null, ComponentbuilderHelper::GUID());
} }
@ -984,7 +984,7 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin
public function validate($form, $data, $group = null) public function validate($form, $data, $group = null)
{ {
// check if the not_required field is set // check if the not_required field is set
if (ComponentbuilderHelper::checkString($data['not_required'])) if (isset($data['not_required']) && ComponentbuilderHelper::checkString($data['not_required']))
{ {
$requiredFields = (array) explode(',',(string) $data['not_required']); $requiredFields = (array) explode(',',(string) $data['not_required']);
$requiredFields = array_unique($requiredFields); $requiredFields = array_unique($requiredFields);
@ -1491,8 +1491,15 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin
} }
// Set the GUID if empty or not valid // Set the GUID if empty or not valid
if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "admin_view", $data['id'])) if (empty($data['guid']) && $data['id'] > 0)
{ {
// get the existing one
$data['guid'] = (string) ComponentbuilderHelper::getVar('admin_view', $data['id'], 'id', 'guid');
}
// Set the GUID if empty or not valid
while (!ComponentbuilderHelper::validGUID($data['guid'], "admin_view", $data['id']))
{
// must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID(); $data['guid'] = (string) ComponentbuilderHelper::GUID();
} }

View File

@ -342,7 +342,7 @@ class ComponentbuilderModelAdmin_views extends JModelList
public function getExportData($pks, $user = null) public function getExportData($pks, $user = null)
{ {
// setup the query // setup the query
if (ComponentbuilderHelper::checkArray($pks)) if (($pks_size = ComponentbuilderHelper::checkArray($pks)) !== false || 'bulk' === $pks)
{ {
// Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME) // Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME)
$_export = true; $_export = true;
@ -360,7 +360,24 @@ class ComponentbuilderModelAdmin_views extends JModelList
// From the componentbuilder_admin_view table // From the componentbuilder_admin_view table
$query->from($db->quoteName('#__componentbuilder_admin_view', 'a')); $query->from($db->quoteName('#__componentbuilder_admin_view', 'a'));
$query->where('a.id IN (' . implode(',',$pks) . ')'); // The bulk export path
if ('bulk' === $pks)
{
$query->where('a.id > 0');
}
// A large array of ID's will not work out well
elseif ($pks_size > 500)
{
// Use lowest ID
$query->where('a.id >= ' . (int) min($pks));
// Use highest ID
$query->where('a.id <= ' . (int) max($pks));
}
// The normal default path
else
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// Implement View Level Access // Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder')) if (!$user->authorise('core.options', 'com_componentbuilder'))
{ {

View File

@ -342,8 +342,8 @@ class ComponentbuilderModelClass_method extends JModelAdmin
} }
// Only load the GUID if new item // Only load the GUID if new item (or empty)
if (0 == $id) if (0 == $id || !($val = $form->getValue('guid')))
{ {
$form->setValue('guid', null, ComponentbuilderHelper::GUID()); $form->setValue('guid', null, ComponentbuilderHelper::GUID());
} }
@ -526,7 +526,7 @@ class ComponentbuilderModelClass_method extends JModelAdmin
public function validate($form, $data, $group = null) public function validate($form, $data, $group = null)
{ {
// check if the not_required field is set // check if the not_required field is set
if (ComponentbuilderHelper::checkString($data['not_required'])) if (isset($data['not_required']) && ComponentbuilderHelper::checkString($data['not_required']))
{ {
$requiredFields = (array) explode(',',(string) $data['not_required']); $requiredFields = (array) explode(',',(string) $data['not_required']);
$requiredFields = array_unique($requiredFields); $requiredFields = array_unique($requiredFields);
@ -972,8 +972,15 @@ class ComponentbuilderModelClass_method extends JModelAdmin
$data['name'] = ComponentbuilderHelper::safeClassFunctionName($data['name']); $data['name'] = ComponentbuilderHelper::safeClassFunctionName($data['name']);
// Set the GUID if empty or not valid // Set the GUID if empty or not valid
if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "class_method", $data['id'])) if (empty($data['guid']) && $data['id'] > 0)
{ {
// get the existing one
$data['guid'] = (string) ComponentbuilderHelper::getVar('class_method', $data['id'], 'id', 'guid');
}
// Set the GUID if empty or not valid
while (!ComponentbuilderHelper::validGUID($data['guid'], "class_method", $data['id']))
{
// must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID(); $data['guid'] = (string) ComponentbuilderHelper::GUID();
} }

View File

@ -269,7 +269,7 @@ class ComponentbuilderModelClass_methods extends JModelList
public function getExportData($pks, $user = null) public function getExportData($pks, $user = null)
{ {
// setup the query // setup the query
if (ComponentbuilderHelper::checkArray($pks)) if (($pks_size = ComponentbuilderHelper::checkArray($pks)) !== false || 'bulk' === $pks)
{ {
// Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME) // Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME)
$_export = true; $_export = true;
@ -287,7 +287,24 @@ class ComponentbuilderModelClass_methods extends JModelList
// From the componentbuilder_class_method table // From the componentbuilder_class_method table
$query->from($db->quoteName('#__componentbuilder_class_method', 'a')); $query->from($db->quoteName('#__componentbuilder_class_method', 'a'));
$query->where('a.id IN (' . implode(',',$pks) . ')'); // The bulk export path
if ('bulk' === $pks)
{
$query->where('a.id > 0');
}
// A large array of ID's will not work out well
elseif ($pks_size > 500)
{
// Use lowest ID
$query->where('a.id >= ' . (int) min($pks));
// Use highest ID
$query->where('a.id <= ' . (int) max($pks));
}
// The normal default path
else
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// Implement View Level Access // Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder')) if (!$user->authorise('core.options', 'com_componentbuilder'))
{ {

View File

@ -269,7 +269,7 @@ class ComponentbuilderModelClass_properties extends JModelList
public function getExportData($pks, $user = null) public function getExportData($pks, $user = null)
{ {
// setup the query // setup the query
if (ComponentbuilderHelper::checkArray($pks)) if (($pks_size = ComponentbuilderHelper::checkArray($pks)) !== false || 'bulk' === $pks)
{ {
// Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME) // Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME)
$_export = true; $_export = true;
@ -287,7 +287,24 @@ class ComponentbuilderModelClass_properties extends JModelList
// From the componentbuilder_class_property table // From the componentbuilder_class_property table
$query->from($db->quoteName('#__componentbuilder_class_property', 'a')); $query->from($db->quoteName('#__componentbuilder_class_property', 'a'));
$query->where('a.id IN (' . implode(',',$pks) . ')'); // The bulk export path
if ('bulk' === $pks)
{
$query->where('a.id > 0');
}
// A large array of ID's will not work out well
elseif ($pks_size > 500)
{
// Use lowest ID
$query->where('a.id >= ' . (int) min($pks));
// Use highest ID
$query->where('a.id <= ' . (int) max($pks));
}
// The normal default path
else
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// Implement View Level Access // Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder')) if (!$user->authorise('core.options', 'com_componentbuilder'))
{ {

View File

@ -333,8 +333,8 @@ class ComponentbuilderModelClass_property extends JModelAdmin
} }
// Only load the GUID if new item // Only load the GUID if new item (or empty)
if (0 == $id) if (0 == $id || !($val = $form->getValue('guid')))
{ {
$form->setValue('guid', null, ComponentbuilderHelper::GUID()); $form->setValue('guid', null, ComponentbuilderHelper::GUID());
} }
@ -517,7 +517,7 @@ class ComponentbuilderModelClass_property extends JModelAdmin
public function validate($form, $data, $group = null) public function validate($form, $data, $group = null)
{ {
// check if the not_required field is set // check if the not_required field is set
if (ComponentbuilderHelper::checkString($data['not_required'])) if (isset($data['not_required']) && ComponentbuilderHelper::checkString($data['not_required']))
{ {
$requiredFields = (array) explode(',',(string) $data['not_required']); $requiredFields = (array) explode(',',(string) $data['not_required']);
$requiredFields = array_unique($requiredFields); $requiredFields = array_unique($requiredFields);
@ -963,8 +963,15 @@ class ComponentbuilderModelClass_property extends JModelAdmin
$data['name'] = ComponentbuilderHelper::safeClassFunctionName($data['name']); $data['name'] = ComponentbuilderHelper::safeClassFunctionName($data['name']);
// Set the GUID if empty or not valid // Set the GUID if empty or not valid
if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "class_property", $data['id'])) if (empty($data['guid']) && $data['id'] > 0)
{ {
// get the existing one
$data['guid'] = (string) ComponentbuilderHelper::getVar('class_property', $data['id'], 'id', 'guid');
}
// Set the GUID if empty or not valid
while (!ComponentbuilderHelper::validGUID($data['guid'], "class_property", $data['id']))
{
// must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID(); $data['guid'] = (string) ComponentbuilderHelper::GUID();
} }

View File

@ -257,6 +257,9 @@ class ComponentbuilderModelComponent_admin_views extends JModelAdmin
$form->setValue($redirectedField, null, $redirectedValue); $form->setValue($redirectedField, null, $redirectedValue);
} }
} }
// update the addadmin_views (sub form) layout
$form->setFieldAttribute('addadmin_views', 'layout', ComponentbuilderHelper::getSubformLayout('component_admin_views', 'addadmin_views'));
return $form; return $form;
} }

View File

@ -257,6 +257,9 @@ class ComponentbuilderModelComponent_custom_admin_views extends JModelAdmin
$form->setValue($redirectedField, null, $redirectedValue); $form->setValue($redirectedField, null, $redirectedValue);
} }
} }
// update the addcustom_admin_views (sub form) layout
$form->setFieldAttribute('addcustom_admin_views', 'layout', ComponentbuilderHelper::getSubformLayout('component_custom_admin_views', 'addcustom_admin_views'));
return $form; return $form;
} }

View File

@ -257,6 +257,9 @@ class ComponentbuilderModelComponent_site_views extends JModelAdmin
$form->setValue($redirectedField, null, $redirectedValue); $form->setValue($redirectedField, null, $redirectedValue);
} }
} }
// update the addsite_views (sub form) layout
$form->setFieldAttribute('addsite_views', 'layout', ComponentbuilderHelper::getSubformLayout('component_site_views', 'addsite_views'));
return $form; return $form;
} }

View File

@ -506,8 +506,8 @@ class ComponentbuilderModelCustom_admin_view extends JModelAdmin
} }
// Only load the GUID if new item // Only load the GUID if new item (or empty)
if (0 == $id) if (0 == $id || !($val = $form->getValue('guid')))
{ {
$form->setValue('guid', null, ComponentbuilderHelper::GUID()); $form->setValue('guid', null, ComponentbuilderHelper::GUID());
} }
@ -1125,8 +1125,15 @@ class ComponentbuilderModelCustom_admin_view extends JModelAdmin
} }
// Set the GUID if empty or not valid // Set the GUID if empty or not valid
if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "custom_admin_view", $data['id'])) if (empty($data['guid']) && $data['id'] > 0)
{ {
// get the existing one
$data['guid'] = (string) ComponentbuilderHelper::getVar('custom_admin_view', $data['id'], 'id', 'guid');
}
// Set the GUID if empty or not valid
while (!ComponentbuilderHelper::validGUID($data['guid'], "custom_admin_view", $data['id']))
{
// must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID(); $data['guid'] = (string) ComponentbuilderHelper::GUID();
} }

View File

@ -283,7 +283,7 @@ class ComponentbuilderModelCustom_admin_views extends JModelList
public function getExportData($pks, $user = null) public function getExportData($pks, $user = null)
{ {
// setup the query // setup the query
if (ComponentbuilderHelper::checkArray($pks)) if (($pks_size = ComponentbuilderHelper::checkArray($pks)) !== false || 'bulk' === $pks)
{ {
// Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME) // Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME)
$_export = true; $_export = true;
@ -301,7 +301,24 @@ class ComponentbuilderModelCustom_admin_views extends JModelList
// From the componentbuilder_custom_admin_view table // From the componentbuilder_custom_admin_view table
$query->from($db->quoteName('#__componentbuilder_custom_admin_view', 'a')); $query->from($db->quoteName('#__componentbuilder_custom_admin_view', 'a'));
$query->where('a.id IN (' . implode(',',$pks) . ')'); // The bulk export path
if ('bulk' === $pks)
{
$query->where('a.id > 0');
}
// A large array of ID's will not work out well
elseif ($pks_size > 500)
{
// Use lowest ID
$query->where('a.id >= ' . (int) min($pks));
// Use highest ID
$query->where('a.id <= ' . (int) max($pks));
}
// The normal default path
else
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// Implement View Level Access // Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder')) if (!$user->authorise('core.options', 'com_componentbuilder'))
{ {

View File

@ -519,7 +519,7 @@ class ComponentbuilderModelCustom_code extends JModelAdmin
public function validate($form, $data, $group = null) public function validate($form, $data, $group = null)
{ {
// check if the not_required field is set // check if the not_required field is set
if (ComponentbuilderHelper::checkString($data['not_required'])) if (isset($data['not_required']) && ComponentbuilderHelper::checkString($data['not_required']))
{ {
$requiredFields = (array) explode(',',(string) $data['not_required']); $requiredFields = (array) explode(',',(string) $data['not_required']);
$requiredFields = array_unique($requiredFields); $requiredFields = array_unique($requiredFields);

View File

@ -316,7 +316,7 @@ class ComponentbuilderModelCustom_codes extends JModelList
public function getExportData($pks, $user = null) public function getExportData($pks, $user = null)
{ {
// setup the query // setup the query
if (ComponentbuilderHelper::checkArray($pks)) if (($pks_size = ComponentbuilderHelper::checkArray($pks)) !== false || 'bulk' === $pks)
{ {
// Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME) // Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME)
$_export = true; $_export = true;
@ -334,7 +334,24 @@ class ComponentbuilderModelCustom_codes extends JModelList
// From the componentbuilder_custom_code table // From the componentbuilder_custom_code table
$query->from($db->quoteName('#__componentbuilder_custom_code', 'a')); $query->from($db->quoteName('#__componentbuilder_custom_code', 'a'));
$query->where('a.id IN (' . implode(',',$pks) . ')'); // The bulk export path
if ('bulk' === $pks)
{
$query->where('a.id > 0');
}
// A large array of ID's will not work out well
elseif ($pks_size > 500)
{
// Use lowest ID
$query->where('a.id >= ' . (int) min($pks));
// Use highest ID
$query->where('a.id <= ' . (int) max($pks));
}
// The normal default path
else
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// Implement View Level Access // Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder')) if (!$user->authorise('core.options', 'com_componentbuilder'))
{ {

View File

@ -520,12 +520,18 @@ class ComponentbuilderModelDynamic_get extends JModelAdmin
} }
// Only load the GUID if new item // Only load the GUID if new item (or empty)
if (0 == $id) if (0 == $id || !($val = $form->getValue('guid')))
{ {
$form->setValue('guid', null, ComponentbuilderHelper::GUID()); $form->setValue('guid', null, ComponentbuilderHelper::GUID());
} }
// update the join_view_table (sub form) layout
$form->setFieldAttribute('join_view_table', 'layout', ComponentbuilderHelper::getSubformLayout('dynamic_get', 'join_view_table'));
// update the join_db_table (sub form) layout
$form->setFieldAttribute('join_db_table', 'layout', ComponentbuilderHelper::getSubformLayout('dynamic_get', 'join_db_table'));
return $form; return $form;
} }
@ -704,7 +710,7 @@ class ComponentbuilderModelDynamic_get extends JModelAdmin
public function validate($form, $data, $group = null) public function validate($form, $data, $group = null)
{ {
// check if the not_required field is set // check if the not_required field is set
if (ComponentbuilderHelper::checkString($data['not_required'])) if (isset($data['not_required']) && ComponentbuilderHelper::checkString($data['not_required']))
{ {
$requiredFields = (array) explode(',',(string) $data['not_required']); $requiredFields = (array) explode(',',(string) $data['not_required']);
$requiredFields = array_unique($requiredFields); $requiredFields = array_unique($requiredFields);
@ -1148,8 +1154,15 @@ class ComponentbuilderModelDynamic_get extends JModelAdmin
// Set the GUID if empty or not valid // Set the GUID if empty or not valid
if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "dynamic_get", $data['id'])) if (empty($data['guid']) && $data['id'] > 0)
{ {
// get the existing one
$data['guid'] = (string) ComponentbuilderHelper::getVar('dynamic_get', $data['id'], 'id', 'guid');
}
// Set the GUID if empty or not valid
while (!ComponentbuilderHelper::validGUID($data['guid'], "dynamic_get", $data['id']))
{
// must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID(); $data['guid'] = (string) ComponentbuilderHelper::GUID();
} }

View File

@ -266,7 +266,7 @@ class ComponentbuilderModelDynamic_gets extends JModelList
public function getExportData($pks, $user = null) public function getExportData($pks, $user = null)
{ {
// setup the query // setup the query
if (ComponentbuilderHelper::checkArray($pks)) if (($pks_size = ComponentbuilderHelper::checkArray($pks)) !== false || 'bulk' === $pks)
{ {
// Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME) // Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME)
$_export = true; $_export = true;
@ -284,7 +284,24 @@ class ComponentbuilderModelDynamic_gets extends JModelList
// From the componentbuilder_dynamic_get table // From the componentbuilder_dynamic_get table
$query->from($db->quoteName('#__componentbuilder_dynamic_get', 'a')); $query->from($db->quoteName('#__componentbuilder_dynamic_get', 'a'));
$query->where('a.id IN (' . implode(',',$pks) . ')'); // The bulk export path
if ('bulk' === $pks)
{
$query->where('a.id > 0');
}
// A large array of ID's will not work out well
elseif ($pks_size > 500)
{
// Use lowest ID
$query->where('a.id >= ' . (int) min($pks));
// Use highest ID
$query->where('a.id <= ' . (int) max($pks));
}
// The normal default path
else
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// Implement View Level Access // Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder')) if (!$user->authorise('core.options', 'com_componentbuilder'))
{ {

View File

@ -419,8 +419,8 @@ class ComponentbuilderModelField extends JModelAdmin
} }
// Only load the GUID if new item // Only load the GUID if new item (or empty)
if (0 == $id) if (0 == $id || !($val = $form->getValue('guid')))
{ {
$form->setValue('guid', null, ComponentbuilderHelper::GUID()); $form->setValue('guid', null, ComponentbuilderHelper::GUID());
} }
@ -603,7 +603,7 @@ class ComponentbuilderModelField extends JModelAdmin
public function validate($form, $data, $group = null) public function validate($form, $data, $group = null)
{ {
// check if the not_required field is set // check if the not_required field is set
if (ComponentbuilderHelper::checkString($data['not_required'])) if (isset($data['not_required']) && ComponentbuilderHelper::checkString($data['not_required']))
{ {
$requiredFields = (array) explode(',',(string) $data['not_required']); $requiredFields = (array) explode(',',(string) $data['not_required']);
$requiredFields = array_unique($requiredFields); $requiredFields = array_unique($requiredFields);
@ -1144,8 +1144,15 @@ class ComponentbuilderModelField extends JModelAdmin
} }
// Set the GUID if empty or not valid // Set the GUID if empty or not valid
if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "field", $data['id'])) if (empty($data['guid']) && $data['id'] > 0)
{ {
// get the existing one
$data['guid'] = (string) ComponentbuilderHelper::getVar('field', $data['id'], 'id', 'guid');
}
// Set the GUID if empty or not valid
while (!ComponentbuilderHelper::validGUID($data['guid'], "field", $data['id']))
{
// must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID(); $data['guid'] = (string) ComponentbuilderHelper::GUID();
} }

View File

@ -382,7 +382,7 @@ class ComponentbuilderModelFields extends JModelList
public function getExportData($pks, $user = null) public function getExportData($pks, $user = null)
{ {
// setup the query // setup the query
if (ComponentbuilderHelper::checkArray($pks)) if (($pks_size = ComponentbuilderHelper::checkArray($pks)) !== false || 'bulk' === $pks)
{ {
// Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME) // Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME)
$_export = true; $_export = true;
@ -400,7 +400,24 @@ class ComponentbuilderModelFields extends JModelList
// From the componentbuilder_field table // From the componentbuilder_field table
$query->from($db->quoteName('#__componentbuilder_field', 'a')); $query->from($db->quoteName('#__componentbuilder_field', 'a'));
$query->where('a.id IN (' . implode(',',$pks) . ')'); // The bulk export path
if ('bulk' === $pks)
{
$query->where('a.id > 0');
}
// A large array of ID's will not work out well
elseif ($pks_size > 500)
{
// Use lowest ID
$query->where('a.id >= ' . (int) min($pks));
// Use highest ID
$query->where('a.id <= ' . (int) max($pks));
}
// The normal default path
else
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// Implement View Level Access // Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder')) if (!$user->authorise('core.options', 'com_componentbuilder'))
{ {

View File

@ -0,0 +1,99 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <http://www.joomlacomponentbuilder.com>
* @github Joomla Component Builder <https://github.com/vdm-io/Joomla-Component-Builder>
* @copyright Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');
/**
* Adminlistvieworderfields Form Field class for the Componentbuilder component
*/
class JFormFieldAdminlistvieworderfields extends JFormFieldList
{
/**
* The adminlistvieworderfields field type.
*
* @var string
*/
public $type = 'adminlistvieworderfields';
/**
* Method to get a list of options for a list input.
*
* @return array An array of JHtml options.
*/
protected function getOptions()
{
// load the db object
$db = JFactory::getDBO();
// get the input from url
$jinput = JFactory::getApplication()->input;
// get the id
$adminView = $jinput->getInt('id', 0);
// check if we have an admin view
if (is_numeric($adminView) && $adminView >= 1)
{
// get all the fields linked to the admin view
if ($addFields = ComponentbuilderHelper::getVar('admin_fields', (int) $adminView, 'admin_view', 'addfields'))
{
if (ComponentbuilderHelper::checkJson($addFields))
{
$addFields = json_decode($addFields, true);
if (ComponentbuilderHelper::checkArray($addFields))
{
foreach($addFields as $addField)
{
// admin list view and ordering
if (isset($addField['field']) && isset($addField['list']) && ($addField['list'] == 1 || $addField['list'] == 3)
&& isset($addField['sort']) && $addField['sort'])
{
$fieldIds[] = (int) $addField['field'];
}
}
}
}
}
// filter by fields linked
if (ComponentbuilderHelper::checkArray($fieldIds))
{
$query = $db->getQuery(true);
$query->select($db->quoteName(array('a.id','a.name', 'a.xml', 'b.name'),array('id','name', 'xml', 'type')));
$query->from($db->quoteName('#__componentbuilder_field', 'a'));
$query->join('LEFT', '#__componentbuilder_fieldtype AS b ON b.id = a.fieldtype');
$query->where($db->quoteName('a.published') . ' >= 1');
// only load these fields
$query->where($db->quoteName('a.id') . ' IN (' . implode(',', $fieldIds) . ')');
$query->order('a.name ASC');
$db->setQuery((string)$query);
$items = $db->loadObjectList();
$options = array();
if ($items)
{
$options[] = JHtml::_('select.option', '', JText::_('PLG_CONTENT_COMPONENTBUILDERFIELDORDERINGTABS_SELECT_AN_OPTION'));
$options[] = JHtml::_('select.option', -1, JText::_('PLG_CONTENT_COMPONENTBUILDERFIELDORDERINGTABS_ID'). ' [ id - text ]');
$options[] = JHtml::_('select.option', -2, JText::_('PLG_CONTENT_COMPONENTBUILDERFIELDORDERINGTABS_ORDERING'). ' [ ordering - number ]');
$options[] = JHtml::_('select.option', -3, JText::_('PLG_CONTENT_COMPONENTBUILDERFIELDORDERINGTABS_STATUS'). ' [ published - list ]');
foreach($items as $item)
{
// get the field name (TODO this could slow down the system so we will need to improve on this)
$field_name = ComponentbuilderHelper::safeFieldName(ComponentbuilderHelper::getBetween(json_decode($item->xml),'name="','"'));
$options[] = JHtml::_('select.option', $item->id, $item->name . ' [ ' . $field_name . ' - ' . $item->type . ' ]');
}
}
return $options;
}
}
return false;
}
}

View File

@ -0,0 +1,99 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <http://www.joomlacomponentbuilder.com>
* @github Joomla Component Builder <https://github.com/vdm-io/Joomla-Component-Builder>
* @copyright Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');
/**
* Linkedviewsorderfields Form Field class for the Componentbuilder component
*/
class JFormFieldLinkedviewsorderfields extends JFormFieldList
{
/**
* The linkedviewsorderfields field type.
*
* @var string
*/
public $type = 'linkedviewsorderfields';
/**
* Method to get a list of options for a list input.
*
* @return array An array of JHtml options.
*/
protected function getOptions()
{
// load the db object
$db = JFactory::getDBO();
// get the input from url
$jinput = JFactory::getApplication()->input;
// get the id
$adminView = $jinput->getInt('id', 0);
// check if we have an admin view
if (is_numeric($adminView) && $adminView >= 1)
{
// get all the fields linked to the admin view
if ($addFields = ComponentbuilderHelper::getVar('admin_fields', (int) $adminView, 'admin_view', 'addfields'))
{
if (ComponentbuilderHelper::checkJson($addFields))
{
$addFields = json_decode($addFields, true);
if (ComponentbuilderHelper::checkArray($addFields))
{
foreach($addFields as $addField)
{
// linked list views and ordering
if (isset($addField['field']) && isset($addField['list']) && ($addField['list'] == 1 || $addField['list'] == 4)
&& isset($addField['sort']) && $addField['sort'])
{
$fieldIds[] = (int) $addField['field'];
}
}
}
}
}
// filter by fields linked
if (ComponentbuilderHelper::checkArray($fieldIds))
{
$query = $db->getQuery(true);
$query->select($db->quoteName(array('a.id','a.name', 'a.xml', 'b.name'),array('id','name', 'xml', 'type')));
$query->from($db->quoteName('#__componentbuilder_field', 'a'));
$query->join('LEFT', '#__componentbuilder_fieldtype AS b ON b.id = a.fieldtype');
$query->where($db->quoteName('a.published') . ' >= 1');
// only load these fields
$query->where($db->quoteName('a.id') . ' IN (' . implode(',', $fieldIds) . ')');
$query->order('a.name ASC');
$db->setQuery((string)$query);
$items = $db->loadObjectList();
$options = array();
if ($items)
{
$options[] = JHtml::_('select.option', '', JText::_('PLG_CONTENT_COMPONENTBUILDERFIELDORDERINGTABS_SELECT_AN_OPTION'));
$options[] = JHtml::_('select.option', -1, JText::_('PLG_CONTENT_COMPONENTBUILDERFIELDORDERINGTABS_ID'). ' [ id - text ]');
$options[] = JHtml::_('select.option', -2, JText::_('PLG_CONTENT_COMPONENTBUILDERFIELDORDERINGTABS_ORDERING'). ' [ ordering - number ]');
$options[] = JHtml::_('select.option', -3, JText::_('PLG_CONTENT_COMPONENTBUILDERFIELDORDERINGTABS_STATUS'). ' [ published - list ]');
foreach($items as $item)
{
// get the field name (TODO this could slow down the system so we will need to improve on this)
$field_name = ComponentbuilderHelper::safeFieldName(ComponentbuilderHelper::getBetween(json_decode($item->xml),'name="','"'));
$options[] = JHtml::_('select.option', $item->id, $item->name . ' [ ' . $field_name . ' - ' . $item->type . ' ]');
}
}
return $options;
}
}
return false;
}
}

View File

@ -249,7 +249,7 @@ class ComponentbuilderModelFieldtype extends JModelAdmin
* *
* @return mixed An array of data items on success, false on failure. * @return mixed An array of data items on success, false on failure.
*/ */
public function getVyffields() public function getVycfields()
{ {
// Get the user object. // Get the user object.
$user = JFactory::getUser(); $user = JFactory::getUser();
@ -337,13 +337,13 @@ class ComponentbuilderModelFieldtype extends JModelAdmin
foreach ($items as $nr => &$item) foreach ($items as $nr => &$item)
{ {
// convert datatype // convert datatype
$item->datatype = $this->selectionTranslationVyffields($item->datatype, 'datatype'); $item->datatype = $this->selectionTranslationVycfields($item->datatype, 'datatype');
// convert indexes // convert indexes
$item->indexes = $this->selectionTranslationVyffields($item->indexes, 'indexes'); $item->indexes = $this->selectionTranslationVycfields($item->indexes, 'indexes');
// convert null_switch // convert null_switch
$item->null_switch = $this->selectionTranslationVyffields($item->null_switch, 'null_switch'); $item->null_switch = $this->selectionTranslationVycfields($item->null_switch, 'null_switch');
// convert store // convert store
$item->store = $this->selectionTranslationVyffields($item->store, 'store'); $item->store = $this->selectionTranslationVycfields($item->store, 'store');
} }
} }
@ -357,7 +357,7 @@ class ComponentbuilderModelFieldtype extends JModelAdmin
* *
* @return translatable string * @return translatable string
*/ */
public function selectionTranslationVyffields($value,$name) public function selectionTranslationVycfields($value,$name)
{ {
// Array of datatype language strings // Array of datatype language strings
if ($name === 'datatype') if ($name === 'datatype')
@ -544,8 +544,8 @@ class ComponentbuilderModelFieldtype extends JModelAdmin
} }
} }
// Only load the GUID if new item // Only load the GUID if new item (or empty)
if (0 == $id) if (0 == $id || !($val = $form->getValue('guid')))
{ {
$form->setValue('guid', null, ComponentbuilderHelper::GUID()); $form->setValue('guid', null, ComponentbuilderHelper::GUID());
} }
@ -728,7 +728,7 @@ class ComponentbuilderModelFieldtype extends JModelAdmin
public function validate($form, $data, $group = null) public function validate($form, $data, $group = null)
{ {
// check if the not_required field is set // check if the not_required field is set
if (ComponentbuilderHelper::checkString($data['not_required'])) if (isset($data['not_required']) && ComponentbuilderHelper::checkString($data['not_required']))
{ {
$requiredFields = (array) explode(',',(string) $data['not_required']); $requiredFields = (array) explode(',',(string) $data['not_required']);
$requiredFields = array_unique($requiredFields); $requiredFields = array_unique($requiredFields);
@ -1197,8 +1197,15 @@ class ComponentbuilderModelFieldtype extends JModelAdmin
// Set the GUID if empty or not valid // Set the GUID if empty or not valid
if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "fieldtype", $data['id'])) if (empty($data['guid']) && $data['id'] > 0)
{ {
// get the existing one
$data['guid'] = (string) ComponentbuilderHelper::getVar('fieldtype', $data['id'], 'id', 'guid');
}
// Set the GUID if empty or not valid
while (!ComponentbuilderHelper::validGUID($data['guid'], "fieldtype", $data['id']))
{
// must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID(); $data['guid'] = (string) ComponentbuilderHelper::GUID();
} }

View File

@ -235,7 +235,7 @@ class ComponentbuilderModelFieldtypes extends JModelList
public function getExportData($pks, $user = null) public function getExportData($pks, $user = null)
{ {
// setup the query // setup the query
if (ComponentbuilderHelper::checkArray($pks)) if (($pks_size = ComponentbuilderHelper::checkArray($pks)) !== false || 'bulk' === $pks)
{ {
// Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME) // Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME)
$_export = true; $_export = true;
@ -253,7 +253,24 @@ class ComponentbuilderModelFieldtypes extends JModelList
// From the componentbuilder_fieldtype table // From the componentbuilder_fieldtype table
$query->from($db->quoteName('#__componentbuilder_fieldtype', 'a')); $query->from($db->quoteName('#__componentbuilder_fieldtype', 'a'));
$query->where('a.id IN (' . implode(',',$pks) . ')'); // The bulk export path
if ('bulk' === $pks)
{
$query->where('a.id > 0');
}
// A large array of ID's will not work out well
elseif ($pks_size > 500)
{
// Use lowest ID
$query->where('a.id >= ' . (int) min($pks));
// Use highest ID
$query->where('a.id <= ' . (int) max($pks));
}
// The normal default path
else
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// Implement View Level Access // Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder')) if (!$user->authorise('core.options', 'com_componentbuilder'))
{ {

View File

@ -103,7 +103,7 @@
type="subform" type="subform"
name="tabs" name="tabs"
label="COM_COMPONENTBUILDER_ADMIN_CUSTOM_TABS_TABS_LABEL" label="COM_COMPONENTBUILDER_ADMIN_CUSTOM_TABS_TABS_LABEL"
layout="joomla.form.field.subform.repeatable-table" layout="joomla.form.field.subform.repeatable"
multiple="true" multiple="true"
buttons="add,remove,move" buttons="add,remove,move"
description="COM_COMPONENTBUILDER_ADMIN_CUSTOM_TABS_TABS_DESCRIPTION" description="COM_COMPONENTBUILDER_ADMIN_CUSTOM_TABS_TABS_DESCRIPTION"

View File

@ -103,7 +103,7 @@
type="subform" type="subform"
name="addfields" name="addfields"
label="COM_COMPONENTBUILDER_ADMIN_FIELDS_ADDFIELDS_LABEL" label="COM_COMPONENTBUILDER_ADMIN_FIELDS_ADDFIELDS_LABEL"
layout="joomla.form.field.subform.repeatable-table" layout="repeatablejcb"
multiple="true" multiple="true"
description="COM_COMPONENTBUILDER_ADMIN_FIELDS_ADDFIELDS_DESCRIPTION" description="COM_COMPONENTBUILDER_ADMIN_FIELDS_ADDFIELDS_DESCRIPTION"
default="" default=""

View File

@ -103,7 +103,7 @@
type="subform" type="subform"
name="addconditions" name="addconditions"
label="COM_COMPONENTBUILDER_ADMIN_FIELDS_CONDITIONS_ADDCONDITIONS_LABEL" label="COM_COMPONENTBUILDER_ADMIN_FIELDS_CONDITIONS_ADDCONDITIONS_LABEL"
layout="joomla.form.field.subform.repeatable" layout="repeatablejcb"
multiple="true" multiple="true"
description="COM_COMPONENTBUILDER_ADMIN_FIELDS_CONDITIONS_ADDCONDITIONS_DESCRIPTION" description="COM_COMPONENTBUILDER_ADMIN_FIELDS_CONDITIONS_ADDCONDITIONS_DESCRIPTION"
default="" default=""

View File

@ -103,7 +103,7 @@
type="subform" type="subform"
name="addrelations" name="addrelations"
label="COM_COMPONENTBUILDER_ADMIN_FIELDS_RELATIONS_ADDRELATIONS_LABEL" label="COM_COMPONENTBUILDER_ADMIN_FIELDS_RELATIONS_ADDRELATIONS_LABEL"
layout="joomla.form.field.subform.repeatable" layout="repeatablejcb"
multiple="true" multiple="true"
description="COM_COMPONENTBUILDER_ADMIN_FIELDS_RELATIONS_ADDRELATIONS_DESCRIPTION" description="COM_COMPONENTBUILDER_ADMIN_FIELDS_RELATIONS_ADDRELATIONS_DESCRIPTION"
default="" default=""

View File

@ -103,7 +103,7 @@
type="subform" type="subform"
name="addadmin_views" name="addadmin_views"
label="COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ADDADMIN_VIEWS_LABEL" label="COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ADDADMIN_VIEWS_LABEL"
layout="joomla.form.field.subform.repeatable-table" layout="repeatablejcb"
multiple="true" multiple="true"
description="COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ADDADMIN_VIEWS_DESCRIPTION" description="COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ADDADMIN_VIEWS_DESCRIPTION"
default="[{&quot;submenu&quot;:&quot;1&quot;,&quot;checkin&quot;:&quot;1&quot;,&quot;history&quot;:&quot;1&quot;,&quot;access&quot;:&quot;1&quot;,&quot;port&quot;:&quot;1&quot;}]" default="[{&quot;submenu&quot;:&quot;1&quot;,&quot;checkin&quot;:&quot;1&quot;,&quot;history&quot;:&quot;1&quot;,&quot;access&quot;:&quot;1&quot;,&quot;port&quot;:&quot;1&quot;}]"

View File

@ -103,7 +103,7 @@
type="subform" type="subform"
name="addcustom_admin_views" name="addcustom_admin_views"
label="COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ADDCUSTOM_ADMIN_VIEWS_LABEL" label="COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ADDCUSTOM_ADMIN_VIEWS_LABEL"
layout="joomla.form.field.subform.repeatable-table" layout="repeatablejcb"
multiple="true" multiple="true"
default="" default=""
icon="list"> icon="list">

View File

@ -103,7 +103,7 @@
type="subform" type="subform"
name="addsite_views" name="addsite_views"
label="COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_ADDSITE_VIEWS_LABEL" label="COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_ADDSITE_VIEWS_LABEL"
layout="joomla.form.field.subform.repeatable-table" layout="repeatablejcb"
multiple="true" multiple="true"
description="COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_ADDSITE_VIEWS_DESCRIPTION" description="COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_ADDSITE_VIEWS_DESCRIPTION"
default="" default=""

View File

@ -90,7 +90,6 @@
type="component" type="component"
name="component" name="component"
label="COM_COMPONENTBUILDER_CUSTOM_CODE_COMPONENT_LABEL" label="COM_COMPONENTBUILDER_CUSTOM_CODE_COMPONENT_LABEL"
description="JFIELD_TITLE_DESC"
class="list_class" class="list_class"
multiple="false" multiple="false"
default="0" default="0"

View File

@ -227,7 +227,7 @@
type="subform" type="subform"
name="join_db_table" name="join_db_table"
label="COM_COMPONENTBUILDER_DYNAMIC_GET_JOIN_DB_TABLE_LABEL" label="COM_COMPONENTBUILDER_DYNAMIC_GET_JOIN_DB_TABLE_LABEL"
layout="joomla.form.field.subform.repeatable-table" layout="repeatablejcb"
multiple="true" multiple="true"
description="COM_COMPONENTBUILDER_DYNAMIC_GET_JOIN_DB_TABLE_DESCRIPTION" description="COM_COMPONENTBUILDER_DYNAMIC_GET_JOIN_DB_TABLE_DESCRIPTION"
icon="list"> icon="list">
@ -810,6 +810,16 @@
message="COM_COMPONENTBUILDER_DYNAMIC_GET_TABLE_KEY_MESSAGE" message="COM_COMPONENTBUILDER_DYNAMIC_GET_TABLE_KEY_MESSAGE"
hint="COM_COMPONENTBUILDER_DYNAMIC_GET_TABLE_KEY_HINT" hint="COM_COMPONENTBUILDER_DYNAMIC_GET_TABLE_KEY_HINT"
/> />
<!-- Empty Field. Type: Checkbox. (joomla) -->
<field
type="checkbox"
name="empty"
label="COM_COMPONENTBUILDER_DYNAMIC_GET_EMPTY_LABEL"
value="1"
default="0"
description="COM_COMPONENTBUILDER_DYNAMIC_GET_EMPTY_DESCRIPTION"
class="inputbox"
/>
</form> </form>
</field> </field>
<!-- Add_php_after_getitems Field. Type: Radio. (joomla) --> <!-- Add_php_after_getitems Field. Type: Radio. (joomla) -->
@ -1202,7 +1212,7 @@
type="subform" type="subform"
name="join_view_table" name="join_view_table"
label="COM_COMPONENTBUILDER_DYNAMIC_GET_JOIN_VIEW_TABLE_LABEL" label="COM_COMPONENTBUILDER_DYNAMIC_GET_JOIN_VIEW_TABLE_LABEL"
layout="joomla.form.field.subform.repeatable-table" layout="repeatablejcb"
multiple="true" multiple="true"
description="COM_COMPONENTBUILDER_DYNAMIC_GET_JOIN_VIEW_TABLE_DESCRIPTION" description="COM_COMPONENTBUILDER_DYNAMIC_GET_JOIN_VIEW_TABLE_DESCRIPTION"
icon="list"> icon="list">

View File

@ -13,11 +13,8 @@ jform_vvvvwczvxo_required = false;
jform_vvvvwdavxp_required = false; jform_vvvvwdavxp_required = false;
jform_vvvvwdbvxq_required = false; jform_vvvvwdbvxq_required = false;
jform_vvvvwdcvxr_required = false; jform_vvvvwdcvxr_required = false;
jform_vvvvwddvxs_required = false; jform_vvvvwdfvxs_required = false;
jform_vvvvwdgvxt_required = false; jform_vvvvwdfvxt_required = false;
jform_vvvvwdgvxu_required = false;
jform_vvvvwdhvxv_required = false;
jform_vvvvwdhvxw_required = false;
// Initial Script // Initial Script
jQuery(document).ready(function() jQuery(document).ready(function()
@ -34,32 +31,24 @@ jQuery(document).ready(function()
var datatype_vvvvwdc = jQuery("#jform_datatype").val(); var datatype_vvvvwdc = jQuery("#jform_datatype").val();
vvvvwdc(datatype_vvvvwdc); vvvvwdc(datatype_vvvvwdc);
var store_vvvvwdd = jQuery("#jform_store").val();
var datatype_vvvvwdd = jQuery("#jform_datatype").val(); var datatype_vvvvwdd = jQuery("#jform_datatype").val();
vvvvwdd(datatype_vvvvwdd); vvvvwdd(store_vvvvwdd,datatype_vvvvwdd);
var store_vvvvwde = jQuery("#jform_store").val(); var store_vvvvwdf = jQuery("#jform_store").val();
var datatype_vvvvwde = jQuery("#jform_datatype").val(); vvvvwdf(store_vvvvwdf);
vvvvwde(store_vvvvwde,datatype_vvvvwde);
var store_vvvvwdg = jQuery("#jform_store").val(); var add_css_view_vvvvwdg = jQuery("#jform_add_css_view input[type='radio']:checked").val();
var datatype_vvvvwdg = jQuery("#jform_datatype").val(); vvvvwdg(add_css_view_vvvvwdg);
vvvvwdg(store_vvvvwdg,datatype_vvvvwdg);
var datatype_vvvvwdh = jQuery("#jform_datatype").val(); var add_css_views_vvvvwdh = jQuery("#jform_add_css_views input[type='radio']:checked").val();
var store_vvvvwdh = jQuery("#jform_store").val(); vvvvwdh(add_css_views_vvvvwdh);
vvvvwdh(datatype_vvvvwdh,store_vvvvwdh);
var add_css_view_vvvvwdi = jQuery("#jform_add_css_view input[type='radio']:checked").val(); var add_javascript_view_footer_vvvvwdi = jQuery("#jform_add_javascript_view_footer input[type='radio']:checked").val();
vvvvwdi(add_css_view_vvvvwdi); vvvvwdi(add_javascript_view_footer_vvvvwdi);
var add_css_views_vvvvwdj = jQuery("#jform_add_css_views input[type='radio']:checked").val(); var add_javascript_views_footer_vvvvwdj = jQuery("#jform_add_javascript_views_footer input[type='radio']:checked").val();
vvvvwdj(add_css_views_vvvvwdj); vvvvwdj(add_javascript_views_footer_vvvvwdj);
var add_javascript_view_footer_vvvvwdk = jQuery("#jform_add_javascript_view_footer input[type='radio']:checked").val();
vvvvwdk(add_javascript_view_footer_vvvvwdk);
var add_javascript_views_footer_vvvvwdl = jQuery("#jform_add_javascript_views_footer input[type='radio']:checked").val();
vvvvwdl(add_javascript_views_footer_vvvvwdl);
}); });
// the vvvvwcz function // the vvvvwcz function
@ -289,8 +278,20 @@ function datatype_vvvvwdc_SomeFunc(datatype_vvvvwdc)
} }
// the vvvvwdd function // the vvvvwdd function
function vvvvwdd(datatype_vvvvwdd) function vvvvwdd(store_vvvvwdd,datatype_vvvvwdd)
{ {
if (isSet(store_vvvvwdd) && store_vvvvwdd.constructor !== Array)
{
var temp_vvvvwdd = store_vvvvwdd;
var store_vvvvwdd = [];
store_vvvvwdd.push(temp_vvvvwdd);
}
else if (!isSet(store_vvvvwdd))
{
var store_vvvvwdd = [];
}
var store = store_vvvvwdd.some(store_vvvvwdd_SomeFunc);
if (isSet(datatype_vvvvwdd) && datatype_vvvvwdd.constructor !== Array) if (isSet(datatype_vvvvwdd) && datatype_vvvvwdd.constructor !== Array)
{ {
var temp_vvvvwdd = datatype_vvvvwdd; var temp_vvvvwdd = datatype_vvvvwdd;
@ -305,34 +306,27 @@ function vvvvwdd(datatype_vvvvwdd)
// set this function logic // set this function logic
if (datatype) if (store && datatype)
{ {
jQuery('#jform_store').closest('.control-group').show(); jQuery('.note_whmcs_encryption').closest('.control-group').show();
// add required attribute to store field
if (jform_vvvvwddvxs_required)
{
updateFieldRequired('store',0);
jQuery('#jform_store').prop('required','required');
jQuery('#jform_store').attr('aria-required',true);
jQuery('#jform_store').addClass('required');
jform_vvvvwddvxs_required = false;
}
} }
else else
{ {
jQuery('#jform_store').closest('.control-group').hide(); jQuery('.note_whmcs_encryption').closest('.control-group').hide();
// remove required attribute from store field
if (!jform_vvvvwddvxs_required)
{
updateFieldRequired('store',1);
jQuery('#jform_store').removeAttr('required');
jQuery('#jform_store').removeAttr('aria-required');
jQuery('#jform_store').removeClass('required');
jform_vvvvwddvxs_required = true;
}
} }
} }
// the vvvvwdd Some function
function store_vvvvwdd_SomeFunc(store_vvvvwdd)
{
// set the function logic
if (store_vvvvwdd == 4)
{
return true;
}
return false;
}
// the vvvvwdd Some function // the vvvvwdd Some function
function datatype_vvvvwdd_SomeFunc(datatype_vvvvwdd) function datatype_vvvvwdd_SomeFunc(datatype_vvvvwdd)
{ {
@ -344,61 +338,82 @@ function datatype_vvvvwdd_SomeFunc(datatype_vvvvwdd)
return false; return false;
} }
// the vvvvwde function // the vvvvwdf function
function vvvvwde(store_vvvvwde,datatype_vvvvwde) function vvvvwdf(store_vvvvwdf)
{ {
if (isSet(store_vvvvwde) && store_vvvvwde.constructor !== Array) if (isSet(store_vvvvwdf) && store_vvvvwdf.constructor !== Array)
{ {
var temp_vvvvwde = store_vvvvwde; var temp_vvvvwdf = store_vvvvwdf;
var store_vvvvwde = []; var store_vvvvwdf = [];
store_vvvvwde.push(temp_vvvvwde); store_vvvvwdf.push(temp_vvvvwdf);
} }
else if (!isSet(store_vvvvwde)) else if (!isSet(store_vvvvwdf))
{ {
var store_vvvvwde = []; var store_vvvvwdf = [];
} }
var store = store_vvvvwde.some(store_vvvvwde_SomeFunc); var store = store_vvvvwdf.some(store_vvvvwdf_SomeFunc);
if (isSet(datatype_vvvvwde) && datatype_vvvvwde.constructor !== Array)
{
var temp_vvvvwde = datatype_vvvvwde;
var datatype_vvvvwde = [];
datatype_vvvvwde.push(temp_vvvvwde);
}
else if (!isSet(datatype_vvvvwde))
{
var datatype_vvvvwde = [];
}
var datatype = datatype_vvvvwde.some(datatype_vvvvwde_SomeFunc);
// set this function logic // set this function logic
if (store && datatype) if (store)
{ {
jQuery('.note_whmcs_encryption').closest('.control-group').show(); jQuery('#jform_initiator_on_get_model').closest('.control-group').show();
jQuery('#jform_initiator_on_save_model').closest('.control-group').show();
jQuery('.note_expert_field_save_mode').closest('.control-group').show();
jQuery('#jform_on_get_model_field').closest('.control-group').show();
// add required attribute to on_get_model_field field
if (jform_vvvvwdfvxs_required)
{
updateFieldRequired('on_get_model_field',0);
jQuery('#jform_on_get_model_field').prop('required','required');
jQuery('#jform_on_get_model_field').attr('aria-required',true);
jQuery('#jform_on_get_model_field').addClass('required');
jform_vvvvwdfvxs_required = false;
}
jQuery('#jform_on_save_model_field').closest('.control-group').show();
// add required attribute to on_save_model_field field
if (jform_vvvvwdfvxt_required)
{
updateFieldRequired('on_save_model_field',0);
jQuery('#jform_on_save_model_field').prop('required','required');
jQuery('#jform_on_save_model_field').attr('aria-required',true);
jQuery('#jform_on_save_model_field').addClass('required');
jform_vvvvwdfvxt_required = false;
}
} }
else else
{ {
jQuery('.note_whmcs_encryption').closest('.control-group').hide(); jQuery('#jform_initiator_on_get_model').closest('.control-group').hide();
jQuery('#jform_initiator_on_save_model').closest('.control-group').hide();
jQuery('.note_expert_field_save_mode').closest('.control-group').hide();
jQuery('#jform_on_get_model_field').closest('.control-group').hide();
// remove required attribute from on_get_model_field field
if (!jform_vvvvwdfvxs_required)
{
updateFieldRequired('on_get_model_field',1);
jQuery('#jform_on_get_model_field').removeAttr('required');
jQuery('#jform_on_get_model_field').removeAttr('aria-required');
jQuery('#jform_on_get_model_field').removeClass('required');
jform_vvvvwdfvxs_required = true;
}
jQuery('#jform_on_save_model_field').closest('.control-group').hide();
// remove required attribute from on_save_model_field field
if (!jform_vvvvwdfvxt_required)
{
updateFieldRequired('on_save_model_field',1);
jQuery('#jform_on_save_model_field').removeAttr('required');
jQuery('#jform_on_save_model_field').removeAttr('aria-required');
jQuery('#jform_on_save_model_field').removeClass('required');
jform_vvvvwdfvxt_required = true;
}
} }
} }
// the vvvvwde Some function // the vvvvwdf Some function
function store_vvvvwde_SomeFunc(store_vvvvwde) function store_vvvvwdf_SomeFunc(store_vvvvwdf)
{ {
// set the function logic // set the function logic
if (store_vvvvwde == 4) if (store_vvvvwdf == 6)
{
return true;
}
return false;
}
// the vvvvwde Some function
function datatype_vvvvwde_SomeFunc(datatype_vvvvwde)
{
// set the function logic
if (datatype_vvvvwde == 'CHAR' || datatype_vvvvwde == 'VARCHAR' || datatype_vvvvwde == 'TEXT' || datatype_vvvvwde == 'MEDIUMTEXT' || datatype_vvvvwde == 'LONGTEXT' || datatype_vvvvwde == 'BLOB' || datatype_vvvvwde == 'TINYBLOB' || datatype_vvvvwde == 'MEDIUMBLOB' || datatype_vvvvwde == 'LONGBLOB')
{ {
return true; return true;
} }
@ -406,220 +421,10 @@ function datatype_vvvvwde_SomeFunc(datatype_vvvvwde)
} }
// the vvvvwdg function // the vvvvwdg function
function vvvvwdg(store_vvvvwdg,datatype_vvvvwdg) function vvvvwdg(add_css_view_vvvvwdg)
{
if (isSet(store_vvvvwdg) && store_vvvvwdg.constructor !== Array)
{
var temp_vvvvwdg = store_vvvvwdg;
var store_vvvvwdg = [];
store_vvvvwdg.push(temp_vvvvwdg);
}
else if (!isSet(store_vvvvwdg))
{
var store_vvvvwdg = [];
}
var store = store_vvvvwdg.some(store_vvvvwdg_SomeFunc);
if (isSet(datatype_vvvvwdg) && datatype_vvvvwdg.constructor !== Array)
{
var temp_vvvvwdg = datatype_vvvvwdg;
var datatype_vvvvwdg = [];
datatype_vvvvwdg.push(temp_vvvvwdg);
}
else if (!isSet(datatype_vvvvwdg))
{
var datatype_vvvvwdg = [];
}
var datatype = datatype_vvvvwdg.some(datatype_vvvvwdg_SomeFunc);
// set this function logic
if (store && datatype)
{
jQuery('#jform_initiator_on_get_model').closest('.control-group').show();
jQuery('#jform_initiator_on_save_model').closest('.control-group').show();
jQuery('#jform_on_save_model_field').closest('.control-group').show();
// add required attribute to on_save_model_field field
if (jform_vvvvwdgvxt_required)
{
updateFieldRequired('on_save_model_field',0);
jQuery('#jform_on_save_model_field').prop('required','required');
jQuery('#jform_on_save_model_field').attr('aria-required',true);
jQuery('#jform_on_save_model_field').addClass('required');
jform_vvvvwdgvxt_required = false;
}
jQuery('.note_expert_field_save_mode').closest('.control-group').show();
jQuery('#jform_on_get_model_field').closest('.control-group').show();
// add required attribute to on_get_model_field field
if (jform_vvvvwdgvxu_required)
{
updateFieldRequired('on_get_model_field',0);
jQuery('#jform_on_get_model_field').prop('required','required');
jQuery('#jform_on_get_model_field').attr('aria-required',true);
jQuery('#jform_on_get_model_field').addClass('required');
jform_vvvvwdgvxu_required = false;
}
}
else
{
jQuery('#jform_initiator_on_get_model').closest('.control-group').hide();
jQuery('#jform_initiator_on_save_model').closest('.control-group').hide();
jQuery('#jform_on_save_model_field').closest('.control-group').hide();
// remove required attribute from on_save_model_field field
if (!jform_vvvvwdgvxt_required)
{
updateFieldRequired('on_save_model_field',1);
jQuery('#jform_on_save_model_field').removeAttr('required');
jQuery('#jform_on_save_model_field').removeAttr('aria-required');
jQuery('#jform_on_save_model_field').removeClass('required');
jform_vvvvwdgvxt_required = true;
}
jQuery('.note_expert_field_save_mode').closest('.control-group').hide();
jQuery('#jform_on_get_model_field').closest('.control-group').hide();
// remove required attribute from on_get_model_field field
if (!jform_vvvvwdgvxu_required)
{
updateFieldRequired('on_get_model_field',1);
jQuery('#jform_on_get_model_field').removeAttr('required');
jQuery('#jform_on_get_model_field').removeAttr('aria-required');
jQuery('#jform_on_get_model_field').removeClass('required');
jform_vvvvwdgvxu_required = true;
}
}
}
// the vvvvwdg Some function
function store_vvvvwdg_SomeFunc(store_vvvvwdg)
{ {
// set the function logic // set the function logic
if (store_vvvvwdg == 6) if (add_css_view_vvvvwdg == 1)
{
return true;
}
return false;
}
// the vvvvwdg Some function
function datatype_vvvvwdg_SomeFunc(datatype_vvvvwdg)
{
// set the function logic
if (datatype_vvvvwdg == 'CHAR' || datatype_vvvvwdg == 'VARCHAR' || datatype_vvvvwdg == 'TEXT' || datatype_vvvvwdg == 'MEDIUMTEXT' || datatype_vvvvwdg == 'LONGTEXT' || datatype_vvvvwdg == 'BLOB' || datatype_vvvvwdg == 'TINYBLOB' || datatype_vvvvwdg == 'MEDIUMBLOB' || datatype_vvvvwdg == 'LONGBLOB')
{
return true;
}
return false;
}
// the vvvvwdh function
function vvvvwdh(datatype_vvvvwdh,store_vvvvwdh)
{
if (isSet(datatype_vvvvwdh) && datatype_vvvvwdh.constructor !== Array)
{
var temp_vvvvwdh = datatype_vvvvwdh;
var datatype_vvvvwdh = [];
datatype_vvvvwdh.push(temp_vvvvwdh);
}
else if (!isSet(datatype_vvvvwdh))
{
var datatype_vvvvwdh = [];
}
var datatype = datatype_vvvvwdh.some(datatype_vvvvwdh_SomeFunc);
if (isSet(store_vvvvwdh) && store_vvvvwdh.constructor !== Array)
{
var temp_vvvvwdh = store_vvvvwdh;
var store_vvvvwdh = [];
store_vvvvwdh.push(temp_vvvvwdh);
}
else if (!isSet(store_vvvvwdh))
{
var store_vvvvwdh = [];
}
var store = store_vvvvwdh.some(store_vvvvwdh_SomeFunc);
// set this function logic
if (datatype && store)
{
jQuery('#jform_initiator_on_get_model').closest('.control-group').show();
jQuery('#jform_initiator_on_save_model').closest('.control-group').show();
jQuery('#jform_on_save_model_field').closest('.control-group').show();
// add required attribute to on_save_model_field field
if (jform_vvvvwdhvxv_required)
{
updateFieldRequired('on_save_model_field',0);
jQuery('#jform_on_save_model_field').prop('required','required');
jQuery('#jform_on_save_model_field').attr('aria-required',true);
jQuery('#jform_on_save_model_field').addClass('required');
jform_vvvvwdhvxv_required = false;
}
jQuery('.note_expert_field_save_mode').closest('.control-group').show();
jQuery('#jform_on_get_model_field').closest('.control-group').show();
// add required attribute to on_get_model_field field
if (jform_vvvvwdhvxw_required)
{
updateFieldRequired('on_get_model_field',0);
jQuery('#jform_on_get_model_field').prop('required','required');
jQuery('#jform_on_get_model_field').attr('aria-required',true);
jQuery('#jform_on_get_model_field').addClass('required');
jform_vvvvwdhvxw_required = false;
}
}
else
{
jQuery('#jform_initiator_on_get_model').closest('.control-group').hide();
jQuery('#jform_initiator_on_save_model').closest('.control-group').hide();
jQuery('#jform_on_save_model_field').closest('.control-group').hide();
// remove required attribute from on_save_model_field field
if (!jform_vvvvwdhvxv_required)
{
updateFieldRequired('on_save_model_field',1);
jQuery('#jform_on_save_model_field').removeAttr('required');
jQuery('#jform_on_save_model_field').removeAttr('aria-required');
jQuery('#jform_on_save_model_field').removeClass('required');
jform_vvvvwdhvxv_required = true;
}
jQuery('.note_expert_field_save_mode').closest('.control-group').hide();
jQuery('#jform_on_get_model_field').closest('.control-group').hide();
// remove required attribute from on_get_model_field field
if (!jform_vvvvwdhvxw_required)
{
updateFieldRequired('on_get_model_field',1);
jQuery('#jform_on_get_model_field').removeAttr('required');
jQuery('#jform_on_get_model_field').removeAttr('aria-required');
jQuery('#jform_on_get_model_field').removeClass('required');
jform_vvvvwdhvxw_required = true;
}
}
}
// the vvvvwdh Some function
function datatype_vvvvwdh_SomeFunc(datatype_vvvvwdh)
{
// set the function logic
if (datatype_vvvvwdh == 'CHAR' || datatype_vvvvwdh == 'VARCHAR' || datatype_vvvvwdh == 'TEXT' || datatype_vvvvwdh == 'MEDIUMTEXT' || datatype_vvvvwdh == 'LONGTEXT' || datatype_vvvvwdh == 'BLOB' || datatype_vvvvwdh == 'TINYBLOB' || datatype_vvvvwdh == 'MEDIUMBLOB' || datatype_vvvvwdh == 'LONGBLOB')
{
return true;
}
return false;
}
// the vvvvwdh Some function
function store_vvvvwdh_SomeFunc(store_vvvvwdh)
{
// set the function logic
if (store_vvvvwdh == 6)
{
return true;
}
return false;
}
// the vvvvwdi function
function vvvvwdi(add_css_view_vvvvwdi)
{
// set the function logic
if (add_css_view_vvvvwdi == 1)
{ {
jQuery('#jform_css_view-lbl').closest('.control-group').show(); jQuery('#jform_css_view-lbl').closest('.control-group').show();
} }
@ -629,11 +434,11 @@ function vvvvwdi(add_css_view_vvvvwdi)
} }
} }
// the vvvvwdj function // the vvvvwdh function
function vvvvwdj(add_css_views_vvvvwdj) function vvvvwdh(add_css_views_vvvvwdh)
{ {
// set the function logic // set the function logic
if (add_css_views_vvvvwdj == 1) if (add_css_views_vvvvwdh == 1)
{ {
jQuery('#jform_css_views-lbl').closest('.control-group').show(); jQuery('#jform_css_views-lbl').closest('.control-group').show();
} }
@ -643,11 +448,11 @@ function vvvvwdj(add_css_views_vvvvwdj)
} }
} }
// the vvvvwdk function // the vvvvwdi function
function vvvvwdk(add_javascript_view_footer_vvvvwdk) function vvvvwdi(add_javascript_view_footer_vvvvwdi)
{ {
// set the function logic // set the function logic
if (add_javascript_view_footer_vvvvwdk == 1) if (add_javascript_view_footer_vvvvwdi == 1)
{ {
jQuery('#jform_javascript_view_footer-lbl').closest('.control-group').show(); jQuery('#jform_javascript_view_footer-lbl').closest('.control-group').show();
} }
@ -657,11 +462,11 @@ function vvvvwdk(add_javascript_view_footer_vvvvwdk)
} }
} }
// the vvvvwdl function // the vvvvwdj function
function vvvvwdl(add_javascript_views_footer_vvvvwdl) function vvvvwdj(add_javascript_views_footer_vvvvwdj)
{ {
// set the function logic // set the function logic
if (add_javascript_views_footer_vvvvwdl == 1) if (add_javascript_views_footer_vvvvwdj == 1)
{ {
jQuery('#jform_javascript_views_footer-lbl').closest('.control-group').show(); jQuery('#jform_javascript_views_footer-lbl').closest('.control-group').show();
} }

View File

@ -227,8 +227,7 @@
type="category" type="category"
name="catid" name="catid"
label="COM_COMPONENTBUILDER_FIELD_CATID_LABEL" label="COM_COMPONENTBUILDER_FIELD_CATID_LABEL"
extension="com_componentbuilder.fields" extension="com_componentbuilder.field"
default=""
description="COM_COMPONENTBUILDER_FIELD_CATID_DESCRIPTION" description="COM_COMPONENTBUILDER_FIELD_CATID_DESCRIPTION"
class="inputbox" class="inputbox"
/> />

File diff suppressed because it is too large Load Diff

View File

@ -449,7 +449,7 @@
type="category" type="category"
name="catid" name="catid"
label="COM_COMPONENTBUILDER_FIELDTYPE_CATID_LABEL" label="COM_COMPONENTBUILDER_FIELDTYPE_CATID_LABEL"
extension="com_componentbuilder.fieldtypes" extension="com_componentbuilder.fieldtype"
default="" default=""
description="COM_COMPONENTBUILDER_FIELDTYPE_CATID_DESCRIPTION" description="COM_COMPONENTBUILDER_FIELDTYPE_CATID_DESCRIPTION"
class="inputbox" class="inputbox"

View File

@ -9,98 +9,210 @@
*/ */
// Some Global Values // Some Global Values
jform_vvvvwekvyq_required = false; jform_vvvvweivyn_required = false;
jform_vvvvwelvyr_required = false; jform_vvvvwejvyo_required = false;
jform_vvvvwemvys_required = false; jform_vvvvwekvyp_required = false;
jform_vvvvwenvyt_required = false; jform_vvvvwelvyq_required = false;
jform_vvvvwepvyu_required = false; jform_vvvvwenvyr_required = false;
// Initial Script // Initial Script
jQuery(document).ready(function() jQuery(document).ready(function()
{ {
var location_vvvvwek = jQuery("#jform_location input[type='radio']:checked").val(); var location_vvvvwei = jQuery("#jform_location input[type='radio']:checked").val();
vvvvwek(location_vvvvwek); vvvvwei(location_vvvvwei);
var location_vvvvwel = jQuery("#jform_location input[type='radio']:checked").val(); var location_vvvvwej = jQuery("#jform_location input[type='radio']:checked").val();
vvvvwel(location_vvvvwel); vvvvwej(location_vvvvwej);
var type_vvvvwek = jQuery("#jform_type").val();
vvvvwek(type_vvvvwek);
var type_vvvvwel = jQuery("#jform_type").val();
vvvvwel(type_vvvvwel);
var type_vvvvwem = jQuery("#jform_type").val(); var type_vvvvwem = jQuery("#jform_type").val();
vvvvwem(type_vvvvwem); vvvvwem(type_vvvvwem);
var type_vvvvwen = jQuery("#jform_type").val(); var target_vvvvwen = jQuery("#jform_target input[type='radio']:checked").val();
vvvvwen(type_vvvvwen); vvvvwen(target_vvvvwen);
var type_vvvvweo = jQuery("#jform_type").val();
vvvvweo(type_vvvvweo);
var target_vvvvwep = jQuery("#jform_target input[type='radio']:checked").val();
vvvvwep(target_vvvvwep);
}); });
// the vvvvwek function // the vvvvwei function
function vvvvwek(location_vvvvwek) function vvvvwei(location_vvvvwei)
{ {
// set the function logic // set the function logic
if (location_vvvvwek == 1) if (location_vvvvwei == 1)
{ {
jQuery('#jform_admin_view').closest('.control-group').show(); jQuery('#jform_admin_view').closest('.control-group').show();
// add required attribute to admin_view field // add required attribute to admin_view field
if (jform_vvvvwekvyq_required) if (jform_vvvvweivyn_required)
{ {
updateFieldRequired('admin_view',0); updateFieldRequired('admin_view',0);
jQuery('#jform_admin_view').prop('required','required'); jQuery('#jform_admin_view').prop('required','required');
jQuery('#jform_admin_view').attr('aria-required',true); jQuery('#jform_admin_view').attr('aria-required',true);
jQuery('#jform_admin_view').addClass('required'); jQuery('#jform_admin_view').addClass('required');
jform_vvvvwekvyq_required = false; jform_vvvvweivyn_required = false;
} }
} }
else else
{ {
jQuery('#jform_admin_view').closest('.control-group').hide(); jQuery('#jform_admin_view').closest('.control-group').hide();
// remove required attribute from admin_view field // remove required attribute from admin_view field
if (!jform_vvvvwekvyq_required) if (!jform_vvvvweivyn_required)
{ {
updateFieldRequired('admin_view',1); updateFieldRequired('admin_view',1);
jQuery('#jform_admin_view').removeAttr('required'); jQuery('#jform_admin_view').removeAttr('required');
jQuery('#jform_admin_view').removeAttr('aria-required'); jQuery('#jform_admin_view').removeAttr('aria-required');
jQuery('#jform_admin_view').removeClass('required'); jQuery('#jform_admin_view').removeClass('required');
jform_vvvvwekvyq_required = true; jform_vvvvweivyn_required = true;
} }
} }
} }
// the vvvvwel function // the vvvvwej function
function vvvvwel(location_vvvvwel) function vvvvwej(location_vvvvwej)
{ {
// set the function logic // set the function logic
if (location_vvvvwel == 2) if (location_vvvvwej == 2)
{ {
jQuery('#jform_site_view').closest('.control-group').show(); jQuery('#jform_site_view').closest('.control-group').show();
// add required attribute to site_view field // add required attribute to site_view field
if (jform_vvvvwelvyr_required) if (jform_vvvvwejvyo_required)
{ {
updateFieldRequired('site_view',0); updateFieldRequired('site_view',0);
jQuery('#jform_site_view').prop('required','required'); jQuery('#jform_site_view').prop('required','required');
jQuery('#jform_site_view').attr('aria-required',true); jQuery('#jform_site_view').attr('aria-required',true);
jQuery('#jform_site_view').addClass('required'); jQuery('#jform_site_view').addClass('required');
jform_vvvvwelvyr_required = false; jform_vvvvwejvyo_required = false;
} }
} }
else else
{ {
jQuery('#jform_site_view').closest('.control-group').hide(); jQuery('#jform_site_view').closest('.control-group').hide();
// remove required attribute from site_view field // remove required attribute from site_view field
if (!jform_vvvvwelvyr_required) if (!jform_vvvvwejvyo_required)
{ {
updateFieldRequired('site_view',1); updateFieldRequired('site_view',1);
jQuery('#jform_site_view').removeAttr('required'); jQuery('#jform_site_view').removeAttr('required');
jQuery('#jform_site_view').removeAttr('aria-required'); jQuery('#jform_site_view').removeAttr('aria-required');
jQuery('#jform_site_view').removeClass('required'); jQuery('#jform_site_view').removeClass('required');
jform_vvvvwelvyr_required = true; jform_vvvvwejvyo_required = true;
} }
} }
} }
// the vvvvwek function
function vvvvwek(type_vvvvwek)
{
if (isSet(type_vvvvwek) && type_vvvvwek.constructor !== Array)
{
var temp_vvvvwek = type_vvvvwek;
var type_vvvvwek = [];
type_vvvvwek.push(temp_vvvvwek);
}
else if (!isSet(type_vvvvwek))
{
var type_vvvvwek = [];
}
var type = type_vvvvwek.some(type_vvvvwek_SomeFunc);
// set this function logic
if (type)
{
jQuery('#jform_url').closest('.control-group').show();
// add required attribute to url field
if (jform_vvvvwekvyp_required)
{
updateFieldRequired('url',0);
jQuery('#jform_url').prop('required','required');
jQuery('#jform_url').attr('aria-required',true);
jQuery('#jform_url').addClass('required');
jform_vvvvwekvyp_required = false;
}
}
else
{
jQuery('#jform_url').closest('.control-group').hide();
// remove required attribute from url field
if (!jform_vvvvwekvyp_required)
{
updateFieldRequired('url',1);
jQuery('#jform_url').removeAttr('required');
jQuery('#jform_url').removeAttr('aria-required');
jQuery('#jform_url').removeClass('required');
jform_vvvvwekvyp_required = true;
}
}
}
// the vvvvwek Some function
function type_vvvvwek_SomeFunc(type_vvvvwek)
{
// set the function logic
if (type_vvvvwek == 3)
{
return true;
}
return false;
}
// the vvvvwel function
function vvvvwel(type_vvvvwel)
{
if (isSet(type_vvvvwel) && type_vvvvwel.constructor !== Array)
{
var temp_vvvvwel = type_vvvvwel;
var type_vvvvwel = [];
type_vvvvwel.push(temp_vvvvwel);
}
else if (!isSet(type_vvvvwel))
{
var type_vvvvwel = [];
}
var type = type_vvvvwel.some(type_vvvvwel_SomeFunc);
// set this function logic
if (type)
{
jQuery('#jform_article').closest('.control-group').show();
// add required attribute to article field
if (jform_vvvvwelvyq_required)
{
updateFieldRequired('article',0);
jQuery('#jform_article').prop('required','required');
jQuery('#jform_article').attr('aria-required',true);
jQuery('#jform_article').addClass('required');
jform_vvvvwelvyq_required = false;
}
}
else
{
jQuery('#jform_article').closest('.control-group').hide();
// remove required attribute from article field
if (!jform_vvvvwelvyq_required)
{
updateFieldRequired('article',1);
jQuery('#jform_article').removeAttr('required');
jQuery('#jform_article').removeAttr('aria-required');
jQuery('#jform_article').removeClass('required');
jform_vvvvwelvyq_required = true;
}
}
}
// the vvvvwel Some function
function type_vvvvwel_SomeFunc(type_vvvvwel)
{
// set the function logic
if (type_vvvvwel == 1)
{
return true;
}
return false;
}
// the vvvvwem function // the vvvvwem function
function vvvvwem(type_vvvvwem) function vvvvwem(type_vvvvwem)
{ {
@ -117,118 +229,6 @@ function vvvvwem(type_vvvvwem)
var type = type_vvvvwem.some(type_vvvvwem_SomeFunc); var type = type_vvvvwem.some(type_vvvvwem_SomeFunc);
// set this function logic
if (type)
{
jQuery('#jform_url').closest('.control-group').show();
// add required attribute to url field
if (jform_vvvvwemvys_required)
{
updateFieldRequired('url',0);
jQuery('#jform_url').prop('required','required');
jQuery('#jform_url').attr('aria-required',true);
jQuery('#jform_url').addClass('required');
jform_vvvvwemvys_required = false;
}
}
else
{
jQuery('#jform_url').closest('.control-group').hide();
// remove required attribute from url field
if (!jform_vvvvwemvys_required)
{
updateFieldRequired('url',1);
jQuery('#jform_url').removeAttr('required');
jQuery('#jform_url').removeAttr('aria-required');
jQuery('#jform_url').removeClass('required');
jform_vvvvwemvys_required = true;
}
}
}
// the vvvvwem Some function
function type_vvvvwem_SomeFunc(type_vvvvwem)
{
// set the function logic
if (type_vvvvwem == 3)
{
return true;
}
return false;
}
// the vvvvwen function
function vvvvwen(type_vvvvwen)
{
if (isSet(type_vvvvwen) && type_vvvvwen.constructor !== Array)
{
var temp_vvvvwen = type_vvvvwen;
var type_vvvvwen = [];
type_vvvvwen.push(temp_vvvvwen);
}
else if (!isSet(type_vvvvwen))
{
var type_vvvvwen = [];
}
var type = type_vvvvwen.some(type_vvvvwen_SomeFunc);
// set this function logic
if (type)
{
jQuery('#jform_article').closest('.control-group').show();
// add required attribute to article field
if (jform_vvvvwenvyt_required)
{
updateFieldRequired('article',0);
jQuery('#jform_article').prop('required','required');
jQuery('#jform_article').attr('aria-required',true);
jQuery('#jform_article').addClass('required');
jform_vvvvwenvyt_required = false;
}
}
else
{
jQuery('#jform_article').closest('.control-group').hide();
// remove required attribute from article field
if (!jform_vvvvwenvyt_required)
{
updateFieldRequired('article',1);
jQuery('#jform_article').removeAttr('required');
jQuery('#jform_article').removeAttr('aria-required');
jQuery('#jform_article').removeClass('required');
jform_vvvvwenvyt_required = true;
}
}
}
// the vvvvwen Some function
function type_vvvvwen_SomeFunc(type_vvvvwen)
{
// set the function logic
if (type_vvvvwen == 1)
{
return true;
}
return false;
}
// the vvvvweo function
function vvvvweo(type_vvvvweo)
{
if (isSet(type_vvvvweo) && type_vvvvweo.constructor !== Array)
{
var temp_vvvvweo = type_vvvvweo;
var type_vvvvweo = [];
type_vvvvweo.push(temp_vvvvweo);
}
else if (!isSet(type_vvvvweo))
{
var type_vvvvweo = [];
}
var type = type_vvvvweo.some(type_vvvvweo_SomeFunc);
// set this function logic // set this function logic
if (type) if (type)
{ {
@ -240,45 +240,45 @@ function vvvvweo(type_vvvvweo)
} }
} }
// the vvvvweo Some function // the vvvvwem Some function
function type_vvvvweo_SomeFunc(type_vvvvweo) function type_vvvvwem_SomeFunc(type_vvvvwem)
{ {
// set the function logic // set the function logic
if (type_vvvvweo == 2) if (type_vvvvwem == 2)
{ {
return true; return true;
} }
return false; return false;
} }
// the vvvvwep function // the vvvvwen function
function vvvvwep(target_vvvvwep) function vvvvwen(target_vvvvwen)
{ {
// set the function logic // set the function logic
if (target_vvvvwep == 1) if (target_vvvvwen == 1)
{ {
jQuery('#jform_groups').closest('.control-group').show(); jQuery('#jform_groups').closest('.control-group').show();
// add required attribute to groups field // add required attribute to groups field
if (jform_vvvvwepvyu_required) if (jform_vvvvwenvyr_required)
{ {
updateFieldRequired('groups',0); updateFieldRequired('groups',0);
jQuery('#jform_groups').prop('required','required'); jQuery('#jform_groups').prop('required','required');
jQuery('#jform_groups').attr('aria-required',true); jQuery('#jform_groups').attr('aria-required',true);
jQuery('#jform_groups').addClass('required'); jQuery('#jform_groups').addClass('required');
jform_vvvvwepvyu_required = false; jform_vvvvwenvyr_required = false;
} }
} }
else else
{ {
jQuery('#jform_groups').closest('.control-group').hide(); jQuery('#jform_groups').closest('.control-group').hide();
// remove required attribute from groups field // remove required attribute from groups field
if (!jform_vvvvwepvyu_required) if (!jform_vvvvwenvyr_required)
{ {
updateFieldRequired('groups',1); updateFieldRequired('groups',1);
jQuery('#jform_groups').removeAttr('required'); jQuery('#jform_groups').removeAttr('required');
jQuery('#jform_groups').removeAttr('aria-required'); jQuery('#jform_groups').removeAttr('aria-required');
jQuery('#jform_groups').removeClass('required'); jQuery('#jform_groups').removeClass('required');
jform_vvvvwepvyu_required = true; jform_vvvvwenvyr_required = true;
} }
} }
} }

View File

@ -367,7 +367,7 @@
default="Copyright (C) 2015. All Rights Reserved" default="Copyright (C) 2015. All Rights Reserved"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COPYRIGHT_DESCRIPTION" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COPYRIGHT_DESCRIPTION"
class="text_area span12" class="text_area span12"
filter="HTML" filter="SAFEHTML"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COPYRIGHT_HINT" hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COPYRIGHT_HINT"
required="true" required="true"
/> />

View File

@ -90,7 +90,6 @@
type="joomlamodules" type="joomlamodules"
name="joomla_module" name="joomla_module"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_FILES_FOLDERS_URLS_JOOMLA_MODULE_LABEL" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_FILES_FOLDERS_URLS_JOOMLA_MODULE_LABEL"
description="JFIELD_TITLE_DESC"
class="list_class span12" class="list_class span12"
multiple="false" multiple="false"
default="0" default="0"

View File

@ -90,7 +90,6 @@
type="joomlamodules" type="joomlamodules"
name="joomla_module" name="joomla_module"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATES_JOOMLA_MODULE_LABEL" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATES_JOOMLA_MODULE_LABEL"
description="JFIELD_TITLE_DESC"
class="list_class span12" class="list_class span12"
multiple="false" multiple="false"
default="0" default="0"

View File

@ -90,7 +90,6 @@
type="joomlaplugins" type="joomlaplugins"
name="joomla_plugin" name="joomla_plugin"
label="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_FILES_FOLDERS_URLS_JOOMLA_PLUGIN_LABEL" label="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_FILES_FOLDERS_URLS_JOOMLA_PLUGIN_LABEL"
description="JFIELD_TITLE_DESC"
class="list_class span12" class="list_class span12"
multiple="false" multiple="false"
default="0" default="0"

View File

@ -90,7 +90,6 @@
type="joomlaplugins" type="joomlaplugins"
name="joomla_plugin" name="joomla_plugin"
label="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_UPDATES_JOOMLA_PLUGIN_LABEL" label="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_UPDATES_JOOMLA_PLUGIN_LABEL"
description="JFIELD_TITLE_DESC"
class="list_class span12" class="list_class span12"
multiple="false" multiple="false"
default="0" default="0"

View File

@ -92,7 +92,6 @@
label="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_SOURCE_LABEL" label="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_SOURCE_LABEL"
rows="4" rows="4"
cols="5" cols="5"
description="JFIELD_TITLE_DESC"
message="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_SOURCE_MESSAGE" message="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_SOURCE_MESSAGE"
class="text_area span12" class="text_area span12"
filter="safehtml" filter="safehtml"
@ -150,7 +149,7 @@
cols="20" cols="20"
message="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_TRANSLATION_MESSAGE" message="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_TRANSLATION_MESSAGE"
class="text_area translation_text_area" class="text_area translation_text_area"
filter="SAFEHTML" filter="RAW"
hint="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_TRANSLATION_HINT" hint="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_TRANSLATION_HINT"
/> />
<!-- Language Field. Type: Lang. (custom) --> <!-- Language Field. Type: Lang. (custom) -->

View File

@ -9,24 +9,28 @@
*/ */
// Some Global Values // Some Global Values
jform_vvvvweavyg_required = false; jform_vvvvwdyvyd_required = false;
jform_vvvvweavyh_required = false; jform_vvvvwdyvye_required = false;
jform_vvvvweavyi_required = false; jform_vvvvwdyvyf_required = false;
jform_vvvvwdyvyg_required = false;
jform_vvvvwdyvyh_required = false;
jform_vvvvwdzvyi_required = false;
jform_vvvvweavyj_required = false; jform_vvvvweavyj_required = false;
jform_vvvvweavyk_required = false; jform_vvvvwecvyk_required = false;
jform_vvvvwebvyl_required = false; jform_vvvvweevyl_required = false;
jform_vvvvwecvym_required = false;
jform_vvvvweevyn_required = false;
jform_vvvvwegvyo_required = false;
// Initial Script // Initial Script
jQuery(document).ready(function() jQuery(document).ready(function()
{ {
var protocol_vvvvwea = jQuery("#jform_protocol").val(); var protocol_vvvvwdy = jQuery("#jform_protocol").val();
vvvvwea(protocol_vvvvwea); vvvvwdy(protocol_vvvvwdy);
var protocol_vvvvweb = jQuery("#jform_protocol").val(); var protocol_vvvvwdz = jQuery("#jform_protocol").val();
vvvvweb(protocol_vvvvweb); vvvvwdz(protocol_vvvvwdz);
var protocol_vvvvwea = jQuery("#jform_protocol").val();
var authentication_vvvvwea = jQuery("#jform_authentication").val();
vvvvwea(protocol_vvvvwea,authentication_vvvvwea);
var protocol_vvvvwec = jQuery("#jform_protocol").val(); var protocol_vvvvwec = jQuery("#jform_protocol").val();
var authentication_vvvvwec = jQuery("#jform_authentication").val(); var authentication_vvvvwec = jQuery("#jform_authentication").val();
@ -39,14 +43,206 @@ jQuery(document).ready(function()
var protocol_vvvvweg = jQuery("#jform_protocol").val(); var protocol_vvvvweg = jQuery("#jform_protocol").val();
var authentication_vvvvweg = jQuery("#jform_authentication").val(); var authentication_vvvvweg = jQuery("#jform_authentication").val();
vvvvweg(protocol_vvvvweg,authentication_vvvvweg); vvvvweg(protocol_vvvvweg,authentication_vvvvweg);
var protocol_vvvvwei = jQuery("#jform_protocol").val();
var authentication_vvvvwei = jQuery("#jform_authentication").val();
vvvvwei(protocol_vvvvwei,authentication_vvvvwei);
}); });
// the vvvvwdy function
function vvvvwdy(protocol_vvvvwdy)
{
if (isSet(protocol_vvvvwdy) && protocol_vvvvwdy.constructor !== Array)
{
var temp_vvvvwdy = protocol_vvvvwdy;
var protocol_vvvvwdy = [];
protocol_vvvvwdy.push(temp_vvvvwdy);
}
else if (!isSet(protocol_vvvvwdy))
{
var protocol_vvvvwdy = [];
}
var protocol = protocol_vvvvwdy.some(protocol_vvvvwdy_SomeFunc);
// set this function logic
if (protocol)
{
jQuery('#jform_authentication').closest('.control-group').show();
// add required attribute to authentication field
if (jform_vvvvwdyvyd_required)
{
updateFieldRequired('authentication',0);
jQuery('#jform_authentication').prop('required','required');
jQuery('#jform_authentication').attr('aria-required',true);
jQuery('#jform_authentication').addClass('required');
jform_vvvvwdyvyd_required = false;
}
jQuery('#jform_host').closest('.control-group').show();
// add required attribute to host field
if (jform_vvvvwdyvye_required)
{
updateFieldRequired('host',0);
jQuery('#jform_host').prop('required','required');
jQuery('#jform_host').attr('aria-required',true);
jQuery('#jform_host').addClass('required');
jform_vvvvwdyvye_required = false;
}
jQuery('#jform_port').closest('.control-group').show();
// add required attribute to port field
if (jform_vvvvwdyvyf_required)
{
updateFieldRequired('port',0);
jQuery('#jform_port').prop('required','required');
jQuery('#jform_port').attr('aria-required',true);
jQuery('#jform_port').addClass('required');
jform_vvvvwdyvyf_required = false;
}
jQuery('#jform_path').closest('.control-group').show();
// add required attribute to path field
if (jform_vvvvwdyvyg_required)
{
updateFieldRequired('path',0);
jQuery('#jform_path').prop('required','required');
jQuery('#jform_path').attr('aria-required',true);
jQuery('#jform_path').addClass('required');
jform_vvvvwdyvyg_required = false;
}
jQuery('.note_ssh_security').closest('.control-group').show();
jQuery('#jform_username').closest('.control-group').show();
// add required attribute to username field
if (jform_vvvvwdyvyh_required)
{
updateFieldRequired('username',0);
jQuery('#jform_username').prop('required','required');
jQuery('#jform_username').attr('aria-required',true);
jQuery('#jform_username').addClass('required');
jform_vvvvwdyvyh_required = false;
}
}
else
{
jQuery('#jform_authentication').closest('.control-group').hide();
// remove required attribute from authentication field
if (!jform_vvvvwdyvyd_required)
{
updateFieldRequired('authentication',1);
jQuery('#jform_authentication').removeAttr('required');
jQuery('#jform_authentication').removeAttr('aria-required');
jQuery('#jform_authentication').removeClass('required');
jform_vvvvwdyvyd_required = true;
}
jQuery('#jform_host').closest('.control-group').hide();
// remove required attribute from host field
if (!jform_vvvvwdyvye_required)
{
updateFieldRequired('host',1);
jQuery('#jform_host').removeAttr('required');
jQuery('#jform_host').removeAttr('aria-required');
jQuery('#jform_host').removeClass('required');
jform_vvvvwdyvye_required = true;
}
jQuery('#jform_port').closest('.control-group').hide();
// remove required attribute from port field
if (!jform_vvvvwdyvyf_required)
{
updateFieldRequired('port',1);
jQuery('#jform_port').removeAttr('required');
jQuery('#jform_port').removeAttr('aria-required');
jQuery('#jform_port').removeClass('required');
jform_vvvvwdyvyf_required = true;
}
jQuery('#jform_path').closest('.control-group').hide();
// remove required attribute from path field
if (!jform_vvvvwdyvyg_required)
{
updateFieldRequired('path',1);
jQuery('#jform_path').removeAttr('required');
jQuery('#jform_path').removeAttr('aria-required');
jQuery('#jform_path').removeClass('required');
jform_vvvvwdyvyg_required = true;
}
jQuery('.note_ssh_security').closest('.control-group').hide();
jQuery('#jform_username').closest('.control-group').hide();
// remove required attribute from username field
if (!jform_vvvvwdyvyh_required)
{
updateFieldRequired('username',1);
jQuery('#jform_username').removeAttr('required');
jQuery('#jform_username').removeAttr('aria-required');
jQuery('#jform_username').removeClass('required');
jform_vvvvwdyvyh_required = true;
}
}
}
// the vvvvwdy Some function
function protocol_vvvvwdy_SomeFunc(protocol_vvvvwdy)
{
// set the function logic
if (protocol_vvvvwdy == 2)
{
return true;
}
return false;
}
// the vvvvwdz function
function vvvvwdz(protocol_vvvvwdz)
{
if (isSet(protocol_vvvvwdz) && protocol_vvvvwdz.constructor !== Array)
{
var temp_vvvvwdz = protocol_vvvvwdz;
var protocol_vvvvwdz = [];
protocol_vvvvwdz.push(temp_vvvvwdz);
}
else if (!isSet(protocol_vvvvwdz))
{
var protocol_vvvvwdz = [];
}
var protocol = protocol_vvvvwdz.some(protocol_vvvvwdz_SomeFunc);
// set this function logic
if (protocol)
{
jQuery('.note_ftp_signature').closest('.control-group').show();
jQuery('#jform_signature').closest('.control-group').show();
// add required attribute to signature field
if (jform_vvvvwdzvyi_required)
{
updateFieldRequired('signature',0);
jQuery('#jform_signature').prop('required','required');
jQuery('#jform_signature').attr('aria-required',true);
jQuery('#jform_signature').addClass('required');
jform_vvvvwdzvyi_required = false;
}
}
else
{
jQuery('.note_ftp_signature').closest('.control-group').hide();
jQuery('#jform_signature').closest('.control-group').hide();
// remove required attribute from signature field
if (!jform_vvvvwdzvyi_required)
{
updateFieldRequired('signature',1);
jQuery('#jform_signature').removeAttr('required');
jQuery('#jform_signature').removeAttr('aria-required');
jQuery('#jform_signature').removeClass('required');
jform_vvvvwdzvyi_required = true;
}
}
}
// the vvvvwdz Some function
function protocol_vvvvwdz_SomeFunc(protocol_vvvvwdz)
{
// set the function logic
if (protocol_vvvvwdz == 1)
{
return true;
}
return false;
}
// the vvvvwea function // the vvvvwea function
function vvvvwea(protocol_vvvvwea) function vvvvwea(protocol_vvvvwea,authentication_vvvvwea)
{ {
if (isSet(protocol_vvvvwea) && protocol_vvvvwea.constructor !== Array) if (isSet(protocol_vvvvwea) && protocol_vvvvwea.constructor !== Array)
{ {
@ -60,115 +256,45 @@ function vvvvwea(protocol_vvvvwea)
} }
var protocol = protocol_vvvvwea.some(protocol_vvvvwea_SomeFunc); var protocol = protocol_vvvvwea.some(protocol_vvvvwea_SomeFunc);
if (isSet(authentication_vvvvwea) && authentication_vvvvwea.constructor !== Array)
{
var temp_vvvvwea = authentication_vvvvwea;
var authentication_vvvvwea = [];
authentication_vvvvwea.push(temp_vvvvwea);
}
else if (!isSet(authentication_vvvvwea))
{
var authentication_vvvvwea = [];
}
var authentication = authentication_vvvvwea.some(authentication_vvvvwea_SomeFunc);
// set this function logic // set this function logic
if (protocol) if (protocol && authentication)
{ {
jQuery('#jform_authentication').closest('.control-group').show(); jQuery('#jform_password').closest('.control-group').show();
// add required attribute to authentication field // add required attribute to password field
if (jform_vvvvweavyg_required)
{
updateFieldRequired('authentication',0);
jQuery('#jform_authentication').prop('required','required');
jQuery('#jform_authentication').attr('aria-required',true);
jQuery('#jform_authentication').addClass('required');
jform_vvvvweavyg_required = false;
}
jQuery('#jform_host').closest('.control-group').show();
// add required attribute to host field
if (jform_vvvvweavyh_required)
{
updateFieldRequired('host',0);
jQuery('#jform_host').prop('required','required');
jQuery('#jform_host').attr('aria-required',true);
jQuery('#jform_host').addClass('required');
jform_vvvvweavyh_required = false;
}
jQuery('#jform_port').closest('.control-group').show();
// add required attribute to port field
if (jform_vvvvweavyi_required)
{
updateFieldRequired('port',0);
jQuery('#jform_port').prop('required','required');
jQuery('#jform_port').attr('aria-required',true);
jQuery('#jform_port').addClass('required');
jform_vvvvweavyi_required = false;
}
jQuery('#jform_path').closest('.control-group').show();
// add required attribute to path field
if (jform_vvvvweavyj_required) if (jform_vvvvweavyj_required)
{ {
updateFieldRequired('path',0); updateFieldRequired('password',0);
jQuery('#jform_path').prop('required','required'); jQuery('#jform_password').prop('required','required');
jQuery('#jform_path').attr('aria-required',true); jQuery('#jform_password').attr('aria-required',true);
jQuery('#jform_path').addClass('required'); jQuery('#jform_password').addClass('required');
jform_vvvvweavyj_required = false; jform_vvvvweavyj_required = false;
} }
jQuery('.note_ssh_security').closest('.control-group').show();
jQuery('#jform_username').closest('.control-group').show();
// add required attribute to username field
if (jform_vvvvweavyk_required)
{
updateFieldRequired('username',0);
jQuery('#jform_username').prop('required','required');
jQuery('#jform_username').attr('aria-required',true);
jQuery('#jform_username').addClass('required');
jform_vvvvweavyk_required = false;
}
} }
else else
{ {
jQuery('#jform_authentication').closest('.control-group').hide(); jQuery('#jform_password').closest('.control-group').hide();
// remove required attribute from authentication field // remove required attribute from password field
if (!jform_vvvvweavyg_required)
{
updateFieldRequired('authentication',1);
jQuery('#jform_authentication').removeAttr('required');
jQuery('#jform_authentication').removeAttr('aria-required');
jQuery('#jform_authentication').removeClass('required');
jform_vvvvweavyg_required = true;
}
jQuery('#jform_host').closest('.control-group').hide();
// remove required attribute from host field
if (!jform_vvvvweavyh_required)
{
updateFieldRequired('host',1);
jQuery('#jform_host').removeAttr('required');
jQuery('#jform_host').removeAttr('aria-required');
jQuery('#jform_host').removeClass('required');
jform_vvvvweavyh_required = true;
}
jQuery('#jform_port').closest('.control-group').hide();
// remove required attribute from port field
if (!jform_vvvvweavyi_required)
{
updateFieldRequired('port',1);
jQuery('#jform_port').removeAttr('required');
jQuery('#jform_port').removeAttr('aria-required');
jQuery('#jform_port').removeClass('required');
jform_vvvvweavyi_required = true;
}
jQuery('#jform_path').closest('.control-group').hide();
// remove required attribute from path field
if (!jform_vvvvweavyj_required) if (!jform_vvvvweavyj_required)
{ {
updateFieldRequired('path',1); updateFieldRequired('password',1);
jQuery('#jform_path').removeAttr('required'); jQuery('#jform_password').removeAttr('required');
jQuery('#jform_path').removeAttr('aria-required'); jQuery('#jform_password').removeAttr('aria-required');
jQuery('#jform_path').removeClass('required'); jQuery('#jform_password').removeClass('required');
jform_vvvvweavyj_required = true; jform_vvvvweavyj_required = true;
} }
jQuery('.note_ssh_security').closest('.control-group').hide();
jQuery('#jform_username').closest('.control-group').hide();
// remove required attribute from username field
if (!jform_vvvvweavyk_required)
{
updateFieldRequired('username',1);
jQuery('#jform_username').removeAttr('required');
jQuery('#jform_username').removeAttr('aria-required');
jQuery('#jform_username').removeClass('required');
jform_vvvvweavyk_required = true;
}
} }
} }
@ -183,58 +309,11 @@ function protocol_vvvvwea_SomeFunc(protocol_vvvvwea)
return false; return false;
} }
// the vvvvweb function // the vvvvwea Some function
function vvvvweb(protocol_vvvvweb) function authentication_vvvvwea_SomeFunc(authentication_vvvvwea)
{
if (isSet(protocol_vvvvweb) && protocol_vvvvweb.constructor !== Array)
{
var temp_vvvvweb = protocol_vvvvweb;
var protocol_vvvvweb = [];
protocol_vvvvweb.push(temp_vvvvweb);
}
else if (!isSet(protocol_vvvvweb))
{
var protocol_vvvvweb = [];
}
var protocol = protocol_vvvvweb.some(protocol_vvvvweb_SomeFunc);
// set this function logic
if (protocol)
{
jQuery('.note_ftp_signature').closest('.control-group').show();
jQuery('#jform_signature').closest('.control-group').show();
// add required attribute to signature field
if (jform_vvvvwebvyl_required)
{
updateFieldRequired('signature',0);
jQuery('#jform_signature').prop('required','required');
jQuery('#jform_signature').attr('aria-required',true);
jQuery('#jform_signature').addClass('required');
jform_vvvvwebvyl_required = false;
}
}
else
{
jQuery('.note_ftp_signature').closest('.control-group').hide();
jQuery('#jform_signature').closest('.control-group').hide();
// remove required attribute from signature field
if (!jform_vvvvwebvyl_required)
{
updateFieldRequired('signature',1);
jQuery('#jform_signature').removeAttr('required');
jQuery('#jform_signature').removeAttr('aria-required');
jQuery('#jform_signature').removeClass('required');
jform_vvvvwebvyl_required = true;
}
}
}
// the vvvvweb Some function
function protocol_vvvvweb_SomeFunc(protocol_vvvvweb)
{ {
// set the function logic // set the function logic
if (protocol_vvvvweb == 1) if (authentication_vvvvwea == 1 || authentication_vvvvwea == 3 || authentication_vvvvwea == 5)
{ {
return true; return true;
} }
@ -272,28 +351,28 @@ function vvvvwec(protocol_vvvvwec,authentication_vvvvwec)
// set this function logic // set this function logic
if (protocol && authentication) if (protocol && authentication)
{ {
jQuery('#jform_password').closest('.control-group').show(); jQuery('#jform_private').closest('.control-group').show();
// add required attribute to password field // add required attribute to private field
if (jform_vvvvwecvym_required) if (jform_vvvvwecvyk_required)
{ {
updateFieldRequired('password',0); updateFieldRequired('private',0);
jQuery('#jform_password').prop('required','required'); jQuery('#jform_private').prop('required','required');
jQuery('#jform_password').attr('aria-required',true); jQuery('#jform_private').attr('aria-required',true);
jQuery('#jform_password').addClass('required'); jQuery('#jform_private').addClass('required');
jform_vvvvwecvym_required = false; jform_vvvvwecvyk_required = false;
} }
} }
else else
{ {
jQuery('#jform_password').closest('.control-group').hide(); jQuery('#jform_private').closest('.control-group').hide();
// remove required attribute from password field // remove required attribute from private field
if (!jform_vvvvwecvym_required) if (!jform_vvvvwecvyk_required)
{ {
updateFieldRequired('password',1); updateFieldRequired('private',1);
jQuery('#jform_password').removeAttr('required'); jQuery('#jform_private').removeAttr('required');
jQuery('#jform_password').removeAttr('aria-required'); jQuery('#jform_private').removeAttr('aria-required');
jQuery('#jform_password').removeClass('required'); jQuery('#jform_private').removeClass('required');
jform_vvvvwecvym_required = true; jform_vvvvwecvyk_required = true;
} }
} }
} }
@ -313,7 +392,7 @@ function protocol_vvvvwec_SomeFunc(protocol_vvvvwec)
function authentication_vvvvwec_SomeFunc(authentication_vvvvwec) function authentication_vvvvwec_SomeFunc(authentication_vvvvwec)
{ {
// set the function logic // set the function logic
if (authentication_vvvvwec == 1 || authentication_vvvvwec == 3 || authentication_vvvvwec == 5) if (authentication_vvvvwec == 2 || authentication_vvvvwec == 3)
{ {
return true; return true;
} }
@ -351,28 +430,28 @@ function vvvvwee(protocol_vvvvwee,authentication_vvvvwee)
// set this function logic // set this function logic
if (protocol && authentication) if (protocol && authentication)
{ {
jQuery('#jform_private').closest('.control-group').show(); jQuery('#jform_private_key').closest('.control-group').show();
// add required attribute to private field // add required attribute to private_key field
if (jform_vvvvweevyn_required) if (jform_vvvvweevyl_required)
{ {
updateFieldRequired('private',0); updateFieldRequired('private_key',0);
jQuery('#jform_private').prop('required','required'); jQuery('#jform_private_key').prop('required','required');
jQuery('#jform_private').attr('aria-required',true); jQuery('#jform_private_key').attr('aria-required',true);
jQuery('#jform_private').addClass('required'); jQuery('#jform_private_key').addClass('required');
jform_vvvvweevyn_required = false; jform_vvvvweevyl_required = false;
} }
} }
else else
{ {
jQuery('#jform_private').closest('.control-group').hide(); jQuery('#jform_private_key').closest('.control-group').hide();
// remove required attribute from private field // remove required attribute from private_key field
if (!jform_vvvvweevyn_required) if (!jform_vvvvweevyl_required)
{ {
updateFieldRequired('private',1); updateFieldRequired('private_key',1);
jQuery('#jform_private').removeAttr('required'); jQuery('#jform_private_key').removeAttr('required');
jQuery('#jform_private').removeAttr('aria-required'); jQuery('#jform_private_key').removeAttr('aria-required');
jQuery('#jform_private').removeClass('required'); jQuery('#jform_private_key').removeClass('required');
jform_vvvvweevyn_required = true; jform_vvvvweevyl_required = true;
} }
} }
} }
@ -392,7 +471,7 @@ function protocol_vvvvwee_SomeFunc(protocol_vvvvwee)
function authentication_vvvvwee_SomeFunc(authentication_vvvvwee) function authentication_vvvvwee_SomeFunc(authentication_vvvvwee)
{ {
// set the function logic // set the function logic
if (authentication_vvvvwee == 2 || authentication_vvvvwee == 3) if (authentication_vvvvwee == 4 || authentication_vvvvwee == 5)
{ {
return true; return true;
} }
@ -430,29 +509,11 @@ function vvvvweg(protocol_vvvvweg,authentication_vvvvweg)
// set this function logic // set this function logic
if (protocol && authentication) if (protocol && authentication)
{ {
jQuery('#jform_private_key').closest('.control-group').show(); jQuery('#jform_secret').closest('.control-group').show();
// add required attribute to private_key field
if (jform_vvvvwegvyo_required)
{
updateFieldRequired('private_key',0);
jQuery('#jform_private_key').prop('required','required');
jQuery('#jform_private_key').attr('aria-required',true);
jQuery('#jform_private_key').addClass('required');
jform_vvvvwegvyo_required = false;
}
} }
else else
{ {
jQuery('#jform_private_key').closest('.control-group').hide(); jQuery('#jform_secret').closest('.control-group').hide();
// remove required attribute from private_key field
if (!jform_vvvvwegvyo_required)
{
updateFieldRequired('private_key',1);
jQuery('#jform_private_key').removeAttr('required');
jQuery('#jform_private_key').removeAttr('aria-required');
jQuery('#jform_private_key').removeClass('required');
jform_vvvvwegvyo_required = true;
}
} }
} }
@ -471,68 +532,7 @@ function protocol_vvvvweg_SomeFunc(protocol_vvvvweg)
function authentication_vvvvweg_SomeFunc(authentication_vvvvweg) function authentication_vvvvweg_SomeFunc(authentication_vvvvweg)
{ {
// set the function logic // set the function logic
if (authentication_vvvvweg == 4 || authentication_vvvvweg == 5) if (authentication_vvvvweg == 2 || authentication_vvvvweg == 3 || authentication_vvvvweg == 4 || authentication_vvvvweg == 5)
{
return true;
}
return false;
}
// the vvvvwei function
function vvvvwei(protocol_vvvvwei,authentication_vvvvwei)
{
if (isSet(protocol_vvvvwei) && protocol_vvvvwei.constructor !== Array)
{
var temp_vvvvwei = protocol_vvvvwei;
var protocol_vvvvwei = [];
protocol_vvvvwei.push(temp_vvvvwei);
}
else if (!isSet(protocol_vvvvwei))
{
var protocol_vvvvwei = [];
}
var protocol = protocol_vvvvwei.some(protocol_vvvvwei_SomeFunc);
if (isSet(authentication_vvvvwei) && authentication_vvvvwei.constructor !== Array)
{
var temp_vvvvwei = authentication_vvvvwei;
var authentication_vvvvwei = [];
authentication_vvvvwei.push(temp_vvvvwei);
}
else if (!isSet(authentication_vvvvwei))
{
var authentication_vvvvwei = [];
}
var authentication = authentication_vvvvwei.some(authentication_vvvvwei_SomeFunc);
// set this function logic
if (protocol && authentication)
{
jQuery('#jform_secret').closest('.control-group').show();
}
else
{
jQuery('#jform_secret').closest('.control-group').hide();
}
}
// the vvvvwei Some function
function protocol_vvvvwei_SomeFunc(protocol_vvvvwei)
{
// set the function logic
if (protocol_vvvvwei == 2)
{
return true;
}
return false;
}
// the vvvvwei Some function
function authentication_vvvvwei_SomeFunc(authentication_vvvvwei)
{
// set the function logic
if (authentication_vvvvwei == 2 || authentication_vvvvwei == 3 || authentication_vvvvwei == 4 || authentication_vvvvwei == 5)
{ {
return true; return true;
} }

View File

@ -415,7 +415,7 @@ class ComponentbuilderModelHelp_document extends JModelAdmin
public function validate($form, $data, $group = null) public function validate($form, $data, $group = null)
{ {
// check if the not_required field is set // check if the not_required field is set
if (ComponentbuilderHelper::checkString($data['not_required'])) if (isset($data['not_required']) && ComponentbuilderHelper::checkString($data['not_required']))
{ {
$requiredFields = (array) explode(',',(string) $data['not_required']); $requiredFields = (array) explode(',',(string) $data['not_required']);
$requiredFields = array_unique($requiredFields); $requiredFields = array_unique($requiredFields);

View File

@ -278,7 +278,7 @@ class ComponentbuilderModelHelp_documents extends JModelList
public function getExportData($pks, $user = null) public function getExportData($pks, $user = null)
{ {
// setup the query // setup the query
if (ComponentbuilderHelper::checkArray($pks)) if (($pks_size = ComponentbuilderHelper::checkArray($pks)) !== false || 'bulk' === $pks)
{ {
// Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME) // Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME)
$_export = true; $_export = true;
@ -296,7 +296,24 @@ class ComponentbuilderModelHelp_documents extends JModelList
// From the componentbuilder_help_document table // From the componentbuilder_help_document table
$query->from($db->quoteName('#__componentbuilder_help_document', 'a')); $query->from($db->quoteName('#__componentbuilder_help_document', 'a'));
$query->where('a.id IN (' . implode(',',$pks) . ')'); // The bulk export path
if ('bulk' === $pks)
{
$query->where('a.id > 0');
}
// A large array of ID's will not work out well
elseif ($pks_size > 500)
{
// Use lowest ID
$query->where('a.id >= ' . (int) min($pks));
// Use highest ID
$query->where('a.id <= ' . (int) max($pks));
}
// The normal default path
else
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// Order the results by ordering // Order the results by ordering
$query->order('a.ordering ASC'); $query->order('a.ordering ASC');

View File

@ -426,7 +426,15 @@ class ComponentbuilderModelImport extends JModelLegacy
$jinput = JFactory::getApplication()->input; $jinput = JFactory::getApplication()->input;
foreach($target_headers as $header) foreach($target_headers as $header)
{ {
$data['target_headers'][$header] = $jinput->getString($header, null); if (($column = $jinput->getString($header, false)) !== false ||
($column = $jinput->getString(strtolower($header), false)) !== false)
{
$data['target_headers'][$header] = $column;
}
else
{
$data['target_headers'][$header] = null;
}
} }
// set the data // set the data
if(isset($package['dir'])) if(isset($package['dir']))

View File

@ -420,23 +420,31 @@ class ComponentbuilderModelImport_language_translations extends JModelLegacy
if (ComponentbuilderHelper::checkArray($target_headers)) if (ComponentbuilderHelper::checkArray($target_headers))
{ {
// make sure the file is loaded // make sure the file is loaded
JLoader::import('PHPExcel', JPATH_COMPONENT_ADMINISTRATOR . '/helpers'); ComponentbuilderHelper::composerAutoload('phpspreadsheet');
$jinput = JFactory::getApplication()->input; $jinput = JFactory::getApplication()->input;
foreach($target_headers as $header) foreach($target_headers as $header)
{ {
$data['target_headers'][$header] = $jinput->getString($header, null); if (($column = $jinput->getString($header, false)) !== false ||
($column = $jinput->getString(strtolower($header), false)) !== false)
{
$data['target_headers'][$header] = $column;
}
else
{
$data['target_headers'][$header] = null;
}
} }
// set the data // set the data
if(isset($package['dir'])) if(isset($package['dir']))
{ {
$inputFileType = PHPExcel_IOFactory::identify($package['dir']); $inputFileType = IOFactory::identify($package['dir']);
$excelReader = PHPExcel_IOFactory::createReader($inputFileType); $excelReader = IOFactory::createReader($inputFileType);
$excelReader->setReadDataOnly(true); $excelReader->setReadDataOnly(true);
$excelObj = $excelReader->load($package['dir']); $excelObj = $excelReader->load($package['dir']);
$data['array'] = $excelObj->getActiveSheet()->toArray(null, true,true,true); $data['array'] = $excelObj->getActiveSheet()->toArray(null, true,true,true);
$excelObj->disconnectWorksheets(); $excelObj->disconnectWorksheets();
unset($excelObj); unset($excelObj);
return $this->save($data,$table); return $this->save($data, $table);
} }
} }
return false; return false;
@ -463,10 +471,14 @@ class ComponentbuilderModelImport_language_translations extends JModelLegacy
{ {
$source_key = $data['target_headers']['Source']; $source_key = $data['target_headers']['Source'];
} }
else elseif (isset($data['target_headers']['English']))
{ {
$source_key = $data['target_headers']['English']; $source_key = $data['target_headers']['English'];
} }
else
{
$source_key = null;
}
// get the first array set // get the first array set
$firstSet = reset($data['array']); $firstSet = reset($data['array']);
// check if first array is a header array and remove if true // check if first array is a header array and remove if true

View File

@ -694,8 +694,8 @@ class ComponentbuilderModelJoomla_component extends JModelAdmin
} }
// Only load the GUID if new item // Only load the GUID if new item (or empty)
if (0 == $id) if (0 == $id || !($val = $form->getValue('guid')))
{ {
$form->setValue('guid', null, ComponentbuilderHelper::GUID()); $form->setValue('guid', null, ComponentbuilderHelper::GUID());
} }
@ -878,7 +878,7 @@ class ComponentbuilderModelJoomla_component extends JModelAdmin
public function validate($form, $data, $group = null) public function validate($form, $data, $group = null)
{ {
// check if the not_required field is set // check if the not_required field is set
if (ComponentbuilderHelper::checkString($data['not_required'])) if (isset($data['not_required']) && ComponentbuilderHelper::checkString($data['not_required']))
{ {
$requiredFields = (array) explode(',',(string) $data['not_required']); $requiredFields = (array) explode(',',(string) $data['not_required']);
$requiredFields = array_unique($requiredFields); $requiredFields = array_unique($requiredFields);
@ -1385,8 +1385,15 @@ class ComponentbuilderModelJoomla_component extends JModelAdmin
} }
// Set the GUID if empty or not valid // Set the GUID if empty or not valid
if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "joomla_component", $data['id'])) if (empty($data['guid']) && $data['id'] > 0)
{ {
// get the existing one
$data['guid'] = (string) ComponentbuilderHelper::getVar('joomla_component', $data['id'], 'id', 'guid');
}
// Set the GUID if empty or not valid
while (!ComponentbuilderHelper::validGUID($data['guid'], "joomla_component", $data['id']))
{
// must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID(); $data['guid'] = (string) ComponentbuilderHelper::GUID();
} }

View File

@ -1672,6 +1672,11 @@ class ComponentbuilderModelJoomla_components extends JModelList
*/ */
protected function setLanguageTranslation(&$id, $target = 'components') protected function setLanguageTranslation(&$id, $target = 'components')
{ {
// check if the export of language strings is allowed
if ($this->params->get('export_language_strings', 1) != 1)
{
return;
}
// Create a new query object. // Create a new query object.
$query = $this->_db->getQuery(true); $query = $this->_db->getQuery(true);
$query->select(array('a.*')); $query->select(array('a.*'));
@ -2252,7 +2257,7 @@ class ComponentbuilderModelJoomla_components extends JModelList
public function getExportData($pks, $user = null) public function getExportData($pks, $user = null)
{ {
// setup the query // setup the query
if (ComponentbuilderHelper::checkArray($pks)) if (($pks_size = ComponentbuilderHelper::checkArray($pks)) !== false || 'bulk' === $pks)
{ {
// Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME) // Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME)
$_export = true; $_export = true;
@ -2270,7 +2275,24 @@ class ComponentbuilderModelJoomla_components extends JModelList
// From the componentbuilder_joomla_component table // From the componentbuilder_joomla_component table
$query->from($db->quoteName('#__componentbuilder_joomla_component', 'a')); $query->from($db->quoteName('#__componentbuilder_joomla_component', 'a'));
$query->where('a.id IN (' . implode(',',$pks) . ')'); // The bulk export path
if ('bulk' === $pks)
{
$query->where('a.id > 0');
}
// A large array of ID's will not work out well
elseif ($pks_size > 500)
{
// Use lowest ID
$query->where('a.id >= ' . (int) min($pks));
// Use highest ID
$query->where('a.id <= ' . (int) max($pks));
}
// The normal default path
else
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// Implement View Level Access // Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder')) if (!$user->authorise('core.options', 'com_componentbuilder'))
{ {

View File

@ -514,8 +514,8 @@ class ComponentbuilderModelJoomla_module extends JModelAdmin
} }
// Only load the GUID if new item // Only load the GUID if new item (or empty)
if (0 == $id) if (0 == $id || !($val = $form->getValue('guid')))
{ {
$form->setValue('guid', null, ComponentbuilderHelper::GUID()); $form->setValue('guid', null, ComponentbuilderHelper::GUID());
} }
@ -698,7 +698,7 @@ class ComponentbuilderModelJoomla_module extends JModelAdmin
public function validate($form, $data, $group = null) public function validate($form, $data, $group = null)
{ {
// check if the not_required field is set // check if the not_required field is set
if (ComponentbuilderHelper::checkString($data['not_required'])) if (isset($data['not_required']) && ComponentbuilderHelper::checkString($data['not_required']))
{ {
$requiredFields = (array) explode(',',(string) $data['not_required']); $requiredFields = (array) explode(',',(string) $data['not_required']);
$requiredFields = array_unique($requiredFields); $requiredFields = array_unique($requiredFields);
@ -1199,8 +1199,15 @@ class ComponentbuilderModelJoomla_module extends JModelAdmin
} }
// Set the GUID if empty or not valid // Set the GUID if empty or not valid
if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "joomla_module", $data['id'])) if (empty($data['guid']) && $data['id'] > 0)
{ {
// get the existing one
$data['guid'] = (string) ComponentbuilderHelper::getVar('joomla_module', $data['id'], 'id', 'guid');
}
// Set the GUID if empty or not valid
while (!ComponentbuilderHelper::validGUID($data['guid'], "joomla_module", $data['id']))
{
// must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID(); $data['guid'] = (string) ComponentbuilderHelper::GUID();
} }

View File

@ -479,8 +479,8 @@ class ComponentbuilderModelJoomla_plugin extends JModelAdmin
} }
// Only load the GUID if new item // Only load the GUID if new item (or empty)
if (0 == $id) if (0 == $id || !($val = $form->getValue('guid')))
{ {
$form->setValue('guid', null, ComponentbuilderHelper::GUID()); $form->setValue('guid', null, ComponentbuilderHelper::GUID());
} }
@ -663,7 +663,7 @@ class ComponentbuilderModelJoomla_plugin extends JModelAdmin
public function validate($form, $data, $group = null) public function validate($form, $data, $group = null)
{ {
// check if the not_required field is set // check if the not_required field is set
if (ComponentbuilderHelper::checkString($data['not_required'])) if (isset($data['not_required']) && ComponentbuilderHelper::checkString($data['not_required']))
{ {
$requiredFields = (array) explode(',',(string) $data['not_required']); $requiredFields = (array) explode(',',(string) $data['not_required']);
$requiredFields = array_unique($requiredFields); $requiredFields = array_unique($requiredFields);
@ -1162,8 +1162,15 @@ class ComponentbuilderModelJoomla_plugin extends JModelAdmin
} }
// Set the GUID if empty or not valid // Set the GUID if empty or not valid
if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "joomla_plugin", $data['id'])) if (empty($data['guid']) && $data['id'] > 0)
{ {
// get the existing one
$data['guid'] = (string) ComponentbuilderHelper::getVar('joomla_plugin', $data['id'], 'id', 'guid');
}
// Set the GUID if empty or not valid
while (!ComponentbuilderHelper::validGUID($data['guid'], "joomla_plugin", $data['id']))
{
// must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID(); $data['guid'] = (string) ComponentbuilderHelper::GUID();
} }

View File

@ -249,7 +249,7 @@ class ComponentbuilderModelLanguage_translations extends JModelList
public function getExportData($pks, $user = null) public function getExportData($pks, $user = null)
{ {
// setup the query // setup the query
if (ComponentbuilderHelper::checkArray($pks)) if (($pks_size = ComponentbuilderHelper::checkArray($pks)) !== false || 'bulk' === $pks)
{ {
// Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME) // Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME)
$_export = true; $_export = true;
@ -267,7 +267,24 @@ class ComponentbuilderModelLanguage_translations extends JModelList
// From the componentbuilder_language_translation table // From the componentbuilder_language_translation table
$query->from($db->quoteName('#__componentbuilder_language_translation', 'a')); $query->from($db->quoteName('#__componentbuilder_language_translation', 'a'));
$query->where('a.id IN (' . implode(',',$pks) . ')'); // The bulk export path
if ('bulk' === $pks)
{
$query->where('a.id > 0');
}
// A large array of ID's will not work out well
elseif ($pks_size > 500)
{
// Use lowest ID
$query->where('a.id >= ' . (int) min($pks));
// Use highest ID
$query->where('a.id <= ' . (int) max($pks));
}
// The normal default path
else
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// Implement View Level Access // Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder')) if (!$user->authorise('core.options', 'com_componentbuilder'))
{ {

View File

@ -322,7 +322,7 @@ class ComponentbuilderModelLanguages extends JModelList
public function getExportData($pks, $user = null) public function getExportData($pks, $user = null)
{ {
// setup the query // setup the query
if (ComponentbuilderHelper::checkArray($pks)) if (($pks_size = ComponentbuilderHelper::checkArray($pks)) !== false || 'bulk' === $pks)
{ {
// Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME) // Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME)
$_export = true; $_export = true;
@ -340,7 +340,24 @@ class ComponentbuilderModelLanguages extends JModelList
// From the componentbuilder_language table // From the componentbuilder_language table
$query->from($db->quoteName('#__componentbuilder_language', 'a')); $query->from($db->quoteName('#__componentbuilder_language', 'a'));
$query->where('a.id IN (' . implode(',',$pks) . ')'); // The bulk export path
if ('bulk' === $pks)
{
$query->where('a.id > 0');
}
// A large array of ID's will not work out well
elseif ($pks_size > 500)
{
// Use lowest ID
$query->where('a.id >= ' . (int) min($pks));
// Use highest ID
$query->where('a.id <= ' . (int) max($pks));
}
// The normal default path
else
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// Implement View Level Access // Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder')) if (!$user->authorise('core.options', 'com_componentbuilder'))
{ {

View File

@ -255,7 +255,7 @@ class ComponentbuilderModelLayouts extends JModelList
public function getExportData($pks, $user = null) public function getExportData($pks, $user = null)
{ {
// setup the query // setup the query
if (ComponentbuilderHelper::checkArray($pks)) if (($pks_size = ComponentbuilderHelper::checkArray($pks)) !== false || 'bulk' === $pks)
{ {
// Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME) // Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME)
$_export = true; $_export = true;
@ -273,7 +273,24 @@ class ComponentbuilderModelLayouts extends JModelList
// From the componentbuilder_layout table // From the componentbuilder_layout table
$query->from($db->quoteName('#__componentbuilder_layout', 'a')); $query->from($db->quoteName('#__componentbuilder_layout', 'a'));
$query->where('a.id IN (' . implode(',',$pks) . ')'); // The bulk export path
if ('bulk' === $pks)
{
$query->where('a.id > 0');
}
// A large array of ID's will not work out well
elseif ($pks_size > 500)
{
// Use lowest ID
$query->where('a.id >= ' . (int) min($pks));
// Use highest ID
$query->where('a.id <= ' . (int) max($pks));
}
// The normal default path
else
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// Implement View Level Access // Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder')) if (!$user->authorise('core.options', 'com_componentbuilder'))
{ {

View File

@ -358,8 +358,8 @@ class ComponentbuilderModelLibrary extends JModelAdmin
} }
} }
// Only load the GUID if new item // Only load the GUID if new item (or empty)
if (0 == $id) if (0 == $id || !($val = $form->getValue('guid')))
{ {
$form->setValue('guid', null, ComponentbuilderHelper::GUID()); $form->setValue('guid', null, ComponentbuilderHelper::GUID());
} }
@ -542,7 +542,7 @@ class ComponentbuilderModelLibrary extends JModelAdmin
public function validate($form, $data, $group = null) public function validate($form, $data, $group = null)
{ {
// check if the not_required field is set // check if the not_required field is set
if (ComponentbuilderHelper::checkString($data['not_required'])) if (isset($data['not_required']) && ComponentbuilderHelper::checkString($data['not_required']))
{ {
$requiredFields = (array) explode(',',(string) $data['not_required']); $requiredFields = (array) explode(',',(string) $data['not_required']);
$requiredFields = array_unique($requiredFields); $requiredFields = array_unique($requiredFields);
@ -1048,8 +1048,15 @@ class ComponentbuilderModelLibrary extends JModelAdmin
// Set the GUID if empty or not valid // Set the GUID if empty or not valid
if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "library", $data['id'])) if (empty($data['guid']) && $data['id'] > 0)
{ {
// get the existing one
$data['guid'] = (string) ComponentbuilderHelper::getVar('library', $data['id'], 'id', 'guid');
}
// Set the GUID if empty or not valid
while (!ComponentbuilderHelper::validGUID($data['guid'], "library", $data['id']))
{
// must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID(); $data['guid'] = (string) ComponentbuilderHelper::GUID();
} }

View File

@ -201,7 +201,7 @@ class ComponentbuilderModelPlaceholders extends JModelList
public function getExportData($pks, $user = null) public function getExportData($pks, $user = null)
{ {
// setup the query // setup the query
if (ComponentbuilderHelper::checkArray($pks)) if (($pks_size = ComponentbuilderHelper::checkArray($pks)) !== false || 'bulk' === $pks)
{ {
// Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME) // Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME)
$_export = true; $_export = true;
@ -219,7 +219,24 @@ class ComponentbuilderModelPlaceholders extends JModelList
// From the componentbuilder_placeholder table // From the componentbuilder_placeholder table
$query->from($db->quoteName('#__componentbuilder_placeholder', 'a')); $query->from($db->quoteName('#__componentbuilder_placeholder', 'a'));
$query->where('a.id IN (' . implode(',',$pks) . ')'); // The bulk export path
if ('bulk' === $pks)
{
$query->where('a.id > 0');
}
// A large array of ID's will not work out well
elseif ($pks_size > 500)
{
// Use lowest ID
$query->where('a.id >= ' . (int) min($pks));
// Use highest ID
$query->where('a.id <= ' . (int) max($pks));
}
// The normal default path
else
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// Implement View Level Access // Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder')) if (!$user->authorise('core.options', 'com_componentbuilder'))
{ {

View File

@ -191,7 +191,7 @@ class ComponentbuilderModelServer extends JModelAdmin
* *
* @return mixed An array of data items on success, false on failure. * @return mixed An array of data items on success, false on failure.
*/ */
public function getVyplinked_components() public function getVymlinked_components()
{ {
// Get the user object. // Get the user object.
$user = JFactory::getUser(); $user = JFactory::getUser();
@ -557,7 +557,7 @@ class ComponentbuilderModelServer extends JModelAdmin
public function validate($form, $data, $group = null) public function validate($form, $data, $group = null)
{ {
// check if the not_required field is set // check if the not_required field is set
if (ComponentbuilderHelper::checkString($data['not_required'])) if (isset($data['not_required']) && ComponentbuilderHelper::checkString($data['not_required']))
{ {
$requiredFields = (array) explode(',',(string) $data['not_required']); $requiredFields = (array) explode(',',(string) $data['not_required']);
$requiredFields = array_unique($requiredFields); $requiredFields = array_unique($requiredFields);

View File

@ -244,7 +244,7 @@ class ComponentbuilderModelServers extends JModelList
public function getExportData($pks, $user = null) public function getExportData($pks, $user = null)
{ {
// setup the query // setup the query
if (ComponentbuilderHelper::checkArray($pks)) if (($pks_size = ComponentbuilderHelper::checkArray($pks)) !== false || 'bulk' === $pks)
{ {
// Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME) // Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME)
$_export = true; $_export = true;
@ -262,7 +262,24 @@ class ComponentbuilderModelServers extends JModelList
// From the componentbuilder_server table // From the componentbuilder_server table
$query->from($db->quoteName('#__componentbuilder_server', 'a')); $query->from($db->quoteName('#__componentbuilder_server', 'a'));
$query->where('a.id IN (' . implode(',',$pks) . ')'); // The bulk export path
if ('bulk' === $pks)
{
$query->where('a.id > 0');
}
// A large array of ID's will not work out well
elseif ($pks_size > 500)
{
// Use lowest ID
$query->where('a.id >= ' . (int) min($pks));
// Use highest ID
$query->where('a.id <= ' . (int) max($pks));
}
// The normal default path
else
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// Implement View Level Access // Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder')) if (!$user->authorise('core.options', 'com_componentbuilder'))
{ {

View File

@ -527,8 +527,8 @@ class ComponentbuilderModelSite_view extends JModelAdmin
} }
// Only load the GUID if new item // Only load the GUID if new item (or empty)
if (0 == $id) if (0 == $id || !($val = $form->getValue('guid')))
{ {
$form->setValue('guid', null, ComponentbuilderHelper::GUID()); $form->setValue('guid', null, ComponentbuilderHelper::GUID());
} }
@ -1146,8 +1146,15 @@ class ComponentbuilderModelSite_view extends JModelAdmin
} }
// Set the GUID if empty or not valid // Set the GUID if empty or not valid
if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "site_view", $data['id'])) if (empty($data['guid']) && $data['id'] > 0)
{ {
// get the existing one
$data['guid'] = (string) ComponentbuilderHelper::getVar('site_view', $data['id'], 'id', 'guid');
}
// Set the GUID if empty or not valid
while (!ComponentbuilderHelper::validGUID($data['guid'], "site_view", $data['id']))
{
// must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID(); $data['guid'] = (string) ComponentbuilderHelper::GUID();
} }

View File

@ -287,7 +287,7 @@ class ComponentbuilderModelSite_views extends JModelList
public function getExportData($pks, $user = null) public function getExportData($pks, $user = null)
{ {
// setup the query // setup the query
if (ComponentbuilderHelper::checkArray($pks)) if (($pks_size = ComponentbuilderHelper::checkArray($pks)) !== false || 'bulk' === $pks)
{ {
// Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME) // Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME)
$_export = true; $_export = true;
@ -305,7 +305,24 @@ class ComponentbuilderModelSite_views extends JModelList
// From the componentbuilder_site_view table // From the componentbuilder_site_view table
$query->from($db->quoteName('#__componentbuilder_site_view', 'a')); $query->from($db->quoteName('#__componentbuilder_site_view', 'a'));
$query->where('a.id IN (' . implode(',',$pks) . ')'); // The bulk export path
if ('bulk' === $pks)
{
$query->where('a.id > 0');
}
// A large array of ID's will not work out well
elseif ($pks_size > 500)
{
// Use lowest ID
$query->where('a.id >= ' . (int) min($pks));
// Use highest ID
$query->where('a.id <= ' . (int) max($pks));
}
// The normal default path
else
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// Implement View Level Access // Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder')) if (!$user->authorise('core.options', 'com_componentbuilder'))
{ {

View File

@ -243,8 +243,8 @@ class ComponentbuilderModelSnippet extends JModelAdmin
} }
} }
// Only load the GUID if new item // Only load the GUID if new item (or empty)
if (0 == $id) if (0 == $id || !($val = $form->getValue('guid')))
{ {
$form->setValue('guid', null, ComponentbuilderHelper::GUID()); $form->setValue('guid', null, ComponentbuilderHelper::GUID());
} }
@ -852,8 +852,15 @@ class ComponentbuilderModelSnippet extends JModelAdmin
} }
// Set the GUID if empty or not valid // Set the GUID if empty or not valid
if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "snippet", $data['id'])) if (empty($data['guid']) && $data['id'] > 0)
{ {
// get the existing one
$data['guid'] = (string) ComponentbuilderHelper::getVar('snippet', $data['id'], 'id', 'guid');
}
// Set the GUID if empty or not valid
while (!ComponentbuilderHelper::validGUID($data['guid'], "snippet", $data['id']))
{
// must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID(); $data['guid'] = (string) ComponentbuilderHelper::GUID();
} }

View File

@ -343,7 +343,7 @@ class ComponentbuilderModelSnippets extends JModelList
public function getExportData($pks, $user = null) public function getExportData($pks, $user = null)
{ {
// setup the query // setup the query
if (ComponentbuilderHelper::checkArray($pks)) if (($pks_size = ComponentbuilderHelper::checkArray($pks)) !== false || 'bulk' === $pks)
{ {
// Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME) // Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME)
$_export = true; $_export = true;
@ -361,7 +361,24 @@ class ComponentbuilderModelSnippets extends JModelList
// From the componentbuilder_snippet table // From the componentbuilder_snippet table
$query->from($db->quoteName('#__componentbuilder_snippet', 'a')); $query->from($db->quoteName('#__componentbuilder_snippet', 'a'));
$query->where('a.id IN (' . implode(',',$pks) . ')'); // The bulk export path
if ('bulk' === $pks)
{
$query->where('a.id > 0');
}
// A large array of ID's will not work out well
elseif ($pks_size > 500)
{
// Use lowest ID
$query->where('a.id >= ' . (int) min($pks));
// Use highest ID
$query->where('a.id <= ' . (int) max($pks));
}
// The normal default path
else
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// Implement View Level Access // Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder')) if (!$user->authorise('core.options', 'com_componentbuilder'))
{ {

View File

@ -255,7 +255,7 @@ class ComponentbuilderModelTemplates extends JModelList
public function getExportData($pks, $user = null) public function getExportData($pks, $user = null)
{ {
// setup the query // setup the query
if (ComponentbuilderHelper::checkArray($pks)) if (($pks_size = ComponentbuilderHelper::checkArray($pks)) !== false || 'bulk' === $pks)
{ {
// Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME) // Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME)
$_export = true; $_export = true;
@ -273,7 +273,24 @@ class ComponentbuilderModelTemplates extends JModelList
// From the componentbuilder_template table // From the componentbuilder_template table
$query->from($db->quoteName('#__componentbuilder_template', 'a')); $query->from($db->quoteName('#__componentbuilder_template', 'a'));
$query->where('a.id IN (' . implode(',',$pks) . ')'); // The bulk export path
if ('bulk' === $pks)
{
$query->where('a.id > 0');
}
// A large array of ID's will not work out well
elseif ($pks_size > 500)
{
// Use lowest ID
$query->where('a.id >= ' . (int) min($pks));
// Use highest ID
$query->where('a.id <= ' . (int) max($pks));
}
// The normal default path
else
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// Implement View Level Access // Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder')) if (!$user->authorise('core.options', 'com_componentbuilder'))
{ {

View File

@ -199,7 +199,7 @@ class ComponentbuilderModelValidation_rules extends JModelList
public function getExportData($pks, $user = null) public function getExportData($pks, $user = null)
{ {
// setup the query // setup the query
if (ComponentbuilderHelper::checkArray($pks)) if (($pks_size = ComponentbuilderHelper::checkArray($pks)) !== false || 'bulk' === $pks)
{ {
// Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME) // Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME)
$_export = true; $_export = true;
@ -217,7 +217,24 @@ class ComponentbuilderModelValidation_rules extends JModelList
// From the componentbuilder_validation_rule table // From the componentbuilder_validation_rule table
$query->from($db->quoteName('#__componentbuilder_validation_rule', 'a')); $query->from($db->quoteName('#__componentbuilder_validation_rule', 'a'));
$query->where('a.id IN (' . implode(',',$pks) . ')'); // The bulk export path
if ('bulk' === $pks)
{
$query->where('a.id > 0');
}
// A large array of ID's will not work out well
elseif ($pks_size > 500)
{
// Use lowest ID
$query->where('a.id >= ' . (int) min($pks));
// Use highest ID
$query->where('a.id <= ' . (int) max($pks));
}
// The normal default path
else
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// Implement View Level Access // Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder')) if (!$user->authorise('core.options', 'com_componentbuilder'))
{ {

File diff suppressed because one or more lines are too long

View File

@ -63,7 +63,7 @@ $componentParams = $this->params; // will be removed just use $this->params inst
<?php $this->tab_name = 'admin_custom_tabsTab'; ?> <?php $this->tab_name = 'admin_custom_tabsTab'; ?>
<?php echo JLayoutHelper::render('joomla.edit.params', $this); ?> <?php echo JLayoutHelper::render('joomla.edit.params', $this); ?>
<?php if ($this->canDo->get('admin_custom_tabs.delete') || $this->canDo->get('admin_custom_tabs.edit.created_by') || $this->canDo->get('admin_custom_tabs.edit.state') || $this->canDo->get('admin_custom_tabs.edit.created')) : ?> <?php if ($this->canDo->get('admin_custom_tabs.edit.created_by') || $this->canDo->get('admin_custom_tabs.edit.created') || $this->canDo->get('admin_custom_tabs.edit.state') || ($this->canDo->get('admin_custom_tabs.delete') && $this->canDo->get('admin_custom_tabs.edit.state'))) : ?>
<?php echo JHtml::_('bootstrap.addTab', 'admin_custom_tabsTab', 'publishing', JText::_('COM_COMPONENTBUILDER_ADMIN_CUSTOM_TABS_PUBLISHING', true)); ?> <?php echo JHtml::_('bootstrap.addTab', 'admin_custom_tabsTab', 'publishing', JText::_('COM_COMPONENTBUILDER_ADMIN_CUSTOM_TABS_PUBLISHING', true)); ?>
<div class="row-fluid form-horizontal-desktop"> <div class="row-fluid form-horizontal-desktop">
<div class="span6"> <div class="span6">

View File

@ -190,6 +190,12 @@ class ComponentbuilderViewAdmin_custom_tabs extends JViewLegacy
$this->document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/admin_custom_tabs.css", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css'); $this->document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/admin_custom_tabs.css", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript'); $this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/admin_custom_tabs/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript'); $this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/admin_custom_tabs/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
JText::script('view not acceptable. Error'); JText::script('view not acceptable. Error');
} }
} }

View File

@ -63,7 +63,7 @@ $componentParams = $this->params; // will be removed just use $this->params inst
<?php $this->tab_name = 'admin_fieldsTab'; ?> <?php $this->tab_name = 'admin_fieldsTab'; ?>
<?php echo JLayoutHelper::render('joomla.edit.params', $this); ?> <?php echo JLayoutHelper::render('joomla.edit.params', $this); ?>
<?php if ($this->canDo->get('admin_fields.delete') || $this->canDo->get('admin_fields.edit.created_by') || $this->canDo->get('admin_fields.edit.state') || $this->canDo->get('admin_fields.edit.created')) : ?> <?php if ($this->canDo->get('admin_fields.edit.created_by') || $this->canDo->get('admin_fields.edit.created') || $this->canDo->get('admin_fields.edit.state') || ($this->canDo->get('admin_fields.delete') && $this->canDo->get('admin_fields.edit.state'))) : ?>
<?php echo JHtml::_('bootstrap.addTab', 'admin_fieldsTab', 'publishing', JText::_('COM_COMPONENTBUILDER_ADMIN_FIELDS_PUBLISHING', true)); ?> <?php echo JHtml::_('bootstrap.addTab', 'admin_fieldsTab', 'publishing', JText::_('COM_COMPONENTBUILDER_ADMIN_FIELDS_PUBLISHING', true)); ?>
<div class="row-fluid form-horizontal-desktop"> <div class="row-fluid form-horizontal-desktop">
<div class="span6"> <div class="span6">

View File

@ -191,12 +191,15 @@ class ComponentbuilderViewAdmin_fields extends JViewLegacy
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript'); $this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/admin_fields/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript'); $this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/admin_fields/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
// add the Uikit v2 style sheets // add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css'); $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
// add Uikit v2 JavaScripts // add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript'); $this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
// add the Uikit v2 extra style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
// add Uikit v2 extra JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true); $this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true); $this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
JText::script('COM_COMPONENTBUILDER_THE_BNONE_DBB_OPTION_WILL_REMOVE_THIS_FIELD_FROM_BEING_SAVED_IN_THE_DATABASE'); JText::script('COM_COMPONENTBUILDER_THE_BNONE_DBB_OPTION_WILL_REMOVE_THIS_FIELD_FROM_BEING_SAVED_IN_THE_DATABASE');

View File

@ -63,7 +63,7 @@ $componentParams = $this->params; // will be removed just use $this->params inst
<?php $this->tab_name = 'admin_fields_conditionsTab'; ?> <?php $this->tab_name = 'admin_fields_conditionsTab'; ?>
<?php echo JLayoutHelper::render('joomla.edit.params', $this); ?> <?php echo JLayoutHelper::render('joomla.edit.params', $this); ?>
<?php if ($this->canDo->get('admin_fields_conditions.delete') || $this->canDo->get('admin_fields_conditions.edit.created_by') || $this->canDo->get('admin_fields_conditions.edit.state') || $this->canDo->get('admin_fields_conditions.edit.created')) : ?> <?php if ($this->canDo->get('admin_fields_conditions.edit.created_by') || $this->canDo->get('admin_fields_conditions.edit.created') || $this->canDo->get('admin_fields_conditions.edit.state') || ($this->canDo->get('admin_fields_conditions.delete') && $this->canDo->get('admin_fields_conditions.edit.state'))) : ?>
<?php echo JHtml::_('bootstrap.addTab', 'admin_fields_conditionsTab', 'publishing', JText::_('COM_COMPONENTBUILDER_ADMIN_FIELDS_CONDITIONS_PUBLISHING', true)); ?> <?php echo JHtml::_('bootstrap.addTab', 'admin_fields_conditionsTab', 'publishing', JText::_('COM_COMPONENTBUILDER_ADMIN_FIELDS_CONDITIONS_PUBLISHING', true)); ?>
<div class="row-fluid form-horizontal-desktop"> <div class="row-fluid form-horizontal-desktop">
<div class="span6"> <div class="span6">

View File

@ -192,6 +192,12 @@ class ComponentbuilderViewAdmin_fields_conditions extends JViewLegacy
$this->document->addScriptDeclaration("var token = '".JSession::getFormToken()."';"); $this->document->addScriptDeclaration("var token = '".JSession::getFormToken()."';");
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript'); $this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/admin_fields_conditions/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript'); $this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/admin_fields_conditions/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
JText::script('view not acceptable. Error'); JText::script('view not acceptable. Error');
} }
} }

View File

@ -63,7 +63,7 @@ $componentParams = $this->params; // will be removed just use $this->params inst
<?php $this->tab_name = 'admin_fields_relationsTab'; ?> <?php $this->tab_name = 'admin_fields_relationsTab'; ?>
<?php echo JLayoutHelper::render('joomla.edit.params', $this); ?> <?php echo JLayoutHelper::render('joomla.edit.params', $this); ?>
<?php if ($this->canDo->get('admin_fields_relations.delete') || $this->canDo->get('admin_fields_relations.edit.created_by') || $this->canDo->get('admin_fields_relations.edit.state') || $this->canDo->get('admin_fields_relations.edit.created')) : ?> <?php if ($this->canDo->get('admin_fields_relations.edit.created_by') || $this->canDo->get('admin_fields_relations.edit.created') || $this->canDo->get('admin_fields_relations.edit.state') || ($this->canDo->get('admin_fields_relations.delete') && $this->canDo->get('admin_fields_relations.edit.state'))) : ?>
<?php echo JHtml::_('bootstrap.addTab', 'admin_fields_relationsTab', 'publishing', JText::_('COM_COMPONENTBUILDER_ADMIN_FIELDS_RELATIONS_PUBLISHING', true)); ?> <?php echo JHtml::_('bootstrap.addTab', 'admin_fields_relationsTab', 'publishing', JText::_('COM_COMPONENTBUILDER_ADMIN_FIELDS_RELATIONS_PUBLISHING', true)); ?>
<div class="row-fluid form-horizontal-desktop"> <div class="row-fluid form-horizontal-desktop">
<div class="span6"> <div class="span6">

View File

@ -192,6 +192,12 @@ class ComponentbuilderViewAdmin_fields_relations extends JViewLegacy
$this->document->addScriptDeclaration("var token = '".JSession::getFormToken()."';"); $this->document->addScriptDeclaration("var token = '".JSession::getFormToken()."';");
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript'); $this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/admin_fields_relations/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript'); $this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/admin_fields_relations/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
// add var key // add var key
$this->document->addScriptDeclaration("var vastDevMod = '" . $this->get('VDM') . "';"); $this->document->addScriptDeclaration("var vastDevMod = '" . $this->get('VDM') . "';");
// add return_here // add return_here

View File

@ -161,7 +161,7 @@ $componentParams = $this->params; // will be removed just use $this->params inst
<?php $this->tab_name = 'admin_viewTab'; ?> <?php $this->tab_name = 'admin_viewTab'; ?>
<?php echo JLayoutHelper::render('joomla.edit.params', $this); ?> <?php echo JLayoutHelper::render('joomla.edit.params', $this); ?>
<?php if ($this->canDo->get('admin_view.delete') || $this->canDo->get('admin_view.edit.created_by') || $this->canDo->get('admin_view.edit.state') || $this->canDo->get('admin_view.edit.created')) : ?> <?php if ($this->canDo->get('admin_view.edit.created_by') || $this->canDo->get('admin_view.edit.created') || $this->canDo->get('admin_view.edit.state') || ($this->canDo->get('admin_view.delete') && $this->canDo->get('admin_view.edit.state'))) : ?>
<?php echo JHtml::_('bootstrap.addTab', 'admin_viewTab', 'publishing', JText::_('COM_COMPONENTBUILDER_ADMIN_VIEW_PUBLISHING', true)); ?> <?php echo JHtml::_('bootstrap.addTab', 'admin_viewTab', 'publishing', JText::_('COM_COMPONENTBUILDER_ADMIN_VIEW_PUBLISHING', true)); ?>
<div class="row-fluid form-horizontal-desktop"> <div class="row-fluid form-horizontal-desktop">
<div class="span6"> <div class="span6">

Some files were not shown because too many files have changed in this diff Show More