stop duplicating serialize()
This commit is contained in:
parent
dfa4560df4
commit
c23d3d646c
@ -56,19 +56,18 @@ class ComicPressComicPost {
|
|||||||
return $found;
|
return $found;
|
||||||
}
|
}
|
||||||
|
|
||||||
function display_comics($format) { $this->display_attached_images('comic', null, 'comic', $format); }
|
function _display_type($types, $format, $single = false) {
|
||||||
|
$target_type = reset($types);
|
||||||
|
foreach ($types as $type) {
|
||||||
|
if ($this->display_attached_images($type, ($single ? 1 : null), $target_type, $format)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function display_archive($format) {
|
function display_comics($format) { $this->_display_type(array('comic'), $format); }
|
||||||
if (!$this->display_attached_images('archive', 1, 'archive', $format)) {
|
function display_archive($format) { $this->_display_type(array('archive'. 'comic'), $format, true); }
|
||||||
$this->display_attached_images('comic', 1, 'archive', $format);
|
function display_rss($format) { $this->_display_type(array('rss'. 'comic'), $format); }
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function display_rss($format) {
|
|
||||||
if (!$this->display_attached_images('rss', null, 'rss', $formar)) {
|
|
||||||
$this->display_attached_images('comic', null, 'rss', $format);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function get_comic_img_tag($url, $type, $additional_parameters = array()) {
|
function get_comic_img_tag($url, $type, $additional_parameters = array()) {
|
||||||
$dimensions = array();
|
$dimensions = array();
|
||||||
@ -93,46 +92,15 @@ class ComicPressComicPost {
|
|||||||
|
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
function breakdown_comic_ordering_string($string) {
|
/**
|
||||||
$parts = explode(";", $string);
|
* Normalize the ordering of comic images in this post.
|
||||||
|
* If images have beed added or removed, intelligently update the metadata.
|
||||||
$orderings = array();
|
*/
|
||||||
foreach ($parts as $part) {
|
|
||||||
$type_key_value = explode(":", $part);
|
|
||||||
if (count($type_key_value) == 2) {
|
|
||||||
list ($key, $value) = $type_key_value;
|
|
||||||
if (preg_match('#[^a-z0-9\_\-]#', $key) == 0) {
|
|
||||||
$orderings[$key] = array();
|
|
||||||
$values = explode(",", $value);
|
|
||||||
foreach ($values as $value) {
|
|
||||||
$value = trim($value);
|
|
||||||
if (is_numeric($value)) {
|
|
||||||
$orderings[$key][] = $value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $orderings;
|
|
||||||
}
|
|
||||||
|
|
||||||
function build_comic_ordering_string($order) {
|
|
||||||
$result_string_parts = array();
|
|
||||||
|
|
||||||
foreach ($order as $key => $values) {
|
|
||||||
$result_string_parts[] = "${key}:" . implode(",", $values);
|
|
||||||
}
|
|
||||||
sort($result_string_parts);
|
|
||||||
return implode(";", $result_string_parts);
|
|
||||||
}
|
|
||||||
|
|
||||||
function normalize_comic_image_ordering() {
|
function normalize_comic_image_ordering() {
|
||||||
if (is_array($this->get_comic_image_attachments())) {
|
if (is_array($this->get_comic_image_attachments())) {
|
||||||
$ordering_by_type = array();
|
$ordering_by_type = array();
|
||||||
$ordering_types = get_post_meta($this->post->ID, 'comic_ordering', true);
|
$ordering_types = get_post_meta($this->post->ID, 'comic_ordering', true);
|
||||||
if (!empty($ordering_types)) { $ordering_types = $this->breakdown_comic_ordering_string($ordering_types); }
|
|
||||||
|
|
||||||
$comic_image_ordering = array();
|
$comic_image_ordering = array();
|
||||||
$found_post_ids = array();
|
$found_post_ids = array();
|
||||||
@ -178,20 +146,23 @@ class ComicPressComicPost {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
update_post_meta($this->post->ID, 'comic_ordering', $this->build_comic_ordering_string($comic_image_ordering));
|
update_post_meta($this->post->ID, 'comic_ordering', $comic_image_ordering);
|
||||||
return $comic_image_ordering;
|
return $comic_image_ordering;
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function sort_remaining_comic_images($a, $b) {
|
function sort_remaining_comic_images($a, $b) {
|
||||||
return strtotime($a->post_date) - strtotime($b->post_date);
|
return strtotime($a->post_date) - strtotime($b->post_date);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change the ordering of comic images in the associated post.
|
||||||
|
* @param array $order The new requested order.
|
||||||
|
*/
|
||||||
function change_comic_image_ordering($requested_new_order) {
|
function change_comic_image_ordering($requested_new_order) {
|
||||||
$orderings = array();
|
$orderings = get_post_meta($this->post->ID, 'comic_ordering', true);
|
||||||
if (($order_string = get_post_meta($this->post->ID, 'comic_ordering', true)) !== false) {
|
if (!is_array($orderings)) { $orderings = array(); }
|
||||||
$orderings = $this->breakdown_comic_ordering_string($order_string);
|
|
||||||
}
|
|
||||||
|
|
||||||
$new_order = array();
|
$new_order = array();
|
||||||
|
|
||||||
@ -220,7 +191,7 @@ class ComicPressComicPost {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
update_post_meta($this->post->ID, 'comic_ordering', $this->build_comic_ordering_string($new_order));
|
update_post_meta($this->post->ID, 'comic_ordering', $new_order);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,44 +47,6 @@ class ComicPressComicPostTest extends PHPUnit_Framework_TestCase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function providerTestBreakdownComicOrderingString() {
|
|
||||||
return array(
|
|
||||||
array(
|
|
||||||
"",
|
|
||||||
array()
|
|
||||||
),
|
|
||||||
array(
|
|
||||||
"comic|123",
|
|
||||||
array()
|
|
||||||
),
|
|
||||||
array(
|
|
||||||
"comic|123:meow",
|
|
||||||
array()
|
|
||||||
),
|
|
||||||
array(
|
|
||||||
"comic123:meow",
|
|
||||||
array("comic123" => array())
|
|
||||||
),
|
|
||||||
array(
|
|
||||||
"comic123:1",
|
|
||||||
array("comic123" => array(1))
|
|
||||||
),
|
|
||||||
array(
|
|
||||||
"comic123:1,2;comic234:meow",
|
|
||||||
array("comic123" => array(1, 2),
|
|
||||||
"comic234" => array())
|
|
||||||
),
|
|
||||||
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @dataProvider providerTestBreakdownComicOrderingString
|
|
||||||
*/
|
|
||||||
function testBreakdownComicOrderingString($string, $expected_result) {
|
|
||||||
$this->assertEquals($expected_result, $this->p->breakdown_comic_ordering_string($string));
|
|
||||||
}
|
|
||||||
|
|
||||||
function testNormalizeComicImageOrdering() {
|
function testNormalizeComicImageOrdering() {
|
||||||
$p = $this->getMock('ComicPressComicPost', array('get_comic_image_attachments'));
|
$p = $this->getMock('ComicPressComicPost', array('get_comic_image_attachments'));
|
||||||
|
|
||||||
@ -151,38 +113,38 @@ class ComicPressComicPostTest extends PHPUnit_Framework_TestCase {
|
|||||||
$p->expects($this->any())->method('get_comic_image_attachments')->will($this->returnValue($attachments));
|
$p->expects($this->any())->method('get_comic_image_attachments')->will($this->returnValue($attachments));
|
||||||
|
|
||||||
wp_insert_post((object)array('ID' => 1));
|
wp_insert_post((object)array('ID' => 1));
|
||||||
update_post_meta(1, 'comic_ordering', "comic:3");
|
update_post_meta(1, 'comic_ordering', array('comic' => array(3)));
|
||||||
|
|
||||||
$p->post = (object)array('ID' => 1);
|
$p->post = (object)array('ID' => 1);
|
||||||
|
|
||||||
$result = $p->normalize_comic_image_ordering();
|
$result = $p->normalize_comic_image_ordering();
|
||||||
|
|
||||||
$this->assertEquals(array('comic' => array(3,2), 'rss' => array(5,4)), $result);
|
$this->assertEquals(array('comic' => array(3,2), 'rss' => array(5,4)), $result);
|
||||||
$this->assertEquals('comic:3,2;rss:5,4', get_post_meta(1, 'comic_ordering', true));
|
$this->assertEquals(array('comic' => array(3,2), 'rss' => array(5,4)), get_post_meta(1, 'comic_ordering', true));
|
||||||
}
|
}
|
||||||
|
|
||||||
function providerTestChangeComicImageOrdering() {
|
function providerTestChangeComicImageOrdering() {
|
||||||
return array(
|
return array(
|
||||||
array(
|
array(
|
||||||
'comic:1,2,3',
|
array('comic' => array(1,2,3)),
|
||||||
array(
|
array(
|
||||||
'comic' => array('1' => 3, '2' => 1, '3' => 2)
|
'comic' => array('1' => 3, '2' => 1, '3' => 2)
|
||||||
),
|
),
|
||||||
'comic:2,3,1'
|
array('comic' => array(2,3,1))
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'comic:1,2,3',
|
array('comic' => array(1,2,3)),
|
||||||
array(
|
array(
|
||||||
'comic' => array('1' => 2, '2' => 2, '3' => 1)
|
'comic' => array('1' => 2, '2' => 2, '3' => 1)
|
||||||
),
|
),
|
||||||
'comic:3,1,2'
|
array('comic' => array(3,1,2))
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'comic:1,2,3',
|
array('comic' => array(1,2,3)),
|
||||||
array(
|
array(
|
||||||
'comic' => array('1' => 1, '2' => 2)
|
'comic' => array('1' => 1, '2' => 2)
|
||||||
),
|
),
|
||||||
'comic:1,2,3'
|
array('comic' => array(1,2,3))
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user