Added the needed changes to the core compiler to manage dynamic headers per/controller via pro-member-plugin. gh-548

This commit is contained in:
Llewellyn van der Merwe 2020-10-26 22:30:51 +02:00
parent 2ea64446af
commit 54e4f96edf
Signed by untrusted user: Llewellyn
GPG Key ID: EFC0C720A240551C
11 changed files with 74 additions and 16 deletions

View File

@ -144,7 +144,7 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) + *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder) + *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
+ *First Build*: 30th April, 2015 + *First Build*: 30th April, 2015
+ *Last Build*: 21st October, 2020 + *Last Build*: 26th October, 2020
+ *Version*: 2.11.6 + *Version*: 2.11.6
+ *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved. + *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt + *License*: GNU General Public License version 2 or later; see LICENSE.txt

View File

@ -144,7 +144,7 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) + *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder) + *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
+ *First Build*: 30th April, 2015 + *First Build*: 30th April, 2015
+ *Last Build*: 21st October, 2020 + *Last Build*: 26th October, 2020
+ *Version*: 2.11.6 + *Version*: 2.11.6
+ *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved. + *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt + *License*: GNU General Public License version 2 or later; see LICENSE.txt

View File

@ -17,7 +17,7 @@ defined('_JEXEC') or die('Restricted access');
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
use Joomla\Utilities\ArrayHelper; ###ADMIN_VIEWS_CONTROLLER_HEADER###
/** /**
* ###Views### Controller * ###Views### Controller

View File

@ -17,7 +17,7 @@ defined('_JEXEC') or die('Restricted access');
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
use Joomla\Utilities\ArrayHelper; ###CUSTOM_ADMIN_VIEWS_CONTROLLER_HEADER###
/** /**
* ###SViews### Controller * ###SViews### Controller

View File

@ -17,7 +17,7 @@ defined('_JEXEC') or die('Restricted access');
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
use Joomla\Utilities\ArrayHelper; ###ADMIN_VIEW_CONTROLLER_HEADER###
/** /**
* ###View### Controller * ###View### Controller

View File

@ -17,7 +17,7 @@ defined('_JEXEC') or die('Restricted access');
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
use Joomla\Utilities\ArrayHelper; ###SITE_VIEW_CONTROLLER_HEADER###
/** /**
* ###Component### ###SView### Controller * ###Component### ###SView### Controller

View File

@ -17,7 +17,7 @@ defined('_JEXEC') or die('Restricted access');
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
use Joomla\Utilities\ArrayHelper; ###SITE_ADMIN_VIEW_CONTROLLER_HEADER###
/** /**
* ###View### Controller * ###View### Controller

View File

@ -17,7 +17,7 @@ defined('_JEXEC') or die('Restricted access');
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
use Joomla\Utilities\ArrayHelper; ###CUSTOM_ADMIN_VIEW_CONTROLLER_HEADER###
/** /**
* ###Component### ###SView### Controller * ###Component### ###SView### Controller

View File

@ -20937,26 +20937,28 @@ class Interpretation extends Fields
public function setClassHeaders($context, $viewName) public function setClassHeaders($context, $viewName)
{ {
// set the default // set the defaults
$headers = array();
switch($context) switch($context)
{ {
case 'admin.view.model': case 'admin.view.model':
case 'site.admin.view.model': case 'site.admin.view.model':
$header = 'use Joomla\Registry\Registry;'; $headers[] = 'use Joomla\Registry\Registry;';
$header .= PHP_EOL . 'use Joomla\String\StringHelper;'; $headers[] = 'use Joomla\String\StringHelper;';
$header .= PHP_EOL . 'use Joomla\Utilities\ArrayHelper;'; $headers[] = 'use Joomla\Utilities\ArrayHelper;';
break; break;
default: default:
$header = 'use Joomla\Utilities\ArrayHelper;'; $headers[] = 'use Joomla\Utilities\ArrayHelper;';
break; break;
} }
// Trigger Event: jcb_ce_setClassHeader // Trigger Event: jcb_ce_setClassHeader
$this->triggerEvent( $this->triggerEvent(
'jcb_ce_setClassHeader', 'jcb_ce_setClassHeader',
array(&$this->componentContext, &$context, &$viewName, array(&$this->componentContext, &$context, &$viewName,
&$header) &$headers)
); );
return $header; // return the headers
return implode(PHP_EOL, $headers);
} }
protected function setModelFieldRelation($item, $viewName_list, $tab) protected function setModelFieldRelation($item, $viewName_list, $tab)

View File

@ -614,6 +614,12 @@ class Infusion extends Interpretation
$viewName_single, $view $viewName_single, $view
); );
} }
// SITE_VIEW_CONTROLLER_HEADER <<<DYNAMIC>>> add the header details for the model
$this->fileContentDynamic[$viewName_single][$this->hhh
. 'SITE_ADMIN_VIEW_CONTROLLER_HEADER' . $this->hhh]
= $this->setClassHeaders(
'site.admin.view.controller', $viewName_single
);
// SITE_ADMIN_VIEW_MODEL_HEADER <<<DYNAMIC>>> add the header details for the model // SITE_ADMIN_VIEW_MODEL_HEADER <<<DYNAMIC>>> add the header details for the model
$this->fileContentDynamic[$viewName_single][$this->hhh $this->fileContentDynamic[$viewName_single][$this->hhh
. 'SITE_ADMIN_VIEW_MODEL_HEADER' . $this->hhh] . 'SITE_ADMIN_VIEW_MODEL_HEADER' . $this->hhh]
@ -627,6 +633,12 @@ class Infusion extends Interpretation
. 'TABLAYOUTFIELDSARRAY' . $this->hhh] . 'TABLAYOUTFIELDSARRAY' . $this->hhh]
= $this->getTabLayoutFieldsArray($viewName_single); = $this->getTabLayoutFieldsArray($viewName_single);
// ADMIN_VIEW_CONTROLLER_HEADER <<<DYNAMIC>>> add the header details for the model
$this->fileContentDynamic[$viewName_single][$this->hhh
. 'ADMIN_VIEW_CONTROLLER_HEADER' . $this->hhh]
= $this->setClassHeaders(
'admin.view.controller', $viewName_single
);
// ADMIN_VIEW_MODEL_HEADER <<<DYNAMIC>>> add the header details for the model // ADMIN_VIEW_MODEL_HEADER <<<DYNAMIC>>> add the header details for the model
$this->fileContentDynamic[$viewName_single][$this->hhh $this->fileContentDynamic[$viewName_single][$this->hhh
. 'ADMIN_VIEW_MODEL_HEADER' . $this->hhh] . 'ADMIN_VIEW_MODEL_HEADER' . $this->hhh]
@ -909,6 +921,12 @@ class Infusion extends Interpretation
= ''; = '';
} }
// ADMIN_VIEWS_CONTROLLER_HEADER <<<DYNAMIC>>> add the header details for the model
$this->fileContentDynamic[$viewName_list][$this->hhh
. 'ADMIN_VIEWS_CONTROLLER_HEADER' . $this->hhh]
= $this->setClassHeaders(
'admin.views.controller', $viewName_list
);
// ADMIN_VIEWS_MODEL_HEADER <<<DYNAMIC>>> add the header details for the model // ADMIN_VIEWS_MODEL_HEADER <<<DYNAMIC>>> add the header details for the model
$this->fileContentDynamic[$viewName_list][$this->hhh $this->fileContentDynamic[$viewName_list][$this->hhh
. 'ADMIN_VIEWS_MODEL_HEADER' . $this->hhh] . 'ADMIN_VIEWS_MODEL_HEADER' . $this->hhh]
@ -1346,6 +1364,12 @@ class Infusion extends Interpretation
// set headers based on the main get type // set headers based on the main get type
if ($view['settings']->main_get->gettype == 1) if ($view['settings']->main_get->gettype == 1)
{ {
// CUSTOM_ADMIN_VIEW_CONTROLLER_HEADER <<<DYNAMIC>>> add the header details for the model
$this->fileContentDynamic[$view['settings']->code][$this->hhh
. 'CUSTOM_ADMIN_VIEW_CONTROLLER_HEADER' . $this->hhh]
= $this->setClassHeaders(
'custom.admin.view.controller', $view['settings']->code
);
// CUSTOM_ADMIN_VIEW_MODEL_HEADER <<<DYNAMIC>>> add the header details for the model // CUSTOM_ADMIN_VIEW_MODEL_HEADER <<<DYNAMIC>>> add the header details for the model
$this->fileContentDynamic[$view['settings']->code][$this->hhh $this->fileContentDynamic[$view['settings']->code][$this->hhh
. 'CUSTOM_ADMIN_VIEW_MODEL_HEADER' . $this->hhh] . 'CUSTOM_ADMIN_VIEW_MODEL_HEADER' . $this->hhh]
@ -1355,6 +1379,12 @@ class Infusion extends Interpretation
} }
elseif ($view['settings']->main_get->gettype == 2) elseif ($view['settings']->main_get->gettype == 2)
{ {
// CUSTOM_ADMIN_VIEWS_CONTROLLER_HEADER <<<DYNAMIC>>> add the header details for the model
$this->fileContentDynamic[$view['settings']->code][$this->hhh
. 'CUSTOM_ADMIN_VIEWS_CONTROLLER_HEADER' . $this->hhh]
= $this->setClassHeaders(
'custom.admin.views.controller', $view['settings']->code
);
// CUSTOM_ADMIN_VIEWS_MODEL_HEADER <<<DYNAMIC>>> add the header details for the model // CUSTOM_ADMIN_VIEWS_MODEL_HEADER <<<DYNAMIC>>> add the header details for the model
$this->fileContentDynamic[$view['settings']->code][$this->hhh $this->fileContentDynamic[$view['settings']->code][$this->hhh
. 'CUSTOM_ADMIN_VIEWS_MODEL_HEADER' . $this->hhh] . 'CUSTOM_ADMIN_VIEWS_MODEL_HEADER' . $this->hhh]
@ -1797,6 +1827,19 @@ class Infusion extends Interpretation
// set headers based on the main get type // set headers based on the main get type
if ($view['settings']->main_get->gettype == 1) if ($view['settings']->main_get->gettype == 1)
{ {
// insure the controller headers are added
if (ComponentbuilderHelper::checkString(
$view['settings']->php_controller
)
&& $view['settings']->php_controller != '//')
{
// SITE_VIEW_CONTROLLER_HEADER <<<DYNAMIC>>> add the header details for the model
$this->fileContentDynamic[$view['settings']->code][$this->hhh
. 'SITE_VIEW_CONTROLLER_HEADER' . $this->hhh]
= $this->setClassHeaders(
'site.view.controller', $view['settings']->code
);
}
// SITE_VIEW_MODEL_HEADER <<<DYNAMIC>>> add the header details for the model // SITE_VIEW_MODEL_HEADER <<<DYNAMIC>>> add the header details for the model
$this->fileContentDynamic[$view['settings']->code][$this->hhh $this->fileContentDynamic[$view['settings']->code][$this->hhh
. 'SITE_VIEW_MODEL_HEADER' . $this->hhh] . 'SITE_VIEW_MODEL_HEADER' . $this->hhh]
@ -1806,6 +1849,19 @@ class Infusion extends Interpretation
} }
elseif ($view['settings']->main_get->gettype == 2) elseif ($view['settings']->main_get->gettype == 2)
{ {
// insure the controller headers are added
if (ComponentbuilderHelper::checkString(
$view['settings']->php_controller
)
&& $view['settings']->php_controller != '//')
{
// SITE_VIEW_CONTROLLER_HEADER <<<DYNAMIC>>> add the header details for the model
$this->fileContentDynamic[$view['settings']->code][$this->hhh
. 'SITE_VIEW_CONTROLLER_HEADER' . $this->hhh]
= $this->setClassHeaders(
'site.views.controller', $view['settings']->code
);
}
// SITE_VIEWS_MODEL_HEADER <<<DYNAMIC>>> add the header details for the model // SITE_VIEWS_MODEL_HEADER <<<DYNAMIC>>> add the header details for the model
$this->fileContentDynamic[$view['settings']->code][$this->hhh $this->fileContentDynamic[$view['settings']->code][$this->hhh
. 'SITE_VIEWS_MODEL_HEADER' . $this->hhh] . 'SITE_VIEWS_MODEL_HEADER' . $this->hhh]

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.2" method="upgrade"> <extension type="component" version="3.2" method="upgrade">
<name>COM_COMPONENTBUILDER</name> <name>COM_COMPONENTBUILDER</name>
<creationDate>21st October, 2020</creationDate> <creationDate>26th October, 2020</creationDate>
<author>Llewellyn van der Merwe</author> <author>Llewellyn van der Merwe</author>
<authorEmail>llewellyn@joomlacomponentbuilder.com</authorEmail> <authorEmail>llewellyn@joomlacomponentbuilder.com</authorEmail>
<authorUrl>http://www.joomlacomponentbuilder.com</authorUrl> <authorUrl>http://www.joomlacomponentbuilder.com</authorUrl>