parent
4299a71df5
commit
1728e0fcd5
9 changed files with 523 additions and 502 deletions
|
@ -18,7 +18,7 @@ return static function (ContainerConfigurator $containerConfigurator): void {
|
|||
|
||||
// Define what rule sets will be applied
|
||||
$parameters->set(Option::SETS, [
|
||||
// SetList::CODE_QUALITY,
|
||||
SetList::CODE_QUALITY,
|
||||
SetList::DEAD_CODE,
|
||||
// DowngradeSetList::PHP_80,
|
||||
// DowngradeSetList::PHP_74,
|
||||
|
|
|
@ -25,17 +25,6 @@ use footnotes\includes as Includes;
|
|||
*/
|
||||
class WYSIWYG {
|
||||
|
||||
/**
|
||||
* Initialize the class and set its properties.
|
||||
*
|
||||
* @param string $plugin_name The name of this plugin.
|
||||
*
|
||||
* @since 2.8.0
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Append a new Button to the WYSIWYG editor of Posts and Pages.
|
||||
*
|
||||
|
@ -46,7 +35,7 @@ class WYSIWYG {
|
|||
* @todo Should this be `static`?
|
||||
*/
|
||||
public static function new_visual_editor_button( $p_arr_buttons ) {
|
||||
array_push( $p_arr_buttons, 'footnotes' );
|
||||
$p_arr_buttons[] = 'footnotes';
|
||||
return $p_arr_buttons;
|
||||
}
|
||||
|
||||
|
@ -56,7 +45,7 @@ class WYSIWYG {
|
|||
* @since 1.5.0
|
||||
*/
|
||||
public static function new_plain_text_editor_button() {
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'editor-button' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'editor-button' );
|
||||
// phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||
echo $l_obj_template->get_content();
|
||||
// phpcs:enable
|
||||
|
@ -84,11 +73,11 @@ class WYSIWYG {
|
|||
*/
|
||||
public static function ajax_callback() {
|
||||
// Get start and end tag for the footnotes short code.
|
||||
$l_str_starting_tag = Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START );
|
||||
$l_str_ending_tag = Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END );
|
||||
$l_str_starting_tag = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START );
|
||||
$l_str_ending_tag = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END );
|
||||
if ( 'userdefined' === $l_str_starting_tag || 'userdefined' === $l_str_ending_tag ) {
|
||||
$l_str_starting_tag = Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START_USER_DEFINED );
|
||||
$l_str_ending_tag = Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END_USER_DEFINED );
|
||||
$l_str_starting_tag = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START_USER_DEFINED );
|
||||
$l_str_ending_tag = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END_USER_DEFINED );
|
||||
}
|
||||
echo wp_json_encode(
|
||||
array(
|
||||
|
|
|
@ -195,7 +195,9 @@ abstract class Engine {
|
|||
$this->get_sub_page_title(),
|
||||
'manage_options',
|
||||
Init::C_STR_MAIN_MENU_SLUG . $this->get_sub_page_slug(),
|
||||
array( $this, 'display_content' )
|
||||
function () {
|
||||
return $this->display_content();
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -211,7 +213,9 @@ abstract class Engine {
|
|||
add_settings_section(
|
||||
$l_arr_section['id'],
|
||||
'',
|
||||
array( $this, 'Description' ),
|
||||
function () {
|
||||
return $this->description();
|
||||
},
|
||||
$l_arr_section['id']
|
||||
);
|
||||
$this->register_meta_boxes( $l_arr_section['id'] );
|
||||
|
@ -273,13 +277,11 @@ abstract class Engine {
|
|||
|
||||
// Store settings.
|
||||
$l_bool_settings_updated = false;
|
||||
if ( array_key_exists( 'save-settings', $_POST ) ) {
|
||||
if ( 'save' === $_POST['save-settings'] ) {
|
||||
if ( array_key_exists( 'save-settings', $_POST ) && 'save' === $_POST['save-settings'] ) {
|
||||
unset( $_POST['save-settings'] );
|
||||
unset( $_POST['submit'] );
|
||||
$l_bool_settings_updated = $this->save_settings();
|
||||
}
|
||||
}
|
||||
|
||||
// Display all sections and highlight the active section.
|
||||
echo '<div class="wrap">';
|
||||
|
@ -345,13 +347,8 @@ abstract class Engine {
|
|||
$l_str_active_section_id = isset( $_GET['t'] ) ? wp_unslash( $_GET['t'] ) : key( $this->a_arr_sections );
|
||||
$l_arr_active_section = $this->a_arr_sections[ $l_str_active_section_id ];
|
||||
|
||||
foreach ( Includes\Settings::instance()->get_defaults( $l_arr_active_section['container'] ) as $l_str_key => $l_mixed_value ) {
|
||||
if ( array_key_exists( $l_str_key, $_POST ) ) {
|
||||
$l_arr_new_settings[ $l_str_key ] = wp_unslash( $_POST[ $l_str_key ] );
|
||||
} else {
|
||||
// Setting is not defined in the POST array, define it to avoid the Default value.
|
||||
$l_arr_new_settings[ $l_str_key ] = '';
|
||||
}
|
||||
foreach ( array_keys( Includes\Settings::instance()->get_defaults( $l_arr_active_section['container'] ) ) as $l_str_key ) {
|
||||
$l_arr_new_settings[ $l_str_key ] = array_key_exists( $l_str_key, $_POST ) ? wp_unslash( $_POST[ $l_str_key ] ) : '';
|
||||
}
|
||||
// Update settings.
|
||||
return Includes\Settings::instance()->save_options( $l_arr_active_section['container'], $l_arr_new_settings );
|
||||
|
@ -389,8 +386,8 @@ abstract class Engine {
|
|||
// Get current section.
|
||||
reset( $this->a_arr_sections );
|
||||
$p_arr_return = array();
|
||||
$p_arr_return['id'] = sprintf( '%s', $p_str_setting_key_name );
|
||||
$p_arr_return['name'] = sprintf( '%s', $p_str_setting_key_name );
|
||||
$p_arr_return['id'] = $p_str_setting_key_name;
|
||||
$p_arr_return['name'] = $p_str_setting_key_name;
|
||||
$p_arr_return['value'] = esc_attr( Includes\Settings::instance()->get( $p_str_setting_key_name ) );
|
||||
return $p_arr_return;
|
||||
}
|
||||
|
|
|
@ -69,11 +69,31 @@ class Init {
|
|||
$this->settings_page = new Settings( $this->plugin_name );
|
||||
|
||||
// Register hooks/actions.
|
||||
add_action( 'admin_menu', array( $this, 'register_options_submenu' ) );
|
||||
add_action( 'admin_init', array( $this, 'initialize_settings' ) );
|
||||
add_action(
|
||||
'admin_menu',
|
||||
function () {
|
||||
return $this->register_options_submenu();
|
||||
}
|
||||
);
|
||||
add_action(
|
||||
'admin_init',
|
||||
function () {
|
||||
return $this->initialize_settings();
|
||||
}
|
||||
);
|
||||
// Register AJAX callbacks for Plugin information.
|
||||
add_action( 'wp_ajax_nopriv_footnotes_get_plugin_info', array( $this, 'get_plugin_meta_information' ) );
|
||||
add_action( 'wp_ajax_footnotes_get_plugin_info', array( $this, 'get_plugin_meta_information' ) );
|
||||
add_action(
|
||||
'wp_ajax_nopriv_footnotes_get_plugin_info',
|
||||
function () {
|
||||
return $this->get_plugin_meta_information();
|
||||
}
|
||||
);
|
||||
add_action(
|
||||
'wp_ajax_footnotes_get_plugin_info',
|
||||
function () {
|
||||
return $this->get_plugin_meta_information();
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -126,10 +146,12 @@ class Init {
|
|||
add_submenu_page(
|
||||
'options-general.php',
|
||||
'footnotes Settings',
|
||||
Includes\Config::C_STR_PLUGIN_PUBLIC_NAME,
|
||||
\footnotes\includes\Config::C_STR_PLUGIN_PUBLIC_NAME,
|
||||
'manage_options',
|
||||
self::C_STR_MAIN_MENU_SLUG,
|
||||
array( $this->settings_page, 'display_content' )
|
||||
function () {
|
||||
return $this->settings_page->display_content();
|
||||
}
|
||||
);
|
||||
$this->settings_page->register_sub_page();
|
||||
}
|
||||
|
@ -173,7 +195,7 @@ class Init {
|
|||
exit;
|
||||
}
|
||||
|
||||
$l_int_num_ratings = array_key_exists( 'num_ratings', $l_arr_plugin ) ? intval( $l_arr_plugin['num_ratings'] ) : 0;
|
||||
$l_int_num_ratings = array_key_exists( 'num_ratings', $l_arr_plugin ) ? (int) $l_arr_plugin['num_ratings'] : 0;
|
||||
$l_int_rating = array_key_exists( 'rating', $l_arr_plugin ) ? floatval( $l_arr_plugin['rating'] ) : 0.0;
|
||||
$l_int_stars = round( 5 * $l_int_rating / 100.0, 1 );
|
||||
|
||||
|
|
|
@ -71,7 +71,7 @@ class Settings extends Engine {
|
|||
* @return string
|
||||
*/
|
||||
protected function get_sub_page_title() {
|
||||
return Includes\Config::C_STR_PLUGIN_PUBLIC_NAME;
|
||||
return \footnotes\includes\Config::C_STR_PLUGIN_PUBLIC_NAME;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -119,7 +119,7 @@ class Settings extends Engine {
|
|||
$l_arr_meta_boxes[] = $this->add_meta_box( 'settings', 'hard-links', __( 'URL fragment ID configuration', 'footnotes' ), 'hard_links' );
|
||||
$l_arr_meta_boxes[] = $this->add_meta_box( 'settings', 'reference-container', __( 'Reference container', 'footnotes' ), 'reference_container' );
|
||||
$l_arr_meta_boxes[] = $this->add_meta_box( 'settings', 'excerpts', __( 'Footnotes in excerpts', 'footnotes' ), 'excerpts' );
|
||||
$l_arr_meta_boxes[] = $this->add_meta_box( 'settings', 'love', Includes\Config::C_STR_PLUGIN_HEADING_NAME . ' ' . Includes\Config::C_STR_LOVE_SYMBOL_HEADING, 'love' );
|
||||
$l_arr_meta_boxes[] = $this->add_meta_box( 'settings', 'love', \footnotes\includes\Config::C_STR_PLUGIN_HEADING_NAME . ' ' . \footnotes\includes\Config::C_STR_LOVE_SYMBOL_HEADING, 'love' );
|
||||
|
||||
$l_arr_meta_boxes[] = $this->add_meta_box( 'customize', 'hyperlink-arrow', __( 'Backlink symbol', 'footnotes' ), 'hyperlink_arrow' );
|
||||
$l_arr_meta_boxes[] = $this->add_meta_box( 'customize', 'superscript', __( 'Referrers', 'footnotes' ), 'superscript' );
|
||||
|
@ -131,13 +131,13 @@ class Settings extends Engine {
|
|||
$l_arr_meta_boxes[] = $this->add_meta_box( 'customize', 'mouse-over-box-truncation', __( 'Tooltip truncation', 'footnotes' ), 'mouseover_box_truncation' );
|
||||
$l_arr_meta_boxes[] = $this->add_meta_box( 'customize', 'mouse-over-box-text', __( 'Tooltip text', 'footnotes' ), 'mouseover_box_text' );
|
||||
$l_arr_meta_boxes[] = $this->add_meta_box( 'customize', 'mouse-over-box-appearance', __( 'Tooltip appearance', 'footnotes' ), 'mouseover_box_appearance' );
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_CUSTOM_CSS_LEGACY_ENABLE ) ) ) {
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_CUSTOM_CSS_LEGACY_ENABLE ) ) ) {
|
||||
$l_arr_meta_boxes[] = $this->add_meta_box( 'customize', 'custom-css', __( 'Your existing Custom CSS code', 'footnotes' ), 'custom_css' );
|
||||
}
|
||||
|
||||
$l_arr_meta_boxes[] = $this->add_meta_box( 'expert', 'lookup', __( 'WordPress hooks with priority level', 'footnotes' ), 'lookup_hooks' );
|
||||
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_CUSTOM_CSS_LEGACY_ENABLE ) ) ) {
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_CUSTOM_CSS_LEGACY_ENABLE ) ) ) {
|
||||
$l_arr_meta_boxes[] = $this->add_meta_box( 'customcss', 'custom-css-migration', __( 'Your existing Custom CSS code', 'footnotes' ), 'custom_css_migration' );
|
||||
}
|
||||
$l_arr_meta_boxes[] = $this->add_meta_box( 'customcss', 'custom-css-new', __( 'Custom CSS', 'footnotes' ), 'custom_css_new' );
|
||||
|
@ -156,17 +156,17 @@ class Settings extends Engine {
|
|||
public function amp_compat() {
|
||||
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'settings-amp' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'settings-amp' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
// Translators: '%s' is the link text 'AMP-WP' linked to the plugin's front page on WordPress.org.
|
||||
'description-1-amp' => sprintf( __( 'The official %s plugin is required when this option is enabled.', 'footnotes' ), '<a href="https://wordpress.org/plugins/amp/" target="_blank" style="font-style: normal;">AMP-WP</a>' ),
|
||||
'label-amp' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_AMP_COMPATIBILITY_ENABLE, __( 'Enable AMP compatibility mode:', 'footnotes' ) ),
|
||||
'amp' => $this->add_checkbox( Includes\Settings::C_STR_FOOTNOTES_AMP_COMPATIBILITY_ENABLE ),
|
||||
'label-amp' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_AMP_COMPATIBILITY_ENABLE, __( 'Enable AMP compatibility mode:', 'footnotes' ) ),
|
||||
'amp' => $this->add_checkbox( \footnotes\includes\Settings::C_STR_FOOTNOTES_AMP_COMPATIBILITY_ENABLE ),
|
||||
'notice-amp' => __( 'This option enables hard links with configurable scroll offset in % viewport height.', 'footnotes' ),
|
||||
// Translators: '%s' is the logogram of the 'Footnotes' plugin.
|
||||
'description-2-amp' => sprintf( __( '%s is becoming AMP compatible when this box is checked. Styled tooltips are displayed with fade-in/fade-out effect if enabled, and the reference container expands also on clicking a referrer if it\'s collapsed by default.', 'footnotes' ), '<span style="font-style: normal;">' . Includes\Config::C_STR_PLUGIN_PUBLIC_NAME . '</span>' ),
|
||||
'description-2-amp' => sprintf( __( '%s is becoming AMP compatible when this box is checked. Styled tooltips are displayed with fade-in/fade-out effect if enabled, and the reference container expands also on clicking a referrer if it\'s collapsed by default.', 'footnotes' ), '<span style="font-style: normal;">' . \footnotes\includes\Config::C_STR_PLUGIN_PUBLIC_NAME . '</span>' ),
|
||||
)
|
||||
);
|
||||
// Display template with replaced placeholders.
|
||||
|
@ -244,102 +244,102 @@ class Settings extends Engine {
|
|||
);
|
||||
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'settings-reference-container' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'settings-reference-container' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
'label-name' => $this->add_label( Includes\Settings::C_STR_REFERENCE_CONTAINER_NAME, __( 'Heading:', 'footnotes' ) ),
|
||||
'name' => $this->add_text_box( Includes\Settings::C_STR_REFERENCE_CONTAINER_NAME ),
|
||||
'label-name' => $this->add_label( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_NAME, __( 'Heading:', 'footnotes' ) ),
|
||||
'name' => $this->add_text_box( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_NAME ),
|
||||
|
||||
'label-element' => $this->add_label( Includes\Settings::C_STR_REFERENCE_CONTAINER_LABEL_ELEMENT, __( 'Heading\'s HTML element:', 'footnotes' ) ),
|
||||
'element' => $this->add_select_box( Includes\Settings::C_STR_REFERENCE_CONTAINER_LABEL_ELEMENT, $l_arr_label_element ),
|
||||
'label-element' => $this->add_label( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_LABEL_ELEMENT, __( 'Heading\'s HTML element:', 'footnotes' ) ),
|
||||
'element' => $this->add_select_box( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_LABEL_ELEMENT, $l_arr_label_element ),
|
||||
|
||||
'label-border' => $this->add_label( Includes\Settings::C_STR_REFERENCE_CONTAINER_LABEL_BOTTOM_BORDER, __( 'Border under the heading:', 'footnotes' ) ),
|
||||
'border' => $this->add_select_box( Includes\Settings::C_STR_REFERENCE_CONTAINER_LABEL_BOTTOM_BORDER, $l_arr_enabled ),
|
||||
'label-border' => $this->add_label( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_LABEL_BOTTOM_BORDER, __( 'Border under the heading:', 'footnotes' ) ),
|
||||
'border' => $this->add_select_box( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_LABEL_BOTTOM_BORDER, $l_arr_enabled ),
|
||||
|
||||
'label-collapse' => $this->add_label( Includes\Settings::C_STR_REFERENCE_CONTAINER_COLLAPSE, __( 'Collapse by default:', 'footnotes' ) ),
|
||||
'collapse' => $this->add_select_box( Includes\Settings::C_STR_REFERENCE_CONTAINER_COLLAPSE, $l_arr_enabled ),
|
||||
'label-collapse' => $this->add_label( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_COLLAPSE, __( 'Collapse by default:', 'footnotes' ) ),
|
||||
'collapse' => $this->add_select_box( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_COLLAPSE, $l_arr_enabled ),
|
||||
|
||||
'label-script' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_REFERENCE_CONTAINER_SCRIPT_MODE, __( 'Script mode:', 'footnotes' ) ),
|
||||
'script' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTES_REFERENCE_CONTAINER_SCRIPT_MODE, $l_arr_script_mode ),
|
||||
'label-script' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_REFERENCE_CONTAINER_SCRIPT_MODE, __( 'Script mode:', 'footnotes' ) ),
|
||||
'script' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_REFERENCE_CONTAINER_SCRIPT_MODE, $l_arr_script_mode ),
|
||||
'notice-script' => __( 'The plain JavaScript mode will enable hard links with configurable scroll offset.', 'footnotes' ),
|
||||
|
||||
'label-position' => $this->add_label( Includes\Settings::C_STR_REFERENCE_CONTAINER_POSITION, __( 'Default position:', 'footnotes' ) ),
|
||||
'position' => $this->add_select_box( Includes\Settings::C_STR_REFERENCE_CONTAINER_POSITION, $l_arr_positions ),
|
||||
'label-position' => $this->add_label( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_POSITION, __( 'Default position:', 'footnotes' ) ),
|
||||
'position' => $this->add_select_box( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_POSITION, $l_arr_positions ),
|
||||
// Translators: %s: at the end of the post.
|
||||
'notice-position' => sprintf( __( 'To use the position or section shortcode, please set the position to: %s', 'footnotes' ), '<span style="font-style: normal;">' . __( 'at the end of the post', 'footnotes' ) . '</span>' ),
|
||||
|
||||
'label-shortcode' => $this->add_label( Includes\Settings::C_STR_REFERENCE_CONTAINER_POSITION_SHORTCODE, __( 'Position shortcode:', 'footnotes' ) ),
|
||||
'shortcode' => $this->add_text_box( Includes\Settings::C_STR_REFERENCE_CONTAINER_POSITION_SHORTCODE ),
|
||||
'label-shortcode' => $this->add_label( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_POSITION_SHORTCODE, __( 'Position shortcode:', 'footnotes' ) ),
|
||||
'shortcode' => $this->add_text_box( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_POSITION_SHORTCODE ),
|
||||
'notice-shortcode' => __( 'If present in the content, any shortcode in this text box will be replaced with the reference container.', 'footnotes' ),
|
||||
|
||||
'label-section' => $this->add_label( Includes\Settings::C_STR_FOOTNOTE_SECTION_SHORTCODE, __( 'Footnote section shortcode:', 'footnotes' ) ),
|
||||
'section' => $this->add_text_box( Includes\Settings::C_STR_FOOTNOTE_SECTION_SHORTCODE ),
|
||||
'label-section' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTE_SECTION_SHORTCODE, __( 'Footnote section shortcode:', 'footnotes' ) ),
|
||||
'section' => $this->add_text_box( \footnotes\includes\Settings::C_STR_FOOTNOTE_SECTION_SHORTCODE ),
|
||||
'notice-section' => __( 'If present in the content, any shortcode in this text box will delimit a section terminated by a reference container.', 'footnotes' ),
|
||||
|
||||
'label-startpage' => $this->add_label( Includes\Settings::C_STR_REFERENCE_CONTAINER_START_PAGE_ENABLE, __( 'Display on start page too:', 'footnotes' ) ),
|
||||
'startpage' => $this->add_select_box( Includes\Settings::C_STR_REFERENCE_CONTAINER_START_PAGE_ENABLE, $l_arr_enabled ),
|
||||
'label-startpage' => $this->add_label( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_START_PAGE_ENABLE, __( 'Display on start page too:', 'footnotes' ) ),
|
||||
'startpage' => $this->add_select_box( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_START_PAGE_ENABLE, $l_arr_enabled ),
|
||||
|
||||
'label-margin-top' => $this->add_label( Includes\Settings::C_INT_REFERENCE_CONTAINER_TOP_MARGIN, __( 'Top margin:', 'footnotes' ) ),
|
||||
'margin-top' => $this->add_num_box( Includes\Settings::C_INT_REFERENCE_CONTAINER_TOP_MARGIN, -500, 500 ),
|
||||
'label-margin-top' => $this->add_label( \footnotes\includes\Settings::C_INT_REFERENCE_CONTAINER_TOP_MARGIN, __( 'Top margin:', 'footnotes' ) ),
|
||||
'margin-top' => $this->add_num_box( \footnotes\includes\Settings::C_INT_REFERENCE_CONTAINER_TOP_MARGIN, -500, 500 ),
|
||||
'notice-margin-top' => __( 'pixels; may be negative', 'footnotes' ),
|
||||
|
||||
'label-margin-bottom' => $this->add_label( Includes\Settings::C_INT_REFERENCE_CONTAINER_BOTTOM_MARGIN, __( 'Bottom margin:', 'footnotes' ) ),
|
||||
'margin-bottom' => $this->add_num_box( Includes\Settings::C_INT_REFERENCE_CONTAINER_BOTTOM_MARGIN, -500, 500 ),
|
||||
'label-margin-bottom' => $this->add_label( \footnotes\includes\Settings::C_INT_REFERENCE_CONTAINER_BOTTOM_MARGIN, __( 'Bottom margin:', 'footnotes' ) ),
|
||||
'margin-bottom' => $this->add_num_box( \footnotes\includes\Settings::C_INT_REFERENCE_CONTAINER_BOTTOM_MARGIN, -500, 500 ),
|
||||
'notice-margin-bottom' => __( 'pixels; may be negative', 'footnotes' ),
|
||||
|
||||
'label-page-layout' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_PAGE_LAYOUT_SUPPORT, __( 'Apply basic responsive page layout:', 'footnotes' ) ),
|
||||
'page-layout' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTES_PAGE_LAYOUT_SUPPORT, $l_arr_page_layout_options ),
|
||||
'label-page-layout' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_PAGE_LAYOUT_SUPPORT, __( 'Apply basic responsive page layout:', 'footnotes' ) ),
|
||||
'page-layout' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_PAGE_LAYOUT_SUPPORT, $l_arr_page_layout_options ),
|
||||
'notice-page-layout' => __( 'Most themes don\'t need this fix.', 'footnotes' ),
|
||||
|
||||
'label-url-wrap' => $this->add_label( Includes\Settings::C_STR_FOOTNOTE_URL_WRAP_ENABLED, __( 'Allow URLs to line-wrap anywhere:', 'footnotes' ) ),
|
||||
'url-wrap' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTE_URL_WRAP_ENABLED, $l_arr_enabled ),
|
||||
'label-url-wrap' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTE_URL_WRAP_ENABLED, __( 'Allow URLs to line-wrap anywhere:', 'footnotes' ) ),
|
||||
'url-wrap' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTE_URL_WRAP_ENABLED, $l_arr_enabled ),
|
||||
'notice-url-wrap' => __( 'Unicode-conformant browsers don\'t need this fix.', 'footnotes' ),
|
||||
|
||||
'label-symbol' => $this->add_label( Includes\Settings::C_STR_REFERENCE_CONTAINER_BACKLINK_SYMBOL_ENABLE, __( 'Display a backlink symbol:', 'footnotes' ) ),
|
||||
'symbol-enable' => $this->add_select_box( Includes\Settings::C_STR_REFERENCE_CONTAINER_BACKLINK_SYMBOL_ENABLE, $l_arr_enabled ),
|
||||
'label-symbol' => $this->add_label( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_BACKLINK_SYMBOL_ENABLE, __( 'Display a backlink symbol:', 'footnotes' ) ),
|
||||
'symbol-enable' => $this->add_select_box( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_BACKLINK_SYMBOL_ENABLE, $l_arr_enabled ),
|
||||
'notice-symbol' => __( 'Please choose or input the symbol at the top of the next dashboard tab.', 'footnotes' ),
|
||||
|
||||
'label-switch' => $this->add_label( Includes\Settings::C_STR_REFERENCE_CONTAINER_BACKLINK_SYMBOL_SWITCH, __( 'Symbol appended, not prepended:', 'footnotes' ) ),
|
||||
'switch' => $this->add_select_box( Includes\Settings::C_STR_REFERENCE_CONTAINER_BACKLINK_SYMBOL_SWITCH, $l_arr_enabled ),
|
||||
'label-switch' => $this->add_label( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_BACKLINK_SYMBOL_SWITCH, __( 'Symbol appended, not prepended:', 'footnotes' ) ),
|
||||
'switch' => $this->add_select_box( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_BACKLINK_SYMBOL_SWITCH, $l_arr_enabled ),
|
||||
|
||||
'label-3column' => $this->add_label( Includes\Settings::C_STR_REFERENCE_CONTAINER_3COLUMN_LAYOUT_ENABLE, __( 'Backlink symbol in an extra column:', 'footnotes' ) ),
|
||||
'3column' => $this->add_select_box( Includes\Settings::C_STR_REFERENCE_CONTAINER_3COLUMN_LAYOUT_ENABLE, $l_arr_enabled ),
|
||||
'label-3column' => $this->add_label( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_3COLUMN_LAYOUT_ENABLE, __( 'Backlink symbol in an extra column:', 'footnotes' ) ),
|
||||
'3column' => $this->add_select_box( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_3COLUMN_LAYOUT_ENABLE, $l_arr_enabled ),
|
||||
'notice-3column' => __( 'This legacy layout is available if identical footnotes are not combined.', 'footnotes' ),
|
||||
|
||||
'label-row-borders' => $this->add_label( Includes\Settings::C_STR_REFERENCE_CONTAINER_ROW_BORDERS_ENABLE, __( 'Borders around the table rows:', 'footnotes' ) ),
|
||||
'row-borders' => $this->add_select_box( Includes\Settings::C_STR_REFERENCE_CONTAINER_ROW_BORDERS_ENABLE, $l_arr_enabled ),
|
||||
'label-row-borders' => $this->add_label( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_ROW_BORDERS_ENABLE, __( 'Borders around the table rows:', 'footnotes' ) ),
|
||||
'row-borders' => $this->add_select_box( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_ROW_BORDERS_ENABLE, $l_arr_enabled ),
|
||||
|
||||
'label-separator' => $this->add_label( Includes\Settings::C_STR_BACKLINKS_SEPARATOR_ENABLED, __( 'Add a separator when enumerating backlinks:', 'footnotes' ) ),
|
||||
'separator-enable' => $this->add_select_box( Includes\Settings::C_STR_BACKLINKS_SEPARATOR_ENABLED, $l_arr_enabled ),
|
||||
'separator-options' => $this->add_select_box( Includes\Settings::C_STR_BACKLINKS_SEPARATOR_OPTION, $l_arr_separators ),
|
||||
'separator-custom' => $this->add_text_box( Includes\Settings::C_STR_BACKLINKS_SEPARATOR_CUSTOM ),
|
||||
'label-separator' => $this->add_label( \footnotes\includes\Settings::C_STR_BACKLINKS_SEPARATOR_ENABLED, __( 'Add a separator when enumerating backlinks:', 'footnotes' ) ),
|
||||
'separator-enable' => $this->add_select_box( \footnotes\includes\Settings::C_STR_BACKLINKS_SEPARATOR_ENABLED, $l_arr_enabled ),
|
||||
'separator-options' => $this->add_select_box( \footnotes\includes\Settings::C_STR_BACKLINKS_SEPARATOR_OPTION, $l_arr_separators ),
|
||||
'separator-custom' => $this->add_text_box( \footnotes\includes\Settings::C_STR_BACKLINKS_SEPARATOR_CUSTOM ),
|
||||
'notice-separator' => __( 'Your input overrides the selection.', 'footnotes' ),
|
||||
|
||||
'label-terminator' => $this->add_label( Includes\Settings::C_STR_BACKLINKS_TERMINATOR_ENABLED, __( 'Add a terminal punctuation to backlinks:', 'footnotes' ) ),
|
||||
'terminator-enable' => $this->add_select_box( Includes\Settings::C_STR_BACKLINKS_TERMINATOR_ENABLED, $l_arr_enabled ),
|
||||
'terminator-options' => $this->add_select_box( Includes\Settings::C_STR_BACKLINKS_TERMINATOR_OPTION, $l_arr_terminators ),
|
||||
'terminator-custom' => $this->add_text_box( Includes\Settings::C_STR_BACKLINKS_TERMINATOR_CUSTOM ),
|
||||
'label-terminator' => $this->add_label( \footnotes\includes\Settings::C_STR_BACKLINKS_TERMINATOR_ENABLED, __( 'Add a terminal punctuation to backlinks:', 'footnotes' ) ),
|
||||
'terminator-enable' => $this->add_select_box( \footnotes\includes\Settings::C_STR_BACKLINKS_TERMINATOR_ENABLED, $l_arr_enabled ),
|
||||
'terminator-options' => $this->add_select_box( \footnotes\includes\Settings::C_STR_BACKLINKS_TERMINATOR_OPTION, $l_arr_terminators ),
|
||||
'terminator-custom' => $this->add_text_box( \footnotes\includes\Settings::C_STR_BACKLINKS_TERMINATOR_CUSTOM ),
|
||||
'notice-terminator' => __( 'Your input overrides the selection.', 'footnotes' ),
|
||||
|
||||
'label-width' => $this->add_label( Includes\Settings::C_STR_BACKLINKS_COLUMN_WIDTH_ENABLED, __( 'Set backlinks column width:', 'footnotes' ) ),
|
||||
'width-enable' => $this->add_select_box( Includes\Settings::C_STR_BACKLINKS_COLUMN_WIDTH_ENABLED, $l_arr_enabled ),
|
||||
'width-scalar' => $this->add_num_box( Includes\Settings::C_INT_BACKLINKS_COLUMN_WIDTH_SCALAR, 0, 500, true ),
|
||||
'width-unit' => $this->add_select_box( Includes\Settings::C_STR_BACKLINKS_COLUMN_WIDTH_UNIT, $l_arr_width_units ),
|
||||
'label-width' => $this->add_label( \footnotes\includes\Settings::C_STR_BACKLINKS_COLUMN_WIDTH_ENABLED, __( 'Set backlinks column width:', 'footnotes' ) ),
|
||||
'width-enable' => $this->add_select_box( \footnotes\includes\Settings::C_STR_BACKLINKS_COLUMN_WIDTH_ENABLED, $l_arr_enabled ),
|
||||
'width-scalar' => $this->add_num_box( \footnotes\includes\Settings::C_INT_BACKLINKS_COLUMN_WIDTH_SCALAR, 0, 500, true ),
|
||||
'width-unit' => $this->add_select_box( \footnotes\includes\Settings::C_STR_BACKLINKS_COLUMN_WIDTH_UNIT, $l_arr_width_units ),
|
||||
'notice-width' => __( 'Absolute width in pixels doesn\'t need to be accurate to the tenth, but relative width in rem or em may.', 'footnotes' ),
|
||||
|
||||
'label-max-width' => $this->add_label( Includes\Settings::C_STR_BACKLINKS_COLUMN_MAX_WIDTH_ENABLED, __( 'Set backlinks column maximum width:', 'footnotes' ) ),
|
||||
'max-width-enable' => $this->add_select_box( Includes\Settings::C_STR_BACKLINKS_COLUMN_MAX_WIDTH_ENABLED, $l_arr_enabled ),
|
||||
'max-width-scalar' => $this->add_num_box( Includes\Settings::C_INT_BACKLINKS_COLUMN_MAX_WIDTH_SCALAR, 0, 500, true ),
|
||||
'max-width-unit' => $this->add_select_box( Includes\Settings::C_STR_BACKLINKS_COLUMN_MAX_WIDTH_UNIT, $l_arr_width_units ),
|
||||
'label-max-width' => $this->add_label( \footnotes\includes\Settings::C_STR_BACKLINKS_COLUMN_MAX_WIDTH_ENABLED, __( 'Set backlinks column maximum width:', 'footnotes' ) ),
|
||||
'max-width-enable' => $this->add_select_box( \footnotes\includes\Settings::C_STR_BACKLINKS_COLUMN_MAX_WIDTH_ENABLED, $l_arr_enabled ),
|
||||
'max-width-scalar' => $this->add_num_box( \footnotes\includes\Settings::C_INT_BACKLINKS_COLUMN_MAX_WIDTH_SCALAR, 0, 500, true ),
|
||||
'max-width-unit' => $this->add_select_box( \footnotes\includes\Settings::C_STR_BACKLINKS_COLUMN_MAX_WIDTH_UNIT, $l_arr_width_units ),
|
||||
'notice-max-width' => __( 'Absolute width in pixels doesn\'t need to be accurate to the tenth, but relative width in rem or em may.', 'footnotes' ),
|
||||
|
||||
'label-line-break' => $this->add_label( Includes\Settings::C_STR_BACKLINKS_LINE_BREAKS_ENABLED, __( 'Stack backlinks when enumerating:', 'footnotes' ) ),
|
||||
'line-break' => $this->add_select_box( Includes\Settings::C_STR_BACKLINKS_LINE_BREAKS_ENABLED, $l_arr_enabled ),
|
||||
'label-line-break' => $this->add_label( \footnotes\includes\Settings::C_STR_BACKLINKS_LINE_BREAKS_ENABLED, __( 'Stack backlinks when enumerating:', 'footnotes' ) ),
|
||||
'line-break' => $this->add_select_box( \footnotes\includes\Settings::C_STR_BACKLINKS_LINE_BREAKS_ENABLED, $l_arr_enabled ),
|
||||
'notice-line-break' => __( 'This option adds a line break before each added backlink when identical footnotes are combined.', 'footnotes' ),
|
||||
|
||||
'label-link' => $this->add_label( Includes\Settings::C_STR_LINK_ELEMENT_ENABLED, __( 'Use the link element for referrers and backlinks:', 'footnotes' ) ),
|
||||
'link' => $this->add_select_box( Includes\Settings::C_STR_LINK_ELEMENT_ENABLED, $l_arr_enabled ),
|
||||
'label-link' => $this->add_label( \footnotes\includes\Settings::C_STR_LINK_ELEMENT_ENABLED, __( 'Use the link element for referrers and backlinks:', 'footnotes' ) ),
|
||||
'link' => $this->add_select_box( \footnotes\includes\Settings::C_STR_LINK_ELEMENT_ENABLED, $l_arr_enabled ),
|
||||
'notice-link' => __( 'The link element is needed to apply the theme\'s link color.', 'footnotes' ),
|
||||
'description-link' => __( 'If the link element is not desired for styling, a simple span is used instead when the above is set to No.', 'footnotes' ),
|
||||
)
|
||||
|
@ -391,31 +391,31 @@ class Settings extends Engine {
|
|||
);
|
||||
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'settings-start-end' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'settings-start-end' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
'description-escapement' => __( 'When delimiters with pointy brackets are used, the diverging escapement schemas will be unified before footnotes are processed.', 'footnotes' ),
|
||||
|
||||
'label-short-code-start' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START, __( 'Footnote start tag short code:', 'footnotes' ) ),
|
||||
'short-code-start' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START, $l_arr_shortcode_start ),
|
||||
'short-code-start-user' => $this->add_text_box( Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START_USER_DEFINED ),
|
||||
'label-short-code-start' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START, __( 'Footnote start tag short code:', 'footnotes' ) ),
|
||||
'short-code-start' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START, $l_arr_shortcode_start ),
|
||||
'short-code-start-user' => $this->add_text_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START_USER_DEFINED ),
|
||||
|
||||
'label-short-code-end' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END, __( 'Footnote end tag short code:', 'footnotes' ) ),
|
||||
'short-code-end' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END, $l_arr_shortcode_end ),
|
||||
'short-code-end-user' => $this->add_text_box( Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END_USER_DEFINED ),
|
||||
'label-short-code-end' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END, __( 'Footnote end tag short code:', 'footnotes' ) ),
|
||||
'short-code-end' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END, $l_arr_shortcode_end ),
|
||||
'short-code-end-user' => $this->add_text_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END_USER_DEFINED ),
|
||||
|
||||
// For script showing/hiding user defined text boxes.
|
||||
'short-code-start-id' => Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START,
|
||||
'short-code-end-id' => Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END,
|
||||
'short-code-start-user-id' => Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START_USER_DEFINED,
|
||||
'short-code-end-user-id' => Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END_USER_DEFINED,
|
||||
'short-code-start-id' => \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START,
|
||||
'short-code-end-id' => \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END,
|
||||
'short-code-start-user-id' => \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START_USER_DEFINED,
|
||||
'short-code-end-user-id' => \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END_USER_DEFINED,
|
||||
|
||||
'description-parentheses' => __( 'WARNING: Although widespread industry standard, the double parentheses are problematic because they may occur in scripts embedded in the content and be mistaken as a short code.', 'footnotes' ),
|
||||
|
||||
// Option to enable syntax validation, label mirrored in task.php.
|
||||
'label-syntax' => $this->add_label( Includes\Settings::C_STR_FOOTNOTE_SHORTCODE_SYNTAX_VALIDATION_ENABLE, __( 'Check for balanced shortcodes:', 'footnotes' ) ),
|
||||
'syntax' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTE_SHORTCODE_SYNTAX_VALIDATION_ENABLE, $l_arr_enable ),
|
||||
'label-syntax' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTE_SHORTCODE_SYNTAX_VALIDATION_ENABLE, __( 'Check for balanced shortcodes:', 'footnotes' ) ),
|
||||
'syntax' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTE_SHORTCODE_SYNTAX_VALIDATION_ENABLE, $l_arr_enable ),
|
||||
'notice-syntax' => __( 'In the presence of a lone start tag shortcode, a warning displays below the post title.', 'footnotes' ),
|
||||
|
||||
'description-syntax' => __( 'If the start tag short code is \'((\' or \'(((\', it will not be reported as unbalanced if the following string contains braces hinting that it is a script.', 'footnotes' ),
|
||||
|
@ -451,16 +451,16 @@ class Settings extends Engine {
|
|||
);
|
||||
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'settings-numbering' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'settings-numbering' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
'label-counter-style' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_COUNTER_STYLE, __( 'Numbering style:', 'footnotes' ) ),
|
||||
'counter-style' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTES_COUNTER_STYLE, $l_arr_counter_style ),
|
||||
'label-counter-style' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_COUNTER_STYLE, __( 'Numbering style:', 'footnotes' ) ),
|
||||
'counter-style' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_COUNTER_STYLE, $l_arr_counter_style ),
|
||||
|
||||
// Algorithmically combine identicals.
|
||||
'label-identical' => $this->add_label( Includes\Settings::C_STR_COMBINE_IDENTICAL_FOOTNOTES, __( 'Combine identical footnotes:', 'footnotes' ) ),
|
||||
'identical' => $this->add_select_box( Includes\Settings::C_STR_COMBINE_IDENTICAL_FOOTNOTES, $l_arr_enable ),
|
||||
'label-identical' => $this->add_label( \footnotes\includes\Settings::C_STR_COMBINE_IDENTICAL_FOOTNOTES, __( 'Combine identical footnotes:', 'footnotes' ) ),
|
||||
'identical' => $this->add_select_box( \footnotes\includes\Settings::C_STR_COMBINE_IDENTICAL_FOOTNOTES, $l_arr_enable ),
|
||||
'notice-identical' => __( 'This option may require copy-pasting footnotes in multiple instances.', 'footnotes' ),
|
||||
// Support for Ibid. notation added thanks to @meglio in <https://wordpress.org/support/topic/add-support-for-ibid-notation/>.
|
||||
'description-identical' => __( 'Even when footnotes are combined, footnote numbers keep incrementing. This avoids suboptimal referrer and backlink disambiguation using a secondary numbering system. The Ibid. notation and the op. cit. abbreviation followed by the current page number avoid repeating the footnote content. For changing sources, shortened citations may be used. Repeating full citations is also an opportunity to add details.', 'footnotes' ),
|
||||
|
@ -486,38 +486,38 @@ class Settings extends Engine {
|
|||
);
|
||||
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'settings-scrolling' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'settings-scrolling' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
|
||||
'label-scroll-css' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_CSS_SMOOTH_SCROLLING, __( 'CSS-based smooth scrolling:', 'footnotes' ) ),
|
||||
'scroll-css' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTES_CSS_SMOOTH_SCROLLING, $l_arr_enable ),
|
||||
'label-scroll-css' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_CSS_SMOOTH_SCROLLING, __( 'CSS-based smooth scrolling:', 'footnotes' ) ),
|
||||
'scroll-css' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_CSS_SMOOTH_SCROLLING, $l_arr_enable ),
|
||||
'notice-scroll-css' => __( 'May slightly disturb jQuery scrolling and is therefore disabled by default. Works in recent browsers.', 'footnotes' ),
|
||||
|
||||
'label-scroll-offset' => $this->add_label( Includes\Settings::C_INT_FOOTNOTES_SCROLL_OFFSET, __( 'Scroll offset:', 'footnotes' ) ),
|
||||
'scroll-offset' => $this->add_num_box( Includes\Settings::C_INT_FOOTNOTES_SCROLL_OFFSET, 0, 100 ),
|
||||
'label-scroll-offset' => $this->add_label( \footnotes\includes\Settings::C_INT_FOOTNOTES_SCROLL_OFFSET, __( 'Scroll offset:', 'footnotes' ) ),
|
||||
'scroll-offset' => $this->add_num_box( \footnotes\includes\Settings::C_INT_FOOTNOTES_SCROLL_OFFSET, 0, 100 ),
|
||||
'notice-scroll-offset' => __( 'per cent viewport height from the upper edge', 'footnotes' ),
|
||||
|
||||
'label-scroll-duration' => $this->add_label( Includes\Settings::C_INT_FOOTNOTES_SCROLL_DURATION, __( 'Scroll duration:', 'footnotes' ) ),
|
||||
'scroll-duration' => $this->add_num_box( Includes\Settings::C_INT_FOOTNOTES_SCROLL_DURATION, 0, 20000 ),
|
||||
'label-scroll-duration' => $this->add_label( \footnotes\includes\Settings::C_INT_FOOTNOTES_SCROLL_DURATION, __( 'Scroll duration:', 'footnotes' ) ),
|
||||
'scroll-duration' => $this->add_num_box( \footnotes\includes\Settings::C_INT_FOOTNOTES_SCROLL_DURATION, 0, 20000 ),
|
||||
'notice-scroll-duration' => __( 'milliseconds. If asymmetric scroll durations are enabled, this is the scroll-up duration.', 'footnotes' ),
|
||||
|
||||
// Enable scroll duration asymmetricity.
|
||||
'label-scroll-asymmetricity' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_SCROLL_DURATION_ASYMMETRICITY, __( 'Enable asymmetric scroll durations:', 'footnotes' ) ),
|
||||
'scroll-asymmetricity' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTES_SCROLL_DURATION_ASYMMETRICITY, $l_arr_enable ),
|
||||
'label-scroll-asymmetricity' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_SCROLL_DURATION_ASYMMETRICITY, __( 'Enable asymmetric scroll durations:', 'footnotes' ) ),
|
||||
'scroll-asymmetricity' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_SCROLL_DURATION_ASYMMETRICITY, $l_arr_enable ),
|
||||
'notice-scroll-asymmetricity' => __( 'With this option enabled, scrolling up may take longer than down, or conversely.', 'footnotes' ),
|
||||
|
||||
'label-scroll-down-duration' => $this->add_label( Includes\Settings::C_INT_FOOTNOTES_SCROLL_DOWN_DURATION, __( 'Scroll-down duration:', 'footnotes' ) ),
|
||||
'scroll-down-duration' => $this->add_num_box( Includes\Settings::C_INT_FOOTNOTES_SCROLL_DOWN_DURATION, 0, 20000 ),
|
||||
'label-scroll-down-duration' => $this->add_label( \footnotes\includes\Settings::C_INT_FOOTNOTES_SCROLL_DOWN_DURATION, __( 'Scroll-down duration:', 'footnotes' ) ),
|
||||
'scroll-down-duration' => $this->add_num_box( \footnotes\includes\Settings::C_INT_FOOTNOTES_SCROLL_DOWN_DURATION, 0, 20000 ),
|
||||
'notice-scroll-down-duration' => __( 'milliseconds', 'footnotes' ),
|
||||
|
||||
'label-scroll-down-delay' => $this->add_label( Includes\Settings::C_INT_FOOTNOTES_SCROLL_DOWN_DELAY, __( 'Scroll-down delay:', 'footnotes' ) ),
|
||||
'scroll-down-delay' => $this->add_num_box( Includes\Settings::C_INT_FOOTNOTES_SCROLL_DOWN_DELAY, 0, 20000 ),
|
||||
'label-scroll-down-delay' => $this->add_label( \footnotes\includes\Settings::C_INT_FOOTNOTES_SCROLL_DOWN_DELAY, __( 'Scroll-down delay:', 'footnotes' ) ),
|
||||
'scroll-down-delay' => $this->add_num_box( \footnotes\includes\Settings::C_INT_FOOTNOTES_SCROLL_DOWN_DELAY, 0, 20000 ),
|
||||
'notice-scroll-down-delay' => __( 'milliseconds. Useful to see the effect on input elements when referrers without hard links are clicked in form labels.', 'footnotes' ),
|
||||
|
||||
'label-scroll-up-delay' => $this->add_label( Includes\Settings::C_INT_FOOTNOTES_SCROLL_UP_DELAY, __( 'Scroll-up delay:', 'footnotes' ) ),
|
||||
'scroll-up-delay' => $this->add_num_box( Includes\Settings::C_INT_FOOTNOTES_SCROLL_UP_DELAY, 0, 20000 ),
|
||||
'label-scroll-up-delay' => $this->add_label( \footnotes\includes\Settings::C_INT_FOOTNOTES_SCROLL_UP_DELAY, __( 'Scroll-up delay:', 'footnotes' ) ),
|
||||
'scroll-up-delay' => $this->add_num_box( \footnotes\includes\Settings::C_INT_FOOTNOTES_SCROLL_UP_DELAY, 0, 20000 ),
|
||||
'notice-scroll-up-delay' => __( 'milliseconds. Less useful than the scroll-down delay.', 'footnotes' ),
|
||||
|
||||
)
|
||||
|
@ -542,34 +542,34 @@ class Settings extends Engine {
|
|||
);
|
||||
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'settings-hard-links' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'settings-hard-links' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
|
||||
'label-hard-links' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_HARD_LINKS_ENABLE, __( 'Enable hard links:', 'footnotes' ) ),
|
||||
'hard-links' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTES_HARD_LINKS_ENABLE, $l_arr_enable ),
|
||||
'label-hard-links' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_HARD_LINKS_ENABLE, __( 'Enable hard links:', 'footnotes' ) ),
|
||||
'hard-links' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_HARD_LINKS_ENABLE, $l_arr_enable ),
|
||||
'notice-hard-links' => __( 'Hard links disable jQuery delays but have the same scroll offset, and allow to share footnotes (accessed if the list is not collapsed by default).', 'footnotes' ),
|
||||
|
||||
'label-footnote' => $this->add_label( Includes\Settings::C_STR_FOOTNOTE_FRAGMENT_ID_SLUG, __( 'Fragment identifier slug for footnotes:', 'footnotes' ) ),
|
||||
'footnote' => $this->add_text_box( Includes\Settings::C_STR_FOOTNOTE_FRAGMENT_ID_SLUG ),
|
||||
'label-footnote' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTE_FRAGMENT_ID_SLUG, __( 'Fragment identifier slug for footnotes:', 'footnotes' ) ),
|
||||
'footnote' => $this->add_text_box( \footnotes\includes\Settings::C_STR_FOOTNOTE_FRAGMENT_ID_SLUG ),
|
||||
'notice-footnote' => __( 'This will show up in the address bar after clicking on a hard-linked footnote referrer.', 'footnotes' ),
|
||||
|
||||
'label-referrer' => $this->add_label( Includes\Settings::C_STR_REFERRER_FRAGMENT_ID_SLUG, __( 'Fragment identifier slug for footnote referrers:', 'footnotes' ) ),
|
||||
'referrer' => $this->add_text_box( Includes\Settings::C_STR_REFERRER_FRAGMENT_ID_SLUG ),
|
||||
'label-referrer' => $this->add_label( \footnotes\includes\Settings::C_STR_REFERRER_FRAGMENT_ID_SLUG, __( 'Fragment identifier slug for footnote referrers:', 'footnotes' ) ),
|
||||
'referrer' => $this->add_text_box( \footnotes\includes\Settings::C_STR_REFERRER_FRAGMENT_ID_SLUG ),
|
||||
'notice-referrer' => __( 'This will show up in the address bar after clicking on a hard-linked backlink.', 'footnotes' ),
|
||||
|
||||
'label-separator' => $this->add_label( Includes\Settings::C_STR_HARD_LINK_IDS_SEPARATOR, __( 'ID separator:', 'footnotes' ) ),
|
||||
'separator' => $this->add_text_box( Includes\Settings::C_STR_HARD_LINK_IDS_SEPARATOR ),
|
||||
'label-separator' => $this->add_label( \footnotes\includes\Settings::C_STR_HARD_LINK_IDS_SEPARATOR, __( 'ID separator:', 'footnotes' ) ),
|
||||
'separator' => $this->add_text_box( \footnotes\includes\Settings::C_STR_HARD_LINK_IDS_SEPARATOR ),
|
||||
'notice-separator' => __( 'May be empty or any string, for example _, - or +, to distinguish post number, container number and footnote number.', 'footnotes' ),
|
||||
|
||||
// Enable backlink tooltips.
|
||||
'label-backlink-tooltips' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_BACKLINK_TOOLTIP_ENABLE, __( 'Enable backlink tooltips:', 'footnotes' ) ),
|
||||
'backlink-tooltips' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTES_BACKLINK_TOOLTIP_ENABLE, $l_arr_enable ),
|
||||
'label-backlink-tooltips' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_BACKLINK_TOOLTIP_ENABLE, __( 'Enable backlink tooltips:', 'footnotes' ) ),
|
||||
'backlink-tooltips' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_BACKLINK_TOOLTIP_ENABLE, $l_arr_enable ),
|
||||
'notice-backlink-tooltips' => __( 'Hard backlinks get ordinary tooltips hinting to use the backbutton instead to keep it usable.', 'footnotes' ),
|
||||
|
||||
'label-backlink-tooltip-text' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_BACKLINK_TOOLTIP_TEXT, __( 'Backlink tooltip text:', 'footnotes' ) ),
|
||||
'backlink-tooltip-text' => $this->add_text_box( Includes\Settings::C_STR_FOOTNOTES_BACKLINK_TOOLTIP_TEXT ),
|
||||
'label-backlink-tooltip-text' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_BACKLINK_TOOLTIP_TEXT, __( 'Backlink tooltip text:', 'footnotes' ) ),
|
||||
'backlink-tooltip-text' => $this->add_text_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_BACKLINK_TOOLTIP_TEXT ),
|
||||
'notice-backlink-tooltip-text' => __( 'Default text is the keyboard shortcut; may be a localized descriptive hint.', 'footnotes' ),
|
||||
|
||||
)
|
||||
|
@ -589,35 +589,35 @@ class Settings extends Engine {
|
|||
// Options for the acknowledgment display in the footer.
|
||||
$l_arr_love = array(
|
||||
// Logo only.
|
||||
'text-3' => sprintf( '%s', Includes\Config::C_STR_PLUGIN_PUBLIC_NAME ),
|
||||
'text-3' => \footnotes\includes\Config::C_STR_PLUGIN_PUBLIC_NAME,
|
||||
// Logo followed by heart symbol.
|
||||
'text-4' => sprintf( '%s %s', Includes\Config::C_STR_PLUGIN_PUBLIC_NAME, Includes\Config::C_STR_LOVE_SYMBOL ),
|
||||
'text-4' => sprintf( '%s %s', \footnotes\includes\Config::C_STR_PLUGIN_PUBLIC_NAME, \footnotes\includes\Config::C_STR_LOVE_SYMBOL ),
|
||||
// Logo preceded by heart symbol.
|
||||
'text-5' => sprintf( '%s %s', Includes\Config::C_STR_LOVE_SYMBOL, Includes\Config::C_STR_PLUGIN_PUBLIC_NAME ),
|
||||
'text-5' => sprintf( '%s %s', \footnotes\includes\Config::C_STR_LOVE_SYMBOL, \footnotes\includes\Config::C_STR_PLUGIN_PUBLIC_NAME ),
|
||||
// Translators: 2: heart symbol 1: footnotes logogram.
|
||||
'text-1' => sprintf( __( 'I %2$s %1$s', 'footnotes' ), Includes\Config::C_STR_PLUGIN_PUBLIC_NAME, Includes\Config::C_STR_LOVE_SYMBOL ),
|
||||
'text-1' => sprintf( __( 'I %2$s %1$s', 'footnotes' ), \footnotes\includes\Config::C_STR_PLUGIN_PUBLIC_NAME, \footnotes\includes\Config::C_STR_LOVE_SYMBOL ),
|
||||
// Translators: %s: Footnotes plugin logo.
|
||||
'text-6' => sprintf( __( 'This website uses %s.', 'footnotes' ), Includes\Config::C_STR_PLUGIN_PUBLIC_NAME ),
|
||||
'text-6' => sprintf( __( 'This website uses %s.', 'footnotes' ), \footnotes\includes\Config::C_STR_PLUGIN_PUBLIC_NAME ),
|
||||
// Translators: %s: Footnotes plugin logo.
|
||||
'text-7' => sprintf( __( 'This website uses the %s plugin.', 'footnotes' ), Includes\Config::C_STR_PLUGIN_PUBLIC_NAME ),
|
||||
'text-7' => sprintf( __( 'This website uses the %s plugin.', 'footnotes' ), \footnotes\includes\Config::C_STR_PLUGIN_PUBLIC_NAME ),
|
||||
// Translators: %s: Footnotes plugin logo.
|
||||
'text-2' => sprintf( __( 'This website uses the awesome %s plugin.', 'footnotes' ), Includes\Config::C_STR_PLUGIN_PUBLIC_NAME ),
|
||||
'text-2' => sprintf( __( 'This website uses the awesome %s plugin.', 'footnotes' ), \footnotes\includes\Config::C_STR_PLUGIN_PUBLIC_NAME ),
|
||||
'random' => __( 'randomly determined display of either mention', 'footnotes' ),
|
||||
// Translators: 1: Plugin logo.2: heart symbol.
|
||||
'no' => sprintf( __( 'no display of any "%1$s %2$s" mention in the footer', 'footnotes' ), Includes\Config::C_STR_PLUGIN_PUBLIC_NAME, Includes\Config::C_STR_LOVE_SYMBOL ),
|
||||
'no' => sprintf( __( 'no display of any "%1$s %2$s" mention in the footer', 'footnotes' ), \footnotes\includes\Config::C_STR_PLUGIN_PUBLIC_NAME, \footnotes\includes\Config::C_STR_LOVE_SYMBOL ),
|
||||
);
|
||||
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'settings-love' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'settings-love' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
// Translators: %s: Footnotes plugin logo.
|
||||
'label-love' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_LOVE, sprintf( __( 'Tell the world you\'re using %s:', 'footnotes' ), Includes\Config::C_STR_PLUGIN_PUBLIC_NAME ) ),
|
||||
'love' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTES_LOVE, $l_arr_love ),
|
||||
'label-love' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_LOVE, sprintf( __( 'Tell the world you\'re using %s:', 'footnotes' ), \footnotes\includes\Config::C_STR_PLUGIN_PUBLIC_NAME ) ),
|
||||
'love' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_LOVE, $l_arr_love ),
|
||||
// Translators: %s: Footnotes plugin logo.
|
||||
'label-no-love' => $this->add_text( sprintf( __( 'Shortcode to inhibit the display of the %s mention on specific pages:', 'footnotes' ), Includes\Config::C_STR_PLUGIN_PUBLIC_NAME ) ),
|
||||
'no-love' => $this->add_text( Includes\Config::C_STR_NO_LOVE_SLUG ),
|
||||
'label-no-love' => $this->add_text( sprintf( __( 'Shortcode to inhibit the display of the %s mention on specific pages:', 'footnotes' ), \footnotes\includes\Config::C_STR_PLUGIN_PUBLIC_NAME ) ),
|
||||
'no-love' => $this->add_text( \footnotes\includes\Config::C_STR_NO_LOVE_SLUG ),
|
||||
)
|
||||
);
|
||||
// Display template with replaced placeholders.
|
||||
|
@ -640,16 +640,16 @@ class Settings extends Engine {
|
|||
);
|
||||
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'settings-excerpts' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'settings-excerpts' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
'label-excerpts' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_IN_EXCERPT, __( 'Process footnotes in excerpts:', 'footnotes' ) ),
|
||||
'excerpts' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTES_IN_EXCERPT, $l_arr_excerpt_mode ),
|
||||
'label-excerpts' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_IN_EXCERPT, __( 'Process footnotes in excerpts:', 'footnotes' ) ),
|
||||
'excerpts' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_IN_EXCERPT, $l_arr_excerpt_mode ),
|
||||
'notice-excerpts' => __( 'If the_excerpt is enabled.', 'footnotes' ),
|
||||
// Translators: %s: link text 'Advanced Excerpt' linked to the plugin\'s WordPress.org front page.
|
||||
// Translators: %s: Footnotes plugin logo.
|
||||
'description-excerpts' => sprintf( __( 'To not display footnotes in excerpts, the %s plugin generates excerpts on the basis of the posts to be able to remove the footnotes. Else, footnotes may be processed in manual excerpts OR processed based on the posts. — For this setting to be effective, the hook the_excerpt must be enabled under Scope and priority.', 'footnotes' ), '<span style="font-style: normal;">' . Includes\Config::C_STR_PLUGIN_PUBLIC_NAME . '</span>' ),
|
||||
'description-excerpts' => sprintf( __( 'To not display footnotes in excerpts, the %s plugin generates excerpts on the basis of the posts to be able to remove the footnotes. Else, footnotes may be processed in manual excerpts OR processed based on the posts. — For this setting to be effective, the hook the_excerpt must be enabled under Scope and priority.', 'footnotes' ), '<span style="font-style: normal;">' . \footnotes\includes\Config::C_STR_PLUGIN_PUBLIC_NAME . '</span>' ),
|
||||
)
|
||||
);
|
||||
// Display template with replaced placeholders.
|
||||
|
@ -676,24 +676,24 @@ class Settings extends Engine {
|
|||
'all' => __( 'All superscript elements', 'footnotes' ),
|
||||
);
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'customize-superscript' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'customize-superscript' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
'label-superscript' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_REFERRER_SUPERSCRIPT_TAGS, __( 'Display footnote referrers in superscript:', 'footnotes' ) ),
|
||||
'superscript' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTES_REFERRER_SUPERSCRIPT_TAGS, $l_arr_enabled ),
|
||||
'label-superscript' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_REFERRER_SUPERSCRIPT_TAGS, __( 'Display footnote referrers in superscript:', 'footnotes' ) ),
|
||||
'superscript' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_REFERRER_SUPERSCRIPT_TAGS, $l_arr_enabled ),
|
||||
|
||||
'label-normalize' => $this->add_label( Includes\Settings::C_STR_FOOTNOTE_REFERRERS_NORMAL_SUPERSCRIPT, __( 'Normalize vertical alignment and font size:', 'footnotes' ) ),
|
||||
'normalize' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTE_REFERRERS_NORMAL_SUPERSCRIPT, $l_arr_normalize_superscript ),
|
||||
'label-normalize' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTE_REFERRERS_NORMAL_SUPERSCRIPT, __( 'Normalize vertical alignment and font size:', 'footnotes' ) ),
|
||||
'normalize' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTE_REFERRERS_NORMAL_SUPERSCRIPT, $l_arr_normalize_superscript ),
|
||||
'notice-normalize' => __( 'Most themes don\'t need this fix.', 'footnotes' ),
|
||||
|
||||
'label-before' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_STYLING_BEFORE, __( 'At the start of the footnote referrers:', 'footnotes' ) ),
|
||||
'before' => $this->add_text_box( Includes\Settings::C_STR_FOOTNOTES_STYLING_BEFORE ),
|
||||
'label-before' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_STYLING_BEFORE, __( 'At the start of the footnote referrers:', 'footnotes' ) ),
|
||||
'before' => $this->add_text_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_STYLING_BEFORE ),
|
||||
|
||||
'label-after' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_STYLING_AFTER, __( 'At the end of the footnote referrers:', 'footnotes' ) ),
|
||||
'after' => $this->add_text_box( Includes\Settings::C_STR_FOOTNOTES_STYLING_AFTER ),
|
||||
'label-after' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_STYLING_AFTER, __( 'At the end of the footnote referrers:', 'footnotes' ) ),
|
||||
'after' => $this->add_text_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_STYLING_AFTER ),
|
||||
|
||||
'label-link' => $this->add_label( Includes\Settings::C_STR_LINK_ELEMENT_ENABLED, __( 'Use the link element for referrers and backlinks:', 'footnotes' ) ),
|
||||
'label-link' => $this->add_label( \footnotes\includes\Settings::C_STR_LINK_ELEMENT_ENABLED, __( 'Use the link element for referrers and backlinks:', 'footnotes' ) ),
|
||||
'notice-link' => __( 'Please find this setting at the end of the reference container settings. The link element is needed to apply the theme\'s link color.', 'footnotes' ),
|
||||
)
|
||||
);
|
||||
|
@ -716,13 +716,13 @@ class Settings extends Engine {
|
|||
'disconnect' => __( 'B. Labels with footnotes are disconnected from input element (discouraged)', 'footnotes' ),
|
||||
);
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'configure-label-solution' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'configure-label-solution' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
'description-1-selection' => __( 'Clicking a footnote referrer in an input element label toggles the input except when hard links are enabled. In jQuery mode, the recommended solution is to move footnotes and append them after the label (option A).', 'footnotes' ),
|
||||
'label-selection' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_LABEL_ISSUE_SOLUTION, __( 'Solve input label issue:', 'footnotes' ) ),
|
||||
'selection' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTES_LABEL_ISSUE_SOLUTION, $l_arr_issue_solutions ),
|
||||
'label-selection' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_LABEL_ISSUE_SOLUTION, __( 'Solve input label issue:', 'footnotes' ) ),
|
||||
'selection' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_LABEL_ISSUE_SOLUTION, $l_arr_issue_solutions ),
|
||||
'description-2-selection' => __( 'Option B is discouraged because disconnecting a label from its input element may compromise accessibility. This option is a last resort in case footnotes must absolutely stay inside the label. (Using jQuery \'event.stopPropagation\' failed.)', 'footnotes' ),
|
||||
)
|
||||
);
|
||||
|
@ -745,20 +745,20 @@ class Settings extends Engine {
|
|||
);
|
||||
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'mouse-over-box-display' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'mouse-over-box-display' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
|
||||
'label-enable' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_ENABLED, __( 'Display tooltips:', 'footnotes' ) ),
|
||||
'enable' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_ENABLED, $l_arr_enabled ),
|
||||
'label-enable' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_ENABLED, __( 'Display tooltips:', 'footnotes' ) ),
|
||||
'enable' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_ENABLED, $l_arr_enabled ),
|
||||
'notice-enable' => __( 'Formatted text boxes allowing hyperlinks, displayed on mouse-over or tap and hold.', 'footnotes' ),
|
||||
|
||||
'label-alternative' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_ALTERNATIVE, __( 'Display alternative tooltips:', 'footnotes' ) ),
|
||||
'alternative' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_ALTERNATIVE, $l_arr_enabled ),
|
||||
'label-alternative' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_ALTERNATIVE, __( 'Display alternative tooltips:', 'footnotes' ) ),
|
||||
'alternative' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_ALTERNATIVE, $l_arr_enabled ),
|
||||
'notice-alternative' => __( 'Intended to work around a configuration-related tooltip outage.', 'footnotes' ),
|
||||
// Translators: %s: Footnotes plugin logo.
|
||||
'description-alternative' => sprintf( __( 'These alternative tooltips work around a website related jQuery UI outage. They are low-script but use the AMP incompatible onmouseover and onmouseout arguments, along with CSS transitions for fade-in/out. The very small script is inserted after Footnotes\' internal stylesheet. When this option is enabled, %s does not load jQuery UI nor jQuery Tools.', 'footnotes' ), '<span style="font-style: normal;">' . Includes\Config::C_STR_PLUGIN_PUBLIC_NAME . '</span>' ),
|
||||
'description-alternative' => sprintf( __( 'These alternative tooltips work around a website related jQuery UI outage. They are low-script but use the AMP incompatible onmouseover and onmouseout arguments, along with CSS transitions for fade-in/out. The very small script is inserted after Footnotes\' internal stylesheet. When this option is enabled, %s does not load jQuery UI nor jQuery Tools.', 'footnotes' ), '<span style="font-style: normal;">' . \footnotes\includes\Config::C_STR_PLUGIN_PUBLIC_NAME . '</span>' ),
|
||||
|
||||
)
|
||||
);
|
||||
|
@ -795,24 +795,24 @@ class Settings extends Engine {
|
|||
);
|
||||
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'mouse-over-box-position' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'mouse-over-box-position' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
|
||||
'label-position' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_POSITION, __( 'Position:', 'footnotes' ) ),
|
||||
'position' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_POSITION, $l_arr_position ),
|
||||
'position-alternative' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTES_ALTERNATIVE_MOUSE_OVER_BOX_POSITION, $l_arr_alternative_position ),
|
||||
'label-position' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_POSITION, __( 'Position:', 'footnotes' ) ),
|
||||
'position' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_POSITION, $l_arr_position ),
|
||||
'position-alternative' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_ALTERNATIVE_MOUSE_OVER_BOX_POSITION, $l_arr_alternative_position ),
|
||||
'notice-position' => __( 'The second column of settings boxes is for the alternative tooltips.', 'footnotes' ),
|
||||
|
||||
'label-offset-x' => $this->add_label( Includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_OFFSET_X, __( 'Horizontal offset:', 'footnotes' ) ),
|
||||
'offset-x' => $this->add_num_box( Includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_OFFSET_X, -500, 500 ),
|
||||
'offset-x-alternative' => $this->add_num_box( Includes\Settings::C_INT_FOOTNOTES_ALTERNATIVE_MOUSE_OVER_BOX_OFFSET_X, -500, 500 ),
|
||||
'label-offset-x' => $this->add_label( \footnotes\includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_OFFSET_X, __( 'Horizontal offset:', 'footnotes' ) ),
|
||||
'offset-x' => $this->add_num_box( \footnotes\includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_OFFSET_X, -500, 500 ),
|
||||
'offset-x-alternative' => $this->add_num_box( \footnotes\includes\Settings::C_INT_FOOTNOTES_ALTERNATIVE_MOUSE_OVER_BOX_OFFSET_X, -500, 500 ),
|
||||
'notice-offset-x' => __( 'pixels; negative value for a leftwards offset; alternative tooltips: direction depends on position', 'footnotes' ),
|
||||
|
||||
'label-offset-y' => $this->add_label( Includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_OFFSET_Y, __( 'Vertical offset:', 'footnotes' ) ),
|
||||
'offset-y' => $this->add_num_box( Includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_OFFSET_Y, -500, 500 ),
|
||||
'offset-y-alternative' => $this->add_num_box( Includes\Settings::C_INT_FOOTNOTES_ALTERNATIVE_MOUSE_OVER_BOX_OFFSET_Y, -500, 500 ),
|
||||
'label-offset-y' => $this->add_label( \footnotes\includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_OFFSET_Y, __( 'Vertical offset:', 'footnotes' ) ),
|
||||
'offset-y' => $this->add_num_box( \footnotes\includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_OFFSET_Y, -500, 500 ),
|
||||
'offset-y-alternative' => $this->add_num_box( \footnotes\includes\Settings::C_INT_FOOTNOTES_ALTERNATIVE_MOUSE_OVER_BOX_OFFSET_Y, -500, 500 ),
|
||||
'notice-offset-y' => __( 'pixels; negative value for an upwards offset; alternative tooltips: direction depends on position', 'footnotes' ),
|
||||
|
||||
)
|
||||
|
@ -831,14 +831,14 @@ class Settings extends Engine {
|
|||
public function mouseover_box_dimensions() {
|
||||
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'mouse-over-box-dimensions' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'mouse-over-box-dimensions' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
|
||||
'label-max-width' => $this->add_label( Includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_MAX_WIDTH, __( 'Maximum width:', 'footnotes' ) ),
|
||||
'max-width' => $this->add_num_box( Includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_MAX_WIDTH, 0, 1280 ),
|
||||
'width' => $this->add_num_box( Includes\Settings::C_INT_FOOTNOTES_ALTERNATIVE_MOUSE_OVER_BOX_WIDTH, 0, 1280 ),
|
||||
'label-max-width' => $this->add_label( \footnotes\includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_MAX_WIDTH, __( 'Maximum width:', 'footnotes' ) ),
|
||||
'max-width' => $this->add_num_box( \footnotes\includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_MAX_WIDTH, 0, 1280 ),
|
||||
'width' => $this->add_num_box( \footnotes\includes\Settings::C_INT_FOOTNOTES_ALTERNATIVE_MOUSE_OVER_BOX_WIDTH, 0, 1280 ),
|
||||
'notice-max-width' => __( 'pixels; set to 0 for jQuery tooltips without max width; alternative tooltips are given the value in the second box as fixed width.', 'footnotes' ),
|
||||
|
||||
)
|
||||
|
@ -857,25 +857,25 @@ class Settings extends Engine {
|
|||
public function mouseover_box_timing() {
|
||||
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'mouse-over-box-timing' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'mouse-over-box-timing' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
|
||||
'label-fade-in-delay' => $this->add_label( Includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_IN_DELAY, __( 'Fade-in delay:', 'footnotes' ) ),
|
||||
'fade-in-delay' => $this->add_num_box( Includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_IN_DELAY, 0, 20000 ),
|
||||
'label-fade-in-delay' => $this->add_label( \footnotes\includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_IN_DELAY, __( 'Fade-in delay:', 'footnotes' ) ),
|
||||
'fade-in-delay' => $this->add_num_box( \footnotes\includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_IN_DELAY, 0, 20000 ),
|
||||
'notice-fade-in-delay' => __( 'milliseconds', 'footnotes' ),
|
||||
|
||||
'label-fade-in-duration' => $this->add_label( Includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_IN_DURATION, __( 'Fade-in duration:', 'footnotes' ) ),
|
||||
'fade-in-duration' => $this->add_num_box( Includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_IN_DURATION, 0, 20000 ),
|
||||
'label-fade-in-duration' => $this->add_label( \footnotes\includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_IN_DURATION, __( 'Fade-in duration:', 'footnotes' ) ),
|
||||
'fade-in-duration' => $this->add_num_box( \footnotes\includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_IN_DURATION, 0, 20000 ),
|
||||
'notice-fade-in-duration' => __( 'milliseconds', 'footnotes' ),
|
||||
|
||||
'label-fade-out-delay' => $this->add_label( Includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_OUT_DELAY, __( 'Fade-out delay:', 'footnotes' ) ),
|
||||
'fade-out-delay' => $this->add_num_box( Includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_OUT_DELAY, 0, 20000 ),
|
||||
'label-fade-out-delay' => $this->add_label( \footnotes\includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_OUT_DELAY, __( 'Fade-out delay:', 'footnotes' ) ),
|
||||
'fade-out-delay' => $this->add_num_box( \footnotes\includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_OUT_DELAY, 0, 20000 ),
|
||||
'notice-fade-out-delay' => __( 'milliseconds', 'footnotes' ),
|
||||
|
||||
'label-fade-out-duration' => $this->add_label( Includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_OUT_DURATION, __( 'Fade-out duration:', 'footnotes' ) ),
|
||||
'fade-out-duration' => $this->add_num_box( Includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_OUT_DURATION, 0, 20000 ),
|
||||
'label-fade-out-duration' => $this->add_label( \footnotes\includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_OUT_DURATION, __( 'Fade-out duration:', 'footnotes' ) ),
|
||||
'fade-out-duration' => $this->add_num_box( \footnotes\includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_OUT_DURATION, 0, 20000 ),
|
||||
'notice-fade-out-duration' => __( 'milliseconds', 'footnotes' ),
|
||||
|
||||
)
|
||||
|
@ -899,21 +899,21 @@ class Settings extends Engine {
|
|||
);
|
||||
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'mouse-over-box-truncation' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'mouse-over-box-truncation' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
|
||||
'label-truncation' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_EXCERPT_ENABLED, __( 'Truncate the note in the tooltip:', 'footnotes' ) ),
|
||||
'truncation' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_EXCERPT_ENABLED, $l_arr_enabled ),
|
||||
'label-truncation' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_EXCERPT_ENABLED, __( 'Truncate the note in the tooltip:', 'footnotes' ) ),
|
||||
'truncation' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_EXCERPT_ENABLED, $l_arr_enabled ),
|
||||
|
||||
'label-max-length' => $this->add_label( Includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_EXCERPT_LENGTH, __( 'Maximum number of characters in the tooltip:', 'footnotes' ) ),
|
||||
'max-length' => $this->add_num_box( Includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_EXCERPT_LENGTH, 3, 10000 ),
|
||||
'label-max-length' => $this->add_label( \footnotes\includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_EXCERPT_LENGTH, __( 'Maximum number of characters in the tooltip:', 'footnotes' ) ),
|
||||
'max-length' => $this->add_num_box( \footnotes\includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_EXCERPT_LENGTH, 3, 10000 ),
|
||||
// The feature trims back until the last full word.
|
||||
'notice-max-length' => __( 'No weird cuts.', 'footnotes' ),
|
||||
|
||||
'label-readon' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_TOOLTIP_READON_LABEL, __( '\'Read on\' button label:', 'footnotes' ) ),
|
||||
'readon' => $this->add_text_box( Includes\Settings::C_STR_FOOTNOTES_TOOLTIP_READON_LABEL ),
|
||||
'label-readon' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_TOOLTIP_READON_LABEL, __( '\'Read on\' button label:', 'footnotes' ) ),
|
||||
'readon' => $this->add_text_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_TOOLTIP_READON_LABEL ),
|
||||
|
||||
)
|
||||
);
|
||||
|
@ -936,23 +936,23 @@ class Settings extends Engine {
|
|||
);
|
||||
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'mouse-over-box-text' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'mouse-over-box-text' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
|
||||
'description-delimiter' => __( 'Tooltips can display another content than the footnote entry in the reference container. The trigger is a shortcode in the footnote text separating the tooltip text from the note. That is consistent with what WordPress does for excerpts.', 'footnotes' ),
|
||||
|
||||
'label-delimiter' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_TOOLTIP_EXCERPT_DELIMITER, __( 'Delimiter for dedicated tooltip text:', 'footnotes' ) ),
|
||||
'delimiter' => $this->add_text_box( Includes\Settings::C_STR_FOOTNOTES_TOOLTIP_EXCERPT_DELIMITER ),
|
||||
'label-delimiter' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_TOOLTIP_EXCERPT_DELIMITER, __( 'Delimiter for dedicated tooltip text:', 'footnotes' ) ),
|
||||
'delimiter' => $this->add_text_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_TOOLTIP_EXCERPT_DELIMITER ),
|
||||
'notice-delimiter' => __( 'If the delimiter shortcode is present, the tooltip text will be the part before it.', 'footnotes' ),
|
||||
|
||||
'label-mirror' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_TOOLTIP_EXCERPT_MIRROR_ENABLE, __( 'Mirror the tooltip in the reference container:', 'footnotes' ) ),
|
||||
'mirror' => $this->add_select_box( Includes\Settings::C_STR_FOOTNOTES_TOOLTIP_EXCERPT_MIRROR_ENABLE, $l_arr_enabled ),
|
||||
'label-mirror' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_TOOLTIP_EXCERPT_MIRROR_ENABLE, __( 'Mirror the tooltip in the reference container:', 'footnotes' ) ),
|
||||
'mirror' => $this->add_select_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_TOOLTIP_EXCERPT_MIRROR_ENABLE, $l_arr_enabled ),
|
||||
'notice-mirror' => __( 'Tooltips may be harder to use on mobiles. This option allows to read it in the reference container.', 'footnotes' ),
|
||||
|
||||
'label-separator' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_TOOLTIP_EXCERPT_MIRROR_SEPARATOR, __( 'Separator between tooltip text and footnote text:', 'footnotes' ) ),
|
||||
'separator' => $this->add_text_box( Includes\Settings::C_STR_FOOTNOTES_TOOLTIP_EXCERPT_MIRROR_SEPARATOR ),
|
||||
'label-separator' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_TOOLTIP_EXCERPT_MIRROR_SEPARATOR, __( 'Separator between tooltip text and footnote text:', 'footnotes' ) ),
|
||||
'separator' => $this->add_text_box( \footnotes\includes\Settings::C_STR_FOOTNOTES_TOOLTIP_EXCERPT_MIRROR_SEPARATOR ),
|
||||
'notice-separator' => __( 'May be a simple space, or a line break <br />, or any string in your language.', 'footnotes' ),
|
||||
|
||||
'description-mirror' => __( 'Tooltips, even jQuery-driven, may be hard to consult on mobiles. This option allows to read the tooltip content in the reference container too.', 'footnotes' ),
|
||||
|
@ -988,42 +988,42 @@ class Settings extends Engine {
|
|||
);
|
||||
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'mouse-over-box-appearance' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'mouse-over-box-appearance' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
|
||||
'label-font-size' => $this->add_label( Includes\Settings::C_STR_MOUSE_OVER_BOX_FONT_SIZE_ENABLED, __( 'Set font size:', 'footnotes' ) ),
|
||||
'font-size-enable' => $this->add_select_box( Includes\Settings::C_STR_MOUSE_OVER_BOX_FONT_SIZE_ENABLED, $l_arr_enabled ),
|
||||
'font-size-scalar' => $this->add_num_box( Includes\Settings::C_FLO_MOUSE_OVER_BOX_FONT_SIZE_SCALAR, 0, 50, true ),
|
||||
'font-size-unit' => $this->add_select_box( Includes\Settings::C_STR_MOUSE_OVER_BOX_FONT_SIZE_UNIT, $l_arr_font_size_units ),
|
||||
'label-font-size' => $this->add_label( \footnotes\includes\Settings::C_STR_MOUSE_OVER_BOX_FONT_SIZE_ENABLED, __( 'Set font size:', 'footnotes' ) ),
|
||||
'font-size-enable' => $this->add_select_box( \footnotes\includes\Settings::C_STR_MOUSE_OVER_BOX_FONT_SIZE_ENABLED, $l_arr_enabled ),
|
||||
'font-size-scalar' => $this->add_num_box( \footnotes\includes\Settings::C_FLO_MOUSE_OVER_BOX_FONT_SIZE_SCALAR, 0, 50, true ),
|
||||
'font-size-unit' => $this->add_select_box( \footnotes\includes\Settings::C_STR_MOUSE_OVER_BOX_FONT_SIZE_UNIT, $l_arr_font_size_units ),
|
||||
'notice-font-size' => __( 'By default, the font size is set to equal the surrounding text.', 'footnotes' ),
|
||||
|
||||
'label-color' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_COLOR, __( 'Text color:', 'footnotes' ) ),
|
||||
'color' => $this->add_color_selection( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_COLOR ),
|
||||
'label-color' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_COLOR, __( 'Text color:', 'footnotes' ) ),
|
||||
'color' => $this->add_color_selection( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_COLOR ),
|
||||
// Translators: %s: Clear or leave empty.
|
||||
'notice-color' => sprintf( __( 'To use the current theme\'s default text color: %s', 'footnotes' ), __( 'Clear or leave empty.', 'footnotes' ) ),
|
||||
|
||||
'label-background' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_BACKGROUND, __( 'Background color:', 'footnotes' ) ),
|
||||
'background' => $this->add_color_selection( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_BACKGROUND ),
|
||||
'label-background' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_BACKGROUND, __( 'Background color:', 'footnotes' ) ),
|
||||
'background' => $this->add_color_selection( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_BACKGROUND ),
|
||||
// Translators: %s: Clear or leave empty.
|
||||
'notice-background' => sprintf( __( 'To use the current theme\'s default background color: %s', 'footnotes' ), __( 'Clear or leave empty.', 'footnotes' ) ),
|
||||
|
||||
'label-border-width' => $this->add_label( Includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_BORDER_WIDTH, __( 'Border width:', 'footnotes' ) ),
|
||||
'border-width' => $this->add_num_box( Includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_BORDER_WIDTH, 0, 4, true ),
|
||||
'label-border-width' => $this->add_label( \footnotes\includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_BORDER_WIDTH, __( 'Border width:', 'footnotes' ) ),
|
||||
'border-width' => $this->add_num_box( \footnotes\includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_BORDER_WIDTH, 0, 4, true ),
|
||||
'notice-border-width' => __( 'pixels; 0 for borderless', 'footnotes' ),
|
||||
|
||||
'label-border-color' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_BORDER_COLOR, __( 'Border color:', 'footnotes' ) ),
|
||||
'border-color' => $this->add_color_selection( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_BORDER_COLOR ),
|
||||
'label-border-color' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_BORDER_COLOR, __( 'Border color:', 'footnotes' ) ),
|
||||
'border-color' => $this->add_color_selection( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_BORDER_COLOR ),
|
||||
// Translators: %s: Clear or leave empty.
|
||||
'notice-border-color' => sprintf( __( 'To use the current theme\'s default border color: %s', 'footnotes' ), __( 'Clear or leave empty.', 'footnotes' ) ),
|
||||
|
||||
'label-border-radius' => $this->add_label( Includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_BORDER_RADIUS, __( 'Rounded corner radius:', 'footnotes' ) ),
|
||||
'border-radius' => $this->add_num_box( Includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_BORDER_RADIUS, 0, 500 ),
|
||||
'label-border-radius' => $this->add_label( \footnotes\includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_BORDER_RADIUS, __( 'Rounded corner radius:', 'footnotes' ) ),
|
||||
'border-radius' => $this->add_num_box( \footnotes\includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_BORDER_RADIUS, 0, 500 ),
|
||||
'notice-border-radius' => __( 'pixels; 0 for sharp corners', 'footnotes' ),
|
||||
|
||||
'label-box-shadow-color' => $this->add_label( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_SHADOW_COLOR, __( 'Box shadow color:', 'footnotes' ) ),
|
||||
'box-shadow-color' => $this->add_color_selection( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_SHADOW_COLOR ),
|
||||
'label-box-shadow-color' => $this->add_label( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_SHADOW_COLOR, __( 'Box shadow color:', 'footnotes' ) ),
|
||||
'box-shadow-color' => $this->add_color_selection( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_SHADOW_COLOR ),
|
||||
// Translators: %s: Clear or leave empty.
|
||||
'notice-box-shadow-color' => sprintf( __( 'To use the current theme\'s default box shadow color: %s', 'footnotes' ), __( 'Clear or leave empty.', 'footnotes' ) ),
|
||||
|
||||
|
@ -1042,13 +1042,13 @@ class Settings extends Engine {
|
|||
*/
|
||||
public function hyperlink_arrow() {
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'customize-hyperlink-arrow' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'customize-hyperlink-arrow' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
'label-symbol' => $this->add_label( Includes\Settings::C_STR_HYPERLINK_ARROW, __( 'Select or input the backlink symbol:', 'footnotes' ) ),
|
||||
'symbol-options' => $this->add_select_box( Includes\Settings::C_STR_HYPERLINK_ARROW, Includes\Convert::get_arrow() ),
|
||||
'symbol-custom' => $this->add_text_box( Includes\Settings::C_STR_HYPERLINK_ARROW_USER_DEFINED ),
|
||||
'label-symbol' => $this->add_label( \footnotes\includes\Settings::C_STR_HYPERLINK_ARROW, __( 'Select or input the backlink symbol:', 'footnotes' ) ),
|
||||
'symbol-options' => $this->add_select_box( \footnotes\includes\Settings::C_STR_HYPERLINK_ARROW, Includes\Convert::get_arrow() ),
|
||||
'symbol-custom' => $this->add_text_box( \footnotes\includes\Settings::C_STR_HYPERLINK_ARROW_USER_DEFINED ),
|
||||
'notice-symbol' => __( 'Your input overrides the selection.', 'footnotes' ),
|
||||
'description-symbol' => __( 'This symbol is used in the reference container. But this setting pre-existed under this tab and cannot be moved to another one.', 'footnotes' ),
|
||||
)
|
||||
|
@ -1066,12 +1066,12 @@ class Settings extends Engine {
|
|||
*/
|
||||
public function custom_css() {
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'customize-css' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'customize-css' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
'label-css' => $this->add_label( Includes\Settings::C_STR_CUSTOM_CSS, __( 'Your existing Custom CSS code:', 'footnotes' ) ),
|
||||
'css' => $this->add_textarea( Includes\Settings::C_STR_CUSTOM_CSS ),
|
||||
'label-css' => $this->add_label( \footnotes\includes\Settings::C_STR_CUSTOM_CSS, __( 'Your existing Custom CSS code:', 'footnotes' ) ),
|
||||
'css' => $this->add_textarea( \footnotes\includes\Settings::C_STR_CUSTOM_CSS ),
|
||||
'description-css' => __( 'Custom CSS migrates to a dedicated tab. This text area is intended to keep your data safe, and the code remains valid while visible. Please copy-paste the content into the new text area under the new tab.', 'footnotes' ),
|
||||
|
||||
// phpcs:disable Squiz.PHP.CommentedOutCode.Found
|
||||
|
@ -1113,16 +1113,16 @@ class Settings extends Engine {
|
|||
);
|
||||
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'customize-css-migration' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'customize-css-migration' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
'label-css' => $this->add_label( Includes\Settings::C_STR_CUSTOM_CSS, __( 'Your existing Custom CSS code:', 'footnotes' ) ),
|
||||
'css' => $this->add_textarea( Includes\Settings::C_STR_CUSTOM_CSS ),
|
||||
'label-css' => $this->add_label( \footnotes\includes\Settings::C_STR_CUSTOM_CSS, __( 'Your existing Custom CSS code:', 'footnotes' ) ),
|
||||
'css' => $this->add_textarea( \footnotes\includes\Settings::C_STR_CUSTOM_CSS ),
|
||||
'description-css' => __( 'Custom CSS migrates to a dedicated tab. This text area is intended to keep your data safe, and the code remains valid while visible. Please copy-paste the content into the new text area below. Set Show legacy to No. Save twice.', 'footnotes' ),
|
||||
|
||||
'label-show-legacy' => $this->add_label( Includes\Settings::C_STR_CUSTOM_CSS_LEGACY_ENABLE, 'Show legacy Custom CSS settings containers:' ),
|
||||
'show-legacy' => $this->add_select_box( Includes\Settings::C_STR_CUSTOM_CSS_LEGACY_ENABLE, $l_arr_enabled ),
|
||||
'label-show-legacy' => $this->add_label( \footnotes\includes\Settings::C_STR_CUSTOM_CSS_LEGACY_ENABLE, 'Show legacy Custom CSS settings containers:' ),
|
||||
'show-legacy' => $this->add_select_box( \footnotes\includes\Settings::C_STR_CUSTOM_CSS_LEGACY_ENABLE, $l_arr_enabled ),
|
||||
'notice-show-legacy' => __( 'Please set to No when you are done migrating, for the legacy Custom CSS containers to disappear.', 'footnotes' ),
|
||||
// Translators: %s: Referres and tooltips.
|
||||
'description-show-legacy' => sprintf( __( 'The legacy Custom CSS under the %s tab and its mirror here are emptied, and the select box saved as No, when the settings tab is saved while the settings container is not displayed.', 'footnotes' ), __( 'Referrers and tooltips', 'footnotes' ) ),
|
||||
|
@ -1142,11 +1142,11 @@ class Settings extends Engine {
|
|||
*/
|
||||
public function custom_css_new() {
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'customize-css-new' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'customize-css-new' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
'css' => $this->add_textarea( Includes\Settings::C_STR_CUSTOM_CSS_NEW ),
|
||||
'css' => $this->add_textarea( \footnotes\includes\Settings::C_STR_CUSTOM_CSS_NEW ),
|
||||
|
||||
'headline' => $this->add_text( __( 'Recommended CSS classes:', 'footnotes' ) ),
|
||||
|
||||
|
@ -1172,7 +1172,7 @@ class Settings extends Engine {
|
|||
*/
|
||||
public function lookup_hooks() {
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'expert-lookup' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'expert-lookup' );
|
||||
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
|
@ -1189,29 +1189,29 @@ class Settings extends Engine {
|
|||
'head-numbox' => __( 'Priority level', 'footnotes' ),
|
||||
'head-url' => __( 'WordPress documentation', 'footnotes' ),
|
||||
|
||||
'label-the-title' => $this->add_label( Includes\Settings::C_STR_EXPERT_LOOKUP_THE_TITLE, 'the_title' ),
|
||||
'the-title' => $this->add_checkbox( Includes\Settings::C_STR_EXPERT_LOOKUP_THE_TITLE ),
|
||||
'priority-the-title' => $this->add_num_box( Includes\Settings::C_INT_EXPERT_LOOKUP_THE_TITLE_PRIORITY_LEVEL, -1, PHP_INT_MAX ),
|
||||
'label-the-title' => $this->add_label( \footnotes\includes\Settings::C_STR_EXPERT_LOOKUP_THE_TITLE, 'the_title' ),
|
||||
'the-title' => $this->add_checkbox( \footnotes\includes\Settings::C_STR_EXPERT_LOOKUP_THE_TITLE ),
|
||||
'priority-the-title' => $this->add_num_box( \footnotes\includes\Settings::C_INT_EXPERT_LOOKUP_THE_TITLE_PRIORITY_LEVEL, -1, PHP_INT_MAX ),
|
||||
'url-the-title' => 'https://developer.wordpress.org/reference/hooks/the_title/',
|
||||
|
||||
'label-the-content' => $this->add_label( Includes\Settings::C_STR_EXPERT_LOOKUP_THE_CONTENT, 'the_content' ),
|
||||
'the-content' => $this->add_checkbox( Includes\Settings::C_STR_EXPERT_LOOKUP_THE_CONTENT ),
|
||||
'priority-the-content' => $this->add_num_box( Includes\Settings::C_INT_EXPERT_LOOKUP_THE_CONTENT_PRIORITY_LEVEL, -1, PHP_INT_MAX ),
|
||||
'label-the-content' => $this->add_label( \footnotes\includes\Settings::C_STR_EXPERT_LOOKUP_THE_CONTENT, 'the_content' ),
|
||||
'the-content' => $this->add_checkbox( \footnotes\includes\Settings::C_STR_EXPERT_LOOKUP_THE_CONTENT ),
|
||||
'priority-the-content' => $this->add_num_box( \footnotes\includes\Settings::C_INT_EXPERT_LOOKUP_THE_CONTENT_PRIORITY_LEVEL, -1, PHP_INT_MAX ),
|
||||
'url-the-content' => 'https://developer.wordpress.org/reference/hooks/the_content/',
|
||||
|
||||
'label-the-excerpt' => $this->add_label( Includes\Settings::C_STR_EXPERT_LOOKUP_THE_EXCERPT, 'the_excerpt' ),
|
||||
'the-excerpt' => $this->add_checkbox( Includes\Settings::C_STR_EXPERT_LOOKUP_THE_EXCERPT ),
|
||||
'priority-the-excerpt' => $this->add_num_box( Includes\Settings::C_INT_EXPERT_LOOKUP_THE_EXCERPT_PRIORITY_LEVEL, -1, PHP_INT_MAX ),
|
||||
'label-the-excerpt' => $this->add_label( \footnotes\includes\Settings::C_STR_EXPERT_LOOKUP_THE_EXCERPT, 'the_excerpt' ),
|
||||
'the-excerpt' => $this->add_checkbox( \footnotes\includes\Settings::C_STR_EXPERT_LOOKUP_THE_EXCERPT ),
|
||||
'priority-the-excerpt' => $this->add_num_box( \footnotes\includes\Settings::C_INT_EXPERT_LOOKUP_THE_EXCERPT_PRIORITY_LEVEL, -1, PHP_INT_MAX ),
|
||||
'url-the-excerpt' => 'https://developer.wordpress.org/reference/functions/the_excerpt/',
|
||||
|
||||
'label-widget-title' => $this->add_label( Includes\Settings::C_STR_EXPERT_LOOKUP_WIDGET_TITLE, 'widget_title' ),
|
||||
'widget-title' => $this->add_checkbox( Includes\Settings::C_STR_EXPERT_LOOKUP_WIDGET_TITLE ),
|
||||
'priority-widget-title' => $this->add_num_box( Includes\Settings::C_INT_EXPERT_LOOKUP_WIDGET_TITLE_PRIORITY_LEVEL, -1, PHP_INT_MAX ),
|
||||
'label-widget-title' => $this->add_label( \footnotes\includes\Settings::C_STR_EXPERT_LOOKUP_WIDGET_TITLE, 'widget_title' ),
|
||||
'widget-title' => $this->add_checkbox( \footnotes\includes\Settings::C_STR_EXPERT_LOOKUP_WIDGET_TITLE ),
|
||||
'priority-widget-title' => $this->add_num_box( \footnotes\includes\Settings::C_INT_EXPERT_LOOKUP_WIDGET_TITLE_PRIORITY_LEVEL, -1, PHP_INT_MAX ),
|
||||
'url-widget-title' => 'https://codex.wordpress.org/Plugin_API/Filter_Reference/widget_title',
|
||||
|
||||
'label-widget-text' => $this->add_label( Includes\Settings::C_STR_EXPERT_LOOKUP_WIDGET_TEXT, 'widget_text' ),
|
||||
'widget-text' => $this->add_checkbox( Includes\Settings::C_STR_EXPERT_LOOKUP_WIDGET_TEXT ),
|
||||
'priority-widget-text' => $this->add_num_box( Includes\Settings::C_INT_EXPERT_LOOKUP_WIDGET_TEXT_PRIORITY_LEVEL, -1, PHP_INT_MAX ),
|
||||
'label-widget-text' => $this->add_label( \footnotes\includes\Settings::C_STR_EXPERT_LOOKUP_WIDGET_TEXT, 'widget_text' ),
|
||||
'widget-text' => $this->add_checkbox( \footnotes\includes\Settings::C_STR_EXPERT_LOOKUP_WIDGET_TEXT ),
|
||||
'priority-widget-text' => $this->add_num_box( \footnotes\includes\Settings::C_INT_EXPERT_LOOKUP_WIDGET_TEXT_PRIORITY_LEVEL, -1, PHP_INT_MAX ),
|
||||
'url-widget-text' => 'https://codex.wordpress.org/Plugin_API/Filter_Reference/widget_text',
|
||||
)
|
||||
);
|
||||
|
@ -1229,13 +1229,13 @@ class Settings extends Engine {
|
|||
public function Help() {
|
||||
global $footnotes;
|
||||
// Load footnotes starting and end tag.
|
||||
$l_arr_footnote_starting_tag = $this->load_setting( Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START );
|
||||
$l_arr_footnote_ending_tag = $this->load_setting( Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END );
|
||||
$l_arr_footnote_starting_tag = $this->load_setting( \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START );
|
||||
$l_arr_footnote_ending_tag = $this->load_setting( \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END );
|
||||
|
||||
if ( 'userdefined' === $l_arr_footnote_starting_tag['value'] || 'userdefined' === $l_arr_footnote_ending_tag['value'] ) {
|
||||
// Load user defined starting and end tag.
|
||||
$l_arr_footnote_starting_tag = $this->load_setting( Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START_USER_DEFINED );
|
||||
$l_arr_footnote_ending_tag = $this->load_setting( Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END_USER_DEFINED );
|
||||
$l_arr_footnote_starting_tag = $this->load_setting( \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START_USER_DEFINED );
|
||||
$l_arr_footnote_ending_tag = $this->load_setting( \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END_USER_DEFINED );
|
||||
}
|
||||
$l_str_example = 'Hello' . $l_arr_footnote_starting_tag['value'] .
|
||||
'Sed ut perspiciatis, unde omnis iste natus error ' .
|
||||
|
@ -1253,7 +1253,7 @@ class Settings extends Engine {
|
|||
$l_arr_footnote_ending_tag['value'] . ' World!';
|
||||
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'how-to-help' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'how-to-help' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
|
@ -1292,7 +1292,7 @@ class Settings extends Engine {
|
|||
*/
|
||||
public function donate() {
|
||||
// Load template file.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_DASHBOARD, 'how-to-donate' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_DASHBOARD, 'how-to-donate' );
|
||||
// Replace all placeholders.
|
||||
$l_obj_template->replace(
|
||||
array(
|
||||
|
|
|
@ -180,7 +180,7 @@ class Convert {
|
|||
$l_arr_arrows = array( '↑', '↥', '↟', '↩', '↲', '↵', '⇑', '⇡', '⇧', '↑' );
|
||||
// Convert index to an integer.
|
||||
if ( ! is_int( $p_int_index ) ) {
|
||||
$p_int_index = intval( $p_int_index );
|
||||
$p_int_index = (int) $p_int_index;
|
||||
}
|
||||
// Return the whole arrow array.
|
||||
if ( $p_int_index < 0 || $p_int_index > count( $l_arr_arrows ) ) {
|
||||
|
|
|
@ -86,11 +86,7 @@ class Core {
|
|||
* @return void
|
||||
*/
|
||||
public function __construct() {
|
||||
if ( defined( 'PLUGIN_VERSION' ) ) {
|
||||
$this->version = PLUGIN_VERSION;
|
||||
} else {
|
||||
$this->version = '0.0.0';
|
||||
}
|
||||
$this->version = defined( 'PLUGIN_VERSION' ) ? PLUGIN_VERSION : '0.0.0';
|
||||
$this->plugin_name = 'footnotes';
|
||||
|
||||
$this->load_dependencies();
|
||||
|
|
|
@ -1226,7 +1226,7 @@ class Settings {
|
|||
'footnotes_storage_custom' => array(
|
||||
|
||||
// Backlink symbol.
|
||||
self::C_STR_HYPERLINK_ARROW => '↑',
|
||||
self::C_STR_HYPERLINK_ARROW => 0,
|
||||
self::C_STR_HYPERLINK_ARROW_USER_DEFINED => '',
|
||||
|
||||
// Referrers.
|
||||
|
@ -1451,7 +1451,7 @@ class Settings {
|
|||
* @since 1.5.0
|
||||
*/
|
||||
public function get( $p_str_key ) {
|
||||
return array_key_exists( $p_str_key, $this->a_arr_settings ) ? $this->a_arr_settings[ $p_str_key ] : null;
|
||||
return $this->a_arr_settings[ $p_str_key ] ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -286,11 +286,11 @@ class Parser {
|
|||
*/
|
||||
public function register_hooks() {
|
||||
// Get values from settings.
|
||||
$l_int_the_title_priority = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_EXPERT_LOOKUP_THE_TITLE_PRIORITY_LEVEL ) );
|
||||
$l_int_the_content_priority = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_EXPERT_LOOKUP_THE_CONTENT_PRIORITY_LEVEL ) );
|
||||
$l_int_the_excerpt_priority = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_EXPERT_LOOKUP_THE_EXCERPT_PRIORITY_LEVEL ) );
|
||||
$l_int_widget_title_priority = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_EXPERT_LOOKUP_WIDGET_TITLE_PRIORITY_LEVEL ) );
|
||||
$l_int_widget_text_priority = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_EXPERT_LOOKUP_WIDGET_TEXT_PRIORITY_LEVEL ) );
|
||||
$l_int_the_title_priority = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_EXPERT_LOOKUP_THE_TITLE_PRIORITY_LEVEL );
|
||||
$l_int_the_content_priority = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_EXPERT_LOOKUP_THE_CONTENT_PRIORITY_LEVEL );
|
||||
$l_int_the_excerpt_priority = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_EXPERT_LOOKUP_THE_EXCERPT_PRIORITY_LEVEL );
|
||||
$l_int_widget_title_priority = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_EXPERT_LOOKUP_WIDGET_TITLE_PRIORITY_LEVEL );
|
||||
$l_int_widget_text_priority = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_EXPERT_LOOKUP_WIDGET_TEXT_PRIORITY_LEVEL );
|
||||
|
||||
// PHP_INT_MAX can be set by -1.
|
||||
$l_int_the_title_priority = ( -1 === $l_int_the_title_priority ) ? PHP_INT_MAX : $l_int_the_title_priority;
|
||||
|
@ -300,18 +300,42 @@ class Parser {
|
|||
$l_int_widget_text_priority = ( -1 === $l_int_widget_text_priority ) ? PHP_INT_MAX : $l_int_widget_text_priority;
|
||||
|
||||
// Append custom css to the header.
|
||||
add_filter( 'wp_head', array( $this, 'footnotes_output_head' ), PHP_INT_MAX );
|
||||
add_filter(
|
||||
'wp_head',
|
||||
function () {
|
||||
return $this->footnotes_output_head();
|
||||
},
|
||||
PHP_INT_MAX
|
||||
);
|
||||
|
||||
// Append the love and share me slug to the footer.
|
||||
add_filter( 'wp_footer', array( $this, 'footnotes_output_footer' ), PHP_INT_MAX );
|
||||
add_filter(
|
||||
'wp_footer',
|
||||
function () {
|
||||
return $this->footnotes_output_footer();
|
||||
},
|
||||
PHP_INT_MAX
|
||||
);
|
||||
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_EXPERT_LOOKUP_THE_TITLE ) ) ) {
|
||||
add_filter( 'the_title', array( $this, 'footnotes_in_title' ), $l_int_the_title_priority );
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_EXPERT_LOOKUP_THE_TITLE ) ) ) {
|
||||
add_filter(
|
||||
'the_title',
|
||||
function ( string $p_str_content ) : string {
|
||||
return $this->footnotes_in_title( $p_str_content );
|
||||
},
|
||||
$l_int_the_title_priority
|
||||
);
|
||||
}
|
||||
|
||||
// Configurable priority level for reference container relative positioning; default 98.
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_EXPERT_LOOKUP_THE_CONTENT ) ) ) {
|
||||
add_filter( 'the_content', array( $this, 'footnotes_in_content' ), $l_int_the_content_priority );
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_EXPERT_LOOKUP_THE_CONTENT ) ) ) {
|
||||
add_filter(
|
||||
'the_content',
|
||||
function ( string $p_str_content ) : string {
|
||||
return $this->footnotes_in_content( $p_str_content );
|
||||
},
|
||||
$l_int_the_content_priority
|
||||
);
|
||||
|
||||
/**
|
||||
* Hook for category pages.
|
||||
|
@ -325,7 +349,13 @@ class Parser {
|
|||
*
|
||||
* @since 2.5.0
|
||||
*/
|
||||
add_filter( 'term_description', array( $this, 'footnotes_in_content' ), $l_int_the_content_priority );
|
||||
add_filter(
|
||||
'term_description',
|
||||
function ( string $p_str_content ) : string {
|
||||
return $this->footnotes_in_content( $p_str_content );
|
||||
},
|
||||
$l_int_the_content_priority
|
||||
);
|
||||
|
||||
/**
|
||||
* Hook for popup maker popups.
|
||||
|
@ -337,10 +367,16 @@ class Parser {
|
|||
*
|
||||
* @since 2.5.1
|
||||
*/
|
||||
add_filter( 'pum_popup_content', array( $this, 'footnotes_in_content' ), $l_int_the_content_priority );
|
||||
add_filter(
|
||||
'pum_popup_content',
|
||||
function ( string $p_str_content ) : string {
|
||||
return $this->footnotes_in_content( $p_str_content );
|
||||
},
|
||||
$l_int_the_content_priority
|
||||
);
|
||||
}
|
||||
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_EXPERT_LOOKUP_THE_EXCERPT ) ) ) {
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_EXPERT_LOOKUP_THE_EXCERPT ) ) ) {
|
||||
/**
|
||||
* Adds a filter to the excerpt hook.
|
||||
*
|
||||
|
@ -349,21 +385,39 @@ class Parser {
|
|||
* @since 2.6.2 The hook @see 'get_the_excerpt' is readded when attempting to debug excerpt handling.
|
||||
* @since 2.6.6 The hook @see 'get_the_excerpt' is removed again because it seems to cause issues in some themes.
|
||||
*/
|
||||
add_filter( 'the_excerpt', array( $this, 'footnotes_in_excerpt' ), $l_int_the_excerpt_priority );
|
||||
add_filter(
|
||||
'the_excerpt',
|
||||
function ( string $p_str_excerpt ) : string {
|
||||
return $this->footnotes_in_excerpt( $p_str_excerpt );
|
||||
},
|
||||
$l_int_the_excerpt_priority
|
||||
);
|
||||
}
|
||||
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_EXPERT_LOOKUP_WIDGET_TITLE ) ) ) {
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_EXPERT_LOOKUP_WIDGET_TITLE ) ) ) {
|
||||
/**
|
||||
* TODO
|
||||
*/
|
||||
add_filter( 'widget_title', array( $this, 'footnotes_in_widget_title' ), $l_int_widget_title_priority );
|
||||
add_filter(
|
||||
'widget_title',
|
||||
function ( string $p_str_content ) : string {
|
||||
return $this->footnotes_in_widget_title( $p_str_content );
|
||||
},
|
||||
$l_int_widget_title_priority
|
||||
);
|
||||
}
|
||||
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_EXPERT_LOOKUP_WIDGET_TEXT ) ) ) {
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_EXPERT_LOOKUP_WIDGET_TEXT ) ) ) {
|
||||
/**
|
||||
* TODO
|
||||
*/
|
||||
add_filter( 'widget_text', array( $this, 'footnotes_in_widget_text' ), $l_int_widget_text_priority );
|
||||
add_filter(
|
||||
'widget_text',
|
||||
function ( string $p_str_content ) : string {
|
||||
return $this->footnotes_in_widget_text( $p_str_content );
|
||||
},
|
||||
$l_int_widget_text_priority
|
||||
);
|
||||
}
|
||||
|
||||
// Reset stored footnotes when displaying the header.
|
||||
|
@ -387,7 +441,7 @@ class Parser {
|
|||
*
|
||||
* Native smooth scrolling only works in recent browsers.
|
||||
*/
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_CSS_SMOOTH_SCROLLING ) ) ) {
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_CSS_SMOOTH_SCROLLING ) ) ) {
|
||||
echo "html {scroll-behavior: smooth;}\r\n";
|
||||
}
|
||||
|
||||
|
@ -397,7 +451,7 @@ class Parser {
|
|||
* Cannot be included in external stylesheet, as it is only optional.
|
||||
* The scope is variable too: referrers only, or all superscript elements.
|
||||
*/
|
||||
$l_str_normalize_superscript = Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTE_REFERRERS_NORMAL_SUPERSCRIPT );
|
||||
$l_str_normalize_superscript = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTE_REFERRERS_NORMAL_SUPERSCRIPT );
|
||||
if ( 'no' !== $l_str_normalize_superscript ) {
|
||||
if ( 'all' === $l_str_normalize_superscript ) {
|
||||
echo 'sup {';
|
||||
|
@ -408,14 +462,14 @@ class Parser {
|
|||
}
|
||||
|
||||
// Reference container display on home page.
|
||||
if ( ! Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_REFERENCE_CONTAINER_START_PAGE_ENABLE ) ) ) {
|
||||
if ( ! Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_START_PAGE_ENABLE ) ) ) {
|
||||
|
||||
echo ".home .footnotes_reference_container { display: none; }\r\n";
|
||||
}
|
||||
|
||||
// Reference container top and bottom margins.
|
||||
$l_int_reference_container_top_margin = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_REFERENCE_CONTAINER_TOP_MARGIN ) );
|
||||
$l_int_reference_container_bottom_margin = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_REFERENCE_CONTAINER_BOTTOM_MARGIN ) );
|
||||
$l_int_reference_container_top_margin = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_REFERENCE_CONTAINER_TOP_MARGIN );
|
||||
$l_int_reference_container_bottom_margin = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_REFERENCE_CONTAINER_BOTTOM_MARGIN );
|
||||
echo '.footnotes_reference_container {margin-top: ';
|
||||
echo empty( $l_int_reference_container_top_margin ) ? '0' : $l_int_reference_container_top_margin;
|
||||
echo 'px !important; margin-bottom: ';
|
||||
|
@ -423,9 +477,9 @@ class Parser {
|
|||
echo "px !important;}\r\n";
|
||||
|
||||
// Reference container label bottom border.
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_REFERENCE_CONTAINER_LABEL_BOTTOM_BORDER ) ) ) {
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_LABEL_BOTTOM_BORDER ) ) ) {
|
||||
echo '.footnote_container_prepare > ';
|
||||
echo Includes\Settings::instance()->get( Includes\Settings::C_STR_REFERENCE_CONTAINER_LABEL_ELEMENT );
|
||||
echo Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_LABEL_ELEMENT );
|
||||
echo " {border-bottom: 1px solid #aaaaaa !important;}\r\n";
|
||||
}
|
||||
|
||||
|
@ -438,7 +492,7 @@ class Parser {
|
|||
* issues as browsers won’t reload these style sheets after settings are
|
||||
* changed while the version string is not.
|
||||
*/
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_REFERENCE_CONTAINER_ROW_BORDERS_ENABLE ) ) ) {
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_ROW_BORDERS_ENABLE ) ) ) {
|
||||
echo '.footnotes_table, .footnotes_plugin_reference_row {';
|
||||
echo 'border: 1px solid #060606;';
|
||||
echo " !important;}\r\n";
|
||||
|
@ -448,23 +502,21 @@ class Parser {
|
|||
}
|
||||
|
||||
// Ref container first column width and max-width.
|
||||
$l_bool_column_width_enabled = Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_BACKLINKS_COLUMN_WIDTH_ENABLED ) );
|
||||
$l_bool_column_max_width_enabled = Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_BACKLINKS_COLUMN_MAX_WIDTH_ENABLED ) );
|
||||
$l_bool_column_width_enabled = Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_BACKLINKS_COLUMN_WIDTH_ENABLED ) );
|
||||
$l_bool_column_max_width_enabled = Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_BACKLINKS_COLUMN_MAX_WIDTH_ENABLED ) );
|
||||
|
||||
if ( $l_bool_column_width_enabled || $l_bool_column_max_width_enabled ) {
|
||||
echo '.footnote-reference-container { table-layout: fixed; }';
|
||||
echo '.footnote_plugin_index, .footnote_plugin_index_combi {';
|
||||
|
||||
if ( $l_bool_column_width_enabled ) {
|
||||
$l_int_column_width_scalar = Includes\Settings::instance()->get( Includes\Settings::C_INT_BACKLINKS_COLUMN_WIDTH_SCALAR );
|
||||
$l_str_column_width_unit = Includes\Settings::instance()->get( Includes\Settings::C_STR_BACKLINKS_COLUMN_WIDTH_UNIT );
|
||||
$l_int_column_width_scalar = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_BACKLINKS_COLUMN_WIDTH_SCALAR );
|
||||
$l_str_column_width_unit = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_BACKLINKS_COLUMN_WIDTH_UNIT );
|
||||
|
||||
if ( ! empty( $l_int_column_width_scalar ) ) {
|
||||
if ( '%' === $l_str_column_width_unit ) {
|
||||
if ( $l_int_column_width_scalar > 100 ) {
|
||||
if ( '%' === $l_str_column_width_unit && $l_int_column_width_scalar > 100 ) {
|
||||
$l_int_column_width_scalar = 100;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$l_int_column_width_scalar = 0;
|
||||
}
|
||||
|
@ -473,15 +525,13 @@ class Parser {
|
|||
}
|
||||
|
||||
if ( $l_bool_column_max_width_enabled ) {
|
||||
$l_int_column_max_width_scalar = Includes\Settings::instance()->get( Includes\Settings::C_INT_BACKLINKS_COLUMN_MAX_WIDTH_SCALAR );
|
||||
$l_str_column_max_width_unit = Includes\Settings::instance()->get( Includes\Settings::C_STR_BACKLINKS_COLUMN_MAX_WIDTH_UNIT );
|
||||
$l_int_column_max_width_scalar = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_BACKLINKS_COLUMN_MAX_WIDTH_SCALAR );
|
||||
$l_str_column_max_width_unit = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_BACKLINKS_COLUMN_MAX_WIDTH_UNIT );
|
||||
|
||||
if ( ! empty( $l_int_column_max_width_scalar ) ) {
|
||||
if ( '%' === $l_str_column_max_width_unit ) {
|
||||
if ( $l_int_column_max_width_scalar > 100 ) {
|
||||
if ( '%' === $l_str_column_max_width_unit && $l_int_column_max_width_scalar > 100 ) {
|
||||
$l_int_column_max_width_scalar = 100;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$l_int_column_max_width_scalar = 0;
|
||||
}
|
||||
|
@ -493,14 +543,14 @@ class Parser {
|
|||
}
|
||||
|
||||
// Hard links scroll offset.
|
||||
self::$a_bool_hard_links_enabled = Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_HARD_LINKS_ENABLE ) );
|
||||
self::$a_bool_hard_links_enabled = Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_HARD_LINKS_ENABLE ) );
|
||||
|
||||
// Correct hard links enabled status depending on AMP-compatible or alternative reference container enabled status.
|
||||
if ( General::$a_bool_amp_enabled || 'jquery' !== General::$a_str_script_mode ) {
|
||||
self::$a_bool_hard_links_enabled = true;
|
||||
}
|
||||
|
||||
self::$a_int_scroll_offset = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_FOOTNOTES_SCROLL_OFFSET ) );
|
||||
self::$a_int_scroll_offset = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_FOOTNOTES_SCROLL_OFFSET );
|
||||
if ( self::$a_bool_hard_links_enabled ) {
|
||||
echo '.footnote_referrer_anchor, .footnote_item_anchor {bottom: ';
|
||||
echo self::$a_int_scroll_offset;
|
||||
|
@ -513,46 +563,46 @@ class Parser {
|
|||
|
||||
// Tooltip appearance: Tooltip font size.
|
||||
echo ' font-size: ';
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_MOUSE_OVER_BOX_FONT_SIZE_ENABLED ) ) ) {
|
||||
echo Includes\Settings::instance()->get( Includes\Settings::C_FLO_MOUSE_OVER_BOX_FONT_SIZE_SCALAR );
|
||||
echo Includes\Settings::instance()->get( Includes\Settings::C_STR_MOUSE_OVER_BOX_FONT_SIZE_UNIT );
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_MOUSE_OVER_BOX_FONT_SIZE_ENABLED ) ) ) {
|
||||
echo Includes\Settings::instance()->get( \footnotes\includes\Settings::C_FLO_MOUSE_OVER_BOX_FONT_SIZE_SCALAR );
|
||||
echo Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_MOUSE_OVER_BOX_FONT_SIZE_UNIT );
|
||||
} else {
|
||||
echo 'inherit';
|
||||
}
|
||||
echo ' !important;';
|
||||
|
||||
// Tooltip Text color.
|
||||
$l_str_color = Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_COLOR );
|
||||
$l_str_color = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_COLOR );
|
||||
if ( ! empty( $l_str_color ) ) {
|
||||
printf( ' color: %s !important;', $l_str_color );
|
||||
}
|
||||
|
||||
// Tooltip Background color.
|
||||
$l_str_background = Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_BACKGROUND );
|
||||
$l_str_background = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_BACKGROUND );
|
||||
if ( ! empty( $l_str_background ) ) {
|
||||
printf( ' background-color: %s !important;', $l_str_background );
|
||||
}
|
||||
|
||||
// Tooltip Border width.
|
||||
$l_int_border_width = Includes\Settings::instance()->get( Includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_BORDER_WIDTH );
|
||||
if ( ! empty( $l_int_border_width ) && intval( $l_int_border_width ) > 0 ) {
|
||||
$l_int_border_width = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_BORDER_WIDTH );
|
||||
if ( ! empty( $l_int_border_width ) && (int) $l_int_border_width > 0 ) {
|
||||
printf( ' border-width: %dpx !important; border-style: solid !important;', $l_int_border_width );
|
||||
}
|
||||
|
||||
// Tooltip Border color.
|
||||
$l_str_border_color = Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_BORDER_COLOR );
|
||||
$l_str_border_color = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_BORDER_COLOR );
|
||||
if ( ! empty( $l_str_border_color ) ) {
|
||||
printf( ' border-color: %s !important;', $l_str_border_color );
|
||||
}
|
||||
|
||||
// Tooltip Corner radius.
|
||||
$l_int_border_radius = Includes\Settings::instance()->get( Includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_BORDER_RADIUS );
|
||||
if ( ! empty( $l_int_border_radius ) && intval( $l_int_border_radius ) > 0 ) {
|
||||
$l_int_border_radius = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_BORDER_RADIUS );
|
||||
if ( ! empty( $l_int_border_radius ) && (int) $l_int_border_radius > 0 ) {
|
||||
printf( ' border-radius: %dpx !important;', $l_int_border_radius );
|
||||
}
|
||||
|
||||
// Tooltip Shadow color.
|
||||
$l_str_box_shadow_color = Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_SHADOW_COLOR );
|
||||
$l_str_box_shadow_color = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_SHADOW_COLOR );
|
||||
if ( ! empty( $l_str_box_shadow_color ) ) {
|
||||
printf( ' -webkit-box-shadow: 2px 2px 11px %s;', $l_str_box_shadow_color );
|
||||
printf( ' -moz-box-shadow: 2px 2px 11px %s;', $l_str_box_shadow_color );
|
||||
|
@ -566,8 +616,8 @@ class Parser {
|
|||
*
|
||||
* Position and timing of jQuery tooltips are script-defined.
|
||||
*/
|
||||
$l_int_max_width = Includes\Settings::instance()->get( Includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_MAX_WIDTH );
|
||||
if ( ! empty( $l_int_max_width ) && intval( $l_int_max_width ) > 0 ) {
|
||||
$l_int_max_width = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_MAX_WIDTH );
|
||||
if ( ! empty( $l_int_max_width ) && (int) $l_int_max_width > 0 ) {
|
||||
printf( ' max-width: %dpx !important;', $l_int_max_width );
|
||||
}
|
||||
echo "}\r\n";
|
||||
|
@ -577,7 +627,7 @@ class Parser {
|
|||
echo "}\r\n";
|
||||
|
||||
// Dimensions.
|
||||
$l_int_alternative_tooltip_width = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_FOOTNOTES_ALTERNATIVE_MOUSE_OVER_BOX_WIDTH ) );
|
||||
$l_int_alternative_tooltip_width = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_FOOTNOTES_ALTERNATIVE_MOUSE_OVER_BOX_WIDTH );
|
||||
echo '.footnote_tooltip.position {';
|
||||
echo ' width: max-content; ';
|
||||
|
||||
|
@ -585,33 +635,33 @@ class Parser {
|
|||
echo ' max-width: ' . $l_int_alternative_tooltip_width . 'px;';
|
||||
|
||||
// Position.
|
||||
$l_str_alternative_position = Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_ALTERNATIVE_MOUSE_OVER_BOX_POSITION );
|
||||
$l_int_offset_x = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_FOOTNOTES_ALTERNATIVE_MOUSE_OVER_BOX_OFFSET_X ) );
|
||||
$l_str_alternative_position = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_ALTERNATIVE_MOUSE_OVER_BOX_POSITION );
|
||||
$l_int_offset_x = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_FOOTNOTES_ALTERNATIVE_MOUSE_OVER_BOX_OFFSET_X );
|
||||
|
||||
if ( 'top left' === $l_str_alternative_position || 'bottom left' === $l_str_alternative_position ) {
|
||||
echo ' right: ' . ( ! empty( $l_int_offset_x ) ? $l_int_offset_x : 0 ) . 'px;';
|
||||
echo ' right: ' . ( empty( $l_int_offset_x ) ? 0 : $l_int_offset_x ) . 'px;';
|
||||
} else {
|
||||
echo ' left: ' . ( ! empty( $l_int_offset_x ) ? $l_int_offset_x : 0 ) . 'px;';
|
||||
echo ' left: ' . ( empty( $l_int_offset_x ) ? 0 : $l_int_offset_x ) . 'px;';
|
||||
}
|
||||
|
||||
$l_int_offset_y = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_FOOTNOTES_ALTERNATIVE_MOUSE_OVER_BOX_OFFSET_Y ) );
|
||||
$l_int_offset_y = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_FOOTNOTES_ALTERNATIVE_MOUSE_OVER_BOX_OFFSET_Y );
|
||||
|
||||
if ( 'top left' === $l_str_alternative_position || 'top right' === $l_str_alternative_position ) {
|
||||
echo ' bottom: ' . ( ! empty( $l_int_offset_y ) ? $l_int_offset_y : 0 ) . 'px;';
|
||||
echo ' bottom: ' . ( empty( $l_int_offset_y ) ? 0 : $l_int_offset_y ) . 'px;';
|
||||
} else {
|
||||
echo ' top: ' . ( ! empty( $l_int_offset_y ) ? $l_int_offset_y : 0 ) . 'px;';
|
||||
echo ' top: ' . ( empty( $l_int_offset_y ) ? 0 : $l_int_offset_y ) . 'px;';
|
||||
}
|
||||
echo "}\r\n";
|
||||
|
||||
// Timing.
|
||||
$l_int_fade_in_delay = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_IN_DELAY ) );
|
||||
$l_int_fade_in_delay = ! empty( $l_int_fade_in_delay ) ? $l_int_fade_in_delay : '0';
|
||||
$l_int_fade_in_duration = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_IN_DURATION ) );
|
||||
$l_int_fade_in_duration = ! empty( $l_int_fade_in_duration ) ? $l_int_fade_in_duration : '0';
|
||||
$l_int_fade_out_delay = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_OUT_DELAY ) );
|
||||
$l_int_fade_out_delay = ! empty( $l_int_fade_out_delay ) ? $l_int_fade_out_delay : '0';
|
||||
$l_int_fade_out_duration = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_OUT_DURATION ) );
|
||||
$l_int_fade_out_duration = ! empty( $l_int_fade_out_duration ) ? $l_int_fade_out_duration : '0';
|
||||
$l_int_fade_in_delay = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_IN_DELAY );
|
||||
$l_int_fade_in_delay = empty( $l_int_fade_in_delay ) ? '0' : $l_int_fade_in_delay;
|
||||
$l_int_fade_in_duration = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_IN_DURATION );
|
||||
$l_int_fade_in_duration = empty( $l_int_fade_in_duration ) ? '0' : $l_int_fade_in_duration;
|
||||
$l_int_fade_out_delay = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_OUT_DELAY );
|
||||
$l_int_fade_out_delay = empty( $l_int_fade_out_delay ) ? '0' : $l_int_fade_out_delay;
|
||||
$l_int_fade_out_duration = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_OUT_DURATION );
|
||||
$l_int_fade_out_duration = empty( $l_int_fade_out_duration ) ? '0' : $l_int_fade_out_duration;
|
||||
|
||||
/*
|
||||
* AMP-compatible tooltips.
|
||||
|
@ -656,11 +706,11 @@ class Parser {
|
|||
* Set custom CSS to override settings, not conversely.
|
||||
* Legacy Custom CSS is used until it’s set to disappear after dashboard tab migration.
|
||||
*/
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_CUSTOM_CSS_LEGACY_ENABLE ) ) ) {
|
||||
echo Includes\Settings::instance()->get( Includes\Settings::C_STR_CUSTOM_CSS );
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_CUSTOM_CSS_LEGACY_ENABLE ) ) ) {
|
||||
echo Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_CUSTOM_CSS );
|
||||
echo "\r\n";
|
||||
}
|
||||
echo Includes\Settings::instance()->get( Includes\Settings::C_STR_CUSTOM_CSS_NEW );
|
||||
echo Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_CUSTOM_CSS_NEW );
|
||||
|
||||
// Insert end tag without switching out of PHP.
|
||||
echo "\r\n</style>\r\n";
|
||||
|
@ -697,17 +747,17 @@ class Parser {
|
|||
* @since 1.5.0
|
||||
*/
|
||||
public function footnotes_output_footer() {
|
||||
if ( 'footer' === Includes\Settings::instance()->get( Includes\Settings::C_STR_REFERENCE_CONTAINER_POSITION ) ) {
|
||||
if ( 'footer' === Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_POSITION ) ) {
|
||||
echo $this->reference_container();
|
||||
}
|
||||
// Get setting for love and share this plugin.
|
||||
$l_str_love_me_index = Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_LOVE );
|
||||
$l_str_love_me_index = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_LOVE );
|
||||
// Check if the admin allows to add a link to the footer.
|
||||
if ( empty( $l_str_love_me_index ) || 'no' === strtolower( $l_str_love_me_index ) || ! self::$a_bool_allow_love_me ) {
|
||||
return;
|
||||
}
|
||||
// Set a hyperlink to the word "footnotes" in the Love slug.
|
||||
$l_str_linked_name = sprintf( '<a href="https://wordpress.org/plugins/footnotes/" target="_blank" style="text-decoration:none;">%s</a>', Includes\Config::C_STR_PLUGIN_PUBLIC_NAME );
|
||||
$l_str_linked_name = sprintf( '<a href="https://wordpress.org/plugins/footnotes/" target="_blank" style="text-decoration:none;">%s</a>', \footnotes\includes\Config::C_STR_PLUGIN_PUBLIC_NAME );
|
||||
// Get random love me text.
|
||||
if ( 'random' === strtolower( $l_str_love_me_index ) ) {
|
||||
$l_str_love_me_index = 'text-' . wp_rand( 1, 7 );
|
||||
|
@ -716,7 +766,7 @@ class Parser {
|
|||
// Options named wrt backcompat, simplest is default.
|
||||
case 'text-1':
|
||||
/* Translators: 2: Link to plugin page 1: Love heart symbol */
|
||||
$l_str_love_me_text = sprintf( __( 'I %2$s %1$s', 'footnotes' ), $l_str_linked_name, Includes\Config::C_STR_LOVE_SYMBOL );
|
||||
$l_str_love_me_text = sprintf( __( 'I %2$s %1$s', 'footnotes' ), $l_str_linked_name, \footnotes\includes\Config::C_STR_LOVE_SYMBOL );
|
||||
break;
|
||||
case 'text-2':
|
||||
/* Translators: %s: Link to plugin page */
|
||||
|
@ -724,11 +774,11 @@ class Parser {
|
|||
break;
|
||||
case 'text-4':
|
||||
/* Translators: 1: Link to plugin page 2: Love heart symbol */
|
||||
$l_str_love_me_text = sprintf( '%1$s %2$s', $l_str_linked_name, Includes\Config::C_STR_LOVE_SYMBOL );
|
||||
$l_str_love_me_text = sprintf( '%1$s %2$s', $l_str_linked_name, \footnotes\includes\Config::C_STR_LOVE_SYMBOL );
|
||||
break;
|
||||
case 'text-5':
|
||||
/* Translators: 1: Love heart symbol 2: Link to plugin page */
|
||||
$l_str_love_me_text = sprintf( '%1$s %2$s', Includes\Config::C_STR_LOVE_SYMBOL, $l_str_linked_name );
|
||||
$l_str_love_me_text = sprintf( '%1$s %2$s', \footnotes\includes\Config::C_STR_LOVE_SYMBOL, $l_str_linked_name );
|
||||
break;
|
||||
case 'text-6':
|
||||
/* Translators: %s: Link to plugin page */
|
||||
|
@ -741,7 +791,7 @@ class Parser {
|
|||
case 'text-3':
|
||||
default:
|
||||
/* Translators: %s: Link to plugin page */
|
||||
$l_str_love_me_text = sprintf( '%s', $l_str_linked_name );
|
||||
$l_str_love_me_text = $l_str_linked_name;
|
||||
break;
|
||||
}
|
||||
echo sprintf( '<div style="text-align:center; color:#acacac;">%s</div>', $l_str_love_me_text );
|
||||
|
@ -770,8 +820,8 @@ class Parser {
|
|||
*/
|
||||
public function footnotes_in_content( $p_str_content ) {
|
||||
|
||||
$l_str_ref_container_position = Includes\Settings::instance()->get( Includes\Settings::C_STR_REFERENCE_CONTAINER_POSITION );
|
||||
$l_str_footnote_section_shortcode = Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTE_SECTION_SHORTCODE );
|
||||
$l_str_ref_container_position = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_POSITION );
|
||||
$l_str_footnote_section_shortcode = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTE_SECTION_SHORTCODE );
|
||||
$l_int_footnote_section_shortcode_length = strlen( $l_str_footnote_section_shortcode );
|
||||
|
||||
if ( strpos( $p_str_content, $l_str_footnote_section_shortcode ) === false ) {
|
||||
|
@ -815,7 +865,7 @@ class Parser {
|
|||
* @return string $p_str_excerpt Processed or new excerpt.
|
||||
*/
|
||||
public function footnotes_in_excerpt( $p_str_excerpt ) {
|
||||
$l_str_excerpt_mode = Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_IN_EXCERPT );
|
||||
$l_str_excerpt_mode = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_IN_EXCERPT );
|
||||
|
||||
if ( 'yes' === $l_str_excerpt_mode ) {
|
||||
return $this->generate_excerpt_with_footnotes( $p_str_excerpt );
|
||||
|
@ -1003,7 +1053,7 @@ class Parser {
|
|||
public function footnotes_in_widget_text( $p_str_content ) {
|
||||
// phpcs:disable WordPress.PHP.YodaConditions.NotYoda
|
||||
// Appends the reference container if set to "post_end".
|
||||
return $this->exec( $p_str_content, 'post_end' === Includes\Settings::instance()->get( Includes\Settings::C_STR_REFERENCE_CONTAINER_POSITION ) ? true : false );
|
||||
return $this->exec( $p_str_content, 'post_end' === Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_POSITION ) );
|
||||
// phpcs:enable WordPress.PHP.YodaConditions.NotYoda
|
||||
}
|
||||
|
||||
|
@ -1027,7 +1077,7 @@ class Parser {
|
|||
*/
|
||||
|
||||
// Append the reference container or insert at shortcode.
|
||||
$l_str_reference_container_position_shortcode = Includes\Settings::instance()->get( Includes\Settings::C_STR_REFERENCE_CONTAINER_POSITION_SHORTCODE );
|
||||
$l_str_reference_container_position_shortcode = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_POSITION_SHORTCODE );
|
||||
if ( empty( $l_str_reference_container_position_shortcode ) ) {
|
||||
$l_str_reference_container_position_shortcode = '[[references]]';
|
||||
}
|
||||
|
@ -1052,9 +1102,9 @@ class Parser {
|
|||
$p_str_content = str_replace( $l_str_reference_container_position_shortcode, '', $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.
|
||||
if ( strpos( $p_str_content, Includes\Config::C_STR_NO_LOVE_SLUG ) ) {
|
||||
if ( strpos( $p_str_content, \footnotes\includes\Config::C_STR_NO_LOVE_SLUG ) ) {
|
||||
self::$a_bool_allow_love_me = false;
|
||||
$p_str_content = str_replace( Includes\Config::C_STR_NO_LOVE_SLUG, '', $p_str_content );
|
||||
$p_str_content = str_replace( \footnotes\includes\Config::C_STR_NO_LOVE_SLUG, '', $p_str_content );
|
||||
}
|
||||
// Return the content with replaced footnotes and optional reference container appended.
|
||||
return $p_str_content;
|
||||
|
@ -1075,11 +1125,11 @@ class Parser {
|
|||
public function unify_delimiters( $p_str_content ) {
|
||||
|
||||
// Get footnotes start and end tag short codes.
|
||||
$l_str_starting_tag = Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START );
|
||||
$l_str_ending_tag = Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END );
|
||||
$l_str_starting_tag = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START );
|
||||
$l_str_ending_tag = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END );
|
||||
if ( 'userdefined' === $l_str_starting_tag || 'userdefined' === $l_str_ending_tag ) {
|
||||
$l_str_starting_tag = Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START_USER_DEFINED );
|
||||
$l_str_ending_tag = Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END_USER_DEFINED );
|
||||
$l_str_starting_tag = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_START_USER_DEFINED );
|
||||
$l_str_ending_tag = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_SHORT_CODE_END_USER_DEFINED );
|
||||
}
|
||||
|
||||
// If any footnotes short code is empty, return the content without changes.
|
||||
|
@ -1152,7 +1202,7 @@ class Parser {
|
|||
*/
|
||||
|
||||
// If enabled.
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTE_SHORTCODE_SYNTAX_VALIDATION_ENABLE ) ) ) {
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTE_SHORTCODE_SYNTAX_VALIDATION_ENABLE ) ) ) {
|
||||
|
||||
// Apply different regex depending on whether start shortcode is double/triple opening parenthesis.
|
||||
if ( '((' === self::$a_str_start_tag || '(((' === self::$a_str_start_tag ) {
|
||||
|
@ -1221,7 +1271,7 @@ class Parser {
|
|||
} while ( preg_match( $l_str_value_regex, $p_str_content ) );
|
||||
|
||||
// Optionally moves footnotes outside at the end of the label element.
|
||||
$l_str_label_issue_solution = Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_LABEL_ISSUE_SOLUTION );
|
||||
$l_str_label_issue_solution = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_LABEL_ISSUE_SOLUTION );
|
||||
|
||||
if ( 'move' === $l_str_label_issue_solution ) {
|
||||
|
||||
|
@ -1292,29 +1342,29 @@ class Parser {
|
|||
if ( General::$a_bool_amp_enabled ) {
|
||||
|
||||
// Whether first clicking a referrer needs to expand the reference container.
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_REFERENCE_CONTAINER_COLLAPSE ) ) ) {
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_COLLAPSE ) ) ) {
|
||||
|
||||
// Load 'public/partials/amp-footnote-expand.html'.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_PUBLIC, 'amp-footnote-expand' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_PUBLIC, 'amp-footnote-expand' );
|
||||
|
||||
} else {
|
||||
|
||||
// Load 'public/partials/amp-footnote.html'.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_PUBLIC, 'amp-footnote' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_PUBLIC, 'amp-footnote' );
|
||||
}
|
||||
} elseif ( General::$a_bool_alternative_tooltips_enabled ) {
|
||||
|
||||
// Load 'public/partials/footnote-alternative.html'.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_PUBLIC, 'footnote-alternative' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_PUBLIC, 'footnote-alternative' );
|
||||
|
||||
// Else jQuery tooltips are enabled.
|
||||
} else {
|
||||
|
||||
// Load 'public/partials/footnote.html'.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_PUBLIC, 'footnote' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_PUBLIC, 'footnote' );
|
||||
|
||||
// Load tooltip inline script.
|
||||
$l_obj_template_tooltip = new Includes\Template( Includes\Template::C_STR_PUBLIC, 'tooltip' );
|
||||
$l_obj_template_tooltip = new Includes\Template( \footnotes\includes\Template::C_STR_PUBLIC, 'tooltip' );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1343,15 +1393,11 @@ class Parser {
|
|||
$l_str_footnote_text = substr( $p_str_content, $l_int_pos_start + strlen( self::$a_str_start_tag ), $l_int_length - strlen( self::$a_str_start_tag ) );
|
||||
|
||||
// Get tooltip text if present.
|
||||
self::$a_str_tooltip_shortcode = Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_TOOLTIP_EXCERPT_DELIMITER );
|
||||
self::$a_str_tooltip_shortcode = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_TOOLTIP_EXCERPT_DELIMITER );
|
||||
self::$a_int_tooltip_shortcode_length = strlen( self::$a_str_tooltip_shortcode );
|
||||
$l_int_tooltip_text_length = strpos( $l_str_footnote_text, self::$a_str_tooltip_shortcode );
|
||||
$l_bool_has_tooltip_text = ! $l_int_tooltip_text_length ? false : true;
|
||||
if ( $l_bool_has_tooltip_text ) {
|
||||
$l_str_tooltip_text = substr( $l_str_footnote_text, 0, $l_int_tooltip_text_length );
|
||||
} else {
|
||||
$l_str_tooltip_text = '';
|
||||
}
|
||||
$l_bool_has_tooltip_text = (bool) $l_int_tooltip_text_length;
|
||||
$l_str_tooltip_text = $l_bool_has_tooltip_text ? substr( $l_str_footnote_text, 0, $l_int_tooltip_text_length ) : '';
|
||||
|
||||
/*
|
||||
* URL line wrapping for Unicode non conformant browsers.
|
||||
|
@ -1371,7 +1417,7 @@ class Parser {
|
|||
*
|
||||
* TODO: Split into own method.
|
||||
*/
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTE_URL_WRAP_ENABLED ) ) ) {
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTE_URL_WRAP_ENABLED ) ) ) {
|
||||
|
||||
$l_str_footnote_text = preg_replace(
|
||||
'#(?<![-\w\.!~\*\'\(\);]=[\'"])(?<![-\w\.!~\*\'\(\);]=[\'"] )(?<![-\w\.!~\*\'\(\);]=[\'"] )(?<![-\w\.!~\*\'\(\);]=)(?<!/)((ht|f)tps?://[^\\s<]+)#',
|
||||
|
@ -1387,9 +1433,9 @@ class Parser {
|
|||
if ( self::$a_bool_hard_links_enabled ) {
|
||||
|
||||
// Get the configurable parts.
|
||||
self::$a_str_referrer_link_slug = Includes\Settings::instance()->get( Includes\Settings::C_STR_REFERRER_FRAGMENT_ID_SLUG );
|
||||
self::$a_str_footnote_link_slug = Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTE_FRAGMENT_ID_SLUG );
|
||||
self::$a_str_link_ids_separator = Includes\Settings::instance()->get( Includes\Settings::C_STR_HARD_LINK_IDS_SEPARATOR );
|
||||
self::$a_str_referrer_link_slug = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_REFERRER_FRAGMENT_ID_SLUG );
|
||||
self::$a_str_footnote_link_slug = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTE_FRAGMENT_ID_SLUG );
|
||||
self::$a_str_link_ids_separator = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_HARD_LINK_IDS_SEPARATOR );
|
||||
|
||||
// Streamline ID concatenation.
|
||||
self::$a_str_post_container_id_compound = self::$a_str_link_ids_separator;
|
||||
|
@ -1402,11 +1448,11 @@ class Parser {
|
|||
|
||||
// Display the footnote referrers and the tooltips.
|
||||
if ( ! $p_bool_hide_footnotes_text ) {
|
||||
$l_int_index = Includes\Convert::index( $l_int_footnote_index, Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_COUNTER_STYLE ) );
|
||||
$l_int_index = Includes\Convert::index( $l_int_footnote_index, Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_COUNTER_STYLE ) );
|
||||
|
||||
// Display only a truncated footnote text if option enabled.
|
||||
$l_bool_enable_excerpt = Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_EXCERPT_ENABLED ) );
|
||||
$l_int_max_length = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_EXCERPT_LENGTH ) );
|
||||
$l_bool_enable_excerpt = Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_EXCERPT_ENABLED ) );
|
||||
$l_int_max_length = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_EXCERPT_LENGTH );
|
||||
|
||||
// Define excerpt text as footnote text by default.
|
||||
$l_str_excerpt_text = $l_str_footnote_text;
|
||||
|
@ -1432,7 +1478,7 @@ class Parser {
|
|||
if ( General::$a_bool_amp_enabled ) {
|
||||
|
||||
// If the reference container is also collapsed by default.
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_REFERENCE_CONTAINER_COLLAPSE ) ) ) {
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_COLLAPSE ) ) ) {
|
||||
|
||||
$l_str_excerpt_text .= ' on="tap:footnote_references_container_';
|
||||
$l_str_excerpt_text .= self::$a_int_post_id . '_' . self::$a_int_reference_container_id;
|
||||
|
@ -1466,7 +1512,7 @@ class Parser {
|
|||
$l_str_excerpt_text .= '>';
|
||||
|
||||
// Configurable read-on button label.
|
||||
$l_str_excerpt_text .= Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_TOOLTIP_READON_LABEL );
|
||||
$l_str_excerpt_text .= Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_TOOLTIP_READON_LABEL );
|
||||
|
||||
$l_str_excerpt_text .= self::$a_bool_hard_links_enabled ? '</a>' : '</span>';
|
||||
}
|
||||
|
@ -1477,7 +1523,7 @@ class Parser {
|
|||
*
|
||||
* Define the HTML element to use for the referrers.
|
||||
*/
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_REFERRER_SUPERSCRIPT_TAGS ) ) ) {
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_REFERRER_SUPERSCRIPT_TAGS ) ) ) {
|
||||
|
||||
$l_str_sup_span = 'sup';
|
||||
|
||||
|
@ -1520,7 +1566,7 @@ class Parser {
|
|||
$l_str_referrer_anchor_element = '';
|
||||
|
||||
// The link element is set independently as it may be needed for styling.
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_LINK_ELEMENT_ENABLED ) ) ) {
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_LINK_ELEMENT_ENABLED ) ) ) {
|
||||
|
||||
self::$a_str_link_span = 'a';
|
||||
self::$a_str_link_open_tag = '<a>';
|
||||
|
@ -1564,9 +1610,9 @@ class Parser {
|
|||
'note_id' => $l_int_index,
|
||||
'hard-link' => $l_str_footnote_link_argument,
|
||||
'sup-span' => $l_str_sup_span,
|
||||
'before' => Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_STYLING_BEFORE ),
|
||||
'before' => Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_STYLING_BEFORE ),
|
||||
'index' => $l_int_index,
|
||||
'after' => Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_STYLING_AFTER ),
|
||||
'after' => Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_STYLING_AFTER ),
|
||||
'anchor-element' => $l_str_referrer_anchor_element,
|
||||
'style' => $l_str_tooltip_style,
|
||||
'text' => $l_str_tooltip_content,
|
||||
|
@ -1580,12 +1626,12 @@ class Parser {
|
|||
// If tooltips are enabled but neither AMP nor alternative are.
|
||||
if ( General::$a_bool_tooltips_enabled && ! General::$a_bool_amp_enabled && ! General::$a_bool_alternative_tooltips_enabled ) {
|
||||
|
||||
$l_int_offset_y = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_OFFSET_Y ) );
|
||||
$l_int_offset_x = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_OFFSET_X ) );
|
||||
$l_int_fade_in_delay = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_IN_DELAY ) );
|
||||
$l_int_fade_in_duration = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_IN_DURATION ) );
|
||||
$l_int_fade_out_delay = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_OUT_DELAY ) );
|
||||
$l_int_fade_out_duration = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_OUT_DURATION ) );
|
||||
$l_int_offset_y = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_OFFSET_Y );
|
||||
$l_int_offset_x = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_OFFSET_X );
|
||||
$l_int_fade_in_delay = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_IN_DELAY );
|
||||
$l_int_fade_in_duration = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_IN_DURATION );
|
||||
$l_int_fade_out_delay = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_OUT_DELAY );
|
||||
$l_int_fade_out_duration = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_MOUSE_OVER_BOX_FADE_OUT_DURATION );
|
||||
|
||||
// Fill in 'public/partials/tooltip.html'.
|
||||
$l_obj_template_tooltip->replace(
|
||||
|
@ -1593,13 +1639,13 @@ class Parser {
|
|||
'post_id' => self::$a_int_post_id,
|
||||
'container_id' => self::$a_int_reference_container_id,
|
||||
'note_id' => $l_int_index,
|
||||
'position' => Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_POSITION ),
|
||||
'offset-y' => ! empty( $l_int_offset_y ) ? $l_int_offset_y : 0,
|
||||
'offset-x' => ! empty( $l_int_offset_x ) ? $l_int_offset_x : 0,
|
||||
'fade-in-delay' => ! empty( $l_int_fade_in_delay ) ? $l_int_fade_in_delay : 0,
|
||||
'fade-in-duration' => ! empty( $l_int_fade_in_duration ) ? $l_int_fade_in_duration : 0,
|
||||
'fade-out-delay' => ! empty( $l_int_fade_out_delay ) ? $l_int_fade_out_delay : 0,
|
||||
'fade-out-duration' => ! empty( $l_int_fade_out_duration ) ? $l_int_fade_out_duration : 0,
|
||||
'position' => Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_MOUSE_OVER_BOX_POSITION ),
|
||||
'offset-y' => empty( $l_int_offset_y ) ? 0 : $l_int_offset_y,
|
||||
'offset-x' => empty( $l_int_offset_x ) ? 0 : $l_int_offset_x,
|
||||
'fade-in-delay' => empty( $l_int_fade_in_delay ) ? 0 : $l_int_fade_in_delay,
|
||||
'fade-in-duration' => empty( $l_int_fade_in_duration ) ? 0 : $l_int_fade_in_duration,
|
||||
'fade-out-delay' => empty( $l_int_fade_out_delay ) ? 0 : $l_int_fade_out_delay,
|
||||
'fade-out-duration' => empty( $l_int_fade_out_duration ) ? 0 : $l_int_fade_out_duration,
|
||||
)
|
||||
);
|
||||
$l_str_footnote_replace_text .= $l_obj_template_tooltip->get_content();
|
||||
|
@ -1667,16 +1713,16 @@ class Parser {
|
|||
*/
|
||||
|
||||
// If the backlink symbol is enabled.
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_REFERENCE_CONTAINER_BACKLINK_SYMBOL_ENABLE ) ) ) {
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_BACKLINK_SYMBOL_ENABLE ) ) ) {
|
||||
|
||||
// Get html arrow.
|
||||
$l_str_arrow = Includes\Convert::get_arrow( Includes\Settings::instance()->get( Includes\Settings::C_STR_HYPERLINK_ARROW ) );
|
||||
$l_str_arrow = Includes\Convert::get_arrow( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_HYPERLINK_ARROW ) );
|
||||
// Set html arrow to the first one if invalid index defined.
|
||||
if ( is_array( $l_str_arrow ) ) {
|
||||
$l_str_arrow = Includes\Convert::get_arrow( 0 );
|
||||
}
|
||||
// Get user defined arrow.
|
||||
$l_str_arrow_user_defined = Includes\Settings::instance()->get( Includes\Settings::C_STR_HYPERLINK_ARROW_USER_DEFINED );
|
||||
$l_str_arrow_user_defined = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_HYPERLINK_ARROW_USER_DEFINED );
|
||||
if ( ! empty( $l_str_arrow_user_defined ) ) {
|
||||
$l_str_arrow = $l_str_arrow_user_defined;
|
||||
}
|
||||
|
@ -1699,15 +1745,15 @@ class Parser {
|
|||
* Initially an appended comma was hard-coded in this algorithm for enumerations.
|
||||
* The comma in enumerations is not universally preferred.
|
||||
*/
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_BACKLINKS_SEPARATOR_ENABLED ) ) ) {
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_BACKLINKS_SEPARATOR_ENABLED ) ) ) {
|
||||
|
||||
// Check if it is input-configured.
|
||||
$l_str_separator = Includes\Settings::instance()->get( Includes\Settings::C_STR_BACKLINKS_SEPARATOR_CUSTOM );
|
||||
$l_str_separator = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_BACKLINKS_SEPARATOR_CUSTOM );
|
||||
|
||||
if ( empty( $l_str_separator ) ) {
|
||||
|
||||
// If it is not, check which option is on.
|
||||
$l_str_separator_option = Includes\Settings::instance()->get( Includes\Settings::C_STR_BACKLINKS_SEPARATOR_OPTION );
|
||||
$l_str_separator_option = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_BACKLINKS_SEPARATOR_OPTION );
|
||||
switch ( $l_str_separator_option ) {
|
||||
case 'comma':
|
||||
$l_str_separator = ',';
|
||||
|
@ -1730,15 +1776,15 @@ class Parser {
|
|||
*
|
||||
* Initially a dot was appended in the table row template.
|
||||
*/
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_BACKLINKS_TERMINATOR_ENABLED ) ) ) {
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_BACKLINKS_TERMINATOR_ENABLED ) ) ) {
|
||||
|
||||
// Check if it is input-configured.
|
||||
$l_str_terminator = Includes\Settings::instance()->get( Includes\Settings::C_STR_BACKLINKS_TERMINATOR_CUSTOM );
|
||||
$l_str_terminator = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_BACKLINKS_TERMINATOR_CUSTOM );
|
||||
|
||||
if ( empty( $l_str_terminator ) ) {
|
||||
|
||||
// If it is not, check which option is on.
|
||||
$l_str_terminator_option = Includes\Settings::instance()->get( Includes\Settings::C_STR_BACKLINKS_TERMINATOR_OPTION );
|
||||
$l_str_terminator_option = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_BACKLINKS_TERMINATOR_OPTION );
|
||||
switch ( $l_str_terminator_option ) {
|
||||
case 'period':
|
||||
$l_str_terminator = '.';
|
||||
|
@ -1764,7 +1810,7 @@ class Parser {
|
|||
* Variable number length and proportional character width require explicit line breaks.
|
||||
* Otherwise, an ordinary space character offering a line break opportunity is inserted.
|
||||
*/
|
||||
$l_str_line_break = Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_BACKLINKS_LINE_BREAKS_ENABLED ) ) ? '<br />' : ' ';
|
||||
$l_str_line_break = Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_BACKLINKS_LINE_BREAKS_ENABLED ) ) ? '<br />' : ' ';
|
||||
|
||||
/*
|
||||
* Line breaks for source readability.
|
||||
|
@ -1778,71 +1824,42 @@ class Parser {
|
|||
/*
|
||||
* Reference container table row template load.
|
||||
*/
|
||||
$l_bool_combine_identical_footnotes = Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_COMBINE_IDENTICAL_FOOTNOTES ) );
|
||||
$l_bool_combine_identical_footnotes = Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_COMBINE_IDENTICAL_FOOTNOTES ) );
|
||||
|
||||
// AMP compatibility requires a full set of AMP compatible table row templates.
|
||||
if ( General::$a_bool_amp_enabled ) {
|
||||
|
||||
// When combining identical footnotes is turned on, another template is needed.
|
||||
if ( $l_bool_combine_identical_footnotes ) {
|
||||
|
||||
// The combining template allows for backlink clusters and supports cell clicking for single notes.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_PUBLIC, 'amp-reference-container-body-combi' );
|
||||
|
||||
} else {
|
||||
|
||||
// When 3-column layout is turned on (only available if combining is turned off).
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_REFERENCE_CONTAINER_3COLUMN_LAYOUT_ENABLE ) ) ) {
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_PUBLIC, 'amp-reference-container-body-3column' );
|
||||
|
||||
} else {
|
||||
|
||||
// When switch symbol and index is turned on, and combining and 3-columns are off.
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_REFERENCE_CONTAINER_BACKLINK_SYMBOL_SWITCH ) ) ) {
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_PUBLIC, 'amp-reference-container-body-switch' );
|
||||
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_PUBLIC, 'amp-reference-container-body-combi' );
|
||||
} elseif ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_3COLUMN_LAYOUT_ENABLE ) ) ) {
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_PUBLIC, 'amp-reference-container-body-3column' );
|
||||
} elseif ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_BACKLINK_SYMBOL_SWITCH ) ) ) {
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_PUBLIC, 'amp-reference-container-body-switch' );
|
||||
} else {
|
||||
|
||||
// Default is the standard template.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_PUBLIC, 'amp-reference-container-body' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_PUBLIC, 'amp-reference-container-body' );
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
// When combining identical footnotes is turned on, another template is needed.
|
||||
if ( $l_bool_combine_identical_footnotes ) {
|
||||
|
||||
} elseif ( $l_bool_combine_identical_footnotes ) {
|
||||
// The combining template allows for backlink clusters and supports cell clicking for single notes.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_PUBLIC, 'reference-container-body-combi' );
|
||||
|
||||
} else {
|
||||
|
||||
// When 3-column layout is turned on (only available if combining is turned off).
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_REFERENCE_CONTAINER_3COLUMN_LAYOUT_ENABLE ) ) ) {
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_PUBLIC, 'reference-container-body-3column' );
|
||||
|
||||
} else {
|
||||
|
||||
// When switch symbol and index is turned on, and combining and 3-columns are off.
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_REFERENCE_CONTAINER_BACKLINK_SYMBOL_SWITCH ) ) ) {
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_PUBLIC, 'reference-container-body-switch' );
|
||||
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_PUBLIC, 'reference-container-body-combi' );
|
||||
} elseif ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_3COLUMN_LAYOUT_ENABLE ) ) ) {
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_PUBLIC, 'reference-container-body-3column' );
|
||||
} elseif ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_BACKLINK_SYMBOL_SWITCH ) ) ) {
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_PUBLIC, 'reference-container-body-switch' );
|
||||
} else {
|
||||
|
||||
// Default is the standard template.
|
||||
$l_obj_template = new Includes\Template( Includes\Template::C_STR_PUBLIC, 'reference-container-body' );
|
||||
$l_obj_template = new Includes\Template( \footnotes\includes\Template::C_STR_PUBLIC, 'reference-container-body' );
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Switch backlink symbol and footnote number.
|
||||
*/
|
||||
$l_bool_symbol_switch = Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_REFERENCE_CONTAINER_BACKLINK_SYMBOL_SWITCH ) );
|
||||
$l_bool_symbol_switch = Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_BACKLINK_SYMBOL_SWITCH ) );
|
||||
|
||||
// Loop through all footnotes found in the page.
|
||||
$num_footnotes = count( self::$a_arr_footnotes );
|
||||
|
@ -1862,7 +1879,7 @@ class Parser {
|
|||
|
||||
// Get the footnote index string and.
|
||||
// Keep supporting legacy index placeholder.
|
||||
$l_str_footnote_id = Includes\Convert::index( ( $l_int_index + 1 ), Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_COUNTER_STYLE ) );
|
||||
$l_str_footnote_id = Includes\Convert::index( ( $l_int_index + 1 ), Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_COUNTER_STYLE ) );
|
||||
|
||||
/**
|
||||
* Case of only one backlink per table row.
|
||||
|
@ -1882,9 +1899,9 @@ class Parser {
|
|||
*
|
||||
* @since 2.5.4
|
||||
*/
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_BACKLINK_TOOLTIP_ENABLE ) ) ) {
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_BACKLINK_TOOLTIP_ENABLE ) ) ) {
|
||||
$l_str_use_backbutton_hint = ' title="';
|
||||
$l_str_use_backbutton_hint .= Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_BACKLINK_TOOLTIP_TEXT );
|
||||
$l_str_use_backbutton_hint .= Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_BACKLINK_TOOLTIP_TEXT );
|
||||
$l_str_use_backbutton_hint .= '"';
|
||||
} else {
|
||||
$l_str_use_backbutton_hint = '';
|
||||
|
@ -2007,7 +2024,7 @@ class Parser {
|
|||
$l_bool_flag_combined = true;
|
||||
|
||||
// Update the footnote ID.
|
||||
$l_str_footnote_id = Includes\Convert::index( ( $l_int_check_index + 1 ), Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_COUNTER_STYLE ) );
|
||||
$l_str_footnote_id = Includes\Convert::index( ( $l_int_check_index + 1 ), Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_COUNTER_STYLE ) );
|
||||
|
||||
// Resume composing the backlinks enumeration.
|
||||
$l_str_footnote_backlinks .= "$l_str_separator</";
|
||||
|
@ -2067,13 +2084,13 @@ class Parser {
|
|||
|
||||
// Get reference container item text if tooltip text goes separate.
|
||||
$l_int_tooltip_text_length = strpos( $l_str_footnote_text, self::$a_str_tooltip_shortcode );
|
||||
$l_bool_has_tooltip_text = ! $l_int_tooltip_text_length ? false : true;
|
||||
$l_bool_has_tooltip_text = (bool) $l_int_tooltip_text_length;
|
||||
if ( $l_bool_has_tooltip_text ) {
|
||||
$l_str_not_tooltip_text = substr( $l_str_footnote_text, ( $l_int_tooltip_text_length + self::$a_int_tooltip_shortcode_length ) );
|
||||
self::$a_bool_mirror_tooltip_text = Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_TOOLTIP_EXCERPT_MIRROR_ENABLE ) );
|
||||
self::$a_bool_mirror_tooltip_text = Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_TOOLTIP_EXCERPT_MIRROR_ENABLE ) );
|
||||
if ( self::$a_bool_mirror_tooltip_text ) {
|
||||
$l_str_tooltip_text = substr( $l_str_footnote_text, 0, $l_int_tooltip_text_length );
|
||||
$l_str_reference_text_introducer = Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_TOOLTIP_EXCERPT_MIRROR_SEPARATOR );
|
||||
$l_str_reference_text_introducer = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_TOOLTIP_EXCERPT_MIRROR_SEPARATOR );
|
||||
$l_str_reference_text = $l_str_tooltip_text . $l_str_reference_text_introducer . $l_str_not_tooltip_text;
|
||||
} else {
|
||||
$l_str_reference_text = $l_str_not_tooltip_text;
|
||||
|
@ -2092,7 +2109,7 @@ class Parser {
|
|||
// Used in standard layout W/O COMBINED FOOTNOTES.
|
||||
'post_id' => self::$a_int_post_id,
|
||||
'container_id' => self::$a_int_reference_container_id,
|
||||
'note_id' => Includes\Convert::index( $l_int_first_footnote_index, Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_COUNTER_STYLE ) ),
|
||||
'note_id' => Includes\Convert::index( $l_int_first_footnote_index, Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_COUNTER_STYLE ) ),
|
||||
'link-start' => self::$a_str_link_open_tag,
|
||||
'link-end' => self::$a_str_link_close_tag,
|
||||
'link-span' => self::$a_str_link_span,
|
||||
|
@ -2121,10 +2138,10 @@ class Parser {
|
|||
}
|
||||
|
||||
// Call again for robustness when priority levels don’t match any longer.
|
||||
self::$a_int_scroll_offset = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_FOOTNOTES_SCROLL_OFFSET ) );
|
||||
self::$a_int_scroll_offset = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_FOOTNOTES_SCROLL_OFFSET );
|
||||
|
||||
// Streamline.
|
||||
$l_bool_collapse_default = Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_REFERENCE_CONTAINER_COLLAPSE ) );
|
||||
$l_bool_collapse_default = Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_COLLAPSE ) );
|
||||
|
||||
/*
|
||||
* Reference container label.
|
||||
|
@ -2133,32 +2150,32 @@ class Parser {
|
|||
* 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.
|
||||
*/
|
||||
$l_str_reference_container_label = Includes\Settings::instance()->get( Includes\Settings::C_STR_REFERENCE_CONTAINER_NAME );
|
||||
$l_str_reference_container_label = Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_NAME );
|
||||
|
||||
// Select the reference container template.
|
||||
// Whether AMP compatibility mode is enabled.
|
||||
if ( General::$a_bool_amp_enabled ) {
|
||||
|
||||
// Whether the reference container is collapsed by default.
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_REFERENCE_CONTAINER_COLLAPSE ) ) ) {
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_COLLAPSE ) ) ) {
|
||||
|
||||
// Load 'public/partials/amp-reference-container-collapsed.html'.
|
||||
$l_obj_template_container = new Includes\Template( Includes\Template::C_STR_PUBLIC, 'amp-reference-container-collapsed' );
|
||||
$l_obj_template_container = new Includes\Template( \footnotes\includes\Template::C_STR_PUBLIC, 'amp-reference-container-collapsed' );
|
||||
|
||||
} else {
|
||||
|
||||
// Load 'public/partials/amp-reference-container.html'.
|
||||
$l_obj_template_container = new Includes\Template( Includes\Template::C_STR_PUBLIC, 'amp-reference-container' );
|
||||
$l_obj_template_container = new Includes\Template( \footnotes\includes\Template::C_STR_PUBLIC, 'amp-reference-container' );
|
||||
}
|
||||
} elseif ( 'js' === General::$a_str_script_mode ) {
|
||||
|
||||
// Load 'public/partials/js-reference-container.html'.
|
||||
$l_obj_template_container = new Includes\Template( Includes\Template::C_STR_PUBLIC, 'js-reference-container' );
|
||||
$l_obj_template_container = new Includes\Template( \footnotes\includes\Template::C_STR_PUBLIC, 'js-reference-container' );
|
||||
|
||||
} else {
|
||||
|
||||
// Load 'public/partials/reference-container.html'.
|
||||
$l_obj_template_container = new Includes\Template( Includes\Template::C_STR_PUBLIC, 'reference-container' );
|
||||
$l_obj_template_container = new Includes\Template( \footnotes\includes\Template::C_STR_PUBLIC, 'reference-container' );
|
||||
}
|
||||
|
||||
$l_int_scroll_offset = '';
|
||||
|
@ -2170,11 +2187,11 @@ class Parser {
|
|||
if ( 'jquery' === General::$a_str_script_mode ) {
|
||||
|
||||
$l_int_scroll_offset = ( self::$a_int_scroll_offset / 100 );
|
||||
$l_int_scroll_up_duration = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_FOOTNOTES_SCROLL_DURATION ) );
|
||||
$l_int_scroll_up_duration = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_FOOTNOTES_SCROLL_DURATION );
|
||||
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( Includes\Settings::C_STR_FOOTNOTES_SCROLL_DURATION_ASYMMETRICITY ) ) ) {
|
||||
if ( Includes\Convert::to_bool( Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_FOOTNOTES_SCROLL_DURATION_ASYMMETRICITY ) ) ) {
|
||||
|
||||
$l_int_scroll_down_duration = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_FOOTNOTES_SCROLL_DOWN_DURATION ) );
|
||||
$l_int_scroll_down_duration = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_FOOTNOTES_SCROLL_DOWN_DURATION );
|
||||
|
||||
} else {
|
||||
|
||||
|
@ -2182,8 +2199,8 @@ class Parser {
|
|||
|
||||
}
|
||||
|
||||
$l_int_scroll_down_delay = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_FOOTNOTES_SCROLL_DOWN_DELAY ) );
|
||||
$l_int_scroll_up_delay = intval( Includes\Settings::instance()->get( Includes\Settings::C_INT_FOOTNOTES_SCROLL_UP_DELAY ) );
|
||||
$l_int_scroll_down_delay = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_FOOTNOTES_SCROLL_DOWN_DELAY );
|
||||
$l_int_scroll_up_delay = (int) Includes\Settings::instance()->get( \footnotes\includes\Settings::C_INT_FOOTNOTES_SCROLL_UP_DELAY );
|
||||
|
||||
}
|
||||
|
||||
|
@ -2191,9 +2208,9 @@ class Parser {
|
|||
array(
|
||||
'post_id' => self::$a_int_post_id,
|
||||
'container_id' => self::$a_int_reference_container_id,
|
||||
'element' => Includes\Settings::instance()->get( Includes\Settings::C_STR_REFERENCE_CONTAINER_LABEL_ELEMENT ),
|
||||
'element' => Includes\Settings::instance()->get( \footnotes\includes\Settings::C_STR_REFERENCE_CONTAINER_LABEL_ELEMENT ),
|
||||
'name' => empty( $l_str_reference_container_label ) ? ' ' : $l_str_reference_container_label,
|
||||
'button-style' => ! $l_bool_collapse_default ? 'display: none;' : '',
|
||||
'button-style' => $l_bool_collapse_default ? '' : 'display: none;',
|
||||
'style' => $l_bool_collapse_default ? 'display: none;' : '',
|
||||
'caption' => ( empty( $l_str_reference_container_label ) || ' ' === $l_str_reference_container_label ) ? 'References' : $l_str_reference_container_label,
|
||||
'content' => $l_str_body,
|
||||
|
|
Reference in a new issue