Release of v6.1.2

Add Joomla 6 build option. Fix the template and layout linker for packages. Add native module builder for Joomla 4/5. Refactor dynamic get methods into dedicated classes. Move Joomla DB handling into compiler injector flow. Fix auto-check(in) method for Joomla 4/5 compatibility. Migrates view HTML classes to use getModel() directly instead of the deprecated magic get() calls to model methods. Refactores event handling (contentPrepare, titlePrepare, contentBeforeDisplay, contentAfterDisplay) to use Joomla 5's native event dispatcher via the model's new getDispatcher() method. Updates table classes to properly support NULL values, both in the store() method and in table variable definitions. #1245. Extractes the setAutoCheckIn() and setCheckInCall() logic into a dedicated CheckInNow class for cleaner design. Replace all direct $app->input property calls with the recommended $app->getInput() method across the entire codebase. Add Joomla 6 build option :). Fix Custom Rule Validation Bug. Unpublish Joomla 6 Backward Compatibility Plugin. Refactors the Compiler Model by dropping deprecated calls and adopting Joomla 5+ conventions. Refactors Compiler Controller to remove deprecated usage and follow Joomla 5+ best practices. Adds check to ensure expert mode subforms in the Demo Component remain set and unchanged when user lacks edit permissions. Improves validation handling of Fields by ensuring field validation rules are properly registered. Replace StringHelper with the correct Super Power key so it loads in the Compiler Controller. Add functionality to add component changelog into the package if configured. Refactor PHP classes for building HTML view files in admin and site views to align with Joomla 5+ standards. Fix issues in the site view HtmlView caused by the refactor, including missing class calls and outdated function references. Fix issue where the DatabaseSchemaCheckAll pulled all Component Builder tables into DB on install. #1253. Fix issue in the Dynamic Get when the value key is 0 it wouldn't add the 'WHERE' statement to the generated code. #1254. Change radio buttons with a empty option to save Datatype CHAR instead of TINYINT as other radio buttons. #1252. Add extra xml details to Modules built with JCB that adds advance options to the module. #1248. Remove setDocumentTitle method from the admin view since it is not being used by Joomla. #1255. Refactor compiler Move file update to classes. Refactor compiler Move plugin and module fields and rules files mover to classes. Fix issue where custom powers was not added to PowerloaderHelper. #1256. Fix normalization issue when compiling on Windows systems. #1219. Fix installer issue on Joomla 6 where components containing multiple plugins failed during installation. Completely refactors the Compiler Dashboard to align with Joomla 5+ architecture and Bootstrap 5 standards. Add a default VARCHAR(36) length to easily create fields intended to store GUID values. Update the file uploader in the Demo Component for more dynamic file display and naming. Update the SQL file dump generator to handle large SQL dumps in batches, ensuring safe and reliable database imports. Update example hints in the field expert mode options.
This commit is contained in:
Robot committed 2025-10-15 21:07:01 +00:00
1 parent e097540a7d
commit 8e5d4aa032
747 files changed
+57518 -19469

No files matched your search

@@ -0,0 +1,58 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @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
*/
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\HTML\HTMLHelper as Html;
use Joomla\CMS\Layout\LayoutHelper;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
// No direct access to this file
defined('JPATH_BASE') or die;
$componentFolder = $displayData['model']->compiler->filepath['component-folder'] ?? '';
?>
<div class="btn-toolbar" role="toolbar">
<div class="btn-group" role="group">
<button type="button" class="btn btn-success btn-small btn-sm" onclick="Joomla.submitbutton('compiler.installCompiledComponent')">
<?php echo Text::sprintf('COM_COMPONENTBUILDER_INSTALL_S_ON_THIS', $componentFolder); ?> <span class="icon-joomla icon-white"></span> <?php echo Text::_('COM_COMPONENTBUILDER_JOOMLA_WEBSITE'); ?>. (component)
</button>
<?php if ($displayData['has_modules'] && !empty($displayData['model']->compiler->filepath['modules-folder'])): ?>
<?php foreach ($displayData['model']->compiler->filepath['modules-folder'] as $moduleId => $moduleFolder): ?>
<?php $mid = (int) $moduleId; ?>
<button type="button" class="btn btn-success btn-small btn-sm" onclick="Joomla.submitbutton('compiler.installCompiledModule', <?php echo $mid; ?>)">
<?php echo Text::sprintf('COM_COMPONENTBUILDER_INSTALL_S_ON_THIS', $moduleFolder); ?> <span class="icon-joomla icon-white"></span> <?php echo Text::_('COM_COMPONENTBUILDER_JOOMLA_WEBSITE'); ?>. (module)
</button>
<?php endforeach; ?>
<?php endif; ?>
<?php if ($displayData['has_plugins'] && !empty($displayData['model']->compiler->filepath['plugins-folder'])): ?>
<?php foreach ($displayData['model']->compiler->filepath['plugins-folder'] as $pluginId => $pluginFolder): ?>
<?php $pid = (int) $pluginId; ?>
<button type="button" class="btn btn-success btn-small btn-sm" onclick="Joomla.submitbutton('compiler.installCompiledPlugin', <?php echo $pid; ?>)">
<?php echo Text::sprintf('COM_COMPONENTBUILDER_INSTALL_S_ON_THIS', $pluginFolder); ?> <span class="icon-joomla icon-white"></span> <?php echo Text::_('COM_COMPONENTBUILDER_JOOMLA_WEBSITE'); ?>. (plugin)
</button>
<?php endforeach; ?>
<?php endif; ?>
</div>
</div>
<?php if ($displayData['multi']): ?>
<h4><?php echo Text::_('COM_COMPONENTBUILDER_YOU_CAN_INSTALL_ALL_COMPILED_EXTENSIONS'); ?></h4>
<div class="btn-toolbar" role="toolbar">
<div class="btn-group" role="group">
<button type="button" class="btn btn-success btn-small btn-sm" onclick="Joomla.submitbutton('compiler.installCompiledExtensions')">
<?php echo Text::_('COM_COMPONENTBUILDER_INSTALL_ALL_ABOVE_EXTENSIONS_ON_THIS'); ?> <span class="icon-joomla icon-white"></span> <?php echo Text::_('COM_COMPONENTBUILDER_JOOMLA_WEBSITE'); ?>.
</button>
</div>
</div>
<?php endif; ?>
+62
View File
@@ -0,0 +1,62 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @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
*/
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\HTML\HTMLHelper as Html;
use Joomla\CMS\Layout\LayoutHelper;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
// No direct access to this file
defined('JPATH_BASE') or die;
$weeks = $displayData->compiler->projectWeekTime ?? '';
?>
<h2><?php echo Text::_('COM_COMPONENTBUILDER_TOTAL_TIME_SAVED'); ?></h2>
<ul>
<li><?php echo Text::_('COM_COMPONENTBUILDER_TOTAL_FOLDERS_CREATED'); ?>: <b><?php echo '#'.'##FOLDER_COUNT##'.'#'; ?></b></li>
<li><?php echo Text::_('COM_COMPONENTBUILDER_TOTAL_FILES_CREATED'); ?>: <b><?php echo '#'.'##FILE_COUNT##'.'#'; ?></b></li>
<li><?php echo Text::_('COM_COMPONENTBUILDER_TOTAL_FIELDS_CREATED'); ?>: <b><?php echo '#'.'##FIELD_COUNT##'.'#'; ?></b></li>
<li><?php echo Text::_('COM_COMPONENTBUILDER_TOTAL_LINES_WRITTEN'); ?>: <b><?php echo '#'.'##LINE_COUNT##'.'#'; ?></b></li>
<li><?php echo Text::_('COM_COMPONENTBUILDER_AFOUR_BOOK_OF'); ?>: <b><?php echo '#'.'##PAGE_COUNT##'.'#'; ?> <?php echo Text::_('COM_COMPONENTBUILDER_PAGES'); ?></b></li>
</ul>
<p>
<b><?php echo '#'.'##totalHours##'.'#'; ?> <?php echo Text::_('COM_COMPONENTBUILDER_HOURS'); ?></b> or
<b><?php echo '#'.'##totalDays##'.'#'; ?> <?php echo Text::_('COM_COMPONENTBUILDER_EIGHT_HOUR_DAYS'); ?></b>
<em>(<?php echo Text::_('COM_COMPONENTBUILDER_ACTUAL_TIME_YOU_SAVED'); ?>)</em>
<br>
<small>(<?php echo Text::_('COM_COMPONENTBUILDER_IF_CREATING_A_FOLDER_AND_FILE_TOOK_BFIVE_SECONDSB_AND_WRITING_ONE_LINE_OF_CODE_TOOK_BTEN_SECONDSB_NEVER_MAKING_ONE_MISTAKE_OR_TAKING_ANY_COFFEE_BREAK'); ?>)</small>
<br>
<b><?php echo '#'.'##actualHoursSpent##'.'#'; ?> <?php echo Text::_('COM_COMPONENTBUILDER_HOURS'); ?></b> or
<b><?php echo '#'.'##actualDaysSpent##'.'#'; ?> <?php echo Text::_('COM_COMPONENTBUILDER_EIGHT_HOUR_DAYS'); ?></b>
<em>(<?php echo Text::_('COM_COMPONENTBUILDER_THE_ACTUAL_TIME_YOU_SPENT'); ?>)</em>
<br>
<small>(<?php echo Text::_('COM_COMPONENTBUILDER_WITH_THE_FOLLOWING_BREAK_DOWN'); ?>:
<b><?php echo Text::_('COM_COMPONENTBUILDER_DEBUGGING'); ?> @<?php echo '#'.'##debuggingHours##'.'#'; ?><?php echo Text::_('COM_COMPONENTBUILDER_HOURS'); ?></b> = <?php echo Text::_('COM_COMPONENTBUILDER_CODINGTIME'); ?> / 4;
<b><?php echo Text::_('COM_COMPONENTBUILDER_PLANNING'); ?> @<?php echo '#'.'##planningHours##'.'#'; ?><?php echo Text::_('COM_COMPONENTBUILDER_HOURS'); ?></b> = <?php echo Text::_('COM_COMPONENTBUILDER_CODINGTIME'); ?> / 7;
<b><?php echo Text::_('COM_COMPONENTBUILDER_MAPPING'); ?> @<?php echo '#'.'##mappingHours##'.'#'; ?><?php echo Text::_('COM_COMPONENTBUILDER_HOURS'); ?></b> = <?php echo Text::_('COM_COMPONENTBUILDER_CODINGTIME'); ?> / 10;
<b><?php echo Text::_('COM_COMPONENTBUILDER_OFFICE'); ?> @<?php echo '#'.'##officeHours##'.'#'; ?><?php echo Text::_('COM_COMPONENTBUILDER_HOURS'); ?></b> = <?php echo Text::_('COM_COMPONENTBUILDER_CODINGTIME'); ?> / 6;)</small>
</p>
<p>
<b><?php echo '#'.'##actualTotalHours##'.'#'; ?> <?php echo Text::_('COM_COMPONENTBUILDER_HOURS'); ?></b> or
<b><?php echo '#'.'##actualTotalDays##'.'#'; ?> <?php echo Text::_('COM_COMPONENTBUILDER_EIGHT_HOUR_DAYS'); ?></b>
<em>(<?php echo Text::_('COM_COMPONENTBUILDER_A_TOTAL_OF_THE_REALISTIC_TIME_FRAME_FOR_THIS_PROJECT'); ?>)</em>
<br>
<small>(<?php echo Text::_('COM_COMPONENTBUILDER_IF_CREATING_A_FOLDER_AND_FILE_TOOK_BFIVE_SECONDSB_AND_WRITING_ONE_LINE_OF_CODE_TOOK_BTEN_SECONDSB_WITH_THE_NORMAL_EVERYDAY_REALITIES_AT_THE_OFFICE_THAT_INCLUDES_THE_COMPONENT_PLANNING_MAPPING_DEBUGGING'); ?>.)
</small>
</p>
<p>
<?php echo Text::_('COM_COMPONENTBUILDER_PROJECT_DURATION'); ?>: <b><?php echo $weeks; ?> <?php echo Text::_('COM_COMPONENTBUILDER_WEEKS'); ?></b> or
<b><?php echo '#'.'##projectMonthTime##'.'#'; ?> <?php echo Text::_('COM_COMPONENTBUILDER_MONTHS'); ?></b>
</p>
+146
View File
@@ -0,0 +1,146 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @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
*/
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\HTML\HTMLHelper as Html;
use Joomla\CMS\Layout\LayoutHelper;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
use VDM\Joomla\Utilities\ArrayHelper;
use VDM\Joomla\Componentbuilder\Compiler\Factory as CompilerFactory;
use Joomla\CMS\Uri\Uri;
use Joomla\CMS\Router\Route;
use Joomla\CMS\Version;
// No direct access to this file
defined('JPATH_BASE') or die;
function computeZipUrls(object $model): array
{
$componentUrl = null;
$moduleUrls = [];
$pluginUrls = [];
// Component URL
$componentPath = $model->compiler->filepath['component'] ?? '';
if ($componentPath !== '' && ($pos = strpos($componentPath, '/tmp/')) !== false)
{
$componentUrl = Uri::root() . substr($componentPath, $pos + 1);
}
// Module URLs
if (!empty($model->compiler->filepath['modules']) && is_array($model->compiler->filepath['modules']))
{
foreach ($model->compiler->filepath['modules'] as $moduleId => $modulePath)
{
$path = (string) $modulePath;
if ($path !== '' && ($pos = strpos($path, '/tmp/')) !== false)
{
$moduleUrls[(int) $moduleId] = Uri::root() . substr($path, $pos + 1);
}
}
}
// Plugin URLs
if (!empty($model->compiler->filepath['plugins']) && is_array($model->compiler->filepath['plugins']))
{
foreach ($model->compiler->filepath['plugins'] as $pluginId => $pluginPath)
{
$path = (string) $pluginPath;
if ($path !== '' && ($pos = strpos($path, '/tmp/')) !== false)
{
$pluginUrls[(int) $pluginId] = Uri::root() . substr($path, $pos + 1);
}
}
}
return [
'componentUrl' => $componentUrl,
'moduleUrls' => $moduleUrls,
'pluginUrls' => $pluginUrls,
];
}
$urls = computeZipUrls($displayData);
$hasPlugins = ArrayHelper::check($displayData->compiler->filepath['plugins'] ?? [], true);
$hasModules = ArrayHelper::check($displayData->compiler->filepath['modules'] ?? [], true);
$multi = ($hasPlugins || $hasModules);
$componentFolder = $displayData->compiler->filepath['component-folder'] ?? '';
$redirect = Route::_('index.php?option=com_componentbuilder&view=compiler', false);
$allowInstall = ((int) (CompilerFactory::_('Config')->joomla_version ?? 0) === (int) Version::MAJOR_VERSION);
?>
<style>
/* Scope defensively inside the compiler success message container if present */
.com-componentbuilder-compiler-success :where(.btn) {
margin-right: .5rem;
margin-bottom: .5rem;
}
/* Back-compat: keep both .btn-small and .btn-sm usable */
.com-componentbuilder-compiler-success .btn-small { padding: .25rem .5rem; font-size: .875rem; }
/* Ensure success buttons have readable text in both themes */
.com-componentbuilder-compiler-success .btn-success,
.com-componentbuilder-compiler-success .btn.btn-success {
color: #fff !important;
}
/* Joomla 5 dark mode compatibility (data-bs-theme="dark") */
[data-bs-theme="dark"] .com-componentbuilder-compiler-success .btn-success {
color: #fff !important;
}
/* Organize button groups cleanly */
.com-componentbuilder-compiler-success .btn-toolbar {
display: flex;
flex-wrap: wrap;
gap: .5rem .75rem;
margin: .5rem 0 1rem 0;
}
.com-componentbuilder-compiler-success .btn-group {
display: flex;
flex-wrap: wrap;
gap: .5rem .5rem;
}
/* Code blocks line-wrap paths nicely */
.com-componentbuilder-compiler-success code {
white-space: pre-wrap;
word-break: break-all;
}
</style>
<div class="com-componentbuilder-compiler-success">
<?php if ($multi): ?>
<h1><?php echo Text::_('COM_COMPONENTBUILDER_THE_EXTENSIONS_WERE_SUCCESSFULLY_COMPILED'); ?></h1>
<h4><?php echo Text::_('COM_COMPONENTBUILDER_YOU_CAN_INSTALL_ANY_ONE_OF_THE_FOLLOWING_EXTENSIONS'); ?></h4>
<?php else: ?>
<h1><?php echo Text::sprintf('COM_COMPONENTBUILDER_THE_S_WAS_SUCCESSFULLY_COMPILED', $componentFolder); ?></h1>
<?php endif; ?>
<?php if ($allowInstall): ?>
<?php echo LayoutHelper::render('jcbbuilderinstallbuttons', ['model' => $displayData, 'has_modules' => $hasModules, 'has_plugins' => $hasPlugins, 'multi' => $multi]); ?>
<?php endif; ?>
<?php echo LayoutHelper::render('jcbbuilderstatssection', $displayData); ?>
<?php if ($multi): ?>
<?php echo LayoutHelper::render('jcbmultipathsdownloads', ['model' => $displayData, 'urls' => $urls]); ?>
<?php else: ?>
<?php echo LayoutHelper::render('jcbsinglepathdownload', ['model' => $displayData, 'url' => $urls['componentUrl'] ?? null]); ?>
<?php endif; ?>
<p>
<small><?php echo Text::_('COM_COMPONENTBUILDER_COMPILATION_TOOK'); ?> <b><?php '#'.'##COMPILER_TIMER##'.'#'; ?></b> <?php echo Text::_('COM_COMPONENTBUILDER_SECONDS_TO_COMPLETE'); ?>.</small>
</p>
</div>
+85
View File
@@ -0,0 +1,85 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @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
*/
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\HTML\HTMLHelper as Html;
use Joomla\CMS\Layout\LayoutHelper;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
use VDM\Joomla\Utilities\ArrayHelper;
// No direct access to this file
defined('JPATH_BASE') or die;
$cPath = $displayData['model']->compiler->filepath['component'] ?? null;
$cUrl = $displayData['urls']['componentUrl'] ?? null;
?>
<?php if (!empty($cUrl) && !empty($cPath)): ?>
<h2><?php echo Text::_('COM_COMPONENTBUILDER_PATH_TO_ZIP_FILES'); ?></h2>
<p>
<b><?php echo Text::_('COM_COMPONENTBUILDER_COMPONENT_PATH'); ?>:</b>
<?php if ($cPath): ?>
<code><?php echo $cPath; ?></code>
<?php endif; ?>
<br>
<b><?php echo Text::_('COM_COMPONENTBUILDER_COMPONENT_URL'); ?>:</b> <code><?php echo $cUrl; ?></code>
<br><br>
<?php if (!empty($displayData['model']->compiler->filepath['modules']) && is_array($displayData['model']->compiler->filepath['modules'])): ?>
<?php foreach ($displayData['model']->compiler->filepath['modules'] as $moduleId => $modulePath): ?>
<b><?php echo Text::_('COM_COMPONENTBUILDER_MODULE_PATH'); ?>:</b> <code><?php echo $modulePath; ?></code>
<br>
<?php $mUrl = $displayData['urls']['moduleUrls'][$moduleId] ?? 'error'; ?>
<b><?php echo Text::_('COM_COMPONENTBUILDER_MODULE_URL'); ?>:</b> <code><?php echo $mUrl; ?></code>
<br>
<?php endforeach; ?>
<?php endif; ?>
<?php if (!empty($displayData['model']->compiler->filepath['plugins']) && is_array($displayData['model']->compiler->filepath['plugins'])): ?>
<?php foreach ($displayData['model']->compiler->filepath['plugins'] as $pluginId => $pluginPath): ?>
<b><?php echo Text::_('COM_COMPONENTBUILDER_PLUGIN_PATH'); ?>:</b> <code><?php echo $pluginPath; ?></code>
<br>
<?php $pUrl = $displayData['urls']['pluginUrls'][$pluginId] ?? 'error'; ?>
<b><?php echo Text::_('COM_COMPONENTBUILDER_PLUGIN_URL'); ?>:</b> <code><?php echo $pUrl; ?></code>
<br>
<?php endforeach; ?>
<?php endif; ?>
</p>
<p><small><?php echo Text::_('COM_COMPONENTBUILDER_HEY_YOU_CAN_ALSO_DOWNLOAD_THESE_ZIP_FILES_RIGHT_NOW'); ?></small></p>
<div class="btn-toolbar" role="toolbar">
<div class="btn-group" role="group">
<?php if (!empty($cUrl)): ?>
<a class="btn btn-success btn-small btn-sm" href="<?php echo $cUrl; ?>"><span class="icon-download icon-white"></span> <?php echo Text::_('COM_COMPONENTBUILDER_DOWNLOAD_COMPONENT'); ?></a>
<?php endif; ?>
<?php if (!empty($displayData['urls']['moduleUrls']) && ArrayHelper::check($displayData['urls']['moduleUrls'])): ?>
<?php foreach ($displayData['urls']['moduleUrls'] as $moduleId => $moduleUrl): ?>
<?php $label = $displayData['model']->compiler->filepath['modules-folder'][$moduleId] ?? 'error'; ?>
<a class="btn btn-success btn-small btn-sm" href="<?php echo $moduleUrl; ?>"><span class="icon-download icon-white"></span> <?php echo Text::sprintf('COM_COMPONENTBUILDER_DOWNLOAD_S', $label); ?></a>
<?php endforeach; ?>
<?php endif; ?>
<?php if (!empty($displayData['urls']['pluginUrls']) && ArrayHelper::check($displayData['urls']['pluginUrls'])): ?>
<?php foreach ($displayData['urls']['pluginUrls'] as $pluginId => $pluginUrl): ?>
<?php $label = $displayData['model']->compiler->filepath['plugins-folder'][$pluginId] ?? 'error'; ?>
<a class="btn btn-success btn-small btn-sm" href="<?php echo $pluginUrl; ?>"><span class="icon-download icon-white"></span> <?php echo Text::sprintf('COM_COMPONENTBUILDER_DOWNLOAD_S', $label); ?></a>
<?php endforeach; ?>
<?php endif; ?>
</div>
</div>
<p>
<small><b><?php echo Text::_('COM_COMPONENTBUILDER_REMEMBERB_THESE_ZIP_FILES_ARE_IN_YOUR_TMP_FOLDER_AND_THEREFORE_PUBLICLY_ACCESSIBLE_UNTIL_YOU_CLICK_CLEAR_TMP'); ?>!</small>
</p>
<?php else: ?>
<div class="alert alert-danger" role="alert">
<h4><?php echo Text::_('COM_COMPONENTBUILDER_THERE_WAS_AN_ERROR'); ?>!</h4>
<p><?php echo Text::_('COM_COMPONENTBUILDER_THE_EXTENSIONS_WERE_NOT_COMPILED'); ?></p>
</div>
<?php endif; ?>
+4 -1
View File
@@ -27,4 +27,7 @@ defined('JPATH_BASE') or die;
<?php echo LayoutHelper::render('mastodon', $displayData ?? []); ?>
</div>
<?php echo LayoutHelper::render('socialnetworking', null); ?>
<div class="p-md-3"><?php echo ComponentbuilderHelper::getDynamicContent('banner', '728-90'); ?></div>
<div class="p-md-3"><?php if (!empty($displayData['dankie']) && $displayData['dankie'] == 2): ?>
<?php echo LayoutHelper::render('jcbsupportmessage', []); ?><?php else: ?>
<?php echo ComponentbuilderHelper::getDynamicContent('banner', '728-90'); ?><?php endif; ?>
</div>
+52
View File
@@ -0,0 +1,52 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @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
*/
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\HTML\HTMLHelper as Html;
use Joomla\CMS\Layout\LayoutHelper;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
// No direct access to this file
defined('JPATH_BASE') or die;
$path = $displayData['model']->compiler->filepath['component'] ?? null;
$url = $displayData['url'] ?? null;
?>
<?php if (!empty($url) && !empty($path)): ?>
<h2><?php echo Text::_('COM_COMPONENTBUILDER_PATH_TO_ZIP_FILE'); ?></h2>
<p>
<b><?php echo Text::_('COM_COMPONENTBUILDER_PATH'); ?>:</b> <code><?php echo $path; ?></code>
<br>
<b><?php echo Text::_('URL'); ?>:</b> <code><?php echo $url; ?></code>
<br><br>
<small><?php echo Text::_('COM_COMPONENTBUILDER_HEY_YOU_CAN_ALSO_DOWNLOAD_THE_ZIP_FILE_RIGHT_NOW'); ?></small>
</p>
<div class="btn-toolbar" role="toolbar">
<div class="btn-group" role="group">
<a class="btn btn-success btn-small btn-sm" href="<?php echo $url; ?>">
<span class="icon-download icon-white"></span>
<?php echo Text::_('COM_COMPONENTBUILDER_DOWNLOAD'); ?>
</a>
</div>
</div>
<p>
<small><b><?php echo Text::_('COM_COMPONENTBUILDER_REMEMBERB_THESE_ZIP_FILES_ARE_IN_YOUR_TMP_FOLDER_AND_THEREFORE_PUBLICLY_ACCESSIBLE_UNTIL_YOU_CLICK_CLEAR_TMP'); ?>!</small>
</p>
<?php else: ?>
<div class="alert alert-danger" role="alert">
<h4><?php echo Text::_('COM_COMPONENTBUILDER_THERE_WAS_AN_ERROR'); ?>!</h4>
<p><?php echo Text::_('COM_COMPONENTBUILDER_THE_EXTENSION_WAS_NOT_COMPILED'); ?></p>
</div>
<?php endif; ?>
+40 -10
View File
@@ -22,22 +22,42 @@ defined('JPATH_BASE') or die;
// Different support requests/appreciation
$support = [
Text::_("COM_COMPONENTBUILDER_YOUR_CONTINUED_DONATIONS_ALLOW_JOOMLA_COMPONENT_BUILDER_JCB_TO_INNOVATE_FASTER_DELIVER_NEW_FEATURES_AND_REMAIN_FREE_FOR_THE_COMMUNITY_EVERY_CONTRIBUTION_NO_MATTER_THE_SIZE_HELPS_SUSTAIN_THIS_VITAL_PROJECT"),
Text::_("COM_COMPONENTBUILDER_IMAGINE_JCB_WITHOUT_UPDATES_YOUR_SUPPORT_PREVENTS_THAT_FUTURE_A_BSMALL_DONATIONB_KEEPS_THIS_TOOL_ALIVE_SECURE_AND_GROWING"),
Text::_("COM_COMPONENTBUILDER_WHEN_YOU_DONATE_TO_JOOMLA_COMPONENT_BUILDER_JCB_YOURE_NOT_JUST_GIVING_MONEY_YOURE_FUELING_INNOVATION_ENSURING_FUTURE_FEATURES_AND_EMPOWERING_DEVELOPERS_WORLDWIDE"),
Text::_("COM_COMPONENTBUILDER_JCB_HAS_SAVED_THOUSANDS_OF_DEVELOPERS_COUNTLESS_HOURS_RETURN_THE_FAVOR_WITH_A_BFINANCIAL_CONTRIBUTIONB_AND_HELP_IT_CONTINUE_SAVING_TIME_FOR_YEARS_TO_COME"),
Text::_("COM_COMPONENTBUILDER_SUPPORTING_JCB_MEANS_SUPPORTING_THE_JOOMLA_ECOSYSTEM_YOUR_DONATION_HELPS_MAINTAIN_ONE_OF_THE_MOST_POWERFUL_OPENSOURCE_TOOLS_AVAILABLE_TO_PHP_DEVELOPERS"),
Text::_("COM_COMPONENTBUILDER_YOUR_FINANCIAL_SUPPORT_IS_THE_LIFELINE_OF_JOOMLA_COMPONENT_BUILDER_JCB_WITHOUT_IT_FUTURE_DEVELOPMENT_AND_INNOVATION_ARE_AT_RISK"),
Text::_("COM_COMPONENTBUILDER_IF_JCB_HAS_MADE_YOUR_WORK_EASIER_CONSIDER_GIVING_BACK_A_SINGLE_DONATION_HELPS_ENSURE_THAT_THIS_VITAL_TOOL_REMAINS_AVAILABLE_AND_WELL_MAINTAINED"),
Text::_("COM_COMPONENTBUILDER_BY_DONATING_TO_JCB_YOU_JOIN_A_COMMUNITY_OF_FORWARDTHINKING_DEVELOPERS_INVESTING_IN_THE_FUTURE_OF_OPENSOURCE_SOFTWARE"),
Text::_("COM_COMPONENTBUILDER_EVERY_RELEASE_BUG_FIX_AND_IMPROVEMENT_IS_MADE_POSSIBLE_BY_PEOPLE_LIKE_YOU_KEEP_JCB_THRIVING_WITH_YOUR_SUPPORT"),
Text::_("COM_COMPONENTBUILDER_YOUR_SUPPORT_TODAY_SHAPES_JCBS_TOMORROW_KEEP_THIS_ESSENTIAL_TOOL_ALIVE_AND_EVOLVING_WITH_A_BDONATIONB"),
Text::_("COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BUILDER_JCB_IS_A_CRUCIAL_TOOL_FOR_PHP_PROGRAMMERS_WHO_USE_JOOMLA_TO_EARN_A_LIVING_BY_MAKING_A_BFINANCIAL_DONATIONB_YOU_CAN_SUPPORT_THE_GROWTH_AND_CONTINUITY_OF_THIS_VITAL_RESOURCE_AND_ENSURE_ITS_RELEVANCE_FOR_YEARS_TO_COME_YOUR_CONTRIBUTION_NO_MATTER_HOW_BIG_OR_SMALL_WILL_BE_DEEPLY_APPRECIATED_BY_THE_PROJECTS_TEAM_AND_THE_WIDER_COMMUNITY"),
Text::_("COM_COMPONENTBUILDER_THE_CONTINUED_SUPPORT_OF_INDIVIDUALS_LIKE_YOU_HAS_ALLOWED_JOOMLA_COMPONENT_BUILDER_JCB_TO_THRIVE_FOR_SEVEN_YEARS_SINCE_GOING_PUBLIC_YOUR_CONTRIBUTIONS_HAVE_BEEN_CRUCIAL_IN_ENSURING_THE_GROWTH_AND_RELEVANCE_OF_THIS_VITAL_TOOL_FOR_PHP_PROGRAMMERS_THANK_YOU_FOR_YOUR_SUPPORT_AND_FOR_BEING_A_PART_OF_JCBS_JOURNEY"),
Text::_("COM_COMPONENTBUILDER_THE_CONTINUED_SUPPORT_OF_INDIVIDUALS_LIKE_YOU_HAS_ALLOWED_JOOMLA_COMPONENT_BUILDER_JCB_TO_THRIVE_FOR_TEN_YEARS_SINCE_GOING_PUBLIC_YOUR_CONTRIBUTIONS_HAVE_BEEN_CRUCIAL_IN_ENSURING_THE_GROWTH_AND_RELEVANCE_OF_THIS_VITAL_TOOL_FOR_PHP_PROGRAMMERS_THANK_YOU_FOR_YOUR_SUPPORT_AND_FOR_BEING_A_PART_OF_JCBS_JOURNEY"),
Text::_("COM_COMPONENTBUILDER_SUPPORT_JOOMLA_COMPONENT_BUILDER_JCB_WITH_A_BFINANCIAL_DONATIONB_TO_SHOW_GRATITUDE_FOR_THE_TIME_AND_EFFORT_SAVED_IN_YOUR_DEVELOPMENT_PROCESS_YOUR_CONTRIBUTION_NO_MATTER_THE_SIZE_WILL_BE_APPRECIATED_BY_THE_PROJECTS_TEAM_AND_THE_WIDER_COMMUNITY_HELP_ENSURE_THE_GROWTH_AND_RELEVANCE_OF_THIS_ESSENTIAL_TOOL"),
Text::_("COM_COMPONENTBUILDER_INVEST_IN_THE_FUTURE_OF_JOOMLA_COMPONENT_BUILDER_JCB_BY_MAKING_A_BFINANCIAL_DONATIONB_SUPPORT_THE_NECESSARY_DEVELOPMENT_AND_MAINTENANCE_OF_THIS_OPENSOURCE_PROJECT_ENSURING_ITS_CONTINUED_GROWTH_AND_RELEVANCE_FOR_THE_COMMUNITY_YOUR_CONTRIBUTION_WILL_HELP_SECURE_THE_FUTURE_OF_THIS_VITAL_TOOL_FOR_PHP_PROGRAMMERS"),
Text::_("COM_COMPONENTBUILDER_INVEST_IN_THE_FUTURE_OF_JOOMLA_COMPONENT_BUILDER_JCB_BY_MAKING_A_BFINANCIAL_CONTRIBUTIONB_NO_MATTER_HOW_SMALL_THE_CONTINUAL_SUPPORT_OF_ALL_THOSE_USING_THE_TOOL_WILL_BE_MORE_THAN_ENOUGH_TO_ENSURE_ITS_CONTINUED_GROWTH_AND_RELEVANCE_BY_INVESTING_IN_THIS_OPENSOURCE_PROJECT_YOU_ARE_SECURING_ITS_FUTURE_AS_A_VITAL_TOOL_FOR_PHP_PROGRAMMERS"),
Text::_("COM_COMPONENTBUILDER_WE_EXTEND_OUR_GRATITUDE_TO_ALL_THOSE_WHO_SUPPORT_JOOMLA_COMPONENT_BUILDER_JCB_WHETHER_AS_A_HOBBY_OR_AS_A_PART_OF_THEIR_BUSINESS_YOUR_CONTRIBUTIONS_WHETHER_FINANCIAL_OR_IN_THE_FORM_OF_ACTIVE_INVOLVEMENT_HAVE_HAD_A_SIGNIFICANT_IMPACT_ON_ENSURING_THE_GROWTH_AND_RELEVANCE_OF_THIS_VITAL_TOOL_FOR_PHP_PROGRAMMERS_WE_HIGHLY_VALUE_THE_DEDICATION_OF_HOBBYISTS_AND_THE_COMMITMENT_OF_COMPANIES_WHO_SUPPORT_JCB_AS_THEY_HAVE_ALLOWED_THE_PROJECT_TO_CONTINUE_ITS_DEVELOPMENT_AND_MAINTENANCE_PROVIDING_VALUABLE_RESOURCES_FOR_THE_COMMUNITY_WE_ARE_GRATEFUL_FOR_YOUR_CONTRIBUTIONS_NO_MATTER_HOW_SMALL_AND_THANK_YOU_FOR_BEING_A_PART_OF_THE_POSITIVE_IMPACT_THAT_JCB_HAS_ON_THE_PHP_PROGRAMMING_COMMUNITY"),
Text::_("COM_COMPONENTBUILDER_WITHOUT_SUFFICIENT_SUPPORT_THE_FUTURE_OF_JOOMLA_COMPONENT_BUILDER_JCB_IS_IN_JEOPARDY_AS_A_VITAL_TOOL_FOR_PHP_PROGRAMMERS_IT_IS_CRUCIAL_TO_ENSURE_ITS_CONTINUED_DEVELOPMENT_AND_MAINTENANCE_BY_MAKING_A_BFINANCIAL_CONTRIBUTIONB_NO_MATTER_HOW_SMALL_YOU_ARE_HELPING_TO_SAFEGUARD_THE_FUTURE_OF_THIS_OPENSOURCE_PROJECT_NEGLECTING_TO_SUPPORT_JCB_COULD_RESULT_IN_ITS_DECLINE_AND_LOSS_AS_A_RESOURCE_FOR_THE_COMMUNITY"),
Text::_("COM_COMPONENTBUILDER_WE_EXTEND_OUR_HEARTFELT_APPRECIATION_TO_THOSE_WHO_HAVE_SUPPORTED_THE_JOOMLA_COMPONENT_BUILDER_JCB_PROJECT_OVER_THE_YEARS_YOUR_CONTRIBUTIONS_NO_MATTER_HOW_BIG_OR_SMALL_HAVE_BEEN_INSTRUMENTAL_IN_ENSURING_ITS_GROWTH_AND_RELEVANCE_AS_A_VITAL_TOOL_FOR_PHP_PROGRAMMERS_SEVEN_YEARS_AFTER_GOING_PUBLIC_JCB_IS_STILL_HERE_TODAY_BECAUSE_OF_THE_SUPPORT_OF_INDIVIDUALS_LIKE_YOU_WHO_BELIEVE_IN_THE_IMPORTANCE_OF_THIS_OPENSOURCE_PROJECT_YOUR_GENEROSITY_HAS_ALLOWED_THE_PROJECT_TO_CONTINUE_ITS_DEVELOPMENT_AND_MAINTENANCE_PROVIDING_VALUABLE_RESOURCES_FOR_THE_COMMUNITY_THANK_YOU_FOR_YOUR_UNWAVERING_SUPPORT_AND_FOR_BEING_A_PART_OF_JCBS_JOURNEY"),
Text::_("COM_COMPONENTBUILDER_WE_EXTEND_OUR_HEARTFELT_APPRECIATION_TO_THOSE_WHO_HAVE_SUPPORTED_THE_JOOMLA_COMPONENT_BUILDER_JCB_PROJECT_OVER_THE_YEARS_YOUR_CONTRIBUTIONS_NO_MATTER_HOW_BIG_OR_SMALL_HAVE_BEEN_INSTRUMENTAL_IN_ENSURING_ITS_GROWTH_AND_RELEVANCE_AS_A_VITAL_TOOL_FOR_PHP_PROGRAMMERS_TEN_YEARS_AFTER_GOING_PUBLIC_JCB_IS_STILL_HERE_TODAY_BECAUSE_OF_THE_SUPPORT_OF_INDIVIDUALS_LIKE_YOU_WHO_BELIEVE_IN_THE_IMPORTANCE_OF_THIS_OPENSOURCE_PROJECT_YOUR_GENEROSITY_HAS_ALLOWED_THE_PROJECT_TO_CONTINUE_ITS_DEVELOPMENT_AND_MAINTENANCE_PROVIDING_VALUABLE_RESOURCES_FOR_THE_COMMUNITY_THANK_YOU_FOR_YOUR_UNWAVERING_SUPPORT_AND_FOR_BEING_A_PART_OF_JCBS_JOURNEY"),
Text::_("COM_COMPONENTBUILDER_WE_EXTEND_OUR_SINCERE_APPRECIATION_TO_THE_COMPANIES_WHO_USE_JOOMLA_COMPONENT_BUILDER_JCB_AND_SUPPORT_THE_PROJECT_YOUR_CONTRIBUTIONS_WHETHER_FINANCIAL_OR_IN_THE_FORM_OF_ACTIVE_INVOLVEMENT_HAVE_BEEN_INSTRUMENTAL_IN_ENSURING_THE_GROWTH_AND_RELEVANCE_OF_THIS_VITAL_TOOL_FOR_PHP_PROGRAMMERS_YOUR_SUPPORT_HAS_ALLOWED_JCB_TO_CONTINUE_ITS_DEVELOPMENT_AND_MAINTENANCE_PROVIDING_VALUABLE_RESOURCES_FOR_THE_COMMUNITY_THANK_YOU_FOR_YOUR_UNWAVERING_COMMITMENT_TO_THE_PROJECT_AND_FOR_BEING_A_PART_OF_JCBS_JOURNEY")
];
// build the support message
$support_message = $support[random_int(0, 8)];
$support_message = $support[random_int(0, 18)];
// the button titles
$titles = [
Text::_("COM_COMPONENTBUILDER_JCB_FUELS_INNOVATION"),
Text::_("COM_COMPONENTBUILDER_JCB_POWERS_YOUR_PROJECTS"),
Text::_("COM_COMPONENTBUILDER_JCB_KEEPS_DEVELOPMENT_FREE"),
Text::_("COM_COMPONENTBUILDER_JCB_BUILDS_STRONGER_TOOLS"),
Text::_("COM_COMPONENTBUILDER_JCB_INSPIRES_OPEN_SOURCE_GROWTH"),
Text::_("COM_COMPONENTBUILDER_JCB_DELIVERS_REAL_VALUE"),
Text::_("COM_COMPONENTBUILDER_JCB_POWERS_JOOMLAS_FUTURE"),
Text::_("COM_COMPONENTBUILDER_JCB_KEEPS_YOU_COMPETITIVE"),
Text::_("COM_COMPONENTBUILDER_JCB_DRIVES_BETTER_CODE"),
Text::_("COM_COMPONENTBUILDER_JCB_NURTURES_CREATIVITY"),
Text::_("COM_COMPONENTBUILDER_JCB_ENABLES_PHP_DEVELOPMENT"),
Text::_("COM_COMPONENTBUILDER_JCB_SUPPORTS_OPENSOURCE"),
Text::_("COM_COMPONENTBUILDER_JCB_SAVES_TIME"),
@@ -71,10 +91,20 @@ $titles = [
];
// build the support button
$support_titles = $titles[random_int(0, 29)];
$support_titles = $titles[random_int(0, 39)];
// the button names
$button_names = [
Text::_("COM_COMPONENTBUILDER_FUEL_JCBS_FUTURE"),
Text::_("COM_COMPONENTBUILDER_KEEP_JCB_ALIVE"),
Text::_("COM_COMPONENTBUILDER_SPONSOR_JCB_DEVELOPMENT"),
Text::_("COM_COMPONENTBUILDER_SUPPORT_OPEN_SOURCE_JCB"),
Text::_("COM_COMPONENTBUILDER_BACK_JCB_INNOVATION"),
Text::_("COM_COMPONENTBUILDER_KEEP_JCB_THRIVING"),
Text::_("COM_COMPONENTBUILDER_POWER_UP_JCB"),
Text::_("COM_COMPONENTBUILDER_FUND_JCBS_MISSION"),
Text::_("COM_COMPONENTBUILDER_SUSTAIN_JCB_GROWTH"),
Text::_("COM_COMPONENTBUILDER_CHAMPION_JCB_TODAY"),
Text::_("COM_COMPONENTBUILDER_DONATE_TO_JCB"),
Text::_("COM_COMPONENTBUILDER_SUPPORT_JCB_TODAY"),
Text::_("COM_COMPONENTBUILDER_CONTRIBUTE_TO_JCB"),
@@ -111,7 +141,7 @@ $button_names = [
];
// build the support button
$support_button = $button_names[random_int(0, 32)];
$support_button = $button_names[random_int(0, 42)];
?>
<?php echo $support_message; ?>
@@ -123,14 +153,14 @@ $support_button = $button_names[random_int(0, 32)];
<a href="https://status.vdm.dev/status/jcb" title="JCB Powers Uptime">
<img src="https://status.vdm.dev/api/badge/25/uptime?labelPrefix=JCB+Powers+" alt="JCB Powers Uptime">
</a>
<a href="https://git.vdm.dev/joomla/pkg-component-builder/src/branch/5.x" title="Joomla 5 Compatible">
<img src="https://img.shields.io/badge/Joomla-5.x%20Compatible-green.svg" alt="Joomla 5 Compatible">
<a href="https://git.vdm.dev/joomla/pkg-component-builder/src/branch/6.x" title="Joomla 6 Compatible">
<img src="https://img.shields.io/badge/Joomla-6.x%20Compatible-orange.svg" alt="Joomla 6 Compatible">
</a>
<a href="https://git.vdm.dev/joomla/Component-Builder/src/branch/5.x/LICENSE.txt" title="GPLv3 License">
<a href="https://git.vdm.dev/joomla/Component-Builder/src/branch/6.x/LICENSE.txt" title="GPLv3 License">
<img src="https://img.shields.io/badge/License-GPLv2-blue.svg" alt="GPLv3 License">
</a>
<a href="https://github.com/vdm-io/Joomla-Component-Builder/stargazers" title="GitHub Stars">
<img src="https://img.shields.io/github/stars/vdm-io/Joomla-Component-Builder.svg?style=flat&label=Star" alt="GitHub Stars">
<a href="https://github.com/joomengine/Joomla-Component-Builder/stargazers" title="GitHub Stars">
<img src="https://img.shields.io/github/stars/joomengine/Joomla-Component-Builder.svg?style=flat&label=Star" alt="GitHub Stars">
</a>
</div>
<br /><br />
@@ -26,6 +26,13 @@ $fields_tab_layout = 'fields_' . $layout_path_array[1];
// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
'add_changelog_server',
'changelog_server_url',
'changelog_server_target',
'note_changelog_server_note_ftp',
'note_changelog_server_note_zip',
'note_changelog_server_note_other',
'changelog_server',
'translation_tool',
'note_crowdin',
'crowdin_project_identifier',
@@ -1,44 +0,0 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @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
*/
// No direct access to this file
defined('_JEXEC') or die;
// get the form
$form = $displayData->getForm();
// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model method
// this name combination of tab and layout in the method name is the only work around
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];
// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
'mod_code'
);
$hiddenFields = $displayData->get('hidden_fields') ?: [];
?>
<?php if ($fields && count((array) $fields)) :?>
<div class="form-vertical">
<?php foreach($fields as $field): ?>
<?php if (in_array($field, $hiddenFields)) : ?>
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
<?php endif; ?>
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
<?php endforeach; ?>
</div>
<?php endif; ?>
+2 -1
View File
@@ -26,7 +26,8 @@ $fields_tab_layout = 'fields_' . $layout_path_array[1];
// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
'custom_get'
'note_layout_data',
'layout_data'
);
$hiddenFields = $displayData->get('hidden_fields') ?: [];
+3 -1
View File
@@ -26,7 +26,9 @@ $fields_tab_layout = 'fields_' . $layout_path_array[1];
// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
'note_mod_file_options'
'custom_get',
'note_mod_file_options',
'mod_code'
);
$hiddenFields = $displayData->get('hidden_fields') ?: [];
@@ -26,6 +26,7 @@ $fields_tab_layout = 'fields_' . $layout_path_array[1];
// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
'default_header',
'default',
'note_linked_to_notice',
'not_required'
+2 -1
View File
@@ -30,7 +30,8 @@ $fields = $displayData->get($fields_tab_layout) ?: array(
'description',
'libraries',
'note_libraries_options',
'note_add_php_language_string'
'note_add_php_language_string',
'add_default_header'
);
$hiddenFields = $displayData->get('hidden_fields') ?: [];