development 2.3.1d1 for forum
git-svn-id: https://plugins.svn.wordpress.org/footnotes/trunk@2448961 b8457f37-d9ea-0310-8a92-e5e31aec5664
This commit is contained in:
parent
919e76bdef
commit
3096e8f3b4
6 changed files with 69 additions and 33 deletions
|
@ -38,7 +38,7 @@
|
||||||
* @see <https://wordpress.org/support/topic/footnotes-is-not-amp-compatible/>
|
* @see <https://wordpress.org/support/topic/footnotes-is-not-amp-compatible/>
|
||||||
* @since 2.3.1 footnote shortcode syntax validation 2021-01-01T0624+0100
|
* @since 2.3.1 footnote shortcode syntax validation 2021-01-01T0624+0100
|
||||||
*
|
*
|
||||||
* Last modified: 2021-01-01T0639+0100
|
* Last modified: 2021-01-01T1241+0100
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -400,7 +400,7 @@ class MCI_Footnotes_Layout_Settings extends MCI_Footnotes_LayoutEngine {
|
||||||
// option to enable syntax validation:
|
// option to enable syntax validation:
|
||||||
"label-syntax" => $this->addLabel(MCI_Footnotes_Settings::C_BOOL_FOOTNOTE_SHORTCODE_SYNTAX_VALIDATION_ENABLE, __("Check for balanced shortcodes:", MCI_Footnotes_Config::C_STR_PLUGIN_NAME)),
|
"label-syntax" => $this->addLabel(MCI_Footnotes_Settings::C_BOOL_FOOTNOTE_SHORTCODE_SYNTAX_VALIDATION_ENABLE, __("Check for balanced shortcodes:", MCI_Footnotes_Config::C_STR_PLUGIN_NAME)),
|
||||||
"syntax" => $this->addSelectBox(MCI_Footnotes_Settings::C_BOOL_FOOTNOTE_SHORTCODE_SYNTAX_VALIDATION_ENABLE, $l_arr_Enable),
|
"syntax" => $this->addSelectBox(MCI_Footnotes_Settings::C_BOOL_FOOTNOTE_SHORTCODE_SYNTAX_VALIDATION_ENABLE, $l_arr_Enable),
|
||||||
"notice-syntax" => __("In the presence of an unclosed opening tag shortcode, a warning displays below the post title.", MCI_Footnotes_Config::C_STR_PLUGIN_NAME),
|
"notice-syntax" => __("In the presence of a lone start tag shortcode, a warning displays below the post title.", MCI_Footnotes_Config::C_STR_PLUGIN_NAME),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
// display template with replaced placeholders
|
// display template with replaced placeholders
|
||||||
|
|
|
@ -66,7 +66,7 @@
|
||||||
* @since 2.3.0 swap Custom CSS migration Boolean from 'migration complete' to 'show legacy' 2020-12-27T1243+0100
|
* @since 2.3.0 swap Custom CSS migration Boolean from 'migration complete' to 'show legacy' 2020-12-27T1243+0100
|
||||||
* @since 2.3.1 syntax validation for balanced footnote start and end tags 2021-01-01T0227+0100
|
* @since 2.3.1 syntax validation for balanced footnote start and end tags 2021-01-01T0227+0100
|
||||||
*
|
*
|
||||||
* Last modified: 2021-01-01T0642+0100
|
* Last modified: 2021-01-01T1239+0100
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// If called directly, abort:
|
// If called directly, abort:
|
||||||
|
@ -212,8 +212,7 @@ class MCI_Footnotes_Task {
|
||||||
* @since 2.3.1
|
* @since 2.3.1
|
||||||
* @var bool
|
* @var bool
|
||||||
*/
|
*/
|
||||||
public static $l_bool_SyntaxErrorFlag = false;
|
public static $l_bool_SyntaxErrorFlag = true;
|
||||||
public static $l_bool_SyntaxErrorShow = true;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -748,6 +747,8 @@ class MCI_Footnotes_Task {
|
||||||
* @return string
|
* @return string
|
||||||
*
|
*
|
||||||
* Edited since 2.0.0
|
* Edited since 2.0.0
|
||||||
|
*
|
||||||
|
* @since 2.3.1 footnote shortcode syntax validation
|
||||||
*/
|
*/
|
||||||
public function search($p_str_Content, $p_bool_ConvertHtmlChars, $p_bool_HideFootnotesText) {
|
public function search($p_str_Content, $p_bool_ConvertHtmlChars, $p_bool_HideFootnotesText) {
|
||||||
|
|
||||||
|
@ -786,21 +787,21 @@ class MCI_Footnotes_Task {
|
||||||
$l_str_ValidationRegex = '#' . $l_str_StartTagRegex . '(((?!' . $l_str_EndTagRegex . ').)*?)(' . $l_str_StartTagRegex . '|$)#s';
|
$l_str_ValidationRegex = '#' . $l_str_StartTagRegex . '(((?!' . $l_str_EndTagRegex . ').)*?)(' . $l_str_StartTagRegex . '|$)#s';
|
||||||
preg_match( $l_str_ValidationRegex, $p_str_Content, $p_arr_ErrorLocation );
|
preg_match( $l_str_ValidationRegex, $p_str_Content, $p_arr_ErrorLocation );
|
||||||
if ( empty( $p_arr_ErrorLocation ) ) {
|
if ( empty( $p_arr_ErrorLocation ) ) {
|
||||||
self::$l_bool_SyntaxErrorShow = false;
|
self::$l_bool_SyntaxErrorFlag = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// prevent generating and inserting the warning multiple times:
|
// prevent generating and inserting the warning multiple times:
|
||||||
if ( self::$l_bool_SyntaxErrorShow ) {
|
if ( self::$l_bool_SyntaxErrorFlag ) {
|
||||||
$l_str_ErrorSpotString = strip_tags($p_arr_ErrorLocation[1]);
|
$l_str_ErrorSpotString = strip_tags($p_arr_ErrorLocation[1]);
|
||||||
|
|
||||||
$l_str_SyntaxErrorWarning = '<div class="footnotes_validation_error"><p>';
|
$l_str_SyntaxErrorWarning = '<div class="footnotes_validation_error"><p>';
|
||||||
$l_str_SyntaxErrorWarning .= 'WARNING: unbalanced footnote start tag short code before:';
|
$l_str_SyntaxErrorWarning .= __("WARNING: unbalanced footnote start tag short code before:", MCI_Footnotes_Config::C_STR_PLUGIN_NAME);
|
||||||
$l_str_SyntaxErrorWarning .= '</p><p>“';
|
$l_str_SyntaxErrorWarning .= '</p><p>“';
|
||||||
$l_str_SyntaxErrorWarning .= $l_str_ErrorSpotString;
|
$l_str_SyntaxErrorWarning .= $l_str_ErrorSpotString;
|
||||||
$l_str_SyntaxErrorWarning .= '”</p></div>';
|
$l_str_SyntaxErrorWarning .= '”</p></div>';
|
||||||
|
|
||||||
$p_str_Content = $l_str_SyntaxErrorWarning . $p_str_Content;
|
$p_str_Content = $l_str_SyntaxErrorWarning . $p_str_Content;
|
||||||
self::$l_bool_SyntaxErrorShow = false;
|
self::$l_bool_SyntaxErrorFlag = false;
|
||||||
|
|
||||||
return $p_str_Content;
|
return $p_str_Content;
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,11 +9,13 @@
|
||||||
* Edited:
|
* Edited:
|
||||||
* @since 2.0.3 further minify template content
|
* @since 2.0.3 further minify template content
|
||||||
* @since 2.0.4 regex to delete multiple spaces
|
* @since 2.0.4 regex to delete multiple spaces
|
||||||
*
|
*
|
||||||
* @since 2.3.0 support for custom templates in fixed location, while failing to add filter thanks to @misfist 2020-12-19T0606+0100
|
* @since 2.2.6 support for custom templates in fixed location, while failing to add filter thanks to @misfist 2020-12-19T0606+0100
|
||||||
* @see <https://wordpress.org/support/topic/template-override-filter/#post-13811141>
|
* @see <https://wordpress.org/support/topic/template-override-filter/>
|
||||||
*
|
* @since 2.3.1 templates may be in active theme, thanks to @misfist
|
||||||
* Last modified: 2020-12-20T0200+0100
|
* @see <https://wordpress.org/support/topic/template-override-filter/#post-13846598>
|
||||||
|
*
|
||||||
|
* Last modified: 2021-01-01T2214+0100
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -74,11 +76,14 @@ class MCI_Footnotes_Template {
|
||||||
* Edited:
|
* Edited:
|
||||||
* @since 2.0.3 further minify template content
|
* @since 2.0.3 further minify template content
|
||||||
* @since 2.0.4 regex to delete multiple spaces
|
* @since 2.0.4 regex to delete multiple spaces
|
||||||
|
*
|
||||||
|
* @since 2.2.6 support for custom templates 2020-12-19T0606+0100
|
||||||
|
* @see <https://wordpress.org/support/topic/template-override-filter/>
|
||||||
|
*
|
||||||
|
* @since 2.2.6 regex to delete a space before a closing pointy bracket
|
||||||
*
|
*
|
||||||
* @since 2.3.0 support for custom templates 2020-12-19T0606+0100
|
* @since 2.3.1 look for custom template in the active theme
|
||||||
* @see <https://wordpress.org/support/topic/template-override-filter/#post-13811141>
|
* @see <https://wordpress.stackexchange.com/questions/220942/how-to-get-the-active-themes-slug>
|
||||||
*
|
|
||||||
* @since 2.3.0 regex to delete space before >
|
|
||||||
*/
|
*/
|
||||||
public function __construct($p_str_FileType, $p_str_FileName, $p_str_Extension = "html") {
|
public function __construct($p_str_FileType, $p_str_FileName, $p_str_Extension = "html") {
|
||||||
// no template file type and/or file name set
|
// no template file type and/or file name set
|
||||||
|
@ -86,17 +91,28 @@ class MCI_Footnotes_Template {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// First look for a custom template:
|
// First look for a custom template in a 'footnotes-custom' sibling folder:
|
||||||
|
|
||||||
$l_str_TemplateFile = dirname(__FILE__) . "/../../footnotes-custom/templates/" . $p_str_FileType . "/" . $p_str_FileName . "." . $p_str_Extension;
|
$l_str_TemplateFile = dirname(__FILE__) . "/../../footnotes-custom/templates/" . $p_str_FileType . "/" . $p_str_FileName . "." . $p_str_Extension;
|
||||||
|
|
||||||
|
// else load template from the active theme:
|
||||||
if (!file_exists($l_str_TemplateFile)) {
|
if (!file_exists($l_str_TemplateFile)) {
|
||||||
|
|
||||||
|
$l_str_TemplateFile = dirname(__FILE__) . "/../../../themes/";
|
||||||
|
// get active theme dir name (parent theme unlikely to contain custom templates):
|
||||||
|
// see <https://wordpress.stackexchange.com/questions/220942/how-to-get-the-active-themes-slug>
|
||||||
|
$l_str_TemplateFile .= get_stylesheet();
|
||||||
|
$l_str_TemplateFile .= "/templates/footnotes/" . $p_str_FileName . "." . $p_str_Extension;
|
||||||
|
|
||||||
// else load internal template:
|
// else load internal template:
|
||||||
// get absolute path to the specified template file
|
|
||||||
$l_str_TemplateFile = dirname(__FILE__) . "/../templates/" . $p_str_FileType . "/" . $p_str_FileName . "." . $p_str_Extension;
|
|
||||||
// Template file does not exist
|
|
||||||
if (!file_exists($l_str_TemplateFile)) {
|
if (!file_exists($l_str_TemplateFile)) {
|
||||||
return;
|
|
||||||
|
// get absolute path to the specified template file
|
||||||
|
$l_str_TemplateFile = dirname(__FILE__) . "/../templates/" . $p_str_FileType . "/" . $p_str_FileName . "." . $p_str_Extension;
|
||||||
|
|
||||||
|
// do nothing if template file does not exist:
|
||||||
|
if (!file_exists($l_str_TemplateFile)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,12 +4,12 @@
|
||||||
Plugin URI: https://wordpress.org/plugins/footnotes/
|
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.
|
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
|
Author: Mark Cheret
|
||||||
Version: 2.3.1d0
|
Version: 2.3.1d1
|
||||||
Author URI: http://cheret.de/plugins/footnotes-2/
|
Author URI: http://cheret.de/plugins/footnotes-2/
|
||||||
Text Domain: footnotes
|
Text Domain: footnotes
|
||||||
Domain Path: /languages
|
Domain Path: /languages
|
||||||
*/
|
*/
|
||||||
define( 'FOOTNOTES_VERSION', '2.3.1d0' );
|
define( 'FOOTNOTES_VERSION', '2.3.1d1' );
|
||||||
/*
|
/*
|
||||||
Copyright 2020 Mark Cheret (email: mark@cheret.de)
|
Copyright 2020 Mark Cheret (email: mark@cheret.de)
|
||||||
|
|
||||||
|
|
|
@ -81,6 +81,7 @@ Visit this swift write-up from a **footnotes** user by the name of **Southwest**
|
||||||
== Changelog ==
|
== Changelog ==
|
||||||
|
|
||||||
= 2.3.1 =
|
= 2.3.1 =
|
||||||
|
- Bugfix: Customization: support for custom templates in active theme, thanks to @misfist
|
||||||
- Bugfix: Shortcodes: syntax validation for balanced footnote start and end tag short codes
|
- Bugfix: Shortcodes: syntax validation for balanced footnote start and end tag short codes
|
||||||
|
|
||||||
= 2.3.0 =
|
= 2.3.0 =
|
||||||
|
|
|
@ -1,23 +1,41 @@
|
||||||
note-for-developers.txt
|
note-for-developers.txt
|
||||||
2020-12-19T0609+0100
|
2020-12-19T0609+0100
|
||||||
Last modified: 2020-12-19T0706+0100
|
Last modified: 2021-01-01T2212+0100
|
||||||
|
|
||||||
Footnotes plugin for WordPress, v2.3.0 and later
|
Footnotes plugin for WordPress, v2.2.6 and later
|
||||||
|
|
||||||
Support for custom templates
|
Support for custom templates
|
||||||
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||||
|
|
||||||
Since v2.3.0, Footnotes can process custom templates.
|
Since v2.2.6, Footnotes supports custom templates.
|
||||||
|
|
||||||
To use custom templates, please make a sibling of the "footnotes" folder called "footnotes-custom" containing just the content of templates/public/ with the same structure.
|
Custom templates may be loaded from a sibling folder 'footnotes-custom'
|
||||||
|
or since v2.3.1 from a folder 'templates/footnotes/' in the active theme.
|
||||||
|
|
||||||
Existing homonymous templates on the path wp-content/plugins/footnotes-custom/templates/public/ are loaded instead of their counterparts in wp-content/plugins/footnotes/templates/public/.
|
See footnotes/class/template.php:67..116
|
||||||
|
|
||||||
The new location does not need to contain all templates.
|
|
||||||
E.g. for custom tooltips, you need only one or both of these:
|
A. Active theme
|
||||||
|
‾‾‾‾‾‾‾‾‾‾‾‾
|
||||||
|
Please create a folder 'templates/footnotes/' in your child theme and
|
||||||
|
store all your public custom templates for Footnotes directly therein.
|
||||||
|
|
||||||
|
Existing homonymous templates are loaded instead of their counterparts in
|
||||||
|
wp-content/plugins/footnotes/templates/public/.
|
||||||
|
|
||||||
|
|
||||||
|
B. Sibling folder
|
||||||
|
‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||||
|
Please make a sibling of the "footnotes" folder called 'footnotes-custom' and
|
||||||
|
the same internal structure and file names as 'footnotes/templates/public/'.
|
||||||
|
|
||||||
|
Example for custom tooltips:
|
||||||
|
|
||||||
footnotes-custom
|
footnotes-custom
|
||||||
└── templates
|
└── templates
|
||||||
└── public
|
└── public
|
||||||
├── footnote.html
|
├── footnote.html
|
||||||
└── tooltip.html
|
└── tooltip.html
|
||||||
|
|
||||||
|
The timing parameters in the inline jQuery script 'tooltip.html' are already
|
||||||
|
configurable in the dashboard > Referrers and tooltips > Tooltip timing.
|
||||||
|
|
Reference in a new issue