forked from joomla/Component-Builder
Stable release of v3.2.0-beta5
Add custom file file mapping for Joomla 4 and 5.
This commit is contained in:
parent
5675f186cd
commit
91e922b993
@ -1,3 +1,7 @@
|
|||||||
|
# v3.2.0-beta5
|
||||||
|
|
||||||
|
- Add custom file file mapping for Joomla 4 and 5
|
||||||
|
|
||||||
# v3.2.0-beta4
|
# v3.2.0-beta4
|
||||||
|
|
||||||
- Add Preferred Joomla Version to Components
|
- Add Preferred Joomla Version to Components
|
||||||
|
10
README.md
10
README.md
@ -9,7 +9,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!
|
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 [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (3.2.0-beta4) with **ALL** its features and **ALL** concepts totally open-source and free!
|
You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (3.2.0-beta5) with **ALL** its features and **ALL** concepts totally open-source and free!
|
||||||
|
|
||||||
> Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
> Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
||||||
|
|
||||||
@ -144,13 +144,13 @@ TODO
|
|||||||
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
|
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
|
||||||
+ *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder)
|
+ *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder)
|
||||||
+ *First Build*: 30th April, 2015
|
+ *First Build*: 30th April, 2015
|
||||||
+ *Last Build*: 7th March, 2024
|
+ *Last Build*: 9th March, 2024
|
||||||
+ *Version*: 3.2.0-beta4
|
+ *Version*: 3.2.0-beta5
|
||||||
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
|
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||||
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
||||||
+ *Line count*: **741812**
|
+ *Line count*: **742015**
|
||||||
+ *Field count*: **2078**
|
+ *Field count*: **2078**
|
||||||
+ *File count*: **5204**
|
+ *File count*: **5205**
|
||||||
+ *Folder count*: **462**
|
+ *Folder count*: **462**
|
||||||
|
|
||||||
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](https://www.joomlacomponentbuilder.com).
|
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](https://www.joomlacomponentbuilder.com).
|
||||||
|
@ -9,7 +9,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!
|
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 [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (3.2.0-beta4) with **ALL** its features and **ALL** concepts totally open-source and free!
|
You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (3.2.0-beta5) with **ALL** its features and **ALL** concepts totally open-source and free!
|
||||||
|
|
||||||
> Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
> Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
||||||
|
|
||||||
@ -144,13 +144,13 @@ TODO
|
|||||||
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
|
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
|
||||||
+ *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder)
|
+ *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder)
|
||||||
+ *First Build*: 30th April, 2015
|
+ *First Build*: 30th April, 2015
|
||||||
+ *Last Build*: 7th March, 2024
|
+ *Last Build*: 9th March, 2024
|
||||||
+ *Version*: 3.2.0-beta4
|
+ *Version*: 3.2.0-beta5
|
||||||
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
|
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||||
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
||||||
+ *Line count*: **741812**
|
+ *Line count*: **742015**
|
||||||
+ *Field count*: **2078**
|
+ *Field count*: **2078**
|
||||||
+ *File count*: **5204**
|
+ *File count*: **5205**
|
||||||
+ *Folder count*: **462**
|
+ *Folder count*: **462**
|
||||||
|
|
||||||
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](https://www.joomlacomponentbuilder.com).
|
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](https://www.joomlacomponentbuilder.com).
|
||||||
|
@ -141,7 +141,7 @@ class HtmlView extends BaseHtmlView
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
protected function _prepareDocument(): void
|
protected function _prepareDocument(): void
|
||||||
{
|
{###JQUERY###
|
||||||
$this->getDocument()->setTitle(Text::_('COM_###COMPONENT###_###VIEWS###'));
|
$this->getDocument()->setTitle(Text::_('COM_###COMPONENT###_###VIEWS###'));
|
||||||
// add styles
|
// add styles
|
||||||
foreach ($this->styles as $style)
|
foreach ($this->styles as $style)
|
||||||
|
@ -126,7 +126,7 @@ class HtmlView extends BaseHtmlView
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
protected function _prepareDocument(): void
|
protected function _prepareDocument(): void
|
||||||
{
|
{###JQUERY###
|
||||||
$isNew = ($this->item->id < 1);
|
$isNew = ($this->item->id < 1);
|
||||||
$this->getDocument()->setTitle(Text::_($isNew ? 'COM_###COMPONENT###_###VIEW###_NEW' : 'COM_###COMPONENT###_###VIEW###_EDIT'));
|
$this->getDocument()->setTitle(Text::_($isNew ? 'COM_###COMPONENT###_###VIEW###_NEW' : 'COM_###COMPONENT###_###VIEW###_EDIT'));
|
||||||
// add styles
|
// add styles
|
||||||
|
@ -28,7 +28,7 @@ namespace ###NAMESPACEPREFIX###\Component\###ComponentNameSpace###\Site\View\###
|
|||||||
class HtmlView extends BaseHtmlView
|
class HtmlView extends BaseHtmlView
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Display the view
|
* ###View### view display method
|
||||||
*
|
*
|
||||||
* @param string $tpl The name of the template file to parse; automatically searches through the template paths.
|
* @param string $tpl The name of the template file to parse; automatically searches through the template paths.
|
||||||
*
|
*
|
||||||
@ -42,8 +42,9 @@ class HtmlView extends BaseHtmlView
|
|||||||
// Assign the variables
|
// Assign the variables
|
||||||
$this->form = $this->get('Form');
|
$this->form = $this->get('Form');
|
||||||
$this->item = $this->get('Item');
|
$this->item = $this->get('Item');
|
||||||
$this->script = $this->get('Script');
|
|
||||||
$this->state = $this->get('State');
|
$this->state = $this->get('State');
|
||||||
|
$this->styles = $this->get('Styles');
|
||||||
|
$this->scripts = $this->get('Scripts');
|
||||||
// get action permissions
|
// get action permissions
|
||||||
$this->canDo = ###Component###Helper::getActions('###view###', $this->item);
|
$this->canDo = ###Component###Helper::getActions('###view###', $this->item);
|
||||||
// get input
|
// get input
|
||||||
@ -93,9 +94,8 @@ class HtmlView extends BaseHtmlView
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
protected function addToolbar(): void
|
protected function addToolbar(): void
|
||||||
{###ADDTOOLBAR###
|
{
|
||||||
// now initiate the toolbar
|
###ADDTOOLBAR###
|
||||||
$this->toolbar = Toolbar::getInstance();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -125,14 +125,18 @@ class HtmlView extends BaseHtmlView
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
protected function _prepareDocument(): void
|
protected function _prepareDocument(): void
|
||||||
{
|
{###JQUERY###
|
||||||
$isNew = ($this->item->id < 1);
|
$isNew = ($this->item->id < 1);
|
||||||
$this->getDocument()->setTitle(Text::_($isNew ? 'COM_###COMPONENT###_###VIEW###_NEW' : 'COM_###COMPONENT###_###VIEW###_EDIT'));
|
$this->getDocument()->setTitle(Text::_($isNew ? 'COM_###COMPONENT###_###VIEW###_NEW' : 'COM_###COMPONENT###_###VIEW###_EDIT'));
|
||||||
// the default style of this view
|
// add styles
|
||||||
Html::_('stylesheet', "components/com_###component###/assets/css/###view###.css", ['version' => 'auto']);###AJAXTOKE######LINKEDVIEWTABLESCRIPTS###
|
foreach ($this->styles as $style)
|
||||||
// default javascript of this view
|
{
|
||||||
Html::_('script', $this->script, ['version' => 'auto']);
|
Html::_('stylesheet', $style, ['version' => 'auto']);
|
||||||
Html::_('script', "components/com_###component###/views/###view###/submitbutton.js", ['version' => 'auto']);###DOCUMENT_CUSTOM_PHP###
|
}###AJAXTOKE######LINKEDVIEWTABLESCRIPTS###
|
||||||
Text::script('view not acceptable. Error');
|
// add scripts
|
||||||
|
foreach ($this->scripts as $script)
|
||||||
|
{
|
||||||
|
Html::_('script', $script, ['version' => 'auto']);
|
||||||
|
}###DOCUMENT_CUSTOM_PHP###
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1335,7 +1335,6 @@ COM_COMPONENTBUILDER_BECOME_A_CONTRIBUTOR="Become a Contributor"
|
|||||||
COM_COMPONENTBUILDER_BEHAVIOUR="Behaviour"
|
COM_COMPONENTBUILDER_BEHAVIOUR="Behaviour"
|
||||||
COM_COMPONENTBUILDER_BEHIND="Behind"
|
COM_COMPONENTBUILDER_BEHIND="Behind"
|
||||||
COM_COMPONENTBUILDER_BEHIND_MEANS_YOUR_BLOCAL_SNIPPETB_WITH_THE_SAME_NAME_LIBRARY_AND_TYPE_HAS_A_BOLDER_MODIFIED_DATEB_THEN_THE_COMMUNITY_SNIPPET_WITH_THE_SAME_NAME_LIBRARY_AND_TYPE="Behind means your <b>local snippet</b> (with the same name, library and type) has a <b>older modified date</b> then the community snippet (with the same name, library and type)."
|
COM_COMPONENTBUILDER_BEHIND_MEANS_YOUR_BLOCAL_SNIPPETB_WITH_THE_SAME_NAME_LIBRARY_AND_TYPE_HAS_A_BOLDER_MODIFIED_DATEB_THEN_THE_COMMUNITY_SNIPPET_WITH_THE_SAME_NAME_LIBRARY_AND_TYPE="Behind means your <b>local snippet</b> (with the same name, library and type) has a <b>older modified date</b> then the community snippet (with the same name, library and type)."
|
||||||
COM_COMPONENTBUILDER_BETA_RELEASE="Beta Release"
|
|
||||||
COM_COMPONENTBUILDER_BE_A_PART_OF_JCB="Be a Part of JCB"
|
COM_COMPONENTBUILDER_BE_A_PART_OF_JCB="Be a Part of JCB"
|
||||||
COM_COMPONENTBUILDER_BE_CAUTIOUS_DO_NOT_CONTINUE_UNLESS_YOU_TRUST_THE_ORIGIN_OF_THIS_PACKAGE="Be cautious! Do not continue unless you trust the origin of this package!"
|
COM_COMPONENTBUILDER_BE_CAUTIOUS_DO_NOT_CONTINUE_UNLESS_YOU_TRUST_THE_ORIGIN_OF_THIS_PACKAGE="Be cautious! Do not continue unless you trust the origin of this package!"
|
||||||
COM_COMPONENTBUILDER_BFIELD_TYPEB_IDS_MISMATCH_IN_BSB="<b>Field type</b> id:%s mismatch in <b>%s</b>."
|
COM_COMPONENTBUILDER_BFIELD_TYPEB_IDS_MISMATCH_IN_BSB="<b>Field type</b> id:%s mismatch in <b>%s</b>."
|
||||||
@ -7862,6 +7861,7 @@ COM_COMPONENTBUILDER_POWER_VERSION_DESC="A count of the number of times this Pow
|
|||||||
COM_COMPONENTBUILDER_POWER_VERSION_LABEL="Version"
|
COM_COMPONENTBUILDER_POWER_VERSION_LABEL="Version"
|
||||||
COM_COMPONENTBUILDER_POWER_YES="Yes"
|
COM_COMPONENTBUILDER_POWER_YES="Yes"
|
||||||
COM_COMPONENTBUILDER_PPOWER_BGUIDSB_NOT_FOUNDP="<p>Power <b>guid:%s</b> not found!</p>"
|
COM_COMPONENTBUILDER_PPOWER_BGUIDSB_NOT_FOUNDP="<p>Power <b>guid:%s</b> not found!</p>"
|
||||||
|
COM_COMPONENTBUILDER_PRE_RELEASE="Pre Release"
|
||||||
COM_COMPONENTBUILDER_PROPERTIES="Properties"
|
COM_COMPONENTBUILDER_PROPERTIES="Properties"
|
||||||
COM_COMPONENTBUILDER_PROPERTIESBR_SMALLHERE_YOU_CAN_SET_THE_PROPERTIES_FOR_THIS_FIELDSMALL="Properties<br /><small>Here you can set the properties for this field.</small>"
|
COM_COMPONENTBUILDER_PROPERTIESBR_SMALLHERE_YOU_CAN_SET_THE_PROPERTIES_FOR_THIS_FIELDSMALL="Properties<br /><small>Here you can set the properties for this field.</small>"
|
||||||
COM_COMPONENTBUILDER_PROPERTY="Property"
|
COM_COMPONENTBUILDER_PROPERTY="Property"
|
||||||
|
@ -24,11 +24,11 @@ use Joomla\CMS\Layout\LayoutHelper;
|
|||||||
<?php echo Html::_('bootstrap.startTabSet', $displayData['id'] . '_tab', array('active' => $displayData['active'] . '-noticeboard')); ?>
|
<?php echo Html::_('bootstrap.startTabSet', $displayData['id'] . '_tab', array('active' => $displayData['active'] . '-noticeboard')); ?>
|
||||||
<?php echo Html::_('bootstrap.addTab', $displayData['id'] . '_tab', 'vdm-noticeboard', Text::_('COM_COMPONENTBUILDER_VDM_BOARD', true)); ?>
|
<?php echo Html::_('bootstrap.addTab', $displayData['id'] . '_tab', 'vdm-noticeboard', Text::_('COM_COMPONENTBUILDER_VDM_BOARD', true)); ?>
|
||||||
<?php echo LayoutHelper::render('jcbnoticeboardvdm', null); ?>
|
<?php echo LayoutHelper::render('jcbnoticeboardvdm', null); ?>
|
||||||
<div><?php echo ComponentbuilderHelper::getDynamicContent('banner', '728-90'); ?></div>
|
<div class="p-md-3"><?php echo ComponentbuilderHelper::getDynamicContent('banner', '728-90'); ?></div>
|
||||||
<?php echo Html::_('bootstrap.endTab'); ?>
|
<?php echo Html::_('bootstrap.endTab'); ?>
|
||||||
<?php echo Html::_('bootstrap.addTab', $displayData['id'] . '_tab', 'pro-noticeboard', Text::_('COM_COMPONENTBUILDER_JCB_PRO_BOARD', true)); ?>
|
<?php echo Html::_('bootstrap.addTab', $displayData['id'] . '_tab', 'pro-noticeboard', Text::_('COM_COMPONENTBUILDER_JCB_PRO_BOARD', true)); ?>
|
||||||
<?php echo LayoutHelper::render('jcbnoticeboardpro', null); ?>
|
<?php echo LayoutHelper::render('jcbnoticeboardpro', null); ?>
|
||||||
<div><?php echo ComponentbuilderHelper::getDynamicContent('banner', '728-90'); ?></div>
|
<div class="p-md-3"><?php echo ComponentbuilderHelper::getDynamicContent('banner', '728-90'); ?></div>
|
||||||
<?php echo Html::_('bootstrap.endTab'); ?>
|
<?php echo Html::_('bootstrap.endTab'); ?>
|
||||||
<?php echo Html::_('bootstrap.endTabSet'); ?>
|
<?php echo Html::_('bootstrap.endTabSet'); ?>
|
||||||
</div>
|
</div>
|
||||||
|
@ -21,11 +21,12 @@ use VDM\Joomla\Utilities\StringHelper;
|
|||||||
$table_id = (isset($displayData['id'])) ? $displayData['id'] : StringHelper::random(7);
|
$table_id = (isset($displayData['id'])) ? $displayData['id'] : StringHelper::random(7);
|
||||||
$name = (isset($displayData['name'])) ? $displayData['name'] : false;
|
$name = (isset($displayData['name'])) ? $displayData['name'] : false;
|
||||||
$table_class = (isset($displayData['table_class'])) ? $displayData['table_class'] : 'uk-table';
|
$table_class = (isset($displayData['table_class'])) ? $displayData['table_class'] : 'uk-table';
|
||||||
|
$table_container_class = (isset($displayData['table_container_class'])) ? $displayData['table_container_class'] : 'uk-overflow-auto';
|
||||||
$headers = (isset($displayData['headers'])) ? $displayData['headers'] : [Text::_('COM_COMPONENTBUILDER_NO'), Text::_('COM_COMPONENTBUILDER_HEADERS'), Text::_('COM_COMPONENTBUILDER_FOUND')];
|
$headers = (isset($displayData['headers'])) ? $displayData['headers'] : [Text::_('COM_COMPONENTBUILDER_NO'), Text::_('COM_COMPONENTBUILDER_HEADERS'), Text::_('COM_COMPONENTBUILDER_FOUND')];
|
||||||
$items = (isset($displayData['items'])) ? $displayData['items'] : 6;
|
$items = (isset($displayData['items'])) ? $displayData['items'] : 6;
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<div class="uk-overflow-auto">
|
<div class="<?php echo $$table_container_class; ?>">
|
||||||
<table id="<?php echo $table_id; ?>" class="<?php echo $table_class; ?>">
|
<table id="<?php echo $table_id; ?>" class="<?php echo $table_class; ?>">
|
||||||
<thead>
|
<thead>
|
||||||
<?php if (is_array($headers)): ?>
|
<?php if (is_array($headers)): ?>
|
||||||
|
@ -321,7 +321,7 @@ class ComponentbuilderModelAjax extends ListModel
|
|||||||
// now check if this version is out dated
|
// now check if this version is out dated
|
||||||
if ($current_version === $local_version)
|
if ($current_version === $local_version)
|
||||||
{
|
{
|
||||||
return ['notice' => '<small><span style="color:green;"><span class="icon-shield"></span>' . Text::_('COM_COMPONENTBUILDER_UP_TO_DATE') . '</span></small>'];
|
return ['notice' => '<small><span style="color:green;"><span class="icon-shield"></span> ' . Text::_('COM_COMPONENTBUILDER_UP_TO_DATE') . '</span></small>'];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -332,14 +332,14 @@ class ComponentbuilderModelAjax extends ListModel
|
|||||||
($local_array[0] == $current_array[0] && $local_array[1] > $current_array[1]) ||
|
($local_array[0] == $current_array[0] && $local_array[1] > $current_array[1]) ||
|
||||||
($local_array[0] == $current_array[0] && $local_array[1] == $current_array[1] && $local_array[2] > $current_array[2]))
|
($local_array[0] == $current_array[0] && $local_array[1] == $current_array[1] && $local_array[2] > $current_array[2]))
|
||||||
{
|
{
|
||||||
return ['notice' => '<small><span style="color:#F7B033;"><span class="icon-wrench"></span>' . Text::_('COM_COMPONENTBUILDER_BETA_RELEASE') . '</span></small>'];
|
return ['notice' => '<small><span style="color:#F7B033;"><span class="icon-wrench"></span> ' . Text::_('COM_COMPONENTBUILDER_PRE_RELEASE') . '</span></small>'];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// download link of the latest version
|
// download link of the latest version
|
||||||
$download = "https://git.vdm.dev/api/v1/repos/joomla/Component-Builder/archive/" . $tags[0]->name . ".zip";
|
$download = "https://git.vdm.dev/api/v1/repos/joomla/Component-Builder/archive/" . $tags[0]->name . ".zip";
|
||||||
|
|
||||||
return ['notice' => '<small><span style="color:red;"><span class="icon-warning-circle"></span>' . Text::_('COM_COMPONENTBUILDER_OUT_OF_DATE') . '!</span> <a style="color:green;" href="' .
|
return ['notice' => '<small><span style="color:red;"><span class="icon-warning-circle"></span> ' . Text::_('COM_COMPONENTBUILDER_OUT_OF_DATE') . '!</span> <a style="color:green;" href="' .
|
||||||
$download . '" title="' . Text::_('COM_COMPONENTBUILDER_YOU_CAN_DIRECTLY_DOWNLOAD_THE_LATEST_UPDATE_OR_USE_THE_JOOMLA_UPDATE_AREA') . '">' . Text::_('COM_COMPONENTBUILDER_DOWNLOAD_UPDATE') . '!</a></small>'];
|
$download . '" title="' . Text::_('COM_COMPONENTBUILDER_YOU_CAN_DIRECTLY_DOWNLOAD_THE_LATEST_UPDATE_OR_USE_THE_JOOMLA_UPDATE_AREA') . '">' . Text::_('COM_COMPONENTBUILDER_DOWNLOAD_UPDATE') . '!</a></small>'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,14 +40,14 @@ class JFormFieldDbtables extends JFormFieldList
|
|||||||
protected function getOptions()
|
protected function getOptions()
|
||||||
{
|
{
|
||||||
// get db object
|
// get db object
|
||||||
$db = JFactory::getDBO();
|
$db = Factory::getDBO();
|
||||||
// get all tables
|
// get all tables
|
||||||
$tables= $db->getTableList();
|
$tables= $db->getTableList();
|
||||||
// get config
|
// get config
|
||||||
$config = JFactory::getConfig();
|
$config = Factory::getConfig();
|
||||||
$dbprefix = version_compare(JVERSION,'3.0','lt') ? $config->getValue('config.dbprefix') : $config->get('dbprefix');
|
$dbprefix = \version_compare(JVERSION,'3.0','lt') ? $config->getValue('config.dbprefix') : $config->get('dbprefix');
|
||||||
$options = array();
|
$options = array();
|
||||||
$options[] = JHtml::_('select.option', '', 'Select an option');
|
$options[] = Html::_('select.option', '', 'Select an option');
|
||||||
for ($i=0; $i < count($tables); $i++)
|
for ($i=0; $i < count($tables); $i++)
|
||||||
{
|
{
|
||||||
//only tables with primary key
|
//only tables with primary key
|
||||||
@ -55,7 +55,7 @@ class JFormFieldDbtables extends JFormFieldList
|
|||||||
if ($db->loadResult())
|
if ($db->loadResult())
|
||||||
{
|
{
|
||||||
$key = $i+1;
|
$key = $i+1;
|
||||||
$options[$key] = new stdClass;
|
$options[$key] = new \stdClass;
|
||||||
$options[$key]->value = str_replace($dbprefix, '', $tables[$i]);
|
$options[$key]->value = str_replace($dbprefix, '', $tables[$i]);
|
||||||
$options[$key]->text = $tables[$i];
|
$options[$key]->text = $tables[$i];
|
||||||
}
|
}
|
||||||
|
@ -961,7 +961,8 @@ class ComponentbuilderModelJoomla_component extends AdminModel
|
|||||||
'component_dashboard' => 'joomla_component',
|
'component_dashboard' => 'joomla_component',
|
||||||
'component_files_folders' => 'joomla_component',
|
'component_files_folders' => 'joomla_component',
|
||||||
'component_placeholders' => 'joomla_component',
|
'component_placeholders' => 'joomla_component',
|
||||||
'custom_code' => 'component'
|
'custom_code' => 'component',
|
||||||
|
'component_router' => 'joomla_component'
|
||||||
);
|
);
|
||||||
foreach($_tablesArray as $_updateTable => $_key)
|
foreach($_tablesArray as $_updateTable => $_key)
|
||||||
{
|
{
|
||||||
@ -1010,7 +1011,8 @@ class ComponentbuilderModelJoomla_component extends AdminModel
|
|||||||
'component_dashboard' => 'joomla_component',
|
'component_dashboard' => 'joomla_component',
|
||||||
'component_files_folders' => 'joomla_component',
|
'component_files_folders' => 'joomla_component',
|
||||||
'component_placeholders' => 'joomla_component',
|
'component_placeholders' => 'joomla_component',
|
||||||
'custom_code' => 'component'
|
'custom_code' => 'component',
|
||||||
|
'component_router' => 'joomla_component'
|
||||||
);
|
);
|
||||||
foreach($_tablesArray as $_updateTable => $_key)
|
foreach($_tablesArray as $_updateTable => $_key)
|
||||||
{
|
{
|
||||||
|
@ -326,7 +326,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_power` (
|
|||||||
`add_head` TINYINT(1) NOT NULL DEFAULT 0,
|
`add_head` TINYINT(1) NOT NULL DEFAULT 0,
|
||||||
`add_licensing_template` TINYINT(1) NOT NULL DEFAULT 1,
|
`add_licensing_template` TINYINT(1) NOT NULL DEFAULT 1,
|
||||||
`approved` TINYINT(1) NOT NULL DEFAULT 0,
|
`approved` TINYINT(1) NOT NULL DEFAULT 0,
|
||||||
`approved_paths` TEXT NOT NULL,
|
`approved_paths` TEXT NULL,
|
||||||
`composer` TEXT NULL,
|
`composer` TEXT NULL,
|
||||||
`description` TEXT NULL,
|
`description` TEXT NULL,
|
||||||
`extends` VARCHAR(36) NOT NULL DEFAULT '',
|
`extends` VARCHAR(36) NOT NULL DEFAULT '',
|
||||||
@ -1177,11 +1177,11 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_fieldtype` (
|
|||||||
CREATE TABLE IF NOT EXISTS `#__componentbuilder_language_translation` (
|
CREATE TABLE IF NOT EXISTS `#__componentbuilder_language_translation` (
|
||||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||||
`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
|
`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
|
||||||
`components` TEXT NOT NULL,
|
`components` TEXT NULL,
|
||||||
`modules` TEXT NOT NULL,
|
`modules` TEXT NULL,
|
||||||
`plugins` TEXT NOT NULL,
|
`plugins` TEXT NULL,
|
||||||
`source` MEDIUMTEXT NOT NULL,
|
`source` MEDIUMTEXT NOT NULL,
|
||||||
`translation` TEXT NOT NULL,
|
`translation` TEXT NULL,
|
||||||
`params` text NULL,
|
`params` text NULL,
|
||||||
`published` TINYINT(3) NOT NULL DEFAULT 1,
|
`published` TINYINT(3) NOT NULL DEFAULT 1,
|
||||||
`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
|
`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
|
||||||
@ -2528,7 +2528,8 @@ INSERT INTO `#__componentbuilder_library_files_folders_urls` (`id`, `addfiles`,
|
|||||||
(8, '{}', '{}', '{\"addurls2\":{\"url\":\"https:\\/\\/cdn.datatables.net\\/1.10.21\\/js\\/jquery.dataTables.min.js\",\"type\":2},\"addurls1\":{\"url\":\"https:\\/\\/cdn.datatables.net\\/1.10.21\\/css\\/dataTables.uikit.min.css\",\"type\":2}}', 11, '', 1, '2020-06-27 21:34:44', '0000-00-00 00:00:00', 1, '', 7),
|
(8, '{}', '{}', '{\"addurls2\":{\"url\":\"https:\\/\\/cdn.datatables.net\\/1.10.21\\/js\\/jquery.dataTables.min.js\",\"type\":2},\"addurls1\":{\"url\":\"https:\\/\\/cdn.datatables.net\\/1.10.21\\/css\\/dataTables.uikit.min.css\",\"type\":2}}', 11, '', 1, '2020-06-27 21:34:44', '0000-00-00 00:00:00', 1, '', 7),
|
||||||
(9, '{}', '{}', '{\"addurls3\":{\"url\":\"http:\\/\\/code.jquery.com\\/ui\\/1.11.1\\/themes\\/smoothness\\/jquery-ui.css\",\"type\":2},\"addurls0\":{\"url\":\"https:\\/\\/cdnjs.cloudflare.com\\/ajax\\/libs\\/jquery-ui-timepicker-addon\\/1.6.3\\/jquery-ui-timepicker-addon.min.css\",\"type\":2},\"addurls1\":{\"url\":\"http:\\/\\/code.jquery.com\\/ui\\/1.11.1\\/jquery-ui.min.js\",\"type\":2},\"addurls2\":{\"url\":\"https:\\/\\/cdnjs.cloudflare.com\\/ajax\\/libs\\/jquery-ui-timepicker-addon\\/1.6.3\\/jquery-ui-timepicker-addon.min.js\",\"type\":2}}', 12, '', 1, '2020-06-29 00:00:44', '2020-06-29 04:32:57', 4, '', 8),
|
(9, '{}', '{}', '{\"addurls3\":{\"url\":\"http:\\/\\/code.jquery.com\\/ui\\/1.11.1\\/themes\\/smoothness\\/jquery-ui.css\",\"type\":2},\"addurls0\":{\"url\":\"https:\\/\\/cdnjs.cloudflare.com\\/ajax\\/libs\\/jquery-ui-timepicker-addon\\/1.6.3\\/jquery-ui-timepicker-addon.min.css\",\"type\":2},\"addurls1\":{\"url\":\"http:\\/\\/code.jquery.com\\/ui\\/1.11.1\\/jquery-ui.min.js\",\"type\":2},\"addurls2\":{\"url\":\"https:\\/\\/cdnjs.cloudflare.com\\/ajax\\/libs\\/jquery-ui-timepicker-addon\\/1.6.3\\/jquery-ui-timepicker-addon.min.js\",\"type\":2}}', 12, '', 1, '2020-06-29 00:00:44', '2020-06-29 04:32:57', 4, '', 8),
|
||||||
(10, '{}', '{}', '{\"addurls0\":{\"url\":\"https:\\/\\/cdn.datatables.net\\/v\\/dt\\/jszip-2.5.0\\/dt-1.11.5\\/b-2.2.2\\/b-colvis-2.2.2\\/b-html5-2.2.2\\/b-print-2.2.2\\/cr-1.5.5\\/date-1.1.2\\/fc-4.0.2\\/fh-3.2.2\\/kt-2.6.4\\/r-2.2.9\\/rg-1.1.4\\/rr-1.2.8\\/sc-2.0.5\\/sb-1.3.2\\/sp-2.0.0\\/sl-1.3.4\\/sr-1.1.0\\/datatables.min.css\",\"type\":3},\"addurls1\":{\"url\":\"https:\\/\\/cdnjs.cloudflare.com\\/ajax\\/libs\\/pdfmake\\/0.1.36\\/pdfmake.min.js\",\"type\":3},\"addurls2\":{\"url\":\"https:\\/\\/cdnjs.cloudflare.com\\/ajax\\/libs\\/pdfmake\\/0.1.36\\/vfs_fonts.js\",\"type\":3},\"addurls3\":{\"url\":\"https:\\/\\/cdn.datatables.net\\/v\\/dt\\/jszip-2.5.0\\/dt-1.11.5\\/b-2.2.2\\/b-colvis-2.2.2\\/b-html5-2.2.2\\/b-print-2.2.2\\/cr-1.5.5\\/date-1.1.2\\/fc-4.0.2\\/fh-3.2.2\\/kt-2.6.4\\/r-2.2.9\\/rg-1.1.4\\/rr-1.2.8\\/sc-2.0.5\\/sb-1.3.2\\/sp-2.0.0\\/sl-1.3.4\\/sr-1.1.0\\/datatables.min.js\",\"type\":3}}', 13, '', 1, '2022-10-17 20:56:24', '0000-00-00 00:00:00', 1, '', 9),
|
(10, '{}', '{}', '{\"addurls0\":{\"url\":\"https:\\/\\/cdn.datatables.net\\/v\\/dt\\/jszip-2.5.0\\/dt-1.11.5\\/b-2.2.2\\/b-colvis-2.2.2\\/b-html5-2.2.2\\/b-print-2.2.2\\/cr-1.5.5\\/date-1.1.2\\/fc-4.0.2\\/fh-3.2.2\\/kt-2.6.4\\/r-2.2.9\\/rg-1.1.4\\/rr-1.2.8\\/sc-2.0.5\\/sb-1.3.2\\/sp-2.0.0\\/sl-1.3.4\\/sr-1.1.0\\/datatables.min.css\",\"type\":3},\"addurls1\":{\"url\":\"https:\\/\\/cdnjs.cloudflare.com\\/ajax\\/libs\\/pdfmake\\/0.1.36\\/pdfmake.min.js\",\"type\":3},\"addurls2\":{\"url\":\"https:\\/\\/cdnjs.cloudflare.com\\/ajax\\/libs\\/pdfmake\\/0.1.36\\/vfs_fonts.js\",\"type\":3},\"addurls3\":{\"url\":\"https:\\/\\/cdn.datatables.net\\/v\\/dt\\/jszip-2.5.0\\/dt-1.11.5\\/b-2.2.2\\/b-colvis-2.2.2\\/b-html5-2.2.2\\/b-print-2.2.2\\/cr-1.5.5\\/date-1.1.2\\/fc-4.0.2\\/fh-3.2.2\\/kt-2.6.4\\/r-2.2.9\\/rg-1.1.4\\/rr-1.2.8\\/sc-2.0.5\\/sb-1.3.2\\/sp-2.0.0\\/sl-1.3.4\\/sr-1.1.0\\/datatables.min.js\",\"type\":3}}', 13, '', 1, '2022-10-17 20:56:24', '0000-00-00 00:00:00', 1, '', 9),
|
||||||
(11, '{}', '{}', '{\"addurls0\":{\"url\":\"https:\\/\\/cdn.jsdelivr.net\\/npm\\/nouislider\\/dist\\/nouislider.min.css\",\"type\":2},\"addurls1\":{\"url\":\"https:\\/\\/cdn.jsdelivr.net\\/npm\\/nouislider\\/dist\\/nouislider.min.js\",\"type\":2}}', 14, '', 1, '2023-06-26 15:02:42', '2023-07-24 18:11:41', 3, '', 10);
|
(11, '{}', '{}', '{\"addurls0\":{\"url\":\"https:\\/\\/cdn.jsdelivr.net\\/npm\\/nouislider\\/dist\\/nouislider.min.css\",\"type\":2},\"addurls1\":{\"url\":\"https:\\/\\/cdn.jsdelivr.net\\/npm\\/nouislider\\/dist\\/nouislider.min.js\",\"type\":2}}', 14, '', 1, '2023-06-26 15:02:42', '2023-07-24 18:11:41', 3, '', 10),
|
||||||
|
(12, '{}', '{}', '{\"addurls4\":{\"url\":\"https:\\/\\/cdn.datatables.net\\/v\\/bs5\\/jszip-3.10.1\\/dt-2.0.2\\/b-3.0.1\\/b-colvis-3.0.1\\/b-html5-3.0.1\\/b-print-3.0.1\\/cr-2.0.0\\/date-1.5.2\\/fc-5.0.0\\/fh-4.0.1\\/kt-2.12.0\\/r-3.0.0\\/rg-1.5.0\\/rr-1.5.0\\/sc-2.4.1\\/sb-1.7.0\\/sp-2.3.0\\/sl-2.0.0\\/sr-1.4.0\\/datatables.min.css\",\"type\":3},\"addurls1\":{\"url\":\"https:\\/\\/cdnjs.cloudflare.com\\/ajax\\/libs\\/pdfmake\\/0.2.7\\/pdfmake.min.js\",\"type\":3},\"addurls2\":{\"url\":\"https:\\/\\/cdnjs.cloudflare.com\\/ajax\\/libs\\/pdfmake\\/0.2.7\\/vfs_fonts.js\",\"type\":3},\"addurls3\":{\"url\":\"https:\\/\\/cdn.datatables.net\\/v\\/bs5\\/jszip-3.10.1\\/dt-2.0.2\\/b-3.0.1\\/b-colvis-3.0.1\\/b-html5-3.0.1\\/b-print-3.0.1\\/cr-2.0.0\\/date-1.5.2\\/fc-5.0.0\\/fh-4.0.1\\/kt-2.12.0\\/r-3.0.0\\/rg-1.5.0\\/rr-1.5.0\\/sc-2.4.1\\/sb-1.7.0\\/sp-2.3.0\\/sl-2.0.0\\/sr-1.4.0\\/datatables.min.js\",\"type\":3}}', 15, '', 1, '2024-03-09 16:27:28', '2024-03-09 16:29:30', 2, '', 9);
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `#__componentbuilder_external_code` (
|
CREATE TABLE IF NOT EXISTS `#__componentbuilder_external_code` (
|
||||||
|
1
admin/sql/updates/mysql/3.2.0-beta4.sql
Normal file
1
admin/sql/updates/mysql/3.2.0-beta4.sql
Normal file
@ -0,0 +1 @@
|
|||||||
|
ALTER TABLE `#__componentbuilder_joomla_component` ADD `preferred_joomla_version` INT(11) NOT NULL DEFAULT 3 AFTER `php_site_event`;
|
@ -657,7 +657,7 @@ class ComponentbuilderViewCompiler extends HtmlView
|
|||||||
// add the document default css file
|
// add the document default css file
|
||||||
Html::_('stylesheet', 'administrator/components/com_componentbuilder/assets/css/compiler.css', ['version' => 'auto']);
|
Html::_('stylesheet', 'administrator/components/com_componentbuilder/assets/css/compiler.css', ['version' => 'auto']);
|
||||||
// Set the Custom JS script to view
|
// Set the Custom JS script to view
|
||||||
$this->document->addScriptDeclaration("
|
$this->getDocument()->addScriptDeclaration("
|
||||||
function getComponentDetails_server(id) {
|
function getComponentDetails_server(id) {
|
||||||
let getUrl = JRouter(\"index.php?option=com_componentbuilder&task=ajax.getComponentDetails&format=json&raw=true\");
|
let getUrl = JRouter(\"index.php?option=com_componentbuilder&task=ajax.getComponentDetails&format=json&raw=true\");
|
||||||
let request = new URLSearchParams();
|
let request = new URLSearchParams();
|
||||||
|
@ -215,9 +215,9 @@ class ComponentbuilderViewJoomla_component extends HtmlView
|
|||||||
Html::_('script', 'media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', ['version' => 'auto']);
|
Html::_('script', 'media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', ['version' => 'auto']);
|
||||||
Html::_('script', 'media/com_componentbuilder/uikit-v2/js/components/notify.min.js', ['version' => 'auto']);
|
Html::_('script', 'media/com_componentbuilder/uikit-v2/js/components/notify.min.js', ['version' => 'auto']);
|
||||||
// add var key
|
// add var key
|
||||||
$this->document->addScriptDeclaration("var vastDevMod = '" . $this->get('VDM') . "';");
|
$this->getDocument()->addScriptDeclaration("var vastDevMod = '" . $this->get('VDM') . "';");
|
||||||
// add return_here
|
// add return_here
|
||||||
$this->document->addScriptDeclaration("var return_here = '" . urlencode(base64_encode((string) \JUri::getInstance())) . "';");
|
$this->getDocument()->addScriptDeclaration("var return_here = '" . urlencode(base64_encode((string) \JUri::getInstance())) . "';");
|
||||||
Text::script('view not acceptable. Error');
|
Text::script('view not acceptable. Error');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,11 +17,12 @@ use Joomla\CMS\Language\Text;
|
|||||||
use Joomla\CMS\HTML\HTMLHelper as Html;
|
use Joomla\CMS\HTML\HTMLHelper as Html;
|
||||||
use Joomla\CMS\Layout\LayoutHelper;
|
use Joomla\CMS\Layout\LayoutHelper;
|
||||||
use Joomla\CMS\Router\Route;
|
use Joomla\CMS\Router\Route;
|
||||||
use VDM\Joomla\Utilities\ArrayHelper;
|
|
||||||
Html::addIncludePath(JPATH_COMPONENT.'/helpers/html');
|
Html::addIncludePath(JPATH_COMPONENT.'/helpers/html');
|
||||||
Html::_('behavior.formvalidator');
|
Html::_('behavior.formvalidator');
|
||||||
Html::_('formbehavior.chosen', 'select');
|
Html::_('formbehavior.chosen', 'select');
|
||||||
Html::_('behavior.keepalive');
|
Html::_('behavior.keepalive');
|
||||||
|
use Joomla\CMS\Session\Session;
|
||||||
|
use VDM\Joomla\Utilities\ArrayHelper;
|
||||||
|
|
||||||
// allow main menu selection
|
// allow main menu selection
|
||||||
$this->app->input->set('hidemainmenu', false);
|
$this->app->input->set('hidemainmenu', false);
|
||||||
@ -159,7 +160,7 @@ $search_value = $this->form->getField('search_value');
|
|||||||
const searchTables = <?php echo json_encode($this->item['tables']); ?>;
|
const searchTables = <?php echo json_encode($this->item['tables']); ?>;
|
||||||
|
|
||||||
// the search Ajax URLs
|
// the search Ajax URLs
|
||||||
const UrlAjax = '<?php echo $url_base; ?>&format=json&raw=true&<?php echo \JSession::getFormToken(); ?>=1&task=ajax.';
|
const UrlAjax = '<?php echo $url_base; ?>&format=json&raw=true&<?php echo Session::getFormToken(); ?>=1&task=ajax.';
|
||||||
|
|
||||||
// the search URL
|
// the search URL
|
||||||
const UrlSearch = '<?php echo $url_search; ?>';
|
const UrlSearch = '<?php echo $url_search; ?>';
|
||||||
|
@ -24,6 +24,7 @@ use Joomla\CMS\Filesystem\File;
|
|||||||
use VDM\Joomla\Componentbuilder\Search\Factory as SearchFactory;
|
use VDM\Joomla\Componentbuilder\Search\Factory as SearchFactory;
|
||||||
use Joomla\CMS\Form\Form;
|
use Joomla\CMS\Form\Form;
|
||||||
use VDM\Joomla\Utilities\ArrayHelper;
|
use VDM\Joomla\Utilities\ArrayHelper;
|
||||||
|
use VDM\Joomla\Utilities\FormHelper;
|
||||||
use VDM\Joomla\Utilities\StringHelper;
|
use VDM\Joomla\Utilities\StringHelper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -149,7 +150,7 @@ class ComponentbuilderViewSearch extends HtmlView
|
|||||||
2 => 'COM_COMPONENTBUILDER_REPLACE',
|
2 => 'COM_COMPONENTBUILDER_REPLACE',
|
||||||
0 => 'COM_COMPONENTBUILDER_CLEAR'];
|
0 => 'COM_COMPONENTBUILDER_CLEAR'];
|
||||||
// add to form
|
// add to form
|
||||||
$xml = ComponentbuilderHelper::getFieldXML($attributes, $options);
|
$xml = FormHelper::xml($attributes, $options);
|
||||||
if ($xml instanceof SimpleXMLElement)
|
if ($xml instanceof SimpleXMLElement)
|
||||||
{
|
{
|
||||||
$form->setField($xml, null, true, 'search');
|
$form->setField($xml, null, true, 'search');
|
||||||
@ -170,7 +171,7 @@ class ComponentbuilderViewSearch extends HtmlView
|
|||||||
'autocomplete' => true,
|
'autocomplete' => true,
|
||||||
'default' => $this->urlvalues['search_value']];
|
'default' => $this->urlvalues['search_value']];
|
||||||
// add to form
|
// add to form
|
||||||
$xml = ComponentbuilderHelper::getFieldXML($attributes);
|
$xml = FormHelper::xml($attributes);
|
||||||
if ($xml instanceof SimpleXMLElement)
|
if ($xml instanceof SimpleXMLElement)
|
||||||
{
|
{
|
||||||
$form->setField($xml, null, true, 'search');
|
$form->setField($xml, null, true, 'search');
|
||||||
@ -192,7 +193,7 @@ class ComponentbuilderViewSearch extends HtmlView
|
|||||||
'showon' => 'type_search:2',
|
'showon' => 'type_search:2',
|
||||||
'default' => $this->urlvalues['replace_value']];
|
'default' => $this->urlvalues['replace_value']];
|
||||||
// add to form
|
// add to form
|
||||||
$xml = ComponentbuilderHelper::getFieldXML($attributes);
|
$xml = FormHelper::xml($attributes);
|
||||||
if ($xml instanceof SimpleXMLElement)
|
if ($xml instanceof SimpleXMLElement)
|
||||||
{
|
{
|
||||||
$form->setField($xml, null, true, 'search');
|
$form->setField($xml, null, true, 'search');
|
||||||
@ -227,7 +228,7 @@ class ComponentbuilderViewSearch extends HtmlView
|
|||||||
'whole_word' => 'COM_COMPONENTBUILDER_WHOLE_WORD',
|
'whole_word' => 'COM_COMPONENTBUILDER_WHOLE_WORD',
|
||||||
'regex_search' => 'COM_COMPONENTBUILDER_REGEX_SEARCH'];
|
'regex_search' => 'COM_COMPONENTBUILDER_REGEX_SEARCH'];
|
||||||
// add to form
|
// add to form
|
||||||
$xml = ComponentbuilderHelper::getFieldXML($attributes, $options);
|
$xml = FormHelper::xml($attributes, $options);
|
||||||
if ($xml instanceof SimpleXMLElement)
|
if ($xml instanceof SimpleXMLElement)
|
||||||
{
|
{
|
||||||
$form->setField($xml, null, true, 'settings');
|
$form->setField($xml, null, true, 'settings');
|
||||||
@ -253,7 +254,7 @@ class ComponentbuilderViewSearch extends HtmlView
|
|||||||
$options[(int) $component->id] = $this->escape($component->name);
|
$options[(int) $component->id] = $this->escape($component->name);
|
||||||
}
|
}
|
||||||
// add to form
|
// add to form
|
||||||
$xml = ComponentbuilderHelper::getFieldXML($attributes, $options);
|
$xml = FormHelper::xml($attributes, $options);
|
||||||
if ($xml instanceof SimpleXMLElement)
|
if ($xml instanceof SimpleXMLElement)
|
||||||
{
|
{
|
||||||
$form->setField($xml, null, true, 'settings');
|
$form->setField($xml, null, true, 'settings');
|
||||||
@ -277,7 +278,7 @@ class ComponentbuilderViewSearch extends HtmlView
|
|||||||
$options[$table] = $this->escape($table);
|
$options[$table] = $this->escape($table);
|
||||||
}
|
}
|
||||||
// add to form
|
// add to form
|
||||||
$xml = ComponentbuilderHelper::getFieldXML($attributes, $options);
|
$xml = FormHelper::xml($attributes, $options);
|
||||||
if ($xml instanceof SimpleXMLElement)
|
if ($xml instanceof SimpleXMLElement)
|
||||||
{
|
{
|
||||||
$form->setField($xml, null, true, 'settings');
|
$form->setField($xml, null, true, 'settings');
|
||||||
@ -296,7 +297,7 @@ class ComponentbuilderViewSearch extends HtmlView
|
|||||||
'filter' => 'raw',
|
'filter' => 'raw',
|
||||||
'editor' => 'codemirror|none'];
|
'editor' => 'codemirror|none'];
|
||||||
// add to form
|
// add to form
|
||||||
$xml = ComponentbuilderHelper::getFieldXML($attributes, $options);
|
$xml = FormHelper::xml($attributes, $options);
|
||||||
if ($xml instanceof SimpleXMLElement)
|
if ($xml instanceof SimpleXMLElement)
|
||||||
{
|
{
|
||||||
$form->setField($xml, null, true, 'view');
|
$form->setField($xml, null, true, 'view');
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<extension type="component" version="3.10" method="upgrade">
|
<extension type="component" version="3.10" method="upgrade">
|
||||||
<name>COM_COMPONENTBUILDER</name>
|
<name>COM_COMPONENTBUILDER</name>
|
||||||
<creationDate>7th March, 2024</creationDate>
|
<creationDate>9th March, 2024</creationDate>
|
||||||
<author>Llewellyn van der Merwe</author>
|
<author>Llewellyn van der Merwe</author>
|
||||||
<authorEmail>joomla@vdm.io</authorEmail>
|
<authorEmail>joomla@vdm.io</authorEmail>
|
||||||
<authorUrl>https://dev.vdm.io</authorUrl>
|
<authorUrl>https://dev.vdm.io</authorUrl>
|
||||||
<copyright>Copyright (C) 2015 Vast Development Method. All rights reserved.</copyright>
|
<copyright>Copyright (C) 2015 Vast Development Method. All rights reserved.</copyright>
|
||||||
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
|
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
|
||||||
<version>3.2.0-beta4</version>
|
<version>3.2.0-beta5</version>
|
||||||
<description><![CDATA[
|
<description><![CDATA[
|
||||||
<h1>Component Builder (v.3.2.0-beta4)</h1>
|
<h1>Component Builder (v.3.2.0-beta5)</h1>
|
||||||
<div style="clear: both;"></div>
|
<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.
|
<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.
|
||||||
|
|
||||||
|
@ -1595,4 +1595,22 @@
|
|||||||
<maintainerurl>https://dev.vdm.io</maintainerurl>
|
<maintainerurl>https://dev.vdm.io</maintainerurl>
|
||||||
<targetplatform name="joomla" version="3.*"/>
|
<targetplatform name="joomla" version="3.*"/>
|
||||||
</update>
|
</update>
|
||||||
|
<update>
|
||||||
|
<name>Component Builder</name>
|
||||||
|
<description>Builds Complex Joomla Components</description>
|
||||||
|
<element>pkg_component_builder</element>
|
||||||
|
<type>package</type>
|
||||||
|
<client>site</client>
|
||||||
|
<version>3.2.0-beta5</version>
|
||||||
|
<infourl title="Component Builder!">https://dev.vdm.io</infourl>
|
||||||
|
<downloads>
|
||||||
|
<downloadurl type="full" format="zip">https://git.vdm.dev/api/v1/repos/joomla/pkg-component-builder/archive/v3.2.0-beta5.zip</downloadurl>
|
||||||
|
</downloads>
|
||||||
|
<tags>
|
||||||
|
<tag>beta</tag>
|
||||||
|
</tags>
|
||||||
|
<maintainer>Llewellyn van der Merwe</maintainer>
|
||||||
|
<maintainerurl>https://dev.vdm.io</maintainerurl>
|
||||||
|
<targetplatform name="joomla" version="3.*"/>
|
||||||
|
</update>
|
||||||
</updates>
|
</updates>
|
@ -645,21 +645,48 @@ final class CustomFieldTypeFile
|
|||||||
|
|
||||||
$core_fields = $this->corefield->get();
|
$core_fields = $this->corefield->get();
|
||||||
$extends = $this->extends;
|
$extends = $this->extends;
|
||||||
|
$found = null;
|
||||||
foreach ($core_fields as $core_field)
|
foreach ($core_fields as $core_field)
|
||||||
{
|
{
|
||||||
$field = strtolower((string) $core_field);
|
$field = strtolower((string) $core_field);
|
||||||
if ($extends === $field)
|
if ($extends === $field)
|
||||||
{
|
{
|
||||||
$this->fieldmap[$extends] = $core_field;
|
$found = $core_field;
|
||||||
|
break;
|
||||||
return $core_field;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->fieldmap[$extends] = StringHelper::safe($extends, 'F');
|
$extends = $found ?? StringHelper::safe($extends, 'F');
|
||||||
|
|
||||||
return $this->fieldmap[$extends];
|
if ($this->config->get('joomla_version', 3) != 3)
|
||||||
|
{
|
||||||
|
$fix = strtolower($extends);
|
||||||
|
|
||||||
|
if ('checkboxes' === $fix)
|
||||||
|
{
|
||||||
|
$extends = 'CheckboxesField';
|
||||||
|
}
|
||||||
|
elseif ('list' === $fix)
|
||||||
|
{
|
||||||
|
$extends = 'FormField';
|
||||||
|
}
|
||||||
|
elseif ('radio' === $fix)
|
||||||
|
{
|
||||||
|
$extends = 'RadioField';
|
||||||
|
}
|
||||||
|
elseif ('combo' === $fix)
|
||||||
|
{
|
||||||
|
$extends = 'ComboField';
|
||||||
|
}
|
||||||
|
elseif (strpos($extends, 'Field') === false)
|
||||||
|
{
|
||||||
|
$extends = StringHelper::safe($extends, 'F') . 'Field';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->fieldmap[$this->extends] = $extends;
|
||||||
|
|
||||||
|
return $extends;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -600,6 +600,13 @@ class Infusion extends Interpretation
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// AJAXTOKE <<<DYNAMIC>>>
|
||||||
|
CFactory::_('Compiler.Builder.Content.Multi')->set($nameSingleCode . '|AJAXTOKE',
|
||||||
|
$this->setAjaxToke(
|
||||||
|
$nameSingleCode
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
// add css to front end
|
// add css to front end
|
||||||
if (isset($view['edit_create_site_view'])
|
if (isset($view['edit_create_site_view'])
|
||||||
&& is_numeric($view['edit_create_site_view'])
|
&& is_numeric($view['edit_create_site_view'])
|
||||||
@ -681,6 +688,13 @@ class Infusion extends Interpretation
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// JQUERY <<<DYNAMIC>>>
|
||||||
|
CFactory::_('Compiler.Builder.Content.Multi')->set($nameSingleCode . '|JQUERY',
|
||||||
|
$this->setJquery(
|
||||||
|
$nameSingleCode
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
// Trigger Event: jcb_ce_onAfterBuildAdminEditViewContent
|
// Trigger Event: jcb_ce_onAfterBuildAdminEditViewContent
|
||||||
CFactory::_('Event')->trigger(
|
CFactory::_('Event')->trigger(
|
||||||
'jcb_ce_onAfterBuildAdminEditViewContent',[&$view, &$nameSingleCode, &$nameListCode]
|
'jcb_ce_onAfterBuildAdminEditViewContent',[&$view, &$nameSingleCode, &$nameListCode]
|
||||||
@ -1015,6 +1029,13 @@ class Infusion extends Interpretation
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// JQUERY <<<DYNAMIC>>>
|
||||||
|
CFactory::_('Compiler.Builder.Content.Multi')->set($nameListCode . '|JQUERY',
|
||||||
|
$this->setJquery(
|
||||||
|
$nameSingleCode
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
// Trigger Event: jcb_ce_onAfterBuildAdminListViewContent
|
// Trigger Event: jcb_ce_onAfterBuildAdminListViewContent
|
||||||
CFactory::_('Event')->trigger(
|
CFactory::_('Event')->trigger(
|
||||||
'jcb_ce_onAfterBuildAdminListViewContent', [&$view, &$nameSingleCode, &$nameListCode]
|
'jcb_ce_onAfterBuildAdminListViewContent', [&$view, &$nameSingleCode, &$nameListCode]
|
||||||
|
@ -5654,7 +5654,7 @@ class Interpretation extends Fields
|
|||||||
. " Add the needed Javascript to insure that the buttons work.";
|
. " Add the needed Javascript to insure that the buttons work.";
|
||||||
$script[] = Indent::_(2) . "Html::_('behavior.framework', true);";
|
$script[] = Indent::_(2) . "Html::_('behavior.framework', true);";
|
||||||
$script[] = Indent::_(2)
|
$script[] = Indent::_(2)
|
||||||
. "\$this->document->addScriptDeclaration(\"Joomla.submitbutton = function(task){if (task == ''){ return false; } else { Joomla.submitform(task); return true; }}\");";
|
. "\$this->getDocument()->addScriptDeclaration(\"Joomla.submitbutton = function(task){if (task == ''){ return false; } else { Joomla.submitform(task); return true; }}\");";
|
||||||
|
|
||||||
// return the script
|
// return the script
|
||||||
return PHP_EOL . implode(PHP_EOL, $script);
|
return PHP_EOL . implode(PHP_EOL, $script);
|
||||||
@ -5780,7 +5780,7 @@ class Interpretation extends Fields
|
|||||||
$script = PHP_EOL . Indent::_(2) . "//" . Line::_(
|
$script = PHP_EOL . Indent::_(2) . "//" . Line::_(
|
||||||
__LINE__,__CLASS__
|
__LINE__,__CLASS__
|
||||||
) . " Set the Custom JS script to view" . PHP_EOL
|
) . " Set the Custom JS script to view" . PHP_EOL
|
||||||
. Indent::_(2) . '$this->document->addScriptDeclaration("';
|
. Indent::_(2) . '$this->getDocument()->addScriptDeclaration("';
|
||||||
$jsDocument = PHP_EOL . Indent::_(3) . str_replace(
|
$jsDocument = PHP_EOL . Indent::_(3) . str_replace(
|
||||||
'"', '\"', implode(
|
'"', '\"', implode(
|
||||||
PHP_EOL . Indent::_(3),
|
PHP_EOL . Indent::_(3),
|
||||||
@ -17760,6 +17760,19 @@ class Interpretation extends Fields
|
|||||||
return $methods;
|
return $methods;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function setJquery(&$view)
|
||||||
|
{
|
||||||
|
$addJQuery = '';
|
||||||
|
if (true) // TODO we just add it everywhere for now.
|
||||||
|
{
|
||||||
|
$addJQuery .= PHP_EOL . Indent::_(2) . "//" . Line::_(__Line__, __Class__)
|
||||||
|
. " Load jQuery";
|
||||||
|
$addJQuery .= PHP_EOL . Indent::_(2) . "Html::_('jquery.framework');";
|
||||||
|
}
|
||||||
|
|
||||||
|
return $addJQuery;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* build filter functions
|
* build filter functions
|
||||||
*
|
*
|
||||||
|
@ -73,7 +73,7 @@ final class Load
|
|||||||
{
|
{
|
||||||
return $this->model->value(
|
return $this->model->value(
|
||||||
$this->load->value(
|
$this->load->value(
|
||||||
["a.${field}" => $field],
|
["a.{$field}" => $field],
|
||||||
['a' => 'power'],
|
['a' => 'power'],
|
||||||
$this->prefix($keys)
|
$this->prefix($keys)
|
||||||
),
|
),
|
||||||
|
@ -55,10 +55,9 @@ class Insert implements InsertInterface
|
|||||||
/**
|
/**
|
||||||
* Database object to query local DB
|
* Database object to query local DB
|
||||||
*
|
*
|
||||||
* @var \JDatabaseDriver
|
|
||||||
* @since 3.2.0
|
* @since 3.2.0
|
||||||
**/
|
**/
|
||||||
protected \JDatabaseDriver $db;
|
protected $db;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
@ -66,17 +65,16 @@ class Insert implements InsertInterface
|
|||||||
* @param Config|null $config The search config object.
|
* @param Config|null $config The search config object.
|
||||||
* @param Table|null $table The search table object.
|
* @param Table|null $table The search table object.
|
||||||
* @param Model|null $model The search get model object.
|
* @param Model|null $model The search get model object.
|
||||||
* @param \JDatabaseDriver|null $db The database object.
|
|
||||||
*
|
*
|
||||||
* @since 3.2.0
|
* @since 3.2.0
|
||||||
*/
|
*/
|
||||||
public function __construct(?Config $config = null, ?Table $table = null,
|
public function __construct(?Config $config = null, ?Table $table = null,
|
||||||
?Model $model = null, ?\JDatabaseDriver $db = null)
|
?Model $model = null)
|
||||||
{
|
{
|
||||||
$this->config = $config ?: Factory::_('Config');
|
$this->config = $config ?: Factory::_('Config');
|
||||||
$this->table = $table ?: Factory::_('Table');
|
$this->table = $table ?: Factory::_('Table');
|
||||||
$this->model = $model ?: Factory::_('Insert.Model');
|
$this->model = $model ?: Factory::_('Insert.Model');
|
||||||
$this->db = $db ?: JoomlaFactory::getDbo();
|
$this->db = JoomlaFactory::getDbo();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -119,13 +119,35 @@ class Load extends Model implements ModelInterface
|
|||||||
*/
|
*/
|
||||||
protected function validateAfter(&$value, ?string $field = null, ?string $table = null): bool
|
protected function validateAfter(&$value, ?string $field = null, ?string $table = null): bool
|
||||||
{
|
{
|
||||||
|
// Start note to self
|
||||||
|
// Yes we don't search in the field->xml (field) PHP because the xml is messy
|
||||||
|
// first of all we need to change that storage method :((( seriously
|
||||||
|
// and the actual PHP is stored in the xml as base64 with a [__.o0=base64=Oo.__] key in front of it
|
||||||
|
// if I can go back and drag you around by your ear... I will, but okay you did not know better.
|
||||||
|
// Listen you have tried to fix this a few times already (I lost count) and by the time you realize how it works
|
||||||
|
// two hours have been wasted, and you usually only then realize why it's not fixed in the first place... o boy... just walk now!
|
||||||
|
// since unless you have three days don't even look further, this is a huge issue/mess
|
||||||
|
// and while I agree it needs fixing, it will not take a few hours... but days
|
||||||
|
// End note to self
|
||||||
|
|
||||||
// check values
|
// check values
|
||||||
if (StringHelper::check($value) || ArrayHelper::check($value, true))
|
if (StringHelper::check($value) || ArrayHelper::check($value, true))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove empty values
|
// remove empty values
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
// Start another note to self
|
||||||
|
// If you're still here
|
||||||
|
// the problem is not opening the PHP in the xml,
|
||||||
|
// it is storing it with the updated changes... if any are made via the search-update methods
|
||||||
|
// so the only way to fix this is to change the whole way the xml values in the field table is stored.
|
||||||
|
// Yes, that is right... all the way back to the field view... and then to update all places you open that xml values
|
||||||
|
// and get the values out of the xml string and use them, and if you've forgotten, that is nearly everywhere,
|
||||||
|
// and so let the refactoring of the foundation begin... there I saved you another 3 hours.
|
||||||
|
// End another note to self
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -75,24 +75,24 @@ abstract class FormHelper
|
|||||||
// element was not returned
|
// element was not returned
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
switch (get_class($node))
|
|
||||||
|
if ($node instanceof \stdClass)
|
||||||
{
|
{
|
||||||
case 'stdClass':
|
if (property_exists($node, 'comment'))
|
||||||
if (property_exists($node, 'comment'))
|
{
|
||||||
{
|
self::comment($xml, $node->comment);
|
||||||
self::comment($xml, $node->comment);
|
}
|
||||||
}
|
if (property_exists($node, 'fieldXML'))
|
||||||
if (property_exists($node, 'fieldXML'))
|
{
|
||||||
{
|
self::append($xml, $node->fieldXML);
|
||||||
self::append($xml, $node->fieldXML);
|
}
|
||||||
}
|
}
|
||||||
break;
|
elseif ($node instanceof \SimpleXMLElement)
|
||||||
case 'SimpleXMLElement':
|
{
|
||||||
$domXML = \dom_import_simplexml($xml);
|
$domXML = \dom_import_simplexml($xml);
|
||||||
$domNode = \dom_import_simplexml($node);
|
$domNode = \dom_import_simplexml($node);
|
||||||
$domXML->appendChild($domXML->ownerDocument->importNode($domNode, true));
|
$domXML->appendChild($domXML->ownerDocument->importNode($domNode, true));
|
||||||
$xml = \simplexml_import_dom($domXML);
|
$xml = \simplexml_import_dom($domXML);
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,7 +127,7 @@ abstract class FormHelper
|
|||||||
{
|
{
|
||||||
foreach ($attributes as $key => $value)
|
foreach ($attributes as $key => $value)
|
||||||
{
|
{
|
||||||
$xml->addAttribute($key, $value);
|
$xml->addAttribute($key, $value ?? '');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -145,7 +145,7 @@ abstract class FormHelper
|
|||||||
foreach ($options as $key => $value)
|
foreach ($options as $key => $value)
|
||||||
{
|
{
|
||||||
$addOption = $xml->addChild('option');
|
$addOption = $xml->addChild('option');
|
||||||
$addOption->addAttribute('value', $key);
|
$addOption->addAttribute('value', $key ?? '');
|
||||||
$addOption[] = $value;
|
$addOption[] = $value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9618,7 +9618,7 @@ class Com_ComponentbuilderInstallerScript
|
|||||||
echo '<div style="background-color: #fff;" class="alert alert-info"><a target="_blank" href="https://dev.vdm.io" title="Component Builder">
|
echo '<div style="background-color: #fff;" class="alert alert-info"><a target="_blank" href="https://dev.vdm.io" title="Component Builder">
|
||||||
<img src="components/com_componentbuilder/assets/images/vdm-component.jpg"/>
|
<img src="components/com_componentbuilder/assets/images/vdm-component.jpg"/>
|
||||||
</a>
|
</a>
|
||||||
<h3>Upgrade to Version 3.2.0-beta4 Was Successful! Let us know if anything is not working as expected.</h3></div>';
|
<h3>Upgrade to Version 3.2.0-beta5 Was Successful! Let us know if anything is not working as expected.</h3></div>';
|
||||||
|
|
||||||
// Set db if not set already.
|
// Set db if not set already.
|
||||||
if (!isset($db))
|
if (!isset($db))
|
||||||
|
Loading…
Reference in New Issue
Block a user