forked from joomla/Component-Builder
Llewellyn van der Merwe
f15b67cff1
Resolved gh-146 compiler error on joined db in dinamic get thanks to @mwweb & @ro-ot Resolved gh-147 by adding the sort of fields back into the save method Resolved gh-144 to ensure that the published tab (fields overwriting and adding) option is available again. Resolved gh-145 by moving the subforms to their own tab in dynamic get view Converted all repeatable fields to subform fields in Joomla component view Moved 9 subforms and other fields to their own table and view (decopuling them fom Joomla component view), that means we added 9 more views and tables to JCB Added all the ajax for buttons and display views to Joomla component view Added tmp scripts all across the new areas with subforms to ensure all repeatable fields are converted. Will be removed in v2.7.0 Added synced copy, change state and delete in Joomla components view in relation to all tables linked to it (same as with admin views)
414 lines
16 KiB
PHP
414 lines
16 KiB
PHP
<?php
|
|
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
__ __ _ _____ _ _ __ __ _ _ _
|
|
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
| |
|
|
|_|
|
|
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
|
|
@version @update number 63 of this MVC
|
|
@build 25th October, 2017
|
|
@created 29th May, 2015
|
|
@package Component Builder
|
|
@subpackage edit.php
|
|
@author Llewellyn van der Merwe <http://vdm.bz/component-builder>
|
|
@copyright Copyright (C) 2015. All Rights Reserved
|
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
|
|
Builds Complex Joomla Components
|
|
|
|
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
|
|
// No direct access to this file
|
|
defined('_JEXEC') or die('Restricted access');
|
|
|
|
JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html');
|
|
JHtml::_('behavior.tooltip');
|
|
JHtml::_('behavior.formvalidation');
|
|
JHtml::_('formbehavior.chosen', 'select');
|
|
JHtml::_('behavior.keepalive');
|
|
$componentParams = JComponentHelper::getParams('com_componentbuilder');
|
|
?>
|
|
<script type="text/javascript">
|
|
// waiting spinner
|
|
var outerDiv = jQuery('body');
|
|
jQuery('<div id="loading"></div>')
|
|
.css("background", "rgba(255, 255, 255, .8) url('components/com_componentbuilder/assets/images/import.gif') 50% 15% no-repeat")
|
|
.css("top", outerDiv.position().top - jQuery(window).scrollTop())
|
|
.css("left", outerDiv.position().left - jQuery(window).scrollLeft())
|
|
.css("width", outerDiv.width())
|
|
.css("height", outerDiv.height())
|
|
.css("position", "fixed")
|
|
.css("opacity", "0.80")
|
|
.css("-ms-filter", "progid:DXImageTransform.Microsoft.Alpha(Opacity = 80)")
|
|
.css("filter", "alpha(opacity = 80)")
|
|
.css("display", "none")
|
|
.appendTo(outerDiv);
|
|
jQuery('#loading').show();
|
|
// when page is ready remove and show
|
|
jQuery(window).load(function() {
|
|
jQuery('#componentbuilder_loader').fadeIn('fast');
|
|
jQuery('#loading').hide();
|
|
});
|
|
</script>
|
|
<div id="componentbuilder_loader" style="display: none;">
|
|
<form action="<?php echo JRoute::_('index.php?option=com_componentbuilder&layout=edit&id='.(int) $this->item->id.$this->referral); ?>" method="post" name="adminForm" id="adminForm" class="form-validate" enctype="multipart/form-data">
|
|
|
|
<?php echo JLayoutHelper::render('site_view.details_above', $this); ?>
|
|
<div class="form-horizontal">
|
|
<div class="span9">
|
|
|
|
<?php echo JHtml::_('bootstrap.startTabSet', 'site_viewTab', array('active' => 'details')); ?>
|
|
|
|
<?php echo JHtml::_('bootstrap.addTab', 'site_viewTab', 'details', JText::_('COM_COMPONENTBUILDER_SITE_VIEW_DETAILS', true)); ?>
|
|
<div class="row-fluid form-horizontal-desktop">
|
|
<div class="span6">
|
|
<?php echo JLayoutHelper::render('site_view.details_left', $this); ?>
|
|
</div>
|
|
<div class="span6">
|
|
<?php echo JLayoutHelper::render('site_view.details_right', $this); ?>
|
|
</div>
|
|
</div>
|
|
<div class="row-fluid form-horizontal-desktop">
|
|
<div class="span12">
|
|
<?php echo JLayoutHelper::render('site_view.details_fullwidth', $this); ?>
|
|
</div>
|
|
</div>
|
|
<?php echo JHtml::_('bootstrap.endTab'); ?>
|
|
|
|
<?php echo JHtml::_('bootstrap.addTab', 'site_viewTab', 'custom_buttons', JText::_('COM_COMPONENTBUILDER_SITE_VIEW_CUSTOM_BUTTONS', true)); ?>
|
|
<div class="row-fluid form-horizontal-desktop">
|
|
<div class="span6">
|
|
<?php echo JLayoutHelper::render('site_view.custom_buttons_left', $this); ?>
|
|
</div>
|
|
<div class="span6">
|
|
<?php echo JLayoutHelper::render('site_view.custom_buttons_right', $this); ?>
|
|
</div>
|
|
</div>
|
|
<div class="row-fluid form-horizontal-desktop">
|
|
<div class="span12">
|
|
<?php echo JLayoutHelper::render('site_view.custom_buttons_fullwidth', $this); ?>
|
|
</div>
|
|
</div>
|
|
<?php echo JHtml::_('bootstrap.endTab'); ?>
|
|
|
|
<?php echo JHtml::_('bootstrap.addTab', 'site_viewTab', 'javascript_css', JText::_('COM_COMPONENTBUILDER_SITE_VIEW_JAVASCRIPT_CSS', true)); ?>
|
|
<div class="row-fluid form-horizontal-desktop">
|
|
</div>
|
|
<div class="row-fluid form-horizontal-desktop">
|
|
<div class="span12">
|
|
<?php echo JLayoutHelper::render('site_view.javascript_css_fullwidth', $this); ?>
|
|
</div>
|
|
</div>
|
|
<?php echo JHtml::_('bootstrap.endTab'); ?>
|
|
|
|
<?php echo JHtml::_('bootstrap.addTab', 'site_viewTab', 'php', JText::_('COM_COMPONENTBUILDER_SITE_VIEW_PHP', true)); ?>
|
|
<div class="row-fluid form-horizontal-desktop">
|
|
</div>
|
|
<div class="row-fluid form-horizontal-desktop">
|
|
<div class="span12">
|
|
<?php echo JLayoutHelper::render('site_view.php_fullwidth', $this); ?>
|
|
</div>
|
|
</div>
|
|
<?php echo JHtml::_('bootstrap.endTab'); ?>
|
|
|
|
<?php if ($this->canDo->get('joomla_component.access')) : ?>
|
|
<?php echo JHtml::_('bootstrap.addTab', 'site_viewTab', 'linked_components', JText::_('COM_COMPONENTBUILDER_SITE_VIEW_LINKED_COMPONENTS', true)); ?>
|
|
<div class="row-fluid form-horizontal-desktop">
|
|
</div>
|
|
<div class="row-fluid form-horizontal-desktop">
|
|
<div class="span12">
|
|
<?php echo JLayoutHelper::render('site_view.linked_components_fullwidth', $this); ?>
|
|
</div>
|
|
</div>
|
|
<?php echo JHtml::_('bootstrap.endTab'); ?>
|
|
<?php endif; ?>
|
|
|
|
<?php if ($this->canDo->get('core.delete') || $this->canDo->get('core.edit.created_by') || $this->canDo->get('core.edit.state') || $this->canDo->get('core.edit.created')) : ?>
|
|
<?php echo JHtml::_('bootstrap.addTab', 'site_viewTab', 'publishing', JText::_('COM_COMPONENTBUILDER_SITE_VIEW_PUBLISHING', true)); ?>
|
|
<div class="row-fluid form-horizontal-desktop">
|
|
<div class="span6">
|
|
<?php echo JLayoutHelper::render('site_view.publishing', $this); ?>
|
|
</div>
|
|
<div class="span6">
|
|
<?php echo JLayoutHelper::render('site_view.publlshing', $this); ?>
|
|
</div>
|
|
</div>
|
|
<?php echo JHtml::_('bootstrap.endTab'); ?>
|
|
<?php endif; ?>
|
|
|
|
<?php if ($this->canDo->get('core.admin')) : ?>
|
|
<?php echo JHtml::_('bootstrap.addTab', 'site_viewTab', 'permissions', JText::_('COM_COMPONENTBUILDER_SITE_VIEW_PERMISSION', true)); ?>
|
|
<div class="row-fluid form-horizontal-desktop">
|
|
<div class="span12">
|
|
<fieldset class="adminform">
|
|
<div class="adminformlist">
|
|
<?php foreach ($this->form->getFieldset('accesscontrol') as $field): ?>
|
|
<div>
|
|
<?php echo $field->label; echo $field->input;?>
|
|
</div>
|
|
<div class="clearfix"></div>
|
|
<?php endforeach; ?>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<?php echo JHtml::_('bootstrap.endTab'); ?>
|
|
<?php endif; ?>
|
|
|
|
<?php echo JHtml::_('bootstrap.endTabSet'); ?>
|
|
|
|
<div>
|
|
<input type="hidden" name="task" value="site_view.edit" />
|
|
<?php echo JHtml::_('form.token'); ?>
|
|
</div>
|
|
</div>
|
|
</div><div class="span3">
|
|
<?php echo JLayoutHelper::render('site_view.details_rightside', $this); ?>
|
|
</div>
|
|
|
|
<div class="clearfix"></div>
|
|
<?php echo JLayoutHelper::render('site_view.details_under', $this); ?>
|
|
</form>
|
|
</div>
|
|
|
|
<script type="text/javascript">
|
|
|
|
// #jform_add_php_view listeners for add_php_view_vvvvvyi function
|
|
jQuery('#jform_add_php_view').on('keyup',function()
|
|
{
|
|
var add_php_view_vvvvvyi = jQuery("#jform_add_php_view input[type='radio']:checked").val();
|
|
vvvvvyi(add_php_view_vvvvvyi);
|
|
|
|
});
|
|
jQuery('#adminForm').on('change', '#jform_add_php_view',function (e)
|
|
{
|
|
e.preventDefault();
|
|
var add_php_view_vvvvvyi = jQuery("#jform_add_php_view input[type='radio']:checked").val();
|
|
vvvvvyi(add_php_view_vvvvvyi);
|
|
|
|
});
|
|
|
|
// #jform_add_php_jview_display listeners for add_php_jview_display_vvvvvyj function
|
|
jQuery('#jform_add_php_jview_display').on('keyup',function()
|
|
{
|
|
var add_php_jview_display_vvvvvyj = jQuery("#jform_add_php_jview_display input[type='radio']:checked").val();
|
|
vvvvvyj(add_php_jview_display_vvvvvyj);
|
|
|
|
});
|
|
jQuery('#adminForm').on('change', '#jform_add_php_jview_display',function (e)
|
|
{
|
|
e.preventDefault();
|
|
var add_php_jview_display_vvvvvyj = jQuery("#jform_add_php_jview_display input[type='radio']:checked").val();
|
|
vvvvvyj(add_php_jview_display_vvvvvyj);
|
|
|
|
});
|
|
|
|
// #jform_add_php_jview listeners for add_php_jview_vvvvvyk function
|
|
jQuery('#jform_add_php_jview').on('keyup',function()
|
|
{
|
|
var add_php_jview_vvvvvyk = jQuery("#jform_add_php_jview input[type='radio']:checked").val();
|
|
vvvvvyk(add_php_jview_vvvvvyk);
|
|
|
|
});
|
|
jQuery('#adminForm').on('change', '#jform_add_php_jview',function (e)
|
|
{
|
|
e.preventDefault();
|
|
var add_php_jview_vvvvvyk = jQuery("#jform_add_php_jview input[type='radio']:checked").val();
|
|
vvvvvyk(add_php_jview_vvvvvyk);
|
|
|
|
});
|
|
|
|
// #jform_add_php_document listeners for add_php_document_vvvvvyl function
|
|
jQuery('#jform_add_php_document').on('keyup',function()
|
|
{
|
|
var add_php_document_vvvvvyl = jQuery("#jform_add_php_document input[type='radio']:checked").val();
|
|
vvvvvyl(add_php_document_vvvvvyl);
|
|
|
|
});
|
|
jQuery('#adminForm').on('change', '#jform_add_php_document',function (e)
|
|
{
|
|
e.preventDefault();
|
|
var add_php_document_vvvvvyl = jQuery("#jform_add_php_document input[type='radio']:checked").val();
|
|
vvvvvyl(add_php_document_vvvvvyl);
|
|
|
|
});
|
|
|
|
// #jform_add_css_document listeners for add_css_document_vvvvvym function
|
|
jQuery('#jform_add_css_document').on('keyup',function()
|
|
{
|
|
var add_css_document_vvvvvym = jQuery("#jform_add_css_document input[type='radio']:checked").val();
|
|
vvvvvym(add_css_document_vvvvvym);
|
|
|
|
});
|
|
jQuery('#adminForm').on('change', '#jform_add_css_document',function (e)
|
|
{
|
|
e.preventDefault();
|
|
var add_css_document_vvvvvym = jQuery("#jform_add_css_document input[type='radio']:checked").val();
|
|
vvvvvym(add_css_document_vvvvvym);
|
|
|
|
});
|
|
|
|
// #jform_add_js_document listeners for add_js_document_vvvvvyn function
|
|
jQuery('#jform_add_js_document').on('keyup',function()
|
|
{
|
|
var add_js_document_vvvvvyn = jQuery("#jform_add_js_document input[type='radio']:checked").val();
|
|
vvvvvyn(add_js_document_vvvvvyn);
|
|
|
|
});
|
|
jQuery('#adminForm').on('change', '#jform_add_js_document',function (e)
|
|
{
|
|
e.preventDefault();
|
|
var add_js_document_vvvvvyn = jQuery("#jform_add_js_document input[type='radio']:checked").val();
|
|
vvvvvyn(add_js_document_vvvvvyn);
|
|
|
|
});
|
|
|
|
// #jform_add_css listeners for add_css_vvvvvyo function
|
|
jQuery('#jform_add_css').on('keyup',function()
|
|
{
|
|
var add_css_vvvvvyo = jQuery("#jform_add_css input[type='radio']:checked").val();
|
|
vvvvvyo(add_css_vvvvvyo);
|
|
|
|
});
|
|
jQuery('#adminForm').on('change', '#jform_add_css',function (e)
|
|
{
|
|
e.preventDefault();
|
|
var add_css_vvvvvyo = jQuery("#jform_add_css input[type='radio']:checked").val();
|
|
vvvvvyo(add_css_vvvvvyo);
|
|
|
|
});
|
|
|
|
// #jform_add_php_ajax listeners for add_php_ajax_vvvvvyp function
|
|
jQuery('#jform_add_php_ajax').on('keyup',function()
|
|
{
|
|
var add_php_ajax_vvvvvyp = jQuery("#jform_add_php_ajax input[type='radio']:checked").val();
|
|
vvvvvyp(add_php_ajax_vvvvvyp);
|
|
|
|
});
|
|
jQuery('#adminForm').on('change', '#jform_add_php_ajax',function (e)
|
|
{
|
|
e.preventDefault();
|
|
var add_php_ajax_vvvvvyp = jQuery("#jform_add_php_ajax input[type='radio']:checked").val();
|
|
vvvvvyp(add_php_ajax_vvvvvyp);
|
|
|
|
});
|
|
|
|
// #jform_add_custom_button listeners for add_custom_button_vvvvvyq function
|
|
jQuery('#jform_add_custom_button').on('keyup',function()
|
|
{
|
|
var add_custom_button_vvvvvyq = jQuery("#jform_add_custom_button input[type='radio']:checked").val();
|
|
vvvvvyq(add_custom_button_vvvvvyq);
|
|
|
|
});
|
|
jQuery('#adminForm').on('change', '#jform_add_custom_button',function (e)
|
|
{
|
|
e.preventDefault();
|
|
var add_custom_button_vvvvvyq = jQuery("#jform_add_custom_button input[type='radio']:checked").val();
|
|
vvvvvyq(add_custom_button_vvvvvyq);
|
|
|
|
});
|
|
|
|
// #jform_button_position listeners for button_position_vvvvvyr function
|
|
jQuery('#jform_button_position').on('keyup',function()
|
|
{
|
|
var button_position_vvvvvyr = jQuery("#jform_button_position").val();
|
|
vvvvvyr(button_position_vvvvvyr);
|
|
|
|
});
|
|
jQuery('#adminForm').on('change', '#jform_button_position',function (e)
|
|
{
|
|
e.preventDefault();
|
|
var button_position_vvvvvyr = jQuery("#jform_button_position").val();
|
|
vvvvvyr(button_position_vvvvvyr);
|
|
|
|
});
|
|
|
|
|
|
|
|
<?php $fieldNrs = range(1,7,1); ?>
|
|
<?php foreach($fieldNrs as $nr): ?>jQuery('#jform_custom_button_modal').on('change', 'select[name="icomoon-<?php echo $nr; ?>"]',function (e) {
|
|
// update the icon if changed
|
|
var vala_<?php echo $nr; ?> = jQuery('select[name="icomoon-<?php echo $nr; ?>"] option:selected').val();
|
|
// build new span
|
|
var span = '<span id="icon_custom_button_fields_icomoon_<?php echo $nr; ?>" class="icon-'+vala_<?php echo $nr; ?>+'"></span>';
|
|
// remove old one
|
|
jQuery('#icon_custom_button_fields_icomoon_<?php echo $nr; ?>').remove();
|
|
// add the new icon
|
|
jQuery('#jform_custom_button_fields_icomoon_<?php echo $nr; ?>_chzn').closest("td").append(span);
|
|
});
|
|
|
|
jQuery(document).ready(function() {
|
|
jQuery('input.form-field-repeatable').on('row-add', function (e) {
|
|
// show the icon if set
|
|
var vala_<?php echo $nr; ?> = jQuery('#jform_custom_button_fields_icomoon-<?php echo $nr; ?>').val();
|
|
// build new span
|
|
var span = '<span id="icon_custom_button_fields_icomoon_<?php echo $nr; ?>" class="icon-'+vala_<?php echo $nr; ?>+'"></span>';
|
|
// remove old one
|
|
jQuery('#icon_custom_button_fields_icomoon_<?php echo $nr; ?>').remove();
|
|
// add the new icon
|
|
jQuery('#jform_custom_button_fields_icomoon_<?php echo $nr; ?>_chzn').closest("td").append(span);
|
|
});
|
|
});
|
|
<?php endforeach; ?>jQuery(function() {
|
|
jQuery("code").click(function() {
|
|
jQuery(this).selText().addClass("selected");
|
|
});
|
|
});
|
|
|
|
jQuery.fn.selText = function() {
|
|
var obj = this[0];
|
|
if (jQuery.browser.msie) {
|
|
var range = obj.offsetParent.createTextRange();
|
|
range.moveToElementText(obj);
|
|
range.select();
|
|
} else if (jQuery.browser.mozilla || $.browser.opera) {
|
|
var selection = obj.ownerDocument.defaultView.getSelection();
|
|
var range = obj.ownerDocument.createRange();
|
|
range.selectNodeContents(obj);
|
|
selection.removeAllRanges();
|
|
selection.addRange(range);
|
|
} else if (jQuery.browser.safari) {
|
|
var selection = obj.ownerDocument.defaultView.getSelection();
|
|
selection.setBaseAndExtent(obj, 0, obj, 1);
|
|
}
|
|
return this;
|
|
}
|
|
|
|
jQuery('#adminForm').on('change', '#jform_snippet',function (e) {
|
|
e.preventDefault();
|
|
// get type value
|
|
var snippetId = jQuery("#jform_snippet option:selected").val();
|
|
getSnippetDetails(snippetId);
|
|
});
|
|
|
|
jQuery(document).ready(function() {
|
|
// get type value
|
|
var snippetId = jQuery("#jform_snippet option:selected").val();
|
|
getSnippetDetails(snippetId);
|
|
});
|
|
|
|
jQuery('#adminForm').on('change', '#jform_dynamic_get',function (e) {
|
|
e.preventDefault();
|
|
// get type value
|
|
var dynamicId = jQuery("#jform_dynamic_get option:selected").val();
|
|
getDynamicValues(dynamicId);
|
|
});
|
|
|
|
jQuery(document).ready(function() {
|
|
// get type value
|
|
var dynamicId = jQuery("#jform_dynamic_get option:selected").val();
|
|
getDynamicValues(dynamicId);
|
|
});
|
|
|
|
jQuery(document).ready(function() {
|
|
// get type value
|
|
getLayoutDetails(9999);
|
|
getTemplateDetails(9999);
|
|
});
|
|
</script>
|