Version Description
Release date: December 23rd, 2016
- New feature: Added fourth parameter,
$force
, tobcn_display()
, andbcn_display_list()
allowing the internal caching mechanism to be bypassed. - New feature: Moved to multiple line text boxes rather than regular single line text inputs for the breadcrumb templates in the settings page to enhance visibility.
- Bug fix: Fixed issue where general searches had the blog breadcrumb in the breadcrumb trail.
- Bug fix: Fixed issue where the blog breadcrumb options were erroneously made available when a Posts Page was not set.
Download this release
Release Info
Developer | mtekk |
Plugin | Breadcrumb NavXT |
Version | 5.6.0 |
Comparing to | |
See all releases |
Code changes from version 5.5.2 to 5.6.0
- .gitignore +3 -0
- breadcrumb-navxt.php +25 -12
- class.bcn_admin.php +33 -33
- class.bcn_breadcrumb.php +1 -1
- class.bcn_breadcrumb_trail.php +7 -6
- class.bcn_network_admin.php +33 -33
- class.bcn_widget.php +9 -6
- includes/class.mtekk_adminkit.php +15 -6
- phpunit.xml +19 -0
- readme.txt +15 -7
.gitignore
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
*.class
|
2 |
+
*.pyc
|
3 |
+
*.pyo
|
breadcrumb-navxt.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Breadcrumb NavXT
|
4 |
Plugin URI: http://mtekk.us/code/breadcrumb-navxt/
|
5 |
Description: Adds a breadcrumb navigation showing the visitor's path to their current location. For details on how to use this plugin visit <a href="http://mtekk.us/code/breadcrumb-navxt/">Breadcrumb NavXT</a>.
|
6 |
-
Version: 5.
|
7 |
Author: John Havlik
|
8 |
Author URI: http://mtekk.us/
|
9 |
License: GPL2
|
@@ -60,7 +60,7 @@ $breadcrumb_navxt = NULL;
|
|
60 |
//TODO change to extends mtekk_plugKit
|
61 |
class breadcrumb_navxt
|
62 |
{
|
63 |
-
const version = '5.
|
64 |
protected $name = 'Breadcrumb NavXT';
|
65 |
protected $identifier = 'breadcrumb-navxt';
|
66 |
protected $unique_prefix = 'bcn';
|
@@ -390,10 +390,16 @@ class breadcrumb_navxt
|
|
390 |
* @param bool $return Whether to return or echo the trail.
|
391 |
* @param bool $linked Whether to allow hyperlinks in the trail or not.
|
392 |
* @param bool $reverse Whether to reverse the output or not.
|
|
|
393 |
*/
|
394 |
-
public function display($return = false, $linked = true, $reverse = false)
|
395 |
{
|
396 |
$this->get_settings();
|
|
|
|
|
|
|
|
|
|
|
397 |
//Generate the breadcrumb trail
|
398 |
$this->breadcrumb_trail->fill();
|
399 |
return $this->breadcrumb_trail->display($return, $linked, $reverse);
|
@@ -401,14 +407,19 @@ class breadcrumb_navxt
|
|
401 |
/**
|
402 |
* Outputs the breadcrumb trail with each element encapsulated with li tags
|
403 |
*
|
404 |
-
* @
|
405 |
-
* @param
|
406 |
-
* @param
|
407 |
-
* @param
|
408 |
*/
|
409 |
-
public function display_list($return = false, $linked = true, $reverse = false)
|
410 |
{
|
411 |
$this->get_settings();
|
|
|
|
|
|
|
|
|
|
|
412 |
//Generate the breadcrumb trail
|
413 |
$this->breadcrumb_trail->fill();
|
414 |
return $this->breadcrumb_trail->display_list($return, $linked, $reverse);
|
@@ -430,13 +441,14 @@ function bcn_init()
|
|
430 |
* @param bool $return Whether to return or echo the trail. (optional)
|
431 |
* @param bool $linked Whether to allow hyperlinks in the trail or not. (optional)
|
432 |
* @param bool $reverse Whether to reverse the output or not. (optional)
|
|
|
433 |
*/
|
434 |
-
function bcn_display($return = false, $linked = true, $reverse = false)
|
435 |
{
|
436 |
global $breadcrumb_navxt;
|
437 |
if($breadcrumb_navxt !== null)
|
438 |
{
|
439 |
-
return $breadcrumb_navxt->display($return, $linked, $reverse);
|
440 |
}
|
441 |
}
|
442 |
/**
|
@@ -445,12 +457,13 @@ function bcn_display($return = false, $linked = true, $reverse = false)
|
|
445 |
* @param bool $return Whether to return or echo the trail. (optional)
|
446 |
* @param bool $linked Whether to allow hyperlinks in the trail or not. (optional)
|
447 |
* @param bool $reverse Whether to reverse the output or not. (optional)
|
|
|
448 |
*/
|
449 |
-
function bcn_display_list($return = false, $linked = true, $reverse = false)
|
450 |
{
|
451 |
global $breadcrumb_navxt;
|
452 |
if($breadcrumb_navxt !== null)
|
453 |
{
|
454 |
-
return $breadcrumb_navxt->display_list($return, $linked, $reverse);
|
455 |
}
|
456 |
}
|
3 |
Plugin Name: Breadcrumb NavXT
|
4 |
Plugin URI: http://mtekk.us/code/breadcrumb-navxt/
|
5 |
Description: Adds a breadcrumb navigation showing the visitor's path to their current location. For details on how to use this plugin visit <a href="http://mtekk.us/code/breadcrumb-navxt/">Breadcrumb NavXT</a>.
|
6 |
+
Version: 5.6.0
|
7 |
Author: John Havlik
|
8 |
Author URI: http://mtekk.us/
|
9 |
License: GPL2
|
60 |
//TODO change to extends mtekk_plugKit
|
61 |
class breadcrumb_navxt
|
62 |
{
|
63 |
+
const version = '5.6.0';
|
64 |
protected $name = 'Breadcrumb NavXT';
|
65 |
protected $identifier = 'breadcrumb-navxt';
|
66 |
protected $unique_prefix = 'bcn';
|
390 |
* @param bool $return Whether to return or echo the trail.
|
391 |
* @param bool $linked Whether to allow hyperlinks in the trail or not.
|
392 |
* @param bool $reverse Whether to reverse the output or not.
|
393 |
+
* @param bool $force Whether or not to force the fill function to run.
|
394 |
*/
|
395 |
+
public function display($return = false, $linked = true, $reverse = false, $force = false)
|
396 |
{
|
397 |
$this->get_settings();
|
398 |
+
//If we're being forced to fill the trail, clear it before calling fill
|
399 |
+
if($force)
|
400 |
+
{
|
401 |
+
$this->breadcrumb_trail->breadcrumbs = array();
|
402 |
+
}
|
403 |
//Generate the breadcrumb trail
|
404 |
$this->breadcrumb_trail->fill();
|
405 |
return $this->breadcrumb_trail->display($return, $linked, $reverse);
|
407 |
/**
|
408 |
* Outputs the breadcrumb trail with each element encapsulated with li tags
|
409 |
*
|
410 |
+
* @param bool $return Whether to return or echo the trail.
|
411 |
+
* @param bool $linked Whether to allow hyperlinks in the trail or not.
|
412 |
+
* @param bool $reverse Whether to reverse the output or not.
|
413 |
+
* @param bool $force Whether or not to force the fill function to run.
|
414 |
*/
|
415 |
+
public function display_list($return = false, $linked = true, $reverse = false, $force = false)
|
416 |
{
|
417 |
$this->get_settings();
|
418 |
+
//If we're being forced to fill the trail, clear it before calling fill
|
419 |
+
if($force)
|
420 |
+
{
|
421 |
+
$this->breadcrumb_trail->breadcrumbs = array();
|
422 |
+
}
|
423 |
//Generate the breadcrumb trail
|
424 |
$this->breadcrumb_trail->fill();
|
425 |
return $this->breadcrumb_trail->display_list($return, $linked, $reverse);
|
441 |
* @param bool $return Whether to return or echo the trail. (optional)
|
442 |
* @param bool $linked Whether to allow hyperlinks in the trail or not. (optional)
|
443 |
* @param bool $reverse Whether to reverse the output or not. (optional)
|
444 |
+
* @param bool $force Whether or not to force the fill function to run. (optional)
|
445 |
*/
|
446 |
+
function bcn_display($return = false, $linked = true, $reverse = false, $force = false)
|
447 |
{
|
448 |
global $breadcrumb_navxt;
|
449 |
if($breadcrumb_navxt !== null)
|
450 |
{
|
451 |
+
return $breadcrumb_navxt->display($return, $linked, $reverse, $force);
|
452 |
}
|
453 |
}
|
454 |
/**
|
457 |
* @param bool $return Whether to return or echo the trail. (optional)
|
458 |
* @param bool $linked Whether to allow hyperlinks in the trail or not. (optional)
|
459 |
* @param bool $reverse Whether to reverse the output or not. (optional)
|
460 |
+
* @param bool $force Whether or not to force the fill function to run. (optional)
|
461 |
*/
|
462 |
+
function bcn_display_list($return = false, $linked = true, $reverse = false, $force = false)
|
463 |
{
|
464 |
global $breadcrumb_navxt;
|
465 |
if($breadcrumb_navxt !== null)
|
466 |
{
|
467 |
+
return $breadcrumb_navxt->display_list($return, $linked, $reverse, $force);
|
468 |
}
|
469 |
}
|
class.bcn_admin.php
CHANGED
@@ -42,7 +42,7 @@ if(!class_exists('mtekk_adminKit'))
|
|
42 |
*/
|
43 |
class bcn_admin extends mtekk_adminKit
|
44 |
{
|
45 |
-
const version = '5.
|
46 |
protected $full_name = 'Breadcrumb NavXT Settings';
|
47 |
protected $short_name = 'Breadcrumb NavXT';
|
48 |
protected $access_level = 'manage_options';
|
@@ -308,13 +308,13 @@ class bcn_admin extends mtekk_adminKit
|
|
308 |
'content' => $general_tab
|
309 |
));
|
310 |
$quickstart_tab = '<p>' . __('For the settings on this page to take effect, you must either use the included Breadcrumb NavXT widget, or place either of the code sections below into your theme.', 'breadcrumb-navxt') .
|
311 |
-
'</p><h5>' . __('Breadcrumb trail with separators', 'breadcrumb-navxt') . '</h5><pre><code><div class="breadcrumbs" typeof="BreadcrumbList" vocab="
|
312 |
<?php if(function_exists('bcn_display'))
|
313 |
{
|
314 |
bcn_display();
|
315 |
}?>
|
316 |
</div></code></pre>" .
|
317 |
-
'<h5>' . __('Breadcrumb trail in list form', 'breadcrumb-navxt').'</h5><pre><code><ol class="breadcrumbs" typeof="BreadcrumbList" vocab="
|
318 |
<?php if(function_exists('bcn_display_list'))
|
319 |
{
|
320 |
bcn_display_list();
|
@@ -464,17 +464,17 @@ class bcn_admin extends mtekk_adminKit
|
|
464 |
<table class="form-table adminkit-engroup">
|
465 |
<?php
|
466 |
$this->input_check(__('Home Breadcrumb', 'breadcrumb-navxt'), 'bhome_display', __('Place the home breadcrumb in the trail.', 'breadcrumb-navxt'));
|
467 |
-
$this->
|
468 |
-
$this->
|
469 |
do_action($this->unique_prefix . '_settings_home', $this->opt);
|
470 |
?>
|
471 |
</table>
|
472 |
<h3><?php _e('Blog Breadcrumb', 'breadcrumb-navxt'); ?></h3>
|
473 |
<table class="form-table adminkit-engroup">
|
474 |
<?php
|
475 |
-
$this->input_check(__('Blog Breadcrumb', 'breadcrumb-navxt'), 'bblog_display', __('Place the blog breadcrumb in the trail.', 'breadcrumb-navxt'), (get_option('show_on_front') !==
|
476 |
-
$this->
|
477 |
-
$this->
|
478 |
do_action($this->unique_prefix . '_settings_blog', $this->opt);
|
479 |
?>
|
480 |
</table>
|
@@ -482,8 +482,8 @@ class bcn_admin extends mtekk_adminKit
|
|
482 |
<table class="form-table adminkit-engroup">
|
483 |
<?php
|
484 |
$this->input_check(__('Main Site Breadcrumb', 'breadcrumb-navxt'), 'bmainsite_display', __('Place the main site home breadcrumb in the trail in an multisite setup.', 'breadcrumb-navxt'), !is_multisite());
|
485 |
-
$this->
|
486 |
-
$this->
|
487 |
do_action($this->unique_prefix . '_settings_mainsite', $this->opt);
|
488 |
?>
|
489 |
</table>
|
@@ -494,8 +494,8 @@ class bcn_admin extends mtekk_adminKit
|
|
494 |
<h3><?php _e('Posts', 'breadcrumb-navxt'); ?></h3>
|
495 |
<table class="form-table adminkit-enset-top">
|
496 |
<?php
|
497 |
-
$this->
|
498 |
-
$this->
|
499 |
$this->input_check(__('Post Hierarchy Display', 'breadcrumb-navxt'), 'bpost_post_taxonomy_display', __('Show the hierarchy (specified below) leading to a post in the breadcrumb trail.', 'breadcrumb-navxt'), false, '', 'adminkit-enset-ctrl adminkit-enset');
|
500 |
$this->input_check(__('Post Hierarchy Referer Influence', 'breadcrumb-navxt'), 'bpost_post_taxonomy_referer', __('Allow the refereing page to influence the taxonomy selected for the hierarchy.', 'breadcrumb-navxt'), false, '', 'adminkit-enset');
|
501 |
?>
|
@@ -532,15 +532,15 @@ class bcn_admin extends mtekk_adminKit
|
|
532 |
<h3><?php _e('Pages', 'breadcrumb-navxt'); ?></h3>
|
533 |
<table class="form-table">
|
534 |
<?php
|
535 |
-
$this->
|
536 |
-
$this->
|
537 |
?>
|
538 |
</table>
|
539 |
<h3><?php _e('Attachments', 'breadcrumb-navxt'); ?></h3>
|
540 |
<table class="form-table">
|
541 |
<?php
|
542 |
-
$this->
|
543 |
-
$this->
|
544 |
?>
|
545 |
</table>
|
546 |
<?php
|
@@ -560,8 +560,8 @@ class bcn_admin extends mtekk_adminKit
|
|
560 |
<h3><?php echo $post_type->labels->singular_name; ?></h3>
|
561 |
<table class="form-table adminkit-enset-top">
|
562 |
<?php
|
563 |
-
$this->
|
564 |
-
$this->
|
565 |
$optid = $this->get_valid_id('apost_' . $post_type->name . '_root');
|
566 |
?>
|
567 |
<tr valign="top">
|
@@ -627,22 +627,22 @@ class bcn_admin extends mtekk_adminKit
|
|
627 |
<h3><?php _e('Categories', 'breadcrumb-navxt'); ?></h3>
|
628 |
<table class="form-table">
|
629 |
<?php
|
630 |
-
$this->
|
631 |
-
$this->
|
632 |
?>
|
633 |
</table>
|
634 |
<h3><?php _e('Tags', 'breadcrumb-navxt'); ?></h3>
|
635 |
<table class="form-table">
|
636 |
<?php
|
637 |
-
$this->
|
638 |
-
$this->
|
639 |
?>
|
640 |
</table>
|
641 |
<h3><?php _e('Post Formats', 'breadcrumb-navxt'); ?></h3>
|
642 |
<table class="form-table">
|
643 |
<?php
|
644 |
-
$this->
|
645 |
-
$this->
|
646 |
?>
|
647 |
</table>
|
648 |
<?php
|
@@ -662,8 +662,8 @@ class bcn_admin extends mtekk_adminKit
|
|
662 |
<h3><?php echo mb_convert_case($taxonomy->label, MB_CASE_TITLE, 'UTF-8'); ?></h3>
|
663 |
<table class="form-table">
|
664 |
<?php
|
665 |
-
$this->
|
666 |
-
$this->
|
667 |
?>
|
668 |
</table>
|
669 |
<?php
|
@@ -676,20 +676,20 @@ class bcn_admin extends mtekk_adminKit
|
|
676 |
<h3><?php _e('Author Archives', 'breadcrumb-navxt'); ?></h3>
|
677 |
<table class="form-table">
|
678 |
<?php
|
679 |
-
$this->
|
680 |
-
$this->
|
681 |
$this->input_select(__('Author Display Format', 'breadcrumb-navxt'), 'Sauthor_name', array("display_name", "nickname", "first_name", "last_name"), false, __('display_name uses the name specified in "Display name publicly as" under the user profile the others correspond to options in the user profile.', 'breadcrumb-navxt'));
|
682 |
?>
|
683 |
</table>
|
684 |
<h3><?php _e('Miscellaneous', 'breadcrumb-navxt'); ?></h3>
|
685 |
<table class="form-table">
|
686 |
<?php
|
687 |
-
$this->
|
688 |
-
$this->
|
689 |
-
$this->
|
690 |
-
$this->
|
691 |
$this->input_text(__('404 Title', 'breadcrumb-navxt'), 'S404_title', 'regular-text');
|
692 |
-
$this->
|
693 |
?>
|
694 |
</table>
|
695 |
<h3><?php _e('Deprecated', 'breadcrumb-navxt'); ?></h3>
|
42 |
*/
|
43 |
class bcn_admin extends mtekk_adminKit
|
44 |
{
|
45 |
+
const version = '5.6.0';
|
46 |
protected $full_name = 'Breadcrumb NavXT Settings';
|
47 |
protected $short_name = 'Breadcrumb NavXT';
|
48 |
protected $access_level = 'manage_options';
|
308 |
'content' => $general_tab
|
309 |
));
|
310 |
$quickstart_tab = '<p>' . __('For the settings on this page to take effect, you must either use the included Breadcrumb NavXT widget, or place either of the code sections below into your theme.', 'breadcrumb-navxt') .
|
311 |
+
'</p><h5>' . __('Breadcrumb trail with separators', 'breadcrumb-navxt') . '</h5><pre><code><div class="breadcrumbs" typeof="BreadcrumbList" vocab="https://schema.org/">' . "
|
312 |
<?php if(function_exists('bcn_display'))
|
313 |
{
|
314 |
bcn_display();
|
315 |
}?>
|
316 |
</div></code></pre>" .
|
317 |
+
'<h5>' . __('Breadcrumb trail in list form', 'breadcrumb-navxt').'</h5><pre><code><ol class="breadcrumbs" typeof="BreadcrumbList" vocab="https://schema.org/">'."
|
318 |
<?php if(function_exists('bcn_display_list'))
|
319 |
{
|
320 |
bcn_display_list();
|
464 |
<table class="form-table adminkit-engroup">
|
465 |
<?php
|
466 |
$this->input_check(__('Home Breadcrumb', 'breadcrumb-navxt'), 'bhome_display', __('Place the home breadcrumb in the trail.', 'breadcrumb-navxt'));
|
467 |
+
$this->textbox(__('Home Template', 'breadcrumb-navxt'), 'Hhome_template', '6', false, __('The template for the home breadcrumb.', 'breadcrumb-navxt'));
|
468 |
+
$this->textbox(__('Home Template (Unlinked)', 'breadcrumb-navxt'), 'Hhome_template_no_anchor', '4', false, __('The template for the home breadcrumb, used when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
469 |
do_action($this->unique_prefix . '_settings_home', $this->opt);
|
470 |
?>
|
471 |
</table>
|
472 |
<h3><?php _e('Blog Breadcrumb', 'breadcrumb-navxt'); ?></h3>
|
473 |
<table class="form-table adminkit-engroup">
|
474 |
<?php
|
475 |
+
$this->input_check(__('Blog Breadcrumb', 'breadcrumb-navxt'), 'bblog_display', __('Place the blog breadcrumb in the trail.', 'breadcrumb-navxt'), (get_option('show_on_front') !== 'page' || get_option('page_for_posts') < 1));
|
476 |
+
$this->textbox(__('Blog Template', 'breadcrumb-navxt'), 'Hblog_template', '6', (get_option('show_on_front') !== 'page' || get_option('page_for_posts') < 1), __('The template for the blog breadcrumb, used only in static front page environments.', 'breadcrumb-navxt'));
|
477 |
+
$this->textbox(__('Blog Template (Unlinked)', 'breadcrumb-navxt'), 'Hblog_template_no_anchor', '4', (get_option('show_on_front') !== 'page' || get_option('page_for_posts') < 1), __('The template for the blog breadcrumb, used only in static front page environments and when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
478 |
do_action($this->unique_prefix . '_settings_blog', $this->opt);
|
479 |
?>
|
480 |
</table>
|
482 |
<table class="form-table adminkit-engroup">
|
483 |
<?php
|
484 |
$this->input_check(__('Main Site Breadcrumb', 'breadcrumb-navxt'), 'bmainsite_display', __('Place the main site home breadcrumb in the trail in an multisite setup.', 'breadcrumb-navxt'), !is_multisite());
|
485 |
+
$this->textbox(__('Main Site Home Template', 'breadcrumb-navxt'), 'Hmainsite_template', '6', !is_multisite(), __('The template for the main site home breadcrumb, used only in multisite environments.', 'breadcrumb-navxt'));
|
486 |
+
$this->textbox(__('Main Site Home Template (Unlinked)', 'breadcrumb-navxt'), 'Hmainsite_template_no_anchor', '4', !is_multisite(), __('The template for the main site home breadcrumb, used only in multisite environments and when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
487 |
do_action($this->unique_prefix . '_settings_mainsite', $this->opt);
|
488 |
?>
|
489 |
</table>
|
494 |
<h3><?php _e('Posts', 'breadcrumb-navxt'); ?></h3>
|
495 |
<table class="form-table adminkit-enset-top">
|
496 |
<?php
|
497 |
+
$this->textbox(__('Post Template', 'breadcrumb-navxt'), 'Hpost_post_template', '6', false, __('The template for post breadcrumbs.', 'breadcrumb-navxt'));
|
498 |
+
$this->textbox(__('Post Template (Unlinked)', 'breadcrumb-navxt'), 'Hpost_post_template_no_anchor', '4', false, __('The template for post breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
499 |
$this->input_check(__('Post Hierarchy Display', 'breadcrumb-navxt'), 'bpost_post_taxonomy_display', __('Show the hierarchy (specified below) leading to a post in the breadcrumb trail.', 'breadcrumb-navxt'), false, '', 'adminkit-enset-ctrl adminkit-enset');
|
500 |
$this->input_check(__('Post Hierarchy Referer Influence', 'breadcrumb-navxt'), 'bpost_post_taxonomy_referer', __('Allow the refereing page to influence the taxonomy selected for the hierarchy.', 'breadcrumb-navxt'), false, '', 'adminkit-enset');
|
501 |
?>
|
532 |
<h3><?php _e('Pages', 'breadcrumb-navxt'); ?></h3>
|
533 |
<table class="form-table">
|
534 |
<?php
|
535 |
+
$this->textbox(__('Page Template', 'breadcrumb-navxt'), 'Hpost_page_template', '6', false, __('The template for page breadcrumbs.', 'breadcrumb-navxt'));
|
536 |
+
$this->textbox(__('Page Template (Unlinked)', 'breadcrumb-navxt'), 'Hpost_page_template_no_anchor', '4', false, __('The template for page breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
537 |
?>
|
538 |
</table>
|
539 |
<h3><?php _e('Attachments', 'breadcrumb-navxt'); ?></h3>
|
540 |
<table class="form-table">
|
541 |
<?php
|
542 |
+
$this->textbox(__('Attachment Template', 'breadcrumb-navxt'), 'Hpost_attachment_template', '6', false, __('The template for attachment breadcrumbs.', 'breadcrumb-navxt'));
|
543 |
+
$this->textbox(__('Attachment Template (Unlinked)', 'breadcrumb-navxt'), 'Hpost_attachment_template_no_anchor', '4', false, __('The template for attachment breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
544 |
?>
|
545 |
</table>
|
546 |
<?php
|
560 |
<h3><?php echo $post_type->labels->singular_name; ?></h3>
|
561 |
<table class="form-table adminkit-enset-top">
|
562 |
<?php
|
563 |
+
$this->textbox(sprintf(__('%s Template', 'breadcrumb-navxt'), $post_type->labels->singular_name), 'Hpost_' . $post_type->name . '_template', '6', false, sprintf(__('The template for %s breadcrumbs.', 'breadcrumb-navxt'), $singular_name_lc));
|
564 |
+
$this->textbox(sprintf(__('%s Template (Unlinked)', 'breadcrumb-navxt'), $post_type->labels->singular_name), 'Hpost_' . $post_type->name . '_template_no_anchor', '4', false, sprintf(__('The template for %s breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'), $singular_name_lc));
|
565 |
$optid = $this->get_valid_id('apost_' . $post_type->name . '_root');
|
566 |
?>
|
567 |
<tr valign="top">
|
627 |
<h3><?php _e('Categories', 'breadcrumb-navxt'); ?></h3>
|
628 |
<table class="form-table">
|
629 |
<?php
|
630 |
+
$this->textbox(__('Category Template', 'breadcrumb-navxt'), 'Htax_category_template', '6', false, __('The template for category breadcrumbs.', 'breadcrumb-navxt'));
|
631 |
+
$this->textbox(__('Category Template (Unlinked)', 'breadcrumb-navxt'), 'Htax_category_template_no_anchor', '4', false, __('The template for category breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
632 |
?>
|
633 |
</table>
|
634 |
<h3><?php _e('Tags', 'breadcrumb-navxt'); ?></h3>
|
635 |
<table class="form-table">
|
636 |
<?php
|
637 |
+
$this->textbox(__('Tag Template', 'breadcrumb-navxt'), 'Htax_post_tag_template', '6', false, __('The template for tag breadcrumbs.', 'breadcrumb-navxt'));
|
638 |
+
$this->textbox(__('Tag Template (Unlinked)', 'breadcrumb-navxt'), 'Htax_post_tag_template_no_anchor', '4', false, __('The template for tag breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
639 |
?>
|
640 |
</table>
|
641 |
<h3><?php _e('Post Formats', 'breadcrumb-navxt'); ?></h3>
|
642 |
<table class="form-table">
|
643 |
<?php
|
644 |
+
$this->textbox(__('Post Format Template', 'breadcrumb-navxt'), 'Htax_post_format_template', '6', false, __('The template for post format breadcrumbs.', 'breadcrumb-navxt'));
|
645 |
+
$this->textbox(__('Post Format Template (Unlinked)', 'breadcrumb-navxt'), 'Htax_post_format_template_no_anchor', '4', false, __('The template for post_format breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
646 |
?>
|
647 |
</table>
|
648 |
<?php
|
662 |
<h3><?php echo mb_convert_case($taxonomy->label, MB_CASE_TITLE, 'UTF-8'); ?></h3>
|
663 |
<table class="form-table">
|
664 |
<?php
|
665 |
+
$this->textbox(sprintf(__('%s Template', 'breadcrumb-navxt'), $taxonomy->labels->singular_name), 'Htax_' . $taxonomy->name . '_template', '6', false, sprintf(__('The template for %s breadcrumbs.', 'breadcrumb-navxt'), $label_lc));
|
666 |
+
$this->textbox(sprintf(__('%s Template (Unlinked)', 'breadcrumb-navxt'), $taxonomy->labels->singular_name), 'Htax_' . $taxonomy->name . '_template_no_anchor', '4', false, sprintf(__('The template for %s breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'), $label_lc));
|
667 |
?>
|
668 |
</table>
|
669 |
<?php
|
676 |
<h3><?php _e('Author Archives', 'breadcrumb-navxt'); ?></h3>
|
677 |
<table class="form-table">
|
678 |
<?php
|
679 |
+
$this->textbox(__('Author Template', 'breadcrumb-navxt'), 'Hauthor_template', '6', false, __('The template for author breadcrumbs.', 'breadcrumb-navxt'));
|
680 |
+
$this->textbox(__('Author Template (Unlinked)', 'breadcrumb-navxt'), 'Hauthor_template_no_anchor', '4', false, __('The template for author breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
681 |
$this->input_select(__('Author Display Format', 'breadcrumb-navxt'), 'Sauthor_name', array("display_name", "nickname", "first_name", "last_name"), false, __('display_name uses the name specified in "Display name publicly as" under the user profile the others correspond to options in the user profile.', 'breadcrumb-navxt'));
|
682 |
?>
|
683 |
</table>
|
684 |
<h3><?php _e('Miscellaneous', 'breadcrumb-navxt'); ?></h3>
|
685 |
<table class="form-table">
|
686 |
<?php
|
687 |
+
$this->textbox(__('Date Template', 'breadcrumb-navxt'), 'Hdate_template', '6', false, __('The template for date breadcrumbs.', 'breadcrumb-navxt'));
|
688 |
+
$this->textbox(__('Date Template (Unlinked)', 'breadcrumb-navxt'), 'Hdate_template_no_anchor', '4', false, __('The template for date breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
689 |
+
$this->textbox(__('Search Template', 'breadcrumb-navxt'), 'Hsearch_template', '6', false, __('The anchor template for search breadcrumbs, used only when the search results span several pages.', 'breadcrumb-navxt'));
|
690 |
+
$this->textbox(__('Search Template (Unlinked)', 'breadcrumb-navxt'), 'Hsearch_template_no_anchor', '4', false, __('The anchor template for search breadcrumbs, used only when the search results span several pages and the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
691 |
$this->input_text(__('404 Title', 'breadcrumb-navxt'), 'S404_title', 'regular-text');
|
692 |
+
$this->textbox(__('404 Template', 'breadcrumb-navxt'), 'H404_template', '4', false, __('The template for 404 breadcrumbs.', 'breadcrumb-navxt'));
|
693 |
?>
|
694 |
</table>
|
695 |
<h3><?php _e('Deprecated', 'breadcrumb-navxt'); ?></h3>
|
class.bcn_breadcrumb.php
CHANGED
@@ -21,7 +21,7 @@ require_once(dirname(__FILE__) . '/includes/block_direct_access.php');
|
|
21 |
class bcn_breadcrumb
|
22 |
{
|
23 |
//Our member variables
|
24 |
-
const version = '5.
|
25 |
//The main text that will be shown
|
26 |
protected $title;
|
27 |
//The breadcrumb's template, used durring assembly
|
21 |
class bcn_breadcrumb
|
22 |
{
|
23 |
//Our member variables
|
24 |
+
const version = '5.6.0';
|
25 |
//The main text that will be shown
|
26 |
protected $title;
|
27 |
//The breadcrumb's template, used durring assembly
|
class.bcn_breadcrumb_trail.php
CHANGED
@@ -21,7 +21,7 @@ require_once(dirname(__FILE__) . '/includes/block_direct_access.php');
|
|
21 |
class bcn_breadcrumb_trail
|
22 |
{
|
23 |
//Our member variables
|
24 |
-
const version = '5.
|
25 |
//An array of breadcrumbs
|
26 |
public $breadcrumbs = array();
|
27 |
public $trail = array();
|
@@ -319,6 +319,7 @@ class bcn_breadcrumb_trail
|
|
319 |
{
|
320 |
//We have to grab the post to find its parent, can't use $post for this one
|
321 |
$parent = get_post($id);
|
|
|
322 |
$parent = $parent->post_parent;
|
323 |
}
|
324 |
//Grab the frontpage, we'll need it shortly
|
@@ -726,7 +727,7 @@ class bcn_breadcrumb_trail
|
|
726 |
*/
|
727 |
protected function treat_as_root_page($post_type)
|
728 |
{
|
729 |
-
return (is_home() || (is_post_type_archive() &&
|
730 |
}
|
731 |
/**
|
732 |
* Determines if a post type has archives enabled or not
|
@@ -736,7 +737,7 @@ class bcn_breadcrumb_trail
|
|
736 |
*/
|
737 |
protected function has_archive($post_type)
|
738 |
{
|
739 |
-
$type = get_post_type_object($post_type);
|
740 |
return $type->has_archive;
|
741 |
}
|
742 |
/**
|
@@ -801,7 +802,7 @@ class bcn_breadcrumb_trail
|
|
801 |
{
|
802 |
global $wp_taxonomies;
|
803 |
$type_str = false;
|
804 |
-
if(!isset($type->taxonomy))
|
805 |
{
|
806 |
$type_str = $this->get_type_string_query_var();
|
807 |
}
|
@@ -879,7 +880,7 @@ class bcn_breadcrumb_trail
|
|
879 |
$type_str = 'page';
|
880 |
$root_id = get_option('page_on_front');
|
881 |
}
|
882 |
-
else if($this->opt['bblog_display'] || is_home())
|
883 |
{
|
884 |
$type_str = 'post';
|
885 |
$root_id = get_option('page_for_posts');
|
@@ -898,7 +899,7 @@ class bcn_breadcrumb_trail
|
|
898 |
{
|
899 |
//Could use the $post global, but we can't really trust it
|
900 |
$post = get_post();
|
901 |
-
$type = get_post($post->post_parent);
|
902 |
//If the parent of the attachment is a page, exit early (works around bug where is_single() returns true for an attachment to a page)
|
903 |
if($type->post_type == 'page')
|
904 |
{
|
21 |
class bcn_breadcrumb_trail
|
22 |
{
|
23 |
//Our member variables
|
24 |
+
const version = '5.6.0';
|
25 |
//An array of breadcrumbs
|
26 |
public $breadcrumbs = array();
|
27 |
public $trail = array();
|
319 |
{
|
320 |
//We have to grab the post to find its parent, can't use $post for this one
|
321 |
$parent = get_post($id);
|
322 |
+
//TODO should we check that we have a WP_Post object here?
|
323 |
$parent = $parent->post_parent;
|
324 |
}
|
325 |
//Grab the frontpage, we'll need it shortly
|
727 |
*/
|
728 |
protected function treat_as_root_page($post_type)
|
729 |
{
|
730 |
+
return (is_home() || (is_post_type_archive() && !$this->opt['bpost_' . $post_type . '_archive_display']));
|
731 |
}
|
732 |
/**
|
733 |
* Determines if a post type has archives enabled or not
|
737 |
*/
|
738 |
protected function has_archive($post_type)
|
739 |
{
|
740 |
+
$type = get_post_type_object($post_type); //TODO need a check on this for WP_Error?
|
741 |
return $type->has_archive;
|
742 |
}
|
743 |
/**
|
802 |
{
|
803 |
global $wp_taxonomies;
|
804 |
$type_str = false;
|
805 |
+
if(!isset($type->taxonomy)) //TODO could probably check the class type here
|
806 |
{
|
807 |
$type_str = $this->get_type_string_query_var();
|
808 |
}
|
880 |
$type_str = 'page';
|
881 |
$root_id = get_option('page_on_front');
|
882 |
}
|
883 |
+
else if(($this->opt['bblog_display'] || is_home()) && !is_search())
|
884 |
{
|
885 |
$type_str = 'post';
|
886 |
$root_id = get_option('page_for_posts');
|
899 |
{
|
900 |
//Could use the $post global, but we can't really trust it
|
901 |
$post = get_post();
|
902 |
+
$type = get_post($post->post_parent); //TODO check for WP_Error?
|
903 |
//If the parent of the attachment is a page, exit early (works around bug where is_single() returns true for an attachment to a page)
|
904 |
if($type->post_type == 'page')
|
905 |
{
|
class.bcn_network_admin.php
CHANGED
@@ -42,7 +42,7 @@ if(!class_exists('mtekk_adminKit'))
|
|
42 |
*/
|
43 |
class bcn_network_admin extends mtekk_adminKit
|
44 |
{
|
45 |
-
const version = '5.
|
46 |
protected $full_name = 'Breadcrumb NavXT Network Settings';
|
47 |
protected $short_name = 'Breadcrumb NavXT';
|
48 |
protected $access_level = 'manage_network_options';
|
@@ -379,13 +379,13 @@ class bcn_network_admin extends mtekk_adminKit
|
|
379 |
'content' => $general_tab
|
380 |
));
|
381 |
$quickstart_tab = '<p>' . __('For the settings on this page to take effect, you must either use the included Breadcrumb NavXT widget, or place either of the code sections below into your theme.', 'breadcrumb-navxt') .
|
382 |
-
'</p><h5>' . __('Breadcrumb trail with separators', 'breadcrumb-navxt') . '</h5><pre><code><div class="breadcrumbs" typeof="BreadcrumbList" vocab="
|
383 |
<?php if(function_exists('bcn_display'))
|
384 |
{
|
385 |
bcn_display();
|
386 |
}?>
|
387 |
</div></code></pre>" .
|
388 |
-
'<h5>' . __('Breadcrumb trail in list form', 'breadcrumb-navxt').'</h5><pre><code><ol class="breadcrumbs" typeof="BreadcrumbList" vocab="
|
389 |
<?php if(function_exists('bcn_display_list'))
|
390 |
{
|
391 |
bcn_display_list();
|
@@ -536,8 +536,8 @@ class bcn_network_admin extends mtekk_adminKit
|
|
536 |
<table class="form-table adminkit-engroup">
|
537 |
<?php
|
538 |
$this->input_check(__('Home Breadcrumb', 'breadcrumb-navxt'), 'bhome_display', __('Place the home breadcrumb in the trail.', 'breadcrumb-navxt'));
|
539 |
-
$this->
|
540 |
-
$this->
|
541 |
do_action($this->unique_prefix . '_network_settings_home', $this->opt);
|
542 |
?>
|
543 |
</table>
|
@@ -545,17 +545,17 @@ class bcn_network_admin extends mtekk_adminKit
|
|
545 |
<table class="form-table adminkit-engroup">
|
546 |
<?php
|
547 |
$this->input_check(__('Blog Breadcrumb', 'breadcrumb-navxt'), 'bblog_display', __('Place the blog breadcrumb in the trail.', 'breadcrumb-navxt'));
|
548 |
-
$this->
|
549 |
-
$this->
|
550 |
do_action($this->unique_prefix . '_network_settings_blog', $this->opt);
|
551 |
?>
|
552 |
</table>
|
553 |
<h3><?php _e('Mainsite Breadcrumb', 'breadcrumb-navxt'); ?></h3>
|
554 |
<table class="form-table adminkit-engroup">
|
555 |
<?php
|
556 |
-
$this->input_check(__('Main Site Breadcrumb', 'breadcrumb-navxt'), 'bmainsite_display', __('Place the main site home breadcrumb in the trail in an multisite setup.', 'breadcrumb-navxt')
|
557 |
-
$this->
|
558 |
-
$this->
|
559 |
do_action($this->unique_prefix . '_network_settings_mainsite', $this->opt);
|
560 |
?>
|
561 |
</table>
|
@@ -566,8 +566,8 @@ class bcn_network_admin extends mtekk_adminKit
|
|
566 |
<h3><?php _e('Posts', 'breadcrumb-navxt'); ?></h3>
|
567 |
<table class="form-table adminkit-enset-top">
|
568 |
<?php
|
569 |
-
$this->
|
570 |
-
$this->
|
571 |
$this->input_check(__('Post Hierarchy Display', 'breadcrumb-navxt'), 'bpost_post_taxonomy_display', __('Show the hierarchy (specified below) leading to a post in the breadcrumb trail.', 'breadcrumb-navxt'), false, '', 'adminkit-enset-ctrl adminkit-enset');
|
572 |
$this->input_check(__('Post Hierarchy Referer Influence', 'breadcrumb-navxt'), 'bpost_post_taxonomy_referer', __('Allow the refereing page to influence the taxonomy selected for the hierarchy.', 'breadcrumb-navxt'), false, '', 'adminkit-enset');
|
573 |
?>
|
@@ -604,15 +604,15 @@ class bcn_network_admin extends mtekk_adminKit
|
|
604 |
<h3><?php _e('Pages', 'breadcrumb-navxt'); ?></h3>
|
605 |
<table class="form-table">
|
606 |
<?php
|
607 |
-
$this->
|
608 |
-
$this->
|
609 |
?>
|
610 |
</table>
|
611 |
<h3><?php _e('Attachments', 'breadcrumb-navxt'); ?></h3>
|
612 |
<table class="form-table">
|
613 |
<?php
|
614 |
-
$this->
|
615 |
-
$this->
|
616 |
?>
|
617 |
</table>
|
618 |
<?php
|
@@ -632,8 +632,8 @@ class bcn_network_admin extends mtekk_adminKit
|
|
632 |
<h3><?php echo $post_type->labels->singular_name; ?></h3>
|
633 |
<table class="form-table adminkit-enset-top">
|
634 |
<?php
|
635 |
-
$this->
|
636 |
-
$this->
|
637 |
$optid = $this->get_valid_id('apost_' . $post_type->name . '_root');
|
638 |
?>
|
639 |
<tr valign="top">
|
@@ -699,22 +699,22 @@ class bcn_network_admin extends mtekk_adminKit
|
|
699 |
<h3><?php _e('Categories', 'breadcrumb-navxt'); ?></h3>
|
700 |
<table class="form-table">
|
701 |
<?php
|
702 |
-
$this->
|
703 |
-
$this->
|
704 |
?>
|
705 |
</table>
|
706 |
<h3><?php _e('Tags', 'breadcrumb-navxt'); ?></h3>
|
707 |
<table class="form-table">
|
708 |
<?php
|
709 |
-
$this->
|
710 |
-
$this->
|
711 |
?>
|
712 |
</table>
|
713 |
<h3><?php _e('Post Formats', 'breadcrumb-navxt'); ?></h3>
|
714 |
<table class="form-table">
|
715 |
<?php
|
716 |
-
$this->
|
717 |
-
$this->
|
718 |
?>
|
719 |
</table>
|
720 |
<?php
|
@@ -734,8 +734,8 @@ class bcn_network_admin extends mtekk_adminKit
|
|
734 |
<h3><?php echo mb_convert_case($taxonomy->label, MB_CASE_TITLE, 'UTF-8'); ?></h3>
|
735 |
<table class="form-table">
|
736 |
<?php
|
737 |
-
$this->
|
738 |
-
$this->
|
739 |
?>
|
740 |
</table>
|
741 |
<?php
|
@@ -748,20 +748,20 @@ class bcn_network_admin extends mtekk_adminKit
|
|
748 |
<h3><?php _e('Author Archives', 'breadcrumb-navxt'); ?></h3>
|
749 |
<table class="form-table">
|
750 |
<?php
|
751 |
-
$this->
|
752 |
-
$this->
|
753 |
$this->input_select(__('Author Display Format', 'breadcrumb-navxt'), 'Sauthor_name', array("display_name", "nickname", "first_name", "last_name"), false, __('display_name uses the name specified in "Display name publicly as" under the user profile the others correspond to options in the user profile.', 'breadcrumb-navxt'));
|
754 |
?>
|
755 |
</table>
|
756 |
<h3><?php _e('Miscellaneous', 'breadcrumb-navxt'); ?></h3>
|
757 |
<table class="form-table">
|
758 |
<?php
|
759 |
-
$this->
|
760 |
-
$this->
|
761 |
-
$this->
|
762 |
-
$this->
|
763 |
$this->input_text(__('404 Title', 'breadcrumb-navxt'), 'S404_title', 'regular-text');
|
764 |
-
$this->
|
765 |
?>
|
766 |
</table>
|
767 |
<h3><?php _e('Deprecated', 'breadcrumb-navxt'); ?></h3>
|
42 |
*/
|
43 |
class bcn_network_admin extends mtekk_adminKit
|
44 |
{
|
45 |
+
const version = '5.6.0';
|
46 |
protected $full_name = 'Breadcrumb NavXT Network Settings';
|
47 |
protected $short_name = 'Breadcrumb NavXT';
|
48 |
protected $access_level = 'manage_network_options';
|
379 |
'content' => $general_tab
|
380 |
));
|
381 |
$quickstart_tab = '<p>' . __('For the settings on this page to take effect, you must either use the included Breadcrumb NavXT widget, or place either of the code sections below into your theme.', 'breadcrumb-navxt') .
|
382 |
+
'</p><h5>' . __('Breadcrumb trail with separators', 'breadcrumb-navxt') . '</h5><pre><code><div class="breadcrumbs" typeof="BreadcrumbList" vocab="https://schema.org/">' . "
|
383 |
<?php if(function_exists('bcn_display'))
|
384 |
{
|
385 |
bcn_display();
|
386 |
}?>
|
387 |
</div></code></pre>" .
|
388 |
+
'<h5>' . __('Breadcrumb trail in list form', 'breadcrumb-navxt').'</h5><pre><code><ol class="breadcrumbs" typeof="BreadcrumbList" vocab="https://schema.org/">'."
|
389 |
<?php if(function_exists('bcn_display_list'))
|
390 |
{
|
391 |
bcn_display_list();
|
536 |
<table class="form-table adminkit-engroup">
|
537 |
<?php
|
538 |
$this->input_check(__('Home Breadcrumb', 'breadcrumb-navxt'), 'bhome_display', __('Place the home breadcrumb in the trail.', 'breadcrumb-navxt'));
|
539 |
+
$this->textbox(__('Home Template', 'breadcrumb-navxt'), 'Hhome_template', '6', false, __('The template for the home breadcrumb.', 'breadcrumb-navxt'));
|
540 |
+
$this->textbox(__('Home Template (Unlinked)', 'breadcrumb-navxt'), 'Hhome_template_no_anchor', '4', false, __('The template for the home breadcrumb, used when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
541 |
do_action($this->unique_prefix . '_network_settings_home', $this->opt);
|
542 |
?>
|
543 |
</table>
|
545 |
<table class="form-table adminkit-engroup">
|
546 |
<?php
|
547 |
$this->input_check(__('Blog Breadcrumb', 'breadcrumb-navxt'), 'bblog_display', __('Place the blog breadcrumb in the trail.', 'breadcrumb-navxt'));
|
548 |
+
$this->textbox(__('Blog Template', 'breadcrumb-navxt'), 'Hblog_template', '6', false, __('The template for the blog breadcrumb, used only in static front page environments.', 'breadcrumb-navxt'));
|
549 |
+
$this->textbox(__('Blog Template (Unlinked)', 'breadcrumb-navxt'), 'Hblog_template_no_anchor', '4', false , __('The template for the blog breadcrumb, used only in static front page environments and when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
550 |
do_action($this->unique_prefix . '_network_settings_blog', $this->opt);
|
551 |
?>
|
552 |
</table>
|
553 |
<h3><?php _e('Mainsite Breadcrumb', 'breadcrumb-navxt'); ?></h3>
|
554 |
<table class="form-table adminkit-engroup">
|
555 |
<?php
|
556 |
+
$this->input_check(__('Main Site Breadcrumb', 'breadcrumb-navxt'), 'bmainsite_display', __('Place the main site home breadcrumb in the trail in an multisite setup.', 'breadcrumb-navxt'));
|
557 |
+
$this->textbox(__('Main Site Home Template', 'breadcrumb-navxt'), 'Hmainsite_template', '6', false, __('The template for the main site home breadcrumb, used only in multisite environments.', 'breadcrumb-navxt'));
|
558 |
+
$this->textbox(__('Main Site Home Template (Unlinked)', 'breadcrumb-navxt'), 'Hmainsite_template_no_anchor', '4', false, __('The template for the main site home breadcrumb, used only in multisite environments and when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
559 |
do_action($this->unique_prefix . '_network_settings_mainsite', $this->opt);
|
560 |
?>
|
561 |
</table>
|
566 |
<h3><?php _e('Posts', 'breadcrumb-navxt'); ?></h3>
|
567 |
<table class="form-table adminkit-enset-top">
|
568 |
<?php
|
569 |
+
$this->textbox(__('Post Template', 'breadcrumb-navxt'), 'Hpost_post_template', '6', false, __('The template for post breadcrumbs.', 'breadcrumb-navxt'));
|
570 |
+
$this->textbox(__('Post Template (Unlinked)', 'breadcrumb-navxt'), 'Hpost_post_template_no_anchor', '4', false, __('The template for post breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
571 |
$this->input_check(__('Post Hierarchy Display', 'breadcrumb-navxt'), 'bpost_post_taxonomy_display', __('Show the hierarchy (specified below) leading to a post in the breadcrumb trail.', 'breadcrumb-navxt'), false, '', 'adminkit-enset-ctrl adminkit-enset');
|
572 |
$this->input_check(__('Post Hierarchy Referer Influence', 'breadcrumb-navxt'), 'bpost_post_taxonomy_referer', __('Allow the refereing page to influence the taxonomy selected for the hierarchy.', 'breadcrumb-navxt'), false, '', 'adminkit-enset');
|
573 |
?>
|
604 |
<h3><?php _e('Pages', 'breadcrumb-navxt'); ?></h3>
|
605 |
<table class="form-table">
|
606 |
<?php
|
607 |
+
$this->textbox(__('Page Template', 'breadcrumb-navxt'), 'Hpost_page_template', '6', false, __('The template for page breadcrumbs.', 'breadcrumb-navxt'));
|
608 |
+
$this->textbox(__('Page Template (Unlinked)', 'breadcrumb-navxt'), 'Hpost_page_template_no_anchor', '4', false, __('The template for page breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
609 |
?>
|
610 |
</table>
|
611 |
<h3><?php _e('Attachments', 'breadcrumb-navxt'); ?></h3>
|
612 |
<table class="form-table">
|
613 |
<?php
|
614 |
+
$this->textbox(__('Attachment Template', 'breadcrumb-navxt'), 'Hpost_attachment_template', '6', false, __('The template for attachment breadcrumbs.', 'breadcrumb-navxt'));
|
615 |
+
$this->textbox(__('Attachment Template (Unlinked)', 'breadcrumb-navxt'), 'Hpost_attachment_template_no_anchor', '4', false, __('The template for attachment breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
616 |
?>
|
617 |
</table>
|
618 |
<?php
|
632 |
<h3><?php echo $post_type->labels->singular_name; ?></h3>
|
633 |
<table class="form-table adminkit-enset-top">
|
634 |
<?php
|
635 |
+
$this->textbox(sprintf(__('%s Template', 'breadcrumb-navxt'), $post_type->labels->singular_name), 'Hpost_' . $post_type->name . '_template', '6', false, sprintf(__('The template for %s breadcrumbs.', 'breadcrumb-navxt'), $singular_name_lc));
|
636 |
+
$this->textbox(sprintf(__('%s Template (Unlinked)', 'breadcrumb-navxt'), $post_type->labels->singular_name), 'Hpost_' . $post_type->name . '_template_no_anchor', '4', false, sprintf(__('The template for %s breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'), $singular_name_lc));
|
637 |
$optid = $this->get_valid_id('apost_' . $post_type->name . '_root');
|
638 |
?>
|
639 |
<tr valign="top">
|
699 |
<h3><?php _e('Categories', 'breadcrumb-navxt'); ?></h3>
|
700 |
<table class="form-table">
|
701 |
<?php
|
702 |
+
$this->textbox(__('Category Template', 'breadcrumb-navxt'), 'Htax_category_template', '6', false, __('The template for category breadcrumbs.', 'breadcrumb-navxt'));
|
703 |
+
$this->textbox(__('Category Template (Unlinked)', 'breadcrumb-navxt'), 'Htax_category_template_no_anchor', '4', false, __('The template for category breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
704 |
?>
|
705 |
</table>
|
706 |
<h3><?php _e('Tags', 'breadcrumb-navxt'); ?></h3>
|
707 |
<table class="form-table">
|
708 |
<?php
|
709 |
+
$this->textbox(__('Tag Template', 'breadcrumb-navxt'), 'Htax_post_tag_template', '6', false, __('The template for tag breadcrumbs.', 'breadcrumb-navxt'));
|
710 |
+
$this->textbox(__('Tag Template (Unlinked)', 'breadcrumb-navxt'), 'Htax_post_tag_template_no_anchor', '4', false, __('The template for tag breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
711 |
?>
|
712 |
</table>
|
713 |
<h3><?php _e('Post Formats', 'breadcrumb-navxt'); ?></h3>
|
714 |
<table class="form-table">
|
715 |
<?php
|
716 |
+
$this->textbox(__('Post Format Template', 'breadcrumb-navxt'), 'Htax_post_format_template', '6', false, __('The template for post format breadcrumbs.', 'breadcrumb-navxt'));
|
717 |
+
$this->textbox(__('Post Format Template (Unlinked)', 'breadcrumb-navxt'), 'Htax_post_format_template_no_anchor', '4', false, __('The template for post_format breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
718 |
?>
|
719 |
</table>
|
720 |
<?php
|
734 |
<h3><?php echo mb_convert_case($taxonomy->label, MB_CASE_TITLE, 'UTF-8'); ?></h3>
|
735 |
<table class="form-table">
|
736 |
<?php
|
737 |
+
$this->textbox(sprintf(__('%s Template', 'breadcrumb-navxt'), $taxonomy->labels->singular_name), 'Htax_' . $taxonomy->name . '_template', '6', false, sprintf(__('The template for %s breadcrumbs.', 'breadcrumb-navxt'), $label_lc));
|
738 |
+
$this->textbox(sprintf(__('%s Template (Unlinked)', 'breadcrumb-navxt'), $taxonomy->labels->singular_name), 'Htax_' . $taxonomy->name . '_template_no_anchor', '4', false, sprintf(__('The template for %s breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'), $label_lc));
|
739 |
?>
|
740 |
</table>
|
741 |
<?php
|
748 |
<h3><?php _e('Author Archives', 'breadcrumb-navxt'); ?></h3>
|
749 |
<table class="form-table">
|
750 |
<?php
|
751 |
+
$this->textbox(__('Author Template', 'breadcrumb-navxt'), 'Hauthor_template', '6', false, __('The template for author breadcrumbs.', 'breadcrumb-navxt'));
|
752 |
+
$this->textbox(__('Author Template (Unlinked)', 'breadcrumb-navxt'), 'Hauthor_template_no_anchor', '4', false, __('The template for author breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
753 |
$this->input_select(__('Author Display Format', 'breadcrumb-navxt'), 'Sauthor_name', array("display_name", "nickname", "first_name", "last_name"), false, __('display_name uses the name specified in "Display name publicly as" under the user profile the others correspond to options in the user profile.', 'breadcrumb-navxt'));
|
754 |
?>
|
755 |
</table>
|
756 |
<h3><?php _e('Miscellaneous', 'breadcrumb-navxt'); ?></h3>
|
757 |
<table class="form-table">
|
758 |
<?php
|
759 |
+
$this->textbox(__('Date Template', 'breadcrumb-navxt'), 'Hdate_template', '6', false, __('The template for date breadcrumbs.', 'breadcrumb-navxt'));
|
760 |
+
$this->textbox(__('Date Template (Unlinked)', 'breadcrumb-navxt'), 'Hdate_template_no_anchor', '4', false, __('The template for date breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
761 |
+
$this->textbox(__('Search Template', 'breadcrumb-navxt'), 'Hsearch_template', '6', false, __('The anchor template for search breadcrumbs, used only when the search results span several pages.', 'breadcrumb-navxt'));
|
762 |
+
$this->textbox(__('Search Template (Unlinked)', 'breadcrumb-navxt'), 'Hsearch_template_no_anchor', '4', false, __('The anchor template for search breadcrumbs, used only when the search results span several pages and the breadcrumb is not linked.', 'breadcrumb-navxt'));
|
763 |
$this->input_text(__('404 Title', 'breadcrumb-navxt'), 'S404_title', 'regular-text');
|
764 |
+
$this->textbox(__('404 Template', 'breadcrumb-navxt'), 'H404_template', '4', false, __('The template for 404 breadcrumbs.', 'breadcrumb-navxt'));
|
765 |
?>
|
766 |
</table>
|
767 |
<h3><?php _e('Deprecated', 'breadcrumb-navxt'); ?></h3>
|
class.bcn_widget.php
CHANGED
@@ -19,8 +19,8 @@
|
|
19 |
require_once(dirname(__FILE__) . '/includes/block_direct_access.php');
|
20 |
class bcn_widget extends WP_Widget
|
21 |
{
|
22 |
-
const version = '5.
|
23 |
-
protected $defaults = array('title' => '', 'pretext' => '', 'type' => 'microdata', 'linked' => true, 'reverse' => false, 'front' => false);
|
24 |
//Default constructor
|
25 |
function __construct()
|
26 |
{
|
@@ -56,14 +56,14 @@ class bcn_widget extends WP_Widget
|
|
56 |
{
|
57 |
//Display the list output breadcrumb
|
58 |
echo $instance['pretext'] . '<ol class="breadcrumb_trail breadcrumbs">';
|
59 |
-
bcn_display_list(false, $instance['linked'], $instance['reverse']);
|
60 |
echo '</ol>';
|
61 |
}
|
62 |
else if($instance['type'] == 'microdata')
|
63 |
{
|
64 |
-
echo '<div class="breadcrumbs" vocab="
|
65 |
//Display the regular output breadcrumb
|
66 |
-
bcn_display(false, $instance['linked'], $instance['reverse']);
|
67 |
echo '</div>';
|
68 |
}
|
69 |
else if($instance['type'] == 'plain')
|
@@ -71,7 +71,7 @@ class bcn_widget extends WP_Widget
|
|
71 |
//Display the pretext
|
72 |
echo $instance['pretext'];
|
73 |
//Display the regular output breadcrumb
|
74 |
-
bcn_display(false, $instance['linked'], $instance['reverse']);
|
75 |
}
|
76 |
else
|
77 |
{
|
@@ -90,6 +90,7 @@ class bcn_widget extends WP_Widget
|
|
90 |
$old_instance['linked'] = isset($new_instance['linked']);
|
91 |
$old_instance['reverse'] = isset($new_instance['reverse']);
|
92 |
$old_instance['front'] = isset($new_instance['front']);
|
|
|
93 |
return $old_instance;
|
94 |
}
|
95 |
function form($instance)
|
@@ -119,6 +120,8 @@ class bcn_widget extends WP_Widget
|
|
119 |
<label for="<?php echo $this->get_field_id('reverse'); ?>"> <?php _e('Reverse the order of the trail', 'breadcrumb-navxt'); ?></label><br />
|
120 |
<input class="checkbox" type="checkbox" name="<?php echo $this->get_field_name('front'); ?>" id="<?php echo $this->get_field_id('front'); ?>" value="true" <?php checked(true, $instance['front']);?> />
|
121 |
<label for="<?php echo $this->get_field_id('front'); ?>"> <?php _e('Hide the trail on the front page', 'breadcrumb-navxt'); ?></label><br />
|
|
|
|
|
122 |
</p>
|
123 |
<?php
|
124 |
}
|
19 |
require_once(dirname(__FILE__) . '/includes/block_direct_access.php');
|
20 |
class bcn_widget extends WP_Widget
|
21 |
{
|
22 |
+
const version = '5.6.0';
|
23 |
+
protected $defaults = array('title' => '', 'pretext' => '', 'type' => 'microdata', 'linked' => true, 'reverse' => false, 'front' => false, 'force' => false);
|
24 |
//Default constructor
|
25 |
function __construct()
|
26 |
{
|
56 |
{
|
57 |
//Display the list output breadcrumb
|
58 |
echo $instance['pretext'] . '<ol class="breadcrumb_trail breadcrumbs">';
|
59 |
+
bcn_display_list(false, $instance['linked'], $instance['reverse'], $instance['force']);
|
60 |
echo '</ol>';
|
61 |
}
|
62 |
else if($instance['type'] == 'microdata')
|
63 |
{
|
64 |
+
echo '<div class="breadcrumbs" vocab="https://schema.org/" typeof="BreadcrumbList">' . $instance['pretext'];
|
65 |
//Display the regular output breadcrumb
|
66 |
+
bcn_display(false, $instance['linked'], $instance['reverse'], $instance['force']);
|
67 |
echo '</div>';
|
68 |
}
|
69 |
else if($instance['type'] == 'plain')
|
71 |
//Display the pretext
|
72 |
echo $instance['pretext'];
|
73 |
//Display the regular output breadcrumb
|
74 |
+
bcn_display(false, $instance['linked'], $instance['reverse'], $instance['force']);
|
75 |
}
|
76 |
else
|
77 |
{
|
90 |
$old_instance['linked'] = isset($new_instance['linked']);
|
91 |
$old_instance['reverse'] = isset($new_instance['reverse']);
|
92 |
$old_instance['front'] = isset($new_instance['front']);
|
93 |
+
$old_instance['force'] = isset($new_instance['force']);
|
94 |
return $old_instance;
|
95 |
}
|
96 |
function form($instance)
|
120 |
<label for="<?php echo $this->get_field_id('reverse'); ?>"> <?php _e('Reverse the order of the trail', 'breadcrumb-navxt'); ?></label><br />
|
121 |
<input class="checkbox" type="checkbox" name="<?php echo $this->get_field_name('front'); ?>" id="<?php echo $this->get_field_id('front'); ?>" value="true" <?php checked(true, $instance['front']);?> />
|
122 |
<label for="<?php echo $this->get_field_id('front'); ?>"> <?php _e('Hide the trail on the front page', 'breadcrumb-navxt'); ?></label><br />
|
123 |
+
<input class="checkbox" type="checkbox" name="<?php echo $this->get_field_name('force'); ?>" id="<?php echo $this->get_field_id('force'); ?>" value="true" <?php checked(true, $instance['force']);?> />
|
124 |
+
<label for="<?php echo $this->get_field_id('force'); ?>"> <?php _e('Ignore breadcrumb cache', 'breadcrumb-navxt'); ?></label><br />
|
125 |
</p>
|
126 |
<?php
|
127 |
}
|
includes/class.mtekk_adminkit.php
CHANGED
@@ -939,12 +939,21 @@ abstract class mtekk_adminKit
|
|
939 |
*/
|
940 |
function textbox($label, $option, $height = '3', $disable = false, $description = '')
|
941 |
{
|
942 |
-
$optid = $this->get_valid_id($option)
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
948 |
}
|
949 |
/**
|
950 |
* This will output a well formed tiny mce ready textbox
|
939 |
*/
|
940 |
function textbox($label, $option, $height = '3', $disable = false, $description = '')
|
941 |
{
|
942 |
+
$optid = $this->get_valid_id($option);
|
943 |
+
if($disable)
|
944 |
+
{?>
|
945 |
+
<input type="hidden" name="<?php echo $this->unique_prefix . '_options[' . $option;?>]" value="<?php echo htmlentities($this->opt[$option], ENT_COMPAT, 'UTF-8');?>" />
|
946 |
+
<?php } ?>
|
947 |
+
<tr valign="top">
|
948 |
+
<th scope="row">
|
949 |
+
<label for="<?php echo $optid;?>"><?php echo $label;?></label>
|
950 |
+
</th>
|
951 |
+
<td>
|
952 |
+
<textarea rows="<?php echo $height;?>" <?php if($disable){echo 'disabled="disabled" class="large-text code disabled"';}else{echo 'class="large-text code"';}?> id="<?php echo $optid;?>" name="<?php echo $this->unique_prefix . '_options[' . $option;?>]"><?php echo htmlentities($this->opt[$option], ENT_COMPAT, 'UTF-8');?></textarea><br />
|
953 |
+
<?php if($description !== ''){?><p class="description"><?php echo $description;?></p><?php }?>
|
954 |
+
</td>
|
955 |
+
</tr>
|
956 |
+
<?php
|
957 |
}
|
958 |
/**
|
959 |
* This will output a well formed tiny mce ready textbox
|
phpunit.xml
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<phpunit
|
2 |
+
bootstrap="tests/bootstrap.php"
|
3 |
+
backupGlobals="false"
|
4 |
+
colors="true"
|
5 |
+
convertErrorsToExceptions="true"
|
6 |
+
convertNoticesToExceptions="true"
|
7 |
+
convertWarningsToExceptions="true"
|
8 |
+
>
|
9 |
+
<testsuites>
|
10 |
+
<testsuite>
|
11 |
+
<directory prefix="test-" suffix=".php">./tests/</directory>
|
12 |
+
</testsuite>
|
13 |
+
</testsuites>
|
14 |
+
<groups>
|
15 |
+
<exclude>
|
16 |
+
<group>uninstall</group>
|
17 |
+
</exclude>
|
18 |
+
</groups>
|
19 |
+
</phpunit>
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: mtekk, hakre
|
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=FD5XEU783BR8U&lc=US&item_name=Breadcrumb%20NavXT%20Donation¤cy_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted
|
4 |
Tags: breadcrumb, breadcrumbs, trail, navigation, menu, widget
|
5 |
Requires at least: 4.4
|
6 |
-
Tested up to: 4.
|
7 |
-
Stable tag: 5.
|
8 |
License: GPLv2 or later
|
9 |
Adds breadcrumb navigation showing the visitor's path to their current location.
|
10 |
|
@@ -33,7 +33,7 @@ Breadcrumb NavXT now supports WordPress.org language packs. Want to translate Br
|
|
33 |
|
34 |
== Installation ==
|
35 |
Open the appropriate file for your theme (typically header.php). This can be done within WordPress’ administration panel through Presentation > Theme Editor or through your favorite text editor. Place the following code where you want the breadcrumb trail to appear.
|
36 |
-
`<div class="breadcrumbs" typeof="BreadcrumbList" vocab="
|
37 |
<?php if(function_exists('bcn_display'))
|
38 |
{
|
39 |
bcn_display();
|
@@ -53,6 +53,14 @@ Please visit [Breadcrumb NavXT's Documentation](http://mtekk.us/code/breadcrumb-
|
|
53 |
|
54 |
== Changelog ==
|
55 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
= 5.5.2 =
|
57 |
Release date: September 30th, 2016
|
58 |
|
@@ -199,11 +207,11 @@ Release date: November 20th, 2013
|
|
199 |
|
200 |
== Upgrade Notice ==
|
201 |
|
|
|
|
|
|
|
202 |
= 5.5.0 =
|
203 |
This version requires PHP5.3 or newer. This version introduces contextually aware taxonomy selection for post hierarchies.
|
204 |
|
205 |
= 5.4.0 =
|
206 |
-
This version requires PHP5.3 or newer. This version introduces three new filters: `bcn_post_terms`, `bcn_add_post_type_arg`, and `bcn_pick_post_term`.
|
207 |
-
|
208 |
-
= 5.3.0 =
|
209 |
-
This version requires PHP5.3 or newer. This version adds in support for post type restricted archives (date and taxonomy).
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=FD5XEU783BR8U&lc=US&item_name=Breadcrumb%20NavXT%20Donation¤cy_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted
|
4 |
Tags: breadcrumb, breadcrumbs, trail, navigation, menu, widget
|
5 |
Requires at least: 4.4
|
6 |
+
Tested up to: 4.7
|
7 |
+
Stable tag: 5.6.0
|
8 |
License: GPLv2 or later
|
9 |
Adds breadcrumb navigation showing the visitor's path to their current location.
|
10 |
|
33 |
|
34 |
== Installation ==
|
35 |
Open the appropriate file for your theme (typically header.php). This can be done within WordPress’ administration panel through Presentation > Theme Editor or through your favorite text editor. Place the following code where you want the breadcrumb trail to appear.
|
36 |
+
`<div class="breadcrumbs" typeof="BreadcrumbList" vocab="https://schema.org/">
|
37 |
<?php if(function_exists('bcn_display'))
|
38 |
{
|
39 |
bcn_display();
|
53 |
|
54 |
== Changelog ==
|
55 |
|
56 |
+
= 5.6.0 =
|
57 |
+
Release date: December 23rd, 2016
|
58 |
+
|
59 |
+
* New feature: Added fourth parameter, `$force`, to `bcn_display()`, and `bcn_display_list()` allowing the internal caching mechanism to be bypassed.
|
60 |
+
* New feature: Moved to multiple line text boxes rather than regular single line text inputs for the breadcrumb templates in the settings page to enhance visibility.
|
61 |
+
* Bug fix: Fixed issue where general searches had the blog breadcrumb in the breadcrumb trail.
|
62 |
+
* Bug fix: Fixed issue where the blog breadcrumb options were erroneously made available when a Posts Page was not set.
|
63 |
+
|
64 |
= 5.5.2 =
|
65 |
Release date: September 30th, 2016
|
66 |
|
207 |
|
208 |
== Upgrade Notice ==
|
209 |
|
210 |
+
= 5.6.0 =
|
211 |
+
This version requires PHP5.3 or newer. This version introduces a new 4th optional parameter to `bcn_display()` and `bcn_display_list()` that bypasses the internal caching mechanism.
|
212 |
+
|
213 |
= 5.5.0 =
|
214 |
This version requires PHP5.3 or newer. This version introduces contextually aware taxonomy selection for post hierarchies.
|
215 |
|
216 |
= 5.4.0 =
|
217 |
+
This version requires PHP5.3 or newer. This version introduces three new filters: `bcn_post_terms`, `bcn_add_post_type_arg`, and `bcn_pick_post_term`.
|
|
|
|
|
|