stable bugfix release 2.1.2: priority level settings for all other hooks, preventing them from being zeroed at save == URGENCY
git-svn-id: https://plugins.svn.wordpress.org/footnotes/tags/2.1.2@2421553 b8457f37-d9ea-0310-8a92-e5e31aec5664
This commit is contained in:
parent
362d9e60c6
commit
65668e0754
28 changed files with 1479 additions and 728 deletions
|
@ -5,14 +5,26 @@
|
|||
* @filesource
|
||||
* @author Stefan Herndler
|
||||
* @since 1.5.0 14.09.14 10:43
|
||||
*
|
||||
* Edited for v2.0.4 2020-11-02T2115+0100
|
||||
*
|
||||
* Edited for:
|
||||
* 2.0.4 restore arrow settings 2020-11-02T2115+0100
|
||||
* 2.0.7 remove hook the_post 2020-11-06T1342+0100
|
||||
* 2.1.0 add read-on button label customization 2020-11-08T2149+0100
|
||||
* 2.1.1 fix tooltips on site by alternative 2020-11-11T1819+0100
|
||||
* 2.1.1 fix disabling backlink symbol 2020-11-16T2021+0100
|
||||
* 2.1.1 fix superscript by making it optional
|
||||
* 2.1.1 fix start pages by option to hide ref container
|
||||
* 2.1.1 fix ref container by option restoring 3-column layout
|
||||
* 2.1.1 fix ref container by option to switch index/symbol 2020-11-16T2022+0100
|
||||
* 2.1.1 fix ref container positioning by priority level 2020-11-17T0205+0100
|
||||
*
|
||||
* Last modified: 2020-11-17T0311+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
|
||||
|
@ -20,6 +32,11 @@
|
|||
*/
|
||||
class MCI_Footnotes_Settings {
|
||||
|
||||
|
||||
/**
|
||||
* SETTINGS CONTAINER KEY DEFINITIONS
|
||||
*/
|
||||
|
||||
/**
|
||||
* Settings Container Key for the label of the reference container.
|
||||
*
|
||||
|
@ -155,6 +172,16 @@ class MCI_Footnotes_Settings {
|
|||
*/
|
||||
const C_BOOL_FOOTNOTES_MOUSE_OVER_BOX_ENABLED = "footnote_inputfield_custom_mouse_over_box_enabled";
|
||||
|
||||
/**
|
||||
* Settings Container Key for alternative tooltip implementation
|
||||
*
|
||||
* @since 2.2.0
|
||||
* @var string
|
||||
*
|
||||
* 2020-11-11T1817+0100
|
||||
*/
|
||||
const C_BOOL_FOOTNOTES_MOUSE_OVER_BOX_ALTERNATIVE = "footnote_inputfield_custom_mouse_over_box_alternative";
|
||||
|
||||
/**
|
||||
* Settings Container Key for the mouse-over box to display only an excerpt.
|
||||
*
|
||||
|
@ -165,7 +192,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
|
||||
|
@ -336,13 +363,37 @@ class MCI_Footnotes_Settings {
|
|||
const C_BOOL_EXPERT_LOOKUP_WIDGET_TEXT = "footnote_inputfield_expert_lookup_widget_text";
|
||||
|
||||
/**
|
||||
* Settings Container Key the activation of the_post hook.
|
||||
* Settings Container Key for the label of the 'Read on' button in truncated tooltips
|
||||
*
|
||||
* @author Stefan Herndler
|
||||
* @since 1.5.5
|
||||
* @since 2.1.0
|
||||
* @var string
|
||||
*
|
||||
* 2020-11-08T2106+0100
|
||||
*/
|
||||
const C_BOOL_EXPERT_LOOKUP_THE_POST = "footnote_inputfield_expert_lookup_the_post";
|
||||
const C_STR_FOOTNOTES_TOOLTIP_READON_LABEL = "footnote_inputfield_readon_label";
|
||||
|
||||
/**
|
||||
* Settings Container Keys of options fixing default layout
|
||||
*
|
||||
* @since 2.1.1
|
||||
* @var string
|
||||
*
|
||||
* 2020-11-16T0859+0100
|
||||
*/
|
||||
const C_BOOL_FOOTNOTES_REFERRER_SUPERSCRIPT_TAGS = "footnotes_inputfield_referrer_superscript_tags";
|
||||
|
||||
const C_BOOL_REFERENCE_CONTAINER_BACKLINK_SYMBOL_ENABLE = "footnotes_inputfield_reference_container_backlink_symbol_enable";
|
||||
const C_BOOL_REFERENCE_CONTAINER_START_PAGE_ENABLE = "footnotes_inputfield_reference_container_start_page_enable";
|
||||
const C_BOOL_REFERENCE_CONTAINER_3COLUMN_LAYOUT_ENABLE = "footnotes_inputfield_reference_container_3column_layout_enable";
|
||||
const C_BOOL_REFERENCE_CONTAINER_BACKLINK_SYMBOL_SWITCH = "footnotes_inputfield_reference_container_backlink_symbol_switch";
|
||||
|
||||
const C_INT_EXPERT_LOOKUP_THE_TITLE_PRIORITY_LEVEL = "footnote_inputfield_expert_lookup_the_title_priority_level";
|
||||
const C_INT_EXPERT_LOOKUP_THE_CONTENT_PRIORITY_LEVEL = "footnote_inputfield_expert_lookup_the_content_priority_level";
|
||||
const C_INT_EXPERT_LOOKUP_THE_EXCERPT_PRIORITY_LEVEL = "footnote_inputfield_expert_lookup_the_excerpt_priority_level";
|
||||
const C_INT_EXPERT_LOOKUP_WIDGET_TITLE_PRIORITY_LEVEL = "footnote_inputfield_expert_lookup_widget_title_priority_level";
|
||||
const C_INT_EXPERT_LOOKUP_WIDGET_TEXT_PRIORITY_LEVEL = "footnote_inputfield_expert_lookup_widget_text_priority_level";
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Stores a singleton reference of this class.
|
||||
|
@ -370,14 +421,22 @@ class MCI_Footnotes_Settings {
|
|||
* @var array
|
||||
*/
|
||||
private $a_arr_Default = array(
|
||||
|
||||
"footnotes_storage" => array(
|
||||
|
||||
self::C_STR_REFERENCE_CONTAINER_NAME => 'References',
|
||||
self::C_BOOL_REFERENCE_CONTAINER_COLLAPSE => '',
|
||||
self::C_STR_REFERENCE_CONTAINER_POSITION => 'post_end',
|
||||
// Identical footnotes should not be combined by default
|
||||
// Identical footnotes should not be combined by default
|
||||
// as long as the feature raises criticism for malfunctioning:
|
||||
// <https://wordpress.org/support/topic/too-many-errors-18/>
|
||||
self::C_BOOL_COMBINE_IDENTICAL_FOOTNOTES => '',
|
||||
|
||||
self::C_BOOL_REFERENCE_CONTAINER_BACKLINK_SYMBOL_ENABLE => 'yes',
|
||||
self::C_BOOL_REFERENCE_CONTAINER_START_PAGE_ENABLE => 'yes',
|
||||
self::C_BOOL_REFERENCE_CONTAINER_3COLUMN_LAYOUT_ENABLE => '',
|
||||
self::C_BOOL_REFERENCE_CONTAINER_BACKLINK_SYMBOL_SWITCH => '',
|
||||
|
||||
self::C_STR_FOOTNOTES_SHORT_CODE_START => '((',
|
||||
self::C_STR_FOOTNOTES_SHORT_CODE_END => '))',
|
||||
self::C_STR_FOOTNOTES_SHORT_CODE_START_USER_DEFINED => '',
|
||||
|
@ -386,37 +445,89 @@ class MCI_Footnotes_Settings {
|
|||
self::C_STR_FOOTNOTES_LOVE => 'no',
|
||||
self::C_BOOL_FOOTNOTES_IN_EXCERPT => 'yes',
|
||||
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_STR_FOOTNOTES_TOOLTIP_READON_LABEL => 'Continue reading',
|
||||
|
||||
self::C_BOOL_FOOTNOTES_REFERRER_SUPERSCRIPT_TAGS => 'yes',
|
||||
|
||||
// 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',
|
||||
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_BOOL_FOOTNOTES_MOUSE_OVER_BOX_ALTERNATIVE => '',
|
||||
|
||||
// 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 => '',
|
||||
self::C_STR_FOOTNOTES_MOUSE_OVER_BOX_BACKGROUND => '#fff7a7',
|
||||
// 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,
|
||||
|
||||
// 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.
|
||||
// See <https://wordpress.org/support/topic/more-feature-ideas/>
|
||||
|
||||
"footnotes_storage_expert" => array(
|
||||
self::C_BOOL_EXPERT_LOOKUP_THE_TITLE => 'yes',
|
||||
|
||||
// Titles 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/>
|
||||
// Yet in titles, footnotes are functionally pointless in WordPress.
|
||||
self::C_BOOL_EXPERT_LOOKUP_THE_TITLE => '',
|
||||
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_TITLE => '',
|
||||
self::C_BOOL_EXPERT_LOOKUP_WIDGET_TEXT => 'yes',
|
||||
self::C_BOOL_EXPERT_LOOKUP_THE_POST => 'yes'
|
||||
|
||||
// initially hard-coded default
|
||||
// shows "9223372036854775807" in the numbox
|
||||
// empty should be interpreted as PHP_INT_MAX,
|
||||
// but a numbox cannot be set to empty: <https://github.com/Modernizr/Modernizr/issues/171>
|
||||
// define -1 as PHP_INT_MAX instead
|
||||
self::C_INT_EXPERT_LOOKUP_THE_TITLE_PRIORITY_LEVEL => PHP_INT_MAX,
|
||||
self::C_INT_EXPERT_LOOKUP_THE_CONTENT_PRIORITY_LEVEL => PHP_INT_MAX,
|
||||
self::C_INT_EXPERT_LOOKUP_THE_EXCERPT_PRIORITY_LEVEL => PHP_INT_MAX,
|
||||
self::C_INT_EXPERT_LOOKUP_WIDGET_TITLE_PRIORITY_LEVEL => PHP_INT_MAX,
|
||||
self::C_INT_EXPERT_LOOKUP_WIDGET_TEXT_PRIORITY_LEVEL => PHP_INT_MAX,
|
||||
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
/**
|
||||
|
|
Reference in a new issue