function wp_create_single_series($series_name)
{
    if ($id = series_exists($series_name)) {
        return $id;
    }
    return wp_insert_term($series_name, 'series');
}
/**
 * get_series_icon() -  Template tag for insertion of series-icons
 *
 * @package Organize Series WordPress Plugin
 * @since 2.0
 *
 * @uses parse_str()
 * @uses stripslaghes_gpc_arr()
 * @uses get_the_series()
 * @uses is_array()
 * @uses series_get_icons()
 * @uses seriesicons_path()
 * @uses seriesicons_url()
 * @uses get_series_link()
 * @uses getimagesize()
 * @uses series_fit_rect()
 *
 * @param int[-1] $fit_width Maximum width (or desired width if $expanded=true) of the image.
 * @param int[-1] $fit_height Macimum height (or desired height if $expanded=true) of the image.
 * @param boolean [false] $expand Whether the image should be expanded to fit the rectangle specified by fit_xxx.
 * @param int $series Series ID. If not specified, the current series is used or the current post's series.
 * @param string $prefix String to echo before the image tag. If no image, no otuput.
 * @param string $suffix String to echo after the image tag. Ignored if no image found.
 * @param string [] $class  Class attribute for the image tag.
 * @param boolean [1] $link If true the image is made a hyperlink (wrapped by anchor tag).
 * @param  boolean [1] $display If true the function will echo the image.  If false the function will return the assembled image as a string.
 *
 * @return mixed|bool|string Will return false if image is not found.  Will return string containing assembled html code for image if $display is false.  Will echo image if the $display param = true.
 */
function get_series_icon($params = '')
{
    global $orgseries;
    parse_str($params, $p);
    if (!isset($p['fit_width'])) {
        $p['fit_width'] = -1;
    }
    if (!isset($p['fit_height'])) {
        $p['fit_height'] = -1;
    }
    if (!isset($p['expand'])) {
        $p['expand'] = false;
    }
    if (!isset($p['series'])) {
        $p['series'] = get_query_var(SERIES_QUERYVAR);
    }
    if (!isset($p['prefix'])) {
        $p['prefix'] = '';
    }
    if (!isset($p['suffix'])) {
        $p['suffix'] = '';
    }
    if (!isset($p['class'])) {
        $p['class'] = 'series-icon-' . $p['series'];
    }
    if (!isset($p['link'])) {
        $p['link'] = 1;
    }
    if (!isset($p['display'])) {
        $p['display'] = 1;
    }
    stripslaghes_gpc_arr($p);
    if (empty($p['series']) && isset($GLOBALS['post'])) {
        $serieslist = get_the_series($GLOBALS['post']->ID);
        if (is_array($serieslist)) {
            $p['series'] = $serieslist[0]->term_id;
        }
    }
    $p['series'] = series_exists($p['series']);
    if (!isset($p['series'])) {
        return;
    }
    //make sure we get the id for the series (in case just the slug is given
    $icon = series_get_icons($p['series']);
    $s_name = get_series_name($p['series']);
    $file = seriesicons_path() . $icon;
    $url = seriesicons_url() . $icon;
    if ($p['link']) {
        $p['prefix'] .= '<a href="' . get_series_link($p['series']) . '">';
        $p['suffix'] = '</a>' . $p['suffix'];
    }
    if (is_file($file)) {
        list($width, $height, $type, $attr) = getimagesize($file);
        list($w, $h) = series_fit_rect($width, $height, $p['fit_width'], $p['fit_height'], $p['expand']);
        $series_icon = $p['prefix'] . '<img class="' . $p['class'] . '" src="' . $url . '" width="' . $w . '" height="' . $h . '"  alt="' . $icon . '" />' . $p['suffix'];
        if ($p['display'] == 1) {
            echo $series_icon;
        } else {
            return $series_icon;
        }
    }
    return false;
}
示例#3
0
function admin_ajax_series()
{
    $response = array();
    if (!current_user_can('manage_series')) {
        $response['error'] = __('Sorry but you don\'t have permission to add series', 'organize-series');
    }
    if (!check_ajax_referer('add-series-nonce', 'addnonce', false)) {
        $response['error'] = 'Sorry but security check failed';
    }
    $new_nonce = wp_create_nonce('add-series-nonce');
    $name = $_POST['newseries'];
    $series_name = trim($name);
    if (!($series_nicename = sanitize_title($series_name))) {
        $response['error'] = __('The name you picked isn\'t sanitizing correctly. Try something different.', 'organize-series');
    }
    if (empty($response['error'])) {
        if (!($series_id = series_exists($series_name))) {
            $ser_id = wp_create_single_series($series_name);
            $series_id = $ser_id['term_id'];
        } else {
            $response['error'] = __('Hmm... it looks like there is already a series with that name. Try something else', 'organize-series');
        }
        $series_name = esc_html(stripslashes($series_name));
    }
    if (empty($response['error'])) {
        $response = array('id' => $series_id, 'html' => "<li id='series-{$series_id}' class='series-added-indicator'><label for='in-series-{$series_id}' class='selectit'><input value='{$series_id}' type='radio' name='post_series' id='in-series-{$series_id}' checked /><input type='hidden' name='is_series_save' value='1' /> <span class='li-series-name'>{$series_name}</span></label><span id='new_series_id' class='hidden'>{$series_id}</span></li>", 'new_nonce' => $new_nonce, 'error' => false);
    }
    echo json_encode($response);
    exit;
}