Stable release v2.0.8 with both critical changes reverted
git-svn-id: https://plugins.svn.wordpress.org/footnotes/tags/2.0.8@2413937 b8457f37-d9ea-0310-8a92-e5e31aec5664
This commit is contained in:
parent
362d9e60c6
commit
8eb55683d0
12 changed files with 164 additions and 75 deletions
|
@ -12,7 +12,7 @@
|
|||
* Edited for v2.0.3: Added style sheet versioning 2020-10-29T1413+0100
|
||||
* Edited for v2.0.4: Added jQuery UI from WordPress 2020-11-01T1902+0100
|
||||
*
|
||||
* Last modified: 2020-11-05T0638+0100
|
||||
* Last modified: 2020-11-06T1511+0100
|
||||
*/
|
||||
|
||||
|
||||
|
@ -65,14 +65,14 @@ class MCI_Footnotes {
|
|||
*
|
||||
* @author Stefan Herndler
|
||||
* @since 1.5.0
|
||||
*
|
||||
* Edited for 1.6.5: replaced deprecated function create_function()
|
||||
*
|
||||
* Contributed by Felipe Lavín Z. Thankfully acknowledged.
|
||||
*
|
||||
* create_function() was deprecated in PHP 7.2:
|
||||
* <https://wordpress.org/support/topic/deprecated-in-php-7-2-function-create_function-is-deprecated/>
|
||||
* See also: <https://wordpress.org/support/topic/deprecated-function-create_function-14/>
|
||||
*
|
||||
* Edited for 1.6.5: replaced deprecated function create_function()
|
||||
*
|
||||
* Contributed by Felipe Lavín Z. Thankfully acknowledged.
|
||||
*
|
||||
* create_function() was deprecated in PHP 7.2:
|
||||
* <https://wordpress.org/support/topic/deprecated-in-php-7-2-function-create_function-is-deprecated/>
|
||||
* See also: <https://wordpress.org/support/topic/deprecated-function-create_function-14/>
|
||||
*/
|
||||
public function initializeWidgets() {
|
||||
register_widget("MCI_Footnotes_Widget_ReferenceContainer");
|
||||
|
@ -125,7 +125,13 @@ class MCI_Footnotes {
|
|||
// Add jQuery tools:
|
||||
wp_enqueue_script('mci-footnotes-js-jquery-tools', plugins_url('../js/jquery.tools.min.js', __FILE__));
|
||||
|
||||
// IMPORTANT: up-to-date plugin version number for cache busting.
|
||||
wp_enqueue_style('mci-footnotes-css-public', plugins_url('../css/public.css', __FILE__), '', '2.0.5rc1');
|
||||
// IMPORTANT: up-to-date plugin version number for cache busting:
|
||||
wp_enqueue_style(
|
||||
'mci-footnotes-css-public',
|
||||
plugins_url('../css/public.css', __FILE__),
|
||||
'',
|
||||
'2.0.8'
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -6,13 +6,15 @@
|
|||
* @author Stefan Herndler
|
||||
* @since 1.5.0 14.09.14 10:43
|
||||
*
|
||||
* Edited for v2.0.4 2020-11-02T2115+0100
|
||||
* Edited for:
|
||||
* v2.0.4 2020-11-02T2115+0100
|
||||
* v2.0.7 2020-11-06T1342+0100
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* The class loads all Settings from each WordPress Settings container.
|
||||
* It a Setting is not defined yet the default value will be used.
|
||||
* It a Setting is not defined yet, the default value will be used.
|
||||
* Each Setting will be validated and sanitized when loaded from the container.
|
||||
*
|
||||
* @author Stefan Herndler
|
||||
|
@ -165,7 +167,7 @@ class MCI_Footnotes_Settings {
|
|||
const C_BOOL_FOOTNOTES_MOUSE_OVER_BOX_EXCERPT_ENABLED = "footnote_inputfield_custom_mouse_over_box_excerpt_enabled";
|
||||
|
||||
/**
|
||||
* Settings Container Key for the mouse-over box to define the max. length of the enabled expert.
|
||||
* Settings Container Key for the mouse-over box to define the max. length of the enabled excerpt.
|
||||
*
|
||||
* @author Stefan Herndler
|
||||
* @since 1.5.4
|
||||
|
@ -388,34 +390,64 @@ class MCI_Footnotes_Settings {
|
|||
self::C_BOOL_FOOTNOTES_EXPERT_MODE => 'no'
|
||||
),
|
||||
"footnotes_storage_custom" => array(
|
||||
self::C_STR_FOOTNOTES_STYLING_BEFORE => '',
|
||||
self::C_STR_FOOTNOTES_STYLING_AFTER => ')',
|
||||
self::C_BOOL_FOOTNOTES_MOUSE_OVER_BOX_ENABLED => 'yes',
|
||||
self::C_BOOL_FOOTNOTES_MOUSE_OVER_BOX_EXCERPT_ENABLED => 'no',
|
||||
self::C_INT_FOOTNOTES_MOUSE_OVER_BOX_EXCERPT_LENGTH => 150,
|
||||
self::C_STR_FOOTNOTES_MOUSE_OVER_BOX_POSITION => 'top right',
|
||||
self::C_INT_FOOTNOTES_MOUSE_OVER_BOX_OFFSET_X => 10,
|
||||
self::C_INT_FOOTNOTES_MOUSE_OVER_BOX_OFFSET_Y => 10,
|
||||
self::C_STR_FOOTNOTES_MOUSE_OVER_BOX_COLOR => '',
|
||||
self::C_STR_FOOTNOTES_MOUSE_OVER_BOX_BACKGROUND => '#fff7a7',
|
||||
|
||||
// The default footnote referrer surroundings should be square brackets:
|
||||
// * as in English typesetting;
|
||||
// * for better UX thanks to a more button-like appearance;
|
||||
// * for stylistic consistency with the expand-collapse button
|
||||
self::C_STR_FOOTNOTES_STYLING_BEFORE => '[',
|
||||
self::C_STR_FOOTNOTES_STYLING_AFTER => ']',
|
||||
|
||||
self::C_BOOL_FOOTNOTES_MOUSE_OVER_BOX_ENABLED => 'yes',
|
||||
|
||||
// The mouse over content truncation should be enabled by default
|
||||
// to raise awareness of the functionality and to prevent the screen
|
||||
// from being filled at mouse-over, and to allow the Continue reading:
|
||||
self::C_BOOL_FOOTNOTES_MOUSE_OVER_BOX_EXCERPT_ENABLED => 'yes',
|
||||
|
||||
// The truncation length is raised from 150 to 200 chars:
|
||||
self::C_INT_FOOTNOTES_MOUSE_OVER_BOX_EXCERPT_LENGTH => 200,
|
||||
|
||||
// The default position should not be lateral because of the risk
|
||||
// the box gets squeezed between note anchor at line end and window edge,
|
||||
// and top because reading at the bottom of the window is more likely:
|
||||
self::C_STR_FOOTNOTES_MOUSE_OVER_BOX_POSITION => 'top center',
|
||||
|
||||
self::C_INT_FOOTNOTES_MOUSE_OVER_BOX_OFFSET_X => 0,
|
||||
// The vertical offset must be negative for the box not to cover
|
||||
// the current line of text (web coordinates origin is top left):
|
||||
self::C_INT_FOOTNOTES_MOUSE_OVER_BOX_OFFSET_Y => -7,
|
||||
|
||||
self::C_STR_FOOTNOTES_MOUSE_OVER_BOX_COLOR => '',
|
||||
// The mouse over box shouldn’t feature a colored background
|
||||
// by default, due to diverging user preferences. White is neutral:
|
||||
self::C_STR_FOOTNOTES_MOUSE_OVER_BOX_BACKGROUND => '#ffffff',
|
||||
|
||||
self::C_INT_FOOTNOTES_MOUSE_OVER_BOX_BORDER_WIDTH => 1,
|
||||
self::C_STR_FOOTNOTES_MOUSE_OVER_BOX_BORDER_COLOR => '#cccc99',
|
||||
self::C_INT_FOOTNOTES_MOUSE_OVER_BOX_BORDER_RADIUS => 3,
|
||||
self::C_INT_FOOTNOTES_MOUSE_OVER_BOX_MAX_WIDTH => 0,
|
||||
self::C_STR_FOOTNOTES_MOUSE_OVER_BOX_BORDER_COLOR => '#cccc99',
|
||||
|
||||
// The mouse over box corners mustn’t be rounded as that is outdated:
|
||||
self::C_INT_FOOTNOTES_MOUSE_OVER_BOX_BORDER_RADIUS => 0,
|
||||
|
||||
// The width should be limited to start with, for the box to have shape:
|
||||
self::C_INT_FOOTNOTES_MOUSE_OVER_BOX_MAX_WIDTH => 450,
|
||||
|
||||
self::C_STR_FOOTNOTES_MOUSE_OVER_BOX_SHADOW_COLOR => '#666666',
|
||||
self::C_STR_HYPERLINK_ARROW => '↑',
|
||||
self::C_STR_HYPERLINK_ARROW_USER_DEFINED => '',
|
||||
self::C_STR_CUSTOM_CSS => ''
|
||||
),
|
||||
// These should all be enabled by default.
|
||||
// These should all be enabled by default to prevent users from
|
||||
// thinking at first that the feature is broken in post titles.
|
||||
// See <https://wordpress.org/support/topic/more-feature-ideas/>
|
||||
// In titles, footnotes are functionally pointless in WordPress.
|
||||
"footnotes_storage_expert" => array(
|
||||
self::C_BOOL_EXPERT_LOOKUP_THE_TITLE => 'yes',
|
||||
self::C_BOOL_EXPERT_LOOKUP_THE_CONTENT => 'yes',
|
||||
self::C_BOOL_EXPERT_LOOKUP_THE_EXCERPT => 'yes',
|
||||
self::C_BOOL_EXPERT_LOOKUP_WIDGET_TITLE => 'yes',
|
||||
self::C_BOOL_EXPERT_LOOKUP_WIDGET_TEXT => 'yes',
|
||||
self::C_BOOL_EXPERT_LOOKUP_THE_POST => 'yes'
|
||||
self::C_BOOL_EXPERT_LOOKUP_THE_POST => ''//NEVER ENABLE THIS HOOK!!!!!
|
||||
)
|
||||
);
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
* Edited for v2.0.5: Autoload / infinite scroll support added thanks to code from
|
||||
* @docteurfitness <https://wordpress.org/support/topic/auto-load-post-compatibility-update/>
|
||||
*
|
||||
* Last modified 2020-11-05T0524+0100
|
||||
* Last modified 2020-11-06T1516+0100
|
||||
*/
|
||||
|
||||
// If called directly, abort:
|
||||
|
@ -58,17 +58,16 @@ class MCI_Footnotes_Task {
|
|||
* @author Stefan Herndler
|
||||
* @since 1.5.0
|
||||
*
|
||||
* Edited for v2.0.5 2020-11-02T0330+0100 2020-11-04T2006+0100
|
||||
* Edited for v2.0.5 through v2.0.7 2020-11-02T0330+0100..2020-11-06T1344+0100
|
||||
*
|
||||
* Explicitly setting all priority to (default) "10" instead of lowest "PHP_INT_MAX",
|
||||
* especially for the_content, makes the footnotes reference container display
|
||||
* beneath the content and above other features added by other plugins.
|
||||
* Requested by users: <https://wordpress.org/support/topic/change-the-position-5/>
|
||||
* Documentation: <https://codex.wordpress.org/Plugin_API/#Hook_in_your_Filter>
|
||||
*
|
||||
* But then, the blog engine calls this plugin in the editor, as reported in:
|
||||
* <https://wordpress.org/support/topic/blogs-all-messed-up/>
|
||||
* <https://wordpress.org/support/topic/change-the-position-5/#post-13612697>
|
||||
*
|
||||
* But this change is suspected to cause issues and needs to be assessed!
|
||||
* See <https://wordpress.org/support/topic/change-the-position-5/#post-13612697>
|
||||
*/
|
||||
public function registerHooks() {
|
||||
// append custom css to the header
|
||||
|
@ -488,9 +487,15 @@ class MCI_Footnotes_Task {
|
|||
if (empty($l_str_FootnoteText)) {
|
||||
continue;
|
||||
}
|
||||
// get footnote index
|
||||
$l_str_FirstFootnoteIndex = ($l_str_Index + 1);
|
||||
$l_str_FootnoteIndex = MCI_Footnotes_Convert::Index(($l_str_Index + 1), MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_FOOTNOTES_COUNTER_STYLE));
|
||||
// generate content of footnote index cell
|
||||
$l_str_FirstFootnoteIndex = ($l_str_Index + 1);
|
||||
// wrap each index # in a white-space:nowrap span
|
||||
$l_str_FootnoteArrowIndex = '<span class="footnote_index_item">';
|
||||
// wrap the arrow in a @media print { display:hidden } span
|
||||
$l_str_FootnoteArrowIndex .= '<span class="footnote_index_arrow">' . $l_str_Arrow . ' </span>';
|
||||
// get the index; add support for legacy index placeholder:
|
||||
$l_str_FootnoteArrowIndex .= MCI_Footnotes_Convert::Index(($l_str_Index + 1), MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_FOOTNOTES_COUNTER_STYLE));
|
||||
$l_str_FootnoteIndex = MCI_Footnotes_Convert::Index(($l_str_Index + 1), MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_FOOTNOTES_COUNTER_STYLE));
|
||||
|
||||
// check if it isn't the last footnote in the array
|
||||
if ($l_str_FirstFootnoteIndex < count(self::$a_arr_Footnotes) && MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_COMBINE_IDENTICAL_FOOTNOTES))) {
|
||||
|
@ -501,18 +506,24 @@ class MCI_Footnotes_Task {
|
|||
// set the further footnote as empty so it won't be displayed later
|
||||
self::$a_arr_Footnotes[$l_str_CheckIndex] = "";
|
||||
// add the footnote index to the actual index
|
||||
$l_str_FootnoteIndex .= ", " . MCI_Footnotes_Convert::Index(($l_str_CheckIndex + 1), MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_FOOTNOTES_COUNTER_STYLE));
|
||||
$l_str_FootnoteArrowIndex .= ',</span> <span class="footnote_index_item">' . MCI_Footnotes_Convert::Index(($l_str_CheckIndex + 1), MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_FOOTNOTES_COUNTER_STYLE));
|
||||
$l_str_FootnoteIndex .= ', ' . MCI_Footnotes_Convert::Index(($l_str_CheckIndex + 1), MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_FOOTNOTES_COUNTER_STYLE));
|
||||
}
|
||||
}
|
||||
}
|
||||
// replace all placeholders in the template templates/public/reference-container-body.html
|
||||
|
||||
$l_str_FootnoteArrowIndex .= '</span>';
|
||||
|
||||
// replace all placeholders in the template templates/public/reference-container-body.html
|
||||
// The individual arrow and index placeholders are for backcompat
|
||||
$l_obj_Template->replace(
|
||||
array(
|
||||
"post_id" => $l_int_PostID,
|
||||
"id" => MCI_Footnotes_Convert::Index($l_str_FirstFootnoteIndex, MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_FOOTNOTES_COUNTER_STYLE)),
|
||||
"arrow" => $l_str_Arrow,
|
||||
"index" => $l_str_FootnoteIndex,
|
||||
"text" => $l_str_FootnoteText
|
||||
"post_id" => $l_int_PostID,
|
||||
"id" => MCI_Footnotes_Convert::Index($l_str_FirstFootnoteIndex, MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_FOOTNOTES_COUNTER_STYLE)),
|
||||
"arrow" => $l_str_Arrow,
|
||||
"index" => $l_str_FootnoteIndex,
|
||||
"arrow-index" => $l_str_FootnoteArrowIndex,
|
||||
"text" => $l_str_FootnoteText
|
||||
)
|
||||
);
|
||||
// extra line breaks for page source legibility:
|
||||
|
|
Reference in a new issue