inline image ordering
This commit is contained in:
parent
2ce436ef45
commit
1f230256fe
|
@ -17,6 +17,11 @@ class ComicPressAddonCore extends ComicPressAddon {
|
|||
add_action('template_redirect', array(&$this, 'go_to_random_comic'));
|
||||
}
|
||||
|
||||
if (current_user_can('edit_posts') && isset($comicpress->comicpress_options['helpers']['show_inline_comic_ordering'])) {
|
||||
add_filter('comicpress_attached_image', array(&$this, 'comicpress_attached_image'), 10, 3);
|
||||
add_filter('comicpress_display_attached_images', array(&$this, 'comicpress_display_attached_images'), 10, 2);
|
||||
}
|
||||
|
||||
$this->comicpress = $comicpress;
|
||||
|
||||
$this->comic_image_types = array(
|
||||
|
@ -27,6 +32,36 @@ class ComicPressAddonCore extends ComicPressAddon {
|
|||
);
|
||||
}
|
||||
|
||||
function comicpress_attached_image($content, $attachment_id, $index) {
|
||||
$content .= '<label class="comic-image-ordering">'
|
||||
. __('Image index:', 'comicpress')
|
||||
. ' '
|
||||
. '<input type="text" name="cp[ordering][comic]['
|
||||
. $attachment_id
|
||||
. ']" value="'
|
||||
. $index
|
||||
. '" /></label>';
|
||||
|
||||
return $content;
|
||||
}
|
||||
|
||||
function comicpress_display_attached_images($content, $post_id) {
|
||||
$content = '<form method="post">'
|
||||
. '<input type="hidden" name="cp[_nonce]" value="'
|
||||
. wp_create_nonce('comicpress')
|
||||
. '" />'
|
||||
. '<input type="hidden" name="post_ID" value="'
|
||||
. $post_id
|
||||
. '" />'
|
||||
. $content
|
||||
. '<input type="submit" value="'
|
||||
. __('Change image ordering', 'comicpress')
|
||||
. '" />'
|
||||
. '</form>';
|
||||
|
||||
return $content;
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback to send the reader to a random comic.
|
||||
*/
|
||||
|
@ -77,14 +112,14 @@ class ComicPressAddonCore extends ComicPressAddon {
|
|||
* @param object $override_post If not nul;, the post to use instead of the current Loop post.
|
||||
* @param string $method The method to call on the comic post.
|
||||
*/
|
||||
function show_media($override_post, $method) {
|
||||
function show_media($override_post, $method, $format) {
|
||||
global $post;
|
||||
$post_to_use = (is_null($override_post)) ? $this->comicpress->get_last_comic() : $post;
|
||||
|
||||
switch ($this->comicpress->comicpress_options['comic_space']) {
|
||||
case "comic_only":
|
||||
$comic_post = new ComicPressComicPost($post_to_use, &$this->comicpress);
|
||||
$comic_post->{$method}();
|
||||
$comic_post->{$method}($format);
|
||||
break;
|
||||
case "post_content":
|
||||
$t = $post;
|
||||
|
@ -98,22 +133,22 @@ class ComicPressAddonCore extends ComicPressAddon {
|
|||
/**
|
||||
* Show a comic.
|
||||
*/
|
||||
function show_comic($override_post = null) {
|
||||
$this->show_media($override_post, "display_comics");
|
||||
function show_comic($override_post = null, $format = "%s<br />") {
|
||||
$this->show_media($override_post, "display_comics", $format);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show an archive comic.
|
||||
*/
|
||||
function show_archive($override_post = null) {
|
||||
$this->show_media($override_post, "display_archive");
|
||||
function show_archive($override_post = null, $format = "") {
|
||||
$this->show_media($override_post, "display_archive", $format);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show an RSS comic.
|
||||
*/
|
||||
function show_rss($override_post = null) {
|
||||
$this->show_media($override_post, "display_rss");
|
||||
function show_rss($override_post = null, $format = "%s<br />") {
|
||||
$this->show_media($override_post, "display_rss", $format);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -434,6 +469,10 @@ class ComicPressAddonCore extends ComicPressAddon {
|
|||
if ($post = get_post($_POST['post_ID'])) {
|
||||
$comic_post = new ComicPressComicPost(&$post);
|
||||
$comic_post->change_comic_image_ordering($_POST['cp']['ordering']);
|
||||
|
||||
if (isset($this->comicpress->comicpress_options['helpers']['show_inline_comic_ordering']) && !is_admin()) {
|
||||
$this->info(sprintf(__("Comic ordering for post #%s updated", 'comicpress'), $_POST['post_ID']));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -448,17 +487,19 @@ class ComicPressAddonCore extends ComicPressAddon {
|
|||
} else if (is_array($_POST['cp']['ordering'])) {
|
||||
// comic ordering
|
||||
|
||||
$meta_key_to_ignore = false;
|
||||
foreach ($_POST['meta'] as $meta_key => $params) {
|
||||
foreach ($params as $type => $value) {
|
||||
if ($type == "key" && $value == "comic_ordering") {
|
||||
$meta_key_to_ignore = $meta_key; break;
|
||||
if (isset($_POST['meta'])) {
|
||||
$meta_key_to_ignore = false;
|
||||
foreach ($_POST['meta'] as $meta_key => $params) {
|
||||
foreach ($params as $type => $value) {
|
||||
if ($type == "key" && $value == "comic_ordering") {
|
||||
$meta_key_to_ignore = $meta_key; break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($meta_key_to_ignore !== false) {
|
||||
unset($_POST['meta'][$meta_key_to_ignore]);
|
||||
|
||||
if ($meta_key_to_ignore !== false) {
|
||||
unset($_POST['meta'][$meta_key_to_ignore]);
|
||||
}
|
||||
}
|
||||
|
||||
$this->handle_update_comic_ordering();
|
||||
|
|
|
@ -104,9 +104,10 @@
|
|||
<td>
|
||||
<?php
|
||||
foreach (array(
|
||||
"show_partials_info" => __('Show partials info', 'comicpress')
|
||||
"show_partials_info" => __('Show partials info', 'comicpress'),
|
||||
"show_inline_comic_ordering" => __('Show inline comic ordering', 'comicpress')
|
||||
) as $key => $label) { ?>
|
||||
<label><input type="checkbox" name="cp[helpers][<?php echo $key ?>]" value="yes" <?php echo (($this->comicpress->comicpress_options['helpers'][$key] === true) ? 'checked="checked"' : '') ?> /> <?php echo $label ?></label>
|
||||
<label><input type="checkbox" name="cp[helpers][<?php echo $key ?>]" value="yes" <?php echo (($this->comicpress->comicpress_options['helpers'][$key] === true) ? 'checked="checked"' : '') ?> /> <?php echo $label ?></label><br />
|
||||
<?php }
|
||||
?>
|
||||
</td>
|
||||
|
|
|
@ -21,17 +21,21 @@ class ComicPressComicPost {
|
|||
return $this->attachments;
|
||||
}
|
||||
|
||||
function display_attached_images($type = "comic", $limit = null, $size_type = null) {
|
||||
function display_attached_images($type = "comic", $limit = null, $size_type = null, $format = "%s") {
|
||||
if (is_null($size_type)) { $size_type = $type; }
|
||||
$found = false;
|
||||
$ordering = $this->normalize_comic_image_ordering($this->post->ID);
|
||||
$output = array();
|
||||
if (is_array($ordering[$type])) {
|
||||
$i = 1;
|
||||
foreach ($ordering[$type] as $attachment_id) {
|
||||
if (get_post_meta($attachment_id, "comic_image_type", true) == $type) {
|
||||
$attachment = get_post($attachment_id);
|
||||
$title = (!empty($attachment->post_excerpt) ? $attachment->post_excerpt : $attachment->post_title);
|
||||
echo $this->get_comic_img_tag(wp_get_attachment_url($attachment->ID, ''), $size_type, array('title' => $title));
|
||||
echo "<br />";
|
||||
$output[] = apply_filters('comicpress_attached_image',
|
||||
sprintf($format, $this->get_comic_img_tag(wp_get_attachment_url($attachment->ID, ''), $size_type, array('title' => $title))),
|
||||
$attachment_id,
|
||||
$i++);
|
||||
$found = true;
|
||||
|
||||
if (!is_null($limit)) {
|
||||
|
@ -40,20 +44,22 @@ class ComicPressComicPost {
|
|||
}
|
||||
}
|
||||
}
|
||||
echo apply_filters('comicpress_display_attached_images', implode("\n", $output), $this->post->ID);
|
||||
|
||||
return $found;
|
||||
}
|
||||
|
||||
function display_comics() { $this->display_attached_images(); }
|
||||
function display_comics($format) { $this->display_attached_images('comic', null, 'comic', $format); }
|
||||
|
||||
function display_archive() {
|
||||
if (!$this->display_attached_images('archive', 1)) {
|
||||
$this->display_attached_images('comic', 1, 'archive');
|
||||
function display_archive($format) {
|
||||
if (!$this->display_attached_images('archive', 1, 'archive', $format)) {
|
||||
$this->display_attached_images('comic', 1, 'archive', $format);
|
||||
}
|
||||
}
|
||||
|
||||
function display_rss() {
|
||||
if (!$this->display_attached_images('rss')) {
|
||||
$this->display_attached_images('comic', null, 'rss');
|
||||
function display_rss($format) {
|
||||
if (!$this->display_attached_images('rss', null, 'rss', $formar)) {
|
||||
$this->display_attached_images('comic', null, 'rss', $format);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ function __comicpress_init() {
|
|||
if (class_exists($classname)) {
|
||||
$addons[] = new $classname();
|
||||
end($addons)->init(&$comicpress);
|
||||
if (is_admin()) {
|
||||
if (current_user_can('edit_posts')) {
|
||||
if (is_array($_REQUEST['cp'])) {
|
||||
if (isset($_REQUEST['cp']['_nonce'])) {
|
||||
if (wp_verify_nonce($_REQUEST['cp']['_nonce'], 'comicpress')) {
|
||||
|
@ -40,7 +40,11 @@ function __comicpress_init() {
|
|||
}
|
||||
}
|
||||
}
|
||||
add_action('admin_notices', array(end($addons), 'display_messages'));
|
||||
if (is_admin()) {
|
||||
add_action('admin_notices', array(end($addons), 'display_messages'));
|
||||
} else {
|
||||
add_action('wp_head', array(end($addons), 'display_messages'));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
<div id="comic-head"></div>
|
||||
<div id="comic"><?php do_action('show_comic', null); ?></div>
|
||||
<div id="comic"><?php do_action('show_comic', null, "%s<br />"); ?></div>
|
||||
<div id="comic-foot"></div>
|
||||
|
|
Loading…
Reference in New Issue