Skip to content

Commit 97b1cd1

Browse files
committed
EFAQ 6.1.0 release
= 6.1.0 = * NumberDropdown bug fixed in StaticFormatter. * All table classes are now marked as final. * For ‘getDataFromDatabaseById’ used array($paramColumns) with getValidSelect instead of paramColumn. * ‘esc_html’, and ‘esc_br_html’ are now used everywhere. * Import demo and global settings are now fully translated. * Added support for ‘style’ [0-9]+ shortcode parameter. * Added a note for data population in status page. * Replaced ‘getPluginJS_ClassPrefix’ & ‘getPluginJS_VariablePrefix’ with native call. * ‘StaticCookie’ and ‘StaticSession’ caching model classes improved.
1 parent df86675 commit 97b1cd1

File tree

78 files changed

+1286
-803
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+1286
-803
lines changed

Controllers/Admin/AbstractController.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,17 @@ public function __construct(ConfigurationInterface &$paramConf, LanguageInterfac
3131
$this->dbSets->setAll();
3232

3333
// Message handler - should always be at the begging of method
34-
$printDebugMessage = StaticValidator::inWP_Debug() ? StaticSession::getHTMLOnce('admin_debug_message') : '';
35-
$printErrorMessage = StaticSession::getValueOnce('admin_error_message');
36-
$printOkayMessage = StaticSession::getValueOnce('admin_okay_message');
34+
$ksesedDebugHTML = StaticValidator::inWP_Debug() ? StaticSession::getKsesedHTML_Once('admin_debug_html') : '';
35+
$errorMessage = StaticSession::getValueOnce('admin_error_message');
36+
$okayMessage = StaticSession::getValueOnce('admin_okay_message');
3737

3838
// Initialize the page view and set it's conf and lang objects
3939
$this->view = new PageView();
4040
$this->view->staticURLs = $this->conf->getRouting()->getFolderURLs();
4141
$this->view->lang = $this->lang->getAll();
4242
$this->view->settings = $this->dbSets->getAll();
43-
$this->view->debugMessage = $printDebugMessage;
44-
$this->view->errorMessage = $printErrorMessage;
45-
$this->view->okayMessage = $printOkayMessage;
43+
$this->view->ksesedDebugHTML = $ksesedDebugHTML;
44+
$this->view->errorMessage = $errorMessage;
45+
$this->view->okayMessage = $okayMessage;
4646
}
4747
}

Controllers/Admin/AssetController.php

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,30 +38,32 @@ public function enqueueMandatoryPlainJS()
3838
{
3939
$dataTablesRelPath = 'DataTables'.DIRECTORY_SEPARATOR.'Plugins'.DIRECTORY_SEPARATOR.'i18n'.DIRECTORY_SEPARATOR;
4040
$dataTablesRelURL = 'DataTables/Plugins/i18n/';
41-
$dataTablesLangFilename = $this->lang->getPrint('DATATABLES_LANG').'.json';
41+
$dataTablesLangFilename = $this->lang->getText('DATATABLES_LANG').'.json';
4242
if(is_readable($this->conf->getRouting()->get3rdPartyAssetsPath($dataTablesRelPath.$dataTablesLangFilename)) === FALSE)
4343
{
4444
$dataTablesLangFilename = 'English.json';
4545
}
4646

4747
$pluginVars = array(
48-
'DATATABLES_LANG_URL' => $this->conf->getRouting()->get3rdPartyAssetsURL($dataTablesRelURL.$dataTablesLangFilename, TRUE),
48+
// NOTE: As this is a JS context, we should use 'esc_js' instead of 'esc_url' even for URL JS var,
49+
// See for more information: https://wordpress.stackexchange.com/a/13580/45227
50+
'DATATABLES_LANG_URL' => esc_js($this->conf->getRouting()->get3rdPartyAssetsURL($dataTablesRelURL.$dataTablesLangFilename, TRUE)),
4951
);
5052
$pluginLang = array(
51-
'LANG_FAQ_DELETING_DIALOG_TEXT' => $this->lang->getPrint('LANG_FAQ_DELETING_DIALOG_TEXT'),
53+
'LANG_FAQ_DELETING_DIALOG_TEXT' => $this->lang->escJS('LANG_FAQ_DELETING_DIALOG_TEXT'),
5254
);
5355

5456
if(static::$mandatoryPlainJSInitialized === FALSE)
5557
{
5658
static::$mandatoryPlainJSInitialized = TRUE;
5759
?>
58-
<script type="text/javascript">var <?=$this->conf->getPluginJS_ClassPrefix();?>Vars;</script>
59-
<script type="text/javascript">var <?=$this->conf->getPluginJS_ClassPrefix();?>Lang;</script>
60+
<script type="text/javascript">var ExpandableFAQ_Vars;</script>
61+
<script type="text/javascript">var ExpandableFAQ_Lang;</script>
6062
<?php
6163
}
6264
?>
63-
<script type="text/javascript"><?=$this->conf->getPluginJS_ClassPrefix();?>Vars = <?=json_encode($pluginVars, JSON_FORCE_OBJECT);?>;</script>
64-
<script type="text/javascript"><?=$this->conf->getPluginJS_ClassPrefix();?>Lang = <?=json_encode($pluginLang, JSON_FORCE_OBJECT);?>;</script>
65+
<script type="text/javascript">ExpandableFAQ_Vars = <?=json_encode($pluginVars, JSON_FORCE_OBJECT);?>;</script>
66+
<script type="text/javascript">ExpandableFAQ_Lang = <?=json_encode($pluginLang, JSON_FORCE_OBJECT);?>;</script>
6567
<?php
6668
}
6769

@@ -91,8 +93,7 @@ public function registerScripts()
9193
wp_register_script('jquery-validate', $this->conf->getRouting()->get3rdPartyAssetsURL('jquery-validation/jquery.validate.js'));
9294

9395
// 3. NS Admin script
94-
$filename = $this->conf->getPluginJS_ClassPrefix().'Admin.js';
95-
wp_register_script($this->conf->getPluginHandlePrefix().'admin', $this->conf->getRouting()->getAdminJS_URL($filename), array(), '1.0', TRUE);
96+
wp_register_script($this->conf->getPluginHandlePrefix().'admin', $this->conf->getRouting()->getAdminJS_URL('ExpandableFAQ_Admin.js'), array(), '1.0', TRUE);
9697
}
9798

9899
public function registerStyles()

Controllers/Admin/Demos/DemosController.php

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,13 @@ public function printContent()
2828
// Tab - import demo
2929
$objDemosObserver = new DemosObserver($this->conf, $this->lang);
3030
$this->view->importDemoTabFormAction = admin_url('admin.php?page='.$this->conf->getPluginURL_Prefix().'import-demo&noheader=true');
31-
$this->view->demosDropdownOptions = $objDemosObserver->getDropdownOptions(0, 0, $this->lang->getPrint('LANG_DEMO_SELECT_TEXT'));
31+
$this->view->trustedDemosDropdownOptionsHTML = $objDemosObserver->getTrustedDropdownOptionsHTML(0, 0, $this->lang->getText('LANG_DEMO_SELECT_TEXT'));
3232

33-
// Get the tab values
34-
$tabs = StaticFormatter::getTabParams(array(
33+
// 1. Set the view variables - Tabs
34+
$this->view->tabs = StaticFormatter::getTabParams(array(
3535
'demos'
3636
), 'demos', isset($_GET['tab']) ? $_GET['tab'] : '');
3737

38-
// 1. Set the view variables - Tab settings
39-
$this->view->demosTabChecked = !empty($tabs['demos']) ? ' checked="checked"' : '';
40-
4138
// Print the template
4239
$templateRelPathAndFileName = 'Demos'.DIRECTORY_SEPARATOR.'Tabs.php';
4340
echo $this->view->render($this->conf->getRouting()->getAdminTemplatesPath($templateRelPathAndFileName));

Controllers/Admin/Demos/ImportDemoController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ private function processImportDemo()
4242

4343
// INFO: This plugin does not use custom post types
4444

45-
StaticSession::cacheHTMLArray('admin_debug_message', $objDemo->getDebugMessages());
45+
StaticSession::cacheHTML_Array('admin_debug_html', $objDemo->getDebugMessages());
4646
StaticSession::cacheValueArray('admin_okay_message', $objDemo->getOkayMessages());
4747
StaticSession::cacheValueArray('admin_error_message', $objDemo->getErrorMessages());
4848

Controllers/Admin/FAQ/AddEditFAQ_Controller.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ private function processDelete($paramFAQId)
2424
$objFAQ = new FAQ($this->conf, $this->lang, $this->dbSets->getAll(), $paramFAQId);
2525
$objFAQ->delete();
2626

27-
StaticSession::cacheHTMLArray('admin_debug_message', $objFAQ->getDebugMessages());
27+
StaticSession::cacheHTML_Array('admin_debug_html', $objFAQ->getDebugMessages());
2828
StaticSession::cacheValueArray('admin_okay_message', $objFAQ->getOkayMessages());
2929
StaticSession::cacheValueArray('admin_error_message', $objFAQ->getErrorMessages());
3030

@@ -43,7 +43,7 @@ private function processSave($paramFAQ_Id)
4343
$objFAQ->registerForTranslation();
4444
}
4545

46-
StaticSession::cacheHTMLArray('admin_debug_message', $objFAQ->getDebugMessages());
46+
StaticSession::cacheHTML_Array('admin_debug_html', $objFAQ->getDebugMessages());
4747
StaticSession::cacheValueArray('admin_okay_message', $objFAQ->getOkayMessages());
4848
StaticSession::cacheValueArray('admin_error_message', $objFAQ->getErrorMessages());
4949

@@ -71,8 +71,8 @@ public function printContent()
7171
if(!is_null($localDetails))
7272
{
7373
$this->view->faqId = $localDetails['faq_id'];
74-
$this->view->faqQuestion = $localDetails['edit_faq_question'];
75-
$this->view->faqAnswer = $localDetails['edit_faq_answer'];
74+
$this->view->faqQuestion = $localDetails['faq_question'];
75+
$this->view->faqAnswer = $localDetails['faq_answer'];
7676
$this->view->faqOrder = $localDetails['faq_order'];
7777
} else
7878
{

Controllers/Admin/FAQ/FAQ_Controller.php

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,14 @@ public function printContent()
2929
// Create mandatory instances
3030
$objFAQsObserver = new FAQsObserver($this->conf, $this->lang, $this->dbSets->getAll());
3131

32-
// Get the tab values
33-
$tabs = StaticFormatter::getTabParams(
32+
// 1. Set the view variables - Tabs
33+
$this->view->tabs = StaticFormatter::getTabParams(
3434
array('faqs'), 'faqs', isset($_GET['tab']) ? $_GET['tab'] : ''
3535
);
3636

37-
// 1. Set the view variables - Tab settings
38-
$this->view->faqsTabChecked = !empty($tabs['faqs']) ? ' checked="checked"' : '';
39-
40-
4137
// 2. Set the view variables - other variables
4238
$this->view->addNewFAQ_URL = admin_url('admin.php?page='.$this->conf->getPluginURL_Prefix().'add-edit-faq&amp;faq_id=0');
43-
$this->view->adminFAQ_List = $objFAQsObserver->getAdminList();
39+
$this->view->trustedAdminFAQ_ListHTML = $objFAQsObserver->getTrustedAdminListHTML();
4440

4541
// Print the template
4642
$templateRelPathAndFileName = 'FAQ'.DIRECTORY_SEPARATOR.'ManagerTabs.php';

Controllers/Admin/Manual/ManualController.php

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,11 @@ public function __construct(ConfigurationInterface &$paramConf, LanguageInterfac
2424
*/
2525
public function printContent()
2626
{
27-
// Get the tab values
28-
$tabs = StaticFormatter::getTabParams(array(
27+
// 1. Set the view variables - Tabs
28+
$this->view->tabs = StaticFormatter::getTabParams(array(
2929
'instructions', 'shortcodes', 'shortcode-parameters', 'url-parameters-hashtags', 'ui-overriding'
3030
), 'instructions', isset($_GET['tab']) ? $_GET['tab'] : '');
3131

32-
// 1. Set the view variables - Tab settings
33-
$this->view->instructionsTabChecked = !empty($tabs['instructions']) ? ' checked="checked"' : '';
34-
$this->view->shortcodesTabChecked = !empty($tabs['shortcodes']) ? ' checked="checked"' : '';
35-
$this->view->shortcodeParametersTabChecked = !empty($tabs['shortcode-parameters']) ? ' checked="checked"' : '';
36-
$this->view->urlParametersHastagsTabChecked = !empty($tabs['url-parameters-hashtags']) ? ' checked="checked"' : '';
37-
$this->view->uiOverridingTabChecked = !empty($tabs['ui-overriding']) ? ' checked="checked"' : '';
38-
3932
// Print the template
4033
$templateRelPathAndFileName = 'Manual'.DIRECTORY_SEPARATOR.'Tabs.php';
4134
echo $this->view->render($this->conf->getRouting()->getAdminTemplatesPath($templateRelPathAndFileName));

Controllers/Admin/NetworkMenuController.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,18 @@ public function addMenu($paramMenuPosition = 97)
3434
{
3535
$validMenuPosition = intval($paramMenuPosition);
3636
$iconURL = $this->conf->getRouting()->getAdminImagesURL('Plugin.png');
37-
$URLPrefix = $this->conf->getPluginURL_Prefix();
37+
$urlPrefix = $this->conf->getPluginURL_Prefix();
3838

3939
// For admins only - update_plugins are official WordPress role for updates
4040
add_menu_page(
41-
$this->lang->getPrint('LANG_MENU_ACCORDION_FAQ_TEXT'), $this->lang->getPrint('LANG_MENU_ACCORDION_FAQ_TEXT'),
42-
"update_plugins", "{$URLPrefix}network-menu", array($this, "printNetworkStatus"), $iconURL, $validMenuPosition
41+
$this->lang->getText('LANG_MENU_ACCORDION_FAQ_TEXT'), $this->lang->getText('LANG_MENU_ACCORDION_FAQ_TEXT'),
42+
"update_plugins", "{$urlPrefix}network-menu", array($this, "printNetworkStatus"), $iconURL, $validMenuPosition
4343
);
4444
add_submenu_page(
45-
"{$URLPrefix}network-menu", $this->lang->getPrint('LANG_STATUS_NETWORK_TEXT'), $this->lang->getPrint('LANG_STATUS_NETWORK_TEXT'),
46-
"update_plugins", "{$URLPrefix}network-status", array($this, "printNetworkStatus")
45+
"{$urlPrefix}network-menu", $this->lang->getText('LANG_STATUS_NETWORK_TEXT'), $this->lang->getText('LANG_STATUS_NETWORK_TEXT'),
46+
"update_plugins", "{$urlPrefix}network-status", array($this, "printNetworkStatus")
4747
);
48-
remove_submenu_page("{$URLPrefix}network-menu", "{$URLPrefix}network-menu");
48+
remove_submenu_page("{$urlPrefix}network-menu", "{$urlPrefix}network-menu");
4949
}
5050

5151
// Network Status
@@ -76,7 +76,7 @@ private function processError($paramName, $paramErrorMessage)
7676
$sanitizedName = sanitize_text_field($paramName);
7777
$sanitizedErrorMessage = sanitize_text_field($paramErrorMessage);
7878
// Load errors only in local or global debug mode
79-
$this->errorMessages[] = sprintf($this->lang->getPrint('LANG_ERROR_IN_METHOD_TEXT'), $sanitizedName, $sanitizedErrorMessage);
79+
$this->errorMessages[] = sprintf($this->lang->getText('LANG_ERROR_IN_METHOD_TEXT'), $sanitizedName, $sanitizedErrorMessage);
8080

8181
// 'add_action('admin_notices', ...)' doesn't work here (maybe due to fact, that 'admin_notices' has to be registered not later than X point in code)
8282

Controllers/Admin/Settings/ChangeGlobalSettingsController.php

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ private function processSave()
3636
$objSetting = new Setting($this->conf, $this->lang, $key);
3737
$objSetting->saveNumber(isset($_POST[$key]) ? $_POST[$key] : 0, 0, array(0, 1), TRUE);
3838

39-
StaticSession::cacheValueArray('admin_okay_message', array($this->lang->getPrint('LANG_SETTINGS_GLOBAL_SETTINGS_UPDATED_TEXT')));
39+
StaticSession::cacheValueArray('admin_okay_message', array($this->lang->getText('LANG_SETTINGS_GLOBAL_SETTINGS_UPDATED_TEXT')));
4040

4141
wp_safe_redirect('admin.php?page='.$this->conf->getPluginURL_Prefix().'settings&tab=global-settings');
4242
exit;
@@ -51,25 +51,25 @@ public function getSettings()
5151

5252
if($this->dbSets->get('conf_use_sessions') == 1)
5353
{
54-
$selectUseSessions = '<option value="0">'.$this->lang->getPrint('LANG_NO_TEXT').'</option>'."\n";
55-
$selectUseSessions .= '<option value="1" selected="selected">'.$this->lang->getPrint('LANG_YES_TEXT').'</option>'."\n";
54+
$trustedUseSessionsHTML = '<option value="0">'.$this->lang->escHTML('LANG_NO_TEXT').'</option>'."\n";
55+
$trustedUseSessionsHTML .= '<option value="1" selected="selected">'.$this->lang->escHTML('LANG_YES_TEXT').'</option>'."\n";
5656
} else
5757
{
58-
$selectUseSessions = '<option value="0" selected="selected">'.$this->lang->getPrint('LANG_NO_TEXT').'</option>'."\n";
59-
$selectUseSessions .= '<option value="1">'.$this->lang->getPrint('LANG_YES_TEXT').'</option>'."\n";
58+
$trustedUseSessionsHTML = '<option value="0" selected="selected">'.$this->lang->escHTML('LANG_NO_TEXT').'</option>'."\n";
59+
$trustedUseSessionsHTML .= '<option value="1">'.$this->lang->escHTML('LANG_YES_TEXT').'</option>'."\n";
6060
}
61-
$retSettings['select_use_sessions'] = $selectUseSessions;
61+
$retSettings['trusted_use_sessions_html'] = $trustedUseSessionsHTML;
6262

6363
if($this->dbSets->get('conf_load_font_awesome_from_plugin') == 1)
6464
{
65-
$selectLoadFontAwesomeFromPlugin = '<option value="0">'.$this->lang->getPrint('LANG_SETTING_LOAD_FROM_OTHER_PLACE_TEXT').'</option>'."\n";
66-
$selectLoadFontAwesomeFromPlugin .= '<option value="1" selected="selected">'.$this->lang->getPrint('LANG_SETTING_LOAD_FROM_PLUGIN_TEXT').'</option>'."\n";
65+
$trustedLoadFontAwesomeFromPluginHTML = '<option value="0">'.$this->lang->escHTML('LANG_SETTING_LOAD_FROM_OTHER_PLACE_TEXT').'</option>'."\n";
66+
$trustedLoadFontAwesomeFromPluginHTML .= '<option value="1" selected="selected">'.$this->lang->escHTML('LANG_SETTING_LOAD_FROM_PLUGIN_TEXT').'</option>'."\n";
6767
} else
6868
{
69-
$selectLoadFontAwesomeFromPlugin = '<option value="0" selected="selected">'.$this->lang->getPrint('LANG_SETTING_LOAD_FROM_OTHER_PLACE_TEXT').'</option>'."\n";
70-
$selectLoadFontAwesomeFromPlugin .= '<option value="1">'.$this->lang->getPrint('LANG_SETTING_LOAD_FROM_PLUGIN_TEXT').'</option>'."\n";
69+
$trustedLoadFontAwesomeFromPluginHTML = '<option value="0" selected="selected">'.$this->lang->escHTML('LANG_SETTING_LOAD_FROM_OTHER_PLACE_TEXT').'</option>'."\n";
70+
$trustedLoadFontAwesomeFromPluginHTML .= '<option value="1">'.$this->lang->escHTML('LANG_SETTING_LOAD_FROM_PLUGIN_TEXT').'</option>'."\n";
7171
}
72-
$retSettings['select_load_font_awesome_from_plugin'] = $selectLoadFontAwesomeFromPlugin;
72+
$retSettings['trusted_load_font_awesome_from_plugin_html'] = $trustedLoadFontAwesomeFromPluginHTML;
7373

7474

7575
return $retSettings;

Controllers/Admin/Settings/SettingsController.php

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,19 +30,15 @@ public function printContent()
3030
// Tab - global settings
3131
$objStylesObserver = new StylesObserver($this->conf, $this->lang, $this->dbSets->getAll());
3232
$this->view->globalSettingsTabFormAction = admin_url('admin.php?page='.$this->conf->getPluginURL_Prefix().'change-global-settings&noheader=true');
33-
$this->view->systemStylesDropdownOptions = $objStylesObserver->getDropdownOptions($this->dbSets->get('conf_system_style'));
33+
$this->view->trustedSystemStylesDropdownOptionsHTML = $objStylesObserver->getTrustedDropdownOptionsHTML($this->dbSets->get('conf_system_style'));
3434
$this->view->arrGlobalSettings = (new ChangeGlobalSettingsController($this->conf, $this->lang))->getSettings();
3535

36-
// Get the tab values
37-
$tabs = StaticFormatter::getTabParams(array(
36+
// Set the view variables - Tabs
37+
$this->view->tabs = StaticFormatter::getTabParams(array(
3838
'global-settings'
3939
), 'global-settings', isset($_GET['tab']) ? $_GET['tab'] : '');
4040

4141

42-
// Set the view variables - Tab settings
43-
$this->view->globalSettingsTabChecked = !empty($tabs['global-settings']) ? ' checked="checked"' : '';
44-
45-
4642
// Print the template
4743
$templateRelPathAndFileName = 'Settings'.DIRECTORY_SEPARATOR.'Tabs.php';
4844
echo $this->view->render($this->conf->getRouting()->getAdminTemplatesPath($templateRelPathAndFileName));

0 commit comments

Comments
 (0)