organize-series.2.3.8 for multi users
-
I’m using the organize-series.2.3.8 plugin and am trying to set it up for multi authors so each author only sees their own series post and not a list of all series site wide. But I’m a Nube and don’t know where to begin. Some where in here I’m sure it can be done. Any pointers?
Thank you!<?php /** * This file contains all the code that hooks orgSeries into the various pages of the WordPress administration. Some hooks will reference other files (series management, and series options). * * @package Organize Series WordPress Plugin * @since 2.2 */ global $pagenow; $checkpage = $pagenow; global $checkpage; /** * All the add_action and apply_filter hooks for this file go here */ //add action for admin-series.css and thickbox add_action('admin_print_styles', 'orgSeries_admin_header'); ##ADMIN-Write/Edit Post Script loader //add_action('admin_print_scripts','orgSeries_admin_script'); add_action('admin_print_scripts-post.php', 'orgSeries_post_script'); add_action('admin_print_scripts-post-new.php', 'orgSeries_post_script'); add_action('admin_print_scripts-edit-tags.php', 'orgSeries_manage_script'); //add ajax for on-the-fly series adds add_action('wp_ajax_add-series', 'admin_ajax_series'); //add_action('wp_ajax_inline-series', 'admin_inline_series_ajax'); //hook into the quick-edit on edit.php add_filter('manage_posts_columns', 'orgSeries_custom_column_filter'); add_action('manage_posts_custom_column','orgSeries_custom_column_action', 12, 2); if ( $checkpage != 'upload.php' ) add_action('restrict_manage_posts', 'orgSeries_custom_manage_posts_filter'); add_action('post_relatedlinks_list', 'add_series_management_link'); add_action( 'right_now_content_table_end', 'add_series_to_right_now'); //function: Add Meta-box add_action('admin_menu', 'orgseries_add_meta_box'); function orgSeries_admin_header() { $plugin_path = SERIES_LOC; $csspath = $plugin_path . "orgSeries-admin.css"; wp_register_style( 'orgSeries-admin', $csspath ); wp_enqueue_style( 'orgSeries-admin' ); wp_enqueue_style( 'thickbox' ); } //add_action filter for the manage_series page... function orgSeries_post_script() { wp_enqueue_script('ajaxseries'); } function orgSeries_admin_script() { //load in the series.js script and set localization variables. global $checkpage, $orgseries, $pagenow; if (isset($_GET['page'])) $checkpage = $_GET['page']; if ('post-new.php' == $checkpage || 'post.php' == $checkpage) { wp_enqueue_script( 'ajaxseries' ); } if ( 'edit-tags.php' == $checkpage && 'series' == $_GET['taxonomy'] ) orgSeries_manage_script(); } function orgSeries_manage_script() { wp_enqueue_script( 'thickbox' ); wp_enqueue_script('media-upload'); wp_enqueue_script('orgseries_scripts','/'.PLUGINDIR.'/'.SERIES_DIR.'/js/orgseries_scripts.js',array('jquery', 'thickbox')); } ######ON THE FLY ADD SERIES######## function admin_ajax_series() { if ( !current_user_can( 'manage_series' ) ) die('-1'); global $wp_taxonomies; $name = $_POST['newseries']; $x = new WP_Ajax_Response(); $series_name = trim($name); if ( !$series_nicename = sanitize_title($series_name) ) die('0'); if ( !$series_id = series_exists( $series_name ) ) $ser_id = wp_create_single_series( $series_name ); $series_id = $ser_id['term_id']; $series_name = esc_html(stripslashes($series_name)); $x->add( array( 'what' => 'series', 'id' => $series_id, 'data' => "<li id='series-$series_id'><label for='in-series-$series_id' class='selectit'><input value='$series_id' type='radio' name='post_series' id='in-series-$series_id' checked /> $series_name</label><span id='new_series_id' class='hidden'>$series_id</span></li>", 'position' => -1 ) ); $x->send(); } ###AJAX FOR INLINE_SERIES UPDATE### function admin_inline_series_ajax() { check_ajax_referer ( 'inlineeditnonce', '_inline_edit' ); $data[$seriesid] = $_POST['post_series']; $data[$series_part] = $_POST['series_part']; $data[$id] = $_POST['series_post_id']; /*$series_id = $_POST['post_series']; $part = $_POST['series_part']; $post_id = $_POST['series_post_id'];*/ orgSeries_custom_column_action('series', $data[$id]); exit; break; } /** * get_series_list() - queries the list of series from the database and creates an array indicating what * series is associated with the current post (if existent). * * The code here is mirrored from get_nested_categories in the core wp-admin\includes\template.php * file. * * @uses count() - internal WordPress function * @uses wp_get_post_series() * @uses get_series() * @uses get_the_series_by_ID() * @uses apply_filters() - user can modify the array that is returned. * @param int $default - id for the default series. Currently there is not an option for users to set a * default series. This may change in the future. * @return array|mixed $result - series ids, series names, and checked value. */ function get_series_list( $default = 0 ) { global $post, $postdata, $checked_series; $post_ID = isset( $post ) ? $post->ID : $postdata->ID; if ( empty( $checked_series ) ) { if ( $post_ID ) { $checked_series = wp_get_post_series( $post_ID ); if ( count( $checked_series ) == 0 ) { $checked_series[] = $default; } } else { $checked_series[] = $default; } $series = get_series( "hide_empty=0&fields=ids" ); $result = array (); if ( is_array( $series ) ) { foreach ( $series as $serial ) { $result[$serial]['series_ID'] = $serial; $result[$serial]['checked'] = in_array( $serial, $checked_series ); $result[$serial]['ser_name'] = get_the_series_by_ID( $serial ); } } $result = apply_filters( 'get_series_list', $result ); usort( $result, '_usort_series_by_name' ); return $result; } } /** * write_series_list() - html output for the list of series in for user selection on the write/edit post screen * Code is mirror'd from the write_nested_categories() function in the core wp-admin\includes\template.php file. * * @uses esc_html * @param array|mixed $series - contains series_ID, ser_name, and checked (does post belong to this series) */ function write_series_list( $series ) { //copied from write_nested_categories in template.php global $orgseries; echo '<li id="series-0"><label for ="in-series-0" class="selectit"><input value="0" type="radio" name="post_series" id="in-series-0" checked="checked" />' . __('Not part of a series', $orgseries->org_domain) . '</label></li>'; foreach ( $series as $serial ) { echo '<li id="series-', $serial['series_ID'],'"><label for="in-series-', $serial['series_ID'], '" class="selectit"><input value="', $serial['series_ID'], '" type="radio" name="post_series" id="in-series-', $serial['series_ID'], '"', ($serial['checked'] ? ' checked="checked"' : '' ), '/> ' , esc_html( $serial['ser_name'] ), "</label></li>"; } } /** * get_series_to_select() - wrapper function to output the list of series on the write/edit post page. * Calls up the list of existing series in the WordPress db and displays the series that the post belongs to already selected. * *@uses write_series_list() *@uses get_series_list() *@param int $default = id for the default series. Currently there is not an option for users to set a default series id. This may change in the future. */ function get_series_to_select( $default = 0 ) { write_series_list( get_series_list( $default) ); } //series-edit box for wp 2.8 forward function series_edit_meta_box() { global $post, $postdata, $content, $orgseries; $id = isset($post) ? $post->ID : $postdata->ID; $ser_id = wp_get_post_series( $id ); ?> <p id="jaxseries"></p> <span id="series-ajax-response"></span> <ul id="serieschecklist" class="list:series serieschecklist form-no-clear"> <?php get_series_to_select(); ?> </ul> <span id="seriespart"><strong> <?php _e('Series Part:', $orgseries->org_domain); ?> </strong><input type="text" name="series_part[<?php echo $ser_id[0]; ?>]" id="series_part" size="5" value="<?php echo get_post_meta($id, SERIES_PART_KEY, true); ?>" /></span> <p id="part-description"><?php _e('Note: that if you leave this blank or enter an invalid number the post will automatically be appended to the rest of the posts in the series', $orgseries->org_domain); ?></p> <?php } function orgseries_add_meta_box() { global $orgseries; add_meta_box('seriesdiv', __('Series', $orgseries->org_domain), 'series_edit_meta_box', 'post', 'advanced', 'core'); remove_meta_box('tagsdiv-series', 'post', 'advanced'); //removes series meta box added by WordPress Taxonomy api. } /* ADDING SERIES INFO TO EDIT POST PAGE */ function orgSeries_custom_column_filter($defaults) { global $orgseries; $defaults['series'] = __('Series', $orgseries->org_domain); return $defaults; } function orgSeries_custom_column_action($column_name, $id) { global $orgseries; $seriesid = null; $series_part = null; $series_name = null; if ($column_name == 'series') { if ( $series = get_the_series($id, false) ) { $seriesid = $series[0]->term_id; $series_name = $series[0]->name; $series_link = get_series_link($series_name); $series_part = get_post_meta($id, SERIES_PART_KEY, TRUE); $count = $series[0]->count; $column_content = ''; if ($series && get_post_status($id) == 'publish') { $column_content = '<div class="series_column">'.sprintf(__('Part %1$s of %2$s in the series, <a href="%3$s" title="%4$s">%5$s</a>', $orgseries->org_domain), $series_part, $count, $series_link, $series_name, $series_name); $column_content .= '<div class="hidden" id="inline_series_' . $id . '"><div class="series_inline_edit">'.$seriesid.'</div><div class="series_inline_part">'.$series_part.'</div><div class="series_post_id">'.$id.'</div><div class="series_inline_name">'.$series_name.'</div></div></div>'; echo $column_content; } else { $column_content = '<div class="series_column">'.sprintf(__('<a href="%1$s" title="%2$s">%3$s</a> - (currently set as Part %4$s)', $orgseries->org_domain), $series_link, $series_name, $series_name, $series_part); $column_content .= '<div class="hidden" id="inline_series_' . $id . '"><div class="series_inline_edit">'.$seriesid.'</div><div class="series_inline_part">'.$series_part.'</div><div class="series_post_id">'.$id.'</div><div class="series_inline_name">'.$series_name.'</div></div></div>'; echo $column_content; } } else { $column_content = '<div class="series_column"><div class="hidden" id="inline_series_' . $id . '"><div class="series_inline_edit">'.$seriesid.'</div><div class="series_inline_part">'.$series_part.'</div><div class="series_post_id">'.$id.'</div><div class="series_inline_name">'.$series_name.'</div></div>'; $column_content .= '<em>'.__('No Series', $orgseries->org_domain).'</em></div>'; echo $column_content; } } } function orgSeries_custom_manage_posts_filter() { global $orgseries; $series_name = ''; if (isset($_GET['series'])) $series_name = $_GET['series']; wp_dropdown_series('show_option_all='.__('View all series', $orgseries->org_domain).'&hide_empty=0&show_count=0&selected='.$series_name); } function add_series_management_link() { global $orgseries; $link = get_option('siteurl') . '/wp-admin/edit.php?page=' . SERIES_DIR . '/orgSeries-manage.php'; ?> <li><a href="<?php echo $link; ?>"><?php _e('Manage All Series', $orgseries->org_domain); ?></a></li> <?php } function add_series_to_right_now() { global $orgseries; $num_series = wp_count_terms('series'); $num = number_format_i18n( $num_series ); $text = _n( 'Series', 'Series', $num_series, $orgseries->org_domain ); $manage_link = get_option('siteurl') . '/wp-admin/edit-tags.php?taxonomy=series'; if ( current_user_can( 'manage_series' ) ) { $series_num = "<a href='$manage_link'>$num</a>"; $series_text = "<a href='$manage_link'>$text</a>"; } echo '<tr>'; echo '<td class="first b b-tags">'.$series_num.'</td>'; echo '<td class="t tags">' . $series_text . '</td>'; echo '<td></td><td></td></tr>'; } ?>
- The topic ‘organize-series.2.3.8 for multi users’ is closed to new replies.