database and multi-post retrieval fixes
This commit is contained in:
parent
cd64fbf416
commit
bc2bc475d4
|
@ -101,6 +101,7 @@ class ComicPressDBInterface {
|
|||
|
||||
$op = ($next ? '>' : '<');
|
||||
$order = ($next ? 'ASC' : 'DESC');
|
||||
$cats = implode(',', $categories);
|
||||
|
||||
$query = $wpdb->prepare("SELECT p.* FROM $wpdb->posts AS p
|
||||
INNER JOIN $wpdb->term_relationships AS tr ON p.ID = tr.object_id
|
||||
|
@ -109,10 +110,9 @@ class ComicPressDBInterface {
|
|||
AND p.post_type = 'post'
|
||||
AND p.post_status = 'publish'
|
||||
AND tt.taxonomy = 'category'
|
||||
AND tt.term_id IN (%s)
|
||||
AND tt.term_id IN (${cats})
|
||||
ORDER BY p.post_date ${order} LIMIT %d",
|
||||
$post_to_use->post_date,
|
||||
implode(',', $categories),
|
||||
$count);
|
||||
|
||||
$query_key = 'comicpress_adjacent_post_' . md5($query);
|
||||
|
|
|
@ -110,8 +110,11 @@ class ComicPressTagBuilder {
|
|||
$this->parent_post = $parent_post;
|
||||
}
|
||||
|
||||
public function _setup_postdata($post) {
|
||||
setup_postdata($post);
|
||||
public function _setup_postdata($p) {
|
||||
global $post;
|
||||
|
||||
$post = $p;
|
||||
setup_postdata($p);
|
||||
}
|
||||
|
||||
public function _new_comicpresscomicpost($post) {
|
||||
|
@ -194,9 +197,19 @@ class ComicPressTagBuilder {
|
|||
if ($count < 2) {
|
||||
$count = false;
|
||||
}
|
||||
|
||||
$result = call_user_func(array($this->dbi, "get_${method}_post"), $this->storyline->build_from_restrictions($this->restrictions), $this->parent_post, $count);
|
||||
if (is_array($result)) {
|
||||
return $result;
|
||||
|
||||
if ($count > 1) {
|
||||
if (is_array($result)) {
|
||||
return $result;
|
||||
} else {
|
||||
if (is_object($result)) {
|
||||
return array($result);
|
||||
} else {
|
||||
return array();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$this->post = $result;
|
||||
}
|
||||
|
|
|
@ -79,7 +79,23 @@ class ComicPressTagBuilderTest extends PHPUnit_Framework_TestCase {
|
|||
),
|
||||
array('get_next_post', array(1), $p, 3),
|
||||
false,
|
||||
true
|
||||
array('test')
|
||||
),
|
||||
array(
|
||||
array(
|
||||
array('next', 3)
|
||||
),
|
||||
array('get_next_post', array(1), $p, 3),
|
||||
false,
|
||||
(object)array('test' => 'test2')
|
||||
),
|
||||
array(
|
||||
array(
|
||||
array('next', 3)
|
||||
),
|
||||
array('get_next_post', array(1), $p, 3),
|
||||
false,
|
||||
"string"
|
||||
),
|
||||
array(
|
||||
array(
|
||||
|
@ -94,7 +110,7 @@ class ComicPressTagBuilderTest extends PHPUnit_Framework_TestCase {
|
|||
/**
|
||||
* @dataProvider providerTestBuilder
|
||||
*/
|
||||
function testStorylineBuilder($instructions, $expected_dbi_call, $expects_setup_postdata = false, $returns_array = false) {
|
||||
function testStorylineBuilder($instructions, $expected_dbi_call, $expects_setup_postdata = false, $returns_override = null) {
|
||||
global $post, $wp_test_expectations;
|
||||
$post = (object)array('ID' => 1);
|
||||
|
||||
|
@ -110,8 +126,8 @@ class ComicPressTagBuilderTest extends PHPUnit_Framework_TestCase {
|
|||
call_user_func(array($expectation, 'will'), $this->returnValue('new-post'));
|
||||
}
|
||||
|
||||
if ($returns_array) {
|
||||
call_user_func(array($expectation, 'will'), $this->returnValue(array('new-post')));
|
||||
if (!empty($returns_override)) {
|
||||
call_user_func(array($expectation, 'will'), $this->returnValue($returns_override));
|
||||
}
|
||||
|
||||
$core = new ComicPressTagBuilderFactory($dbi);
|
||||
|
|
Loading…
Reference in New Issue