/** * The administrative page for Breadcrumb NavXT */ function admin_page() { global $wp_taxonomies, $wp_post_types; $this->security(); //Let's call the parent version of the page, will handle our setting stuff parent::admin_page(); ?> <div class="wrap"><div id="icon-options-general" class="icon32"></div><h2><?php _e('Breadcrumb NavXT Settings', 'breadcrumb-navxt'); ?> </h2> <?php //We exit after the version check if there is an action the user needs to take before saving settings if (!$this->version_check(get_option($this->unique_prefix . '_version'))) { return; } ?> <form action="<?php echo $this->admin_url(); ?> " method="post" id="bcn_admin-options"> <?php settings_fields('bcn_options'); ?> <div id="hasadmintabs"> <fieldset id="general" class="bcn_options"> <h3 class="tab-title" title="<?php _e('A collection of settings most likely to be modified are located under this tab.', 'breadcrumb-navxt'); ?> "><?php _e('General', 'breadcrumb-navxt'); ?> </h3> <h3><?php _e('General', 'breadcrumb-navxt'); ?> </h3> <table class="form-table"> <?php $this->input_text(__('Breadcrumb Separator', 'breadcrumb-navxt'), 'hseparator', 'regular-text', false, __('Placed in between each breadcrumb.', 'breadcrumb-navxt')); ?> <tr valign="top"> <th scope="row"> <?php _e('Title Length', 'breadcrumb-navxt'); ?> </th> <td> <label> <input name="bcn_options[blimit_title]" type="checkbox" id="blimit_title" value="true" <?php checked(true, $this->opt['blimit_title']); ?> /> <?php _e('Limit the length of the breadcrumb title.', 'breadcrumb-navxt'); ?> </label><br /> <ul> <li> <label for="amax_title_length"> <?php _e('Max Title Length: ', 'breadcrumb-navxt'); ?> <input type="number" name="bcn_options[amax_title_length]" id="amax_title_length" min="1" step="1" value="<?php echo esc_html($this->opt['amax_title_length'], ENT_COMPAT, 'UTF-8'); ?> " class="small-text" /> </label> </li> </ul> </td> </tr> <?php do_action($this->unique_prefix . '_settings_general'); ?> </table> <h3><?php _e('Current Item', 'breadcrumb-navxt'); ?> </h3> <table class="form-table"> <?php $this->input_check(__('Link Current Item', 'breadcrumb-navxt'), 'bcurrent_item_linked', __('Yes', 'breadcrumb-navxt')); $this->input_check(__('Paged Breadcrumb', 'breadcrumb-navxt'), 'bpaged_display', __('Include the paged breadcrumb in the breadcrumb trail.', 'breadcrumb-navxt'), false, __('Indicates that the user is on a page other than the first on paginated posts/pages.', 'breadcrumb-navxt')); $this->input_text(__('Paged Template', 'breadcrumb-navxt'), 'Hpaged_template', 'large-text', false, __('The template for paged breadcrumbs.', 'breadcrumb-navxt')); do_action($this->unique_prefix . '_settings_current_item'); ?> </table> <h3><?php _e('Home Breadcrumb', 'breadcrumb-navxt'); ?> </h3> <table class="form-table"> <?php $this->input_check(__('Home Breadcrumb', 'breadcrumb-navxt'), 'bhome_display', __('Place the home breadcrumb in the trail.', 'breadcrumb-navxt')); $this->input_text(__('Home Template', 'breadcrumb-navxt'), 'Hhome_template', 'large-text', false, __('The template for the home breadcrumb.', 'breadcrumb-navxt')); $this->input_text(__('Home Template (Unlinked)', 'breadcrumb-navxt'), 'Hhome_template_no_anchor', 'large-text', false, __('The template for the home breadcrumb, used when the breadcrumb is not linked.', 'breadcrumb-navxt')); do_action($this->unique_prefix . '_settings_home'); ?> </table> <h3><?php _e('Blog Breadcrumb', 'breadcrumb-navxt'); ?> </h3> <table class="form-table"> <?php $this->input_check(__('Blog Breadcrumb', 'breadcrumb-navxt'), 'bblog_display', __('Place the blog breadcrumb in the trail.', 'breadcrumb-navxt'), get_option('show_on_front') !== "page"); $this->input_text(__('Blog Template', 'breadcrumb-navxt'), 'Hblog_template', 'large-text', get_option('show_on_front') !== "page", __('The template for the blog breadcrumb, used only in static front page environments.', 'breadcrumb-navxt')); $this->input_text(__('Blog Template (Unlinked)', 'breadcrumb-navxt'), 'Hblog_template_no_anchor', 'large-text', get_option('show_on_front') !== "page", __('The template for the blog breadcrumb, used only in static front page environments and when the breadcrumb is not linked.', 'breadcrumb-navxt')); do_action($this->unique_prefix . '_settings_blog'); ?> </table> <h3><?php _e('Mainsite Breadcrumb', 'breadcrumb-navxt'); ?> </h3> <table class="form-table"> <?php $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()); $this->input_text(__('Main Site Home Template', 'breadcrumb-navxt'), 'Hmainsite_template', 'large-text', !is_multisite(), __('The template for the main site home breadcrumb, used only in multisite environments.', 'breadcrumb-navxt')); $this->input_text(__('Main Site Home Template (Unlinked)', 'breadcrumb-navxt'), 'Hmainsite_template_no_anchor', 'large-text', !is_multisite(), __('The template for the main site home breadcrumb, used only in multisite environments and when the breadcrumb is not linked.', 'breadcrumb-navxt')); do_action($this->unique_prefix . '_settings_mainsite'); ?> </table> <?php do_action($this->unique_prefix . '_after_settings_tab_general'); ?> </fieldset> <fieldset id="post" class="bcn_options"> <h3 class="tab-title" title="<?php _e('The settings for all post types (Posts, Pages, and Custom Post Types) are located under this tab.', 'breadcrumb-navxt'); ?> "><?php _e('Post Types', 'breadcrumb-navxt'); ?> </h3> <h3><?php _e('Posts', 'breadcrumb-navxt'); ?> </h3> <table class="form-table"> <?php $this->input_text(__('Post Template', 'breadcrumb-navxt'), 'Hpost_post_template', 'large-text', false, __('The template for post breadcrumbs.', 'breadcrumb-navxt')); $this->input_text(__('Post Template (Unlinked)', 'breadcrumb-navxt'), 'Hpost_post_template_no_anchor', 'large-text', false, __('The template for post breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt')); $this->input_check(__('Post Hierarchy Display', 'breadcrumb-navxt'), 'bpost_post_taxonomy_display', __('Show the taxonomy leading to a post in the breadcrumb trail.', 'breadcrumb-navxt')); ?> <tr valign="top"> <th scope="row"> <?php _e('Post Hierarchy', 'breadcrumb-navxt'); ?> </th> <td> <?php $this->input_radio('Spost_post_taxonomy_type', 'category', __('Categories')); $this->input_radio('Spost_post_taxonomy_type', 'date', __('Dates')); $this->input_radio('Spost_post_taxonomy_type', 'post_tag', __('Tags')); //We use the value 'page' but really, this will follow the parent post hierarchy $this->input_radio('Spost_post_taxonomy_type', 'page', __('Post Parent')); //Loop through all of the taxonomies in the array foreach ($wp_taxonomies as $taxonomy) { //Check for non-public taxonomies if (!apply_filters('bcn_show_tax_private', $taxonomy->public, $taxonomy->name)) { continue; } //We only want custom taxonomies if (($taxonomy->object_type == 'post' || is_array($taxonomy->object_type) && in_array('post', $taxonomy->object_type)) && !$taxonomy->_builtin) { $this->input_radio('Spost_post_taxonomy_type', $taxonomy->name, mb_convert_case($taxonomy->label, MB_CASE_TITLE, 'UTF-8')); } } ?> <p class="description"><?php _e('The hierarchy which the breadcrumb trail will show. Note that the "Post Parent" option may require an additional plugin to behave as expected since this is a non-hierarchical post type.', 'breadcrumb-navxt'); ?> </p> </td> </tr> </table> <h3><?php _e('Pages', 'breadcrumb-navxt'); ?> </h3> <table class="form-table"> <?php $this->input_text(__('Page Template', 'breadcrumb-navxt'), 'Hpost_page_template', 'large-text', false, __('The template for page breadcrumbs.', 'breadcrumb-navxt')); $this->input_text(__('Page Template (Unlinked)', 'breadcrumb-navxt'), 'Hpost_page_template_no_anchor', 'large-text', false, __('The template for page breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt')); $this->input_text(__('Attachment Template', 'breadcrumb-navxt'), 'Hpost_attachment_template', 'large-text', false, __('The template for attachment breadcrumbs.', 'breadcrumb-navxt')); $this->input_text(__('Attachment Template (Unlinked)', 'breadcrumb-navxt'), 'Hpost_attachment_template_no_anchor', 'large-text', false, __('The template for attachment breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt')); ?> </table> <?php //Loop through all of the post types in the array foreach ($wp_post_types as $post_type) { //Check for non-public CPTs if (!apply_filters('bcn_show_cpt_private', $post_type->public, $post_type->name)) { continue; } //We only want custom post types if (!$post_type->_builtin) { $singular_name_lc = mb_strtolower($post_type->labels->singular_name, 'UTF-8'); ?> <h3><?php echo $post_type->labels->singular_name; ?> </h3> <table class="form-table"> <?php $this->input_text(sprintf(__('%s Template', 'breadcrumb-navxt'), $post_type->labels->singular_name), 'Hpost_' . $post_type->name . '_template', 'large-text', false, sprintf(__('The template for %s breadcrumbs.', 'breadcrumb-navxt'), $singular_name_lc)); $this->input_text(sprintf(__('%s Template (Unlinked)', 'breadcrumb-navxt'), $post_type->labels->singular_name), 'Hpost_' . $post_type->name . '_template_no_anchor', 'large-text', false, sprintf(__('The template for %s breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'), $singular_name_lc)); $optid = $this->get_valid_id('apost_' . $post_type->name . '_root'); ?> <tr valign="top"> <th scope="row"> <label for="<?php echo $optid; ?> "><?php printf(__('%s Root Page', 'breadcrumb-navxt'), $post_type->labels->singular_name); ?> </label> </th> <td> <?php wp_dropdown_pages(array('name' => $this->unique_prefix . '_options[apost_' . $post_type->name . '_root]', 'id' => $optid, 'echo' => 1, 'show_option_none' => __('— Select —'), 'option_none_value' => '0', 'selected' => $this->opt['apost_' . $post_type->name . '_root'])); ?> </td> </tr> <?php $this->input_check(sprintf(__('%s Archive Display', 'breadcrumb-navxt'), $post_type->labels->singular_name), 'bpost_' . $post_type->name . '_archive_display', sprintf(__('Show the breadcrumb for the %s post type archives in the breadcrumb trail.', 'breadcrumb-navxt'), $singular_name_lc), !$post_type->has_archive); $this->input_check(sprintf(__('%s Hierarchy Display', 'breadcrumb-navxt'), $post_type->labels->singular_name), 'bpost_' . $post_type->name . '_taxonomy_display', sprintf(__('Show the taxonomy leading to a %s in the breadcrumb trail.', 'breadcrumb-navxt'), $singular_name_lc)); ?> <tr valign="top"> <th scope="row"> <?php printf(__('%s Hierarchy', 'breadcrumb-navxt'), $post_type->labels->singular_name); ?> </th> <td> <?php //We use the value 'page' but really, this will follow the parent post hierarchy $this->input_radio('Spost_' . $post_type->name . '_taxonomy_type', 'page', __('Post Parent')); //Loop through all of the taxonomies in the array foreach ($wp_taxonomies as $taxonomy) { //Check for non-public taxonomies if (!apply_filters('bcn_show_tax_private', $taxonomy->public, $taxonomy->name)) { continue; } //We only want custom taxonomies if ($taxonomy->object_type == $post_type->name || in_array($post_type->name, $taxonomy->object_type)) { $this->input_radio('Spost_' . $post_type->name . '_taxonomy_type', $taxonomy->name, $taxonomy->labels->singular_name); } } ?> <p class="description"> <?php if ($post_type->hierarchical) { _e('The hierarchy which the breadcrumb trail will show.', 'breadcrumb-navxt'); } else { _e('The hierarchy which the breadcrumb trail will show. Note that the "Post Parent" option may require an additional plugin to behave as expected since this is a non-hierarchical post type.', 'breadcrumb-navxt'); } ?> </p> </td> </tr> </table> <?php } } do_action($this->unique_prefix . '_after_settings_tab_post'); ?> </fieldset> <fieldset id="tax" class="bcn_options alttab"> <h3 class="tab-title" title="<?php _e('The settings for all taxonomies (including Categories, Tags, and custom taxonomies) are located under this tab.', 'breadcrumb-navxt'); ?> "><?php _e('Taxonomies', 'breadcrumb-navxt'); ?> </h3> <h3><?php _e('Categories', 'breadcrumb-navxt'); ?> </h3> <table class="form-table"> <?php $this->input_text(__('Category Template', 'breadcrumb-navxt'), 'Hcategory_template', 'large-text', false, __('The template for category breadcrumbs.', 'breadcrumb-navxt')); $this->input_text(__('Category Template (Unlinked)', 'breadcrumb-navxt'), 'Hcategory_template_no_anchor', 'large-text', false, __('The template for category breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt')); ?> </table> <h3><?php _e('Tags', 'breadcrumb-navxt'); ?> </h3> <table class="form-table"> <?php $this->input_text(__('Tag Template', 'breadcrumb-navxt'), 'Hpost_tag_template', 'large-text', false, __('The template for tag breadcrumbs.', 'breadcrumb-navxt')); $this->input_text(__('Tag Template (Unlinked)', 'breadcrumb-navxt'), 'Hpost_tag_template_no_anchor', 'large-text', false, __('The template for tag breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt')); ?> </table> <h3><?php _e('Post Formats', 'breadcrumb-navxt'); ?> </h3> <table class="form-table"> <?php $this->input_text(__('Post Format Template', 'breadcrumb-navxt'), 'Hpost_format_template', 'large-text', false, __('The template for post format breadcrumbs.', 'breadcrumb-navxt')); $this->input_text(__('Post Format Template (Unlinked)', 'breadcrumb-navxt'), 'Hpost_format_template_no_anchor', 'large-text', false, __('The template for post_format breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt')); ?> </table> <?php //Loop through all of the taxonomies in the array foreach ($wp_taxonomies as $taxonomy) { //Check for non-public taxonomies if (!apply_filters('bcn_show_tax_private', $taxonomy->public, $taxonomy->name)) { continue; } //We only want custom taxonomies if (!$taxonomy->_builtin) { $label_lc = mb_strtolower($taxonomy->label, 'UTF-8'); ?> <h3><?php echo mb_convert_case($taxonomy->label, MB_CASE_TITLE, 'UTF-8'); ?> </h3> <table class="form-table"> <?php $this->input_text(sprintf(__('%s Template', 'breadcrumb-navxt'), $taxonomy->labels->singular_name), 'H' . $taxonomy->name . '_template', 'large-text', false, sprintf(__('The template for %s breadcrumbs.', 'breadcrumb-navxt'), $label_lc)); $this->input_text(sprintf(__('%s Template (Unlinked)', 'breadcrumb-navxt'), $taxonomy->labels->singular_name), 'H' . $taxonomy->name . '_template_no_anchor', 'large-text', false, sprintf(__('The template for %s breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt'), $label_lc)); ?> </table> <?php } } do_action($this->unique_prefix . '_after_settings_tab_taxonomy'); ?> </fieldset> <fieldset id="miscellaneous" class="bcn_options"> <h3 class="tab-title" title="<?php _e('The settings for author and date archives, searches, and 404 pages are located under this tab.', 'breadcrumb-navxt'); ?> "><?php _e('Miscellaneous', 'breadcrumb-navxt'); ?> </h3> <h3><?php _e('Author Archives', 'breadcrumb-navxt'); ?> </h3> <table class="form-table"> <?php $this->input_text(__('Author Template', 'breadcrumb-navxt'), 'Hauthor_template', 'large-text', false, __('The template for author breadcrumbs.', 'breadcrumb-navxt')); $this->input_text(__('Author Template (Unlinked)', 'breadcrumb-navxt'), 'Hauthor_template_no_anchor', 'large-text', false, __('The template for author breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt')); $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')); ?> </table> <h3><?php _e('Miscellaneous', 'breadcrumb-navxt'); ?> </h3> <table class="form-table"> <?php $this->input_text(__('Date Template', 'breadcrumb-navxt'), 'Hdate_template', 'large-text', false, __('The template for date breadcrumbs.', 'breadcrumb-navxt')); $this->input_text(__('Date Template (Unlinked)', 'breadcrumb-navxt'), 'Hdate_template_no_anchor', 'large-text', false, __('The template for date breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb-navxt')); $this->input_text(__('Search Template', 'breadcrumb-navxt'), 'Hsearch_template', 'large-text', false, __('The anchor template for search breadcrumbs, used only when the search results span several pages.', 'breadcrumb-navxt')); $this->input_text(__('Search Template (Unlinked)', 'breadcrumb-navxt'), 'Hsearch_template_no_anchor', 'large-text', false, __('The anchor template for search breadcrumbs, used only when the search results span several pages and the breadcrumb is not linked.', 'breadcrumb-navxt')); $this->input_text(__('404 Title', 'breadcrumb-navxt'), 'S404_title', 'regular-text'); $this->input_text(__('404 Template', 'breadcrumb-navxt'), 'H404_template', 'large-text', false, __('The template for 404 breadcrumbs.', 'breadcrumb-navxt')); ?> </table> <?php do_action($this->unique_prefix . '_after_settings_tab_miscellaneous'); ?> </fieldset> </div> <p class="submit"><input type="submit" class="button-primary" name="bcn_admin_options" value="<?php esc_attr_e('Save Changes'); ?> " /></p> </form> <?php //Need to add a separate menu thing for this $this->import_form(); ?> </div> <?php }
/** * The administrative page for Breadcrumb NavXT */ function admin_page() { global $wp_taxonomies, $wp_post_types; $this->security(); //Let's call the parent version of the page, will handle our setting stuff parent::admin_page(); ?> <div class="wrap"><h2><?php _e('Breadcrumb NavXT Settings', 'breadcrumb_navxt'); ?> </h2> <?php //We exit after the version check if there is an action the user needs to take before saving settings if (!$this->version_check(get_option($this->unique_prefix . '_version'))) { return; } ?> <form action="options-general.php?page=breadcrumb_navxt" method="post" id="bcn_admin-options"> <?php settings_fields('bcn_options'); ?> <div id="hasadmintabs"> <fieldset id="general" class="bcn_options"> <h3><?php _e('General', 'breadcrumb_navxt'); ?> </h3> <table class="form-table"> <?php $this->input_text(__('Breadcrumb Separator', 'breadcrumb_navxt'), 'hseparator', '32', false, __('Placed in between each breadcrumb.', 'breadcrumb_navxt')); $this->input_text(__('Breadcrumb Max Title Length', 'breadcrumb_navxt'), 'amax_title_length', '10'); ?> <tr valign="top"> <th scope="row"> <?php _e('Home Breadcrumb', 'breadcrumb_navxt'); ?> </th> <td> <label> <input name="bcn_options[bhome_display]" type="checkbox" id="bhome_display" value="true" <?php checked(true, $this->opt['bhome_display']); ?> /> <?php _e('Place the home breadcrumb in the trail.', 'breadcrumb_navxt'); ?> </label><br /> <ul> <li> <label for="Shome_title"> <?php _e('Home Title: ', 'breadcrumb_navxt'); ?> <input type="text" name="bcn_options[Shome_title]" id="Shome_title" value="<?php echo esc_html($this->opt['Shome_title'], ENT_COMPAT, 'UTF-8'); ?> " size="20" /> </label> </li> </ul> </td> </tr> <?php $this->input_text(__('Home Template', 'breadcrumb_navxt'), 'Hhome_template', '64', false, __('The template for the home breadcrumb.', 'breadcrumb_navxt')); $this->input_text(__('Home Template (Unlinked)', 'breadcrumb_navxt'), 'Hhome_template_no_anchor', '64', false, __('The template for the home breadcrumb, used when the breadcrumb is not linked.', 'breadcrumb_navxt')); $this->input_check(__('Blog Breadcrumb', 'breadcrumb_navxt'), 'bblog_display', __('Place the blog breadcrumb in the trail.', 'breadcrumb_navxt'), get_option('show_on_front') !== "page"); $this->input_text(__('Blog Template', 'breadcrumb_navxt'), 'Hblog_template', '64', get_option('show_on_front') !== "page", __('The template for the blog breadcrumb, used only in static front page environments.', 'breadcrumb_navxt')); $this->input_text(__('Blog Template (Unlinked)', 'breadcrumb_navxt'), 'Hblog_template_no_anchor', '64', get_option('show_on_front') !== "page", __('The template for the blog breadcrumb, used only in static front page environments and when the breadcrumb is not linked.', 'breadcrumb_navxt')); ?> <tr valign="top"> <th scope="row"> <?php _e('Main Site Breadcrumb', 'breadcrumb_navxt'); ?> </th> <td> <label> <input name="bcn_options[bmainsite_display]" type="checkbox" id="bmainsite_display" <?php if (!is_multisite()) { echo 'disabled="disabled" class="disabled"'; } ?> value="true" <?php checked(true, $this->opt['bmainsite_display']); ?> /> <?php _e('Place the main site home breadcrumb in the trail in an multisite setup.', 'breadcrumb_navxt'); ?> </label><br /> <ul> <li> <label for="Smainsite_title"> <?php _e('Main Site Home Title: ', 'breadcrumb_navxt'); ?> <input type="text" name="bcn_options[Smainsite_title]" id="Smainsite_title" <?php if (!is_multisite()) { echo 'disabled="disabled" class="disabled"'; } ?> value="<?php echo htmlentities($this->opt['Smainsite_title'], ENT_COMPAT, 'UTF-8'); ?> " size="20" /> <?php if (!is_multisite()) { ?> <input type="hidden" name="bcn_options[Smainsite_title]" value="<?php echo htmlentities($this->opt['Smainsite_title'], ENT_COMPAT, 'UTF-8'); ?> " /><?php } ?> </label> </li> </ul> </td> </tr> <?php $this->input_text(__('Main Site Home Template', 'breadcrumb_navxt'), 'Hmainsite_template', '64', !is_multisite(), __('The template for the main site home breadcrumb, used only in multisite environments.', 'breadcrumb_navxt')); $this->input_text(__('Main Site Home Template (Unlinked)', 'breadcrumb_navxt'), 'Hmainsite_template_no_anchor', '64', !is_multisite(), __('The template for the main site home breadcrumb, used only in multisite environments and when the breadcrumb is not linked.', 'breadcrumb_navxt')); ?> </table> </fieldset> <fieldset id="current" class="bcn_options"> <h3><?php _e('Current Item', 'breadcrumb_navxt'); ?> </h3> <table class="form-table"> <?php $this->input_check(__('Link Current Item', 'breadcrumb_navxt'), 'bcurrent_item_linked', __('Yes')); //$this->input_text(__('Current Item Template', 'breadcrumb_navxt'), 'Hcurrent_item_template', '64', false, __('The template for current item breadcrumbs.', 'breadcrumb_navxt')); //$this->input_text(__('Current Item Template (Unlinked)', 'breadcrumb_navxt'), 'Hcurrent_item_template_no_anchor', '64', false, __('The template for current item breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb_navxt')); $this->input_check(__('Paged Breadcrumb', 'breadcrumb_navxt'), 'bpaged_display', __('Include the paged breadcrumb in the breadcrumb trail.', 'breadcrumb_navxt'), false, __('Indicates that the user is on a page other than the first on paginated posts/pages.', 'breadcrumb_navxt')); $this->input_text(__('Paged Template', 'breadcrumb_navxt'), 'Hpaged_template', '64', false, __('The template for paged breadcrumbs.', 'breadcrumb_navxt')); ?> </table> </fieldset> <fieldset id="single" class="bcn_options"> <h3><?php _e('Posts & Pages', 'breadcrumb_navxt'); ?> </h3> <table class="form-table"> <?php $this->input_text(__('Post Template', 'breadcrumb_navxt'), 'Hpost_post_template', '64', false, __('The template for post breadcrumbs.', 'breadcrumb_navxt')); $this->input_text(__('Post Template (Unlinked)', 'breadcrumb_navxt'), 'Hpost_post_template_no_anchor', '64', false, __('The template for post breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb_navxt')); $this->input_check(__('Post Taxonomy Display', 'breadcrumb_navxt'), 'bpost_post_taxonomy_display', __('Show the taxonomy leading to a post in the breadcrumb trail.', 'breadcrumb_navxt')); ?> <tr valign="top"> <th scope="row"> <?php _e('Post Taxonomy', 'breadcrumb_navxt'); ?> </th> <td> <?php $this->input_radio('Spost_post_taxonomy_type', 'category', __('Categories')); $this->input_radio('Spost_post_taxonomy_type', 'date', __('Dates')); $this->input_radio('Spost_post_taxonomy_type', 'post_tag', __('Tags')); $this->input_radio('Spost_post_taxonomy_type', 'page', __('Pages')); //Loop through all of the taxonomies in the array foreach ($wp_taxonomies as $taxonomy) { //We only want custom taxonomies if (($taxonomy->object_type == 'post' || is_array($taxonomy->object_type) && in_array('post', $taxonomy->object_type)) && !$taxonomy->_builtin) { $this->input_radio('Spost_post_taxonomy_type', $taxonomy->name, mb_convert_case(__($taxonomy->label), MB_CASE_TITLE, 'UTF-8')); } } ?> <span class="setting-description"><?php _e('The taxonomy which the breadcrumb trail will show.', 'breadcrumb_navxt'); ?> </span> </td> </tr> <?php $this->input_text(__('Page Template', 'breadcrumb_navxt'), 'Hpost_page_template', '64', false, __('The template for page breadcrumbs.', 'breadcrumb_navxt')); $this->input_text(__('Page Template (Unlinked)', 'breadcrumb_navxt'), 'Hpost_page_template_no_anchor', '64', false, __('The template for page breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb_navxt')); $this->input_text(__('Attachment Template', 'breadcrumb_navxt'), 'Hpost_attachment_template', '64', false, __('The template for attachment breadcrumbs.', 'breadcrumb_navxt')); $this->input_text(__('Attachment Template (Unlinked)', 'breadcrumb_navxt'), 'Hpost_attachment_template_no_anchor', '64', false, __('The template for attachment breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb_navxt')); ?> </table> </fieldset> <?php //Loop through all of the post types in the array foreach ($wp_post_types as $post_type) { //We only want custom post types if (!$post_type->_builtin) { //If the post type does not have settings in the options array yet, we need to load some defaults if (!array_key_exists('Hpost_' . $post_type->name . '_template', $this->opt) || !$post_type->hierarchical && !array_key_exists('Spost_' . $post_type->name . '_taxonomy_type', $this->opt)) { //Add the necessary option array members $this->opt['Hpost_' . $post_type->name . '_template'] = __('<a title="Go to %title%." href="%link%">%htitle%</a>', 'breadcrumb_navxt'); $this->opt['Hpost_' . $post_type->name . '_template_no_anchor'] = __('%htitle%', 'breadcrumb_navxt'); $this->opt['bpost_' . $post_type->name . '_archive_display'] = $post_type->has_archive; //Do type dependent tasks if ($post_type->hierarchical) { //Set post_root for hierarchical types $this->opt['apost_' . $post_type->name . '_root'] = get_option('page_on_front'); } else { //Set post_root for flat types $this->opt['apost_' . $post_type->name . '_root'] = get_option('page_for_posts'); //Default to not displaying a taxonomy $this->opt['bpost_' . $post_type->name . '_taxonomy_display'] = false; //Loop through all of the possible taxonomies foreach ($wp_taxonomies as $taxonomy) { //Activate the first taxonomy valid for this post type and exit the loop if ($taxonomy->object_type == $post_type->name || in_array($post_type->name, $taxonomy->object_type)) { $this->opt['bpost_' . $post_type->name . '_taxonomy_display'] = true; $this->opt['Spost_' . $post_type->name . '_taxonomy_type'] = $taxonomy->name; break; } } //If there are no valid taxonomies for this type, we default to not displaying taxonomies for this post type if (!isset($this->opt['Spost_' . $post_type->name . '_taxonomy_type'])) { $this->opt['Spost_' . $post_type->name . '_taxonomy_type'] = 'date'; } } } ?> <fieldset id="post_<?php echo $post_type->name; ?> " class="bcn_options"> <h3><?php echo $post_type->labels->singular_name; ?> </h3> <table class="form-table"> <?php $this->input_text(sprintf(__('%s Template', 'breadcrumb_navxt'), $post_type->labels->singular_name), 'Hpost_' . $post_type->name . '_template', '64', false, sprintf(__('The template for %s breadcrumbs.', 'breadcrumb_navxt'), strtolower(__($post_type->labels->singular_name)))); $this->input_text(sprintf(__('%s Template (Unlinked)', 'breadcrumb_navxt'), $post_type->labels->singular_name), 'Hpost_' . $post_type->name . '_template_no_anchor', '64', false, sprintf(__('The template for %s breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb_navxt'), strtolower(__($post_type->labels->singular_name)))); $optid = $this->get_valid_id('apost_' . $post_type->name . '_root'); ?> <tr valign="top"> <th scope="row"> <label for="<?php echo $optid; ?> "><?php printf(__('%s Root Page', 'breadcrumb_navxt'), $post_type->labels->singular_name); ?> </label> </th> <td> <?php wp_dropdown_pages(array('name' => $this->unique_prefix . '_options[apost_' . $post_type->name . '_root]', 'id' => $optid, 'echo' => 1, 'show_option_none' => __('— Select —'), 'option_none_value' => '0', 'selected' => $this->opt['apost_' . $post_type->name . '_root'])); ?> </td> </tr> <?php $this->input_check(sprintf(__('%s Archive Display', 'breadcrumb_navxt'), $post_type->labels->singular_name), 'bpost_' . $post_type->name . '_archive_display', sprintf(__('Show the breadcrumb for the %s post type archives in the breadcrumb trail.', 'breadcrumb_navxt'), strtolower(__($post_type->labels->singular_name))), !$post_type->has_archive); //If it is flat, we need a taxonomy selection if (!$post_type->hierarchical) { $this->input_check(sprintf(__('%s Taxonomy Display', 'breadcrumb_navxt'), $post_type->labels->singular_name), 'bpost_' . $post_type->name . '_taxonomy_display', sprintf(__('Show the taxonomy leading to a %s in the breadcrumb trail.', 'breadcrumb_navxt'), strtolower(__($post_type->labels->singular_name)))); ?> <tr valign="top"> <th scope="row"> <?php printf(__('%s Taxonomy', 'breadcrumb_navxt'), $post_type->labels->singular_name); ?> </th> <td> <?php $this->input_radio('Spost_' . $post_type->name . '_taxonomy_type', 'date', __('Dates')); $this->input_radio('Spost_' . $post_type->name . '_taxonomy_type', 'page', __('Pages')); //Loop through all of the taxonomies in the array foreach ($wp_taxonomies as $taxonomy) { //We only want custom taxonomies if ($taxonomy->object_type == $post_type->name || in_array($post_type->name, $taxonomy->object_type)) { $this->input_radio('Spost_' . $post_type->name . '_taxonomy_type', $taxonomy->name, $taxonomy->labels->singular_name); } } ?> <span class="setting-description"><?php _e('The taxonomy which the breadcrumb trail will show.', 'breadcrumb_navxt'); ?> </span> </td> </tr> <?php } ?> </table> </fieldset> <?php } } ?> <fieldset id="tax" class="bcn_options alttab"> <h3><?php _e('Categories & Tags', 'breadcrumb_navxt'); ?> </h3> <table class="form-table"> <?php $this->input_text(__('Category Template', 'breadcrumb_navxt'), 'Hcategory_template', '64', false, __('The template for category breadcrumbs.', 'breadcrumb_navxt')); $this->input_text(__('Category Template (Unlinked)', 'breadcrumb_navxt'), 'Hcategory_template_no_anchor', '64', false, __('The template for category breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb_navxt')); $this->input_text(__('Tag Template', 'breadcrumb_navxt'), 'Hpost_tag_template', '64', false, __('The template for tag breadcrumbs.', 'breadcrumb_navxt')); $this->input_text(__('Tag Template (Unlinked)', 'breadcrumb_navxt'), 'Hpost_tag_template_no_anchor', '64', false, __('The template for tag breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb_navxt')); ?> </table> </fieldset> <?php //Loop through all of the taxonomies in the array foreach ($wp_taxonomies as $taxonomy) { //We only want custom taxonomies if (!$taxonomy->_builtin) { //If the taxonomy does not have settings in the options array yet, we need to load some defaults if (!array_key_exists('H' . $taxonomy->name . '_template', $this->opt)) { //Add the necessary option array members $this->opt['H' . $taxonomy->name . '_template'] = __(sprintf('<a title="Go to the %%title%% %s archives." href="%%link%%">%%htitle%%</a>', $taxonomy->labels->singular_name), 'breadcrumb_navxt'); $this->opt['H' . $taxonomy->name . '_template_no_anchor'] = __(sprintf('%%htitle%%', $taxonomy->labels->singular_name), 'breadcrumb_navxt'); } ?> <fieldset id="<?php echo $taxonomy->name; ?> " class="bcn_options alttab"> <h3><?php echo mb_convert_case(__($taxonomy->label), MB_CASE_TITLE, 'UTF-8'); ?> </h3> <table class="form-table"> <?php $this->input_text(sprintf(__('%s Template', 'breadcrumb_navxt'), $taxonomy->labels->singular_name), 'H' . $taxonomy->name . '_template', '64', false, sprintf(__('The template for %s breadcrumbs.', 'breadcrumb_navxt'), strtolower(__($taxonomy->label)))); $this->input_text(sprintf(__('%s Template (Unlinked)', 'breadcrumb_navxt'), $taxonomy->labels->singular_name), 'H' . $taxonomy->name . '_template_no_anchor', '64', false, sprintf(__('The template for %s breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb_navxt'), strtolower(__($taxonomy->label)))); ?> </table> </fieldset> <?php } } ?> <fieldset id="miscellaneous" class="bcn_options"> <h3><?php _e('Miscellaneous', 'breadcrumb_navxt'); ?> </h3> <table class="form-table"> <?php $this->input_text(__('Author Template', 'breadcrumb_navxt'), 'Hauthor_template', '64', false, __('The template for author breadcrumbs.', 'breadcrumb_navxt')); $this->input_text(__('Author Template (Unlinked)', 'breadcrumb_navxt'), 'Hauthor_template_no_anchor', '64', false, __('The template for author breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb_navxt')); $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')); $this->input_text(__('Date Template', 'breadcrumb_navxt'), 'Hdate_template', '64', false, __('The template for date breadcrumbs.', 'breadcrumb_navxt')); $this->input_text(__('Date Template (Unlinked)', 'breadcrumb_navxt'), 'Hdate_template_no_anchor', '64', false, __('The template for date breadcrumbs, used only when the breadcrumb is not linked.', 'breadcrumb_navxt')); $this->input_text(__('Search Template', 'breadcrumb_navxt'), 'Hsearch_template', '64', false, __('The anchor template for search breadcrumbs, used only when the search results span several pages.', 'breadcrumb_navxt')); $this->input_text(__('Search Template (Unlinked)', 'breadcrumb_navxt'), 'Hsearch_template_no_anchor', '64', false, __('The anchor template for search breadcrumbs, used only when the search results span several pages and the breadcrumb is not linked.', 'breadcrumb_navxt')); $this->input_text(__('404 Title', 'breadcrumb_navxt'), 'S404_title', '32'); $this->input_text(__('404 Template', 'breadcrumb_navxt'), 'H404_template', '64', false, __('The template for 404 breadcrumbs.', 'breadcrumb_navxt')); ?> </table> </fieldset> </div> <p class="submit"><input type="submit" class="button-primary" name="bcn_admin_options" value="<?php esc_attr_e('Save Changes'); ?> " /></p> </form> <?php //Need to add a separate menu thing for this $this->import_form(); ?> </div> <?php }