Compare commits

..

6 Commits

Author SHA1 Message Date
df401b9add Update SmartyExtend set vars calls with parameter changes
Frontend: drop $cms, add $smarty_data array
Backend: if $cms is set content_path options array entry must be set
2023-03-13 11:33:23 +09:00
4b9e393971 Published v8.0.6 2023-03-13 10:52:15 +09:00
6cda319ed0 Bug fix for SmartyExtend set var call 2023-03-13 10:51:09 +09:00
583edbfe0a Published v8.0.5 2023-03-13 09:29:30 +09:00
67a8e1a533 Switch from parameter list to options list for SmartyExtend var set
The SmartyExtend var set mothod calls switched to options list
2023-03-13 09:27:46 +09:00
38788dddce CoreLibs v8.0.5 release 2023-03-10 15:30:06 +09:00
2 changed files with 96 additions and 88 deletions

View File

@@ -1 +1 @@
8.0.3 8.0.6

View File

@@ -452,96 +452,95 @@ class SmartyExtend extends \Smarty
* wrapper call for setSmartyVars * wrapper call for setSmartyVars
* this is for frontend type and will not set any only admin needed variables * this is for frontend type and will not set any only admin needed variables
* *
* @param string|null $compile_dir BASE . TEMPLATES_C * @param array<string,string> $options list with the following value:
* @param string|null $cache_dir BASE . CACHE * compile_dir :BASE . TEMPLATES_C
* @param string|null $set_js JS * cache_dir :BASE . CACHE
* @param string|null $set_css CSS * js :JS
* @param string|null $set_font FONT * css :CSS
* @param string|null $set_default_encoding DEFAULT_ENCODING * font :FONT
* @param string|null $set_g_title G_TITLE * default_encoding :DEFAULT_ENCODING
* @param string|null $set_stylesheet STYLESHEET * g_title :G_TITLE
* @param string|null $set_javascript JAVASCRIPT * stylesheet :STYLESHEET
* @param \CoreLibs\Admin\Backend|null $cms Optinal Admin Backend for * javascript :JAVASCRIPT
* smarty variables merge * @param array<string,mixed> $smarty_data array of three keys
* that hold smarty set strings
* HEADER, DATA, DEBUG_DATA
* @return void * @return void
*/ */
public function setSmartyVarsFrontend( public function setSmartyVarsFrontend(
?string $compile_dir = null, array $options,
?string $cache_dir = null, array $smarty_data
?string $set_js = null,
?string $set_css = null,
?string $set_font = null,
?string $set_default_encoding = null,
?string $set_g_title = null,
?string $set_stylesheet = null,
?string $set_javascript = null,
?\CoreLibs\Admin\Backend $cms = null
): void { ): void {
$this->setSmartyVars( $this->setSmartyVars(
false, false,
$cms, $smarty_data,
$compile_dir, null,
$cache_dir, $options['compile_dir'] ?? null,
$set_js, $options['cache_dir'] ?? null,
$set_css, $options['js'] ?? null,
$set_font, $options['css'] ?? null,
$set_default_encoding, $options['font'] ?? null,
$set_g_title, $options['default_encoding'] ?? null,
$options['g_title'] ?? null,
null, null,
null, null,
null, null,
null, null,
$set_stylesheet, null,
$set_javascript $options['stylesheet'] ?? null,
$options['javascript'] ?? null
); );
} }
/** /**
* wrapper call for setSmartyVars * wrapper call for setSmartyVars
* this is only for admin interface and will set additional variables * this is only for admin interface and will set additional variables
* @param string|null $compile_dir BASE . TEMPLATES_C * @param array<string,string> $options list with the following value:
* @param string|null $cache_dir BASE . CACHE * compile_dir :BASE . TEMPLATES_C
* @param string|null $set_js JS * cache_dir :BASE . CACHE
* @param string|null $set_css CSS * js :JS
* @param string|null $set_font FONT * css :CSS
* @param string|null $set_default_encoding DEFAULT_ENCODING * font :FONT
* @param string|null $set_g_title G_TITLE * default_encoding :DEFAULT_ENCODING
* @param string|null $set_admin_stylesheet ADMIN_STYLESHEET * g_title :G_TITLE
* @param string|null $set_admin_javascript ADMIN_JAVASCRIPT * admin_stylesheet :ADMIN_STYLESHEET
* @param string|null $set_page_width PAGE_WIDTH * admin_javascript :ADMIN_JAVASCRIPT
* @param string|null $set_user_name _SESSION['USER_NAME'] * page_width :PAGE_WIDTH
* content_path :CONTENT_PATH
* user_name :_SESSION['USER_NAME']
* @param \CoreLibs\Admin\Backend|null $cms Optinal Admin Backend for * @param \CoreLibs\Admin\Backend|null $cms Optinal Admin Backend for
* smarty variables merge * smarty variables merge
* @return void * @return void
*/ */
public function setSmartyVarsAdmin( public function setSmartyVarsAdmin(
?string $compile_dir = null, array $options,
?string $cache_dir = null,
?string $set_js = null,
?string $set_css = null,
?string $set_font = null,
?string $set_default_encoding = null,
?string $set_g_title = null,
?string $set_admin_stylesheet = null,
?string $set_admin_javascript = null,
?string $set_page_width = null,
?string $set_user_name = null,
?\CoreLibs\Admin\Backend $cms = null ?\CoreLibs\Admin\Backend $cms = null
): void { ): void {
// if we have cms data, check for array blocks and build
$smarty_data = [];
if ($cms !== null) {
$smarty_data = [
'HEADER' => $cms->HEADER,
'DATA' => $cms->DATA,
'DEBUG_DATA' => $cms->DEBUG_DATA
];
}
$this->setSmartyVars( $this->setSmartyVars(
true, true,
$smarty_data,
$cms, $cms,
$compile_dir, $options['compile_dir'] ?? null,
$cache_dir, $options['cache_dir'] ?? null,
$set_js, $options['js'] ?? null,
$set_css, $options['css'] ?? null,
$set_font, $options['font'] ?? null,
$set_g_title, $options['g_title'] ?? null,
$set_default_encoding, $options['default_encoding'] ?? null,
$set_admin_stylesheet, $options['admin_stylesheet'] ?? null,
$set_admin_javascript, $options['admin_javascript'] ?? null,
$set_page_width, $options['page_width'] ?? null,
$set_user_name, $options['content_path'] ?? null,
$options['user_name'] ?? null,
null, null,
null null
); );
@@ -553,6 +552,7 @@ class SmartyExtend extends \Smarty
* *
* @param bool $admin_call default false * @param bool $admin_call default false
* will set admin only variables * will set admin only variables
* @param array<string,mixed> $smarty_data smarty data to merge
* @param \CoreLibs\Admin\Backend|null $cms Optinal Admin Backend for * @param \CoreLibs\Admin\Backend|null $cms Optinal Admin Backend for
* smarty variables merge * smarty variables merge
* @param string|null $compile_dir BASE . TEMPLATES_C * @param string|null $compile_dir BASE . TEMPLATES_C
@@ -565,13 +565,15 @@ class SmartyExtend extends \Smarty
* @param string|null $set_admin_stylesheet ADMIN_STYLESHEET * @param string|null $set_admin_stylesheet ADMIN_STYLESHEET
* @param string|null $set_admin_javascript ADMIN_JAVASCRIPT * @param string|null $set_admin_javascript ADMIN_JAVASCRIPT
* @param string|null $set_page_width PAGE_WIDTH * @param string|null $set_page_width PAGE_WIDTH
* @param string|null $set_content_path CONTENT_PATH (only if $cms set and admin)
* @param string|null $set_user_name _SESSION['USER_NAME']
* @param string|null $set_stylesheet STYLESHEET * @param string|null $set_stylesheet STYLESHEET
* @param string|null $set_javascript JAVASCRIPT * @param string|null $set_javascript JAVASCRIPT
* @param string|null $set_user_name _SESSION['USER_NAME']
* @return void * @return void
*/ */
private function setSmartyVars( private function setSmartyVars(
bool $admin_call, bool $admin_call,
array $smarty_data = [],
?\CoreLibs\Admin\Backend $cms = null, ?\CoreLibs\Admin\Backend $cms = null,
?string $compile_dir = null, ?string $compile_dir = null,
?string $cache_dir = null, ?string $cache_dir = null,
@@ -583,6 +585,7 @@ class SmartyExtend extends \Smarty
?string $set_admin_stylesheet = null, ?string $set_admin_stylesheet = null,
?string $set_admin_javascript = null, ?string $set_admin_javascript = null,
?string $set_page_width = null, ?string $set_page_width = null,
?string $set_content_path = null,
?string $set_user_name = null, ?string $set_user_name = null,
?string $set_stylesheet = null, ?string $set_stylesheet = null,
?string $set_javascript = null, ?string $set_javascript = null,
@@ -609,6 +612,9 @@ class SmartyExtend extends \Smarty
$set_stylesheet === null || $set_stylesheet === null ||
$set_javascript === null $set_javascript === null
) )
) ||
(
$admin_call === true && $cms !== null && $set_content_path === null
) )
) { ) {
/** @deprecated setSmartyVars call without parameters */ /** @deprecated setSmartyVars call without parameters */
@@ -628,25 +634,12 @@ class SmartyExtend extends \Smarty
$set_admin_stylesheet = $set_admin_stylesheet ?? ADMIN_STYLESHEET; $set_admin_stylesheet = $set_admin_stylesheet ?? ADMIN_STYLESHEET;
$set_admin_javascript = $set_admin_javascript ?? ADMIN_JAVASCRIPT; $set_admin_javascript = $set_admin_javascript ?? ADMIN_JAVASCRIPT;
$set_page_width = $set_page_width ?? PAGE_WIDTH; $set_page_width = $set_page_width ?? PAGE_WIDTH;
$set_content_path = $set_content_path ?? CONTENT_PATH;
$set_stylesheet = $set_stylesheet ?? STYLESHEET; $set_stylesheet = $set_stylesheet ?? STYLESHEET;
$set_javascript = $set_javascript ?? JAVASCRIPT; $set_javascript = $set_javascript ?? JAVASCRIPT;
$set_user_name = $set_user_name ?? $_SESSION['USER_NAME'] ?? ''; $set_user_name = $set_user_name ?? $_SESSION['USER_NAME'] ?? '';
// depreacte call globals cms on null 4mcs // merge additional smarty data
if ( $this->mergeCmsSmartyVars($smarty_data);
$cms === null &&
isset($GLOBALS['cms'])
) {
/** @deprecated setSmartyVars globals cms is deprecated */
trigger_error(
'Calling setSmartyVars without cms parameter when needed is deprecated',
E_USER_DEPRECATED
);
}
// this is ugly
$cms = $cms ?? $GLOBALS['cms'] ?? null;
if ($cms instanceof \CoreLibs\Admin\Backend) {
$this->mergeCmsSmartyVars($cms);
}
// trigger flags // trigger flags
$this->HEADER['USE_PROTOTYPE'] = $this->USE_PROTOTYPE; $this->HEADER['USE_PROTOTYPE'] = $this->USE_PROTOTYPE;
@@ -688,12 +681,27 @@ class SmartyExtend extends \Smarty
$this->DATA['FORM_ACTION'] = $this->FORM_ACTION; $this->DATA['FORM_ACTION'] = $this->FORM_ACTION;
// special for admin // special for admin
if ($admin_call === true) { if ($admin_call === true) {
// depreacte call globals cms on null 4mcs
if (
$cms === null &&
isset($GLOBALS['cms'])
) {
/** @deprecated setSmartyVars globals cms is deprecated */
trigger_error(
'Calling setSmartyVars without cms parameter when needed is deprecated',
E_USER_DEPRECATED
);
}
// this is ugly
$cms = $cms ?? $GLOBALS['cms'] ?? null;
// set ACL extra show // set ACL extra show
if ($cms instanceof \CoreLibs\Admin\Backend) { if ($cms instanceof \CoreLibs\Admin\Backend) {
$this->DATA['show_ea_extra'] = $cms->acl['show_ea_extra'] ?? false; $this->DATA['show_ea_extra'] = $cms->acl['show_ea_extra'] ?? false;
$this->DATA['ADMIN'] = $cms->acl['admin'] ?? 0; $this->DATA['ADMIN'] = $cms->acl['admin'] ?? 0;
// top menu // top menu
$this->DATA['nav_menu'] = $cms->adbTopMenu(); $this->DATA['nav_menu'] = $cms->adbTopMenu(
$set_content_path
);
$this->DATA['nav_menu_count'] = count($this->DATA['nav_menu']); $this->DATA['nav_menu_count'] = count($this->DATA['nav_menu']);
// messages = ['msg' =>, 'class' => 'error/warning/...'] // messages = ['msg' =>, 'class' => 'error/warning/...']
$this->DATA['messages'] = $cms->messages; $this->DATA['messages'] = $cms->messages;
@@ -753,18 +761,18 @@ class SmartyExtend extends \Smarty
/** /**
* merge outside object HEADER/DATA/DEBUG_DATA vars into the smarty class * merge outside object HEADER/DATA/DEBUG_DATA vars into the smarty class
* *
* @param \CoreLibs\Admin\Backend $cms object that has header/data/debug_data * @param array<string,mixed> $smarty_data array that has header/data/debug_data
* @return void * @return void
*/ */
public function mergeCmsSmartyVars(\CoreLibs\Admin\Backend $cms): void public function mergeCmsSmartyVars(array $smarty_data): void
{ {
// array merge HEADER, DATA, DEBUG DATA // array merge HEADER, DATA, DEBUG DATA
foreach (['HEADER', 'DATA', 'DEBUG_DATA'] as $ext_smarty) { foreach (['HEADER', 'DATA', 'DEBUG_DATA'] as $ext_smarty) {
if ( if (
isset($cms->{$ext_smarty}) && isset($smarty_data[$ext_smarty]) &&
is_array($cms->{$ext_smarty}) is_array($smarty_data[$ext_smarty])
) { ) {
$this->{$ext_smarty} = array_merge($this->{$ext_smarty}, $cms->{$ext_smarty}); $this->{$ext_smarty} = array_merge($this->{$ext_smarty}, $smarty_data[$ext_smarty]);
} }
} }
} }