Better filters in admin areas of JCB. #664

Merged
Llewellyn merged 7 commits from staging into master 2021-02-03 10:38:06 +00:00
72 changed files with 3528 additions and 1992 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 save 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.12.4) 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.12.6) 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)
@ -143,12 +143,12 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
+ *First Build*: 30th April, 2015
+ *Last Build*: 3rd January, 2021
+ *Version*: 2.12.4
+ *Last Build*: 2nd February, 2021
+ *Version*: 2.12.6
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
+ *Line count*: **291460**
+ *Field count*: **1609**
+ *Line count*: **293026**
+ *Field count*: **1611**
+ *File count*: **1934**
+ *Folder count*: **322**

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 save 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.12.4) 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.12.6) 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)
@ -143,12 +143,12 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
+ *First Build*: 30th April, 2015
+ *Last Build*: 3rd January, 2021
+ *Version*: 2.12.4
+ *Last Build*: 2nd February, 2021
+ *Version*: 2.12.6
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
+ *Line count*: **291460**
+ *Field count*: **1609**
+ *Line count*: **293026**
+ *Field count*: **1611**
+ *File count*: **1934**
+ *Folder count*: **322**

View File

@ -857,9 +857,9 @@
min="1"
showon="development_method:2">
<form hidden="true" name="list_expansion_modal" repeat="true">
<!-- Component Field. Type: Component. (custom) -->
<!-- Component Field. Type: Joomlacomponent. (custom) -->
<field
type="component"
type="joomlacomponent"
name="component"
label="COM_COMPONENTBUILDER_CONFIG_COMPONENT_LABEL"
class="list_class"

View File

@ -45,6 +45,7 @@ class ComponentbuilderControllerAjax extends JControllerLegacy
$this->registerTask('getAjaxDisplay', 'ajax');
$this->registerTask('getLinked', 'ajax');
$this->registerTask('checkAliasField', 'ajax');
$this->registerTask('checkCategoryField', 'ajax');
$this->registerTask('templateDetails', 'ajax');
$this->registerTask('getLayoutDetails', 'ajax');
$this->registerTask('dbTableColumns', 'ajax');
@ -768,6 +769,44 @@ class ComponentbuilderControllerAjax extends JControllerLegacy
}
}
break;
case 'checkCategoryField':
try
{
$returnRaw = $jinput->get('raw', false, 'BOOLEAN');
$typeValue = $jinput->get('type', NULL, 'ALNUM');
if($typeValue && $user->id != 0)
{
$result = $this->getModel('ajax')->checkCategoryField($typeValue);
}
else
{
$result = false;
}
if($callback = $jinput->get('callback', null, 'CMD'))
{
echo $callback . "(".json_encode($result).");";
}
elseif($returnRaw)
{
echo json_encode($result);
}
else
{
echo "(".json_encode($result).");";
}
}
catch(Exception $e)
{
if($callback = $jinput->get('callback', null, 'CMD'))
{
echo $callback."(".json_encode($e).");";
}
else
{
echo "(".json_encode($e).");";
}
}
break;
case 'templateDetails':
try
{

View File

@ -4725,19 +4725,40 @@ class Fields extends Structure
}
else
{
// set lang (just in case)
$listLangName = $langView . '_'
. ComponentbuilderHelper::safeFieldName($name, true);
// set field name
$listFieldName = ComponentbuilderHelper::safeString($name, 'W');
// add to lang array
$this->setLangContent(
$this->lang, $listLangName, $listFieldName
);
// if label was set use instead
if (ComponentbuilderHelper::checkString($langLabel))
{
$listLangName = $langLabel;
// get field label from the lang label
if (isset($this->langContent[$this->lang][$langLabel]))
{
$listFieldName
= $this->langContent[$this->lang][$langLabel];
}
else
{
// get it from the field xml string
$listFieldName = (string) $this->setPlaceholders(
ComponentbuilderHelper::getBetween(
$field['settings']->xml, 'label="',
'"'
), $this->placeholders
);
}
// make sure there is no html in the list field name
$listFieldName = strip_tags($listFieldName);
}
else
{
// set lang (just in case)
$listLangName = $langView . '_'
. ComponentbuilderHelper::safeFieldName($name, true);
// set field name
$listFieldName = ComponentbuilderHelper::safeString($name, 'W');
// add to lang array
$this->setLangContent(
$this->lang, $listLangName, $listFieldName
);
}
}
// build the list values

View File

@ -23390,27 +23390,27 @@ class Interpretation extends Fields
);
}
$catArray = array();
// loop over all the admin views
foreach ($this->componentData->admin_views as $view)
{
// set custom menu
$menus .= $this->addCustomSubMenu($view, $codeName, $lang);
$nameSingle = ComponentbuilderHelper::safeString(
$view['settings']->name_single
$menus .= $this->addCustomSubMenu(
$view, $codeName, $lang
);
$nameList = ComponentbuilderHelper::safeString(
$view['settings']->name_list
);
$nameUpper = ComponentbuilderHelper::safeString(
$nameSingleCode = $view['settings']->name_single_code;
$nameListCode = $view['settings']->name_list_code;
$nameUpper = ComponentbuilderHelper::safeString(
$view['settings']->name_list, 'U'
);
// check if view is set to be in the sub-menu
if (isset($view['submenu']) && $view['submenu'] == 1)
{
// setup access defaults
$tab = "";
$coreLoad = false;
if (isset($this->permissionCore[$nameSingle]))
if (isset($this->permissionCore[$nameSingleCode]))
{
$core = $this->permissionCore[$nameSingle];
$core = $this->permissionCore[$nameSingleCode];
$coreLoad = true;
}
// check if the item has permissions.
@ -23420,14 +23420,14 @@ class Interpretation extends Fields
$this->permissionBuilder['global'][$core['core.access']]
)
&& in_array(
$nameSingle,
$nameSingleCode,
$this->permissionBuilder['global'][$core['core.access']]
))
{
$menus .= PHP_EOL . $this->_t(2)
. "if (\$user->authorise('" . $core['core.access']
. "', 'com_" . $codeName
. "') && \$user->authorise('" . $nameSingle
. "') && \$user->authorise('" . $nameSingleCode
. ".submenu', 'com_" . $codeName . "'))";
$menus .= PHP_EOL . $this->_t(2) . "{";
// add tab to lines to follow
@ -23436,33 +23436,38 @@ class Interpretation extends Fields
$menus .= PHP_EOL . $this->_t(2) . $tab
. "JHtmlSidebar::addEntry(JText:" . ":_('" . $lang . "_"
. $nameUpper . "'), 'index.php?option=com_" . $codeName
. "&view=" . $nameList . "', \$submenu === '"
. $nameList . "');";
. "&view=" . $nameListCode . "', \$submenu === '"
. $nameListCode . "');";
$this->setLangContent(
$this->lang, $lang . "_" . $nameUpper,
$view['settings']->name_list
);
// check if category has another name
if (isset($this->catOtherName[$nameList])
if (isset($this->catOtherName[$nameListCode])
&& ComponentbuilderHelper::checkArray(
$this->catOtherName[$nameList]
$this->catOtherName[$nameListCode]
))
{
$otherViews = $this->catOtherName[$nameList]['views'];
$otherViews
= $this->catOtherName[$nameListCode]['views'];
}
else
{
$otherViews = $nameList;
$otherViews = $nameListCode;
}
if (isset($this->categoryBuilder[$nameList])
// first check if category sub-menu should be added
// then check if view has category, if true add sub-menu for it
if ($view['settings']->add_category_submenu == 1
&& isset($this->categoryBuilder[$nameListCode])
&& ComponentbuilderHelper::checkArray(
$this->categoryBuilder[$nameList]
$this->categoryBuilder[$nameListCode]
)
&& !in_array($otherViews, $catArray))
{
// get the extension array
$_extension_array = (array) explode(
'.', $this->categoryBuilder[$nameList]['extension']
'.',
$this->categoryBuilder[$nameListCode]['extension']
);
// set the menu selection
if (isset($_extension_array[1]))
@ -23476,9 +23481,9 @@ class Interpretation extends Fields
// now load the menus
$menus .= PHP_EOL . $this->_t(2) . $tab
. "JHtmlSidebar::addEntry(JText:" . ":_('"
. $this->categoryBuilder[$nameList]['name']
. $this->categoryBuilder[$nameListCode]['name']
. "'), 'index.php?option=com_categories&view=categories&extension="
. $this->categoryBuilder[$nameList]['extension']
. $this->categoryBuilder[$nameListCode]['extension']
. "', \$submenu === '" . $_menu . "');";
// make sure we add a category only once
$catArray[] = $otherViews;
@ -23490,7 +23495,7 @@ class Interpretation extends Fields
$this->permissionBuilder['global'][$core['core.access']]
)
&& in_array(
$nameSingle,
$nameSingleCode,
$this->permissionBuilder['global'][$core['core.access']]
))
{
@ -23508,13 +23513,13 @@ class Interpretation extends Fields
. "JHtmlSidebar::addEntry(JText:" . ":_('" . $lang . "_"
. $nameUpper
. "_FIELDS'), 'index.php?option=com_fields&context=com_"
. $codeName . "." . $nameSingle
. $codeName . "." . $nameSingleCode
. "', \$submenu === 'fields.fields');";
$menus .= PHP_EOL . $this->_t(3)
. "JHtmlSidebar::addEntry(JText:" . ":_('" . $lang . "_"
. $nameUpper
. "_FIELDS_GROUPS'), 'index.php?option=com_fields&view=groups&context=com_"
. $codeName . "." . $nameSingle
. $codeName . "." . $nameSingleCode
. "', \$submenu === 'fields.groups');";
$menus .= PHP_EOL . $this->_t(2) . "}";
$this->setLangContent(
@ -23527,9 +23532,10 @@ class Interpretation extends Fields
$view['settings']->name_list . ' Field Groups'
);
// build uninstall script for fields
$this->uninstallScriptBuilder[$nameSingle] = 'com_'
. $codeName . '.' . $nameSingle;
$this->uninstallScriptFields[$nameSingle] = $nameSingle;
$this->uninstallScriptBuilder[$nameSingleCode] = 'com_'
. $codeName . '.' . $nameSingleCode;
$this->uninstallScriptFields[$nameSingleCode]
= $nameSingleCode;
}
}
if (isset($this->lastCustomSubMenu)

View File

@ -1970,7 +1970,6 @@ abstract class ComponentbuilderHelper
}
return false;
}
/**
* The array of dynamic content
*
@ -3669,7 +3668,7 @@ abstract class ComponentbuilderHelper
protected static $fieldGroups = array(
'default' => array(
'accesslevel', 'cachehandler', 'calendar', 'captcha', 'category', 'checkbox', 'checkboxes', 'chromestyle',
'color', 'combo', 'componentlayout', 'contentlanguage', 'contenttype', 'databaseconnection', // 'components', (TODO) must be added but still in use as a custom field in JCB
'color', 'combo', 'componentlayout', 'contentlanguage', 'contenttype', 'databaseconnection', 'components',
'editor', 'editors', 'email', 'file', 'file', 'filelist', 'folderlist', 'groupedlist', 'headertag', 'helpsite', 'hidden', 'imagelist',
'integer', 'language', 'list', 'media', 'menu', 'menuitem', 'meter', 'modulelayout', 'moduleorder', 'moduleposition',
'moduletag', 'note', 'number', 'password', 'plugins', 'predefinedlist', 'radio', 'range', 'repeatable', 'rules',
@ -3681,14 +3680,14 @@ abstract class ComponentbuilderHelper
'moduleorder', 'moduletag', 'number', 'password', 'range', 'rules', 'tag', 'tel', 'text', 'textarea', 'timezone', 'url', 'user', 'usergroup'
),
'option' => array(
'accesslevel', 'category', 'checkboxes', 'combo', 'contentlanguage', 'databaseconnection', // 'components', (TODO) must be added but still in use as a custom field in JCB
'accesslevel', 'category', 'checkboxes', 'combo', 'contentlanguage', 'databaseconnection', 'components',
'filelist', 'folderlist', 'imagelist', 'list', 'plugins', 'predefinedlist', 'radio', 'sessionhandler', 'sql', 'groupedlist'
),
'text' => array(
'calendar', 'color', 'editor', 'email', 'number', 'password', 'range', 'tel', 'text', 'textarea', 'url'
),
'list' => array(
'checkbox', 'checkboxes', 'list', 'radio', 'groupedlist'
'checkbox', 'checkboxes', 'list', 'radio', 'groupedlist', 'combo'
),
'dynamic' => array(
'category', 'file', 'filelist', 'folderlist', 'headertag', 'imagelist', 'integer', 'media', 'meter', 'rules', 'tag', 'timezone', 'user'
@ -5907,6 +5906,571 @@ abstract class ComponentbuilderHelper
}
/**
* get extensions grouped list xml
**/
public static function getExtensionGroupedListXml()
{
// the extension types
$extensions = array(
'joomla_component' => 'COM_COMPONENTBUILDER_COMPONENT',
'joomla_module' => 'COM_COMPONENTBUILDER_MODULE',
'joomla_plugin' => 'COM_COMPONENTBUILDER_PLUGIN'
);
// get the extension values
foreach ($extensions as $extension => $label)
{
${$extension} = self::getByTypeTheIdsSystemNames($extension);
}
$xml = new DOMDocument();
$xml->formatOutput = true;
$root = $xml->createElement('field');
$root->setAttributeNode(new DOMAttr('name', 'extension'));
$root->setAttributeNode(new DOMAttr('type', 'groupedlist'));
$root->setAttributeNode(new DOMAttr('onchange', 'this.form.submit();'));
$root
->appendChild($xml->createElement('option', '- ' . JText::_('COM_COMPONENTBUILDER_SELECT_EXTENSION') . ' -'))
->setAttributeNode(new DOMAttr('value', ''));
foreach ($extensions as $extension => $label)
{
$extension_node = $xml->createElement('group');
$extension_node->setAttributeNode(new DOMAttr('label', $label));
if (!self::checkArray(${$extension}))
{
$extension_node
->appendChild($xml->createElement('option', '- ' . JText::_('COM_COMPONENTBUILDER_NONE') . ' -'))
->setAttributeNode(new DOMAttr('disabled', 'true'));
}
else
{
foreach (${$extension} as $id => $element)
{
$extension_node
->appendChild($xml->createElement('option', $element))
->setAttributeNode(new DOMAttr('value', $extension . '__' . $id));
}
}
$root->appendChild($extension_node);
}
$xml->appendChild($root);
return $xml->saveXML();
}
/**
* get by type the ids and system names
**/
public static function getByTypeTheIdsSystemNames($type, $limiter = null)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select($db->quoteName(array('id', 'system_name')))
->from($db->quoteName('#__componentbuilder_' . $type))
->where($db->quoteName('published') . ' >= 1')
->order($db->quoteName('modified') . ' desc')
->order($db->quoteName('created') . ' desc');
// check if we have a limter for admin views
if ($type === 'admin_view' && $limiter)
{
// first get all views
$adminviewIds = array();
// if this is a plugin or a module, then no views
if (strpos($limiter, 'joomla_component') !== false)
{
$component = (int) str_replace('joomla_component__', '', $limiter);
// get the views of this component
if ($addViews = self::getVar('component_admin_views', (int) $component, 'joomla_component', 'addadmin_views'))
{
if (self::checkJson($addViews))
{
$addViews = json_decode($addViews, true);
if (self::checkArray($addViews))
{
foreach($addViews as $addView)
{
if (isset($addView['adminview']))
{
$adminviewIds[(int) $addView['adminview']] = (int) $addView['adminview'];
}
}
}
}
}
}
// now check if we still have admin views
if (self::checkArray($adminviewIds))
{
$query->where($db->quoteName('id') . ' IN (' . implode(',', $adminviewIds) . ')');
}
else
{
return false;
}
}
$db->setQuery($query);
$db->execute();
if ($db->getNumRows())
{
return $db->loadAssocList('id', 'system_name');
}
return false;
}
/**
* get any area linked IDs
*/
public static function getAreaLinkedIDs($extension, $type)
{
// What ever...
if ($type === 'joomla_component_admin_views')
{
return self::getComponentAdminViewsIDs($extension);
}
elseif ($type === 'joomla_component_custom_admin_views')
{
return self::getComponentCustomAdminViewsIDs($extension);
}
elseif ($type === 'joomla_component_site_views')
{
return self::getComponentSiteViewsIDs($extension);
}
elseif ($type === 'joomla_component')
{
return self::getComponentFieldsIDs($extension);
}
elseif ($type === 'joomla_module')
{
return self::getModuleFieldsIDs($extension);
}
elseif ($type === 'joomla_plugin')
{
return self::getPluginFieldsIDs($extension);
}
elseif ($type === 'admin_view')
{
return self::getAdminViewFieldsIDs($extension);
}
return false;
}
/**
* get a component admin views IDs
*/
public static function getComponentAdminViewsIDs($id)
{
// get all this components views
$adminviewIds = array();
// get the views of this component
if ($addViews = self::getVar('component_admin_views', (int) $id, 'joomla_component', 'addadmin_views'))
{
if (self::checkJson($addViews))
{
$addViews = json_decode($addViews, true);
if (self::checkArray($addViews))
{
foreach($addViews as $addView)
{
if (isset($addView['adminview']))
{
$adminviewIds[(int) $addView['adminview']] = (int) $addView['adminview'];
}
}
}
}
}
// check that we have fields
if (self::checkArray($adminviewIds))
{
return array_values($adminviewIds);
}
return false;
}
/**
* get a component custom admin views IDs
*/
public static function getComponentCustomAdminViewsIDs($id)
{
// get all this components views
$adminviewIds = array();
// get the views of this component
if ($addViews = self::getVar('component_custom_admin_views', (int) $id, 'joomla_component', 'addcustom_admin_views'))
{
if (self::checkJson($addViews))
{
$addViews = json_decode($addViews, true);
if (self::checkArray($addViews))
{
foreach($addViews as $addView)
{
if (isset($addView['customadminview']))
{
$adminviewIds[(int) $addView['customadminview']] = (int) $addView['customadminview'];
}
}
}
}
}
// check that we have fields
if (self::checkArray($adminviewIds))
{
return array_values($adminviewIds);
}
return false;
}
/**
* get a component site views IDs
*/
public static function getComponentSiteViewsIDs($id)
{
// get all this components views
$adminviewIds = array();
// get the views of this component
if ($addViews = self::getVar('component_site_views', (int) $id, 'joomla_component', 'addsite_views'))
{
if (self::checkJson($addViews))
{
$addViews = json_decode($addViews, true);
if (self::checkArray($addViews))
{
foreach($addViews as $addView)
{
if (isset($addView['siteview']))
{
$adminviewIds[(int) $addView['siteview']] = (int) $addView['siteview'];
}
}
}
}
}
// check that we have fields
if (self::checkArray($adminviewIds))
{
return array_values($adminviewIds);
}
return false;
}
/**
* get a component fields IDs
*/
public static function getComponentFieldsIDs($id)
{
// we start the field array
$fieldIds = array();
// first get all views
$adminviewIds = array();
// get the views of this component
if ($addViews = self::getVar('component_admin_views', (int) $id, 'joomla_component', 'addadmin_views'))
{
if (self::checkJson($addViews))
{
$addViews = json_decode($addViews, true);
if (self::checkArray($addViews))
{
foreach($addViews as $addView)
{
if (isset($addView['adminview']))
{
$adminviewIds[(int) $addView['adminview']] = (int) $addView['adminview'];
}
}
}
}
}
// check that we have views
if (self::checkArray($adminviewIds))
{
foreach ($adminviewIds as $adminView)
{
// get all the fields linked to the admin view
if ($addFields = self::getVar('admin_fields', (int) $adminView, 'admin_view', 'addfields'))
{
if (self::checkJson($addFields))
{
$addFields = json_decode($addFields, true);
if (self::checkArray($addFields))
{
foreach($addFields as $addField)
{
if (isset($addField['field']))
{
$fieldIds[(int) $addField['field']] = (int) $addField['field'];
}
}
}
}
}
}
}
// get config values
if ($addconfig = self::getVar('component_config', (int) $id, 'joomla_component', 'addconfig'))
{
if (self::checkJson($addconfig))
{
$addconfig = json_decode($addconfig, true);
if (self::checkArray($addconfig))
{
foreach($addconfig as $addconf)
{
if (isset($addconf['field']))
{
$fieldIds[(int) $addconf['field']] = (int) $addconf['field'];
}
}
}
}
}
// check that we have fields
if (self::checkArray($fieldIds))
{
return array_values($fieldIds);
}
return false;
}
/**
* get a module fields IDs
*/
public static function getModuleFieldsIDs($id)
{
// we start the field array
$fieldIds = array();
if ($fields = self::getVar('joomla_module', (int) $id, 'id', 'fields'))
{
if (self::checkJson($fields))
{
$fields = json_decode($fields, true);
if (self::checkArray($fields))
{
foreach($fields as $form)
{
if (isset($form['fields']) && self::checkArray($form['fields']))
{
foreach ($form['fields'] as $field)
{
if (isset($field['field']))
{
$fieldIds[(int) $field['field']] = (int) $field['field'];
}
}
}
}
}
}
}
// check that we have fields
if (self::checkArray($fieldIds))
{
return array_values($fieldIds);
}
return false;
}
/**
* get a plugin fields IDs
*/
public static function getPluginFieldsIDs($id)
{
// we start the field array
$fieldIds = array();
if ($fields = self::getVar('joomla_plugin', (int) $id, 'id', 'fields'))
{
if (self::checkJson($fields))
{
$fields = json_decode($fields, true);
if (self::checkArray($fields))
{
foreach($fields as $form)
{
if (isset($form['fields']) && self::checkArray($form['fields']))
{
foreach ($form['fields'] as $field)
{
if (isset($field['field']))
{
$fieldIds[(int) $field['field']] = (int) $field['field'];
}
}
}
}
}
}
}
// check that we have fields
if (self::checkArray($fieldIds))
{
return array_values($fieldIds);
}
return false;
}
/**
* get an admin view fields IDs
*/
public static function getAdminViewFieldsIDs($id)
{
// we start the field array
$fieldIds = array();
// get all the fields linked to the admin view
if ($addFields = self::getVar('admin_fields', (int) $id, 'admin_view', 'addfields'))
{
if (self::checkJson($addFields))
{
$addFields = json_decode($addFields, true);
if (self::checkArray($addFields))
{
foreach($addFields as $addField)
{
if (isset($addField['field']))
{
$fieldIds[(int) $addField['field']] = (int) $addField['field'];
}
}
}
}
}
// check that we have fields
if (self::checkArray($fieldIds))
{
return array_values($fieldIds);
}
return false;
}
/**
* get translation extension ids
**/
public static function getTranslationExtensionsIds($extension, $type)
{
// only allow these columns (extension types)
$columns = array(
'joomla_component' => 'components',
'joomla_module' => 'modules',
'joomla_plugin' => 'plugins'
);
// check if the column name is correct
if (isset($columns[$type]))
{
$column = $columns[$type];
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select($db->quoteName(array('id', $column)))
->from($db->quoteName('#__componentbuilder_language_translation'))
->where($db->quoteName($column) . ' != ' . $db->quote(''));
$db->setQuery($query);
$db->execute();
if ($db->getNumRows())
{
$results = $db->loadAssocList();
$matches = array();
foreach ($results as $k => $v)
{
$value = json_decode($v[$column], true);
if (in_array($extension, $value))
{
$matches[$v['id']] = $v['id'];
}
}
// Checks that we found matches
if (self::checkArray($matches))
{
return array_values($matches);
}
}
}
return false;
}
/**
* get translation ids
**/
public static function getTranslationIds($language, $translated = true)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select($db->quoteName('id'))
->from($db->quoteName('#__componentbuilder_language_translation'));
// Build the where condition
if ($translated === true) // Translated
{
if ($language === 'all')
{
if (($languages = self::getAvailableLanguages()) !== false)
{
$wheres = array();
foreach ($languages as $k => $v)
{
$wheres[] = $db->quoteName('translation') . ' LIKE ' . $db->quote('%' . $k . '%');
}
$query->where($wheres);
}
}
else
{
$query->where($db->quoteName('translation') . ' LIKE ' . $db->quote('%' . $language . '%'));
}
}
else // Not translated
{
if ($language === 'none')
{
$query->where(
array(
$db->quoteName('translation') . ' = ' . $db->quote(''),
$db->quoteName('translation') . ' = ' . $db->quote('[]'),
$db->quoteName('translation') . ' = ' . $db->quote('{}')
), 'OR'
);
}
else
{
$query->where($db->quoteName('translation') . ' NOT LIKE ' . $db->quote('%' . $language . '%'));
}
}
$db->setQuery($query);
$db->execute();
if ($db->getNumRows())
{
return array_unique($db->loadColumn());
}
return false;
}
/**
* get available languages
**/
public static function getAvailableLanguages()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select($db->quoteName(array('langtag', 'name')))
->from($db->quoteName('#__componentbuilder_language'))
->where($db->quoteName('published') . ' = 1')
->order($db->quoteName('name') . ' desc');
$db->setQuery($query);
$db->execute();
if ($db->getNumRows())
{
return $db->loadAssocList('langtag', 'name');
}
return false;
}
/**
* Load the Composer Vendors
*/

File diff suppressed because it is too large Load Diff

View File

@ -30,7 +30,9 @@ $fields = $displayData->get($fields_tab_layout) ?: array(
'alias_builder_type',
'note_alias_builder_custom',
'note_alias_builder_default',
'alias_builder'
'alias_builder',
'note_category_menu_switch',
'add_category_submenu'
);
$hiddenFields = $displayData->get('hidden_fields') ?: array();

View File

@ -141,7 +141,9 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin
'alias_builder_type',
'note_alias_builder_custom',
'note_alias_builder_default',
'alias_builder'
'alias_builder',
'note_category_menu_switch',
'add_category_submenu'
),
'right' => array(
'note_create_edit_buttons'
@ -295,82 +297,10 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin
$item->metadata = $registry->toArray();
}
if (!empty($item->php_before_cancel))
if (!empty($item->php_allowedit))
{
// base64 Decode php_before_cancel.
$item->php_before_cancel = base64_decode($item->php_before_cancel);
}
if (!empty($item->php_allowadd))
{
// base64 Decode php_allowadd.
$item->php_allowadd = base64_decode($item->php_allowadd);
}
if (!empty($item->php_save))
{
// base64 Decode php_save.
$item->php_save = base64_decode($item->php_save);
}
if (!empty($item->php_getform))
{
// base64 Decode php_getform.
$item->php_getform = base64_decode($item->php_getform);
}
if (!empty($item->php_import_display))
{
// base64 Decode php_import_display.
$item->php_import_display = base64_decode($item->php_import_display);
}
if (!empty($item->php_before_delete))
{
// base64 Decode php_before_delete.
$item->php_before_delete = base64_decode($item->php_before_delete);
}
if (!empty($item->php_batchcopy))
{
// base64 Decode php_batchcopy.
$item->php_batchcopy = base64_decode($item->php_batchcopy);
}
if (!empty($item->php_before_publish))
{
// base64 Decode php_before_publish.
$item->php_before_publish = base64_decode($item->php_before_publish);
}
if (!empty($item->php_document))
{
// base64 Decode php_document.
$item->php_document = base64_decode($item->php_document);
}
if (!empty($item->sql))
{
// base64 Decode sql.
$item->sql = base64_decode($item->sql);
}
if (!empty($item->php_import_setdata))
{
// base64 Decode php_import_setdata.
$item->php_import_setdata = base64_decode($item->php_import_setdata);
}
if (!empty($item->php_getlistquery))
{
// base64 Decode php_getlistquery.
$item->php_getlistquery = base64_decode($item->php_getlistquery);
}
if (!empty($item->php_before_save))
{
// base64 Decode php_before_save.
$item->php_before_save = base64_decode($item->php_before_save);
// base64 Decode php_allowedit.
$item->php_allowedit = base64_decode($item->php_allowedit);
}
if (!empty($item->php_postsavehook))
@ -379,10 +309,28 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin
$item->php_postsavehook = base64_decode($item->php_postsavehook);
}
if (!empty($item->php_allowedit))
if (!empty($item->php_before_save))
{
// base64 Decode php_allowedit.
$item->php_allowedit = base64_decode($item->php_allowedit);
// base64 Decode php_before_save.
$item->php_before_save = base64_decode($item->php_before_save);
}
if (!empty($item->php_getlistquery))
{
// base64 Decode php_getlistquery.
$item->php_getlistquery = base64_decode($item->php_getlistquery);
}
if (!empty($item->php_import_ext))
{
// base64 Decode php_import_ext.
$item->php_import_ext = base64_decode($item->php_import_ext);
}
if (!empty($item->php_after_publish))
{
// base64 Decode php_after_publish.
$item->php_after_publish = base64_decode($item->php_after_publish);
}
if (!empty($item->php_after_cancel))
@ -397,12 +345,6 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin
$item->php_batchmove = base64_decode($item->php_batchmove);
}
if (!empty($item->php_after_publish))
{
// base64 Decode php_after_publish.
$item->php_after_publish = base64_decode($item->php_after_publish);
}
if (!empty($item->php_after_delete))
{
// base64 Decode php_after_delete.
@ -415,10 +357,76 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin
$item->php_import = base64_decode($item->php_import);
}
if (!empty($item->php_import_ext))
if (!empty($item->php_getitems_after_all))
{
// base64 Decode php_import_ext.
$item->php_import_ext = base64_decode($item->php_import_ext);
// base64 Decode php_getitems_after_all.
$item->php_getitems_after_all = base64_decode($item->php_getitems_after_all);
}
if (!empty($item->php_getform))
{
// base64 Decode php_getform.
$item->php_getform = base64_decode($item->php_getform);
}
if (!empty($item->php_save))
{
// base64 Decode php_save.
$item->php_save = base64_decode($item->php_save);
}
if (!empty($item->php_allowadd))
{
// base64 Decode php_allowadd.
$item->php_allowadd = base64_decode($item->php_allowadd);
}
if (!empty($item->php_before_cancel))
{
// base64 Decode php_before_cancel.
$item->php_before_cancel = base64_decode($item->php_before_cancel);
}
if (!empty($item->php_batchcopy))
{
// base64 Decode php_batchcopy.
$item->php_batchcopy = base64_decode($item->php_batchcopy);
}
if (!empty($item->php_before_publish))
{
// base64 Decode php_before_publish.
$item->php_before_publish = base64_decode($item->php_before_publish);
}
if (!empty($item->php_before_delete))
{
// base64 Decode php_before_delete.
$item->php_before_delete = base64_decode($item->php_before_delete);
}
if (!empty($item->php_document))
{
// base64 Decode php_document.
$item->php_document = base64_decode($item->php_document);
}
if (!empty($item->sql))
{
// base64 Decode sql.
$item->sql = base64_decode($item->sql);
}
if (!empty($item->php_import_display))
{
// base64 Decode php_import_display.
$item->php_import_display = base64_decode($item->php_import_display);
}
if (!empty($item->php_import_setdata))
{
// base64 Decode php_import_setdata.
$item->php_import_setdata = base64_decode($item->php_import_setdata);
}
if (!empty($item->css_view))
@ -487,40 +495,34 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin
$item->php_ajaxmethod = base64_decode($item->php_ajaxmethod);
}
if (!empty($item->php_getitem))
{
// base64 Decode php_getitem.
$item->php_getitem = base64_decode($item->php_getitem);
}
if (!empty($item->html_import_view))
{
// base64 Decode html_import_view.
$item->html_import_view = base64_decode($item->html_import_view);
}
if (!empty($item->php_getitem))
{
// base64 Decode php_getitem.
$item->php_getitem = base64_decode($item->php_getitem);
}
if (!empty($item->php_import_headers))
{
// base64 Decode php_import_headers.
$item->php_import_headers = base64_decode($item->php_import_headers);
}
if (!empty($item->php_getitems))
{
// base64 Decode php_getitems.
$item->php_getitems = base64_decode($item->php_getitems);
}
if (!empty($item->php_import_save))
{
// base64 Decode php_import_save.
$item->php_import_save = base64_decode($item->php_import_save);
}
if (!empty($item->php_getitems_after_all))
if (!empty($item->php_getitems))
{
// base64 Decode php_getitems_after_all.
$item->php_getitems_after_all = base64_decode($item->php_getitems_after_all);
// base64 Decode php_getitems.
$item->php_getitems = base64_decode($item->php_getitems);
}
if (!empty($item->addpermissions))
@ -1595,82 +1597,10 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin
$data['ajax_input'] = '';
}
// Set the php_before_cancel string to base64 string.
if (isset($data['php_before_cancel']))
// Set the php_allowedit string to base64 string.
if (isset($data['php_allowedit']))
{
$data['php_before_cancel'] = base64_encode($data['php_before_cancel']);
}
// Set the php_allowadd string to base64 string.
if (isset($data['php_allowadd']))
{
$data['php_allowadd'] = base64_encode($data['php_allowadd']);
}
// Set the php_save string to base64 string.
if (isset($data['php_save']))
{
$data['php_save'] = base64_encode($data['php_save']);
}
// Set the php_getform string to base64 string.
if (isset($data['php_getform']))
{
$data['php_getform'] = base64_encode($data['php_getform']);
}
// Set the php_import_display string to base64 string.
if (isset($data['php_import_display']))
{
$data['php_import_display'] = base64_encode($data['php_import_display']);
}
// Set the php_before_delete string to base64 string.
if (isset($data['php_before_delete']))
{
$data['php_before_delete'] = base64_encode($data['php_before_delete']);
}
// Set the php_batchcopy string to base64 string.
if (isset($data['php_batchcopy']))
{
$data['php_batchcopy'] = base64_encode($data['php_batchcopy']);
}
// Set the php_before_publish string to base64 string.
if (isset($data['php_before_publish']))
{
$data['php_before_publish'] = base64_encode($data['php_before_publish']);
}
// Set the php_document string to base64 string.
if (isset($data['php_document']))
{
$data['php_document'] = base64_encode($data['php_document']);
}
// Set the sql string to base64 string.
if (isset($data['sql']))
{
$data['sql'] = base64_encode($data['sql']);
}
// Set the php_import_setdata string to base64 string.
if (isset($data['php_import_setdata']))
{
$data['php_import_setdata'] = base64_encode($data['php_import_setdata']);
}
// Set the php_getlistquery string to base64 string.
if (isset($data['php_getlistquery']))
{
$data['php_getlistquery'] = base64_encode($data['php_getlistquery']);
}
// Set the php_before_save string to base64 string.
if (isset($data['php_before_save']))
{
$data['php_before_save'] = base64_encode($data['php_before_save']);
$data['php_allowedit'] = base64_encode($data['php_allowedit']);
}
// Set the php_postsavehook string to base64 string.
@ -1679,10 +1609,28 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin
$data['php_postsavehook'] = base64_encode($data['php_postsavehook']);
}
// Set the php_allowedit string to base64 string.
if (isset($data['php_allowedit']))
// Set the php_before_save string to base64 string.
if (isset($data['php_before_save']))
{
$data['php_allowedit'] = base64_encode($data['php_allowedit']);
$data['php_before_save'] = base64_encode($data['php_before_save']);
}
// Set the php_getlistquery string to base64 string.
if (isset($data['php_getlistquery']))
{
$data['php_getlistquery'] = base64_encode($data['php_getlistquery']);
}
// Set the php_import_ext string to base64 string.
if (isset($data['php_import_ext']))
{
$data['php_import_ext'] = base64_encode($data['php_import_ext']);
}
// Set the php_after_publish string to base64 string.
if (isset($data['php_after_publish']))
{
$data['php_after_publish'] = base64_encode($data['php_after_publish']);
}
// Set the php_after_cancel string to base64 string.
@ -1697,12 +1645,6 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin
$data['php_batchmove'] = base64_encode($data['php_batchmove']);
}
// Set the php_after_publish string to base64 string.
if (isset($data['php_after_publish']))
{
$data['php_after_publish'] = base64_encode($data['php_after_publish']);
}
// Set the php_after_delete string to base64 string.
if (isset($data['php_after_delete']))
{
@ -1715,10 +1657,76 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin
$data['php_import'] = base64_encode($data['php_import']);
}
// Set the php_import_ext string to base64 string.
if (isset($data['php_import_ext']))
// Set the php_getitems_after_all string to base64 string.
if (isset($data['php_getitems_after_all']))
{
$data['php_import_ext'] = base64_encode($data['php_import_ext']);
$data['php_getitems_after_all'] = base64_encode($data['php_getitems_after_all']);
}
// Set the php_getform string to base64 string.
if (isset($data['php_getform']))
{
$data['php_getform'] = base64_encode($data['php_getform']);
}
// Set the php_save string to base64 string.
if (isset($data['php_save']))
{
$data['php_save'] = base64_encode($data['php_save']);
}
// Set the php_allowadd string to base64 string.
if (isset($data['php_allowadd']))
{
$data['php_allowadd'] = base64_encode($data['php_allowadd']);
}
// Set the php_before_cancel string to base64 string.
if (isset($data['php_before_cancel']))
{
$data['php_before_cancel'] = base64_encode($data['php_before_cancel']);
}
// Set the php_batchcopy string to base64 string.
if (isset($data['php_batchcopy']))
{
$data['php_batchcopy'] = base64_encode($data['php_batchcopy']);
}
// Set the php_before_publish string to base64 string.
if (isset($data['php_before_publish']))
{
$data['php_before_publish'] = base64_encode($data['php_before_publish']);
}
// Set the php_before_delete string to base64 string.
if (isset($data['php_before_delete']))
{
$data['php_before_delete'] = base64_encode($data['php_before_delete']);
}
// Set the php_document string to base64 string.
if (isset($data['php_document']))
{
$data['php_document'] = base64_encode($data['php_document']);
}
// Set the sql string to base64 string.
if (isset($data['sql']))
{
$data['sql'] = base64_encode($data['sql']);
}
// Set the php_import_display string to base64 string.
if (isset($data['php_import_display']))
{
$data['php_import_display'] = base64_encode($data['php_import_display']);
}
// Set the php_import_setdata string to base64 string.
if (isset($data['php_import_setdata']))
{
$data['php_import_setdata'] = base64_encode($data['php_import_setdata']);
}
// Set the css_view string to base64 string.
@ -1787,40 +1795,34 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin
$data['php_ajaxmethod'] = base64_encode($data['php_ajaxmethod']);
}
// Set the php_getitem string to base64 string.
if (isset($data['php_getitem']))
{
$data['php_getitem'] = base64_encode($data['php_getitem']);
}
// Set the html_import_view string to base64 string.
if (isset($data['html_import_view']))
{
$data['html_import_view'] = base64_encode($data['html_import_view']);
}
// Set the php_getitem string to base64 string.
if (isset($data['php_getitem']))
{
$data['php_getitem'] = base64_encode($data['php_getitem']);
}
// Set the php_import_headers string to base64 string.
if (isset($data['php_import_headers']))
{
$data['php_import_headers'] = base64_encode($data['php_import_headers']);
}
// Set the php_getitems string to base64 string.
if (isset($data['php_getitems']))
{
$data['php_getitems'] = base64_encode($data['php_getitems']);
}
// Set the php_import_save string to base64 string.
if (isset($data['php_import_save']))
{
$data['php_import_save'] = base64_encode($data['php_import_save']);
}
// Set the php_getitems_after_all string to base64 string.
if (isset($data['php_getitems_after_all']))
// Set the php_getitems string to base64 string.
if (isset($data['php_getitems']))
{
$data['php_getitems_after_all'] = base64_encode($data['php_getitems_after_all']);
$data['php_getitems'] = base64_encode($data['php_getitems']);
}
// Set the Params Items to data

View File

@ -44,6 +44,51 @@ class ComponentbuilderModelAdmin_views extends JModelList
parent::__construct($config);
}
/**
* Get the filter form - Override the parent method
*
* @param array $data data
* @param boolean $loadData load current data
*
* @return \JForm|boolean The \JForm object or false on error
*
* @since JCB 2.12.5
*/
public function getFilterForm($data = array(), $loadData = true)
{
// load form from the parent class
$form = parent::getFilterForm($data, $loadData);
// Create the "joomla_component" filter
$attributes = array(
'name' => 'joomla_component',
'type' => 'list',
'onchange' => 'this.form.submit();',
);
$options = array(
'' => '- ' . JText::_('COM_COMPONENTBUILDER_NO_COMPONENTS_FOUND') . ' -'
);
// check if we have joomla components
if (($joomla_components = ComponentbuilderHelper::getByTypeTheIdsSystemNames('joomla_component')) !== false)
{
$options = array(
'' => '- ' . JText::_('COM_COMPONENTBUILDER_SELECT_COMPONENT') . ' -'
);
// make sure we do not lose the key values in normal merge
$options = $options + $joomla_components;
}
$form->setField(ComponentbuilderHelper::getFieldXML($attributes, $options),'filter');
$form->setValue(
'joomla_component',
'filter',
$this->state->get("filter.joomla_component")
);
array_push($this->filter_fields, 'joomla_component');
return $form;
}
/**
* Method to auto-populate the model state.
*
@ -301,6 +346,25 @@ class ComponentbuilderModelAdmin_views extends JModelList
// From the componentbuilder_item table
$query->from($db->quoteName('#__componentbuilder_admin_view', 'a'));
// do not use these filters in the export method
if (!isset($_export) || !$_export)
{
// Filtering "joomla components"
$filter_joomla_component = $this->state->get("filter.joomla_component");
if ($filter_joomla_component !== null && !empty($filter_joomla_component))
{
if (($ids = ComponentbuilderHelper::getAreaLinkedIDs($filter_joomla_component, 'joomla_component_admin_views')) !== false)
{
$query->where($db->quoteName('a.id') . ' IN (' . implode(',', $ids) . ')');
}
else
{
// there is none
$query->where($db->quoteName('a.id') . ' = ' . 0);
}
}
}
// Filter by published state
$published = $this->getState('filter.published');
if (is_numeric($published))
@ -345,7 +409,7 @@ class ComponentbuilderModelAdmin_views extends JModelList
else
{
$search = $db->quote('%' . $db->escape($search) . '%');
$query->where('(a.system_name LIKE '.$search.' OR a.name_single LIKE '.$search.' OR a.short_description LIKE '.$search.' OR a.name_list LIKE '.$search.' OR a.description LIKE '.$search.' OR a.type LIKE '.$search.')');
$query->where('(a.system_name LIKE '.$search.' OR a.name_single LIKE '.$search.' OR a.short_description LIKE '.$search.' OR a.description LIKE '.$search.' OR a.type LIKE '.$search.' OR a.name_list LIKE '.$search.')');
}
}
@ -516,6 +580,25 @@ class ComponentbuilderModelAdmin_views extends JModelList
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// do not use these filters in the export method
if (!isset($_export) || !$_export)
{
// Filtering "joomla components"
$filter_joomla_component = $this->state->get("filter.joomla_component");
if ($filter_joomla_component !== null && !empty($filter_joomla_component))
{
if (($ids = ComponentbuilderHelper::getAreaLinkedIDs($filter_joomla_component, 'joomla_component_admin_views')) !== false)
{
$query->where($db->quoteName('a.id') . ' IN (' . implode(',', $ids) . ')');
}
else
{
// there is none
$query->where($db->quoteName('a.id') . ' = ' . 0);
}
}
}
// Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder'))
{
@ -546,48 +629,50 @@ class ComponentbuilderModelAdmin_views extends JModelList
continue;
}
// decode php_before_cancel
$item->php_before_cancel = base64_decode($item->php_before_cancel);
// decode php_allowadd
$item->php_allowadd = base64_decode($item->php_allowadd);
// decode php_save
$item->php_save = base64_decode($item->php_save);
// decode php_getform
$item->php_getform = base64_decode($item->php_getform);
// decode php_import_display
$item->php_import_display = base64_decode($item->php_import_display);
// decode php_before_delete
$item->php_before_delete = base64_decode($item->php_before_delete);
// decode php_batchcopy
$item->php_batchcopy = base64_decode($item->php_batchcopy);
// decode php_before_publish
$item->php_before_publish = base64_decode($item->php_before_publish);
// decode php_document
$item->php_document = base64_decode($item->php_document);
// decode sql
$item->sql = base64_decode($item->sql);
// decode php_import_setdata
$item->php_import_setdata = base64_decode($item->php_import_setdata);
// decode php_getlistquery
$item->php_getlistquery = base64_decode($item->php_getlistquery);
// decode php_before_save
$item->php_before_save = base64_decode($item->php_before_save);
// decode php_postsavehook
$item->php_postsavehook = base64_decode($item->php_postsavehook);
// decode php_allowedit
$item->php_allowedit = base64_decode($item->php_allowedit);
// decode php_postsavehook
$item->php_postsavehook = base64_decode($item->php_postsavehook);
// decode php_before_save
$item->php_before_save = base64_decode($item->php_before_save);
// decode php_getlistquery
$item->php_getlistquery = base64_decode($item->php_getlistquery);
// decode php_import_ext
$item->php_import_ext = base64_decode($item->php_import_ext);
// decode php_after_publish
$item->php_after_publish = base64_decode($item->php_after_publish);
// decode php_after_cancel
$item->php_after_cancel = base64_decode($item->php_after_cancel);
// decode php_batchmove
$item->php_batchmove = base64_decode($item->php_batchmove);
// decode php_after_publish
$item->php_after_publish = base64_decode($item->php_after_publish);
// decode php_after_delete
$item->php_after_delete = base64_decode($item->php_after_delete);
// decode php_import
$item->php_import = base64_decode($item->php_import);
// decode php_import_ext
$item->php_import_ext = base64_decode($item->php_import_ext);
// decode php_getitems_after_all
$item->php_getitems_after_all = base64_decode($item->php_getitems_after_all);
// decode php_getform
$item->php_getform = base64_decode($item->php_getform);
// decode php_save
$item->php_save = base64_decode($item->php_save);
// decode php_allowadd
$item->php_allowadd = base64_decode($item->php_allowadd);
// decode php_before_cancel
$item->php_before_cancel = base64_decode($item->php_before_cancel);
// decode php_batchcopy
$item->php_batchcopy = base64_decode($item->php_batchcopy);
// decode php_before_publish
$item->php_before_publish = base64_decode($item->php_before_publish);
// decode php_before_delete
$item->php_before_delete = base64_decode($item->php_before_delete);
// decode php_document
$item->php_document = base64_decode($item->php_document);
// decode sql
$item->sql = base64_decode($item->sql);
// decode php_import_display
$item->php_import_display = base64_decode($item->php_import_display);
// decode php_import_setdata
$item->php_import_setdata = base64_decode($item->php_import_setdata);
// decode css_view
$item->css_view = base64_decode($item->css_view);
// decode css_views
@ -610,18 +695,16 @@ class ComponentbuilderModelAdmin_views extends JModelList
$item->php_model_list = base64_decode($item->php_model_list);
// decode php_ajaxmethod
$item->php_ajaxmethod = base64_decode($item->php_ajaxmethod);
// decode php_getitem
$item->php_getitem = base64_decode($item->php_getitem);
// decode html_import_view
$item->html_import_view = base64_decode($item->html_import_view);
// decode php_getitem
$item->php_getitem = base64_decode($item->php_getitem);
// decode php_import_headers
$item->php_import_headers = base64_decode($item->php_import_headers);
// decode php_getitems
$item->php_getitems = base64_decode($item->php_getitems);
// decode php_import_save
$item->php_import_save = base64_decode($item->php_import_save);
// decode php_getitems_after_all
$item->php_getitems_after_all = base64_decode($item->php_getitems_after_all);
// decode php_getitems
$item->php_getitems = base64_decode($item->php_getitems);
// unset the values we don't want exported.
unset($item->asset_id);
unset($item->checked_out);

View File

@ -396,6 +396,37 @@ class ComponentbuilderModelAjax extends JModelList
return false;
}
public function checkCategoryField($type)
{
// get the view name & id
$values = $this->getViewID();
if (!is_null($values['a_id']) && $values['a_id'] > 0 && strlen($values['a_view']) && in_array($values['a_view'], $this->allowedViewsArray))
{
// get the fields
if ($fields = ComponentbuilderHelper::getVar('admin_fields', $values['a_id'], 'admin_view', 'addfields'))
{
// open the fields
if (ComponentbuilderHelper::checkJson($fields))
{
$fields = json_decode($fields, true);
if (ComponentbuilderHelper::checkArray($fields))
{
foreach($fields as $field)
{
if (isset($field['field']) &&
($field_values = ComponentbuilderHelper::getFieldNameAndType($field['field'])) !== false &&
$field_values['type'] === 'category' )
{
return true;
}
}
}
}
}
}
return false;
}
public function getDynamicScripts($type)
{
// get from global helper

View File

@ -42,6 +42,51 @@ class ComponentbuilderModelCustom_admin_views extends JModelList
parent::__construct($config);
}
/**
* Get the filter form - Override the parent method
*
* @param array $data data
* @param boolean $loadData load current data
*
* @return \JForm|boolean The \JForm object or false on error
*
* @since JCB 2.12.5
*/
public function getFilterForm($data = array(), $loadData = true)
{
// load form from the parent class
$form = parent::getFilterForm($data, $loadData);
// Create the "joomla_component" filter
$attributes = array(
'name' => 'joomla_component',
'type' => 'list',
'onchange' => 'this.form.submit();',
);
$options = array(
'' => '- ' . JText::_('COM_COMPONENTBUILDER_NO_COMPONENTS_FOUND') . ' -'
);
// check if we have joomla components
if (($joomla_components = ComponentbuilderHelper::getByTypeTheIdsSystemNames('joomla_component')) !== false)
{
$options = array(
'' => '- ' . JText::_('COM_COMPONENTBUILDER_SELECT_COMPONENT') . ' -'
);
// make sure we do not lose the key values in normal merge
$options = $options + $joomla_components;
}
$form->setField(ComponentbuilderHelper::getFieldXML($attributes, $options),'filter');
$form->setValue(
'joomla_component',
'filter',
$this->state->get("filter.joomla_component")
);
array_push($this->filter_fields, 'joomla_component');
return $form;
}
/**
* Method to auto-populate the model state.
*
@ -240,6 +285,25 @@ class ComponentbuilderModelCustom_admin_views extends JModelList
// From the componentbuilder_item table
$query->from($db->quoteName('#__componentbuilder_custom_admin_view', 'a'));
// do not use these filters in the export method
if (!isset($_export) || !$_export)
{
// Filtering "joomla components"
$filter_joomla_component = $this->state->get("filter.joomla_component");
if ($filter_joomla_component !== null && !empty($filter_joomla_component))
{
if (($ids = ComponentbuilderHelper::getAreaLinkedIDs($filter_joomla_component, 'joomla_component_custom_admin_views')) !== false)
{
$query->where($db->quoteName('a.id') . ' IN (' . implode(',', $ids) . ')');
}
else
{
// there is none
$query->where($db->quoteName('a.id') . ' = ' . 0);
}
}
}
// From the componentbuilder_dynamic_get table.
$query->select($db->quoteName('g.name','main_get_name'));
$query->join('LEFT', $db->quoteName('#__componentbuilder_dynamic_get', 'g') . ' ON (' . $db->quoteName('a.main_get') . ' = ' . $db->quoteName('g.id') . ')');
@ -309,6 +373,29 @@ class ComponentbuilderModelCustom_admin_views extends JModelList
{
$query->where('a.main_get = ' . $db->quote($db->escape($_main_get)));
}
elseif (ComponentbuilderHelper::checkArray($_main_get))
{
// Secure the array for the query
$_main_get = array_map( function ($val) use(&$db) {
if (is_numeric($val))
{
if (is_float($val))
{
return (float) $val;
}
else
{
return (int) $val;
}
}
elseif (ComponentbuilderHelper::checkString($val))
{
return $db->quote($db->escape($val));
}
}, $_main_get);
// Filter by the Main_get Array.
$query->where('a.main_get IN (' . implode(',', $_main_get) . ')');
}
// Filter by Add_php_ajax.
$_add_php_ajax = $this->getState('filter.add_php_ajax');
if (is_numeric($_add_php_ajax))
@ -402,6 +489,25 @@ class ComponentbuilderModelCustom_admin_views extends JModelList
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// do not use these filters in the export method
if (!isset($_export) || !$_export)
{
// Filtering "joomla components"
$filter_joomla_component = $this->state->get("filter.joomla_component");
if ($filter_joomla_component !== null && !empty($filter_joomla_component))
{
if (($ids = ComponentbuilderHelper::getAreaLinkedIDs($filter_joomla_component, 'joomla_component_custom_admin_views')) !== false)
{
$query->where($db->quoteName('a.id') . ' IN (' . implode(',', $ids) . ')');
}
else
{
// there is none
$query->where($db->quoteName('a.id') . ' = ' . 0);
}
}
}
// Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder'))
{
@ -528,7 +634,18 @@ class ComponentbuilderModelCustom_admin_views extends JModelList
$id .= ':' . $this->getState('filter.ordering');
$id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.main_get');
// Check if the value is an array
$_main_get = $this->getState('filter.main_get');
if (ComponentbuilderHelper::checkArray($_main_get))
{
$id .= ':' . implode(':', $_main_get);
}
// Check if this is only an number or string
elseif (is_numeric($_main_get)
|| ComponentbuilderHelper::checkString($_main_get))
{
$id .= ':' . $_main_get;
}
$id .= ':' . $this->getState('filter.add_php_ajax');
$id .= ':' . $this->getState('filter.add_custom_button');
$id .= ':' . $this->getState('filter.system_name');

View File

@ -45,6 +45,62 @@ class ComponentbuilderModelFields extends JModelList
parent::__construct($config);
}
/**
* Get the filter form - Override the parent method
*
* @param array $data data
* @param boolean $loadData load current data
*
* @return \JForm|boolean The \JForm object or false on error
*
* @since JCB 2.12.5
*/
public function getFilterForm($data = array(), $loadData = true)
{
// load form from the parent class
$form = parent::getFilterForm($data, $loadData);
// Create the "extension" filter
$form->setField(new SimpleXMLElement(
ComponentbuilderHelper::getExtensionGroupedListXml()
),'filter');
$form->setValue(
'extension',
'filter',
$this->state->get("filter.extension")
);
array_push($this->filter_fields, 'extension');
// Create the "admin_view" filter
$attributes = array(
'name' => 'admin_view',
'type' => 'list',
'onchange' => 'this.form.submit();',
);
$options = array(
'' => '- ' . JText::_('COM_COMPONENTBUILDER_NO_ADMIN_VIEWS_FOUND') . ' -'
);
// check if we have admin views (and limit to an extension if it is set)
if (($admin_views = ComponentbuilderHelper::getByTypeTheIdsSystemNames('admin_view', $this->state->get("filter.extension"))) !== false)
{
$options = array(
'' => '- ' . JText::_('COM_COMPONENTBUILDER_SELECT_ADMIN_VIEW') . ' -'
);
// make sure we do not lose the key values in normal merge
$options = $options + $admin_views;
}
$form->setField(ComponentbuilderHelper::getFieldXML($attributes, $options),'filter');
$form->setValue(
'admin_view',
'filter',
$this->state->get("filter.admin_view")
);
array_push($this->filter_fields, 'admin_view');
return $form;
}
/**
* Method to auto-populate the model state.
*
@ -311,6 +367,52 @@ class ComponentbuilderModelFields extends JModelList
$query->from($db->quoteName('#__componentbuilder_field', 'a'));
$query->join('LEFT', $db->quoteName('#__categories', 'c') . ' ON (' . $db->quoteName('a.catid') . ' = ' . $db->quoteName('c.id') . ')');
// do not use these filters in the export method
if (!isset($_export) || !$_export)
{
// Filtering "extension"
$filter_extension = $this->state->get("filter.extension");
$field_ids = array();
$get_ids = true;
if ($get_ids && $filter_extension !== null && !empty($filter_extension))
{
// column name, and id
$type_extension = explode('__', $filter_extension);
if (($ids = ComponentbuilderHelper::getAreaLinkedIDs($type_extension[1], $type_extension[0])) !== false)
{
$field_ids = $ids;
}
else
{
// there is none
$query->where($db->quoteName('a.id') . ' = ' . 0);
$get_ids = false;
}
}
// Filtering "admin_view"
$filter_admin_view = $this->state->get("filter.admin_view");
if ($get_ids && $filter_admin_view !== null && !empty($filter_admin_view))
{
if (($ids = ComponentbuilderHelper::getAreaLinkedIDs($filter_admin_view, 'admin_view')) !== false)
{
// view will return less fields, so we ignore the component
$field_ids = $ids;
}
else
{
// there is none
$query->where($db->quoteName('a.id') . ' = ' . 0);
$get_ids = false;
}
}
// now check if we have IDs
if ($get_ids && ComponentbuilderHelper::checkArray($field_ids))
{
$query->where($db->quoteName('a.id') . ' IN (' . implode(',', $field_ids) . ')');
}
}
// From the componentbuilder_fieldtype table.
$query->select($db->quoteName('g.name','fieldtype_name'));
$query->join('LEFT', $db->quoteName('#__componentbuilder_fieldtype', 'g') . ' ON (' . $db->quoteName('a.fieldtype') . ' = ' . $db->quoteName('g.id') . ')');
@ -529,6 +631,52 @@ class ComponentbuilderModelFields extends JModelList
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// do not use these filters in the export method
if (!isset($_export) || !$_export)
{
// Filtering "extension"
$filter_extension = $this->state->get("filter.extension");
$field_ids = array();
$get_ids = true;
if ($get_ids && $filter_extension !== null && !empty($filter_extension))
{
// column name, and id
$type_extension = explode('__', $filter_extension);
if (($ids = ComponentbuilderHelper::getAreaLinkedIDs($type_extension[1], $type_extension[0])) !== false)
{
$field_ids = $ids;
}
else
{
// there is none
$query->where($db->quoteName('a.id') . ' = ' . 0);
$get_ids = false;
}
}
// Filtering "admin_view"
$filter_admin_view = $this->state->get("filter.admin_view");
if ($get_ids && $filter_admin_view !== null && !empty($filter_admin_view))
{
if (($ids = ComponentbuilderHelper::getAreaLinkedIDs($filter_admin_view, 'admin_view')) !== false)
{
// view will return less fields, so we ignore the component
$field_ids = $ids;
}
else
{
// there is none
$query->where($db->quoteName('a.id') . ' = ' . 0);
$get_ids = false;
}
}
// now check if we have IDs
if ($get_ids && ComponentbuilderHelper::checkArray($field_ids))
{
$query->where($db->quoteName('a.id') . ' IN (' . implode(',', $field_ids) . ')');
}
}
// Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder'))
{

View File

@ -41,6 +41,9 @@ class JFormFieldAdminlistvieworderfields extends JFormFieldList
$jinput = JFactory::getApplication()->input;
// get the id
$adminView = $jinput->getInt('id', 0);
// set the field trackers
$fieldIds = array();
$sortIds = array();
// check if we have an admin view
if (is_numeric($adminView) && $adminView >= 1)
{
@ -58,7 +61,37 @@ class JFormFieldAdminlistvieworderfields extends JFormFieldList
if (isset($addField['field']) && isset($addField['list']) && ($addField['list'] == 1 || $addField['list'] == 3)
&& isset($addField['sort']) && $addField['sort'])
{
$fieldIds[] = (int) $addField['field'];
$fieldIds[(int) $addField['field']] = (int) $addField['field'];
}
// do track all fields set as sorted
if (isset($addField['field']) && isset($addField['sort']) && $addField['sort'])
{
$sortIds[(int) $addField['field']] = (int) $addField['field'];
}
}
}
}
}
// get all the fields that are also having a relationship on the list view as sorted
if ($addFields = ComponentbuilderHelper::getVar('admin_fields_relations', (int) $adminView, 'admin_view', 'addrelations'))
{
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['joinfields']) && ComponentbuilderHelper::checkArray($addField['joinfields']))
{
foreach($addField['joinfields'] as $joinfield)
{
if (isset($sortIds[$joinfield]))
{
$fieldIds[(int) $joinfield] = (int) $joinfield;
}
}
}
}
}

View File

@ -44,6 +44,10 @@ class JFormFieldAdminviewfolderlist extends JFormFieldList
// now check if there are files in the folder
if (JFolder::exists($localfolder) && $folders = JFolder::folders($localfolder))
{
if ($this->multiple === false)
{
$options[] = JHtml::_('select.option', '', JText::_('COM_COMPONENTBUILDER_SELECT_AN_ADMIN_VIEW'));
}
foreach ($folders as $folder)
{
$options[] = JHtml::_('select.option', $folder, ComponentbuilderHelper::safeString($folder, 'W'));

View File

@ -51,7 +51,7 @@ class JFormFieldAdminviewsfilteraddcustombutton extends JFormFieldList
$results = $db->loadColumn();
$_filter = array();
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_ADD_CUSTOM_BUTTON') . ' -');
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_ADD_CUSTOM_BUTTONS') . ' -');
if ($results)
{

View File

@ -51,7 +51,7 @@ class JFormFieldAdminviewsfilteraddfadein extends JFormFieldList
$results = $db->loadColumn();
$_filter = array();
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_ADD_FADEIN') . ' -');
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_FADE_IN_AFFECT') . ' -');
if ($results)
{

View File

@ -1,57 +0,0 @@
<?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 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');
/**
* Components Form Field class for the Componentbuilder component
*/
class JFormFieldComponents extends JFormFieldList
{
/**
* The components field type.
*
* @var string
*/
public $type = 'components';
/**
* Method to get a list of options for a list input.
*
* @return array An array of JHtml options.
*/
protected function getOptions()
{
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select($db->quoteName(array('a.id','a.system_name'),array('id','components_system_name')));
$query->from($db->quoteName('#__componentbuilder_joomla_component', 'a'));
$query->where($db->quoteName('a.published') . ' >= 1');
$query->order('a.system_name ASC');
$db->setQuery((string)$query);
$items = $db->loadObjectList();
$options = array();
if ($items)
{
foreach($items as $item)
{
$options[] = JHtml::_('select.option', $item->id, $item->components_system_name);
}
}
return $options;
}
}

View File

@ -51,7 +51,7 @@ class JFormFieldCustomadminviewsfilteraddcustombutton extends JFormFieldList
$results = $db->loadColumn();
$_filter = array();
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_ADD_CUSTOM_BUTTON') . ' -');
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_ADD_CUSTOM_BUTTONS') . ' -');
if ($results)
{

View File

@ -51,7 +51,7 @@ class JFormFieldCustomcodesfiltercommenttype extends JFormFieldList
$results = $db->loadColumn();
$_filter = array();
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_COMMENT_TYPE') . ' -');
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_COMMENT_TYPE_USED_IN_PLACEHOLDER') . ' -');
if ($results)
{

View File

@ -51,7 +51,7 @@ class JFormFieldCustomcodesfiltertype extends JFormFieldList
$results = $db->loadColumn();
$_filter = array();
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_TYPE') . ' -');
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_ADD_TYPE') . ' -');
if ($results)
{

View File

@ -51,7 +51,7 @@ class JFormFieldFieldsfilterdatatype extends JFormFieldList
$results = $db->loadColumn();
$_filter = array();
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_DATATYPE') . ' -');
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_DATA_TYPE') . ' -');
if ($results)
{

View File

@ -51,7 +51,7 @@ class JFormFieldFieldsfilterindexes extends JFormFieldList
$results = $db->loadColumn();
$_filter = array();
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_INDEXES') . ' -');
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_INDEXES_TYPE') . ' -');
if ($results)
{

View File

@ -51,7 +51,7 @@ class JFormFieldFieldsfilterstore extends JFormFieldList
$results = $db->loadColumn();
$_filter = array();
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_STORE') . ' -');
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_MODELING_METHOD') . ' -');
if ($results)
{

View File

@ -17,16 +17,16 @@ jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');
/**
* Component Form Field class for the Componentbuilder component
* Joomlacomponent Form Field class for the Componentbuilder component
*/
class JFormFieldComponent extends JFormFieldList
class JFormFieldJoomlacomponent extends JFormFieldList
{
/**
* The component field type.
* The joomlacomponent field type.
*
* @var string
*/
public $type = 'component';
public $type = 'joomlacomponent';
/**
* Override to add new button

View File

@ -35,23 +35,23 @@ class JFormFieldJoomlacomponents extends JFormFieldList
*/
protected function getOptions()
{
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select($db->quoteName(array('a.id','a.system_name'),array('id','joomla_component_system_name')));
$query->from($db->quoteName('#__componentbuilder_joomla_component', 'a'));
$query->order('a.system_name ASC');
$db->setQuery((string)$query);
$items = $db->loadObjectList();
$options = array();
if ($items)
{
$options[] = JHtml::_('select.option', '', 'Select an option');
foreach($items as $item)
{
$options[] = JHtml::_('select.option', $item->id, $item->joomla_component_system_name);
}
}
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select($db->quoteName(array('a.id','a.system_name'),array('id','components_system_name')));
$query->from($db->quoteName('#__componentbuilder_joomla_component', 'a'));
$query->where($db->quoteName('a.published') . ' >= 1');
$query->order('a.system_name ASC');
$db->setQuery((string)$query);
$items = $db->loadObjectList();
$options = array();
if ($items)
{
foreach($items as $item)
{
$options[] = JHtml::_('select.option', $item->id, $item->components_system_name);
}
}
return $options;
return $options;
}
}

View File

@ -51,7 +51,6 @@ class JFormFieldJoomlacomponentsfilterauthor extends JFormFieldList
$results = $db->loadColumn();
$_filter = array();
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_AUTHOR') . ' -');
if ($results)
{

View File

@ -51,7 +51,6 @@ class JFormFieldJoomlacomponentsfiltercompanyname extends JFormFieldList
$results = $db->loadColumn();
$_filter = array();
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_COMPANYNAME') . ' -');
if ($results)
{

View File

@ -51,7 +51,7 @@ class JFormFieldJoomlamodulesfiltertarget extends JFormFieldList
$results = $db->loadColumn();
$_filter = array();
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_TARGET') . ' -');
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_TARGET_AREA') . ' -');
if ($results)
{

View File

@ -51,7 +51,7 @@ class JFormFieldLayoutsfilteraddphpview extends JFormFieldList
$results = $db->loadColumn();
$_filter = array();
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_ADD_PHP_VIEW') . ' -');
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_ADD_PHP_CUSTOM_VIEW_SCRIPT') . ' -');
if ($results)
{

View File

@ -51,7 +51,7 @@ class JFormFieldLibrariesfiltertarget extends JFormFieldList
$results = $db->loadColumn();
$_filter = array();
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_TARGET') . ' -');
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_TARGET_FOLDER') . ' -');
if ($results)
{

View File

@ -51,7 +51,7 @@ class JFormFieldLibrariesfiltertype extends JFormFieldList
$results = $db->loadColumn();
$_filter = array();
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_TYPE') . ' -');
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_TYPE_BEHAVIOR') . ' -');
if ($results)
{

View File

@ -53,6 +53,7 @@ class JFormFieldListfields extends JFormFieldList
// get the admin view ID
$adminView = $jinput->getInt('refid', 0);
}
// make sure we have the admin view ID
if (is_numeric($adminView) && $adminView >= 1)
{
// get all the fields linked to the admin view

View File

@ -44,6 +44,10 @@ class JFormFieldSiteviewfolderlist extends JFormFieldList
// now check if there are files in the folder
if (JFolder::exists($localfolder) && $folders = JFolder::folders($localfolder))
{
if ($this->multiple === false)
{
$options[] = JHtml::_('select.option', '', JText::_('COM_COMPONENTBUILDER_SELECT_A_SITE_VIEW'));
}
foreach ($folders as $folder)
{
$options[] = JHtml::_('select.option', $folder, ComponentbuilderHelper::safeString($folder, 'W'));

View File

@ -51,7 +51,7 @@ class JFormFieldSiteviewsfilteraddcustombutton extends JFormFieldList
$results = $db->loadColumn();
$_filter = array();
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_ADD_CUSTOM_BUTTON') . ' -');
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_ADD_CUSTOM_BUTTONS') . ' -');
if ($results)
{

View File

@ -51,7 +51,7 @@ class JFormFieldTemplatesfilteraddphpview extends JFormFieldList
$results = $db->loadColumn();
$_filter = array();
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_ADD_PHP_VIEW') . ' -');
$_filter[] = JHtml::_('select.option', '', '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_ADD_PHP_CUSTOM_VIEW_SCRIPT') . ' -');
if ($results)
{

View File

@ -265,6 +265,52 @@ class ComponentbuilderModelFieldtype extends JModelAdmin
$query->from($db->quoteName('#__componentbuilder_field', 'a'));
$query->join('LEFT', $db->quoteName('#__categories', 'c') . ' ON (' . $db->quoteName('a.catid') . ' = ' . $db->quoteName('c.id') . ')');
// do not use these filters in the export method
if (!isset($_export) || !$_export)
{
// Filtering "extension"
$filter_extension = $this->state->get("filter.extension");
$field_ids = array();
$get_ids = true;
if ($get_ids && $filter_extension !== null && !empty($filter_extension))
{
// column name, and id
$type_extension = explode('__', $filter_extension);
if (($ids = ComponentbuilderHelper::getAreaLinkedIDs($type_extension[1], $type_extension[0])) !== false)
{
$field_ids = $ids;
}
else
{
// there is none
$query->where($db->quoteName('a.id') . ' = ' . 0);
$get_ids = false;
}
}
// Filtering "admin_view"
$filter_admin_view = $this->state->get("filter.admin_view");
if ($get_ids && $filter_admin_view !== null && !empty($filter_admin_view))
{
if (($ids = ComponentbuilderHelper::getAreaLinkedIDs($filter_admin_view, 'admin_view')) !== false)
{
// view will return less fields, so we ignore the component
$field_ids = $ids;
}
else
{
// there is none
$query->where($db->quoteName('a.id') . ' = ' . 0);
$get_ids = false;
}
}
// now check if we have IDs
if ($get_ids && ComponentbuilderHelper::checkArray($field_ids))
{
$query->where($db->quoteName('a.id') . ' IN (' . implode(',', $field_ids) . ')');
}
}
// From the componentbuilder_fieldtype table.
$query->select($db->quoteName('g.name','fieldtype_name'));
$query->join('LEFT', $db->quoteName('#__componentbuilder_fieldtype', 'g') . ' ON (' . $db->quoteName('a.fieldtype') . ' = ' . $db->quoteName('g.id') . ')');

View File

@ -811,6 +811,8 @@ jQuery(document).ready(function()
{
// check if this view has alias field
checkAliasField();
// check if this view has category field
checkCategoryField();
// get the linked details
getLinked();
// set button
@ -848,17 +850,16 @@ function checkAliasField() {
});
}
function checkAliasField_server(type){
var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.checkAliasField&format=json&raw=true&vdm="+vastDevMod);
if(token.length > 0 && type > 0){
var request = token+'=1&type=' + type;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'json',
data: request,
jsonp: false
function checkCategoryField() {
getCodeFrom_server(1, 'type', 'type', 'checkCategoryField').done(function(result) {
if(result){
// remove the notice
jQuery('.note_create_edit_notice_p').remove();
} else {
// hide everything about category management
jQuery('#jform_add_category_submenu').closest('.control-group').remove();
jQuery('.note_category_menu_switch').closest('.control-group').remove();
}
});
}

File diff suppressed because it is too large Load Diff

View File

@ -93,9 +93,9 @@
default="componentbuilder custom_code"
/>
<!-- Dynamic Fields. -->
<!-- Component Field. Type: Component. (custom) -->
<!-- Component Field. Type: Joomlacomponent. (custom) -->
<field
type="component"
type="joomlacomponent"
name="component"
label="COM_COMPONENTBUILDER_CUSTOM_CODE_COMPONENT_LABEL"
class="list_class"

View File

@ -86,8 +86,8 @@
<option value="a.published DESC">JSTATUS_DESC</option>
<option value="a.system_name ASC">COM_COMPONENTBUILDER_FILTER_SYSTEM_NAME_ASCENDING</option>
<option value="a.system_name DESC">COM_COMPONENTBUILDER_FILTER_SYSTEM_NAME_DESCENDING</option>
<option value="a.name_single ASC">COM_COMPONENTBUILDER_FILTER_NAME_SINGLE_ASCENDING</option>
<option value="a.name_single DESC">COM_COMPONENTBUILDER_FILTER_NAME_SINGLE_DESCENDING</option>
<option value="a.name_single ASC">COM_COMPONENTBUILDER_FILTER_NAME_SINGLE_RECORD_ASCENDING</option>
<option value="a.name_single DESC">COM_COMPONENTBUILDER_FILTER_NAME_SINGLE_RECORD_DESCENDING</option>
<option value="a.short_description ASC">COM_COMPONENTBUILDER_FILTER_SHORT_DESCRIPTION_ASCENDING</option>
<option value="a.short_description DESC">COM_COMPONENTBUILDER_FILTER_SHORT_DESCRIPTION_DESCENDING</option>
<option value="a.id ASC">JGRID_HEADING_ID_ASC</option>

View File

@ -34,7 +34,8 @@
type="maingets"
name="main_get"
label="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_MAIN_GET_LABEL"
multiple="false"
class="multipleMaingets"
multiple="true"
onchange="this.form.submit();"
/>
<field

View File

@ -31,7 +31,7 @@
onchange="this.form.submit();"
/>
<field
type="component"
type="joomlacomponent"
name="component"
label="COM_COMPONENTBUILDER_CUSTOM_CODE_COMPONENT_LABEL"
multiple="false"
@ -78,14 +78,14 @@
<option value="a.published DESC">JSTATUS_DESC</option>
<option value="g.system_name ASC">COM_COMPONENTBUILDER_FILTER_COMPONENT_ASCENDING</option>
<option value="g.system_name DESC">COM_COMPONENTBUILDER_FILTER_COMPONENT_DESCENDING</option>
<option value="a.path ASC">COM_COMPONENTBUILDER_FILTER_PATH_ASCENDING</option>
<option value="a.path DESC">COM_COMPONENTBUILDER_FILTER_PATH_DESCENDING</option>
<option value="a.path ASC">COM_COMPONENTBUILDER_FILTER_FILE_PATH_ASCENDING</option>
<option value="a.path DESC">COM_COMPONENTBUILDER_FILTER_FILE_PATH_DESCENDING</option>
<option value="a.target ASC">COM_COMPONENTBUILDER_FILTER_TARGET_ASCENDING</option>
<option value="a.target DESC">COM_COMPONENTBUILDER_FILTER_TARGET_DESCENDING</option>
<option value="a.type ASC">COM_COMPONENTBUILDER_FILTER_TYPE_ASCENDING</option>
<option value="a.type DESC">COM_COMPONENTBUILDER_FILTER_TYPE_DESCENDING</option>
<option value="a.comment_type ASC">COM_COMPONENTBUILDER_FILTER_COMMENT_TYPE_ASCENDING</option>
<option value="a.comment_type DESC">COM_COMPONENTBUILDER_FILTER_COMMENT_TYPE_DESCENDING</option>
<option value="a.type ASC">COM_COMPONENTBUILDER_FILTER_ADD_TYPE_ASCENDING</option>
<option value="a.type DESC">COM_COMPONENTBUILDER_FILTER_ADD_TYPE_DESCENDING</option>
<option value="a.comment_type ASC">COM_COMPONENTBUILDER_FILTER_COMMENT_TYPE_USED_IN_PLACEHOLDER_ASCENDING</option>
<option value="a.comment_type DESC">COM_COMPONENTBUILDER_FILTER_COMMENT_TYPE_USED_IN_PLACEHOLDER_DESCENDING</option>
<option value="a.id ASC">JGRID_HEADING_ID_ASC</option>
<option value="a.id DESC">JGRID_HEADING_ID_DESC</option>
</field>

View File

@ -96,16 +96,16 @@
<option value="a.published DESC">JSTATUS_DESC</option>
<option value="a.name ASC">COM_COMPONENTBUILDER_FILTER_NAME_ASCENDING</option>
<option value="a.name DESC">COM_COMPONENTBUILDER_FILTER_NAME_DESCENDING</option>
<option value="g.name ASC">COM_COMPONENTBUILDER_FILTER_FIELDTYPE_ASCENDING</option>
<option value="g.name DESC">COM_COMPONENTBUILDER_FILTER_FIELDTYPE_DESCENDING</option>
<option value="a.datatype ASC">COM_COMPONENTBUILDER_FILTER_DATATYPE_ASCENDING</option>
<option value="a.datatype DESC">COM_COMPONENTBUILDER_FILTER_DATATYPE_DESCENDING</option>
<option value="a.indexes ASC">COM_COMPONENTBUILDER_FILTER_INDEXES_ASCENDING</option>
<option value="a.indexes DESC">COM_COMPONENTBUILDER_FILTER_INDEXES_DESCENDING</option>
<option value="g.name ASC">COM_COMPONENTBUILDER_FILTER_TYPE_ASCENDING</option>
<option value="g.name DESC">COM_COMPONENTBUILDER_FILTER_TYPE_DESCENDING</option>
<option value="a.datatype ASC">COM_COMPONENTBUILDER_FILTER_DATA_TYPE_ASCENDING</option>
<option value="a.datatype DESC">COM_COMPONENTBUILDER_FILTER_DATA_TYPE_DESCENDING</option>
<option value="a.indexes ASC">COM_COMPONENTBUILDER_FILTER_INDEXES_TYPE_ASCENDING</option>
<option value="a.indexes DESC">COM_COMPONENTBUILDER_FILTER_INDEXES_TYPE_DESCENDING</option>
<option value="a.null_switch ASC">COM_COMPONENTBUILDER_FILTER_NULL_SWITCH_ASCENDING</option>
<option value="a.null_switch DESC">COM_COMPONENTBUILDER_FILTER_NULL_SWITCH_DESCENDING</option>
<option value="a.store ASC">COM_COMPONENTBUILDER_FILTER_STORE_ASCENDING</option>
<option value="a.store DESC">COM_COMPONENTBUILDER_FILTER_STORE_DESCENDING</option>
<option value="a.store ASC">COM_COMPONENTBUILDER_FILTER_MODELING_METHOD_ASCENDING</option>
<option value="a.store DESC">COM_COMPONENTBUILDER_FILTER_MODELING_METHOD_DESCENDING</option>
<option value="category_title ASC">COM_COMPONENTBUILDER_FILTER_FIELDS_CATEGORIES_ASCENDING</option>
<option value="category_title DESC">COM_COMPONENTBUILDER_FILTER_FIELDS_CATEGORIES_DESCENDING</option>
<option value="a.id ASC">JGRID_HEADING_ID_ASC</option>

View File

@ -73,10 +73,10 @@
<option value="a.type DESC">COM_COMPONENTBUILDER_FILTER_TYPE_DESCENDING</option>
<option value="a.location ASC">COM_COMPONENTBUILDER_FILTER_LOCATION_ASCENDING</option>
<option value="a.location DESC">COM_COMPONENTBUILDER_FILTER_LOCATION_DESCENDING</option>
<option value="g. ASC">COM_COMPONENTBUILDER_FILTER_ADMIN_VIEW_ASCENDING</option>
<option value="g. DESC">COM_COMPONENTBUILDER_FILTER_ADMIN_VIEW_DESCENDING</option>
<option value="h. ASC">COM_COMPONENTBUILDER_FILTER_SITE_VIEW_ASCENDING</option>
<option value="h. DESC">COM_COMPONENTBUILDER_FILTER_SITE_VIEW_DESCENDING</option>
<option value="g. ASC">COM_COMPONENTBUILDER_FILTER_ADMIN_VIEWS_ASCENDING</option>
<option value="g. DESC">COM_COMPONENTBUILDER_FILTER_ADMIN_VIEWS_DESCENDING</option>
<option value="h. ASC">COM_COMPONENTBUILDER_FILTER_SITE_VIEWS_ASCENDING</option>
<option value="h. DESC">COM_COMPONENTBUILDER_FILTER_SITE_VIEWS_DESCENDING</option>
<option value="a.id ASC">JGRID_HEADING_ID_ASC</option>
<option value="a.id DESC">JGRID_HEADING_ID_DESC</option>
</field>

View File

@ -34,14 +34,16 @@
type="joomlacomponentsfiltercompanyname"
name="companyname"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPANYNAME_LABEL"
multiple="false"
class="multipleJoomlacomponentsfiltercompanyname"
multiple="true"
onchange="this.form.submit();"
/>
<field
type="joomlacomponentsfilterauthor"
name="author"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_AUTHOR_LABEL"
multiple="false"
class="multipleJoomlacomponentsfilterauthor"
multiple="true"
onchange="this.form.submit();"
/>
<input type="hidden" name="form_submited" value="1"/>
@ -64,12 +66,16 @@
<option value="a.published DESC">JSTATUS_DESC</option>
<option value="a.system_name ASC">COM_COMPONENTBUILDER_FILTER_SYSTEM_NAME_ASCENDING</option>
<option value="a.system_name DESC">COM_COMPONENTBUILDER_FILTER_SYSTEM_NAME_DESCENDING</option>
<option value="a.name_code ASC">COM_COMPONENTBUILDER_FILTER_NAME_CODE_ASCENDING</option>
<option value="a.name_code DESC">COM_COMPONENTBUILDER_FILTER_NAME_CODE_DESCENDING</option>
<option value="a.name_code ASC">COM_COMPONENTBUILDER_FILTER_NAME_IN_CODE_ASCENDING</option>
<option value="a.name_code DESC">COM_COMPONENTBUILDER_FILTER_NAME_IN_CODE_DESCENDING</option>
<option value="a.short_description ASC">COM_COMPONENTBUILDER_FILTER_SHORT_DESCRIPTION_ASCENDING</option>
<option value="a.short_description DESC">COM_COMPONENTBUILDER_FILTER_SHORT_DESCRIPTION_DESCENDING</option>
<option value="a.companyname ASC">COM_COMPONENTBUILDER_FILTER_COMPANYNAME_ASCENDING</option>
<option value="a.companyname DESC">COM_COMPONENTBUILDER_FILTER_COMPANYNAME_DESCENDING</option>
<option value="a.companyname ASC">COM_COMPONENTBUILDER_FILTER_COMPANY_NAME_ASCENDING</option>
<option value="a.companyname DESC">COM_COMPONENTBUILDER_FILTER_COMPANY_NAME_DESCENDING</option>
<option value="a.created ASC">COM_COMPONENTBUILDER_FILTER_CREATED_DATE_ASCENDING</option>
<option value="a.created DESC">COM_COMPONENTBUILDER_FILTER_CREATED_DATE_DESCENDING</option>
<option value="a.modified ASC">COM_COMPONENTBUILDER_FILTER_MODIFIED_DATE_ASCENDING</option>
<option value="a.modified DESC">COM_COMPONENTBUILDER_FILTER_MODIFIED_DATE_DESCENDING</option>
<option value="a.id ASC">JGRID_HEADING_ID_ASC</option>
<option value="a.id DESC">JGRID_HEADING_ID_DESC</option>
</field>

View File

@ -57,8 +57,8 @@
<option value="a.published DESC">JSTATUS_DESC</option>
<option value="a.name ASC">COM_COMPONENTBUILDER_FILTER_NAME_ASCENDING</option>
<option value="a.name DESC">COM_COMPONENTBUILDER_FILTER_NAME_DESCENDING</option>
<option value="g.name ASC">COM_COMPONENTBUILDER_FILTER_CLASS_EXTENDS_ASCENDING</option>
<option value="g.name DESC">COM_COMPONENTBUILDER_FILTER_CLASS_EXTENDS_DESCENDING</option>
<option value="g.name ASC">COM_COMPONENTBUILDER_FILTER_EXTENDS_ASCENDING</option>
<option value="g.name DESC">COM_COMPONENTBUILDER_FILTER_EXTENDS_DESCENDING</option>
<option value="a.id ASC">JGRID_HEADING_ID_ASC</option>
<option value="a.id DESC">JGRID_HEADING_ID_DESC</option>
</field>

View File

@ -64,8 +64,8 @@
<option value="a.published DESC">JSTATUS_DESC</option>
<option value="a.system_name ASC">COM_COMPONENTBUILDER_FILTER_SYSTEM_NAME_ASCENDING</option>
<option value="a.system_name DESC">COM_COMPONENTBUILDER_FILTER_SYSTEM_NAME_DESCENDING</option>
<option value="g.name ASC">COM_COMPONENTBUILDER_FILTER_CLASS_EXTENDS_ASCENDING</option>
<option value="g.name DESC">COM_COMPONENTBUILDER_FILTER_CLASS_EXTENDS_DESCENDING</option>
<option value="g.name ASC">COM_COMPONENTBUILDER_FILTER_EXTENDS_ASCENDING</option>
<option value="g.name DESC">COM_COMPONENTBUILDER_FILTER_EXTENDS_DESCENDING</option>
<option value="h.name ASC">COM_COMPONENTBUILDER_FILTER_JOOMLA_PLUGIN_GROUP_ASCENDING</option>
<option value="h.name DESC">COM_COMPONENTBUILDER_FILTER_JOOMLA_PLUGIN_GROUP_DESCENDING</option>
<option value="a.id ASC">JGRID_HEADING_ID_ASC</option>

View File

@ -48,8 +48,8 @@
<option value="a.ordering DESC">JGRID_HEADING_ORDERING_DESC</option>
<option value="a.published ASC">JSTATUS_ASC</option>
<option value="a.published DESC">JSTATUS_DESC</option>
<option value="a.source ASC">COM_COMPONENTBUILDER_FILTER_SOURCE_ASCENDING</option>
<option value="a.source DESC">COM_COMPONENTBUILDER_FILTER_SOURCE_DESCENDING</option>
<option value="a.source ASC">COM_COMPONENTBUILDER_FILTER_SOURCE_STRING_ASCENDING</option>
<option value="a.source DESC">COM_COMPONENTBUILDER_FILTER_SOURCE_STRING_DESCENDING</option>
<option value="a.id ASC">JGRID_HEADING_ID_ASC</option>
<option value="a.id DESC">JGRID_HEADING_ID_DESC</option>
</field>

View File

@ -50,8 +50,8 @@
<option value="a.published DESC">JSTATUS_DESC</option>
<option value="a.name ASC">COM_COMPONENTBUILDER_FILTER_NAME_ASCENDING</option>
<option value="a.name DESC">COM_COMPONENTBUILDER_FILTER_NAME_DESCENDING</option>
<option value="a.langtag ASC">COM_COMPONENTBUILDER_FILTER_LANGTAG_ASCENDING</option>
<option value="a.langtag DESC">COM_COMPONENTBUILDER_FILTER_LANGTAG_DESCENDING</option>
<option value="a.langtag ASC">COM_COMPONENTBUILDER_FILTER_LANGUAGE_TAG_ASCENDING</option>
<option value="a.langtag DESC">COM_COMPONENTBUILDER_FILTER_LANGUAGE_TAG_DESCENDING</option>
<option value="a.id ASC">JGRID_HEADING_ID_ASC</option>
<option value="a.id DESC">JGRID_HEADING_ID_DESC</option>
</field>

View File

@ -71,10 +71,10 @@
<option value="a.published DESC">JSTATUS_DESC</option>
<option value="a.name ASC">COM_COMPONENTBUILDER_FILTER_NAME_ASCENDING</option>
<option value="a.name DESC">COM_COMPONENTBUILDER_FILTER_NAME_DESCENDING</option>
<option value="a.target ASC">COM_COMPONENTBUILDER_FILTER_TARGET_ASCENDING</option>
<option value="a.target DESC">COM_COMPONENTBUILDER_FILTER_TARGET_DESCENDING</option>
<option value="a.type ASC">COM_COMPONENTBUILDER_FILTER_TYPE_ASCENDING</option>
<option value="a.type DESC">COM_COMPONENTBUILDER_FILTER_TYPE_DESCENDING</option>
<option value="a.target ASC">COM_COMPONENTBUILDER_FILTER_TARGET_FOLDER_ASCENDING</option>
<option value="a.target DESC">COM_COMPONENTBUILDER_FILTER_TARGET_FOLDER_DESCENDING</option>
<option value="a.type ASC">COM_COMPONENTBUILDER_FILTER_TYPE_BEHAVIOR_ASCENDING</option>
<option value="a.type DESC">COM_COMPONENTBUILDER_FILTER_TYPE_BEHAVIOR_DESCENDING</option>
<option value="a.description ASC">COM_COMPONENTBUILDER_FILTER_DESCRIPTION_ASCENDING</option>
<option value="a.description DESC">COM_COMPONENTBUILDER_FILTER_DESCRIPTION_DESCENDING</option>
<option value="a.id ASC">JGRID_HEADING_ID_ASC</option>

View File

@ -48,10 +48,10 @@
<option value="a.ordering DESC">JGRID_HEADING_ORDERING_DESC</option>
<option value="a.published ASC">JSTATUS_ASC</option>
<option value="a.published DESC">JSTATUS_DESC</option>
<option value="a.target ASC">COM_COMPONENTBUILDER_FILTER_TARGET_ASCENDING</option>
<option value="a.target DESC">COM_COMPONENTBUILDER_FILTER_TARGET_DESCENDING</option>
<option value="a.value ASC">COM_COMPONENTBUILDER_FILTER_VALUE_ASCENDING</option>
<option value="a.value DESC">COM_COMPONENTBUILDER_FILTER_VALUE_DESCENDING</option>
<option value="a.target ASC">COM_COMPONENTBUILDER_FILTER_TARGET_STRING_PLACEHOLDER_ASCENDING</option>
<option value="a.target DESC">COM_COMPONENTBUILDER_FILTER_TARGET_STRING_PLACEHOLDER_DESCENDING</option>
<option value="a.value ASC">COM_COMPONENTBUILDER_FILTER_SET_STRING_VALUE_ASCENDING</option>
<option value="a.value DESC">COM_COMPONENTBUILDER_FILTER_SET_STRING_VALUE_DESCENDING</option>
<option value="a.id ASC">JGRID_HEADING_ID_ASC</option>
<option value="a.id DESC">JGRID_HEADING_ID_DESC</option>
</field>

View File

@ -34,7 +34,8 @@
type="maingets"
name="main_get"
label="COM_COMPONENTBUILDER_SITE_VIEW_MAIN_GET_LABEL"
multiple="false"
class="multipleMaingets"
multiple="true"
onchange="this.form.submit();"
/>
<field

View File

@ -12,16 +12,6 @@
description ="JGLOBAL_FIELD_ID_DESC" size="10" default="0"
readonly="true"
/>
<!-- Date Created Field. Type: Calendar (joomla) -->
<field
name="created"
type="calendar"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CREATED_DATE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CREATED_DATE_DESC"
size="22"
format="%Y-%m-%d %H:%M:%S"
filter="user_utc"
/>
<!-- User Created Field. Type: User (joomla) -->
<field
name="created_by"
@ -42,10 +32,6 @@
<option value="-2">
JTRASHED</option>
</field>
<!-- Date Modified Field. Type: Calendar (joomla) -->
<field name="modified" type="calendar" class="readonly"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MODIFIED_DATE_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MODIFIED_DATE_DESC"
size="22" readonly="true" format="%Y-%m-%d %H:%M:%S" filter="user_utc" />
<!-- User Modified Field. Type: User (joomla) -->
<field name="modified_by" type="user"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MODIFIED_BY_LABEL"
@ -170,6 +156,22 @@
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPANYNAME_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPANYNAME_HINT"
/>
<!-- Php_admin_event Field. Type: Editor. (joomla) -->
<field
type="editor"
name="php_admin_event"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_ADMIN_EVENT_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_ADMIN_EVENT_DESCRIPTION"
width="100%"
height="450px"
cols="15"
rows="30"
buttons="no"
syntax="php"
editor="codemirror|none"
filter="raw"
validate="code"
/>
<!-- Php_site_event Field. Type: Editor. (joomla) -->
<field
type="editor"
@ -186,21 +188,15 @@
filter="raw"
validate="code"
/>
<!-- Css_admin Field. Type: Editor. (joomla) -->
<!-- Created Field. Type: Calendar. (joomla) -->
<field
type="editor"
name="css_admin"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CSS_ADMIN_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CSS_ADMIN_DESCRIPTION"
width="100%"
height="450px"
cols="15"
rows="30"
buttons="no"
syntax="css"
editor="codemirror|none"
filter="raw"
validate="code"
type="calendar"
name="created"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CREATED_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CREATED_DESCRIPTION"
format="%Y-%m-%d %H:%M:%S"
filter="user_utc"
size="22"
/>
<!-- Php_helper_both Field. Type: Editor. (joomla) -->
<field
@ -218,12 +214,29 @@
filter="raw"
validate="code"
/>
<!-- Php_admin_event Field. Type: Editor. (joomla) -->
<!-- Note_readme Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_readme" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_README_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_README_DESCRIPTION" heading="h4" class="note_readme" />
<!-- Debug_linenr Field. Type: Radio. (joomla) -->
<field
type="radio"
name="debug_linenr"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DEBUG_LINENR_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DEBUG_LINENR_DESCRIPTION"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- Php_preflight_install Field. Type: Editor. (joomla) -->
<field
type="editor"
name="php_admin_event"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_ADMIN_EVENT_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_ADMIN_EVENT_DESCRIPTION"
name="php_preflight_install"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_PREFLIGHT_INSTALL_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_PREFLIGHT_INSTALL_DESCRIPTION"
width="100%"
height="450px"
cols="15"
@ -234,19 +247,65 @@
filter="raw"
validate="code"
/>
<!-- Sql_uninstall Field. Type: Textarea. (joomla) -->
<!-- Php_method_uninstall Field. Type: Editor. (joomla) -->
<field
type="textarea"
name="sql_uninstall"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL_UNINSTALL_LABEL"
rows="30"
type="editor"
name="php_method_uninstall"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_METHOD_UNINSTALL_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_METHOD_UNINSTALL_DESCRIPTION"
width="100%"
height="450px"
cols="15"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL_UNINSTALL_DESCRIPTION"
class="text_area span12"
rows="30"
buttons="no"
syntax="php"
editor="codemirror|none"
filter="raw"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL_UNINSTALL_HINT"
required="true"
validate="code"
/>
<!-- Note_version_options_three Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_version_options_three" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_VERSION_OPTIONS_THREE_DESCRIPTION" class="alert alert-info note_version_options_three" showon="mvc_versiondate:3" />
<!-- Css_admin Field. Type: Editor. (joomla) -->
<field
type="editor"
name="css_admin"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CSS_ADMIN_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CSS_ADMIN_DESCRIPTION"
width="100%"
height="450px"
cols="15"
rows="30"
buttons="no"
syntax="css"
editor="codemirror|none"
filter="raw"
validate="code"
/>
<!-- Note_version_options_two Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_version_options_two" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_VERSION_OPTIONS_TWO_DESCRIPTION" class="alert alert-info note_version_options_two" showon="mvc_versiondate:2" />
<!-- Note_version_options_one Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_version_options_one" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_VERSION_OPTIONS_ONE_DESCRIPTION" class="alert alert-info note_version_options_one" showon="mvc_versiondate:1" />
<!-- Mvc_versiondate Field. Type: List. (joomla) -->
<field
type="list"
name="mvc_versiondate"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MVC_VERSIONDATE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MVC_VERSIONDATE_DESCRIPTION"
class="list_class"
multiple="false"
filter="int"
required="true"
default="0">
<!-- Option Set. -->
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_USE_GLOBAL_VERSION</option>
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_USE_VIEW_VERSION_DATE</option>
<option value="2">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_USE_ONLY_FIRST_TWO_NUMBER_OF_GLOBAL_VERSION_ONEZEROX</option>
<option value="3">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_USE_ONLY_FIRST_NUMBER_OF_GLOBAL_VERSION_ONEXX</option>
</field>
<!-- Remove_line_breaks Field. Type: Radio. (joomla) -->
<field
type="radio"
@ -262,6 +321,23 @@
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- Add_placeholders Field. Type: Radio. (joomla) -->
<field
type="radio"
name="add_placeholders"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_PLACEHOLDERS_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_PLACEHOLDERS_DESCRIPTION"
class="btn-group btn-group-yesno"
default="1"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- Note_dynamic_dashboard Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_dynamic_dashboard" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_DYNAMIC_DASHBOARD_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_DYNAMIC_DASHBOARD_DESCRIPTION" heading="h4" class="alert alert-info note_dynamic_dashboard" />
<!-- Description Field. Type: Textarea. (joomla) -->
<field
type="textarea"
@ -290,145 +366,6 @@
filter="raw"
validate="code"
/>
<!-- Note_version_options_three Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_version_options_three" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_VERSION_OPTIONS_THREE_DESCRIPTION" class="alert alert-info note_version_options_three" showon="mvc_versiondate:3" />
<!-- Debug_linenr Field. Type: Radio. (joomla) -->
<field
type="radio"
name="debug_linenr"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DEBUG_LINENR_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DEBUG_LINENR_DESCRIPTION"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- Note_version_options_two Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_version_options_two" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_VERSION_OPTIONS_TWO_DESCRIPTION" class="alert alert-info note_version_options_two" showon="mvc_versiondate:2" />
<!-- Note_version_options_one Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_version_options_one" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_VERSION_OPTIONS_ONE_DESCRIPTION" class="alert alert-info note_version_options_one" showon="mvc_versiondate:1" />
<!-- Mvc_versiondate Field. Type: List. (joomla) -->
<field
type="list"
name="mvc_versiondate"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MVC_VERSIONDATE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MVC_VERSIONDATE_DESCRIPTION"
class="list_class"
multiple="false"
filter="int"
required="true"
default="0">
<!-- Option Set. -->
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_USE_GLOBAL_VERSION</option>
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_USE_VIEW_VERSION_DATE</option>
<option value="2">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_USE_ONLY_FIRST_TWO_NUMBER_OF_GLOBAL_VERSION_ONEZEROX</option>
<option value="3">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_USE_ONLY_FIRST_NUMBER_OF_GLOBAL_VERSION_ONEXX</option>
</field>
<!-- Note_dynamic_dashboard Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_dynamic_dashboard" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_DYNAMIC_DASHBOARD_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_DYNAMIC_DASHBOARD_DESCRIPTION" heading="h4" class="alert alert-info note_dynamic_dashboard" />
<!-- Note_update_server_note_ftp Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_update_server_note_ftp" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_UPDATE_SERVER_NOTE_FTP_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_UPDATE_SERVER_NOTE_FTP_DESCRIPTION" heading="h4" class="alert alert-success note_update_server_note_ftp" />
<!-- Php_preflight_install Field. Type: Editor. (joomla) -->
<field
type="editor"
name="php_preflight_install"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_PREFLIGHT_INSTALL_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_PREFLIGHT_INSTALL_DESCRIPTION"
width="100%"
height="450px"
cols="15"
rows="30"
buttons="no"
syntax="php"
editor="codemirror|none"
filter="raw"
validate="code"
/>
<!-- Crowdin_project_identifier Field. Type: Text. (joomla) -->
<field
type="text"
name="crowdin_project_identifier"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_PROJECT_IDENTIFIER_LABEL"
size="50"
maxlength="150"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_PROJECT_IDENTIFIER_DESCRIPTION"
class="text_area"
required="true"
filter="CMD"
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_PROJECT_IDENTIFIER_MESSAGE"
autocomplete="off"
onchange="getTranslationToolDetails()"
/>
<!-- Php_method_uninstall Field. Type: Editor. (joomla) -->
<field
type="editor"
name="php_method_uninstall"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_METHOD_UNINSTALL_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_METHOD_UNINSTALL_DESCRIPTION"
width="100%"
height="450px"
cols="15"
rows="30"
buttons="no"
syntax="php"
editor="codemirror|none"
filter="raw"
validate="code"
/>
<!-- Component_version Field. Type: Text. (joomla) -->
<field
type="text"
name="component_version"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPONENT_VERSION_LABEL"
size="40"
maxlength="50"
default="1.0.0"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPONENT_VERSION_DESCRIPTION"
class="text_area"
required="true"
filter="CMD"
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPONENT_VERSION_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPONENT_VERSION_HINT"
/>
<!-- Note_readme Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_readme" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_README_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_README_DESCRIPTION" heading="h4" class="note_readme" />
<!-- Add_placeholders Field. Type: Radio. (joomla) -->
<field
type="radio"
name="add_placeholders"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_PLACEHOLDERS_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_PLACEHOLDERS_DESCRIPTION"
class="btn-group btn-group-yesno"
default="1"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- Add_sales_server Field. Type: Radio. (joomla) -->
<field
type="radio"
name="add_sales_server"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_SALES_SERVER_LABEL"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- Author Field. Type: Text. (joomla) -->
<field
type="text"
@ -445,8 +382,19 @@
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_AUTHOR_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_AUTHOR_HINT"
/>
<!-- Note_buildcomp_dynamic_mysql Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_buildcomp_dynamic_mysql" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BUILDCOMP_DYNAMIC_MYSQL_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BUILDCOMP_DYNAMIC_MYSQL_DESCRIPTION" heading="h4" class="alert alert-info note_buildcomp_dynamic_mysql" />
<!-- Sql_uninstall Field. Type: Textarea. (joomla) -->
<field
type="textarea"
name="sql_uninstall"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL_UNINSTALL_LABEL"
rows="30"
cols="15"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL_UNINSTALL_DESCRIPTION"
class="text_area span12"
filter="raw"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL_UNINSTALL_HINT"
required="true"
/>
<!-- Email Field. Type: Text. (joomla) -->
<field
type="text"
@ -462,21 +410,8 @@
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMAIL_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMAIL_HINT"
/>
<!-- Add_email_helper Field. Type: Radio. (joomla) -->
<field
type="radio"
name="add_email_helper"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_EMAIL_HELPER_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_EMAIL_HELPER_DESCRIPTION"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- Note_update_server_note_ftp Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_update_server_note_ftp" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_UPDATE_SERVER_NOTE_FTP_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_UPDATE_SERVER_NOTE_FTP_DESCRIPTION" heading="h4" class="alert alert-success note_update_server_note_ftp" />
<!-- Website Field. Type: Url. (joomla) -->
<field
type="url"
@ -493,22 +428,8 @@
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WEBSITE_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WEBSITE_HINT"
/>
<!-- Php_helper_admin Field. Type: Editor. (joomla) -->
<field
type="editor"
name="php_helper_admin"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_ADMIN_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_ADMIN_DESCRIPTION"
width="100%"
height="550px"
cols="15"
rows="80"
buttons="no"
syntax="php"
editor="codemirror|none"
filter="raw"
validate="code"
/>
<!-- Note_buildcomp_dynamic_mysql Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_buildcomp_dynamic_mysql" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BUILDCOMP_DYNAMIC_MYSQL_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BUILDCOMP_DYNAMIC_MYSQL_DESCRIPTION" heading="h4" class="alert alert-info note_buildcomp_dynamic_mysql" />
<!-- Add_license Field. Type: Radio. (joomla) -->
<field
type="radio"
@ -524,22 +445,21 @@
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- Php_helper_site Field. Type: Editor. (joomla) -->
<!-- Add_email_helper Field. Type: Radio. (joomla) -->
<field
type="editor"
name="php_helper_site"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_SITE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_SITE_DESCRIPTION"
width="100%"
height="550px"
cols="15"
rows="80"
buttons="no"
syntax="php"
editor="codemirror|none"
filter="raw"
validate="code"
/>
type="radio"
name="add_email_helper"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_EMAIL_HELPER_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_EMAIL_HELPER_DESCRIPTION"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- License_type Field. Type: List. (joomla) -->
<field
type="list"
@ -561,36 +481,36 @@
<option value="4">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CUSTOM_USED_IN_CUSTOM_CODE</option>
</field>
<!-- Javascript Field. Type: Editor. (joomla) -->
<!-- Php_helper_admin Field. Type: Editor. (joomla) -->
<field
type="editor"
name="javascript"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JAVASCRIPT_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JAVASCRIPT_DESCRIPTION"
name="php_helper_admin"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_ADMIN_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_ADMIN_DESCRIPTION"
width="100%"
height="450px"
height="550px"
cols="15"
rows="30"
rows="80"
buttons="no"
syntax="javascript"
syntax="php"
editor="codemirror|none"
filter="raw"
validate="code"
/>
<!-- Note_whmcs_lisencing_note Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_whmcs_lisencing_note" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_WHMCS_LISENCING_NOTE_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_WHMCS_LISENCING_NOTE_DESCRIPTION" heading="h4" class="alert alert-success note_whmcs_lisencing_note" />
<!-- Css_site Field. Type: Editor. (joomla) -->
<!-- Php_helper_site Field. Type: Editor. (joomla) -->
<field
type="editor"
name="css_site"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CSS_SITE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CSS_SITE_DESCRIPTION"
name="php_helper_site"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_SITE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_SITE_DESCRIPTION"
width="100%"
height="450px"
height="550px"
cols="15"
rows="30"
rows="80"
buttons="no"
syntax="css"
syntax="php"
editor="codemirror|none"
filter="raw"
validate="code"
@ -608,8 +528,22 @@
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_KEY_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_KEY_HINT"
/>
<!-- Note_botton_component_dashboard Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_botton_component_dashboard" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BOTTON_COMPONENT_DASHBOARD_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BOTTON_COMPONENT_DASHBOARD_DESCRIPTION" heading="h4" class="alert alert-info note_botton_component_dashboard" />
<!-- Javascript Field. Type: Editor. (joomla) -->
<field
type="editor"
name="javascript"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JAVASCRIPT_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JAVASCRIPT_DESCRIPTION"
width="100%"
height="450px"
cols="15"
rows="30"
buttons="no"
syntax="javascript"
editor="codemirror|none"
filter="raw"
validate="code"
/>
<!-- Whmcs_url Field. Type: Url. (joomla) -->
<field
type="url"
@ -625,18 +559,18 @@
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_URL_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_URL_HINT"
/>
<!-- Php_preflight_update Field. Type: Editor. (joomla) -->
<!-- Css_site Field. Type: Editor. (joomla) -->
<field
type="editor"
name="php_preflight_update"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_PREFLIGHT_UPDATE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_PREFLIGHT_UPDATE_DESCRIPTION"
name="css_site"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CSS_SITE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CSS_SITE_DESCRIPTION"
width="100%"
height="450px"
cols="15"
rows="30"
buttons="no"
syntax="php"
syntax="css"
editor="codemirror|none"
filter="raw"
validate="code"
@ -656,6 +590,50 @@
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_BUY_LINK_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_BUY_LINK_HINT"
/>
<!-- Note_botton_component_dashboard Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_botton_component_dashboard" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BOTTON_COMPONENT_DASHBOARD_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BOTTON_COMPONENT_DASHBOARD_DESCRIPTION" heading="h4" class="alert alert-info note_botton_component_dashboard" />
<!-- License Field. Type: Textarea. (joomla) -->
<field
type="textarea"
name="license"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LICENSE_LABEL"
rows="7"
cols="10"
default="GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LICENSE_DESCRIPTION"
class="text_area span12"
filter="HTML"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LICENSE_HINT"
required="true"
/>
<!-- Php_preflight_update Field. Type: Editor. (joomla) -->
<field
type="editor"
name="php_preflight_update"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_PREFLIGHT_UPDATE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_PREFLIGHT_UPDATE_DESCRIPTION"
width="100%"
height="450px"
cols="15"
rows="30"
buttons="no"
syntax="php"
editor="codemirror|none"
filter="raw"
validate="code"
/>
<!-- Bom Field. Type: Filelist. (joomla) -->
<field
type="filelist"
name="bom"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BOM_LABEL"
directory="administrator/components/com_componentbuilder/compiler"
default="default.txt"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BOM_DESCRIPTION"
filter="\.txt"
hide_none="true"
hide_default="true"
/>
<!-- Php_postflight_update Field. Type: Editor. (joomla) -->
<field
type="editor"
@ -672,19 +650,13 @@
filter="raw"
validate="code"
/>
<!-- License Field. Type: Textarea. (joomla) -->
<!-- Image Field. Type: Media. (joomla) -->
<field
type="textarea"
name="license"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LICENSE_LABEL"
rows="7"
cols="10"
default="GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LICENSE_DESCRIPTION"
class="text_area span12"
filter="HTML"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LICENSE_HINT"
required="true"
type="media"
name="image"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMAGE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMAGE_DESCRIPTION"
directory=""
/>
<!-- Sql Field. Type: Textarea. (joomla) -->
<field
@ -699,54 +671,6 @@
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL_HINT"
required="true"
/>
<!-- Bom Field. Type: Filelist. (joomla) -->
<field
type="filelist"
name="bom"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BOM_LABEL"
directory="administrator/components/com_componentbuilder/compiler"
default="default.txt"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BOM_DESCRIPTION"
filter="\.txt"
hide_none="true"
hide_default="true"
/>
<!-- Addreadme Field. Type: Radio. (joomla) -->
<field
type="radio"
name="addreadme"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDREADME_LABEL"
class="btn-group btn-group-yesno"
default="0">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- Image Field. Type: Media. (joomla) -->
<field
type="media"
name="image"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMAGE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMAGE_DESCRIPTION"
directory=""
/>
<!-- Update_server_url Field. Type: Url. (joomla) -->
<field
type="url"
name="update_server_url"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UPDATE_SERVER_URL_LABEL"
size="60"
maxlength="150"
default=""
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UPDATE_SERVER_URL_DESCRIPTION"
class="text_area span12"
filter="url"
validated="url"
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UPDATE_SERVER_URL_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UPDATE_SERVER_URL_HINT"
/>
<!-- Copyright Field. Type: Textarea. (joomla) -->
<field
type="textarea"
@ -761,13 +685,79 @@
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COPYRIGHT_HINT"
required="true"
/>
<!-- Addreadme Field. Type: Radio. (joomla) -->
<field
type="radio"
name="addreadme"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDREADME_LABEL"
class="btn-group btn-group-yesno"
default="0">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- Add_sales_server Field. Type: Radio. (joomla) -->
<field
type="radio"
name="add_sales_server"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_SALES_SERVER_LABEL"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- Update_server_url Field. Type: Url. (joomla) -->
<field
type="url"
name="update_server_url"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UPDATE_SERVER_URL_LABEL"
size="60"
maxlength="150"
default=""
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UPDATE_SERVER_URL_DESCRIPTION"
class="text_area span12"
filter="url"
validated="url"
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UPDATE_SERVER_URL_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UPDATE_SERVER_URL_HINT"
/>
<!-- Crowdin_project_identifier Field. Type: Text. (joomla) -->
<field
type="text"
name="crowdin_project_identifier"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_PROJECT_IDENTIFIER_LABEL"
size="50"
maxlength="150"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_PROJECT_IDENTIFIER_DESCRIPTION"
class="text_area"
required="true"
filter="CMD"
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_PROJECT_IDENTIFIER_MESSAGE"
autocomplete="off"
onchange="getTranslationToolDetails()"
/>
<!-- Note_update_server_note_other Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_update_server_note_other" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_UPDATE_SERVER_NOTE_OTHER_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_UPDATE_SERVER_NOTE_OTHER_DESCRIPTION" heading="h4" class="alert alert-success note_update_server_note_other" />
<!-- Not_required Field. Type: Hidden. (joomla) -->
<!-- Component_version Field. Type: Text. (joomla) -->
<field
type="hidden"
name="not_required"
default="一_一"
type="text"
name="component_version"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPONENT_VERSION_LABEL"
size="40"
maxlength="50"
default="1.0.0"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPONENT_VERSION_DESCRIPTION"
class="text_area"
required="true"
filter="CMD"
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPONENT_VERSION_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPONENT_VERSION_HINT"
/>
<!-- Translation_tool Field. Type: List. (joomla) -->
<field
@ -783,8 +773,12 @@
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN</option>
</field>
<!-- Note_moved_views Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_moved_views" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_MOVED_VIEWS_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_MOVED_VIEWS_DESCRIPTION" heading="h4" class="alert alert-info note_moved_views" />
<!-- Not_required Field. Type: Hidden. (joomla) -->
<field
type="hidden"
name="not_required"
default="一_一"
/>
<!-- Crowdin_username Field. Type: Text. (joomla) -->
<field
type="text"
@ -799,8 +793,8 @@
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_USERNAME_MESSAGE"
autocomplete="off"
/>
<!-- Spacer_hr_one Field. Type: Spacer. A None Database Field. (joomla) -->
<field type="spacer" name="spacer_hr_one" hr="true" class="spacer_hr_one" />
<!-- Note_moved_views Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_moved_views" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_MOVED_VIEWS_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_MOVED_VIEWS_DESCRIPTION" heading="h4" class="alert alert-info note_moved_views" />
<!-- Buildcompsql Field. Type: Textarea. (joomla) -->
<field
type="textarea"
@ -814,26 +808,10 @@
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BUILDCOMPSQL_HINT"
required="true"
/>
<!-- Spacer_hr_one Field. Type: Spacer. A None Database Field. (joomla) -->
<field type="spacer" name="spacer_hr_one" hr="true" class="spacer_hr_one" />
<!-- Note_mysql_tweak_options Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_mysql_tweak_options" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_MYSQL_TWEAK_OPTIONS_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_MYSQL_TWEAK_OPTIONS_DESCRIPTION" heading="h4" class="alert alert-info note_mysql_tweak_options" />
<!-- Addfootable Field. Type: List. (joomla) -->
<field
type="list"
name="addfootable"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDFOOTABLE_LABEL"
class="list_class"
multiple="false"
filter="INT"
required="true"
default="0">
<!-- Option Set. -->
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DYNAMIC</option>
<option value="3">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_FOOTABLE_VTHREE</option>
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_FOOTABLE_VTWO</option>
</field>
<!-- Spacer_hr_two Field. Type: Spacer. A None Database Field. (joomla) -->
<field type="spacer" name="spacer_hr_two" hr="true" class="spacer_hr_two" />
<!-- Add_php_helper_both Field. Type: Radio. (joomla) -->
@ -1510,6 +1488,35 @@
validate="guid"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_GUID_HINT"
/>
<!-- Addfootable Field. Type: List. (joomla) -->
<field
type="list"
name="addfootable"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDFOOTABLE_LABEL"
class="list_class"
multiple="false"
filter="INT"
required="true"
default="0">
<!-- Option Set. -->
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DYNAMIC</option>
<option value="3">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_FOOTABLE_VTHREE</option>
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_FOOTABLE_VTWO</option>
</field>
<!-- Modified Field. Type: Calendar. (joomla) -->
<field
type="calendar"
name="modified"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MODIFIED_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MODIFIED_DESCRIPTION"
readonly="true"
format="%Y-%m-%d %H:%M:%S"
filter="user_utc"
size="22"
/>
<!-- Name Field. Type: Text. (joomla) -->
<field
type="text"

View File

@ -127,9 +127,9 @@
default="0"
button="true"
/>
<!-- Components Field. Type: Components. (custom) -->
<!-- Components Field. Type: Joomlacomponents. (custom) -->
<field
type="components"
type="joomlacomponents"
name="components"
label="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_COMPONENTS_LABEL"
class="list_class span12"

View File

@ -89,13 +89,13 @@ class ComponentbuilderModelJoomla_component extends JModelAdmin
'css_site'
)
),
'mysql' => array(
'fullwidth' => array(
'add_sql',
'sql',
'add_sql_uninstall',
'sql_uninstall',
'assets_table_fix'
'readme' => array(
'left' => array(
'addreadme',
'readme'
),
'right' => array(
'note_readme'
)
),
'dash_install' => array(
@ -120,6 +120,15 @@ class ComponentbuilderModelJoomla_component extends JModelAdmin
'php_method_uninstall'
)
),
'mysql' => array(
'fullwidth' => array(
'add_sql',
'sql',
'add_sql_uninstall',
'sql_uninstall',
'assets_table_fix'
)
),
'dynamic_integration' => array(
'left' => array(
'add_update_server',
@ -141,15 +150,6 @@ class ComponentbuilderModelJoomla_component extends JModelAdmin
'crowdin_account_api_key'
)
),
'readme' => array(
'left' => array(
'addreadme',
'readme'
),
'right' => array(
'note_readme'
)
),
'dynamic_build_beta' => array(
'fullwidth' => array(
'note_buildcomp_dynamic_mysql',
@ -340,40 +340,22 @@ class ComponentbuilderModelJoomla_component extends JModelAdmin
$item->metadata = $registry->toArray();
}
if (!empty($item->php_site_event))
{
// base64 Decode php_site_event.
$item->php_site_event = base64_decode($item->php_site_event);
}
if (!empty($item->css_admin))
{
// base64 Decode css_admin.
$item->css_admin = base64_decode($item->css_admin);
}
if (!empty($item->php_helper_both))
{
// base64 Decode php_helper_both.
$item->php_helper_both = base64_decode($item->php_helper_both);
}
if (!empty($item->php_admin_event))
{
// base64 Decode php_admin_event.
$item->php_admin_event = base64_decode($item->php_admin_event);
}
if (!empty($item->sql_uninstall))
if (!empty($item->php_site_event))
{
// base64 Decode sql_uninstall.
$item->sql_uninstall = base64_decode($item->sql_uninstall);
// base64 Decode php_site_event.
$item->php_site_event = base64_decode($item->php_site_event);
}
if (!empty($item->php_postflight_install))
if (!empty($item->php_helper_both))
{
// base64 Decode php_postflight_install.
$item->php_postflight_install = base64_decode($item->php_postflight_install);
// base64 Decode php_helper_both.
$item->php_helper_both = base64_decode($item->php_helper_both);
}
if (!empty($item->php_preflight_install))
@ -388,6 +370,24 @@ class ComponentbuilderModelJoomla_component extends JModelAdmin
$item->php_method_uninstall = base64_decode($item->php_method_uninstall);
}
if (!empty($item->css_admin))
{
// base64 Decode css_admin.
$item->css_admin = base64_decode($item->css_admin);
}
if (!empty($item->php_postflight_install))
{
// base64 Decode php_postflight_install.
$item->php_postflight_install = base64_decode($item->php_postflight_install);
}
if (!empty($item->sql_uninstall))
{
// base64 Decode sql_uninstall.
$item->sql_uninstall = base64_decode($item->sql_uninstall);
}
if (!empty($item->php_helper_admin))
{
// base64 Decode php_helper_admin.
@ -1413,40 +1413,22 @@ class ComponentbuilderModelJoomla_component extends JModelAdmin
$data['addcontributors'] = '';
}
// Set the php_site_event string to base64 string.
if (isset($data['php_site_event']))
{
$data['php_site_event'] = base64_encode($data['php_site_event']);
}
// Set the css_admin string to base64 string.
if (isset($data['css_admin']))
{
$data['css_admin'] = base64_encode($data['css_admin']);
}
// Set the php_helper_both string to base64 string.
if (isset($data['php_helper_both']))
{
$data['php_helper_both'] = base64_encode($data['php_helper_both']);
}
// Set the php_admin_event string to base64 string.
if (isset($data['php_admin_event']))
{
$data['php_admin_event'] = base64_encode($data['php_admin_event']);
}
// Set the sql_uninstall string to base64 string.
if (isset($data['sql_uninstall']))
// Set the php_site_event string to base64 string.
if (isset($data['php_site_event']))
{
$data['sql_uninstall'] = base64_encode($data['sql_uninstall']);
$data['php_site_event'] = base64_encode($data['php_site_event']);
}
// Set the php_postflight_install string to base64 string.
if (isset($data['php_postflight_install']))
// Set the php_helper_both string to base64 string.
if (isset($data['php_helper_both']))
{
$data['php_postflight_install'] = base64_encode($data['php_postflight_install']);
$data['php_helper_both'] = base64_encode($data['php_helper_both']);
}
// Set the php_preflight_install string to base64 string.
@ -1461,6 +1443,24 @@ class ComponentbuilderModelJoomla_component extends JModelAdmin
$data['php_method_uninstall'] = base64_encode($data['php_method_uninstall']);
}
// Set the css_admin string to base64 string.
if (isset($data['css_admin']))
{
$data['css_admin'] = base64_encode($data['css_admin']);
}
// Set the php_postflight_install string to base64 string.
if (isset($data['php_postflight_install']))
{
$data['php_postflight_install'] = base64_encode($data['php_postflight_install']);
}
// Set the sql_uninstall string to base64 string.
if (isset($data['sql_uninstall']))
{
$data['sql_uninstall'] = base64_encode($data['sql_uninstall']);
}
// Set the php_helper_admin string to base64 string.
if (isset($data['php_helper_admin']))
{

View File

@ -34,7 +34,9 @@ class ComponentbuilderModelJoomla_components extends JModelList
'a.author','author',
'a.system_name','system_name',
'a.name_code','name_code',
'a.short_description','short_description'
'a.short_description','short_description',
'a.created','created',
'a.modified','modified'
);
}
@ -2114,9 +2116,6 @@ class ComponentbuilderModelJoomla_components extends JModelList
$created_by = $this->getUserStateFromRequest($this->context . '.filter.created_by', 'filter_created_by', '');
$this->setState('filter.created_by', $created_by);
$created = $this->getUserStateFromRequest($this->context . '.filter.created', 'filter_created');
$this->setState('filter.created', $created);
$sorting = $this->getUserStateFromRequest($this->context . '.filter.sorting', 'filter_sorting', 0, 'int');
$this->setState('filter.sorting', $sorting);
@ -2158,6 +2157,20 @@ class ComponentbuilderModelJoomla_components extends JModelList
$this->setState('filter.short_description', $short_description);
}
$created = $this->getUserStateFromRequest($this->context . '.filter.created', 'filter_created');
if ($formSubmited)
{
$created = $app->input->post->get('created');
$this->setState('filter.created', $created);
}
$modified = $this->getUserStateFromRequest($this->context . '.filter.modified', 'filter_modified');
if ($formSubmited)
{
$modified = $app->input->post->get('modified');
$this->setState('filter.modified', $modified);
}
// List state information.
parent::populateState($ordering, $direction);
}
@ -2284,6 +2297,29 @@ class ComponentbuilderModelJoomla_components extends JModelList
{
$query->where('a.companyname = ' . $db->quote($db->escape($_companyname)));
}
elseif (ComponentbuilderHelper::checkArray($_companyname))
{
// Secure the array for the query
$_companyname = array_map( function ($val) use(&$db) {
if (is_numeric($val))
{
if (is_float($val))
{
return (float) $val;
}
else
{
return (int) $val;
}
}
elseif (ComponentbuilderHelper::checkString($val))
{
return $db->quote($db->escape($val));
}
}, $_companyname);
// Filter by the Companyname Array.
$query->where('a.companyname IN (' . implode(',', $_companyname) . ')');
}
// Filter by Author.
$_author = $this->getState('filter.author');
if (is_numeric($_author))
@ -2301,6 +2337,29 @@ class ComponentbuilderModelJoomla_components extends JModelList
{
$query->where('a.author = ' . $db->quote($db->escape($_author)));
}
elseif (ComponentbuilderHelper::checkArray($_author))
{
// Secure the array for the query
$_author = array_map( function ($val) use(&$db) {
if (is_numeric($val))
{
if (is_float($val))
{
return (float) $val;
}
else
{
return (int) $val;
}
}
elseif (ComponentbuilderHelper::checkString($val))
{
return $db->quote($db->escape($val));
}
}, $_author);
// Filter by the Author Array.
$query->where('a.author IN (' . implode(',', $_author) . ')');
}
// Add the list ordering clause.
$orderCol = $this->state->get('list.ordering', 'a.id');
@ -2395,35 +2454,35 @@ class ComponentbuilderModelJoomla_components extends JModelList
continue;
}
// decode php_site_event
$item->php_site_event = base64_decode($item->php_site_event);
// decode css_admin
$item->css_admin = base64_decode($item->css_admin);
// decode php_helper_both
$item->php_helper_both = base64_decode($item->php_helper_both);
// decode php_admin_event
$item->php_admin_event = base64_decode($item->php_admin_event);
// decode sql_uninstall
$item->sql_uninstall = base64_decode($item->sql_uninstall);
// decode php_postflight_install
$item->php_postflight_install = base64_decode($item->php_postflight_install);
// decode php_site_event
$item->php_site_event = base64_decode($item->php_site_event);
// decode php_helper_both
$item->php_helper_both = base64_decode($item->php_helper_both);
// decode php_preflight_install
$item->php_preflight_install = base64_decode($item->php_preflight_install);
// decode php_method_uninstall
$item->php_method_uninstall = base64_decode($item->php_method_uninstall);
// decode css_admin
$item->css_admin = base64_decode($item->css_admin);
// decode php_postflight_install
$item->php_postflight_install = base64_decode($item->php_postflight_install);
// decode sql_uninstall
$item->sql_uninstall = base64_decode($item->sql_uninstall);
// decode php_helper_admin
$item->php_helper_admin = base64_decode($item->php_helper_admin);
// decode php_helper_site
$item->php_helper_site = base64_decode($item->php_helper_site);
// decode javascript
$item->javascript = base64_decode($item->javascript);
// decode css_site
$item->css_site = base64_decode($item->css_site);
if ($basickey && !is_numeric($item->whmcs_key) && $item->whmcs_key === base64_encode(base64_decode($item->whmcs_key, true)))
{
// decrypt whmcs_key
$item->whmcs_key = $basic->decryptString($item->whmcs_key);
}
// decode javascript
$item->javascript = base64_decode($item->javascript);
// decode css_site
$item->css_site = base64_decode($item->css_site);
// decode php_preflight_update
$item->php_preflight_update = base64_decode($item->php_preflight_update);
// decode php_postflight_update
@ -2526,11 +2585,35 @@ class ComponentbuilderModelJoomla_components extends JModelList
$id .= ':' . $this->getState('filter.ordering');
$id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.companyname');
$id .= ':' . $this->getState('filter.author');
// Check if the value is an array
$_companyname = $this->getState('filter.companyname');
if (ComponentbuilderHelper::checkArray($_companyname))
{
$id .= ':' . implode(':', $_companyname);
}
// Check if this is only an number or string
elseif (is_numeric($_companyname)
|| ComponentbuilderHelper::checkString($_companyname))
{
$id .= ':' . $_companyname;
}
// Check if the value is an array
$_author = $this->getState('filter.author');
if (ComponentbuilderHelper::checkArray($_author))
{
$id .= ':' . implode(':', $_author);
}
// Check if this is only an number or string
elseif (is_numeric($_author)
|| ComponentbuilderHelper::checkString($_author))
{
$id .= ':' . $_author;
}
$id .= ':' . $this->getState('filter.system_name');
$id .= ':' . $this->getState('filter.name_code');
$id .= ':' . $this->getState('filter.short_description');
$id .= ':' . $this->getState('filter.created');
$id .= ':' . $this->getState('filter.modified');
return parent::getStoreId($id);
}

View File

@ -37,6 +37,93 @@ class ComponentbuilderModelLanguage_translations extends JModelList
parent::__construct($config);
}
/**
* Get the filter form - Override the parent method
*
* @param array $data data
* @param boolean $loadData load current data
*
* @return \JForm|boolean The \JForm object or false on error
*
* @since JCB 2.12.5
*/
public function getFilterForm($data = array(), $loadData = true)
{
// load form from the parent class
$form = parent::getFilterForm($data, $loadData);
// Create the "extension" filter
$form->setField(new SimpleXMLElement(
ComponentbuilderHelper::getExtensionGroupedListXml()
),'filter');
$form->setValue(
'extension',
'filter',
$this->state->get("filter.extension")
);
array_push($this->filter_fields, 'extension');
// Create the "translated in" filter
$attributes = array(
'name' => 'translated',
'type' => 'list',
'onchange' => 'this.form.submit();',
);
// no languages found notice
$options = array(
'' => '- ' . JText::_('COM_COMPONENTBUILDER_NO_LANGUAGES_FOUND') . ' -'
);
// check if we have languages set
if (($languages = ComponentbuilderHelper::getAvailableLanguages()) !== false)
{
$options = array(
'' => '- ' . JText::_('COM_COMPONENTBUILDER_TRANSLATED_IN') . ' -',
'all' => JText::_('COM_COMPONENTBUILDER_EVERY_LANGUAGE')
);
$options = array_merge($options, $languages);
}
$form->setField(ComponentbuilderHelper::getFieldXML($attributes, $options),'filter');
$form->setValue(
'translated',
'filter',
$this->state->get("filter.translated")
);
array_push($this->filter_fields, 'translated');
// Create the "not translated in" filter
$attributes = array(
'name' => 'not_translated',
'type' => 'list',
'onchange' => 'this.form.submit();',
);
// no languages found notice
$options = array(
'' => '- ' . JText::_('COM_COMPONENTBUILDER_NO_LANGUAGES_FOUND') . ' -'
);
// check if we have languages set
if ($languages)
{
$options = array(
'' => '- ' . JText::_('COM_COMPONENTBUILDER_NOT_TRANSLATED_IN') . ' -',
'none' => JText::_('COM_COMPONENTBUILDER_ANY_LANGUAGE')
);
$options = array_merge($options, $languages);
}
$form->setField(ComponentbuilderHelper::getFieldXML($attributes, $options),'filter');
$form->setValue(
'not_translated',
'filter',
$this->state->get("filter.not_translated")
);
array_push($this->filter_fields, 'not_translated');
return $form;
}
/**
* Method to auto-populate the model state.
*
@ -205,6 +292,57 @@ class ComponentbuilderModelLanguage_translations extends JModelList
// From the componentbuilder_item table
$query->from($db->quoteName('#__componentbuilder_language_translation', 'a'));
// do not use these filters in the export method
if (!isset($_export) || !$_export)
{
// Filtering "translated in"
$filter_translated = $this->state->get("filter.translated");
if ($filter_translated !== null && !empty($filter_translated))
{
if (($ids = ComponentbuilderHelper::getTranslationIds($filter_translated)) !== false)
{
$query->where($db->quoteName('a.id') . ' IN (' . implode(',', $ids) . ')');
}
else
{
// there is none
$query->where($db->quoteName('a.id') . ' = ' . 0);
}
}
// Filtering "not translated in"
$filter_not_translated = $this->state->get("filter.not_translated");
if ($filter_not_translated !== null && !empty($filter_not_translated))
{
if (($ids = ComponentbuilderHelper::getTranslationIds($filter_not_translated, false)) !== false)
{
$query->where($db->quoteName('a.id') . ' IN (' . implode(',',$ids) . ')');
}
else
{
// there is none
$query->where($db->quoteName('a.id') . ' = ' . 0);
}
}
// Filtering "extension"
$filter_extension = $this->state->get("filter.extension");
if ($filter_extension !== null && !empty($filter_extension))
{
// column name, and id
$type_extension = explode('__', $filter_extension);
if (($ids = ComponentbuilderHelper::getTranslationExtensionsIds($type_extension[1], $type_extension[0])) !== false)
{
$query->where($db->quoteName('a.id') . ' IN (' . implode(',', $ids) . ')');
}
else
{
// there is none
$query->where($db->quoteName('a.id') . ' = ' . 0);
}
}
}
// Filter by published state
$published = $this->getState('filter.published');
if (is_numeric($published))
@ -312,6 +450,57 @@ class ComponentbuilderModelLanguage_translations extends JModelList
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// do not use these filters in the export method
if (!isset($_export) || !$_export)
{
// Filtering "translated in"
$filter_translated = $this->state->get("filter.translated");
if ($filter_translated !== null && !empty($filter_translated))
{
if (($ids = ComponentbuilderHelper::getTranslationIds($filter_translated)) !== false)
{
$query->where($db->quoteName('a.id') . ' IN (' . implode(',', $ids) . ')');
}
else
{
// there is none
$query->where($db->quoteName('a.id') . ' = ' . 0);
}
}
// Filtering "not translated in"
$filter_not_translated = $this->state->get("filter.not_translated");
if ($filter_not_translated !== null && !empty($filter_not_translated))
{
if (($ids = ComponentbuilderHelper::getTranslationIds($filter_not_translated, false)) !== false)
{
$query->where($db->quoteName('a.id') . ' IN (' . implode(',',$ids) . ')');
}
else
{
// there is none
$query->where($db->quoteName('a.id') . ' = ' . 0);
}
}
// Filtering "extension"
$filter_extension = $this->state->get("filter.extension");
if ($filter_extension !== null && !empty($filter_extension))
{
// column name, and id
$type_extension = explode('__', $filter_extension);
if (($ids = ComponentbuilderHelper::getTranslationExtensionsIds($type_extension[1], $type_extension[0])) !== false)
{
$query->where($db->quoteName('a.id') . ' IN (' . implode(',', $ids) . ')');
}
else
{
// there is none
$query->where($db->quoteName('a.id') . ' = ' . 0);
}
}
}
// Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder'))
{

View File

@ -43,6 +43,51 @@ class ComponentbuilderModelSite_views extends JModelList
parent::__construct($config);
}
/**
* Get the filter form - Override the parent method
*
* @param array $data data
* @param boolean $loadData load current data
*
* @return \JForm|boolean The \JForm object or false on error
*
* @since JCB 2.12.5
*/
public function getFilterForm($data = array(), $loadData = true)
{
// load form from the parent class
$form = parent::getFilterForm($data, $loadData);
// Create the "joomla_component" filter
$attributes = array(
'name' => 'joomla_component',
'type' => 'list',
'onchange' => 'this.form.submit();',
);
$options = array(
'' => '- ' . JText::_('COM_COMPONENTBUILDER_NO_COMPONENTS_FOUND') . ' -'
);
// check if we have joomla components
if (($joomla_components = ComponentbuilderHelper::getByTypeTheIdsSystemNames('joomla_component')) !== false)
{
$options = array(
'' => '- ' . JText::_('COM_COMPONENTBUILDER_SELECT_COMPONENT') . ' -'
);
// make sure we do not lose the key values in normal merge
$options = $options + $joomla_components;
}
$form->setField(ComponentbuilderHelper::getFieldXML($attributes, $options),'filter');
$form->setValue(
'joomla_component',
'filter',
$this->state->get("filter.joomla_component")
);
array_push($this->filter_fields, 'joomla_component');
return $form;
}
/**
* Method to auto-populate the model state.
*
@ -248,6 +293,25 @@ class ComponentbuilderModelSite_views extends JModelList
// From the componentbuilder_item table
$query->from($db->quoteName('#__componentbuilder_site_view', 'a'));
// do not use these filters in the export method
if (!isset($_export) || !$_export)
{
// Filtering "joomla components"
$filter_joomla_component = $this->state->get("filter.joomla_component");
if ($filter_joomla_component !== null && !empty($filter_joomla_component))
{
if (($ids = ComponentbuilderHelper::getAreaLinkedIDs($filter_joomla_component, 'joomla_component_site_views')) !== false)
{
$query->where($db->quoteName('a.id') . ' IN (' . implode(',', $ids) . ')');
}
else
{
// there is none
$query->where($db->quoteName('a.id') . ' = ' . 0);
}
}
}
// From the componentbuilder_dynamic_get table.
$query->select($db->quoteName('g.name','main_get_name'));
$query->join('LEFT', $db->quoteName('#__componentbuilder_dynamic_get', 'g') . ' ON (' . $db->quoteName('a.main_get') . ' = ' . $db->quoteName('g.id') . ')');
@ -317,6 +381,29 @@ class ComponentbuilderModelSite_views extends JModelList
{
$query->where('a.main_get = ' . $db->quote($db->escape($_main_get)));
}
elseif (ComponentbuilderHelper::checkArray($_main_get))
{
// Secure the array for the query
$_main_get = array_map( function ($val) use(&$db) {
if (is_numeric($val))
{
if (is_float($val))
{
return (float) $val;
}
else
{
return (int) $val;
}
}
elseif (ComponentbuilderHelper::checkString($val))
{
return $db->quote($db->escape($val));
}
}, $_main_get);
// Filter by the Main_get Array.
$query->where('a.main_get IN (' . implode(',', $_main_get) . ')');
}
// Filter by Add_php_ajax.
$_add_php_ajax = $this->getState('filter.add_php_ajax');
if (is_numeric($_add_php_ajax))
@ -410,6 +497,25 @@ class ComponentbuilderModelSite_views extends JModelList
{
$query->where('a.id IN (' . implode(',',$pks) . ')');
}
// do not use these filters in the export method
if (!isset($_export) || !$_export)
{
// Filtering "joomla components"
$filter_joomla_component = $this->state->get("filter.joomla_component");
if ($filter_joomla_component !== null && !empty($filter_joomla_component))
{
if (($ids = ComponentbuilderHelper::getAreaLinkedIDs($filter_joomla_component, 'joomla_component_site_views')) !== false)
{
$query->where($db->quoteName('a.id') . ' IN (' . implode(',', $ids) . ')');
}
else
{
// there is none
$query->where($db->quoteName('a.id') . ' = ' . 0);
}
}
}
// Implement View Level Access
if (!$user->authorise('core.options', 'com_componentbuilder'))
{
@ -536,7 +642,18 @@ class ComponentbuilderModelSite_views extends JModelList
$id .= ':' . $this->getState('filter.ordering');
$id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.main_get');
// Check if the value is an array
$_main_get = $this->getState('filter.main_get');
if (ComponentbuilderHelper::checkArray($_main_get))
{
$id .= ':' . implode(':', $_main_get);
}
// Check if this is only an number or string
elseif (is_numeric($_main_get)
|| ComponentbuilderHelper::checkString($_main_get))
{
$id .= ':' . $_main_get;
}
$id .= ':' . $this->getState('filter.add_php_ajax');
$id .= ':' . $this->getState('filter.add_custom_button');
$id .= ':' . $this->getState('filter.system_name');

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
ALTER TABLE `#__componentbuilder_admin_view` ADD `add_category_submenu` TINYINT(1) NOT NULL DEFAULT 1 AFTER `asset_id`;

View File

@ -15,6 +15,7 @@ defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.multiselect');
JHtml::_('dropdown.init');
JHtml::_('formbehavior.chosen', '.multipleMaingets', null, array('placeholder_text_multiple' => '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_MAIN_GET') . ' -'));
JHtml::_('formbehavior.chosen', '.multipleAccessLevels', null, array('placeholder_text_multiple' => '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_ACCESS') . ' -'));
JHtml::_('formbehavior.chosen', 'select');
if ($this->saveOrder)

View File

@ -187,7 +187,7 @@ class ComponentbuilderViewCustom_codes extends JViewLegacy
if ($this->canBatch && $this->canCreate && $this->canEdit)
{
// Set Component System Name Selection
$this->componentSystem_nameOptions = JFormHelper::loadFieldType('Component')->options;
$this->componentSystem_nameOptions = JFormHelper::loadFieldType('Joomlacomponent')->options;
// We do some sanitation for Component System Name filter
if (ComponentbuilderHelper::checkArray($this->componentSystem_nameOptions) &&
isset($this->componentSystem_nameOptions[0]->value) &&

View File

@ -15,6 +15,8 @@ defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.multiselect');
JHtml::_('dropdown.init');
JHtml::_('formbehavior.chosen', '.multipleJoomlacomponentsfiltercompanyname', null, array('placeholder_text_multiple' => '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_COMPANY_NAME') . ' -'));
JHtml::_('formbehavior.chosen', '.multipleJoomlacomponentsfilterauthor', null, array('placeholder_text_multiple' => '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_AUTHOR') . ' -'));
JHtml::_('formbehavior.chosen', '.multipleAccessLevels', null, array('placeholder_text_multiple' => '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_ACCESS') . ' -'));
JHtml::_('formbehavior.chosen', 'select');
if ($this->saveOrder)

View File

@ -296,6 +296,8 @@ class ComponentbuilderViewJoomla_components extends JViewLegacy
'a.name_code' => JText::_('COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NAME_CODE_LABEL'),
'a.short_description' => JText::_('COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SHORT_DESCRIPTION_LABEL'),
'a.companyname' => JText::_('COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPANYNAME_LABEL'),
'a.created' => JText::_('COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CREATED_LABEL'),
'a.modified' => JText::_('COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MODIFIED_LABEL'),
'a.id' => JText::_('JGRID_HEADING_ID')
);
}

View File

@ -15,6 +15,7 @@ defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.multiselect');
JHtml::_('dropdown.init');
JHtml::_('formbehavior.chosen', '.multipleMaingets', null, array('placeholder_text_multiple' => '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_MAIN_GET') . ' -'));
JHtml::_('formbehavior.chosen', '.multipleAccessLevels', null, array('placeholder_text_multiple' => '- ' . JText::_('COM_COMPONENTBUILDER_FILTER_SELECT_ACCESS') . ' -'));
JHtml::_('formbehavior.chosen', 'select');
if ($this->saveOrder)

View File

@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.2" method="upgrade">
<name>COM_COMPONENTBUILDER</name>
<creationDate>3rd January, 2021</creationDate>
<creationDate>2nd February, 2021</creationDate>
<author>Llewellyn van der Merwe</author>
<authorEmail>llewellyn@joomlacomponentbuilder.com</authorEmail>
<authorUrl>http://www.joomlacomponentbuilder.com</authorUrl>
<copyright>Copyright (C) 2015 Vast Development Method. All rights reserved.</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<version>2.12.4</version>
<version>2.12.6</version>
<description><![CDATA[
<h1>Component Builder (v.2.12.4)</h1>
<h1>Component Builder (v.2.12.6)</h1>
<div style="clear: both;"></div>
<p>The Component Builder for [Joomla](https://extensions.joomla.org/extension/component-builder/) is highly advanced tool that is truly able to build extremely complex components in a fraction of the time.

View File

@ -1019,4 +1019,21 @@
<maintainerurl>http://www.joomlacomponentbuilder.com</maintainerurl>
<targetplatform name="joomla" version="3.*"/>
</update>
<update>
<name>Component Builder</name>
<description>Builds Complex Joomla Components</description>
<element>com_componentbuilder</element>
<type>component</type>
<version>2.12.6</version>
<infourl title="Component Builder!">http://www.joomlacomponentbuilder.com</infourl>
<downloads>
<downloadurl type="full" format="zip">https://github.com/vdm-io/Joomla-Component-Builder/releases/download/v2.12.6/JCB_v2.12.6.zip</downloadurl>
</downloads>
<tags>
<tag>stable</tag>
</tags>
<maintainer>Llewellyn van der Merwe</maintainer>
<maintainerurl>http://www.joomlacomponentbuilder.com</maintainerurl>
<targetplatform name="joomla" version="3.*"/>
</update>
</updates>

View File

@ -6024,9 +6024,9 @@ class com_componentbuilderInstallerScript
$joomla_component->type_title = 'Componentbuilder Joomla_component';
$joomla_component->type_alias = 'com_componentbuilder.joomla_component';
$joomla_component->table = '{"special": {"dbtable": "#__componentbuilder_joomla_component","key": "id","type": "Joomla_component","prefix": "componentbuilderTable","config": "array()"},"common": {"dbtable": "#__ucm_content","key": "ucm_id","type": "Corecontent","prefix": "JTable","config": "array()"}}';
$joomla_component->field_mappings = '{"common": {"core_content_item_id": "id","core_title": "system_name","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "php_site_event","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "metadata","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "metakey","core_metadesc": "metadesc","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"system_name":"system_name","name_code":"name_code","short_description":"short_description","companyname":"companyname","php_site_event":"php_site_event","css_admin":"css_admin","php_helper_both":"php_helper_both","php_admin_event":"php_admin_event","sql_uninstall":"sql_uninstall","remove_line_breaks":"remove_line_breaks","description":"description","php_postflight_install":"php_postflight_install","debug_linenr":"debug_linenr","mvc_versiondate":"mvc_versiondate","php_preflight_install":"php_preflight_install","crowdin_project_identifier":"crowdin_project_identifier","php_method_uninstall":"php_method_uninstall","component_version":"component_version","add_placeholders":"add_placeholders","add_sales_server":"add_sales_server","author":"author","email":"email","add_email_helper":"add_email_helper","website":"website","php_helper_admin":"php_helper_admin","add_license":"add_license","php_helper_site":"php_helper_site","license_type":"license_type","javascript":"javascript","css_site":"css_site","whmcs_key":"whmcs_key","whmcs_url":"whmcs_url","php_preflight_update":"php_preflight_update","whmcs_buy_link":"whmcs_buy_link","php_postflight_update":"php_postflight_update","license":"license","sql":"sql","bom":"bom","addreadme":"addreadme","image":"image","update_server_url":"update_server_url","copyright":"copyright","translation_tool":"translation_tool","crowdin_username":"crowdin_username","buildcompsql":"buildcompsql","addfootable":"addfootable","add_php_helper_both":"add_php_helper_both","add_php_helper_admin":"add_php_helper_admin","add_admin_event":"add_admin_event","add_php_helper_site":"add_php_helper_site","add_site_event":"add_site_event","add_javascript":"add_javascript","add_menu_prefix":"add_menu_prefix","add_css_admin":"add_css_admin","menu_prefix":"menu_prefix","add_css_site":"add_css_site","dashboard_type":"dashboard_type","dashboard":"dashboard","toignore":"toignore","add_php_preflight_install":"add_php_preflight_install","add_php_preflight_update":"add_php_preflight_update","add_php_postflight_install":"add_php_postflight_install","export_key":"export_key","add_php_postflight_update":"add_php_postflight_update","joomla_source_link":"joomla_source_link","add_php_method_uninstall":"add_php_method_uninstall","export_buy_link":"export_buy_link","add_sql":"add_sql","add_sql_uninstall":"add_sql_uninstall","assets_table_fix":"assets_table_fix","readme":"readme","emptycontributors":"emptycontributors","add_update_server":"add_update_server","number":"number","update_server_target":"update_server_target","update_server":"update_server","sales_server":"sales_server","crowdin_project_api_key":"crowdin_project_api_key","crowdin_account_api_key":"crowdin_account_api_key","creatuserhelper":"creatuserhelper","buildcomp":"buildcomp","adduikit":"adduikit","guid":"guid","name":"name"}}';
$joomla_component->field_mappings = '{"common": {"core_content_item_id": "id","core_title": "system_name","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "php_admin_event","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "metadata","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "metakey","core_metadesc": "metadesc","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"system_name":"system_name","name_code":"name_code","short_description":"short_description","companyname":"companyname","php_admin_event":"php_admin_event","php_site_event":"php_site_event","php_helper_both":"php_helper_both","debug_linenr":"debug_linenr","php_preflight_install":"php_preflight_install","php_method_uninstall":"php_method_uninstall","css_admin":"css_admin","mvc_versiondate":"mvc_versiondate","remove_line_breaks":"remove_line_breaks","add_placeholders":"add_placeholders","description":"description","php_postflight_install":"php_postflight_install","author":"author","sql_uninstall":"sql_uninstall","email":"email","website":"website","add_license":"add_license","add_email_helper":"add_email_helper","license_type":"license_type","php_helper_admin":"php_helper_admin","php_helper_site":"php_helper_site","whmcs_key":"whmcs_key","javascript":"javascript","whmcs_url":"whmcs_url","css_site":"css_site","whmcs_buy_link":"whmcs_buy_link","license":"license","php_preflight_update":"php_preflight_update","bom":"bom","php_postflight_update":"php_postflight_update","image":"image","sql":"sql","copyright":"copyright","addreadme":"addreadme","add_sales_server":"add_sales_server","update_server_url":"update_server_url","crowdin_project_identifier":"crowdin_project_identifier","component_version":"component_version","translation_tool":"translation_tool","crowdin_username":"crowdin_username","buildcompsql":"buildcompsql","add_php_helper_both":"add_php_helper_both","add_php_helper_admin":"add_php_helper_admin","add_admin_event":"add_admin_event","add_php_helper_site":"add_php_helper_site","add_site_event":"add_site_event","add_javascript":"add_javascript","add_menu_prefix":"add_menu_prefix","add_css_admin":"add_css_admin","menu_prefix":"menu_prefix","add_css_site":"add_css_site","dashboard_type":"dashboard_type","dashboard":"dashboard","toignore":"toignore","add_php_preflight_install":"add_php_preflight_install","add_php_preflight_update":"add_php_preflight_update","add_php_postflight_install":"add_php_postflight_install","export_key":"export_key","add_php_postflight_update":"add_php_postflight_update","joomla_source_link":"joomla_source_link","add_php_method_uninstall":"add_php_method_uninstall","export_buy_link":"export_buy_link","add_sql":"add_sql","add_sql_uninstall":"add_sql_uninstall","assets_table_fix":"assets_table_fix","readme":"readme","emptycontributors":"emptycontributors","add_update_server":"add_update_server","number":"number","update_server_target":"update_server_target","update_server":"update_server","sales_server":"sales_server","crowdin_project_api_key":"crowdin_project_api_key","crowdin_account_api_key":"crowdin_account_api_key","creatuserhelper":"creatuserhelper","buildcomp":"buildcomp","adduikit":"adduikit","guid":"guid","addfootable":"addfootable","name":"name"}}';
$joomla_component->router = 'ComponentbuilderHelperRoute::getJoomla_componentRoute';
$joomla_component->content_history_options = '{"formFile": "administrator/components/com_componentbuilder/models/forms/joomla_component.xml","hideFields": ["asset_id","checked_out","checked_out_time","version"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","remove_line_breaks","debug_linenr","mvc_versiondate","add_placeholders","add_sales_server","add_email_helper","add_license","license_type","addreadme","translation_tool","addfootable","add_php_helper_both","add_php_helper_admin","add_admin_event","add_php_helper_site","add_site_event","add_javascript","add_css_admin","add_css_site","dashboard_type","add_php_preflight_install","add_php_preflight_update","add_php_postflight_install","add_php_postflight_update","add_php_method_uninstall","add_sql","add_sql_uninstall","assets_table_fix","emptycontributors","add_update_server","number","update_server_target","update_server","sales_server","creatuserhelper","buildcomp","adduikit"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "dashboard","targetTable": "#__componentbuilder_custom_admin_view","targetColumn": "","displayColumn": "system_name"},{"sourceColumn": "update_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "sales_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"}]}';
$joomla_component->content_history_options = '{"formFile": "administrator/components/com_componentbuilder/models/forms/joomla_component.xml","hideFields": ["asset_id","checked_out","checked_out_time","version"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","debug_linenr","mvc_versiondate","remove_line_breaks","add_placeholders","add_license","add_email_helper","license_type","addreadme","add_sales_server","translation_tool","add_php_helper_both","add_php_helper_admin","add_admin_event","add_php_helper_site","add_site_event","add_javascript","add_css_admin","add_css_site","dashboard_type","add_php_preflight_install","add_php_preflight_update","add_php_postflight_install","add_php_postflight_update","add_php_method_uninstall","add_sql","add_sql_uninstall","assets_table_fix","emptycontributors","add_update_server","number","update_server_target","update_server","sales_server","creatuserhelper","buildcomp","adduikit","addfootable"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "dashboard","targetTable": "#__componentbuilder_custom_admin_view","targetColumn": "","displayColumn": "system_name"},{"sourceColumn": "update_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "sales_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"}]}';
// Set the object into the content types table.
$joomla_component_Inserted = $db->insertObject('#__content_types', $joomla_component);
@ -6060,9 +6060,9 @@ class com_componentbuilderInstallerScript
$admin_view->type_title = 'Componentbuilder Admin_view';
$admin_view->type_alias = 'com_componentbuilder.admin_view';
$admin_view->table = '{"special": {"dbtable": "#__componentbuilder_admin_view","key": "id","type": "Admin_view","prefix": "componentbuilderTable","config": "array()"},"common": {"dbtable": "#__ucm_content","key": "ucm_id","type": "Corecontent","prefix": "JTable","config": "array()"}}';
$admin_view->field_mappings = '{"common": {"core_content_item_id": "id","core_title": "null","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "php_before_cancel","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "null","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "null","core_metadesc": "null","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"system_name":"system_name","name_single":"name_single","short_description":"short_description","php_before_cancel":"php_before_cancel","php_allowadd":"php_allowadd","php_save":"php_save","php_getform":"php_getform","name_list":"name_list","php_import_display":"php_import_display","icon":"icon","php_before_delete":"php_before_delete","add_fadein":"add_fadein","description":"description","icon_category":"icon_category","icon_add":"icon_add","php_batchcopy":"php_batchcopy","mysql_table_row_format":"mysql_table_row_format","php_before_publish":"php_before_publish","type":"type","php_document":"php_document","sql":"sql","php_import_setdata":"php_import_setdata","php_getlistquery":"php_getlistquery","php_before_save":"php_before_save","php_postsavehook":"php_postsavehook","php_allowedit":"php_allowedit","php_after_cancel":"php_after_cancel","php_batchmove":"php_batchmove","php_after_publish":"php_after_publish","alias_builder_type":"alias_builder_type","php_after_delete":"php_after_delete","mysql_table_charset":"mysql_table_charset","source":"source","alias_builder":"alias_builder","php_import":"php_import","php_import_ext":"php_import_ext","add_css_view":"add_css_view","add_php_getlistquery":"add_php_getlistquery","css_view":"css_view","add_php_getform":"add_php_getform","add_css_views":"add_css_views","add_php_before_save":"add_php_before_save","css_views":"css_views","add_php_save":"add_php_save","add_javascript_view_file":"add_javascript_view_file","add_php_postsavehook":"add_php_postsavehook","javascript_view_file":"javascript_view_file","add_php_allowadd":"add_php_allowadd","add_javascript_view_footer":"add_javascript_view_footer","add_php_allowedit":"add_php_allowedit","javascript_view_footer":"javascript_view_footer","add_php_before_cancel":"add_php_before_cancel","add_javascript_views_file":"add_javascript_views_file","add_php_after_cancel":"add_php_after_cancel","javascript_views_file":"javascript_views_file","add_php_batchcopy":"add_php_batchcopy","add_javascript_views_footer":"add_javascript_views_footer","add_php_batchmove":"add_php_batchmove","javascript_views_footer":"javascript_views_footer","add_php_before_publish":"add_php_before_publish","add_custom_button":"add_custom_button","add_php_after_publish":"add_php_after_publish","add_php_before_delete":"add_php_before_delete","php_controller":"php_controller","add_php_after_delete":"add_php_after_delete","php_model":"php_model","add_php_document":"add_php_document","php_controller_list":"php_controller_list","mysql_table_engine":"mysql_table_engine","php_model_list":"php_model_list","mysql_table_collate":"mysql_table_collate","add_php_ajax":"add_php_ajax","add_sql":"add_sql","php_ajaxmethod":"php_ajaxmethod","add_php_getitem":"add_php_getitem","add_custom_import":"add_custom_import","php_getitem":"php_getitem","html_import_view":"html_import_view","add_php_getitems":"add_php_getitems","php_import_headers":"php_import_headers","php_getitems":"php_getitems","php_import_save":"php_import_save","add_php_getitems_after_all":"add_php_getitems_after_all","guid":"guid","php_getitems_after_all":"php_getitems_after_all"}}';
$admin_view->field_mappings = '{"common": {"core_content_item_id": "id","core_title": "null","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "php_allowedit","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "null","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "null","core_metadesc": "null","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"system_name":"system_name","name_single":"name_single","short_description":"short_description","php_allowedit":"php_allowedit","php_postsavehook":"php_postsavehook","php_before_save":"php_before_save","php_getlistquery":"php_getlistquery","php_import_ext":"php_import_ext","icon":"icon","php_after_publish":"php_after_publish","add_fadein":"add_fadein","description":"description","icon_category":"icon_category","icon_add":"icon_add","php_after_cancel":"php_after_cancel","mysql_table_charset":"mysql_table_charset","php_batchmove":"php_batchmove","type":"type","php_after_delete":"php_after_delete","source":"source","php_import":"php_import","php_getitems_after_all":"php_getitems_after_all","php_getform":"php_getform","php_save":"php_save","php_allowadd":"php_allowadd","php_before_cancel":"php_before_cancel","php_batchcopy":"php_batchcopy","php_before_publish":"php_before_publish","alias_builder_type":"alias_builder_type","php_before_delete":"php_before_delete","php_document":"php_document","mysql_table_row_format":"mysql_table_row_format","alias_builder":"alias_builder","sql":"sql","php_import_display":"php_import_display","add_category_submenu":"add_category_submenu","php_import_setdata":"php_import_setdata","name_list":"name_list","add_php_getlistquery":"add_php_getlistquery","add_css_view":"add_css_view","add_php_getform":"add_php_getform","css_view":"css_view","add_php_before_save":"add_php_before_save","add_css_views":"add_css_views","add_php_save":"add_php_save","css_views":"css_views","add_php_postsavehook":"add_php_postsavehook","add_javascript_view_file":"add_javascript_view_file","add_php_allowadd":"add_php_allowadd","javascript_view_file":"javascript_view_file","add_php_allowedit":"add_php_allowedit","add_javascript_view_footer":"add_javascript_view_footer","add_php_before_cancel":"add_php_before_cancel","javascript_view_footer":"javascript_view_footer","add_php_after_cancel":"add_php_after_cancel","add_javascript_views_file":"add_javascript_views_file","add_php_batchcopy":"add_php_batchcopy","javascript_views_file":"javascript_views_file","add_php_batchmove":"add_php_batchmove","add_javascript_views_footer":"add_javascript_views_footer","add_php_before_publish":"add_php_before_publish","javascript_views_footer":"javascript_views_footer","add_php_after_publish":"add_php_after_publish","add_custom_button":"add_custom_button","add_php_before_delete":"add_php_before_delete","add_php_after_delete":"add_php_after_delete","php_controller":"php_controller","add_php_document":"add_php_document","php_model":"php_model","mysql_table_engine":"mysql_table_engine","php_controller_list":"php_controller_list","mysql_table_collate":"mysql_table_collate","php_model_list":"php_model_list","add_sql":"add_sql","add_php_ajax":"add_php_ajax","php_ajaxmethod":"php_ajaxmethod","add_custom_import":"add_custom_import","add_php_getitem":"add_php_getitem","html_import_view":"html_import_view","php_getitem":"php_getitem","php_import_headers":"php_import_headers","add_php_getitems":"add_php_getitems","php_import_save":"php_import_save","php_getitems":"php_getitems","guid":"guid","add_php_getitems_after_all":"add_php_getitems_after_all"}}';
$admin_view->router = 'ComponentbuilderHelperRoute::getAdmin_viewRoute';
$admin_view->content_history_options = '{"formFile": "administrator/components/com_componentbuilder/models/forms/admin_view.xml","hideFields": ["asset_id","checked_out","checked_out_time","version"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","add_fadein","type","source","add_css_view","add_php_getlistquery","add_php_getform","add_css_views","add_php_before_save","add_php_save","add_javascript_view_file","add_php_postsavehook","add_php_allowadd","add_javascript_view_footer","add_php_allowedit","add_php_before_cancel","add_javascript_views_file","add_php_after_cancel","add_php_batchcopy","add_javascript_views_footer","add_php_batchmove","add_php_before_publish","add_custom_button","add_php_after_publish","add_php_before_delete","add_php_after_delete","add_php_document","add_php_ajax","add_sql","add_php_getitem","add_custom_import","add_php_getitems","add_php_getitems_after_all"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "alias_builder","targetTable": "#__componentbuilder_field","targetColumn": "id","displayColumn": "name"}]}';
$admin_view->content_history_options = '{"formFile": "administrator/components/com_componentbuilder/models/forms/admin_view.xml","hideFields": ["asset_id","checked_out","checked_out_time","version"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","add_fadein","type","source","add_category_submenu","add_php_getlistquery","add_css_view","add_php_getform","add_php_before_save","add_css_views","add_php_save","add_php_postsavehook","add_javascript_view_file","add_php_allowadd","add_php_allowedit","add_javascript_view_footer","add_php_before_cancel","add_php_after_cancel","add_javascript_views_file","add_php_batchcopy","add_php_batchmove","add_javascript_views_footer","add_php_before_publish","add_php_after_publish","add_custom_button","add_php_before_delete","add_php_after_delete","add_php_document","add_sql","add_php_ajax","add_custom_import","add_php_getitem","add_php_getitems","add_php_getitems_after_all"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "alias_builder","targetTable": "#__componentbuilder_field","targetColumn": "id","displayColumn": "name"}]}';
// Set the object into the content types table.
$admin_view_Inserted = $db->insertObject('#__content_types', $admin_view);
@ -7465,9 +7465,9 @@ class com_componentbuilderInstallerScript
$joomla_component->type_title = 'Componentbuilder Joomla_component';
$joomla_component->type_alias = 'com_componentbuilder.joomla_component';
$joomla_component->table = '{"special": {"dbtable": "#__componentbuilder_joomla_component","key": "id","type": "Joomla_component","prefix": "componentbuilderTable","config": "array()"},"common": {"dbtable": "#__ucm_content","key": "ucm_id","type": "Corecontent","prefix": "JTable","config": "array()"}}';
$joomla_component->field_mappings = '{"common": {"core_content_item_id": "id","core_title": "system_name","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "php_site_event","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "metadata","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "metakey","core_metadesc": "metadesc","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"system_name":"system_name","name_code":"name_code","short_description":"short_description","companyname":"companyname","php_site_event":"php_site_event","css_admin":"css_admin","php_helper_both":"php_helper_both","php_admin_event":"php_admin_event","sql_uninstall":"sql_uninstall","remove_line_breaks":"remove_line_breaks","description":"description","php_postflight_install":"php_postflight_install","debug_linenr":"debug_linenr","mvc_versiondate":"mvc_versiondate","php_preflight_install":"php_preflight_install","crowdin_project_identifier":"crowdin_project_identifier","php_method_uninstall":"php_method_uninstall","component_version":"component_version","add_placeholders":"add_placeholders","add_sales_server":"add_sales_server","author":"author","email":"email","add_email_helper":"add_email_helper","website":"website","php_helper_admin":"php_helper_admin","add_license":"add_license","php_helper_site":"php_helper_site","license_type":"license_type","javascript":"javascript","css_site":"css_site","whmcs_key":"whmcs_key","whmcs_url":"whmcs_url","php_preflight_update":"php_preflight_update","whmcs_buy_link":"whmcs_buy_link","php_postflight_update":"php_postflight_update","license":"license","sql":"sql","bom":"bom","addreadme":"addreadme","image":"image","update_server_url":"update_server_url","copyright":"copyright","translation_tool":"translation_tool","crowdin_username":"crowdin_username","buildcompsql":"buildcompsql","addfootable":"addfootable","add_php_helper_both":"add_php_helper_both","add_php_helper_admin":"add_php_helper_admin","add_admin_event":"add_admin_event","add_php_helper_site":"add_php_helper_site","add_site_event":"add_site_event","add_javascript":"add_javascript","add_menu_prefix":"add_menu_prefix","add_css_admin":"add_css_admin","menu_prefix":"menu_prefix","add_css_site":"add_css_site","dashboard_type":"dashboard_type","dashboard":"dashboard","toignore":"toignore","add_php_preflight_install":"add_php_preflight_install","add_php_preflight_update":"add_php_preflight_update","add_php_postflight_install":"add_php_postflight_install","export_key":"export_key","add_php_postflight_update":"add_php_postflight_update","joomla_source_link":"joomla_source_link","add_php_method_uninstall":"add_php_method_uninstall","export_buy_link":"export_buy_link","add_sql":"add_sql","add_sql_uninstall":"add_sql_uninstall","assets_table_fix":"assets_table_fix","readme":"readme","emptycontributors":"emptycontributors","add_update_server":"add_update_server","number":"number","update_server_target":"update_server_target","update_server":"update_server","sales_server":"sales_server","crowdin_project_api_key":"crowdin_project_api_key","crowdin_account_api_key":"crowdin_account_api_key","creatuserhelper":"creatuserhelper","buildcomp":"buildcomp","adduikit":"adduikit","guid":"guid","name":"name"}}';
$joomla_component->field_mappings = '{"common": {"core_content_item_id": "id","core_title": "system_name","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "php_admin_event","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "metadata","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "metakey","core_metadesc": "metadesc","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"system_name":"system_name","name_code":"name_code","short_description":"short_description","companyname":"companyname","php_admin_event":"php_admin_event","php_site_event":"php_site_event","php_helper_both":"php_helper_both","debug_linenr":"debug_linenr","php_preflight_install":"php_preflight_install","php_method_uninstall":"php_method_uninstall","css_admin":"css_admin","mvc_versiondate":"mvc_versiondate","remove_line_breaks":"remove_line_breaks","add_placeholders":"add_placeholders","description":"description","php_postflight_install":"php_postflight_install","author":"author","sql_uninstall":"sql_uninstall","email":"email","website":"website","add_license":"add_license","add_email_helper":"add_email_helper","license_type":"license_type","php_helper_admin":"php_helper_admin","php_helper_site":"php_helper_site","whmcs_key":"whmcs_key","javascript":"javascript","whmcs_url":"whmcs_url","css_site":"css_site","whmcs_buy_link":"whmcs_buy_link","license":"license","php_preflight_update":"php_preflight_update","bom":"bom","php_postflight_update":"php_postflight_update","image":"image","sql":"sql","copyright":"copyright","addreadme":"addreadme","add_sales_server":"add_sales_server","update_server_url":"update_server_url","crowdin_project_identifier":"crowdin_project_identifier","component_version":"component_version","translation_tool":"translation_tool","crowdin_username":"crowdin_username","buildcompsql":"buildcompsql","add_php_helper_both":"add_php_helper_both","add_php_helper_admin":"add_php_helper_admin","add_admin_event":"add_admin_event","add_php_helper_site":"add_php_helper_site","add_site_event":"add_site_event","add_javascript":"add_javascript","add_menu_prefix":"add_menu_prefix","add_css_admin":"add_css_admin","menu_prefix":"menu_prefix","add_css_site":"add_css_site","dashboard_type":"dashboard_type","dashboard":"dashboard","toignore":"toignore","add_php_preflight_install":"add_php_preflight_install","add_php_preflight_update":"add_php_preflight_update","add_php_postflight_install":"add_php_postflight_install","export_key":"export_key","add_php_postflight_update":"add_php_postflight_update","joomla_source_link":"joomla_source_link","add_php_method_uninstall":"add_php_method_uninstall","export_buy_link":"export_buy_link","add_sql":"add_sql","add_sql_uninstall":"add_sql_uninstall","assets_table_fix":"assets_table_fix","readme":"readme","emptycontributors":"emptycontributors","add_update_server":"add_update_server","number":"number","update_server_target":"update_server_target","update_server":"update_server","sales_server":"sales_server","crowdin_project_api_key":"crowdin_project_api_key","crowdin_account_api_key":"crowdin_account_api_key","creatuserhelper":"creatuserhelper","buildcomp":"buildcomp","adduikit":"adduikit","guid":"guid","addfootable":"addfootable","name":"name"}}';
$joomla_component->router = 'ComponentbuilderHelperRoute::getJoomla_componentRoute';
$joomla_component->content_history_options = '{"formFile": "administrator/components/com_componentbuilder/models/forms/joomla_component.xml","hideFields": ["asset_id","checked_out","checked_out_time","version"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","remove_line_breaks","debug_linenr","mvc_versiondate","add_placeholders","add_sales_server","add_email_helper","add_license","license_type","addreadme","translation_tool","addfootable","add_php_helper_both","add_php_helper_admin","add_admin_event","add_php_helper_site","add_site_event","add_javascript","add_css_admin","add_css_site","dashboard_type","add_php_preflight_install","add_php_preflight_update","add_php_postflight_install","add_php_postflight_update","add_php_method_uninstall","add_sql","add_sql_uninstall","assets_table_fix","emptycontributors","add_update_server","number","update_server_target","update_server","sales_server","creatuserhelper","buildcomp","adduikit"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "dashboard","targetTable": "#__componentbuilder_custom_admin_view","targetColumn": "","displayColumn": "system_name"},{"sourceColumn": "update_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "sales_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"}]}';
$joomla_component->content_history_options = '{"formFile": "administrator/components/com_componentbuilder/models/forms/joomla_component.xml","hideFields": ["asset_id","checked_out","checked_out_time","version"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","debug_linenr","mvc_versiondate","remove_line_breaks","add_placeholders","add_license","add_email_helper","license_type","addreadme","add_sales_server","translation_tool","add_php_helper_both","add_php_helper_admin","add_admin_event","add_php_helper_site","add_site_event","add_javascript","add_css_admin","add_css_site","dashboard_type","add_php_preflight_install","add_php_preflight_update","add_php_postflight_install","add_php_postflight_update","add_php_method_uninstall","add_sql","add_sql_uninstall","assets_table_fix","emptycontributors","add_update_server","number","update_server_target","update_server","sales_server","creatuserhelper","buildcomp","adduikit","addfootable"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "dashboard","targetTable": "#__componentbuilder_custom_admin_view","targetColumn": "","displayColumn": "system_name"},{"sourceColumn": "update_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "sales_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"}]}';
// Check if joomla_component type is already in content_type DB.
$joomla_component_id = null;
@ -7552,9 +7552,9 @@ class com_componentbuilderInstallerScript
$admin_view->type_title = 'Componentbuilder Admin_view';
$admin_view->type_alias = 'com_componentbuilder.admin_view';
$admin_view->table = '{"special": {"dbtable": "#__componentbuilder_admin_view","key": "id","type": "Admin_view","prefix": "componentbuilderTable","config": "array()"},"common": {"dbtable": "#__ucm_content","key": "ucm_id","type": "Corecontent","prefix": "JTable","config": "array()"}}';
$admin_view->field_mappings = '{"common": {"core_content_item_id": "id","core_title": "null","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "php_before_cancel","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "null","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "null","core_metadesc": "null","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"system_name":"system_name","name_single":"name_single","short_description":"short_description","php_before_cancel":"php_before_cancel","php_allowadd":"php_allowadd","php_save":"php_save","php_getform":"php_getform","name_list":"name_list","php_import_display":"php_import_display","icon":"icon","php_before_delete":"php_before_delete","add_fadein":"add_fadein","description":"description","icon_category":"icon_category","icon_add":"icon_add","php_batchcopy":"php_batchcopy","mysql_table_row_format":"mysql_table_row_format","php_before_publish":"php_before_publish","type":"type","php_document":"php_document","sql":"sql","php_import_setdata":"php_import_setdata","php_getlistquery":"php_getlistquery","php_before_save":"php_before_save","php_postsavehook":"php_postsavehook","php_allowedit":"php_allowedit","php_after_cancel":"php_after_cancel","php_batchmove":"php_batchmove","php_after_publish":"php_after_publish","alias_builder_type":"alias_builder_type","php_after_delete":"php_after_delete","mysql_table_charset":"mysql_table_charset","source":"source","alias_builder":"alias_builder","php_import":"php_import","php_import_ext":"php_import_ext","add_css_view":"add_css_view","add_php_getlistquery":"add_php_getlistquery","css_view":"css_view","add_php_getform":"add_php_getform","add_css_views":"add_css_views","add_php_before_save":"add_php_before_save","css_views":"css_views","add_php_save":"add_php_save","add_javascript_view_file":"add_javascript_view_file","add_php_postsavehook":"add_php_postsavehook","javascript_view_file":"javascript_view_file","add_php_allowadd":"add_php_allowadd","add_javascript_view_footer":"add_javascript_view_footer","add_php_allowedit":"add_php_allowedit","javascript_view_footer":"javascript_view_footer","add_php_before_cancel":"add_php_before_cancel","add_javascript_views_file":"add_javascript_views_file","add_php_after_cancel":"add_php_after_cancel","javascript_views_file":"javascript_views_file","add_php_batchcopy":"add_php_batchcopy","add_javascript_views_footer":"add_javascript_views_footer","add_php_batchmove":"add_php_batchmove","javascript_views_footer":"javascript_views_footer","add_php_before_publish":"add_php_before_publish","add_custom_button":"add_custom_button","add_php_after_publish":"add_php_after_publish","add_php_before_delete":"add_php_before_delete","php_controller":"php_controller","add_php_after_delete":"add_php_after_delete","php_model":"php_model","add_php_document":"add_php_document","php_controller_list":"php_controller_list","mysql_table_engine":"mysql_table_engine","php_model_list":"php_model_list","mysql_table_collate":"mysql_table_collate","add_php_ajax":"add_php_ajax","add_sql":"add_sql","php_ajaxmethod":"php_ajaxmethod","add_php_getitem":"add_php_getitem","add_custom_import":"add_custom_import","php_getitem":"php_getitem","html_import_view":"html_import_view","add_php_getitems":"add_php_getitems","php_import_headers":"php_import_headers","php_getitems":"php_getitems","php_import_save":"php_import_save","add_php_getitems_after_all":"add_php_getitems_after_all","guid":"guid","php_getitems_after_all":"php_getitems_after_all"}}';
$admin_view->field_mappings = '{"common": {"core_content_item_id": "id","core_title": "null","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "php_allowedit","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "null","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "null","core_metadesc": "null","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"system_name":"system_name","name_single":"name_single","short_description":"short_description","php_allowedit":"php_allowedit","php_postsavehook":"php_postsavehook","php_before_save":"php_before_save","php_getlistquery":"php_getlistquery","php_import_ext":"php_import_ext","icon":"icon","php_after_publish":"php_after_publish","add_fadein":"add_fadein","description":"description","icon_category":"icon_category","icon_add":"icon_add","php_after_cancel":"php_after_cancel","mysql_table_charset":"mysql_table_charset","php_batchmove":"php_batchmove","type":"type","php_after_delete":"php_after_delete","source":"source","php_import":"php_import","php_getitems_after_all":"php_getitems_after_all","php_getform":"php_getform","php_save":"php_save","php_allowadd":"php_allowadd","php_before_cancel":"php_before_cancel","php_batchcopy":"php_batchcopy","php_before_publish":"php_before_publish","alias_builder_type":"alias_builder_type","php_before_delete":"php_before_delete","php_document":"php_document","mysql_table_row_format":"mysql_table_row_format","alias_builder":"alias_builder","sql":"sql","php_import_display":"php_import_display","add_category_submenu":"add_category_submenu","php_import_setdata":"php_import_setdata","name_list":"name_list","add_php_getlistquery":"add_php_getlistquery","add_css_view":"add_css_view","add_php_getform":"add_php_getform","css_view":"css_view","add_php_before_save":"add_php_before_save","add_css_views":"add_css_views","add_php_save":"add_php_save","css_views":"css_views","add_php_postsavehook":"add_php_postsavehook","add_javascript_view_file":"add_javascript_view_file","add_php_allowadd":"add_php_allowadd","javascript_view_file":"javascript_view_file","add_php_allowedit":"add_php_allowedit","add_javascript_view_footer":"add_javascript_view_footer","add_php_before_cancel":"add_php_before_cancel","javascript_view_footer":"javascript_view_footer","add_php_after_cancel":"add_php_after_cancel","add_javascript_views_file":"add_javascript_views_file","add_php_batchcopy":"add_php_batchcopy","javascript_views_file":"javascript_views_file","add_php_batchmove":"add_php_batchmove","add_javascript_views_footer":"add_javascript_views_footer","add_php_before_publish":"add_php_before_publish","javascript_views_footer":"javascript_views_footer","add_php_after_publish":"add_php_after_publish","add_custom_button":"add_custom_button","add_php_before_delete":"add_php_before_delete","add_php_after_delete":"add_php_after_delete","php_controller":"php_controller","add_php_document":"add_php_document","php_model":"php_model","mysql_table_engine":"mysql_table_engine","php_controller_list":"php_controller_list","mysql_table_collate":"mysql_table_collate","php_model_list":"php_model_list","add_sql":"add_sql","add_php_ajax":"add_php_ajax","php_ajaxmethod":"php_ajaxmethod","add_custom_import":"add_custom_import","add_php_getitem":"add_php_getitem","html_import_view":"html_import_view","php_getitem":"php_getitem","php_import_headers":"php_import_headers","add_php_getitems":"add_php_getitems","php_import_save":"php_import_save","php_getitems":"php_getitems","guid":"guid","add_php_getitems_after_all":"add_php_getitems_after_all"}}';
$admin_view->router = 'ComponentbuilderHelperRoute::getAdmin_viewRoute';
$admin_view->content_history_options = '{"formFile": "administrator/components/com_componentbuilder/models/forms/admin_view.xml","hideFields": ["asset_id","checked_out","checked_out_time","version"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","add_fadein","type","source","add_css_view","add_php_getlistquery","add_php_getform","add_css_views","add_php_before_save","add_php_save","add_javascript_view_file","add_php_postsavehook","add_php_allowadd","add_javascript_view_footer","add_php_allowedit","add_php_before_cancel","add_javascript_views_file","add_php_after_cancel","add_php_batchcopy","add_javascript_views_footer","add_php_batchmove","add_php_before_publish","add_custom_button","add_php_after_publish","add_php_before_delete","add_php_after_delete","add_php_document","add_php_ajax","add_sql","add_php_getitem","add_custom_import","add_php_getitems","add_php_getitems_after_all"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "alias_builder","targetTable": "#__componentbuilder_field","targetColumn": "id","displayColumn": "name"}]}';
$admin_view->content_history_options = '{"formFile": "administrator/components/com_componentbuilder/models/forms/admin_view.xml","hideFields": ["asset_id","checked_out","checked_out_time","version"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","add_fadein","type","source","add_category_submenu","add_php_getlistquery","add_css_view","add_php_getform","add_php_before_save","add_css_views","add_php_save","add_php_postsavehook","add_javascript_view_file","add_php_allowadd","add_php_allowedit","add_javascript_view_footer","add_php_before_cancel","add_php_after_cancel","add_javascript_views_file","add_php_batchcopy","add_php_batchmove","add_javascript_views_footer","add_php_before_publish","add_php_after_publish","add_custom_button","add_php_before_delete","add_php_after_delete","add_php_document","add_sql","add_php_ajax","add_custom_import","add_php_getitem","add_php_getitems","add_php_getitems_after_all"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "alias_builder","targetTable": "#__componentbuilder_field","targetColumn": "id","displayColumn": "name"}]}';
// Check if admin_view type is already in content_type DB.
$admin_view_id = null;
@ -9250,7 +9250,7 @@ class com_componentbuilderInstallerScript
echo '<a target="_blank" href="http://www.joomlacomponentbuilder.com" title="Component Builder">
<img src="components/com_componentbuilder/assets/images/vdm-component.jpg"/>
</a>
<h3>Upgrade to Version 2.12.4 Was Successful! Let us know if anything is not working as expected.</h3>';
<h3>Upgrade to Version 2.12.6 Was Successful! Let us know if anything is not working as expected.</h3>';
// Set db if not set already.
if (!isset($db))

View File

@ -1967,7 +1967,6 @@ abstract class ComponentbuilderHelper
}
return false;
}
/**
* The array of dynamic content
*
@ -3666,7 +3665,7 @@ abstract class ComponentbuilderHelper
protected static $fieldGroups = array(
'default' => array(
'accesslevel', 'cachehandler', 'calendar', 'captcha', 'category', 'checkbox', 'checkboxes', 'chromestyle',
'color', 'combo', 'componentlayout', 'contentlanguage', 'contenttype', 'databaseconnection', // 'components', (TODO) must be added but still in use as a custom field in JCB
'color', 'combo', 'componentlayout', 'contentlanguage', 'contenttype', 'databaseconnection', 'components',
'editor', 'editors', 'email', 'file', 'file', 'filelist', 'folderlist', 'groupedlist', 'headertag', 'helpsite', 'hidden', 'imagelist',
'integer', 'language', 'list', 'media', 'menu', 'menuitem', 'meter', 'modulelayout', 'moduleorder', 'moduleposition',
'moduletag', 'note', 'number', 'password', 'plugins', 'predefinedlist', 'radio', 'range', 'repeatable', 'rules',
@ -3678,14 +3677,14 @@ abstract class ComponentbuilderHelper
'moduleorder', 'moduletag', 'number', 'password', 'range', 'rules', 'tag', 'tel', 'text', 'textarea', 'timezone', 'url', 'user', 'usergroup'
),
'option' => array(
'accesslevel', 'category', 'checkboxes', 'combo', 'contentlanguage', 'databaseconnection', // 'components', (TODO) must be added but still in use as a custom field in JCB
'accesslevel', 'category', 'checkboxes', 'combo', 'contentlanguage', 'databaseconnection', 'components',
'filelist', 'folderlist', 'imagelist', 'list', 'plugins', 'predefinedlist', 'radio', 'sessionhandler', 'sql', 'groupedlist'
),
'text' => array(
'calendar', 'color', 'editor', 'email', 'number', 'password', 'range', 'tel', 'text', 'textarea', 'url'
),
'list' => array(
'checkbox', 'checkboxes', 'list', 'radio', 'groupedlist'
'checkbox', 'checkboxes', 'list', 'radio', 'groupedlist', 'combo'
),
'dynamic' => array(
'category', 'file', 'filelist', 'folderlist', 'headertag', 'imagelist', 'integer', 'media', 'meter', 'rules', 'tag', 'timezone', 'user'
@ -5904,6 +5903,571 @@ abstract class ComponentbuilderHelper
}
/**
* get extensions grouped list xml
**/
public static function getExtensionGroupedListXml()
{
// the extension types
$extensions = array(
'joomla_component' => 'COM_COMPONENTBUILDER_COMPONENT',
'joomla_module' => 'COM_COMPONENTBUILDER_MODULE',
'joomla_plugin' => 'COM_COMPONENTBUILDER_PLUGIN'
);
// get the extension values
foreach ($extensions as $extension => $label)
{
${$extension} = self::getByTypeTheIdsSystemNames($extension);
}
$xml = new DOMDocument();
$xml->formatOutput = true;
$root = $xml->createElement('field');
$root->setAttributeNode(new DOMAttr('name', 'extension'));
$root->setAttributeNode(new DOMAttr('type', 'groupedlist'));
$root->setAttributeNode(new DOMAttr('onchange', 'this.form.submit();'));
$root
->appendChild($xml->createElement('option', '- ' . JText::_('COM_COMPONENTBUILDER_SELECT_EXTENSION') . ' -'))
->setAttributeNode(new DOMAttr('value', ''));
foreach ($extensions as $extension => $label)
{
$extension_node = $xml->createElement('group');
$extension_node->setAttributeNode(new DOMAttr('label', $label));
if (!self::checkArray(${$extension}))
{
$extension_node
->appendChild($xml->createElement('option', '- ' . JText::_('COM_COMPONENTBUILDER_NONE') . ' -'))
->setAttributeNode(new DOMAttr('disabled', 'true'));
}
else
{
foreach (${$extension} as $id => $element)
{
$extension_node
->appendChild($xml->createElement('option', $element))
->setAttributeNode(new DOMAttr('value', $extension . '__' . $id));
}
}
$root->appendChild($extension_node);
}
$xml->appendChild($root);
return $xml->saveXML();
}
/**
* get by type the ids and system names
**/
public static function getByTypeTheIdsSystemNames($type, $limiter = null)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select($db->quoteName(array('id', 'system_name')))
->from($db->quoteName('#__componentbuilder_' . $type))
->where($db->quoteName('published') . ' >= 1')
->order($db->quoteName('modified') . ' desc')
->order($db->quoteName('created') . ' desc');
// check if we have a limter for admin views
if ($type === 'admin_view' && $limiter)
{
// first get all views
$adminviewIds = array();
// if this is a plugin or a module, then no views
if (strpos($limiter, 'joomla_component') !== false)
{
$component = (int) str_replace('joomla_component__', '', $limiter);
// get the views of this component
if ($addViews = self::getVar('component_admin_views', (int) $component, 'joomla_component', 'addadmin_views'))
{
if (self::checkJson($addViews))
{
$addViews = json_decode($addViews, true);
if (self::checkArray($addViews))
{
foreach($addViews as $addView)
{
if (isset($addView['adminview']))
{
$adminviewIds[(int) $addView['adminview']] = (int) $addView['adminview'];
}
}
}
}
}
}
// now check if we still have admin views
if (self::checkArray($adminviewIds))
{
$query->where($db->quoteName('id') . ' IN (' . implode(',', $adminviewIds) . ')');
}
else
{
return false;
}
}
$db->setQuery($query);
$db->execute();
if ($db->getNumRows())
{
return $db->loadAssocList('id', 'system_name');
}
return false;
}
/**
* get any area linked IDs
*/
public static function getAreaLinkedIDs($extension, $type)
{
// What ever...
if ($type === 'joomla_component_admin_views')
{
return self::getComponentAdminViewsIDs($extension);
}
elseif ($type === 'joomla_component_custom_admin_views')
{
return self::getComponentCustomAdminViewsIDs($extension);
}
elseif ($type === 'joomla_component_site_views')
{
return self::getComponentSiteViewsIDs($extension);
}
elseif ($type === 'joomla_component')
{
return self::getComponentFieldsIDs($extension);
}
elseif ($type === 'joomla_module')
{
return self::getModuleFieldsIDs($extension);
}
elseif ($type === 'joomla_plugin')
{
return self::getPluginFieldsIDs($extension);
}
elseif ($type === 'admin_view')
{
return self::getAdminViewFieldsIDs($extension);
}
return false;
}
/**
* get a component admin views IDs
*/
public static function getComponentAdminViewsIDs($id)
{
// get all this components views
$adminviewIds = array();
// get the views of this component
if ($addViews = self::getVar('component_admin_views', (int) $id, 'joomla_component', 'addadmin_views'))
{
if (self::checkJson($addViews))
{
$addViews = json_decode($addViews, true);
if (self::checkArray($addViews))
{
foreach($addViews as $addView)
{
if (isset($addView['adminview']))
{
$adminviewIds[(int) $addView['adminview']] = (int) $addView['adminview'];
}
}
}
}
}
// check that we have fields
if (self::checkArray($adminviewIds))
{
return array_values($adminviewIds);
}
return false;
}
/**
* get a component custom admin views IDs
*/
public static function getComponentCustomAdminViewsIDs($id)
{
// get all this components views
$adminviewIds = array();
// get the views of this component
if ($addViews = self::getVar('component_custom_admin_views', (int) $id, 'joomla_component', 'addcustom_admin_views'))
{
if (self::checkJson($addViews))
{
$addViews = json_decode($addViews, true);
if (self::checkArray($addViews))
{
foreach($addViews as $addView)
{
if (isset($addView['customadminview']))
{
$adminviewIds[(int) $addView['customadminview']] = (int) $addView['customadminview'];
}
}
}
}
}
// check that we have fields
if (self::checkArray($adminviewIds))
{
return array_values($adminviewIds);
}
return false;
}
/**
* get a component site views IDs
*/
public static function getComponentSiteViewsIDs($id)
{
// get all this components views
$adminviewIds = array();
// get the views of this component
if ($addViews = self::getVar('component_site_views', (int) $id, 'joomla_component', 'addsite_views'))
{
if (self::checkJson($addViews))
{
$addViews = json_decode($addViews, true);
if (self::checkArray($addViews))
{
foreach($addViews as $addView)
{
if (isset($addView['siteview']))
{
$adminviewIds[(int) $addView['siteview']] = (int) $addView['siteview'];
}
}
}
}
}
// check that we have fields
if (self::checkArray($adminviewIds))
{
return array_values($adminviewIds);
}
return false;
}
/**
* get a component fields IDs
*/
public static function getComponentFieldsIDs($id)
{
// we start the field array
$fieldIds = array();
// first get all views
$adminviewIds = array();
// get the views of this component
if ($addViews = self::getVar('component_admin_views', (int) $id, 'joomla_component', 'addadmin_views'))
{
if (self::checkJson($addViews))
{
$addViews = json_decode($addViews, true);
if (self::checkArray($addViews))
{
foreach($addViews as $addView)
{
if (isset($addView['adminview']))
{
$adminviewIds[(int) $addView['adminview']] = (int) $addView['adminview'];
}
}
}
}
}
// check that we have views
if (self::checkArray($adminviewIds))
{
foreach ($adminviewIds as $adminView)
{
// get all the fields linked to the admin view
if ($addFields = self::getVar('admin_fields', (int) $adminView, 'admin_view', 'addfields'))
{
if (self::checkJson($addFields))
{
$addFields = json_decode($addFields, true);
if (self::checkArray($addFields))
{
foreach($addFields as $addField)
{
if (isset($addField['field']))
{
$fieldIds[(int) $addField['field']] = (int) $addField['field'];
}
}
}
}
}
}
}
// get config values
if ($addconfig = self::getVar('component_config', (int) $id, 'joomla_component', 'addconfig'))
{
if (self::checkJson($addconfig))
{
$addconfig = json_decode($addconfig, true);
if (self::checkArray($addconfig))
{
foreach($addconfig as $addconf)
{
if (isset($addconf['field']))
{
$fieldIds[(int) $addconf['field']] = (int) $addconf['field'];
}
}
}
}
}
// check that we have fields
if (self::checkArray($fieldIds))
{
return array_values($fieldIds);
}
return false;
}
/**
* get a module fields IDs
*/
public static function getModuleFieldsIDs($id)
{
// we start the field array
$fieldIds = array();
if ($fields = self::getVar('joomla_module', (int) $id, 'id', 'fields'))
{
if (self::checkJson($fields))
{
$fields = json_decode($fields, true);
if (self::checkArray($fields))
{
foreach($fields as $form)
{
if (isset($form['fields']) && self::checkArray($form['fields']))
{
foreach ($form['fields'] as $field)
{
if (isset($field['field']))
{
$fieldIds[(int) $field['field']] = (int) $field['field'];
}
}
}
}
}
}
}
// check that we have fields
if (self::checkArray($fieldIds))
{
return array_values($fieldIds);
}
return false;
}
/**
* get a plugin fields IDs
*/
public static function getPluginFieldsIDs($id)
{
// we start the field array
$fieldIds = array();
if ($fields = self::getVar('joomla_plugin', (int) $id, 'id', 'fields'))
{
if (self::checkJson($fields))
{
$fields = json_decode($fields, true);
if (self::checkArray($fields))
{
foreach($fields as $form)
{
if (isset($form['fields']) && self::checkArray($form['fields']))
{
foreach ($form['fields'] as $field)
{
if (isset($field['field']))
{
$fieldIds[(int) $field['field']] = (int) $field['field'];
}
}
}
}
}
}
}
// check that we have fields
if (self::checkArray($fieldIds))
{
return array_values($fieldIds);
}
return false;
}
/**
* get an admin view fields IDs
*/
public static function getAdminViewFieldsIDs($id)
{
// we start the field array
$fieldIds = array();
// get all the fields linked to the admin view
if ($addFields = self::getVar('admin_fields', (int) $id, 'admin_view', 'addfields'))
{
if (self::checkJson($addFields))
{
$addFields = json_decode($addFields, true);
if (self::checkArray($addFields))
{
foreach($addFields as $addField)
{
if (isset($addField['field']))
{
$fieldIds[(int) $addField['field']] = (int) $addField['field'];
}
}
}
}
}
// check that we have fields
if (self::checkArray($fieldIds))
{
return array_values($fieldIds);
}
return false;
}
/**
* get translation extension ids
**/
public static function getTranslationExtensionsIds($extension, $type)
{
// only allow these columns (extension types)
$columns = array(
'joomla_component' => 'components',
'joomla_module' => 'modules',
'joomla_plugin' => 'plugins'
);
// check if the column name is correct
if (isset($columns[$type]))
{
$column = $columns[$type];
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select($db->quoteName(array('id', $column)))
->from($db->quoteName('#__componentbuilder_language_translation'))
->where($db->quoteName($column) . ' != ' . $db->quote(''));
$db->setQuery($query);
$db->execute();
if ($db->getNumRows())
{
$results = $db->loadAssocList();
$matches = array();
foreach ($results as $k => $v)
{
$value = json_decode($v[$column], true);
if (in_array($extension, $value))
{
$matches[$v['id']] = $v['id'];
}
}
// Checks that we found matches
if (self::checkArray($matches))
{
return array_values($matches);
}
}
}
return false;
}
/**
* get translation ids
**/
public static function getTranslationIds($language, $translated = true)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select($db->quoteName('id'))
->from($db->quoteName('#__componentbuilder_language_translation'));
// Build the where condition
if ($translated === true) // Translated
{
if ($language === 'all')
{
if (($languages = self::getAvailableLanguages()) !== false)
{
$wheres = array();
foreach ($languages as $k => $v)
{
$wheres[] = $db->quoteName('translation') . ' LIKE ' . $db->quote('%' . $k . '%');
}
$query->where($wheres);
}
}
else
{
$query->where($db->quoteName('translation') . ' LIKE ' . $db->quote('%' . $language . '%'));
}
}
else // Not translated
{
if ($language === 'none')
{
$query->where(
array(
$db->quoteName('translation') . ' = ' . $db->quote(''),
$db->quoteName('translation') . ' = ' . $db->quote('[]'),
$db->quoteName('translation') . ' = ' . $db->quote('{}')
), 'OR'
);
}
else
{
$query->where($db->quoteName('translation') . ' NOT LIKE ' . $db->quote('%' . $language . '%'));
}
}
$db->setQuery($query);
$db->execute();
if ($db->getNumRows())
{
return array_unique($db->loadColumn());
}
return false;
}
/**
* get available languages
**/
public static function getAvailableLanguages()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select($db->quoteName(array('langtag', 'name')))
->from($db->quoteName('#__componentbuilder_language'))
->where($db->quoteName('published') . ' = 1')
->order($db->quoteName('name') . ' desc');
$db->setQuery($query);
$db->execute();
if ($db->getNumRows())
{
return $db->loadAssocList('langtag', 'name');
}
return false;
}
/**
* Load the Composer Vendors
*/

View File

@ -10,6 +10,7 @@ COM_COMPONENTBUILDER_BGET_THE_KEY_FROMB_A_SSA="<b>Get the key from</b> <a %s>%s<
COM_COMPONENTBUILDER_BGET_THE_KEY_FROM_SB_FOR_A_SSA="<b>Get the key from %s</b> for <a %s>%s</a>"
COM_COMPONENTBUILDER_CHECK_YOUR_OWNER_DETAILS_IT_HAS_NOT_BEEN_SET_OPEN_THE_JCB_GLOBAL_OPTIONS_GO_TO_THE_COMPANY_TAB_AND_ADD_THE_CORRECT_COMPANY_DETAILS_THERE="Check your owner details, it has not been set. Open the JCB Global Options, go to the Company tab and add the correct company details there."
COM_COMPONENTBUILDER_COMPANY_S="Company: %s"
COM_COMPONENTBUILDER_COMPONENT="Component"
COM_COMPONENTBUILDER_COMPONENT_DID_NOT_COMPILE="Component did not compile!"
COM_COMPONENTBUILDER_COMPONENT_IS_NOT_PUBLISHED_OR_IS_CHECKED_OUT="Component is not published, or is checked out!"
COM_COMPONENTBUILDER_COMPONENT_WAS_NOT_FOUND="Component was not found!"
@ -50,7 +51,9 @@ COM_COMPONENTBUILDER_KEY_HAS_NOT_CHANGED="Key has not changed"
COM_COMPONENTBUILDER_LICENSE_S="License: %s"
COM_COMPONENTBUILDER_LINK="Link"
COM_COMPONENTBUILDER_LOCAL="Local"
COM_COMPONENTBUILDER_MODULE="Module"
COM_COMPONENTBUILDER_NEW="New"
COM_COMPONENTBUILDER_NONE="None"
COM_COMPONENTBUILDER_NOT_FOUND_OR_ACCESS_DENIED="Not found or access denied!"
COM_COMPONENTBUILDER_NO_ACCESS_GRANTED="No Access Granted!"
COM_COMPONENTBUILDER_NO_COMPONENT_DETAILS_FOUND_SO_IT_IS_NOT_SAFE_TO_CONTINUE="No component details found, so it is not safe to continue!"
@ -62,8 +65,10 @@ COM_COMPONENTBUILDER_PACKAGE_OWNER_DETAILS="Package Owner Details"
COM_COMPONENTBUILDER_PACKAGE_OWNER_DETAILS_NOT_FOUND="Package owner details not found!"
COM_COMPONENTBUILDER_PACKAGE_OWNER_NOT_SET="Package Owner Not Set"
COM_COMPONENTBUILDER_PAIDLOCKED="Paid/Locked"
COM_COMPONENTBUILDER_PLUGIN="Plugin"
COM_COMPONENTBUILDER_PROPERTY="Property"
COM_COMPONENTBUILDER_SBR_YOU_CAN_ADD_A_BGITHUB_ACCESS_TOKENB_TO_COMPONENTBUILDER_GLOBAL_OPTIONS_TO_MAKE_AUTHENTICATED_REQUESTS_TO_GITHUB_AN_ACCESS_TOKEN_WITH_ONLY_PUBLIC_ACCESS_WILL_DO_TO_RETRIEVE_S="%s<br />You can add a <b>gitHub Access Token</b> to Componentbuilder global options to make authenticated requests to gitHub. An access token with only public access will do to retrieve %s."
COM_COMPONENTBUILDER_SELECT_EXTENSION="Select Extension"
COM_COMPONENTBUILDER_SINCE_THE_OWNER_DETAILS_ARE_DISPLAYED_DURING_BIMPORT_PROCESSB_BEFORE_ADDING_THE_KEY_THIS_WAY_IF_THE_USERDEV_BDOES_NOTB_HAVE_THE_KEY_THEY_CAN_SEE_BWHERE_TO_GET_ITB="Since the owner details are displayed during <b>import process</b> before adding the key, this way if the user/dev <b>does not</b> have the key they can see <b>where to get it</b>."
COM_COMPONENTBUILDER_SINCE_THE_OWNER_DETAILS_ARE_DISPLAYED_DURING_IMPORT_PROCESS_BEFORE_ADDING_THE_KEY_THIS_WAY_IF_THE_USERDEV_DOES_NOT_HAVE_THE_KEY_THEY_CAN_SEE_WHERE_TO_GET_IT="Since the owner details are displayed during import process before adding the key, this way if the user/dev does not have the key they can see where to get it."
COM_COMPONENTBUILDER_SORRY_THIS_PLACEHOLDER_IS_ALREADY_IN_USE="Sorry this placeholder is already in use!"