development update 2.5.6d2 to prepare the newly promised bugfix release adding a reference container template not using jQuery, plain JS instead.\nThe following is the changelog as drafted for this release: \n= 2.5.6 =\n- Bugfix: Reference container: optional alternative expanding and collapsing without jQuery for use with hard links, thanks to @hopper87it issue report.\n- Update: Documentation: slightly revise / update the plugin’s welcome page on WordPress.org.
git-svn-id: https://plugins.svn.wordpress.org/footnotes/trunk@2477898 b8457f37-d9ea-0310-8a92-e5e31aec5664
This commit is contained in:
parent
7f5499723b
commit
67c1f443ad
21 changed files with 200 additions and 36 deletions
|
@ -7,7 +7,7 @@
|
|||
* @since 1.5.0 14.09.14 14:47
|
||||
*
|
||||
*
|
||||
* @lastmodified 2021-02-18T2021+0100
|
||||
* @lastmodified 2021-02-19T2011+0100
|
||||
*
|
||||
* @since 2.0.4 restore arrow settings 2020-11-01T0509+0100
|
||||
* @since 2.1.0 read-on button label 2020-11-08T2148+0100
|
||||
|
@ -233,12 +233,17 @@ class MCI_Footnotes_Layout_Settings extends MCI_Footnotes_LayoutEngine {
|
|||
"em" => __("em", MCI_Footnotes_Config::C_STR_PLUGIN_NAME),
|
||||
"vw" => __("viewport width", MCI_Footnotes_Config::C_STR_PLUGIN_NAME),
|
||||
);
|
||||
// options for Yes/No select box:
|
||||
$l_arr_Enabled = array(
|
||||
"yes" => __("Yes", MCI_Footnotes_Config::C_STR_PLUGIN_NAME),
|
||||
"no" => __("No", MCI_Footnotes_Config::C_STR_PLUGIN_NAME)
|
||||
// options for reference container script mode:
|
||||
$l_arr_ScriptMode = array(
|
||||
"jquery" => __("jQuery", MCI_Footnotes_Config::C_STR_PLUGIN_NAME),
|
||||
"js" => __("plain JavaScript", MCI_Footnotes_Config::C_STR_PLUGIN_NAME)
|
||||
);
|
||||
|
||||
// options for Yes/No select box:
|
||||
$l_arr_Enabled = array(
|
||||
"yes" => __("Yes", MCI_Footnotes_Config::C_STR_PLUGIN_NAME),
|
||||
"no" => __("No", MCI_Footnotes_Config::C_STR_PLUGIN_NAME)
|
||||
);
|
||||
|
||||
// load template file
|
||||
$l_obj_Template = new MCI_Footnotes_Template(MCI_Footnotes_Template::C_STR_DASHBOARD, "settings-reference-container");
|
||||
// replace all placeholders
|
||||
|
@ -256,6 +261,10 @@ class MCI_Footnotes_Layout_Settings extends MCI_Footnotes_LayoutEngine {
|
|||
"label-collapse" => $this->addLabel(MCI_Footnotes_Settings::C_BOOL_REFERENCE_CONTAINER_COLLAPSE, __("Collapse by default:", MCI_Footnotes_Config::C_STR_PLUGIN_NAME)),
|
||||
"collapse" => $this->addSelectBox(MCI_Footnotes_Settings::C_BOOL_REFERENCE_CONTAINER_COLLAPSE, $l_arr_Enabled),
|
||||
|
||||
"label-script" => $this->addLabel(MCI_Footnotes_Settings::C_STR_FOOTNOTES_REFERENCE_CONTAINER_SCRIPT_MODE, __("Script mode:", MCI_Footnotes_Config::C_STR_PLUGIN_NAME)),
|
||||
"script" => $this->addSelectBox(MCI_Footnotes_Settings::C_STR_FOOTNOTES_REFERENCE_CONTAINER_SCRIPT_MODE, $l_arr_ScriptMode),
|
||||
"notice-script" => __("The plain JavaScript mode does not support scroll animation and will enable hard links with scroll offset.", MCI_Footnotes_Config::C_STR_PLUGIN_NAME),
|
||||
|
||||
"label-position" => $this->addLabel(MCI_Footnotes_Settings::C_STR_REFERENCE_CONTAINER_POSITION, __("Default position:", MCI_Footnotes_Config::C_STR_PLUGIN_NAME)),
|
||||
"position" => $this->addSelectBox(MCI_Footnotes_Settings::C_STR_REFERENCE_CONTAINER_POSITION, $l_arr_Positions),
|
||||
"notice-position" => sprintf(__("To use the position shortcode, please set the position to: %s", MCI_Footnotes_Config::C_STR_PLUGIN_NAME), '<span style="font-style: normal;">' . __("at the end of the post", MCI_Footnotes_Config::C_STR_PLUGIN_NAME) . '</span>'),
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* @since 1.5.0 12.09.14 10:56
|
||||
*
|
||||
*
|
||||
* @lastmodified 2021-02-18T2023+0100
|
||||
* @lastmodified 2021-02-19T2031+0100
|
||||
*
|
||||
* @since 1.6.5 Bugfix: Improve widgets registration, thanks to @felipelavinz code contribution.
|
||||
* @since 1.6.5 Update: Fix for deprecated PHP function create_function(), thanks to @psykonevro @daliasued bug reports, thanks to @felipelavinz code contribution.
|
||||
|
@ -21,6 +21,7 @@
|
|||
* @since 2.5.5 Update: Stylesheets: increase speed and energy efficiency by tailoring stylesheets to the needs of the instance, thanks to @docteurfitness design contribution.
|
||||
* @since 2.5.5 Bugfix: Stylesheets: minify to shrink the carbon footprint, increase speed and implement best practice, thanks to @docteurfitness issue report.
|
||||
* @since 2.5.5 Bugfix: Libraries: optimize processes by loading external and internal scripts only if needed, thanks to @docteurfitness issue report.
|
||||
* @since 2.5.6 Bugfix: Reference container: optional alternative expanding and collapsing without jQuery for use with hard links, thanks to @hopper87it issue report.
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -180,18 +181,31 @@ class MCI_Footnotes {
|
|||
*
|
||||
* The condition about tooltips was missing, only the not-alternative-tooltips part was present.
|
||||
*/
|
||||
// set conditions re-used for stylesheet enqueuing:
|
||||
self::$a_bool_TooltipsEnabled = MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_FOOTNOTES_MOUSE_OVER_BOX_ENABLED ) );
|
||||
self::$a_bool_AlternativeTooltipsEnabled = MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_FOOTNOTES_MOUSE_OVER_BOX_ALTERNATIVE ) );
|
||||
$l_str_ScriptMode = MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_FOOTNOTES_REFERENCE_CONTAINER_SCRIPT_MODE);
|
||||
|
||||
/**
|
||||
* Enqueues the jQuery library registered by WordPress.
|
||||
*
|
||||
* jQuery is also used for animated scrolling, so it should be loaded by default.
|
||||
* - Bugfix: Reference container: optional alternative expanding and collapsing without jQuery for use with hard links, thanks to @hopper87it issue report.
|
||||
*
|
||||
* @since 2.5.6
|
||||
*
|
||||
* @reporter @hopper87it
|
||||
* @link https://wordpress.org/support/topic/footnotes-wp-rocket/
|
||||
*
|
||||
* jQuery is also used for animated scrolling, so it was loaded by default.
|
||||
* The function wp_enqueue_script() avoids loading the same library multiple times.
|
||||
* After adding the alternative reference container, jQuery has become optional,
|
||||
* but still enabled by default.
|
||||
*/
|
||||
wp_enqueue_script( 'jquery' );
|
||||
|
||||
// set conditions re-used for stylesheet enqueuing:
|
||||
self::$a_bool_TooltipsEnabled = MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_FOOTNOTES_MOUSE_OVER_BOX_ENABLED ) );
|
||||
self::$a_bool_AlternativeTooltipsEnabled = MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_FOOTNOTES_MOUSE_OVER_BOX_ALTERNATIVE ) );
|
||||
if ( $l_str_ScriptMode == 'jquery' || ( self::$a_bool_TooltipsEnabled && ! self::$a_bool_AlternativeTooltipsEnabled ) ) {
|
||||
|
||||
wp_enqueue_script( 'jquery' );
|
||||
|
||||
}
|
||||
|
||||
if ( self::$a_bool_TooltipsEnabled && ! self::$a_bool_AlternativeTooltipsEnabled ) {
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* @since 1.5.0 14.09.14 10:43
|
||||
*
|
||||
*
|
||||
* @lastmodified 2021-02-18T2024+0100
|
||||
* @lastmodified 2021-02-19T1608+0100
|
||||
*
|
||||
* @since 2.0.4 restore arrow settings 2020-11-02T2115+0100
|
||||
* @since 2.0.7 remove hook the_post 2020-11-06T1342+0100
|
||||
|
@ -788,6 +788,20 @@ class MCI_Footnotes_Settings {
|
|||
*/
|
||||
const C_STR_FOOTNOTE_REFERRERS_NORMAL_SUPERSCRIPT = "footnotes_inputfield_referrers_normal_superscript";
|
||||
|
||||
/**
|
||||
* Settings container key to select the script mode for the reference container.
|
||||
*
|
||||
* - Bugfix: Reference container: optional alternative expanding and collapsing without jQuery for use with hard links, thanks to @hopper87it issue report.
|
||||
*
|
||||
* @since 2.5.6
|
||||
*
|
||||
* @reporter @hopper87it
|
||||
* @link https://wordpress.org/support/topic/footnotes-wp-rocket/
|
||||
*
|
||||
* @var str
|
||||
*/
|
||||
const C_STR_FOOTNOTES_REFERENCE_CONTAINER_SCRIPT_MODE = "footnotes_inputfield_reference_container_script_mode";
|
||||
|
||||
|
||||
/**
|
||||
* SETTINGS STORAGE
|
||||
|
@ -863,6 +877,7 @@ class MCI_Footnotes_Settings {
|
|||
self::C_STR_REFERENCE_CONTAINER_LABEL_ELEMENT => 'p',
|
||||
self::C_BOOL_REFERENCE_CONTAINER_LABEL_BOTTOM_BORDER => 'yes',
|
||||
self::C_BOOL_REFERENCE_CONTAINER_COLLAPSE => 'no',
|
||||
self::C_STR_FOOTNOTES_REFERENCE_CONTAINER_SCRIPT_MODE => 'jquery',
|
||||
|
||||
self::C_STR_REFERENCE_CONTAINER_POSITION => 'post_end',
|
||||
self::C_STR_REFERENCE_CONTAINER_POSITION_SHORTCODE => '[[references]]',
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* @since 1.5.0
|
||||
*
|
||||
*
|
||||
* @lastmodified 2021-02-18T2023+0100
|
||||
* @lastmodified 2021-02-19T2030+0100
|
||||
*
|
||||
* @since 2.0.0 Bugfix: various.
|
||||
* @since 2.0.4 Bugfix: Referrers and backlinks: remove hard links to streamline browsing history, thanks to @theroninjedi47 bug report.
|
||||
|
@ -79,6 +79,7 @@
|
|||
* @since 2.5.4 Update: Reference container: Hard backlinks (optional): optional configurable tooltip hinting to use the backbutton instead, thanks to @theroninjedi47 bug report.
|
||||
* @since 2.5.4 Bugfix: Tooltips: fix display in Popup Maker popups by correcting a coding error.
|
||||
* @since 2.5.5 Bugfix: Process: fix numbering bug impacting footnote #2 with footnote #1 close to start, thanks to @rumperuu bug report, thanks to @lolzim code contribution.
|
||||
* @since 2.5.6 Bugfix: Reference container: optional alternative expanding and collapsing without jQuery for use with hard links, thanks to @hopper87it issue report.
|
||||
*/
|
||||
|
||||
// If called directly, abort:
|
||||
|
@ -213,6 +214,7 @@ class MCI_Footnotes_Task {
|
|||
*
|
||||
* The official AMP plugin strips off JavaScript, breaking Footnotes’
|
||||
* animated scrolling.
|
||||
* When the alternative reference container is enabled, hard links are too.
|
||||
*/
|
||||
public static $a_bool_HardLinksEnable = false;
|
||||
public static $a_str_ReferrerLinkSlug = 'r';
|
||||
|
@ -728,8 +730,17 @@ class MCI_Footnotes_Task {
|
|||
* - Bugfix: Scroll offset: make configurable to fix site-dependent issues related to fixed headers.
|
||||
*
|
||||
* @since 2.1.4
|
||||
*
|
||||
* @since 2.5.6 hard links are always enabled when the alternative reference container is.
|
||||
*/
|
||||
self::$a_bool_HardLinksEnable = MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_FOOTNOTES_HARD_LINKS_ENABLE));
|
||||
|
||||
// correct hard links enabled status depending on alternative reference container enabled status:
|
||||
$l_str_ScriptMode = MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_FOOTNOTES_REFERENCE_CONTAINER_SCRIPT_MODE);
|
||||
if ( $l_str_ScriptMode != 'jquery' ) {
|
||||
self::$a_bool_HardLinksEnable = true;
|
||||
}
|
||||
|
||||
self::$a_int_ScrollOffset = intval(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_INT_FOOTNOTES_SCROLL_OFFSET));
|
||||
if (self::$a_bool_HardLinksEnable) {
|
||||
echo ".footnote_referrer_anchor, .footnote_item_anchor {bottom: ";
|
||||
|
@ -2253,8 +2264,29 @@ class MCI_Footnotes_Task {
|
|||
*/
|
||||
$l_str_ReferenceContainerLabel = MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_REFERENCE_CONTAINER_NAME);
|
||||
|
||||
// load 'templates/public/reference-container.html':
|
||||
$l_obj_TemplateContainer = new MCI_Footnotes_Template(MCI_Footnotes_Template::C_STR_PUBLIC, "reference-container");
|
||||
/**
|
||||
* Select the reference container template according to the script mode.
|
||||
*
|
||||
* - Bugfix: Reference container: optional alternative expanding and collapsing without jQuery for use with hard links, thanks to @hopper87it issue report.
|
||||
*
|
||||
* @since 2.5.6
|
||||
*
|
||||
* @reporter @hopper87it
|
||||
* @link https://wordpress.org/support/topic/footnotes-wp-rocket/
|
||||
*/
|
||||
$l_str_ScriptMode = MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_FOOTNOTES_REFERENCE_CONTAINER_SCRIPT_MODE);
|
||||
|
||||
if ( $l_str_ScriptMode == 'jquery' ) {
|
||||
|
||||
// load 'templates/public/reference-container.html':
|
||||
$l_obj_TemplateContainer = new MCI_Footnotes_Template(MCI_Footnotes_Template::C_STR_PUBLIC, "reference-container");
|
||||
|
||||
} else {
|
||||
|
||||
// load 'templates/public/js-reference-container.html':
|
||||
$l_obj_TemplateContainer = new MCI_Footnotes_Template(MCI_Footnotes_Template::C_STR_PUBLIC, "js-reference-container");
|
||||
}
|
||||
|
||||
$l_obj_TemplateContainer->replace(
|
||||
array(
|
||||
"post_id" => self::$a_int_PostId,
|
||||
|
|
Reference in a new issue