traceability update 2.5.4d4

git-svn-id: https://plugins.svn.wordpress.org/footnotes/trunk@2472020 b8457f37-d9ea-0310-8a92-e5e31aec5664
This commit is contained in:
pewgeuges 2021-02-09 23:33:29 +00:00
parent 4d884e22a0
commit 0612b76412
16 changed files with 456 additions and 274 deletions

View file

@ -7,12 +7,12 @@
* @since 1.5.0 12.09.14 10:56
*
*
* @lastmodified 2021-02-06T0304+0100
* @lastmodified 2021-02-08T1910+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.
* @since 2.0.0 Update: Tooltips: fix disabling bug by loading jQuery UI library, thanks to @rajinderverma @ericcorbett2 @honlapdavid @mmallett bug reports, thanks to @vonpiernik code contribution.
*
*
* @since 2.0.3 add versioning of public.css for cache busting 2020-10-29T1413+0100
* @since 2.0.4 add jQuery UI from WordPress 2020-11-01T1902+0100
* @since 2.1.4 automate passing version number for cache busting 2020-11-30T0646+0100
@ -44,13 +44,13 @@ class MCI_Footnotes {
*
*
* - Bugfix: Improve widgets registration, thanks to @felipelavinz code contribution.
*
*
* @since 1.6.5
*
* @contributor @felipelavinz
* @link https://github.com/media-competence-institute/footnotes/commit/87173d2980c7ff90e12ffee94ca7153e11163793
*
* @see initializeWidgets()
*
* @see initializeWidgets()
*/
public function run() {
// register language
@ -81,7 +81,7 @@ class MCI_Footnotes {
*
*
* - Update: Fix for deprecated PHP function create_function(), thanks to @psykonevro @daliasued bug reports, thanks to @felipelavinz code contribution
*
*
* @since 1.6.5
*
* @contributor @felipelavinz
@ -99,8 +99,8 @@ class MCI_Footnotes {
*
* The fix is to move add_action() above into run(),
* and use the bare register_widget() here.
* @see run()
*
* @see run()
*
* Also, the visibility of initializeWidgets() is not private any longer.
*/
public function initializeWidgets() {
@ -134,21 +134,21 @@ class MCI_Footnotes {
* @author Stefan Herndler
* @since 1.5.0
*
*
* - Update: Tooltips: fix disabling bug by loading jQuery UI library, thanks to @rajinderverma @ericcorbett2 @honlapdavid @mmallett bug reports, thanks to @vonpiernik code contribution.
*
* @since 2.0.0
*
* - Update: Tooltips: fix disabling bug by loading jQuery UI library, thanks to @rajinderverma @ericcorbett2 @honlapdavid @mmallett bug reports, thanks to @vonpiernik code contribution.
*
* @since 2.0.0
* Updated for v2.0.4 by adding jQuery UI from WordPress following @check2020de:
* <https://wordpress.org/support/topic/gdpr-issue-with-jquery/>
* See <https://wordpress.stackexchange.com/questions/273986/correct-way-to-enqueue-jquery-ui>
*
* jQueryUI re-enables the tooltip infobox disabled when WPv5.5 was released.
* @since 2.0.0 Update: Tooltips: fix disabling bug by loading jQuery UI library, thanks to @rajinderverma @ericcorbett2 @honlapdavid @mmallett bug reports, thanks to @vonpiernik code contribution.
* @since 2.0.3 add versioning of public.css for cache busting 2020-10-29T1413+0100
* @since 2.0.4 add jQuery UI from WordPress 2020-11-01T1902+0100
* @since 2.1.4 automate passing version number for cache busting 2020-11-30T0646+0100
* @since 2.1.4 optionally enqueue an extra style sheet 2020-12-04T2231+0100
*/
* jQueryUI re-enables the tooltip infobox disabled when WPv5.5 was released.
* @since 2.0.0 Update: Tooltips: fix disabling bug by loading jQuery UI library, thanks to @rajinderverma @ericcorbett2 @honlapdavid @mmallett bug reports, thanks to @vonpiernik code contribution.
* @since 2.0.3 add versioning of public.css for cache busting 2020-10-29T1413+0100
* @since 2.0.4 add jQuery UI from WordPress 2020-11-01T1902+0100
* @since 2.1.4 automate passing version number for cache busting 2020-11-30T0646+0100
* @since 2.1.4 optionally enqueue an extra style sheet 2020-12-04T2231+0100
*/
public function registerPublic() {
//### SCRIPTS

View file

@ -7,7 +7,7 @@
* @since 1.5.0 14.09.14 17:47
*
*
* @lastmodified 2021-02-06T1352+0100
* @lastmodified 2021-02-08T1914+0100
*
* @since 2.0.0 Bugfix: Localization: correct function call apply_filters() with all required arguments after PHP 7.1 promoted warning to error, thanks to @matkus2 bug report and code contribution.
* @since 2.1.6 Bugfix: Localization: conform to WordPress plugin language file name scheme, thanks to @nikelaos bug report.
@ -83,17 +83,17 @@ class MCI_Footnotes_Language {
* @param string $p_str_LanguageCode Language Code to load a specific text domain.
* @return bool
*
*
*
* - Bugfix: Localization: conform to WordPress plugin language file name scheme, thanks to @nikelaos bug report.
*
* @since 2.1.6
* @datetime 2020-12-08T1931+0100
*
* @reporter @nikelaos
*
* @since 2.1.6
* @datetime 2020-12-08T1931+0100
*
* @reporter @nikelaos
* @link https://wordpress.org/support/topic/more-feature-ideas/
*
*
* That is done by using load_plugin_textdomain():
* “The .mo file should be named based on the text domain with a dash, and then the locale exactly.
* “The .mo file should be named based on the text domain with a dash, and then the locale exactly.
* @see wp-includes/l10n.php:857
*/
private static function load($p_str_LanguageCode) {

View file

@ -60,8 +60,9 @@
* @since 2.3.0 reference container: settings for top (and bottom) margin, thanks to @hamshe
* @link https://wordpress.org/support/topic/reference-container-in-elementor/#post-13786635
*
* @since 2.3.0 swap Custom CSS migration Boolean from 'migration complete' to 'show legacy' 2020-12-27T1243+0100
*
* @since 2.3.0 Bugfix: Dashboard: Custom CSS: swap migration Boolean, meaning 'show legacy' instead of 'migration complete', due to storage data structure constraints.
* @datetime 2020-12-27T1243+0100
* @since 2.3.0 referrers, reference container: settings for anchor slugs 2020-12-31T1429+0100
*
* @since 2.4.0 footnote shortcode syntax validation 2021-01-01T0624+0100

View file

@ -7,9 +7,9 @@
* @since 1.5.0
*
*
* @lastmodified 2021-02-06T0241+0100
* @lastmodified 2021-02-10T0027+0100
*
* @since 2.0.0 Bugfix: Various.
* @since 2.0.0 Bugfix: various.
* @since 2.0.5 Bugfix: Reference container: fix relative position through priority level, thanks to @june01 @imeson @spaceling bug reports, thanks to @spaceling code contribution.
* @since 2.0.5 Update: Hooks: Default-enable all hooks to prevent footnotes from seeming broken in some parts.
* @since 2.0.6 Bugfix: Infinite scroll: debug autoload by adding post ID, thanks to @docteurfitness code contribution.
@ -17,7 +17,7 @@
* @since 2.0.7 BUGFIX: Hooks: Default-disable 'the_post', thanks to @spaceling @@markcheret @nyamachi @whichgodsaves @spiralofhope2 @mmallett @andreasra @widecast @ymorin007 @tashi1es bug reports.
* @since 2.0.9 Bugfix: Remove the_post hook 2020-11-08T1839+0100.
* @since 2.1.0 Adding: Tooltips: Read-on button: Label: configurable instead of localizable.
* @since 2.1.1 Bugfix: Combining identical footnotes: fix dead links and ensure referrer-backlink bijectivity, thanks to @happyches bug report.
* @since 2.1.1 Bugfix: Referrers, reference container: Combining identical footnotes: fix dead links and ensure referrer-backlink bijectivity, thanks to @happyches bug report.
* @since 2.1.1 Bugfix: Reference container: fix start pages by making its display optional, thanks to @dragon013 bug report.
* @since 2.1.1 Bugfix: Referrers: new setting for vertical align: superscript (default) or baseline (optional), thanks to @cwbayer bug report.
* @since 2.1.1 Bugfix: Reference container: option to append symbol (prepended by default), thanks to @spaceling code contribution.
@ -25,110 +25,51 @@
* @since 2.1.1 Bugfix: Reference container: option to restore 3-column layout (combining identicals turned off).
* @since 2.1.1 Bugfix: Dashboard: priority level setting for the_content hook, thanks to @imeson bug report.
* @since 2.1.2 Bugfix: Dashboard: priority level settings for all other hooks, thanks to @nikelaos bug report.
*
* @since 2.1.4 Bugfix: Reference container, tooltips: fix line wrapping of URLs based on pattern, not link element.
* @datetime 2020-11-25T0837+0100
* @since 2.1.4 Bugfix: Styling: Referrers and backlinks: make link elements optional to fix issues.
* @datetime 2020-11-26T1051+0100
* @since 2.1.4 Bugfix: Reference container: Backlink symbol: support for appending when combining identicals is on.
* @datetime 2020-11-26T1633+0100
* @since 2.1.4 Bugfix: Reference container: make separating and terminating punctuation optional and configurable.
* @datetime 2020-11-28T1048+0100
* @since 2.1.4 Bugfix: Reference container: Backlinks: fix stacked enumerations by adding optional line breaks.
* @datetime 2020-11-28T1049+0100
* @since 2.1.4 Bugfix: Reference container: fix layout issues by moving backlink column width to settings.
* @since 2.1.4 Bugfix: Styling: Tooltips: fix font size issue by adding font size to settings with legacy as default.
* @datetime 2020-12-03T0954+0100
* @since 2.1.4 Bugfix: Scroll offset: make configurable to fix site-dependent issues related to fixed headers.
* @since 2.1.4 Bugfix: Scroll duration: make configurable to conform to website content and style requirements.
* @datetime 2020-12-05T0538+0100
* @since 2.1.4 Bugfix: Tooltips: make display delays and fade durations configurable to conform to website style.
* @datetime 2020-12-06T1320+0100
* @since 2.1.4 Bugfix: Styling: Referrers and backlinks: make link elements optional to fix issues.
* @since 2.1.4 Bugfix: Reference container, tooltips: fix line wrapping of URLs based on pattern, not link element.
* @since 2.1.4 Bugfix: Referrers and backlinks: Styling: make link elements optional to fix issues.
* @since 2.1.4 Bugfix: Reference container, tooltips: fix line wrapping of URLs (hyperlinked or not) based on pattern, not link element.
* @since 2.1.4 Bugfix: Reference container: Backlink symbol: support for appending when combining identicals is on.
* @since 2.1.4 Reference container: Backlinks: fix line breaking with respect to separators and terminators.
*
* @since 2.1.5 URL wrap: exclude image source too, thanks to @bjrnet21 bug report
* @link https://wordpress.org/support/topic/2-1-4-breaks-on-my-site-images-dont-show/
*
* @since 2.1.6 option to disable URL line wrapping
* @datetime 2020-12-09T1606+0100
*
* @since 2.1.6 add catch-all exclusion to fix URL line wrapping, thanks to @a223123131 bug report
* @datetime 2020-12-09T1921+0100
* @link https://wordpress.org/support/topic/broken-layout-starting-version-2-1-4/
*
* @since 2.1.4 Bugfix: Reference container: Backlinks: fix line breaking with respect to separators and terminators.
* @since 2.1.5 Bugfix: Reference container, tooltips: URL wrap: exclude image source too, thanks to @bjrnet21 bug report.
* @since 2.1.6 Bugfix: Reference container, tooltips: URL wrap: fix regex, thanks to @a223123131 bug report.
* @since 2.1.6 Bugfix: Dashboard: URL wrap: add option to properly enable/disable URL wrap.
* @since 2.2.0 Adding: Reference container: support for custom position shortcode, thanks to @hamshe issue report.
* @datetime 2020-12-13T2058+0100
* @link https://wordpress.org/support/topic/reference-container-in-elementor/
*
* @since 2.2.3 custom CSS from new setting in header after legacy
* @datetime 2020-12-15T1128+0100
*
* @since 2.2.5 connect alternative tooltips to position and timing settings
* @datetime 2020-12-18T1113+0100
*
* @since 2.2.5 delete unused position shortcode when ref container in widget or footer, thanks to @hamshe bug report
* @datetime 2020-12-18T1437+0100
* @link https://wordpress.org/support/topic/reference-container-in-elementor/#post-13784126
*
* @since 2.2.5 options for label element and label bottom border, thanks to @markhillyer support request
* @datetime 2020-12-18T1447+0100
* @link https://wordpress.org/support/topic/how-do-i-eliminate-the-horizontal-line-beneath-the-reference-container-heading/
*
* @since 2.2.6 URL wrap: make the quotation mark optional in the exclusion regex, thanks to @spiralofhope2 bug report
* @datetime 2020-12-23T0409+0100
* @link https://wordpress.org/support/topic/two-links-now-breaks-footnotes-with-blogtext/
*
* @since 2.2.7 revert that change in the exclusion regex, thanks to @rjl20, @spaceling, @friedrichnorth, @bernardzit bug reports
* @datetime 2020-12-23T1046+0100
* @link https://wordpress.org/support/topic/two-links-now-breaks-footnotes-with-blogtext/
* @link https://wordpress.org/support/topic/footnotes-dont-show-after-update-to-2-2-6/
*
* @since 2.2.8 URL wrap: correct lookbehind by duplicating it with and without quotation mark class
* @datetime 2020-12-23T1108+0100
*
* @since 2.2.9 URL wrap: account for RFC 2396 allowed characters in parameter names
* @datetime 2020-12-24T1956+0100
* @link https://stackoverflow.com/questions/814700/http-url-allowed-characters-in-parameter-names
*
* @since 2.2.9 Reference containers, widget_text hook: support for multiple containers in a page, thanks to @justbecuz bug report
* @link https://wordpress.org/support/topic/reset-footnotes-to-1/#post-13662830
*
* @since 2.2.9 URL wrap: exclude URLs also where the equals sign is preceded by an entity or character reference
* @datetime 2020-12-25T1251+0100
*
* @since 2.2.10 URL wrap: support also file transfer protocol URLs
* @datetime 2020-12-25T2220+0100
*
* @since 2.2.10 Reference container: add option for table borders to revert 2.0.0/2.0.1 change made on user request, thanks to @noobishh
* @datetime 2020-12-25T2304+0100
* @link https://wordpress.org/support/topic/borders-25/
*
* @since 2.3.0 Reference container: convert top padding to margin and make it a setting, thanks to @hamshe bug report
* @link https://wordpress.org/support/topic/reference-container-in-elementor/#post-13786635
*
* @since 2.3.0 optional hard links in referrers and backlinks for AMP compatibility, thanks to @psykonevro bug report, thanks to @martinneumannat code contribution
* @since 2.3.0 swap Custom CSS migration Boolean from 'migration complete' to 'show legacy'
* @datetime 2020-12-27T1243+0100
* @since 2.4.0 syntax validation for balanced footnote start and end tags 2021-01-01T0227+0100
* @since 2.4.0 initialize scroll offset variable to 34 as a more robust default, thanks to @lukashuggenberg 2021-01-04T0504+0100
* @since 2.4.0 set empty reference container label to NNBSP to make it more robust, thanks to @lukashuggenberg 2021-01-04T0504+0100
* @since 2.4.0 Performance: optimize template load and process according to settings, thanks to @misfist code contribution
* @since 2.4.0 initialize hard link address as empty to fix undefined variable bug, thanks to @a223123131 2021-01-04T1622+0100
*
* @since 2.5.0 Shortcode syntax validation: exclude certain cases involving scripts, thanks to @andreasra 2021-01-07T0824+0100
* @since 2.5.0 Shortcode syntax validation: complete message with hint about setting, thanks to @andreasra
* @since 2.5.0 Shortcode syntax validation: limit length of quoted string to 300 characters, thanks to @andreasra
* @link https://wordpress.org/support/topic/warning-unbalanced-footnote-start-tag-short-code-before/
*
* @since 2.5.0 Hooks: support footnotes on category pages, thanks to @vitaefit bug report, thanks to @misfist code contribution
* @since 2.5.1 Hooks: support footnotes in Popup Maker popups, thanks to @squatcher bug report
*
* @since 2.5.2 Tooltips: ability to display dedicated content, thanks to @jbj2199 bug report
*
* @since 2.5.3 URL wrap: exclude URL pattern as folder name in Wayback Machine URL, thanks to @rumperuu bug report
* @since 2.2.3 Bugfix: Custom CSS: insert new CSS in the public page header element after existing CSS.
* @since 2.2.5 Bugfix: Reference container: delete position shortcode if unused because position may be widget or footer, thanks to @hamshe bug report.
* @since 2.2.5 Bugfix: Reference container: Label: make bottom border an option, thanks to @markhillyer issue report.
* @since 2.2.5 Bugfix: Reference container: Label: option to select paragraph or heading element, thanks to @markhillyer issue report.
* @since 2.2.5 Update: Tooltips: Alternative tooltips: connect to position/timing settings (for themes not supporting jQuery tooltips).
* @since 2.2.6 Bugfix: Reference container, tooltips: URL wrap: make the quotation mark optional wrt query parameters, thanks to @spiralofhope2 bug report.
* @since 2.2.7 Bugfix: Reference container, tooltips: URL wrap: remove a bug introduced in the regex, thanks to @rjl20 @spaceling @lukashuggenberg @klusik @friedrichnorth @bernardzit bug reports.
* @since 2.2.8 Bugfix: Reference container, tooltips: URL wrap: correctly make the quotation mark optional wrt query parameters, thanks to @spiralofhope2 bug report.
* @since 2.2.9 Bugfix: Reference container, tooltips: URL wrap: account for RFC 2396 allowed characters in parameter names.
* @since 2.2.9 Bugfix: Reference container, widget_text hook: support for multiple containers in a page, thanks to @justbecuz bug report.
* @since 2.2.9 Bugfix: Reference container, tooltips: URL wrap: exclude URLs also where the equals sign is preceded by an entity or character reference.
* @since 2.2.10 Bugfix: Reference container: add option for table borders to restore pre-2.0.0 design, thanks to @noobishh issue report.
* @since 2.2.10 Bugfix: Reference container, tooltips: URL wrap: support also file transfer protocol URLs.
* @since 2.3.0 Bugfix: Reference container: convert top padding to margin and make it a setting, thanks to @hamshe bug report.
* @since 2.3.0 Adding: Referrers and backlinks: optional hard links for AMP compatibility, thanks to @psykonevro bug report, thanks to @martinneumannat code contribution.
* @since 2.3.0 Bugfix: Dashboard: Custom CSS: swap migration Boolean, meaning 'show legacy' instead of 'migration complete', due to storage data structure constraints.
* @since 2.4.0 Adding: Footnote delimiters: syntax validation for balanced footnote start and end tag short codes.
* @since 2.4.0 Bugfix: Scroll offset: initialize to safer one third window height for more robustness, thanks to @lukashuggenberg bug report.
* @since 2.4.0 Bugfix: Reference container: Label: set empty label to U+202F NNBSP for more robustness, thanks to @lukashuggenberg feedback.
* @since 2.4.0 Bugfix: Templates: optimize template load and processing based on settings, thanks to @misfist code contribution.
* @since 2.4.0 Bugfix: Process: initialize hard link address variables to empty string to fix 'undefined variable' bug, thanks to @a223123131 bug report.
* @since 2.5.0 Bugfix: Hooks: support footnotes on category pages, thanks to @vitaefit bug report, thanks to @misfist code contribution.
* @since 2.5.0 Bugfix: Footnote delimiter syntax validation: exclude certain cases involving scripts, thanks to @andreasra bug report.
* @since 2.5.0 Bugfix: Footnote delimiter syntax validation: complete message with hint about setting, thanks to @andreasra bug report.
* @since 2.5.0 Bugfix: Footnote delimiter syntax validation: limit length of quoted string to 300 characters, thanks to @andreasra bug report.
* @since 2.5.1 Bugfix: Hooks: support footnotes in Popup Maker popups, thanks to @squatcher bug report.
* @since 2.5.2 Update: Tooltips: ability to display dedicated content before `[[/tooltip]]`, thanks to @jbj2199 issue report.
* @since 2.5.3 Bugfix: Reference container, tooltips: URL wrap: exclude URL pattern as folder name in Wayback Machine URL, thanks to @rumperuu bug report.
*/
// If called directly, abort:
@ -195,17 +136,16 @@ class MCI_Footnotes_Task {
/**
* Multiple reference containers in content and widgets
*
* - Bugfix: Reference containers, widget_text hook: support for multiple containers in a page, thanks to @justbecuz bug report
* - Bugfix: Reference container, widget_text hook: support for multiple containers in a page, thanks to @justbecuz bug report.
*
* @since 2.2.9
* @datetime 2020-12-25T0338+0100
*
* @reporter @justbecuz
*
* @link https://wordpress.org/support/topic/reset-footnotes-to-1/
* @link https://wordpress.org/support/topic/reset-footnotes-to-1/#post-13662830
*
* @var int incremented each time after a reference container is inserted
* @var int 1; incremented each time after a reference container is inserted
*
* This ID disambiguates multiple reference containers in a page
* as they may occur when the widget_text hook is active and the page
@ -216,7 +156,7 @@ class MCI_Footnotes_Task {
/**
* Template process optimization
*
* - Bugfix: Performance: optimize template load and process according to settings, thanks to @misfist code contribution
* - Bugfix: Templates: optimize template load and processing based on settings, thanks to @misfist code contribution.
*
* @since 2.4.0
* @datetime 2021-01-04T1355+0100
@ -229,16 +169,16 @@ class MCI_Footnotes_Task {
*
* @var bool from DB
*
* Streamline process depending on tooltip enabled status
* Load tooltip inline script only if jQuery tooltips are enabled
* Streamline process depending on tooltip enabled status.
* Load tooltip inline script only if jQuery tooltips are enabled.
*/
public static $a_bool_TooltipsEnabled = false;
public static $a_bool_AlternativeTooltipsEnabled = false;
/**
* Hard links for AMP
* Hard links for AMP compatibility
*
* - Bugfix: Optional hard links in referrers and backlinks for AMP compatibility, thanks to @psykonevro bug report, thanks to @martinneumannat code contribution.
* - Adding: Referrers and backlinks: optional hard links for AMP compatibility, thanks to @psykonevro bug report, thanks to @martinneumannat code contribution.
*
* @since 2.3.0
* @var bool|str|int
@ -267,25 +207,48 @@ class MCI_Footnotes_Task {
/**
* Scroll offset
*
* - Bugfix: Scroll offset: initialize to safer one third window height for more robustness, thanks to @lukashuggenberg bug report.
*
* @since 2.4.0
* @datetime 2021-01-03T2055+0100
* @datetime 2021-01-04T0504+0100
*
* @reporter @lukashuggenberg
* @link https://wordpress.org/support/topic/2-2-6-breaks-all-footnotes/#post-13857922
*
* @var int
*
* Websites may use high fixed headers not contracting at scroll.
* Scroll offset may now need to get into inline CSS.
* Hence it needs to be loaded twice.
* Hence it needs to be loaded twice, because priority levels may not match.
*/
public static $a_int_ScrollOffset = 34;
/**
* Optional link element for footnote referrers and backlinks
*
* @since 2.3.0
* @datetime 2020-12-30T2313+0100
* @var str
*
* @since 2.0.0 add link elements with hard links
* @since 2.0.4 remove hard links on user request
* @link https://wordpress.org/support/topic/hyperlinked-footnotes-creating-excessive-back-history/
*
*
* - Bugfix: Styling: Referrers and backlinks: make link elements optional to fix issues.
*
* @since 2.1.4
* @datetime 2020-11-25T1306+0100
* @datetime 2020-11-26T1051+0100
*
*
* - Adding: Referrers and backlinks: optional hard links for AMP compatibility, thanks to @psykonevro bug report, thanks to @martinneumannat code contribution.
*
* @since 2.3.0
* @datetime 2020-12-30T2313+0100
* @see $a_bool_HardLinksEnable
*
* # Styling
*
*
* Link color is preferred for referrers and backlinks.
* Setting a global link color is a common feature in WordPress themes.
* CSS does not support identifiers for link colors (color: link | hover | active | visited)
@ -295,7 +258,7 @@ class MCI_Footnotes_Task {
* If not, the very presence of the link elements may need to be avoided.
*
* # Functionality
*
*
* Although widely used for that purpose, hyperlinks are disliked for footnote linking.
* Browsers may need to be prevented from logging these clicks in the browsing history,
* as logging compromises the usability of the 'return to previous' button in browsers.
@ -307,14 +270,6 @@ class MCI_Footnotes_Task {
* of the already supported pseudo-classes :link, :hover, :active and :visited that can
* still not be used in color names.
*
* @since 2.0.0 add link elements with hard links
*
* @since 2.0.4 remove hard links on user request
* @link https://wordpress.org/support/topic/hyperlinked-footnotes-creating-excessive-back-history/
*
* link elements optional for styling purposes
* @since 2.1.4
* @datetime 2020-11-25T1306+0100
*
* this variable keeps its default value if hard links are disabled
*/
@ -325,7 +280,7 @@ class MCI_Footnotes_Task {
/**
* Dedicated tooltip text
*
* - Bugfix: Tooltips: ability to display dedicated content, thanks to @jbj2199 bug report
* - Update: Tooltips: ability to display dedicated content before `[[/tooltip]]`, thanks to @jbj2199 issue report.
*
* @since 2.5.2
* @datetime 2021-01-19T2223+0100
@ -345,11 +300,15 @@ class MCI_Footnotes_Task {
/**
* Footnote delimiter syntax validation
*
* - Adding: Footnote delimiters: syntax validation for balanced footnote start and end tag short codes.
*
* @since 2.4.0
* @datetime 2021-01-01T0227+0100
*
* @var bool
*
* The algorithm first checks for balanced footnote opening and closing tag short codes.
* The first encountered error triggers the display of a warning below the post title.
* The algorithm first checks for balanced footnote opening and closing tag short codes.
* The first encountered error triggers the display of a warning below the post title.
*
* Unbalanced short codes have caused significant trouble because they are hard to detect.
* Any compiler or other tool reports syntax errors in the first place. Footnotes exception
@ -466,17 +425,17 @@ class MCI_Footnotes_Task {
/**
* Hook for category pages
*
* -Bugfix: Hooks: support footnotes on category pages, thanks to @vitaefit bug report, thanks to @misfist code contribution
* - Bugfix: Hooks: support footnotes on category pages, thanks to @vitaefit bug report, thanks to @misfist code contribution.
*
* @since 2.5.0
* @datetime 2021-01-05T1402+0100
*
* @reporter @vitaefit
* @link https://wordpress.org/support/topic/footnote-doesntwork-on-category-page/
*
* @contributor @misfist
* @link https://wordpress.org/support/topic/footnote-doesntwork-on-category-page/#post-13864859
*
* @reporter @vitaefit
* @link https://wordpress.org/support/topic/footnote-doesntwork-on-category-page/
*
* Category pages can have rich HTML content in a term description with article status.
* For this to happen, WordPress built-in partial HTML blocker needs to be disabled.
* @link https://docs.woocommerce.com/document/allow-html-in-term-category-tag-descriptions/
@ -486,7 +445,7 @@ class MCI_Footnotes_Task {
/**
* Hook for popup maker popups
*
* - Bugfix: Hooks: support footnotes in Popup Maker popups, thanks to @squatcher bug report
* - Bugfix: Hooks: support footnotes in Popup Maker popups, thanks to @squatcher bug report.
*
* @since 2.5.1
* @datetime 2021-01-18T2038+0100
@ -586,14 +545,14 @@ class MCI_Footnotes_Task {
* @since 1.5.0
*
*
* @since 2.1.1 Bugfix: Reference container: fix start pages by making its display optional, thanks to @dragon013 bug report
* @since 2.1.1 Bugfix: Reference container: fix start pages by making its display optional, thanks to @dragon013 bug report.
* @since 2.1.1 Bugfix: Tooltips: optional alternative JS implementation with CSS transitions to fix configuration-related outage, thanks to @andreasra feedback.
* @since 2.1.3 raise settings priority to override theme style sheets
* @since 2.1.4 tootip font size and backlink column width settings
* @since 2.2.5 options for label element and label bottom border, thanks to @markhillyer 2020-12-18T1447+0100
* @link https://wordpress.org/support/topic/how-do-i-eliminate-the-horizontal-line-beneath-the-reference-container-heading/
* @since 2.3.0 Reference container: convert top padding to margin and make it a setting, thanks to @hamshe
* @link https://wordpress.org/support/topic/reference-container-in-elementor/#post-13786635
* @since 2.1.4 Bugfix: Tooltips: Styling: fix font size issue by adding font size to settings with legacy as default.
* @since 2.1.4 Bugfix: Reference container: fix layout issues by moving backlink column width to settings.
* @since 2.2.5 Bugfix: Reference container: Label: make bottom border an option, thanks to @markhillyer issue report.
* @since 2.2.5 Bugfix: Reference container: Label: option to select paragraph or heading element, thanks to @markhillyer issue report.
* @since 2.3.0 Bugfix: Reference container: convert top padding to margin and make it a setting, thanks to @hamshe bug report.
*/
public function wp_head() {
@ -614,7 +573,16 @@ class MCI_Footnotes_Task {
echo ".home .footnotes_reference_container { display: none; }\r\n";
}
// ref container top and bottom margins:
/**
* Referernce container top and bottom margins
*
* - Bugfix: Reference container: convert top padding to margin and make it a setting, thanks to @hamshe bug report.
*
* @since 2.3.0
*
* @reporter @hamshe
* @link https://wordpress.org/support/topic/reference-container-in-elementor/#post-13786635
*/
$l_int_ReferenceContainerTopMargin = intval(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_INT_REFERENCE_CONTAINER_TOP_MARGIN));
$l_int_ReferenceContainerBottomMargin = intval(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_INT_REFERENCE_CONTAINER_BOTTOM_MARGIN));
echo ".footnotes_reference_container {margin-top: ";
@ -623,14 +591,36 @@ class MCI_Footnotes_Task {
echo empty($l_int_ReferenceContainerBottomMargin) ? '0' : $l_int_ReferenceContainerBottomMargin;
echo "px !important;}\r\n";
// ref container label bottom border:
/**
* Reference container label bottom border
*
* - Bugfix: Reference container: Label: make bottom border an option, thanks to @markhillyer issue report.
* - Bugfix: Reference container: Label: option to select paragraph or heading element, thanks to @markhillyer issue report.
*
* @since 2.2.5
* @datetime 2020-12-18T1447+0100
*
* @reporter @markhillyer
* @link https://wordpress.org/support/topic/how-do-i-eliminate-the-horizontal-line-beneath-the-reference-container-heading/
*
*/
if (MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_REFERENCE_CONTAINER_LABEL_BOTTOM_BORDER))) {
echo ".footnote_container_prepare > ";
echo MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_REFERENCE_CONTAINER_LABEL_ELEMENT);
echo " {border-bottom: 1px solid #aaaaaa !important;}\r\n";
}
// ref container table row borders:
/**
* Reference container table row borders
*
* - Bugfix: Reference container: add option for table borders to restore pre-2.0.0 design, thanks to @noobishh issue report.
*
* @since 2.2.10
* @datetime 2020-12-25T2304+0100
*
* @reporter @noobishh
* @link https://wordpress.org/support/topic/borders-25/
*/
if ( MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_REFERENCE_CONTAINER_ROW_BORDERS_ENABLE))) {
echo ".footnotes_table, .footnotes_plugin_reference_row {";
echo "border: 1px solid #060606;";
@ -687,7 +677,13 @@ class MCI_Footnotes_Task {
echo "}\r\n";
}
// hard links scroll offset:
/**
* Hard links scroll offset
*
* - Bugfix: Scroll offset: make configurable to fix site-dependent issues related to fixed headers.
*
* @since 2.1.4
*/
self::$a_bool_HardLinksEnable = MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_FOOTNOTES_HARD_LINKS_ENABLE));
self::$a_int_ScrollOffset = intval(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_INT_FOOTNOTES_SCROLL_OFFSET));
if (self::$a_bool_HardLinksEnable) {
@ -706,7 +702,14 @@ class MCI_Footnotes_Task {
// tooltip appearance:
// font size:
/**
* Tooltip font size
*
* - Bugfix: Styling: Tooltips: fix font size issue by adding font size to settings with legacy as default.
*
* @since 2.1.4
* @datetime 2020-12-03T0954+0100
*/
echo ' font-size: ';
if(MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_MOUSE_OVER_BOX_FONT_SIZE_ENABLED))) {
echo MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_FLO_MOUSE_OVER_BOX_FONT_SIZE_SCALAR);
@ -754,6 +757,21 @@ class MCI_Footnotes_Task {
printf(" box-shadow: 2px 2px 11px %s;", $l_str_BoxShadowColor);
}
/**
* Tooltip position and timing
*
* - Bugfix: Tooltips: make display delays and fade durations configurable to conform to website style.
*
* @since 2.1.4
* @datetime 2020-12-06T1320+0100
*
*
* - Update: Tooltips: Alternative tooltips: connect to position/timing settings (for themes not supporting jQuery tooltips).
*
* @since 2.2.5
* @datetime 2020-12-18T1113+0100
*/
// alternative tooltips:
if ( ! self::$a_bool_AlternativeTooltipsEnabled) {
@ -812,10 +830,20 @@ class MCI_Footnotes_Task {
}
}
// set custom CSS to override settings, not conversely:
// Legacy Custom CSS is used until its set to disappear after dashboard tab migration:
if (MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_CUSTOM_CSS_LEGACY_ENABLE))) {
echo MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_CUSTOM_CSS);
/**
* Custom CSS
*
* - Bugfix: Custom CSS: insert new CSS in the public page header element after existing CSS.
*
* @since 2.2.3
* @datetime 2020-12-15T1128+0100
*
* Set custom CSS to override settings, not conversely.
* Legacy Custom CSS is used until its set to disappear after dashboard tab migration.
*/
if (MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_CUSTOM_CSS_LEGACY_ENABLE))) {
echo MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_CUSTOM_CSS);
echo "\r\n";
}
echo MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_CUSTOM_CSS_NEW);
@ -1040,7 +1068,7 @@ class MCI_Footnotes_Task {
self::$a_int_ReferenceContainerId++;
}
// delete position shortcode should any remain e.g. when ref container is in footer, thanks to @hamshe:
// delete position shortcode should any remain:
$p_str_Content = str_replace( $l_str_ReferenceContainerPositionShortcode, '', $p_str_Content );
// take a look if the LOVE ME slug should NOT be displayed on this page/post, remove the short code if found
@ -1062,12 +1090,18 @@ class MCI_Footnotes_Task {
* @param bool $p_bool_HideFootnotesText Hide footnotes found in the string.
* @return string
*
* Edited since 2.0.0
* @since 2.0.0 various.
* @since 2.4.0 Adding: Footnote delimiters: syntax validation for balanced footnote start and end tag short codes.
*
* @since 2.4.0 footnote shortcode syntax validation
* @since 2.5.0 Shortcode syntax validation: exclude certain cases involving scripts, thanks to @andreasra 2021-01-07T0824+0100
* @since 2.5.0 Shortcode syntax validation: complete message with hint about setting, thanks to @andreasra
* @since 2.5.0 Shortcode syntax validation: limit length of quoted string to 300 characters, thanks to @andreasra
*
* - Bugfix: Footnote delimiter syntax validation: exclude certain cases involving scripts, thanks to @andreasra bug report.
* - Bugfix: Footnote delimiter syntax validation: complete message with hint about setting, thanks to @andreasra bug report.
* - Bugfix: Footnote delimiter syntax validation: limit length of quoted string to 300 characters, thanks to @andreasra bug report.
*
* @since 2.5.0
* @datetime 2021-01-07T0824+0100
*
* @reporter @andreasra
* @link https://wordpress.org/support/topic/warning-unbalanced-footnote-start-tag-short-code-before/
*/
public function search($p_str_Content, $p_bool_ConvertHtmlChars, $p_bool_HideFootnotesText) {
@ -1220,43 +1254,101 @@ class MCI_Footnotes_Task {
/**
* URL line wrapping for Unicode non conformant browsers
*
* Fix line wrapping of URLs (hyperlinked or not) based on pattern, not link element,
* to prevent them from hanging out of the tooltip or extending the reference container
* in non-Unicode-compliant user agents, mainly Chrome (not Firefox).
* @see public.css
* Despite Unicode recommends to line-wrap URLs at slashes, and Firefox follows
* the Unicode standard, Chrome does not, making long URLs hang out of tooltips
* or extend reference containers, so that the end is hidden outside the window
* and may eventually be viewed after we scroll horizontally or zoom out. It is
* up to the web page to make URLs breaking anywhere by wrapping them in a span
* that is assigned appropriate CSS properties and values.
* @see css/public.css
*
* spare however values of the href and the src arguments!
* @since 2.1.5 exclude image source too, thanks to @bjrnet21
* - Bugfix: Reference container, tooltips: fix line wrapping of URLs (hyperlinked or not) based on pattern, not link element.
*
* @since 2.1.4
* @datetime 2020-11-25T0837+0100
*
*
* - Bugfix: Reference container, tooltips: URL wrap: exclude image source too, thanks to @bjrnet21 bug report.
*
* @since 2.1.5
*
* @reporter @bjrnet21
* @link https://wordpress.org/support/topic/2-1-4-breaks-on-my-site-images-dont-show/
*
* Even ARIA labels may take a URL as value, so use \w=[\'"] as a catch-all 2020-12-10T1005+0100
* @since 2.1.6 add catch-all exclusion to fix URL line wrapping, thanks to @a223123131 2020-12-09T1921+0100
*
* - Bugfix: Reference container, tooltips: URL wrap: fix regex, thanks to @a223123131 bug report.
*
* @since 2.1.6
* @datetime 2020-12-09T1921+0100
*
* @reporter @a223123131
* @link https://wordpress.org/support/topic/broken-layout-starting-version-2-1-4/
*
* @since 2.1.6 option to disable URL line wrapping 2020-12-09T1606+0100
* Even ARIA labels may take a URL as value, so use \w=[\'"] as a catch-all 2020-12-10T1005+0100
*
* URLs may be a query string in a URL:
* @since 2.2.6 make the quotation mark optional in the exclusion regex, thanks to @spiralofhope2 2020-12-23T0409+0100
* - Bugfix: Dashboard: URL wrap: add option to properly enable/disable URL wrap.
*
* @since 2.1.6
* @datetime 2020-12-09T1606+0100
*
*
* - Bugfix: Reference container, tooltips: URL wrap: make the quotation mark optional wrt query parameters, thanks to @spiralofhope2 bug report.
*
* @since 2.2.6
* @datetime 2020-12-23T0409+0100
*
* @reporter @spiralofhope2
* @link https://wordpress.org/support/topic/two-links-now-breaks-footnotes-with-blogtext/
*
* @since 2.2.7 revert that change in the exclusion regex, thanks to @rjl20, @spaceling, @friedrichnorth, @bernardzit 2020-12-23T1046+0100
* @link https://wordpress.org/support/topic/two-links-now-breaks-footnotes-with-blogtext/
*
* - Bugfix: Reference container, tooltips: URL wrap: remove a bug introduced in the regex, thanks to @rjl20 @spaceling @lukashuggenberg @klusik @friedrichnorth @bernardzit bug reports.
*
* @since 2.2.7
* @datetime 2020-12-23T1046+0100
*
* @reporter @rjl20
* @link https://wordpress.org/support/topic/two-links-now-breaks-footnotes-with-blogtext/#post-13825479
*
* @reporter @spaceling
* @link https://wordpress.org/support/topic/two-links-now-breaks-footnotes-with-blogtext/#post-13825532
*
* @reporter @lukashuggenberg
* @link https://wordpress.org/support/topic/2-2-6-breaks-all-footnotes/
*
* @reporter @klusik
* @link https://wordpress.org/support/topic/2-2-6-breaks-all-footnotes/#post-13825885
*
* @reporter @friedrichnorth
* @link https://wordpress.org/support/topic/footnotes-dont-show-after-update-to-2-2-6/
* @since 2.2.8 correct lookbehind by duplicating it with and without quotation mark class 2020-12-23T1107+0100
*
* @since 2.2.9 account for RFC 2396 allowed characters in parameter names 2020-12-24T1956+0100
* @reporter @bernardzit
* @link https://wordpress.org/support/topic/footnotes-dont-show-after-update-to-2-2-6/#post-13826029
*
*
* @since 2.2.8 Bugfix: Reference container, tooltips: URL wrap: correctly make the quotation mark optional wrt query parameters, thanks to @spiralofhope2 bug report.
* @datetime 2020-12-23T1107+0100
*
* Correct is duplicating the negative lookbehind w/o quotes: '(?<!\w=)'
*
* @since 2.2.9 Bugfix: Reference container, tooltips: URL wrap: account for RFC 2396 allowed characters in parameter names.
* @datetime 2020-12-24T1956+0100
* @link https://stackoverflow.com/questions/814700/http-url-allowed-characters-in-parameter-names
*
* @since 2.2.9 exclude URLs also where the equals sign is preceded by an entity or character reference 2020-12-25T1234+0100
* @since 2.2.9 Bugfix: Reference container, tooltips: URL wrap: exclude URLs also where the equals sign is preceded by an entity or character reference.
* @datetime 2020-12-25T1251+0100
*
* @since 2.2.10 support also file transfer protocol URLs 2020-12-25T2220+0100
* @since 2.2.10 Bugfix: Reference container, tooltips: URL wrap: support also file transfer protocol URLs.
* @datetime 2020-12-25T2220+0100
*
*
* - Bugfix: Reference container, tooltips: URL wrap: exclude URL pattern as folder name in Wayback Machine URL, thanks to @rumperuu bug report.
*
* URL pattern may be part of a Wayback Machine URL
* @reporter @rumperuu bug report
* @link https://wordpress.org/support/topic/line-wrap-href-regex-bug/
* @since 2.5.3
* exclude protocols with prepended slash hinting its in a Wayback Machine URL
*
* @reporter @rumperuu
* @link https://wordpress.org/support/topic/line-wrap-href-regex-bug/
*
* By adding a 3rd negative lookbehind: '(?<!/)'.
*/
if (MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_FOOTNOTE_URL_WRAP_ENABLED))) {
$l_str_FootnoteText = preg_replace( '#(?<![-\w\.!~\*\'\(\);]=[\'"])(?<![-\w\.!~\*\'\(\);]=)(?<!/)((ht|f)tps?://[^\\s<]+)#', '<span class="footnote_url_wrap">$1</span>', $l_str_FootnoteText );
@ -1380,7 +1472,18 @@ class MCI_Footnotes_Task {
} else {
// no hyperlink nor offset anchor needed:
/**
* Initialize hard link variables when hard links are disabled.
*
* - Bugfix: Process: initialize hard link address variables to empty string to fix 'undefined variable' bug, thanks to @a223123131 bug report.
*
* @since 2.4.0
* @datetime 2021-01-04T1622+0100
*
* @reporter @a223123131
* @link https://wordpress.org/support/topic/wp_debug-php-notice/
*/
// no hyperlink nor offset anchor needed, initialize as empty:
$l_str_FootnoteLinkArgument = '';
$l_str_ReferrerAnchorElement = '';
@ -1534,6 +1637,11 @@ class MCI_Footnotes_Task {
/**
* Backlink separator
*
* - Bugfix: Reference container: make separating and terminating punctuation optional and configurable.
*
* @since 2.1.4
* @datetime 2020-11-28T1048+0100
*
* Initially a comma was appended in this algorithm for enumerations.
* The comma in enumerations is not generally preferred.
* @since 2.1.4 the separator is optional, has options, and is configurable:
@ -1596,6 +1704,11 @@ class MCI_Footnotes_Task {
/**
* Line breaks
*
* - Bugfix: Reference container: Backlinks: fix stacked enumerations by adding optional line breaks.
*
* @since 2.1.4
* @datetime 2020-11-28T1049+0100
*
* The backlinks of combined footnotes are generally preferred in an enumeration.
* But when few footnotes are identical, stacking the items in list form is better.
* Variable number length and proportional character width require explicit line breaks.
@ -1656,6 +1769,11 @@ class MCI_Footnotes_Task {
* @contributor @spaceling
* @link https://wordpress.org/support/topic/change-the-position-5/#post-13615994
*
*
* - Bugfix: Reference container: Backlink symbol: support for appending when combining identicals is on.
*
* @since 2.1.4
* @datetime 2020-11-26T1633+0100
*/
$l_bool_SymbolSwitch = MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_REFERENCE_CONTAINER_BACKLINK_SYMBOL_SWITCH));
@ -1718,11 +1836,13 @@ class MCI_Footnotes_Task {
/**
* Support for combining identicals: compose enumerated backlinks
*
* Combining identical footnotes: fix dead links and ensure referrer-backlink bijectivity
* @reporter @happyches bug report
* @link https://wordpress.org/support/topic/custom-css-for-jumbled-references/
* - Bugfix: Referrers, reference container: Combining identical footnotes: fix dead links and ensure referrer-backlink bijectivity, thanks to @happyches bug report.
*
* @since 2.1.1
* @datetime 2020-11-14T2233+0100
*
* @reporter @happyches
* @link https://wordpress.org/support/topic/custom-css-for-jumbled-references/
*
* Prepare to have single footnotes, where the click event and
* optional hard link need to be set to cover the table cell,
@ -1921,9 +2041,32 @@ class MCI_Footnotes_Task {
// streamline:
$l_bool_CollapseDefault = MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_REFERENCE_CONTAINER_COLLAPSE));
/**
* Reference container label
*
* - Bugfix: Reference container: Label: set empty label to U+202F NNBSP for more robustness, thanks to @lukashuggenberg feedback.
*
* @since 2.4.0
* @datetime 2021-01-04T0504+0100
*
* @reporter @lukashuggenberg
*
* Themes may drop-cap a first letter of initial paragraphs, like this label.
* In case of empty label that would apply to the left half button character.
* Hence the point in setting an empty label to U+202F NARROW NO-BREAK SPACE.
*/
// prevent empty from being less robust:
$l_str_ReferenceContainerLabel = MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_REFERENCE_CONTAINER_NAME);
/**
* Scroll offset and duration
*
* - Bugfix: Scroll offset: make configurable to fix site-dependent issues related to fixed headers.
* - Bugfix: Scroll duration: make configurable to conform to website content and style requirements.
*
* @since 2.1.4
* @datetime 2020-12-05T0538+0100
*/
// load 'templates/public/reference-container.html':
$l_obj_TemplateContainer = new MCI_Footnotes_Template(MCI_Footnotes_Template::C_STR_PUBLIC, "reference-container");
$l_obj_TemplateContainer->replace(

View file

@ -6,8 +6,8 @@
* @author Stefan Herndler
* @since 1.5.0 14.09.14 10:58
*
*
* @lastmodified 2021-02-06T0604+0100
*
* @lastmodified 2021-02-08T1925+0100
*
* @since 2.0.3 prettify reference container template
* @since 2.0.3 replace tab with a space
@ -15,16 +15,16 @@
* @since 2.0.4 collapse multiple spaces
* @since 2.0.6 prettify other templates (footnote, tooltip script, ref container row)
* @since 2.2.6 delete a space before a closing pointy bracket
*
*
* @since 2.2.6 support for custom templates in fixed location, while failing to add filter thanks to @misfist 2020-12-19T0606+0100
* @link https://wordpress.org/support/topic/template-override-filter/
*
*
* @since 2.4.0 templates may be in active theme, thanks to @misfist
* @link https://wordpress.org/support/topic/template-override-filter/#post-13846598
*
*
* @since 2.5.0 Enable template location stack, contributed by @misfist
* @link https://wordpress.org/support/topic/template-override-filter/#post-13864301
*
*
* @since 2.5.4 collapse HTML comments and PHP/JS docblocks (only)
*/
@ -93,7 +93,7 @@ class MCI_Footnotes_Template {
* @param string $p_str_FileName Template file name inside the Template directory without the file extension.
* @param string $p_str_Extension Optional Template file extension (default: html)
*
*
*
* @since 2.2.6 support for custom templates 2020-12-19T0606+0100
* @link https://wordpress.org/support/topic/template-override-filter/
*
@ -185,18 +185,18 @@ class MCI_Footnotes_Template {
*
* @param string $template
* @return void
*
*
*
*
* @since 2.0.3 replace tab with a space
* @since 2.0.3 replace 2 spaces with 1
* @since 2.0.4 collapse multiple spaces
* @since 2.2.6 delete a space before a closing pointy bracket
* @since 2.5.4 collapse HTML comments and PHP/JS docblocks (only)
* @since 2.5.4 collapse HTML comments and PHP/JS docblocks (only)
*/
public function process_template( $template ) {
$this->a_str_OriginalContent = preg_replace( '#<!--.+?-->#s', " ", file_get_contents( $template ) );
$this->a_str_OriginalContent = preg_replace( '#<!--.+?-->#s', " ", file_get_contents( $template ) );
$this->a_str_OriginalContent = preg_replace( '#/\*\*.+?\*/#s', " ", $this->a_str_OriginalContent );
$this->a_str_OriginalContent = str_replace( "\n", "", $this->a_str_OriginalContent );
$this->a_str_OriginalContent = str_replace( "\n", "", $this->a_str_OriginalContent );
$this->a_str_OriginalContent = str_replace( "\r", "", $this->a_str_OriginalContent );
$this->a_str_OriginalContent = str_replace( "\t", " ", $this->a_str_OriginalContent );
$this->a_str_OriginalContent = preg_replace( '# +#', " ", $this->a_str_OriginalContent );

View file

@ -4,7 +4,7 @@
Plugin URI: https://wordpress.org/plugins/footnotes/
Description: time to bring footnotes to your website! footnotes are known from offline publishing and everybody takes them for granted when reading a magazine.
Author: Mark Cheret
Version: 2.5.4d3
Version: 2.5.4d4
Author URI: http://cheret.de/plugins/footnotes-2/
Text Domain: footnotes
Domain Path: /languages
@ -18,10 +18,10 @@
* @since 2.1.4
* @since 2.5.3 (Hungarian)
* @var str
* @lastmodified 2021-02-08T1900+0100
* @lastmodified 2021-02-10T0028+0100
* @committer @pewgeuges
*/
define( 'C_STR_FOOTNOTES_VERSION', '2.5.4d3' );
define( 'C_STR_FOOTNOTES_VERSION', '2.5.4d4' );
/*
LICENSE NOTICE

View file

@ -1,5 +1,5 @@
=== footnotes ===
Contributors: mark.cheret, lolzim, dartiss, docteurfitness, felipelavinz, martinneumannat, matkus2, misfist, rumperuu, spaceling, vonpiernik, pewgeuges
Contributors: mark.cheret, lolzim, dartiss, docteurfitness, felipelavinz, martinneumannat, matkus2, meglio, misfist, rumperuu, spaceling, vonpiernik, pewgeuges
Tags: footnote, footnotes, bibliography, formatting, notes, Post, posts, reference, referencing
Requires at least: 3.9
Tested up to: 5.6.1
@ -79,18 +79,18 @@ Visit this swift write-up from a **footnotes** user by the name of **Southwest**
== Changelog ==
= 2.5.4d3 =
= 2.5.4d4 =
- Update: Libraries: jQuery Tools: replace deprecated function jQuery.isFunction(), thanks to @a223123131 bug report.
- Bugfix: Tooltips: fix display in Popup Maker popups.
- Bugfix: Tooltips: fix display in Popup Maker popups by correcting a coding error.
- Bugfix: Libraries: jQuery Tools: replace discouraged double equals sign with recommended triple equals sign.
- Bugfix: Editor button: Classic Editor text mode: try to fix uncaught reference error of “QTags is not defined”, thanks to @dpartridge bug report.
- Bugfix: Editor button: Classic Editor text mode: correct label to singular.
= 2.5.3 =
- Bugfix: URL wrap: exclude URL pattern as folder name in Wayback Machine URL, thanks to @rumperuu bug report.
- Bugfix: Reference container, tooltips: URL wrap: exclude URL pattern as folder name in Wayback Machine URL, thanks to @rumperuu bug report.
= 2.5.2 =
- Bugfix: Tooltips: ability to display dedicated content before `[[/tooltip]]`, thanks to @jbj2199 bug report.
- Update: Tooltips: ability to display dedicated content before `[[/tooltip]]`, thanks to @jbj2199 issue report.
- Bugfix: Localization: plugin language file name changes effective in version control system.
= 2.5.1 =
@ -103,21 +103,21 @@ Visit this swift write-up from a **footnotes** user by the name of **Southwest**
- Update: Readme/documentation: update or fix URLs in Download, Support and Development sections.
= 2.5.0 =
- Adding: Customization: Enable template location stack, thanks to @misfist source file contribution.
- Adding: Templates: Enable template location stack, thanks to @misfist code contribution.
- Bugfix: Hooks: support footnotes on category pages, thanks to @vitaefit bug report, thanks to @misfist code contribution.
- Bugfix: Shortcode syntax validation: exclude certain cases involving scripts, thanks to @andreasra bug report.
- Bugfix: Shortcode syntax validation: complete message with hint about setting, thanks to @andreasra bug report.
- Bugfix: Shortcode syntax validation: limit length of quoted string to 300 characters, thanks to @andreasra bug report.
- Update: Shortcode syntax validation: add more information around the setting.
- Bugfix: Shortcodes: Dashboard: warning about '&gt;' escapement disruption in WordPress Block Editor.
- Bugfix: Footnote delimiter syntax validation: exclude certain cases involving scripts, thanks to @andreasra bug report.
- Bugfix: Footnote delimiter syntax validation: complete message with hint about setting, thanks to @andreasra bug report.
- Bugfix: Footnote delimiter syntax validation: limit length of quoted string to 300 characters, thanks to @andreasra bug report.
- Update: Dashboard: Footnote delimiter syntax validation: add more information around the setting.
- Bugfix: Dashboard: Footnote delimiters: warning about '&gt;' escapement disruption in WordPress Block Editor.
= 2.4.0 =
- Adding: Shortcodes: syntax validation for balanced footnote start and end tag short codes.
- Bugfix: Performance: optimize template load and process according to settings, thanks to @misfist code contribution.
- Bugfix: Process: initialize hard link address variable to empty to fix 'undefined variable' bug, thanks to @a223123131 bug report.
- Bugfix: Reference container: Label: set empty label to U+202F NNBSP for more robustness, thanks to @lukashuggenberg bug report.
- Adding: Footnote delimiters: syntax validation for balanced footnote start and end tag short codes.
- Bugfix: Templates: optimize template load and processing based on settings, thanks to @misfist code contribution.
- Bugfix: Process: initialize hard link address variables to empty string to fix 'undefined variable' bug, thanks to @a223123131 bug report.
- Bugfix: Reference container: Label: set empty label to U+202F NNBSP for more robustness, thanks to @lukashuggenberg feedback.
- Bugfix: Scroll offset: initialize to safer one third window height for more robustness, thanks to @lukashuggenberg bug report.
- Bugfix: Shortcodes: Dashboard: remove new option involving HTML comment tags only usable in source mode.
- Bugfix: Footnote delimiters: Dashboard: remove new option involving HTML comment tags only usable in source mode.
- Bugfix: Reference container: Row borders: adapt left padding to the presence of an optional left border.
- Bugfix: Reference container: add class 'footnote_plugin_symbol' to disambiguate repurposed class 'footnote_plugin_link'.
@ -133,32 +133,33 @@ Visit this swift write-up from a **footnotes** user by the name of **Southwest**
- Bugfix: Reference container: Basic responsive page layout: edits to one of the optional style sheets.
= 2.2.10 =
- Bugfix: Reference container: add option for table borders to revert 2.0.0/2.0.1 change, thanks to @noobishh bug report.
- Bugfix: Reference container: add missing container ID in function name in one of the four table row templates.
- Bugfix: Reference container: add option for table borders to restore pre-2.0.0 design, thanks to @noobishh issue report.
- Bugfix: Reference container: add missing container ID in function name in default table row template for uncombined footnotes.
- Bugfix: Reference container, tooltips: URL wrap: support also file transfer protocol URLs.
= 2.2.9 =
- Bugfix: Reference container, widget_text hook: support for multiple reference containers in a page, thanks to @justbecuz bug report.
- Bugfix: Reference container, widget_text hook: support for multiple containers in a page, thanks to @justbecuz bug report.
- Update: Priority levels: set widget_text default to 98 and update its description in the dashboard Priority level tab.
- Bugfix: Reference container, tooltips: URL wrap: account for RFC 2396 allowed characters in parameter names.
- Bugfix: Reference container, tooltips: URL wrap: exclude URLs also where the equals sign is preceded by an entity or character reference.
= 2.2.8 =
- Bugfix: Reference container, tooltips: URL wrap: correct lookbehind by duplicating it with and without quotation mark class.
- Bugfix: Reference container, tooltips: URL wrap: correctly make the quotation mark optional wrt query parameters, thanks to @spiralofhope2 bug report.
= 2.2.7 =
- Bugfix: Reference container, tooltips: URL wrap: revert the change in the regex, thanks to @rjl20 @spaceling @friedrichnorth @bernardzit @lukashuggenberg bug reports.
- Bugfix: Reference container, tooltips: URL wrap: remove a bug introduced in the regex, thanks to @rjl20 @spaceling @lukashuggenberg @klusik @friedrichnorth @bernardzit bug reports.
= 2.2.6 =
- Bugfix: Reference container, tooltips: URL wrap: make the quotation mark optional wrt query parameters, thanks to @spiralofhope2 bug report.
- Adding: Customization: support for custom templates in sibling folder, thanks to @misfist filter request.
- Adding: Templates: support for custom templates in sibling folder, thanks to @misfist issue report.
= 2.2.5 =
- Bugfix: Dashboard: Footnotes numbering: add missing support for Ibid. notation to suggestions, thanks to @meglio code contribution.
- Bugfix: Reference container: Label: not enforce bottom border but make it an option, thanks to @markhillyer bug report.
- Bugfix: Reference container: Label: allow to switch from paragraph element to heading, thanks to @markhillyer code contribution.
- Bugfix: Reference container: Label: make bottom border an option, thanks to @markhillyer issue report.
- Bugfix: Reference container: Label: option to select paragraph or heading element, thanks to @markhillyer issue report.
- Bugfix: Reference container: delete position shortcode if unused because position may be widget or footer, thanks to @hamshe bug report.
- Bugfix: Dashboard: Tooltip position/timing settings: include alternative tooltips (for themes not supporting jQuery tooltips).
- Update: Tooltips: Alternative tooltips: connect to position/timing settings (for themes not supporting jQuery tooltips).
- Update: Dashboard: Tooltip position/timing settings: include alternative tooltips (for themes not supporting jQuery tooltips).
- Bugfix: Dashboard: Tooltip position/timing settings: raise above tooltip truncation settings for better consistency.
= 2.2.4 =
@ -209,15 +210,15 @@ Visit this swift write-up from a **footnotes** user by the name of **Southwest**
- Bugfix: Scroll offset: make configurable to fix site-dependent issues related to fixed headers.
- Bugfix: Scroll duration: make configurable to conform to website content and style requirements.
- Bugfix: Tooltips: make display delays and fade durations configurable to conform to website style.
- Bugfix: Styling: Tooltips: fix font size issue by adding font size to settings with legacy as default.
- Bugfix: Tooltips: Styling: fix font size issue by adding font size to settings with legacy as default.
- Bugfix: Reference container: fix layout by optionally enqueuing additional style sheet (depends on theme).
- Bugfix: Reference container: fix layout issues by moving backlink column width to settings.
- Bugfix: Reference container: make separating and terminating punctuation optional and configurable.
- Bugfix: Reference container: Backlinks: fix stacked enumerations by adding optional line breaks.
- Bugfix: Layout: Tooltips: prevent line break in Read-on link label.
- Bugfix: Styling: Referrers and backlinks: make link elements optional to fix issues.
- Bugfix: Styling: Referrers: disable hover underline.
- Bugfix: Reference container, tooltips: fix line wrapping of URLs based on pattern, not link element.
- Bugfix: Referrers and backlinks: Styling: make link elements optional to fix issues.
- Bugfix: Referrers: Styling: disable hover underline.
- Bugfix: Reference container, tooltips: fix line wrapping of URLs (hyperlinked or not) based on pattern, not link element.
- Bugfix: Reference container: Backlink symbol: support for appending when combining identicals is on.
- Bugfix: Reference container: Backlinks: deprioritize hover underline to ease customization.
- Bugfix: Reference container: Backlinks: fix line breaking with respect to separators and terminators.
@ -248,7 +249,7 @@ Visit this swift write-up from a **footnotes** user by the name of **Southwest**
- Update: Dashboard: feature description for the hooks priority level settings, thanks to @nikelaos bug report.
= 2.1.1 =
- Bugfix: Combining identical footnotes: fix dead links and ensure referrer-backlink bijectivity, thanks to @happyches bug report.
- Bugfix: Referrers, reference container: Combining identical footnotes: fix dead links and ensure referrer-backlink bijectivity, thanks to @happyches bug report.
- Bugfix: Dashboard: priority level setting for the_content hook, thanks to @imeson bug report.
- Update: Libraries: jQuery Tools: redact (comment out) all 6 instances of deprecated function jQuery.browser(), thanks to @bjrnet21 @cconser @vyassuresh @spaceling @widecast @olivlyon @maxident bug reports.
- Bugfix: Libraries: jQuery Tools: complete minification.

View file

@ -1,6 +1,18 @@
<!--<?php//for docblock, @see MCI_Footnotes_Template::process_template()
/**
* Footnote button for the Classic Editor text mode.
*
* @since 1.3.0
* @lastmodified 2021-02-09T0039+0100
*
* @since 2.5.4 Bugfix: Editor button: Classic Editor text mode: try to fix uncaught reference error of “QTags is not defined”, thanks to @dpartridge bug report.
* @since 2.5.4 Bugfix: Editor button: Classic Editor text mode: correct label to singular.
*/?>
-->
<script type="text/javascript">
/**
* adds a tag in at the beginning and at the end of a selected text in the specific text area
* Brackets the selected text with tags in the text area.
*
* @param string elementID
* @param string openTag
* @param string closeTag
@ -17,14 +29,11 @@
/**
* Adds a button to the Classic Editor text mode.
*
*
* @since 2.5.4 Bugfix: Editor button: Classic Editor text mode: try to fix uncaught reference error of “QTags is not defined”, thanks to @dpartridge bug report.
* - Bugfix: Editor button: Classic Editor text mode: try to fix uncaught reference error of “QTags is not defined”, thanks to @dpartridge bug report.
*
* @reporter @dpartridge
* @link https://wordpress.org/support/topic/qtags-addbutton/
*
*
* @since 2.5.4 Bugfix: Editor button: Classic Editor text mode: correct label to singular.
*/
if ( QTags ) {
QTags.addButton( 'MCI_Footnotes_QuickTag_button', 'footnote', MCI_Footnotes_text_editor_callback );

View file

@ -1,3 +1,7 @@
<!--<?php//for docblock, @see MCI_Footnotes_Template::process_template()
/**
*/?>
-->
<span
class="footnote_referrer relative"
onmouseover="footnoteTooltipShow('footnote_plugin_tooltip_text_[[post_id]]_[[container_id]]_[[note_id]]')"

View file

@ -1,6 +1,6 @@
<!--<?php//for docblock, @see MCI_Footnotes_Template::process_template()
/**
*/?>
/**
*/?>
-->
<span
class="footnote_referrer"

View file

@ -1,3 +1,7 @@
<!--<?php//for docblock, @see MCI_Footnotes_Template::process_template()
/**
*/?>
-->
<tr class="footnotes_plugin_reference_row">
<td
class="footnote_plugin_index"

View file

@ -1,3 +1,7 @@
<!--<?php//for docblock, @see MCI_Footnotes_Template::process_template()
/**
*/?>
-->
<tr class="footnotes_plugin_reference_row">
<td
class="footnote_plugin_index_combi[[pointer]]"

View file

@ -1,3 +1,7 @@
<!--<?php//for docblock, @see MCI_Footnotes_Template::process_template()
/**
*/?>
-->
<tr class="footnotes_plugin_reference_row">
<td
id="footnote_plugin_reference_[[post_id]]_[[container_id]]_[[note_id]]"

View file

@ -1,3 +1,11 @@
<!--<?php//for docblock, @see MCI_Footnotes_Template::process_template()
/**
* Default table row template for uncombined footnotes
*
* @since 2.2.10 Bugfix: Reference container: add missing container ID in function name in default table row template for uncombined footnotes.
*
*/?>
-->
<tr class="footnotes_plugin_reference_row">
<td
id="footnote_plugin_reference_[[post_id]]_[[container_id]]_[[note_id]]"

View file

@ -1,24 +1,24 @@
<!--<?php//for docblock, @see MCI_Footnotes_Template::process_template()
/**
* Yields the reference container start and end including the scroll script.
*
* @since Unknown
* @type object
*
* @lastmodified 2021-02-07T0811+0100
*
*
*
* - Bugfix: Reference container: restore expand/collapse button in the template, thanks to @ragonesi bug report.
*
* @since 2.0.2
*
* @reporter @ragonesi
* @link https://wordpress.org/support/topic/hyperlink-symbol-in-reference-container/#post-13587782
*
* The expand/collapse button was lost @since 2.0.0 for an unknown reason.
* The fix was about restoring the button code (only, while the script remained complete).
*/?>
/**
* Yields the reference container start and end including the scroll script.
*
* @since Unknown
* @type object
*
* @lastmodified 2021-02-07T0811+0100
*
*
*
* - Bugfix: Reference container: restore expand/collapse button in the template, thanks to @ragonesi bug report.
*
* @since 2.0.2
*
* @reporter @ragonesi
* @link https://wordpress.org/support/topic/hyperlink-symbol-in-reference-container/#post-13587782
*
* The expand/collapse button was lost @since 2.0.0 for an unknown reason.
* The fix was about restoring the button code (only, while the script remained complete).
*/?>
-->
<div
class="speaker-mute footnotes_reference_container"

View file

@ -1,3 +1,7 @@
<!--<?php//for docblock, @see MCI_Footnotes_Template::process_template()
/**
*/?>
-->
<script type="text/javascript">
jQuery('#footnote_plugin_tooltip_[[post_id]]_[[container_id]]_[[note_id]]').tooltip({
tip: '#footnote_plugin_tooltip_text_[[post_id]]_[[container_id]]_[[note_id]]',
@ -10,5 +14,5 @@
position: '[[position]]',
relative: true,
offset: [[[offset-y]], [[offset-x]]],
});
});
</script>