function addMenu() { global $userdata; //put a menu for all custom_type $post_types = get_post_types(); $options = cpt_get_options(); //get the required user capability $capability = ''; if (isset($options['capability']) && !empty($options['capability'])) { $capability = $options['capability']; } else { if (is_numeric($options['level'])) { $capability = userdata_get_user_level(); } else { $capability = 'install_plugins'; } } foreach ($post_types as $post_type_name) { if ($post_type_name == 'page') { continue; } //ignore bbpress if ($post_type_name == 'reply' || $post_type_name == 'topic') { continue; } if (is_post_type_hierarchical($post_type_name)) { continue; } $post_type_data = get_post_type_object($post_type_name); if ($post_type_data->show_ui === FALSE) { continue; } if (isset($options['show_reorder_interfaces'][$post_type_name]) && $options['show_reorder_interfaces'][$post_type_name] != 'show') { continue; } if ($post_type_name == 'post') { add_submenu_page('edit.php', __('Re-Order', 'cpt'), __('Re-Order', 'cpt'), $capability, 'order-post-types-' . $post_type_name, array(&$this, 'SortPage')); } elseif ($post_type_name == 'attachment') { add_submenu_page('upload.php', __('Re-Order', 'cpt'), __('Re-Order', 'cpt'), $capability, 'order-post-types-' . $post_type_name, array(&$this, 'SortPage')); } else { add_submenu_page('edit.php?post_type=' . $post_type_name, __('Re-Order', 'cpt'), __('Re-Order', 'cpt'), $capability, 'order-post-types-' . $post_type_name, array(&$this, 'SortPage')); } } }
function cpto_setup_theme() { if (is_admin()) { return; } //check the navigation_sort_apply option $options = cpt_get_options(); $navigation_sort_apply = $options['navigation_sort_apply'] == "1" ? TRUE : FALSE; $navigation_sort_apply = apply_filters('cpto/navigation_sort_apply', $navigation_sort_apply); if (!$navigation_sort_apply) { return; } add_filter('get_previous_post_where', 'cpto_get_previous_post_where', 99, 3); add_filter('get_previous_post_sort', 'cpto_get_previous_post_sort'); add_filter('get_next_post_where', 'cpto_get_next_post_where', 99, 3); add_filter('get_next_post_sort', 'cpto_get_next_post_sort'); }
function cpt_plugin_options() { $options = cpt_get_options(); if (isset($_POST['form_submit']) && wp_verify_nonce($_POST['cpto_form_nonce'], 'cpto_form_submit')) { $options['show_reorder_interfaces'] = (array) $_POST['show_reorder_interfaces']; $options['show_reorder_interfaces'] = array_map('sanitize_key', $options['show_reorder_interfaces']); $options['capability'] = sanitize_key($_POST['capability']); $options['autosort'] = isset($_POST['autosort']) ? intval($_POST['autosort']) : ''; $options['adminsort'] = isset($_POST['adminsort']) ? intval($_POST['adminsort']) : ''; $options['archive_drag_drop'] = isset($_POST['archive_drag_drop']) ? intval($_POST['archive_drag_drop']) : ''; $options['navigation_sort_apply'] = isset($_POST['navigation_sort_apply']) ? intval($_POST['navigation_sort_apply']) : ''; echo '<div class="updated fade"><p>' . __('Settings Saved', 'post-types-order') . '</p></div>'; update_option('cpto_options', $options); update_option('CPT_configured', 'TRUE'); } $queue_data = get_option('ce_queue'); ?> <div id="cpto" class="wrap"> <div id="icon-settings" class="icon32"></div> <h2><?php _e('General Settings', 'post-types-order'); ?> </h2> <?php cpt_info_box(); ?> <form id="form_data" name="form" method="post"> <br /> <h2 class="subtitle"><?php _e('General', 'post-types-order'); ?> </h2> <table class="form-table"> <tbody> <tr valign="top"> <th scope="row" style="text-align: right;"><label><?php _e('Show / Hide re-order interface', 'post-types-order'); ?> </label></th> <td> <?php $post_types = get_post_types(); foreach ($post_types as $post_type_name) { //ignore list $ignore_post_types = array('reply', 'topic', 'report', 'status'); if (in_array($post_type_name, $ignore_post_types)) { continue; } if (is_post_type_hierarchical($post_type_name)) { continue; } $post_type_data = get_post_type_object($post_type_name); if ($post_type_data->show_ui === FALSE) { continue; } ?> <p><label> <select name="show_reorder_interfaces[<?php echo $post_type_name; ?> ]"> <option value="show" <?php if (isset($options['show_reorder_interfaces'][$post_type_name]) && $options['show_reorder_interfaces'][$post_type_name] == 'show') { echo ' selected="selected"'; } ?> ><?php _e("Show", 'post-types-order'); ?> </option> <option value="hide" <?php if (isset($options['show_reorder_interfaces'][$post_type_name]) && $options['show_reorder_interfaces'][$post_type_name] == 'hide') { echo ' selected="selected"'; } ?> ><?php _e("Hide", 'post-types-order'); ?> </option> </select> <?php echo $post_type_data->labels->singular_name; ?> </label><br /> </p> <?php } ?> </td> </tr> <tr valign="top"> <th scope="row" style="text-align: right;"><label><?php _e('Minimum Level to use this plugin', 'post-types-order'); ?> </label></th> <td> <select id="role" name="capability"> <option value="read" <?php if (isset($options['capability']) && $options['capability'] == "read") { echo 'selected="selected"'; } ?> ><?php _e('Subscriber', 'post-types-order'); ?> </option> <option value="edit_posts" <?php if (isset($options['capability']) && $options['capability'] == "edit_posts") { echo 'selected="selected"'; } ?> ><?php _e('Contributor', 'post-types-order'); ?> </option> <option value="publish_posts" <?php if (isset($options['capability']) && $options['capability'] == "publish_posts") { echo 'selected="selected"'; } ?> ><?php _e('Author', 'post-types-order'); ?> </option> <option value="publish_pages" <?php if (isset($options['capability']) && $options['capability'] == "publish_pages") { echo 'selected="selected"'; } ?> ><?php _e('Editor', 'post-types-order'); ?> </option> <option value="switch_themes" <?php if (!isset($options['capability']) || empty($options['capability']) || isset($options['capability']) && $options['capability'] == "switch_themes") { echo 'selected="selected"'; } ?> ><?php _e('Administrator', 'post-types-order'); ?> </option> <?php do_action('pto/admin/plugin_options/capability'); ?> </select> </td> </tr> <tr valign="top"> <th scope="row" style="text-align: right;"><label for="autosort"><?php _e('Auto Sort', 'post-types-order'); ?> </label></th> <td> <p><input type="checkbox" <?php checked('1', $options['autosort']); ?> id="autosort" value="1" name="autosort"> <?php _e("If checked, the plug-in automatically update the WordPress queries to use the new order (<b>No code update is necessarily</b>)", 'post-types-order'); ?> </p> <p class="description"><?php _e("If only certain queries need to use the custom sort, keep this unchecked and include 'orderby' => 'menu_order' into query parameters", 'post-types-order'); ?> . <br /> <a href="http://www.nsp-code.com/sample-code-on-how-to-apply-the-sort-for-post-types-order-plugin/" target="_blank"><?php _e('Additional Description and Examples', 'post-types-order'); ?> </a></p> </td> </tr> <tr valign="top"> <th scope="row" style="text-align: right;"><label for="adminsort"><?php _e('Admin Sort', 'post-types-order'); ?> </label></th> <td> <p> <input type="checkbox" <?php checked('1', $options['adminsort']); ?> id="adminsort" value="1" name="adminsort"> <?php _e("To affect the admin interface, to see the post types per your new sort, this need to be checked", 'post-types-order'); ?> .</p> </td> </tr> <tr valign="top"> <th scope="row" style="text-align: right;"><label for="archive_drag_drop"><?php _e('Archive Drag&Drop ', 'post-types-order'); ?> </label></th> <td> <p> <input type="checkbox" <?php checked('1', $options['archive_drag_drop']); ?> id="archive_drag_drop" value="1" name="archive_drag_drop"> <?php _e("Allow sortable drag & drop functionality within default WordPress post type archive. Admin Sort need to be active.", 'post-types-order'); ?> .</p> </td> </tr> <tr valign="top"> <th scope="row" style="text-align: right;"><label for="navigation_sort_apply"><?php _e('Next / Previous Apply', 'post-types-order'); ?> </label></th> <td> <p> <input type="checkbox" <?php checked('1', $options['navigation_sort_apply']); ?> id="navigation_sort_apply" value="1" name="navigation_sort_apply"> <?php _e("Apply the sort on Next / Previous site-wide navigation.", 'post-types-order'); ?> <?php _e('This can also be controlled through', 'post-types-order'); ?> <a href="http://www.nsp-code.com/apply-custom-sorting-for-next-previous-site-wide-navigation/" target="_blank"><?php _e('code', 'post-types-order'); ?> </a></p> </td> </tr> </tbody> </table> <p class="submit"> <input type="submit" name="Submit" class="button-primary" value="<?php _e('Save Settings', 'post-types-order'); ?> "> </p> <?php wp_nonce_field('cpto_form_submit', 'cpto_form_nonce'); ?> <input type="hidden" name="form_submit" value="true" /> </form> <br /> </div> <?php }
function cpt_plugin_options() { $options = cpt_get_options(); if (isset($_POST['form_submit'])) { $options['capability'] = $_POST['capability']; $options['autosort'] = isset($_POST['autosort']) ? $_POST['autosort'] : ''; $options['adminsort'] = isset($_POST['adminsort']) ? $_POST['adminsort'] : ''; $options['navigation_sort_apply'] = isset($_POST['navigation_sort_apply']) ? $_POST['navigation_sort_apply'] : ''; echo '<div class="updated fade"><p>' . __('Settings Saved', 'cpt') . '</p></div>'; update_option('cpto_options', $options); update_option('CPT_configured', 'TRUE'); } $queue_data = get_option('ce_queue'); ?> <div class="wrap"> <div id="icon-settings" class="icon32"></div> <h2><?php _e('General Settings', 'cpt'); ?> </h2> <?php cpt_info_box(); ?> <form id="form_data" name="form" method="post"> <br /> <h2 class="subtitle"><?php _e('General', 'cpt'); ?> </h2> <table class="form-table"> <tbody> <tr valign="top"> <th scope="row" style="text-align: right;"><label><?php _e('Minimum Level to use this plugin', 'cpt'); ?> </label></th> <td> <select id="role" name="capability"> <option value="read" <?php if (isset($options['capability']) && $options['capability'] == "read") { echo 'selected="selected"'; } ?> ><?php _e('Subscriber', 'cpt'); ?> </option> <option value="edit_posts" <?php if (isset($options['capability']) && $options['capability'] == "edit_posts") { echo 'selected="selected"'; } ?> ><?php _e('Contributor', 'cpt'); ?> </option> <option value="publish_posts" <?php if (isset($options['capability']) && $options['capability'] == "publish_posts") { echo 'selected="selected"'; } ?> ><?php _e('Author', 'cpt'); ?> </option> <option value="publish_pages" <?php if (isset($options['capability']) && $options['capability'] == "publish_pages") { echo 'selected="selected"'; } ?> ><?php _e('Editor', 'cpt'); ?> </option> <option value="switch_themes" <?php if (!isset($options['capability']) || empty($options['capability']) || isset($options['capability']) && $options['capability'] == "switch_themes") { echo 'selected="selected"'; } ?> ><?php _e('Administrator', 'cpt'); ?> </option> </select> </td> </tr> <tr valign="top"> <th scope="row" style="text-align: right;"><label for="autosort"><?php _e('Auto Sort', 'cpt'); ?> </label></th> <td> <p><input type="checkbox" <?php if ($options['autosort'] == "1") { echo ' checked="checked"'; } ?> id="autosort" value="1" name="autosort"> <?php _e("If checked, the plug-in automatically update the WordPress queries to use the new order (<b>No code update is necessarily</b>)", 'cpt'); ?> </p> <p class="description"><?php _e("If only certain queries need to use the custom sort, keep this unchecked and include 'orderby' => 'menu_order' into query parameters", 'cpt'); ?> . <br /> <a href="http://www.nsp-code.com/sample-code-on-how-to-apply-the-sort-for-post-types-order-plugin/" target="_blank"><?php _e('Additional Description and Examples', 'cpt'); ?> </a></p> </td> </tr> <tr valign="top"> <th scope="row" style="text-align: right;"><label for="adminsort"><?php _e('Admin Sort', 'cpt'); ?> </label></th> <td> <p> <input type="checkbox" <?php if ($options['adminsort'] == "1") { echo ' checked="checked"'; } ?> id="adminsort" value="1" name="adminsort"> <?php _e("To affect the admin interface, to see the post types per your new sort, this need to be checked", 'cpt'); ?> .</p> </td> </tr> <tr valign="top"> <th scope="row" style="text-align: right;"><label for="navigation_sort_apply"><?php _e('Next / Previous Apply', 'cpt'); ?> </label></th> <td> <p> <input type="checkbox" <?php if ($options['navigation_sort_apply'] == "1") { echo ' checked="checked"'; } ?> id="navigation_sort_apply" value="1" name="navigation_sort_apply"> <?php _e("Apply the sort on Next / Previous site-wide navigation.", 'cpt'); ?> <?php _e('This can also be controlled through', 'cpt'); ?> <a href="http://www.nsp-code.com/apply-custom-sorting-for-next-previous-site-wide-navigation/" target="_blank"><?php _e('code', 'cpt'); ?> </a></p> </td> </tr> </tbody> </table> <p class="submit"> <input type="submit" name="Submit" class="button-primary" value="<?php _e('Save Settings', 'cpt'); ?> "> </p> <input type="hidden" name="form_submit" value="true" /> </form> <br /> <?php echo '</div>'; }