forked from joomla/Component-Builder
Release of v4.0.0-alpha7
Fix the search area layout. Fix the search area code line selection. Fix the input edit button for custom fields. Add the new layout to list fields (GUI UPDATE). Start fixing the field view in Joomla 4. #1096.
This commit is contained in:
parent
543fb2b2e2
commit
23af2f0b29
15
CHANGELOG.md
15
CHANGELOG.md
@ -1,3 +1,11 @@
|
||||
# v4.0.0-alpha7
|
||||
|
||||
- Fix the search area layout.
|
||||
- Fix the search area code line selection.
|
||||
- Fix the input edit button for custom fields.
|
||||
- Add the new layout to list fields (GUI UPDATE)
|
||||
- Start fixing the field view in Joomla 4. #1096
|
||||
|
||||
# v4.0.0-alpha6
|
||||
|
||||
- Fix [Set String Value] in placeholder table to store the value as a base64 string.
|
||||
@ -29,6 +37,9 @@
|
||||
|
||||
- First alpha release of Component Builder towards Joomla 4 (very unstable...)
|
||||
|
||||
# v3.2.0-beta9
|
||||
# v3.2.0-beta10
|
||||
|
||||
- Fix [Set String Value] in placeholder table to store the value as a base64 string.
|
||||
- Fix the search area layout.
|
||||
- Fix the search area code line selection.
|
||||
- Fix the input edit button for custom fields.
|
||||
- Add the new layout to list fields (GUI UPDATE)
|
@ -497,9 +497,6 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
||||
// Remove Joomla_plugin_files_folders_urls from action logs config table.
|
||||
$this->removeActionLogConfig('com_componentbuilder.joomla_plugin_files_folders_urls');
|
||||
|
||||
// Remove Field from action logs config table.
|
||||
$this->removeActionLogConfig('com_componentbuilder.field');
|
||||
|
||||
// Remove Joomla_component from action logs config table.
|
||||
$this->removeActionLogConfig('com_componentbuilder.joomla_component');
|
||||
// little notice as after service, in case of bad experience with component.
|
||||
@ -2255,22 +2252,6 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
||||
'COM_COMPONENTBUILDER'
|
||||
);
|
||||
|
||||
// Add Field to the action logs config table.
|
||||
$this->setActionLogConfig(
|
||||
// typeTitle
|
||||
'FIELD',
|
||||
// typeAlias
|
||||
'com_componentbuilder.field',
|
||||
// idHolder
|
||||
'id',
|
||||
// titleHolder
|
||||
'name',
|
||||
// tableName
|
||||
'#__componentbuilder_field',
|
||||
// textPrefix
|
||||
'COM_COMPONENTBUILDER'
|
||||
);
|
||||
|
||||
// Add Joomla_component to the action logs config table.
|
||||
$this->setActionLogConfig(
|
||||
// typeTitle
|
||||
@ -3165,7 +3146,7 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
||||
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"/>
|
||||
</a>
|
||||
<h3>Upgrade to Version 4.0.0-alpha6 Was Successful! Let us know if anything is not working as expected.</h3></div>';
|
||||
<h3>Upgrade to Version 4.0.0-alpha7 Was Successful! Let us know if anything is not working as expected.</h3></div>';
|
||||
|
||||
// Add/Update component in the action logs extensions table.
|
||||
$this->setActionLogsExtensions();
|
||||
@ -3954,22 +3935,6 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
||||
'COM_COMPONENTBUILDER'
|
||||
);
|
||||
|
||||
// Add/Update Field in the action logs config table.
|
||||
$this->setActionLogConfig(
|
||||
// typeTitle
|
||||
'FIELD',
|
||||
// typeAlias
|
||||
'com_componentbuilder.field',
|
||||
// idHolder
|
||||
'id',
|
||||
// titleHolder
|
||||
'name',
|
||||
// tableName
|
||||
'#__componentbuilder_field',
|
||||
// textPrefix
|
||||
'COM_COMPONENTBUILDER'
|
||||
);
|
||||
|
||||
// Add/Update Joomla_component in the action logs config table.
|
||||
$this->setActionLogConfig(
|
||||
// typeTitle
|
||||
|
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!
|
||||
|
||||
You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (4.0.0-alpha6) 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 (4.0.0-alpha7) with **ALL** its features and **ALL** concepts totally open-source and free!
|
||||
|
||||
> Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
||||
|
||||
@ -144,13 +144,13 @@ TODO
|
||||
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
|
||||
+ *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder)
|
||||
+ *First Build*: 30th April, 2015
|
||||
+ *Last Build*: 20th March, 2024
|
||||
+ *Version*: 4.0.0-alpha6
|
||||
+ *Last Build*: 26th March, 2024
|
||||
+ *Version*: 4.0.0-alpha7
|
||||
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
||||
+ *Line count*: **725042**
|
||||
+ *Line count*: **728994**
|
||||
+ *Field count*: **2078**
|
||||
+ *File count*: **5120**
|
||||
+ *File count*: **5126**
|
||||
+ *Folder count*: **518**
|
||||
|
||||
> 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!
|
||||
|
||||
You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (4.0.0-alpha6) 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 (4.0.0-alpha7) with **ALL** its features and **ALL** concepts totally open-source and free!
|
||||
|
||||
> Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
||||
|
||||
@ -144,13 +144,13 @@ TODO
|
||||
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
|
||||
+ *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder)
|
||||
+ *First Build*: 30th April, 2015
|
||||
+ *Last Build*: 20th March, 2024
|
||||
+ *Version*: 4.0.0-alpha6
|
||||
+ *Last Build*: 26th March, 2024
|
||||
+ *Version*: 4.0.0-alpha7
|
||||
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
||||
+ *Line count*: **725042**
|
||||
+ *Line count*: **728994**
|
||||
+ *Field count*: **2078**
|
||||
+ *File count*: **5120**
|
||||
+ *File count*: **5126**
|
||||
+ *Folder count*: **518**
|
||||
|
||||
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](https://www.joomlacomponentbuilder.com).
|
||||
|
@ -453,13 +453,14 @@ const addSelectedItem = async (value, table, row, field, line) => {
|
||||
// show and set the save button
|
||||
buttonUpdateItemObject.style.display = '';
|
||||
buttonUpdateItemObject.setAttribute('onclick',"setValueCheck(" + row + ", '" + field + "', '" + table + "');");
|
||||
|
||||
// get top of the code line
|
||||
let top = editorObject.charCoords({line: line, ch: 0}, "local").top;
|
||||
// scroll to the line
|
||||
editorObject.scrollTo(null, top - 12);
|
||||
// select the line
|
||||
editorObject.setCursor(line - 1);
|
||||
// Get line info from current state.
|
||||
const line_info = editorObject.instance.state.doc.line(line);
|
||||
editorObject.instance.dispatch({
|
||||
// Set selection to that entire line.
|
||||
selection: { head: line_info.from, anchor: line_info.to },
|
||||
// Ensure the selection is shown in viewport
|
||||
scrollIntoView: true
|
||||
});
|
||||
} else {
|
||||
// no line so no data we can't save this data
|
||||
buttonUpdateItemObject.setAttribute('onclick', "");
|
||||
|
@ -1012,6 +1012,7 @@
|
||||
name="language"
|
||||
label="COM_COMPONENTBUILDER_CONFIG_LANGUAGE_LABEL"
|
||||
class="list_class"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="false"
|
||||
default="en-GB"
|
||||
required="true"
|
||||
|
@ -874,6 +874,7 @@
|
||||
label="COM_COMPONENTBUILDER_ADMIN_VIEW_ALIAS_BUILDER_LABEL"
|
||||
description="COM_COMPONENTBUILDER_ADMIN_VIEW_ALIAS_BUILDER_DESCRIPTION"
|
||||
class="list_class fieldFull"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="true"
|
||||
showon="alias_builder_type:2"
|
||||
/>
|
||||
|
@ -344,8 +344,8 @@
|
||||
name="custom_get"
|
||||
label="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_CUSTOM_GET_LABEL"
|
||||
description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_CUSTOM_GET_DESCRIPTION"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="true"
|
||||
default=""
|
||||
/>
|
||||
<!-- Add_javascript_file Field. Type: Radio. (joomla) -->
|
||||
<field
|
||||
@ -455,6 +455,7 @@
|
||||
label="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_LIBRARIES_LABEL"
|
||||
description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_LIBRARIES_DESCRIPTION"
|
||||
class="list_class"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="true"
|
||||
default="0"
|
||||
required="false"
|
||||
|
@ -279,6 +279,7 @@
|
||||
label="COM_COMPONENTBUILDER_DYNAMIC_GET_DB_TABLE_MAIN_LABEL"
|
||||
description="COM_COMPONENTBUILDER_DYNAMIC_GET_DB_TABLE_MAIN_DESCRIPTION"
|
||||
class="list_class"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="false"
|
||||
required="true"
|
||||
button="false"
|
||||
|
@ -148,6 +148,7 @@
|
||||
label="COM_COMPONENTBUILDER_HELP_DOCUMENT_ADMIN_VIEW_LABEL"
|
||||
description="COM_COMPONENTBUILDER_HELP_DOCUMENT_ADMIN_VIEW_DESCRIPTION"
|
||||
class="list_class"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="false"
|
||||
default=""
|
||||
required="true"
|
||||
@ -160,6 +161,7 @@
|
||||
label="COM_COMPONENTBUILDER_HELP_DOCUMENT_SITE_VIEW_LABEL"
|
||||
description="COM_COMPONENTBUILDER_HELP_DOCUMENT_SITE_VIEW_DESCRIPTION"
|
||||
class="list_class"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="false"
|
||||
required="true"
|
||||
button="false"
|
||||
@ -186,6 +188,7 @@
|
||||
name="article"
|
||||
label="COM_COMPONENTBUILDER_HELP_DOCUMENT_ARTICLE_LABEL"
|
||||
class="list_class"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="false"
|
||||
default="0"
|
||||
required="true"
|
||||
|
@ -1072,6 +1072,7 @@
|
||||
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DASHBOARD_LABEL"
|
||||
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DASHBOARD_DESCRIPTION"
|
||||
class="fieldMedium"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="false"
|
||||
default=""
|
||||
/>
|
||||
|
@ -328,6 +328,7 @@
|
||||
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_LIBRARIES_LABEL"
|
||||
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_LIBRARIES_DESCRIPTION"
|
||||
class="list_class"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="true"
|
||||
default="0"
|
||||
required="false"
|
||||
@ -367,8 +368,8 @@
|
||||
name="custom_get"
|
||||
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_CUSTOM_GET_LABEL"
|
||||
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_CUSTOM_GET_DESCRIPTION"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="true"
|
||||
default=""
|
||||
/>
|
||||
<!-- Php_preflight_update Field. Type: Editor. (joomla) -->
|
||||
<field
|
||||
|
@ -117,6 +117,7 @@
|
||||
name="plugins"
|
||||
label="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_PLUGINS_LABEL"
|
||||
class="list_class span12"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="true"
|
||||
default="0"
|
||||
button="true"
|
||||
@ -127,6 +128,7 @@
|
||||
name="modules"
|
||||
label="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_MODULES_LABEL"
|
||||
class="list_class span12"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="true"
|
||||
default="0"
|
||||
button="true"
|
||||
@ -137,6 +139,7 @@
|
||||
name="components"
|
||||
label="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_COMPONENTS_LABEL"
|
||||
class="list_class span12"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="true"
|
||||
default="0"
|
||||
button="false"
|
||||
@ -170,6 +173,7 @@
|
||||
name="language"
|
||||
label="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_LANGUAGE_LABEL"
|
||||
class="list_class"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="false"
|
||||
default="en-GB"
|
||||
required="true"
|
||||
|
@ -218,6 +218,7 @@
|
||||
label="COM_COMPONENTBUILDER_LAYOUT_LIBRARIES_LABEL"
|
||||
description="COM_COMPONENTBUILDER_LAYOUT_LIBRARIES_DESCRIPTION"
|
||||
class="list_class"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="true"
|
||||
default="0"
|
||||
required="false"
|
||||
|
@ -196,6 +196,7 @@
|
||||
label="COM_COMPONENTBUILDER_LIBRARY_LIBRARIES_LABEL"
|
||||
description="COM_COMPONENTBUILDER_LIBRARY_LIBRARIES_DESCRIPTION"
|
||||
class="list_class"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="true"
|
||||
default="0"
|
||||
required="false"
|
||||
|
@ -313,6 +313,7 @@
|
||||
label="COM_COMPONENTBUILDER_POWER_EXTENDS_LABEL"
|
||||
description="COM_COMPONENTBUILDER_POWER_EXTENDS_DESCRIPTION"
|
||||
class="list_class span12"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="false"
|
||||
default="0"
|
||||
showon="type:class[OR]type:abstract class[OR]type:final class"
|
||||
@ -408,6 +409,7 @@
|
||||
label="COM_COMPONENTBUILDER_POWER_IMPLEMENTS_LABEL"
|
||||
description="COM_COMPONENTBUILDER_POWER_IMPLEMENTS_DESCRIPTION"
|
||||
class="list_class span12"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="true"
|
||||
default="0"
|
||||
showon="type!:interface[AND]type!:trait"
|
||||
|
@ -316,8 +316,8 @@
|
||||
name="custom_get"
|
||||
label="COM_COMPONENTBUILDER_SITE_VIEW_CUSTOM_GET_LABEL"
|
||||
description="COM_COMPONENTBUILDER_SITE_VIEW_CUSTOM_GET_DESCRIPTION"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="true"
|
||||
default=""
|
||||
/>
|
||||
<!-- Note_linked_to_notice Field. Type: Note. A None Database Field. (joomla) -->
|
||||
<field type="note" name="note_linked_to_notice" label="COM_COMPONENTBUILDER_SITE_VIEW_NOTE_LINKED_TO_NOTICE_LABEL" description="COM_COMPONENTBUILDER_SITE_VIEW_NOTE_LINKED_TO_NOTICE_DESCRIPTION" heading="h4" class="note_linked_to_notice" />
|
||||
@ -419,6 +419,7 @@
|
||||
label="COM_COMPONENTBUILDER_SITE_VIEW_LIBRARIES_LABEL"
|
||||
description="COM_COMPONENTBUILDER_SITE_VIEW_LIBRARIES_DESCRIPTION"
|
||||
class="list_class"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="true"
|
||||
default="0"
|
||||
required="false"
|
||||
|
@ -218,6 +218,7 @@
|
||||
label="COM_COMPONENTBUILDER_TEMPLATE_LIBRARIES_LABEL"
|
||||
description="COM_COMPONENTBUILDER_TEMPLATE_LIBRARIES_DESCRIPTION"
|
||||
class="list_class"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="true"
|
||||
default="0"
|
||||
required="false"
|
||||
|
@ -128,6 +128,7 @@
|
||||
label="COM_COMPONENTBUILDER_VALIDATION_RULE_INHERIT_LABEL"
|
||||
description="COM_COMPONENTBUILDER_VALIDATION_RULE_INHERIT_DESCRIPTION"
|
||||
class="list_class"
|
||||
layout="joomla.form.field.list-fancy-select"
|
||||
multiple="false"
|
||||
default="0"
|
||||
required="false"
|
||||
|
@ -13,6 +13,8 @@ use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\HTML\HTMLHelper as Html;
|
||||
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
|
||||
use VDM\Joomla\Utilities\StringHelper;
|
||||
use VDM\Joomla\Utilities\ArrayHelper;
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die;
|
||||
@ -21,9 +23,151 @@ defined('_JEXEC') or die;
|
||||
$items = $displayData->vycfields;
|
||||
$user = Factory::getApplication()->getIdentity();
|
||||
$id = $displayData->item->id;
|
||||
|
||||
// set the edit URL
|
||||
$edit = "index.php?option=com_componentbuilder&view=fields&task=field.edit";
|
||||
// set a return value
|
||||
$return = ($id) ? "index.php?option=com_componentbuilder&view=fieldtype&layout=edit&id=" . $id : "";
|
||||
// check for a return value
|
||||
$jinput = Factory::getApplication()->input;
|
||||
if ($_return = $jinput->get('return', null, 'base64'))
|
||||
{
|
||||
$return .= "&return=" . $_return;
|
||||
}
|
||||
// check if return value was set
|
||||
if (StringHelper::check($return))
|
||||
{
|
||||
// set the referral values
|
||||
$ref = ($id) ? "&ref=fieldtype&refid=" . $id . "&return=" . urlencode(base64_encode($return)) : "&return=" . urlencode(base64_encode($return));
|
||||
}
|
||||
else
|
||||
{
|
||||
$ref = ($id) ? "&ref=fieldtype&refid=" . $id : "";
|
||||
}
|
||||
// set the create new URL
|
||||
$new = "index.php?option=com_componentbuilder&view=fields&task=field.edit" . $ref;
|
||||
// set the create new and close URL
|
||||
$close_new = "index.php?option=com_componentbuilder&view=fields&task=field.edit";
|
||||
// load the action object
|
||||
$can = ComponentbuilderHelper::getActions('field');
|
||||
|
||||
?>
|
||||
<div class="form-vertical">
|
||||
oops! error.....
|
||||
<?php if ($can->get('field.create')): ?>
|
||||
<div class="btn-group">
|
||||
<a class="btn btn-small btn-success" href="<?php echo $new; ?>"><span class="icon-new icon-white"></span> <?php echo Text::_('COM_COMPONENTBUILDER_NEW'); ?></a>
|
||||
<a class="btn btn-small" onclick="Joomla.submitbutton('fieldtype.cancel');" href="<?php echo $close_new; ?>"><span class="icon-new"></span> <?php echo Text::_('COM_COMPONENTBUILDER_CLOSE_NEW'); ?></a>
|
||||
</div><br /><br />
|
||||
<?php endif; ?>
|
||||
<?php if (ArrayHelper::check($items)): ?>
|
||||
<table class="footable table data fields" data-show-toggle="true" data-toggle-column="first" data-sorting="true" data-paging="true" data-paging-size="20" data-filtering="true">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-type="html" data-sort-use="text">
|
||||
<?php echo Text::_('COM_COMPONENTBUILDER_FIELD_NAME_LABEL'); ?>
|
||||
</th>
|
||||
<th data-breakpoints="xs sm" data-type="html" data-sort-use="text">
|
||||
<?php echo Text::_('COM_COMPONENTBUILDER_FIELD_FIELDTYPE_LABEL'); ?>
|
||||
</th>
|
||||
<th data-breakpoints="xs sm" data-type="html" data-sort-use="text">
|
||||
<?php echo Text::_('COM_COMPONENTBUILDER_FIELD_DATATYPE_LABEL'); ?>
|
||||
</th>
|
||||
<th data-breakpoints="xs sm md" data-type="html" data-sort-use="text">
|
||||
<?php echo Text::_('COM_COMPONENTBUILDER_FIELD_INDEXES_LABEL'); ?>
|
||||
</th>
|
||||
<th data-breakpoints="xs sm md" data-type="html" data-sort-use="text">
|
||||
<?php echo Text::_('COM_COMPONENTBUILDER_FIELD_NULL_SWITCH_LABEL'); ?>
|
||||
</th>
|
||||
<th data-breakpoints="xs sm md" data-type="html" data-sort-use="text">
|
||||
<?php echo Text::_('COM_COMPONENTBUILDER_FIELD_STORE_LABEL'); ?>
|
||||
</th>
|
||||
<th data-breakpoints="all" data-type="html" data-sort-use="text">
|
||||
<?php echo Text::_('COM_COMPONENTBUILDER_FIELD_FIELDS_CATEGORIES'); ?>
|
||||
</th>
|
||||
<th width="10" data-breakpoints="xs sm md">
|
||||
<?php echo Text::_('COM_COMPONENTBUILDER_FIELD_STATUS'); ?>
|
||||
</th>
|
||||
<th width="5" data-type="number" data-breakpoints="xs sm md">
|
||||
<?php echo Text::_('COM_COMPONENTBUILDER_FIELD_ID'); ?>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($items as $i => $item): ?>
|
||||
<?php
|
||||
$canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $user->id || $item->checked_out == 0;
|
||||
$userChkOut = Factory::getContainer()->
|
||||
get(\Joomla\CMS\User\UserFactoryInterface::class)->
|
||||
loadUserById($item->checked_out);
|
||||
$canDo = ComponentbuilderHelper::getActions('field',$item,'fields');
|
||||
?>
|
||||
<tr>
|
||||
<td>
|
||||
<?php if ($canDo->get('field.edit')): ?>
|
||||
<a href="<?php echo $edit; ?>&id=<?php echo $item->id; ?><?php echo $ref; ?>"><?php echo $displayData->escape($item->name); ?></a>
|
||||
<?php if ($item->checked_out): ?>
|
||||
<?php echo Html::_('jgrid.checkedout', $i, $userChkOut->name, $item->checked_out_time, 'fields.', $canCheckin); ?>
|
||||
<?php endif; ?>
|
||||
<?php else: ?>
|
||||
<?php echo $displayData->escape($item->name); ?>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php echo $displayData->escape($item->fieldtype_name); ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php echo Text::_($item->datatype); ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php echo Text::_($item->indexes); ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php echo Text::_($item->null_switch); ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php echo Text::_($item->store); ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php if ($user->authorise('core.edit', 'com_componentbuilder.field.category.' . (int)$item->catid)): ?>
|
||||
<a href="index.php?option=com_categories&task=category.edit&id=<?php echo (int)$item->catid; ?>&extension=com_componentbuilder.field"><?php echo $displayData->escape($item->category_title); ?></a>
|
||||
<?php else: ?>
|
||||
<?php echo $displayData->escape($item->category_title); ?>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
<?php if ($item->published == 1): ?>
|
||||
<td class="center" data-sort-value="1">
|
||||
<span class="status-metro status-published" title="<?php echo Text::_('COM_COMPONENTBUILDER_PUBLISHED'); ?>">
|
||||
<?php echo Text::_('COM_COMPONENTBUILDER_PUBLISHED'); ?>
|
||||
</span>
|
||||
</td>
|
||||
<?php elseif ($item->published == 0): ?>
|
||||
<td class="center" data-sort-value="2">
|
||||
<span class="status-metro status-inactive" title="<?php echo Text::_('COM_COMPONENTBUILDER_INACTIVE'); ?>">
|
||||
<?php echo Text::_('COM_COMPONENTBUILDER_INACTIVE'); ?>
|
||||
</span>
|
||||
</td>
|
||||
<?php elseif ($item->published == 2): ?>
|
||||
<td class="center" data-sort-value="3">
|
||||
<span class="status-metro status-archived" title="<?php echo Text::_('COM_COMPONENTBUILDER_ARCHIVED'); ?>">
|
||||
<?php echo Text::_('COM_COMPONENTBUILDER_ARCHIVED'); ?>
|
||||
</span>
|
||||
</td>
|
||||
<?php elseif ($item->published == -2): ?>
|
||||
<td class="center" data-sort-value="4">
|
||||
<span class="status-metro status-trashed" title="<?php echo Text::_('COM_COMPONENTBUILDER_TRASHED'); ?>">
|
||||
<?php echo Text::_('COM_COMPONENTBUILDER_TRASHED'); ?>
|
||||
</span>
|
||||
</td>
|
||||
<?php endif; ?>
|
||||
<td class="nowrap center hidden-phone">
|
||||
<?php echo $item->id; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php else: ?>
|
||||
<div class="alert alert-no-items">
|
||||
<?php echo Text::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
File diff suppressed because one or more lines are too long
1
admin/sql/updates/mysql/4.0.0-alpha6.sql
Normal file
1
admin/sql/updates/mysql/4.0.0-alpha6.sql
Normal file
@ -0,0 +1 @@
|
||||
|
@ -59,6 +59,7 @@ class ArticlesField extends ListField
|
||||
$options[] = Html::_('select.option', $item->id, $item->article_title . ' (' . $item->alias . ')');
|
||||
}
|
||||
}
|
||||
|
||||
return $options;
|
||||
}
|
||||
}
|
||||
|
@ -96,7 +96,7 @@ class ClassextendsField extends ListField
|
||||
if ($user->authorise('class_extends.edit', 'com_componentbuilder') && $app->isClient('administrator')) // TODO for now only in admin area.
|
||||
{
|
||||
// build edit button
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small btn-outline-success button-select hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
<span class="icon-edit"></span></a>';
|
||||
// build script
|
||||
$script[] = "
|
||||
|
@ -96,7 +96,7 @@ class ClasspowersField extends ListField
|
||||
if ($user->authorise('power.edit', 'com_componentbuilder') && $app->isClient('administrator')) // TODO for now only in admin area.
|
||||
{
|
||||
// build edit button
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small btn-outline-success button-select hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
<span class="icon-edit"></span></a>';
|
||||
// build script
|
||||
$script[] = "
|
||||
|
@ -61,6 +61,7 @@ class CustomgetsField extends ListField
|
||||
$options[] = Html::_('select.option', $item->id, $item->custom_get_name . ' (' . Text::_($type) . ')' );
|
||||
}
|
||||
}
|
||||
|
||||
return $options;
|
||||
}
|
||||
}
|
||||
|
@ -96,7 +96,7 @@ class DynamicgetField extends ListField
|
||||
if ($user->authorise('dynamic_get.edit', 'com_componentbuilder') && $app->isClient('administrator')) // TODO for now only in admin area.
|
||||
{
|
||||
// build edit button
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small btn-outline-success button-select hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
<span class="icon-edit"></span></a>';
|
||||
// build script
|
||||
$script[] = "
|
||||
|
@ -96,7 +96,7 @@ class ExcludedlanguagesField extends ListField
|
||||
if ($user->authorise('language.edit', 'com_componentbuilder') && $app->isClient('administrator')) // TODO for now only in admin area.
|
||||
{
|
||||
// build edit button
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small hasTooltip" title="'.Text::sprintf('PLG_CONTENT_COMPONENTBUILDERLANGUAGETABS_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small btn-outline-success button-select hasTooltip" title="'.Text::sprintf('PLG_CONTENT_COMPONENTBUILDERLANGUAGETABS_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
<span class="icon-edit"></span></a>';
|
||||
// build script
|
||||
$script[] = "
|
||||
|
@ -96,7 +96,7 @@ class FieldtypesField extends ListField
|
||||
if ($user->authorise('fieldtype.edit', 'com_componentbuilder') && $app->isClient('administrator')) // TODO for now only in admin area.
|
||||
{
|
||||
// build edit button
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small btn-outline-success button-select hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
<span class="icon-edit"></span></a>';
|
||||
// build script
|
||||
$script[] = "
|
||||
|
@ -96,7 +96,7 @@ class InterfacepowersField extends ListField
|
||||
if ($user->authorise('power.edit', 'com_componentbuilder') && $app->isClient('administrator')) // TODO for now only in admin area.
|
||||
{
|
||||
// build edit button
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small btn-outline-success button-select hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
<span class="icon-edit"></span></a>';
|
||||
// build script
|
||||
$script[] = "
|
||||
|
@ -96,7 +96,7 @@ class JoomlacomponentField extends ListField
|
||||
if ($user->authorise('joomla_component.edit', 'com_componentbuilder') && $app->isClient('administrator')) // TODO for now only in admin area.
|
||||
{
|
||||
// build edit button
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small btn-outline-success button-select hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
<span class="icon-edit"></span></a>';
|
||||
// build script
|
||||
$script[] = "
|
||||
|
@ -96,7 +96,7 @@ class JoomlaplugingroupsField extends ListField
|
||||
if ($user->authorise('core.edit', 'com_componentbuilder') && $app->isClient('administrator')) // TODO for now only in admin area.
|
||||
{
|
||||
// build edit button
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small btn-outline-success button-select hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
<span class="icon-edit"></span></a>';
|
||||
// build script
|
||||
$script[] = "
|
||||
|
@ -96,7 +96,7 @@ class JoomlapluginsField extends ListField
|
||||
if ($user->authorise('joomla_plugin.edit', 'com_componentbuilder') && $app->isClient('administrator')) // TODO for now only in admin area.
|
||||
{
|
||||
// build edit button
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small hasTooltip" title="'.Text::sprintf('PLG_EXTENSION_COMPONENTBUILDERPOWERSAUTOLOADERCOMPILER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small btn-outline-success button-select hasTooltip" title="'.Text::sprintf('PLG_EXTENSION_COMPONENTBUILDERPOWERSAUTOLOADERCOMPILER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
<span class="icon-edit"></span></a>';
|
||||
// build script
|
||||
$script[] = "
|
||||
|
@ -96,7 +96,7 @@ class LibrariesField extends ListField
|
||||
if ($user->authorise('library.edit', 'com_componentbuilder') && $app->isClient('administrator')) // TODO for now only in admin area.
|
||||
{
|
||||
// build edit button
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small btn-outline-success button-select hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
<span class="icon-edit"></span></a>';
|
||||
// build script
|
||||
$script[] = "
|
||||
|
@ -96,7 +96,7 @@ class LibrariesxField extends ListField
|
||||
if ($user->authorise('library.edit', 'com_componentbuilder') && $app->isClient('administrator')) // TODO for now only in admin area.
|
||||
{
|
||||
// build edit button
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small btn-outline-success button-select hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
<span class="icon-edit"></span></a>';
|
||||
// build script
|
||||
$script[] = "
|
||||
|
@ -96,7 +96,7 @@ class LibraryField extends ListField
|
||||
if ($user->authorise('library.edit', 'com_componentbuilder') && $app->isClient('administrator')) // TODO for now only in admin area.
|
||||
{
|
||||
// build edit button
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small btn-outline-success button-select hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
<span class="icon-edit"></span></a>';
|
||||
// build script
|
||||
$script[] = "
|
||||
|
@ -96,7 +96,7 @@ class MaingetsField extends ListField
|
||||
if ($user->authorise('dynamic_get.edit', 'com_componentbuilder') && $app->isClient('administrator')) // TODO for now only in admin area.
|
||||
{
|
||||
// build edit button
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small btn-outline-success button-select hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
<span class="icon-edit"></span></a>';
|
||||
// build script
|
||||
$script[] = "
|
||||
|
@ -96,7 +96,7 @@ class ServersField extends ListField
|
||||
if ($user->authorise('server.edit', 'com_componentbuilder') && $app->isClient('administrator')) // TODO for now only in admin area.
|
||||
{
|
||||
// build edit button
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small btn-outline-success button-select hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
<span class="icon-edit"></span></a>';
|
||||
// build script
|
||||
$script[] = "
|
||||
|
@ -96,7 +96,7 @@ class SnippetsField extends ListField
|
||||
if ($user->authorise('core.edit', 'com_componentbuilder') && $app->isClient('administrator')) // TODO for now only in admin area.
|
||||
{
|
||||
// build edit button
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small btn-outline-success button-select hasTooltip" title="'.Text::sprintf('COM_COMPONENTBUILDER_EDIT_S', $button_label).'" style="display: none; border-radius: 0px 4px 4px 0px;" href="#" >
|
||||
<span class="icon-edit"></span></a>';
|
||||
// build script
|
||||
$script[] = "
|
||||
|
@ -35,8 +35,10 @@ use VDM\Joomla\Utilities\StringHelper;
|
||||
use VDM\Joomla\Componentbuilder\Search\Factory as SearchFactory;
|
||||
use VDM\Joomla\Utilities\ArrayHelper as UtilitiesArrayHelper;
|
||||
use VDM\Joomla\Utilities\GetHelper;
|
||||
use VDM\Joomla\Utilities\GuidHelper;
|
||||
use VDM\Joomla\Utilities\Base64Helper;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Utilities\FieldHelper;
|
||||
use VDM\Joomla\Utilities\FormHelper;
|
||||
|
||||
// No direct access to this file
|
||||
\defined('_JEXEC') or die;
|
||||
@ -541,16 +543,16 @@ class AjaxModel extends ListModel
|
||||
// we get the plugin group, or the powers
|
||||
if ($key == 1)
|
||||
{
|
||||
return ComponentbuilderHelper::getVars('class_' . $type, $id, 'joomla_plugin_group', 'id');
|
||||
return GetHelper::vars('class_' . $type, $id, 'joomla_plugin_group', 'id');
|
||||
}
|
||||
elseif ($key == 2)
|
||||
{
|
||||
return ComponentbuilderHelper::getVars('class_' . $type, 'powers', 'extension_type', 'id');
|
||||
return GetHelper::vars('class_' . $type, 'powers', 'extension_type', 'id');
|
||||
}
|
||||
}
|
||||
elseif ('joomla_plugin_group' === $type)
|
||||
{
|
||||
return ComponentbuilderHelper::getVars($type, $id, 'class_extends', 'id');
|
||||
return GetHelper::vars($type, $id, 'class_extends', 'id');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -564,7 +566,6 @@ class AjaxModel extends ListModel
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// Used in admin_view
|
||||
protected $rowNumbers = array(
|
||||
'admin_fields_conditions' => 80,
|
||||
@ -1597,9 +1598,9 @@ class AjaxModel extends ListModel
|
||||
protected function linkedGuid($guid, $setGuid): bool
|
||||
{
|
||||
// check if GUID is valid
|
||||
if ($guid && ComponentbuilderHelper::validGUID($guid))
|
||||
if ($guid && GuidHelper::valid($guid))
|
||||
{
|
||||
if (is_string($setGuid) && ComponentbuilderHelper::validGUID($setGuid) && $guid === $setGuid)
|
||||
if (is_string($setGuid) && GuidHelper::valid($setGuid) && $guid === $setGuid)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@ -1617,7 +1618,7 @@ class AjaxModel extends ListModel
|
||||
* @var array
|
||||
* @since 3.0.13
|
||||
*/
|
||||
protected $viewid = array();
|
||||
protected $viewid = [];
|
||||
|
||||
/**
|
||||
* Get the view details via the session
|
||||
@ -1650,9 +1651,9 @@ class AjaxModel extends ListModel
|
||||
}
|
||||
}
|
||||
// set GUID if found
|
||||
if (($guid = ComponentbuilderHelper::get($vdm . '__guid')) !== false && method_exists('ComponentbuilderHelper', 'validGUID'))
|
||||
if (($guid = ComponentbuilderHelper::get($vdm . '__guid')) !== false)
|
||||
{
|
||||
if (ComponentbuilderHelper::validGUID($guid))
|
||||
if (GuidHelper::valid($guid))
|
||||
{
|
||||
$this->viewid[$call]['a_guid'] = $guid;
|
||||
}
|
||||
@ -3198,7 +3199,7 @@ class AjaxModel extends ListModel
|
||||
// get the full path to rule file
|
||||
$path = JPATH_LIBRARIES . '/src/Form/Rule/'.$name.'Rule.php';
|
||||
// get all the code
|
||||
if ($code = ComponentbuilderHelper::getFileContents($path))
|
||||
if ($code = FileHelper::getContent($path))
|
||||
{
|
||||
// remove the class details and the ending }
|
||||
$codeArray = (array) explode("FormRule\n{\n", $code);
|
||||
@ -3399,7 +3400,7 @@ class AjaxModel extends ListModel
|
||||
'filter' => 'RAW',
|
||||
'hint' => 'COM_COMPONENTBUILDER__ADD_YOUR_PHP_SCRIPT_HERE');
|
||||
// load the textarea attributes
|
||||
ComponentbuilderHelper::xmlAddAttributes($textareaXML, $textareaAttribute);
|
||||
FormHelper::attributes($textareaXML, $textareaAttribute);
|
||||
|
||||
// setup subform with values
|
||||
$textarea->setup($textareaXML, $default);
|
||||
@ -3424,7 +3425,7 @@ class AjaxModel extends ListModel
|
||||
'icon' => 'list',
|
||||
'max' => (UtilitiesArrayHelper::check($nameListOptions)) ? (int) count($nameListOptions) : 4);
|
||||
// load the subform attributes
|
||||
ComponentbuilderHelper::xmlAddAttributes($subformXML, $subformAttribute);
|
||||
FormHelper::attributes($subformXML, $subformAttribute);
|
||||
// now add the subform child form
|
||||
$childForm = $subformXML->addChild('form');
|
||||
// child form attributes
|
||||
@ -3433,7 +3434,7 @@ class AjaxModel extends ListModel
|
||||
'name' => 'list_properties',
|
||||
'repeat' => 'true');
|
||||
// load the child form attributes
|
||||
ComponentbuilderHelper::xmlAddAttributes($childForm, $childFormAttribute);
|
||||
FormHelper::attributes($childForm, $childFormAttribute);
|
||||
|
||||
// start building the name field XML
|
||||
$nameXML = new \SimpleXMLElement('<field/>');
|
||||
@ -3452,20 +3453,21 @@ class AjaxModel extends ListModel
|
||||
$nameAttribute['description'] = 'COM_COMPONENTBUILDER_SELECTION';
|
||||
$nameAttribute['multiple'] = 'false';
|
||||
$nameAttribute['onchange'] = "getFieldPropertyDesc(this, '".$name."')";
|
||||
$nameAttribute['layout'] = 'joomla.form.field.list-fancy-select';
|
||||
}
|
||||
else
|
||||
{
|
||||
$nameAttribute['hint'] = 'COM_COMPONENTBUILDER_PROPERTY_NAME';
|
||||
}
|
||||
// load the subform attributes
|
||||
ComponentbuilderHelper::xmlAddAttributes($nameXML, $nameAttribute);
|
||||
FormHelper::attributes($nameXML, $nameAttribute);
|
||||
// add name list if found
|
||||
if (UtilitiesArrayHelper::check($nameListOptions))
|
||||
{
|
||||
ComponentbuilderHelper::xmlAddOptions($nameXML, $nameListOptions);
|
||||
FormHelper::options($nameXML, $nameListOptions);
|
||||
}
|
||||
// now add the fields to the child form
|
||||
ComponentbuilderHelper::xmlAppend($childForm, $nameXML);
|
||||
FormHelper::append($childForm, $nameXML);
|
||||
|
||||
// start building the name field XML
|
||||
$valueXML = new \SimpleXMLElement('<field/>');
|
||||
@ -3480,9 +3482,9 @@ class AjaxModel extends ListModel
|
||||
'filter' => 'STRING',
|
||||
'hint' => 'COM_COMPONENTBUILDER_PROPERTY_VALUE');
|
||||
// load the subform attributes
|
||||
ComponentbuilderHelper::xmlAddAttributes($valueXML, $valueAttribute);
|
||||
FormHelper::attributes($valueXML, $valueAttribute);
|
||||
// now add the fields to the child form
|
||||
ComponentbuilderHelper::xmlAppend($childForm, $valueXML);
|
||||
FormHelper::append($childForm, $valueXML);
|
||||
|
||||
// start building the desc field XML
|
||||
$descXML = new \SimpleXMLElement('<field/>');
|
||||
@ -3498,9 +3500,9 @@ class AjaxModel extends ListModel
|
||||
'filter' => 'WORD',
|
||||
'hint' => 'COM_COMPONENTBUILDER_SELECT_A_PROPERTY');
|
||||
// load the desc attributes
|
||||
ComponentbuilderHelper::xmlAddAttributes($descXML, $descAttribute);
|
||||
FormHelper::attributes($descXML, $descAttribute);
|
||||
// now add the fields to the child form
|
||||
ComponentbuilderHelper::xmlAppend($childForm, $descXML);
|
||||
FormHelper::append($childForm, $descXML);
|
||||
|
||||
// setup subform with values
|
||||
$subform->setup($subformXML, $values);
|
||||
|
@ -279,10 +279,258 @@ class FieldtypeModel extends AdminModel
|
||||
$this->db->updateObject('#__componentbuilder_fieldtype', $objectUpdate, 'id');
|
||||
}
|
||||
}
|
||||
$this->fieldtypevvvv = $item->id;
|
||||
|
||||
return $item;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get list data.
|
||||
*
|
||||
* @return mixed An array of data items on success, false on failure.
|
||||
*/
|
||||
public function getVycfields()
|
||||
{
|
||||
// Get the user object.
|
||||
$user = Factory::getApplication()->getIdentity();
|
||||
// Create a new query object.
|
||||
$db = $this->getDatabase();
|
||||
$query = $db->getQuery(true);
|
||||
|
||||
// Select some fields
|
||||
$query->select('a.*');
|
||||
$query->select($db->quoteName('c.title','category_title'));
|
||||
|
||||
// From the componentbuilder_field table
|
||||
$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 = JCBFilterHelper::linked((int) $type_extension[1], (string) $type_extension[0])) !== null)
|
||||
{
|
||||
$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 = JCBFilterHelper::linked((int) $filter_admin_view, 'admin_view')) !== null)
|
||||
{
|
||||
// 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 && UtilitiesArrayHelper::check($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') . ')');
|
||||
|
||||
// Filter by fieldtypevvvv global.
|
||||
$fieldtypevvvv = $this->fieldtypevvvv;
|
||||
if (is_numeric($fieldtypevvvv ))
|
||||
{
|
||||
$query->where('a.fieldtype = ' . (int) $fieldtypevvvv );
|
||||
}
|
||||
elseif (is_string($fieldtypevvvv))
|
||||
{
|
||||
$query->where('a.fieldtype = ' . $db->quote($fieldtypevvvv));
|
||||
}
|
||||
else
|
||||
{
|
||||
$query->where('a.fieldtype = -5');
|
||||
}
|
||||
|
||||
// Join over the asset groups.
|
||||
$query->select('ag.title AS access_level');
|
||||
$query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access');
|
||||
// Filter by access level.
|
||||
$_access = $this->getState('filter.access');
|
||||
if ($_access && is_numeric($_access))
|
||||
{
|
||||
$query->where('a.access = ' . (int) $_access);
|
||||
}
|
||||
elseif (UtilitiesArrayHelper::check($_access))
|
||||
{
|
||||
// Secure the array for the query
|
||||
$_access = ArrayHelper::toInteger($_access);
|
||||
// Filter by the Access Array.
|
||||
$query->where('a.access IN (' . implode(',', $_access) . ')');
|
||||
}
|
||||
// Implement View Level Access
|
||||
if (!$user->authorise('core.options', 'com_componentbuilder'))
|
||||
{
|
||||
$groups = implode(',', $user->getAuthorisedViewLevels());
|
||||
$query->where('a.access IN (' . $groups . ')');
|
||||
}
|
||||
|
||||
// Order the results by ordering
|
||||
$query->order('a.published ASC');
|
||||
$query->order('a.ordering ASC');
|
||||
|
||||
// Load the items
|
||||
$db->setQuery($query);
|
||||
$db->execute();
|
||||
if ($db->getNumRows())
|
||||
{
|
||||
$items = $db->loadObjectList();
|
||||
|
||||
// Set values to display correctly.
|
||||
if (UtilitiesArrayHelper::check($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
if (!isset($user) || !ObjectHelper::check($user))
|
||||
{
|
||||
$user = $this->getCurrentUser();
|
||||
}
|
||||
foreach ($items as $nr => &$item)
|
||||
{
|
||||
// Remove items the user can't access.
|
||||
$access = ($user->authorise('field.access', 'com_componentbuilder.field.' . (int) $item->id) && $user->authorise('field.access', 'com_componentbuilder'));
|
||||
if (!$access)
|
||||
{
|
||||
unset($items[$nr]);
|
||||
continue;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// set selection value to a translatable value
|
||||
if (UtilitiesArrayHelper::check($items))
|
||||
{
|
||||
foreach ($items as $nr => &$item)
|
||||
{
|
||||
// convert datatype
|
||||
$item->datatype = $this->selectionTranslationVycfields($item->datatype, 'datatype');
|
||||
// convert indexes
|
||||
$item->indexes = $this->selectionTranslationVycfields($item->indexes, 'indexes');
|
||||
// convert null_switch
|
||||
$item->null_switch = $this->selectionTranslationVycfields($item->null_switch, 'null_switch');
|
||||
// convert store
|
||||
$item->store = $this->selectionTranslationVycfields($item->store, 'store');
|
||||
}
|
||||
}
|
||||
|
||||
return $items;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to convert selection values to translatable string.
|
||||
*
|
||||
* @return string The translatable string.
|
||||
*/
|
||||
public function selectionTranslationVycfields($value,$name)
|
||||
{
|
||||
// Array of datatype language strings
|
||||
if ($name === 'datatype')
|
||||
{
|
||||
$datatypeArray = array(
|
||||
0 => 'COM_COMPONENTBUILDER_FIELD_SELECT_AN_OPTION',
|
||||
'CHAR' => 'COM_COMPONENTBUILDER_FIELD_CHAR',
|
||||
'VARCHAR' => 'COM_COMPONENTBUILDER_FIELD_VARCHAR',
|
||||
'TEXT' => 'COM_COMPONENTBUILDER_FIELD_TEXT',
|
||||
'MEDIUMTEXT' => 'COM_COMPONENTBUILDER_FIELD_MEDIUMTEXT',
|
||||
'LONGTEXT' => 'COM_COMPONENTBUILDER_FIELD_LONGTEXT',
|
||||
'BLOB' => 'COM_COMPONENTBUILDER_FIELD_BLOB',
|
||||
'TINYBLOB' => 'COM_COMPONENTBUILDER_FIELD_TINYBLOB',
|
||||
'MEDIUMBLOB' => 'COM_COMPONENTBUILDER_FIELD_MEDIUMBLOB',
|
||||
'LONGBLOB' => 'COM_COMPONENTBUILDER_FIELD_LONGBLOB',
|
||||
'DATETIME' => 'COM_COMPONENTBUILDER_FIELD_DATETIME',
|
||||
'DATE' => 'COM_COMPONENTBUILDER_FIELD_DATE',
|
||||
'TIME' => 'COM_COMPONENTBUILDER_FIELD_TIME',
|
||||
'INT' => 'COM_COMPONENTBUILDER_FIELD_INT',
|
||||
'TINYINT' => 'COM_COMPONENTBUILDER_FIELD_TINYINT',
|
||||
'BIGINT' => 'COM_COMPONENTBUILDER_FIELD_BIGINT',
|
||||
'FLOAT' => 'COM_COMPONENTBUILDER_FIELD_FLOAT',
|
||||
'DECIMAL' => 'COM_COMPONENTBUILDER_FIELD_DECIMAL',
|
||||
'DOUBLE' => 'COM_COMPONENTBUILDER_FIELD_DOUBLE'
|
||||
);
|
||||
// Now check if value is found in this array
|
||||
if (isset($datatypeArray[$value]) && UtilitiesStringHelper::check($datatypeArray[$value]))
|
||||
{
|
||||
return $datatypeArray[$value];
|
||||
}
|
||||
}
|
||||
// Array of indexes language strings
|
||||
if ($name === 'indexes')
|
||||
{
|
||||
$indexesArray = array(
|
||||
1 => 'COM_COMPONENTBUILDER_FIELD_UNIQUE_KEY',
|
||||
2 => 'COM_COMPONENTBUILDER_FIELD_KEY',
|
||||
0 => 'COM_COMPONENTBUILDER_FIELD_NONE'
|
||||
);
|
||||
// Now check if value is found in this array
|
||||
if (isset($indexesArray[$value]) && UtilitiesStringHelper::check($indexesArray[$value]))
|
||||
{
|
||||
return $indexesArray[$value];
|
||||
}
|
||||
}
|
||||
// Array of null_switch language strings
|
||||
if ($name === 'null_switch')
|
||||
{
|
||||
$null_switchArray = array(
|
||||
'NULL' => 'COM_COMPONENTBUILDER_FIELD_NULL',
|
||||
'NOT NULL' => 'COM_COMPONENTBUILDER_FIELD_NOT_NULL'
|
||||
);
|
||||
// Now check if value is found in this array
|
||||
if (isset($null_switchArray[$value]) && UtilitiesStringHelper::check($null_switchArray[$value]))
|
||||
{
|
||||
return $null_switchArray[$value];
|
||||
}
|
||||
}
|
||||
// Array of store language strings
|
||||
if ($name === 'store')
|
||||
{
|
||||
$storeArray = array(
|
||||
0 => 'COM_COMPONENTBUILDER_FIELD_DEFAULT',
|
||||
1 => 'COM_COMPONENTBUILDER_FIELD_JSON',
|
||||
2 => 'COM_COMPONENTBUILDER_FIELD_BASE64',
|
||||
3 => 'COM_COMPONENTBUILDER_FIELD_BASIC_ENCRYPTION_LOCALDBKEY',
|
||||
5 => 'COM_COMPONENTBUILDER_FIELD_MEDIUM_ENCRYPTION_LOCALFILEKEY',
|
||||
4 => 'COM_COMPONENTBUILDER_FIELD_WHMCSKEY_ENCRYPTION',
|
||||
6 => 'COM_COMPONENTBUILDER_FIELD_EXPERT_MODE_CUSTOM'
|
||||
);
|
||||
// Now check if value is found in this array
|
||||
if (isset($storeArray[$value]) && UtilitiesStringHelper::check($storeArray[$value]))
|
||||
{
|
||||
return $storeArray[$value];
|
||||
}
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get the record form.
|
||||
*
|
||||
|
@ -426,7 +426,7 @@ class FieldtypesModel extends ListModel
|
||||
// Get a db connection.
|
||||
$db = Factory::getDbo();
|
||||
// get the columns
|
||||
$columns = $db->getTableColumns("#__componentbuilder_[[[view]]]");
|
||||
$columns = $db->getTableColumns("#__componentbuilder_fieldtype");
|
||||
if (UtilitiesArrayHelper::check($columns))
|
||||
{
|
||||
// remove the headers you don't import/export.
|
||||
|
@ -242,14 +242,19 @@ class HtmlView extends BaseHtmlView
|
||||
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']);
|
||||
// add var key
|
||||
$this->document->addScriptDeclaration("var vastDevMod = '" . $this->get('VDM') . "';");
|
||||
$this->getDocument()->addScriptDeclaration("var vastDevMod = '" . $this->get('VDM') . "';");
|
||||
// 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())) . "';");
|
||||
// add the libs for subform (since not adding it via xml but ajax)
|
||||
Factory::getApplication()
|
||||
->getDocument()
|
||||
->getWebAssetManager()
|
||||
->useScript('webcomponent.field-subform');
|
||||
->useScript('webcomponent.field-subform')
|
||||
->usePreset('choicesjs')
|
||||
->useScript('webcomponent.field-fancy-select');
|
||||
Factory::getApplication()
|
||||
->getDocument()
|
||||
->addStyleDeclaration('.subform-table-sublayout-section .controls { margin-left: 0px }');
|
||||
// set some lang
|
||||
Text::script('COM_COMPONENTBUILDER_PROPERTY_ALREADY_SELECTED_TRY_ANOTHER');
|
||||
Text::script('COM_COMPONENTBUILDER_TYPE_OR_SELECT_SOME_OPTIONS');
|
||||
|
@ -81,6 +81,9 @@ class HtmlView extends BaseHtmlView
|
||||
$this->referral .= '&return=' . (string) $return;
|
||||
}
|
||||
|
||||
// Get Linked view data
|
||||
$this->vycfields = $this->get('Vycfields');
|
||||
|
||||
// Set the toolbar
|
||||
$this->addToolBar();
|
||||
|
||||
@ -224,6 +227,16 @@ class HtmlView extends BaseHtmlView
|
||||
}
|
||||
// Add Ajax Token
|
||||
$this->getDocument()->addScriptDeclaration("var token = '" . Session::getFormToken() . "';");
|
||||
|
||||
// Add the CSS for Footable
|
||||
Html::_('stylesheet', 'https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css', ['version' => 'auto']);
|
||||
Html::_('stylesheet', 'media/com_componentbuilder/footable-v3/css/footable.standalone.min.css', ['version' => 'auto']);
|
||||
// Add the JavaScript for Footable (adding all functions)
|
||||
Html::_('script', 'media/com_componentbuilder/footable-v3/js/footable.min.js', ['version' => 'auto']);
|
||||
|
||||
$footable = "jQuery(document).ready(function() { jQuery(function () { jQuery('.footable').footable();});});";
|
||||
$this->getDocument()->addScriptDeclaration($footable);
|
||||
|
||||
// add scripts
|
||||
foreach ($this->scripts as $script)
|
||||
{
|
||||
|
@ -170,13 +170,13 @@ class HtmlView extends BaseHtmlView
|
||||
$attributes = [
|
||||
'type' => 'text',
|
||||
'name' => 'search_value',
|
||||
'hiddenLabel' => true,
|
||||
'hiddenLabel' => 'true',
|
||||
'label' => 'COM_COMPONENTBUILDER_SEARCH',
|
||||
'size' => 150,
|
||||
'maxlength' => 200,
|
||||
'description' => 'COM_COMPONENTBUILDER_HERE_YOU_CAN_ENTER_YOUR_SEARCH_TEXT',
|
||||
'filter' => 'RAW',
|
||||
'class' => 'search-value span11',
|
||||
'class' => 'search-value',
|
||||
'hint' => 'COM_COMPONENTBUILDER_ENTER_YOUR_SEARCH_TEXT',
|
||||
'autocomplete' => true,
|
||||
'default' => $this->urlvalues['search_value']];
|
||||
@ -191,13 +191,13 @@ class HtmlView extends BaseHtmlView
|
||||
$attributes = [
|
||||
'type' => 'text',
|
||||
'name' => 'replace_value',
|
||||
'hiddenLabel' => true,
|
||||
'hiddenLabel' => 'true',
|
||||
'label' => 'COM_COMPONENTBUILDER_REPLACE',
|
||||
'size' => 150,
|
||||
'maxlength' => 200,
|
||||
'description' => 'COM_COMPONENTBUILDER_HERE_YOU_CAN_ENTER_THE_REPLACE_TEXT_THAT_YOU_WOULD_LIKE_TO_USE_AS_REPLACEMENT_FOR_THE_SEARCH_TEXT_FOUND',
|
||||
'filter' => 'RAW',
|
||||
'class' => 'replace-value span11',
|
||||
'class' => 'replace-value',
|
||||
'hint' => 'COM_COMPONENTBUILDER_ENTER_YOUR_REPLACE_TEXT',
|
||||
'autocomplete' => true,
|
||||
'showon' => 'type_search:2',
|
||||
@ -300,7 +300,7 @@ class HtmlView extends BaseHtmlView
|
||||
'name' => 'item_code',
|
||||
'label' => 'COM_COMPONENTBUILDER_ITEM_CODE',
|
||||
'width' => '100%',
|
||||
'height' => '150px',
|
||||
'height' => '350px',
|
||||
'class' => 'item_code_editor',
|
||||
'syntax' => 'php',
|
||||
'buttons' => 'false',
|
||||
|
@ -57,17 +57,17 @@ $search_value = $this->form->getField('search_value');
|
||||
<form action="<?php echo Route::_($url_search); ?>" method="post"
|
||||
name="adminForm" id="adminForm" class="form-validate" enctype="multipart/form-data">
|
||||
<div class="row col-md-12">
|
||||
<div class="row-fluid" id="search_progress_block" style="display: none">
|
||||
<div class="row" id="search_progress_block" style="display: none">
|
||||
<div class="uk-progress uk-progress-striped uk-active">
|
||||
<div id="search_progress_bar" class="uk-progress-bar" style="width: 0%;">0%</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row-fluid" id="replace_progress_block" style="display: none">
|
||||
<div class="row" id="replace_progress_block" style="display: none">
|
||||
<div class="uk-progress uk-progress-small uk-progress-danger uk-progress-striped uk-active">
|
||||
<div id="replace_progress_bar" class="uk-progress-bar" style="width: 0%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row-fluid" id="search_details_block" style="display: none">
|
||||
<div class="row" id="search_details_block" style="display: none">
|
||||
<span id="search_details">
|
||||
<span class="search_details_title"><?php echo Text::_('COM_COMPONENTBUILDER_SEARCHED_FOR'); ?></span>:
|
||||
[<span id="searched" class="found_code">....</span>]
|
||||
@ -88,36 +88,40 @@ $search_value = $this->form->getField('search_value');
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row-fluid" id="search_settings_block">
|
||||
<div class="span7">
|
||||
<div class="row" id="search_settings_block">
|
||||
<div class="col-md-7">
|
||||
<div class="my-md-2">
|
||||
<?php echo $this->form->renderField('type_search'); ?>
|
||||
<div class="btn-wrapper input-append">
|
||||
<div class="btn-wrapper input-group">
|
||||
<?php echo $search_value->input; ?>
|
||||
<button id="start_search_button" onclick="startSearch(this, true);" type="button" class="btn hasTooltip"
|
||||
<button id="start_search_button" onclick="startSearch(this, true);" type="button" class="btn btn-outline-success button-select hasTooltip"
|
||||
title="<?php echo Html::_('tooltipText', 'COM_COMPONENTBUILDER_START_A_SEARCH'); ?>"
|
||||
aria-label="<?php echo Text::_('COM_COMPONENTBUILDER_START_A_SEARCH'); ?>">
|
||||
<span class="icon-search" aria-hidden="true"></span>
|
||||
</button>
|
||||
<button id="stop_search_button" onclick="stopSearch();" type="button" class="btn btn-danger hasTooltip" style="display: none"
|
||||
<button id="stop_search_button" onclick="stopSearch();" type="button" class="btn btn-danger button-select hasTooltip" style="display: none"
|
||||
title="<?php echo Html::_('tooltipText', 'COM_COMPONENTBUILDER_STOP_A_SEARCH'); ?>"
|
||||
aria-label="<?php echo Text::_('COM_COMPONENTBUILDER_STOP_A_SEARCH'); ?>">
|
||||
<span class="icon-stop" aria-hidden="true"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="my-md-2">
|
||||
<?php echo $this->form->renderField('replace_value'); ?>
|
||||
</div>
|
||||
<div class="update_all_block" style="display: none;">
|
||||
<button type="button" onclick="replaceAllCheck();" class="hasTooltip btn btn-small button-new btn-danger span11"
|
||||
<button type="button" onclick="replaceAllCheck();" class="hasTooltip btn btn-small button-new btn-danger col-md-12"
|
||||
title="<?php echo Text::_('COM_COMPONENTBUILDER_UPDATE_ALL_ITEMS_FOUND_WITH_THIS_DATABASE_SEARCH_WITH_THE_REPLACE_VALUE'); ?>">
|
||||
<span class="icon-database icon-white" aria-hidden="true"></span>
|
||||
<?php echo Text::_('COM_COMPONENTBUILDER_UPDATE_ALL'); ?>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="span4">
|
||||
<div class="col-md-4">
|
||||
<?php echo $this->form->renderFieldset('settings'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row-fluid" id="search_results_block">
|
||||
<div class="row" id="search_results_block">
|
||||
<hr>
|
||||
<div id="search_results_table_block">
|
||||
<?php echo LayoutHelper::render('table', [
|
||||
@ -130,7 +134,7 @@ $search_value = $this->form->getField('search_value');
|
||||
]); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row-fluid" id="item_view_block">
|
||||
<div class="row" id="item_view_block">
|
||||
<div id="item_notice_block" style="display: none">
|
||||
<hr>
|
||||
<span id="item_edit_button"></span>
|
||||
|
@ -1,15 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<extension type="component" version="4.0" method="upgrade">
|
||||
<name>COM_COMPONENTBUILDER</name>
|
||||
<creationDate>20th March, 2024</creationDate>
|
||||
<creationDate>26th March, 2024</creationDate>
|
||||
<author>Llewellyn van der Merwe</author>
|
||||
<authorEmail>joomla@vdm.io</authorEmail>
|
||||
<authorUrl>https://dev.vdm.io</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>4.0.0-alpha6</version>
|
||||
<version>4.0.0-alpha7</version>
|
||||
<description><![CDATA[
|
||||
<h1>Component Builder (v.4.0.0-alpha6)</h1>
|
||||
<h1>Component Builder (v.4.0.0-alpha7)</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.
|
||||
|
||||
|
@ -5,10 +5,10 @@
|
||||
<element>pkg_component_builder</element>
|
||||
<type>package</type>
|
||||
<client>site</client>
|
||||
<version>3.2.0-beta9</version>
|
||||
<version>3.2.0-beta10</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-beta9.zip</downloadurl>
|
||||
<downloadurl type="full" format="zip">https://git.vdm.dev/api/v1/repos/joomla/pkg-component-builder/archive/v3.2.0-beta10.zip</downloadurl>
|
||||
</downloads>
|
||||
<tags>
|
||||
<tag>beta</tag>
|
||||
@ -125,4 +125,22 @@
|
||||
<maintainerurl>https://dev.vdm.io</maintainerurl>
|
||||
<targetplatform name="joomla" version="4\.[1234]"/>
|
||||
</update>
|
||||
<update>
|
||||
<name>Component Builder</name>
|
||||
<description>Builds Complex Joomla Components</description>
|
||||
<element>pkg_component_builder</element>
|
||||
<type>component</type>
|
||||
<client>site</client>
|
||||
<version>4.0.0-alpha7</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/v4.0.0-alpha7.zip</downloadurl>
|
||||
</downloads>
|
||||
<tags>
|
||||
<tag>alpha</tag>
|
||||
</tags>
|
||||
<maintainer>Llewellyn van der Merwe</maintainer>
|
||||
<maintainerurl>https://dev.vdm.io</maintainerurl>
|
||||
<targetplatform name="joomla" version="4\.[1234]"/>
|
||||
</update>
|
||||
</updates>
|
@ -31,6 +31,7 @@ use VDM\Joomla\Componentbuilder\Compiler\Service\Library;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Service\Customview;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Service\Templatelayout;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Service\Extension;
|
||||
use VDM\Joomla\Componentbuilder\Service\CoreRules;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Service\Field;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Service\Joomlamodule;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Service\Joomlaplugin;
|
||||
@ -162,6 +163,7 @@ abstract class Factory implements FactoryInterface
|
||||
->registerServiceProvider(new Customview())
|
||||
->registerServiceProvider(new Templatelayout())
|
||||
->registerServiceProvider(new Extension())
|
||||
->registerServiceProvider(new CoreRules())
|
||||
->registerServiceProvider(new Field())
|
||||
->registerServiceProvider(new Joomlamodule())
|
||||
->registerServiceProvider(new Joomlaplugin())
|
||||
|
@ -261,7 +261,7 @@ final class InputButton implements InputButtonInterface
|
||||
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
|
||||
. " build edit button";
|
||||
$addButton[] = Indent::_(4)
|
||||
. "\$button[] = '<a id=\"'.\$button_code_name.'Edit\" class=\"btn btn-small hasTooltip\" title=\"'.Text:"
|
||||
. "\$button[] = '<a id=\"'.\$button_code_name.'Edit\" class=\"btn btn-small btn-outline-success button-select hasTooltip\" title=\"'.Text:"
|
||||
. ":sprintf('" . $this->config->lang_prefix
|
||||
. "_EDIT_S', \$button_label).'\" style=\"display: none; border-radius: 0px 4px 4px 0px;\" href=\"#\" >";
|
||||
$addButton[] = Indent::_(5)
|
||||
|
@ -261,7 +261,7 @@ final class InputButton implements InputButtonInterface
|
||||
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
|
||||
. " build edit button";
|
||||
$addButton[] = Indent::_(4)
|
||||
. "\$button[] = '<a id=\"'.\$button_code_name.'Edit\" class=\"btn btn-small hasTooltip\" title=\"'.Text:"
|
||||
. "\$button[] = '<a id=\"'.\$button_code_name.'Edit\" class=\"btn btn-small btn-outline-success button-select hasTooltip\" title=\"'.Text:"
|
||||
. ":sprintf('" . $this->config->lang_prefix
|
||||
. "_EDIT_S', \$button_label).'\" style=\"display: none; border-radius: 0px 4px 4px 0px;\" href=\"#\" >";
|
||||
$addButton[] = Indent::_(5)
|
||||
|
@ -263,7 +263,7 @@ final class InputButton implements InputButtonInterface
|
||||
$addButton[] = Indent::_(4)
|
||||
. "\$button[] = '<a id=\"'.\$button_code_name.'Edit\" class=\"btn btn-small hasTooltip\" title=\"'.Text:"
|
||||
. ":sprintf('" . $this->config->lang_prefix
|
||||
. "_EDIT_S', \$button_label).'\" style=\"display: none; padding: 4px 4px 4px 7px;\" href=\"#\" >";
|
||||
. "_EDIT_S', \$button_label).'\" style=\"display: none; padding: 3px 4px 4px 7px;\" href=\"#\" >";
|
||||
$addButton[] = Indent::_(5)
|
||||
. "<span class=\"icon-edit\"></span></a>';";
|
||||
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
|
||||
|
@ -25,9 +25,6 @@ use VDM\Joomla\Componentbuilder\Compiler\Field\UniqueName;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Field\Rule;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Field\Customcode;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Field\DatabaseName;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaThree\CoreRule as J3CoreRule;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaFour\CoreRule as J4CoreRule;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaFive\CoreRule as J5CoreRule;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaThree\CoreField as J3CoreField;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaFour\CoreField as J4CoreField;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaFive\CoreField as J5CoreField;
|
||||
@ -35,7 +32,6 @@ use VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaThree\InputButton as J3Inpu
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaFour\InputButton as J4InputButton;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaFive\InputButton as J5InputButton;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Field\CoreFieldInterface as CoreField;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Field\CoreRuleInterface as CoreRule;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Field\InputButtonInterface as InputButton;
|
||||
|
||||
|
||||
@ -102,15 +98,6 @@ class Field implements ServiceProviderInterface
|
||||
$container->alias(DatabaseName::class, 'Field.Database.Name')
|
||||
->share('Field.Database.Name', [$this, 'getDatabaseName'], true);
|
||||
|
||||
$container->alias(J3CoreRule::class, 'J3.Field.Core.Rule')
|
||||
->share('J3.Field.Core.Rule', [$this, 'getJ3CoreRule'], true);
|
||||
|
||||
$container->alias(J4CoreRule::class, 'J4.Field.Core.Rule')
|
||||
->share('J4.Field.Core.Rule', [$this, 'getJ4CoreRule'], true);
|
||||
|
||||
$container->alias(J5CoreRule::class, 'J5.Field.Core.Rule')
|
||||
->share('J5.Field.Core.Rule', [$this, 'getJ5CoreRule'], true);
|
||||
|
||||
$container->alias(J3CoreField::class, 'J3.Field.Core.Field')
|
||||
->share('J3.Field.Core.Field', [$this, 'getJ3CoreField'], true);
|
||||
|
||||
@ -132,9 +119,6 @@ class Field implements ServiceProviderInterface
|
||||
$container->alias(CoreField::class, 'Field.Core.Field')
|
||||
->share('Field.Core.Field', [$this, 'getCoreField'], true);
|
||||
|
||||
$container->alias(CoreRule::class, 'Field.Core.Rule')
|
||||
->share('Field.Core.Rule', [$this, 'getCoreRule'], true);
|
||||
|
||||
$container->alias(InputButton::class, 'Field.Input.Button')
|
||||
->share('Field.Input.Button', [$this, 'getInputButton'], true);
|
||||
}
|
||||
@ -308,45 +292,6 @@ class Field implements ServiceProviderInterface
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get The CoreRule Class.
|
||||
*
|
||||
* @param Container $container The DI container.
|
||||
*
|
||||
* @return J3CoreRule
|
||||
* @since 3.2.0
|
||||
*/
|
||||
public function getJ3CoreRule(Container $container): J3CoreRule
|
||||
{
|
||||
return new J3CoreRule();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get The CoreRule Class.
|
||||
*
|
||||
* @param Container $container The DI container.
|
||||
*
|
||||
* @return J4CoreRule
|
||||
* @since 3.2.0
|
||||
*/
|
||||
public function getJ4CoreRule(Container $container): J4CoreRule
|
||||
{
|
||||
return new J4CoreRule();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get The CoreRule Class.
|
||||
*
|
||||
* @param Container $container The DI container.
|
||||
*
|
||||
* @return J5CoreRule
|
||||
* @since 3.2.0
|
||||
*/
|
||||
public function getJ5CoreRule(Container $container): J5CoreRule
|
||||
{
|
||||
return new J5CoreRule();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get The CoreField Class.
|
||||
*
|
||||
@ -455,24 +400,6 @@ class Field implements ServiceProviderInterface
|
||||
return $container->get('J' . $this->currentVersion . '.Field.Core.Field');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get The CoreRuleInterface Class.
|
||||
*
|
||||
* @param Container $container The DI container.
|
||||
*
|
||||
* @return CoreRule
|
||||
* @since 3.2.0
|
||||
*/
|
||||
public function getCoreRule(Container $container): CoreRule
|
||||
{
|
||||
if (empty($this->currentVersion))
|
||||
{
|
||||
$this->currentVersion = Version::MAJOR_VERSION;
|
||||
}
|
||||
|
||||
return $container->get('J' . $this->currentVersion . '.Field.Core.Rule');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get The InputButton Class.
|
||||
*
|
||||
|
@ -0,0 +1,119 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Component.Builder
|
||||
*
|
||||
* @created 4th September, 2022
|
||||
* @author Llewellyn van der Merwe <https://dev.vdm.io>
|
||||
* @git Joomla Component Builder <https://git.vdm.dev/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
|
||||
*/
|
||||
|
||||
namespace VDM\Joomla\Componentbuilder\Service;
|
||||
|
||||
|
||||
use Joomla\DI\Container;
|
||||
use Joomla\DI\ServiceProviderInterface;
|
||||
use Joomla\CMS\Version;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaThree\CoreRule as J3CoreRule;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaFour\CoreRule as J4CoreRule;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaFive\CoreRule as J5CoreRule;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Field\CoreRuleInterface as CoreRule;
|
||||
|
||||
|
||||
/**
|
||||
* Joomla Core Rules
|
||||
*
|
||||
* @since 3.2.0
|
||||
*/
|
||||
class CoreRules implements ServiceProviderInterface
|
||||
{
|
||||
/**
|
||||
* Current Joomla Version We are IN
|
||||
*
|
||||
* @var int
|
||||
* @since 3.2.0
|
||||
**/
|
||||
protected $currentVersion;
|
||||
|
||||
/**
|
||||
* Registers the service provider with a DI container.
|
||||
*
|
||||
* @param Container $container The DI container.
|
||||
*
|
||||
* @return void
|
||||
* @since 3.2.0
|
||||
*/
|
||||
public function register(Container $container)
|
||||
{
|
||||
$container->alias(J3CoreRule::class, 'J3.Field.Core.Rule')
|
||||
->share('J3.Field.Core.Rule', [$this, 'getJ3CoreRule'], true);
|
||||
|
||||
$container->alias(J4CoreRule::class, 'J4.Field.Core.Rule')
|
||||
->share('J4.Field.Core.Rule', [$this, 'getJ4CoreRule'], true);
|
||||
|
||||
$container->alias(J5CoreRule::class, 'J5.Field.Core.Rule')
|
||||
->share('J5.Field.Core.Rule', [$this, 'getJ5CoreRule'], true);
|
||||
|
||||
$container->alias(CoreRule::class, 'Field.Core.Rule')
|
||||
->share('Field.Core.Rule', [$this, 'getCoreRule'], true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get The CoreRule Class.
|
||||
*
|
||||
* @param Container $container The DI container.
|
||||
*
|
||||
* @return J3CoreRule
|
||||
* @since 3.2.0
|
||||
*/
|
||||
public function getJ3CoreRule(Container $container): J3CoreRule
|
||||
{
|
||||
return new J3CoreRule();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get The CoreRule Class.
|
||||
*
|
||||
* @param Container $container The DI container.
|
||||
*
|
||||
* @return J4CoreRule
|
||||
* @since 3.2.0
|
||||
*/
|
||||
public function getJ4CoreRule(Container $container): J4CoreRule
|
||||
{
|
||||
return new J4CoreRule();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get The CoreRule Class.
|
||||
*
|
||||
* @param Container $container The DI container.
|
||||
*
|
||||
* @return J5CoreRule
|
||||
* @since 3.2.0
|
||||
*/
|
||||
public function getJ5CoreRule(Container $container): J5CoreRule
|
||||
{
|
||||
return new J5CoreRule();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get The CoreRuleInterface Class.
|
||||
*
|
||||
* @param Container $container The DI container.
|
||||
*
|
||||
* @return CoreRule
|
||||
* @since 3.2.0
|
||||
*/
|
||||
public function getCoreRule(Container $container): CoreRule
|
||||
{
|
||||
if (empty($this->currentVersion))
|
||||
{
|
||||
$this->currentVersion = Version::MAJOR_VERSION;
|
||||
}
|
||||
|
||||
return $container->get('J' . $this->currentVersion . '.Field.Core.Rule');
|
||||
}
|
||||
}
|
||||
|
@ -573,7 +573,8 @@ function getFieldTypeProperties(fieldtype, db){
|
||||
// add the watcher
|
||||
rowWatcher();
|
||||
// initialize the new form
|
||||
jQuery('div.subform-repeatable').subformRepeatable();
|
||||
jQuery('div.subform-repeatable').trigger('update');
|
||||
// jQuery('div.subform-repeatable').subformRepeatable();
|
||||
// update all the list fields to only show items not selected already
|
||||
propertyDynamicSet();
|
||||
// set the field type info
|
||||
@ -691,7 +692,7 @@ function propertyDynamicSet() {
|
||||
}
|
||||
}
|
||||
// trigger chosen on the list fields
|
||||
jQuery('.field_list_name_options').chosen({"disable_search_threshold":10,"search_contains":true,"allow_single_deselect":true,"placeholder_text_multiple":Joomla.JText._("COM_COMPONENTBUILDER_TYPE_OR_SELECT_SOME_OPTIONS"),"placeholder_text_single":Joomla.JText._("COM_COMPONENTBUILDER_SELECT_A_PROPERTY"),"no_results_text":Joomla.JText._("COM_COMPONENTBUILDER_NO_RESULTS_MATCH")});
|
||||
// jQuery('.field_list_name_options').chosen({"disable_search_threshold":10,"search_contains":true,"allow_single_deselect":true,"placeholder_text_multiple":Joomla.JText._("COM_COMPONENTBUILDER_TYPE_OR_SELECT_SOME_OPTIONS"),"placeholder_text_single":Joomla.JText._("COM_COMPONENTBUILDER_SELECT_A_PROPERTY"),"no_results_text":Joomla.JText._("COM_COMPONENTBUILDER_NO_RESULTS_MATCH")});
|
||||
// now build the list to keep
|
||||
jQuery.each( propertiesArray, function( prop, name ) {
|
||||
if (!propertiesSelectedArray.hasOwnProperty(prop)) {
|
||||
|
Loading…
Reference in New Issue
Block a user