当前位置: 首页>>代码示例>>PHP>>正文


PHP Posts::count_total方法代码示例

本文整理汇总了PHP中Posts::count_total方法的典型用法代码示例。如果您正苦于以下问题:PHP Posts::count_total方法的具体用法?PHP Posts::count_total怎么用?PHP Posts::count_total使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Posts的用法示例。


在下文中一共展示了Posts::count_total方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: test_get_posts_by_info

 /**
  * Get posts by info
  * - has:info => a post info key or array of post info keys, which should be present
  * - all:info => a post info key and value pair or array of post info key and value pairs, which should all be present and match
  * - not:all:info => a post info key and value pair or array of post info key and value pairs, to exclude if all are present and match
  * - any:info => a post info key and value pair or array of post info key and value pairs, any of which can match
  * - not:any:info => a post info key and value pair or array of post info key and value pairs, to exclude if any are present and match
  */
 public function test_get_posts_by_info()
 {
     // setup
     $informationless_post = Post::create(array('title' => 'This is a Post without information', 'content' => 'The real point of this post is to make sure that there is at least one countable post without info for the sake of testing.', 'user_id' => $this->user->id, 'status' => Post::status('published'), 'content_type' => Post::type('entry'), 'pubdate' => DateTime::date_create(time())));
     $seven_things = array("one", "two", "red", "blue", "black", "old", "new");
     // create some posts with info
     for ($i = 1; $i < 42; $i++) {
         $post = Post::create(array('title' => 'This Post has Info', 'content' => 'If this were really a post, would it have such useless information?', 'user_id' => $this->user->id, 'status' => Post::status('published'), 'content_type' => Post::type('entry'), 'pubdate' => DateTime::date_create(time())));
         $post->info->testing_info = 1;
         $post->info->{$seven_things}[$i % 7] = 1;
         $post->info->i = $i;
         $post->info->commit();
     }
     // has:info
     $count = DB::get_value("SELECT COUNT(*) FROM {posts}\n\t\t\t\tLEFT JOIN {postinfo} pi1 ON\n\t\t\t\t\t{posts}.id = pi1.post_id AND\n\t\t\t\t\tpi1.name = 'red'\n\t\t\t\t\tWHERE\n\t\t\t\t\t\tpi1.name <> ''\n\t\t");
     $count_info_posts = Posts::get(array('ignore_permissions' => true, 'has:info' => 'testing_info', 'count' => 'DISTINCT {posts}.id', 'nolimit' => 1));
     $this->assert_not_equal(Posts::count_total(), $count_info_posts);
     $count_posts = Posts::get(array('ignore_permissions' => true, 'has:info' => array('red'), 'count' => 'DISTINCT {posts}.id', 'nolimit' => 1));
     $this->assert_equal($count_posts, $count);
     $count = DB::get_value("SELECT COUNT(*) FROM {posts}\n\t\t\t\tLEFT JOIN {postinfo} pi1 ON\n\t\t\t\t\t{posts}.id = pi1.post_id AND\n\t\t\t\t\tpi1.name = 'testing_info'\n\t\t\t\tLEFT JOIN {postinfo} pi2 ON\n\t\t\t\t\t{posts}.id = pi2.post_id AND\n\t\t\t\t\tpi2.name = 'red'\n\t\t\t\t\tWHERE\n\t\t\t\t\t\tpi1.name <> '' OR\n\t\t\t\t\t\tpi2.name <> ''\n\t\t");
     $count_posts = Posts::get(array('ignore_permissions' => true, 'has:info' => array('testing_info', 'red'), 'count' => 1, 'nolimit' => 1));
     $this->assert_equal($count_posts, $count);
     //		$query = Posts::get( array( 'has:info' => array( 'testing_info', 'red' ), 'nolimit' => 1, 'fetch_fn' => 'get_query' ) );
     //		Utils::debug( $query );die();
     // all:info
     $count = DB::get_value("SELECT COUNT(*) FROM {posts}\n\t\t\t\tLEFT JOIN {postinfo} pi1 ON\n\t\t\t\t\t{posts}.id = pi1.post_id AND\n\t\t\t\t\tpi1.name = 'blue' AND pi1.value = 1\n\t\t\t\t\tWHERE\n\t\t\t\t\t\tpi1.name <> ''\n\t\t");
     $count_posts = Posts::get(array('ignore_permissions' => true, 'all:info' => array('blue' => 1), 'count' => 1, 'nolimit' => 1));
     $this->assert_equal($count_posts, $count);
     $count = DB::get_value("SELECT COUNT(*) FROM {posts}\n\t\t\t\tLEFT JOIN {postinfo} pi1 ON\n\t\t\t\t\t{posts}.id = pi1.post_id AND\n\t\t\t\t\tpi1.name = 'blue' AND pi1.value = 1\n\t\t\t\tLEFT JOIN {postinfo} pi2 ON\n\t\t\t\t\t{posts}.id = pi2.post_id AND\n\t\t\t\t\tpi2.name = 'two' AND pi2.value = 1\n\t\t\t\t\tWHERE\n\t\t\t\t\t\tpi1.name <> '' AND\n\t\t\t\t\t\tpi2.name <> ''\n\t\t");
     $count_posts = Posts::get(array('ignore_permissions' => true, 'all:info' => array('blue' => true, 'two' => true), 'count' => 1, 'nolimit' => 1));
     $this->assert_equal($count_posts, $count);
     // any:info
     $count = DB::get_value("SELECT COUNT(*) FROM {posts}\n\t\t\t\tLEFT JOIN {postinfo} pi1 ON\n\t\t\t\t\t{posts}.id = pi1.post_id AND\n\t\t\t\t\tpi1.name = 'black' AND\n\t\t\t\t\tpi1.value = 1\n\t\t\t\tLEFT JOIN {postinfo} pi2 ON\n\t\t\t\t\t{posts}.id = pi2.post_id AND\n\t\t\t\t\tpi2.name = 'blue' AND\n\t\t\t\t\tpi2.value = 1\n\t\t\t\t\tWHERE\n\t\t\t\t\t\tpi1.name <> '' OR\n\t\t\t\t\t\tpi2.name <> ''\n\t\t");
     $count_posts = Posts::get(array('ignore_permissions' => true, 'any:info' => array('black' => 1, 'blue' => 1), 'count' => 1, 'nolimit' => 1));
     $this->assert_equal($count_posts, $count);
     $count = Posts::get(array('ignore_permissions' => true, 'all:info' => array('black' => 1), 'count' => 1, 'nolimit' => 1)) + Posts::get(array('all:info' => array('blue' => true), 'count' => 1, 'nolimit' => 1));
     $this->assert_equal($count_posts, $count);
     $count = DB::get_value("SELECT COUNT(*) FROM {posts}\n\t\t\t\tLEFT JOIN {postinfo} pi1 ON\n\t\t\t\t\t{posts}.id = pi1.post_id AND\n\t\t\t\t\tpi1.name = 'i' AND\n\t\t\t\t\tpi1.value IN ( 0,1,2,3,4,5 )\n\t\t\t\t\tWHERE\n\t\t\t\t\t\tpi1.name <> ''\n\t\t");
     $params = array('ignore_permissions' => true, 'any:info' => array('i' => array(1, 2, 3, 4, 5)), 'count' => 1, 'nolimit' => 1);
     //$this->output(Posts::get(array_merge($params, array('fetch_fn' => 'get_query'))));
     $count_posts = Posts::get($params);
     $this->assert_equal($count_posts, $count);
     // not:all:info
     $count = DB::get_value("SELECT COUNT(*) FROM {posts} WHERE\n\t\t\t\t{posts}.id NOT IN (\n\t\t\t\t\tSELECT post_id FROM {postinfo}\n\t\t\t\t\t\tWHERE ( name = 'testing_info' AND value = 1 )\n\t\t\t\t\t\tGROUP BY post_id\n\t\t\t\t\t\tHAVING COUNT(*) = 1\n\t\t\t\t)\n\t\t");
     $count_posts = Posts::get(array('ignore_permissions' => true, 'not:all:info' => array('testing_info' => 1), 'nolimit' => 1, 'count' => 1));
     $this->assert_equal($count_posts, $count, _t('not:all:info expected %d, got %d', array($count, $count_posts)));
     $count = DB::get_value("SELECT COUNT(*) FROM {posts} WHERE\n\t\t\t\t{posts}.id NOT IN (\n\t\t\t\t\tSELECT post_id FROM {postinfo}\n\t\t\t\t\t\tWHERE ( name = 'one' AND value = 1 )\n\t\t\t\t\t\tGROUP BY post_id\n\t\t\t\t\t\tHAVING COUNT(*) = 1\n\t\t\t\t)\n\t\t");
     $count_posts = Posts::get(array('ignore_permissions' => true, 'not:all:info' => array('one' => 1), 'count' => 1, 'nolimit' => 1));
     $this->assert_equal($count_posts, $count);
     $count = DB::get_value("SELECT COUNT(*) FROM {posts} WHERE\n\t\t\t\t{posts}.id NOT IN (\n\t\t\t\t\tSELECT post_id FROM {postinfo}\n\t\t\t\t\t\tWHERE ( name = 'old' AND value = 1 OR\n\t\t\t\t\t\t name = 'new' AND value = 1 )\n\t\t\t\t\t\tGROUP BY post_id\n\t\t\t\t\t\tHAVING COUNT(*) = 2\n\t\t\t\t)\n\t\t");
     $count_posts = Posts::get(array('ignore_permissions' => true, 'not:all:info' => array('old' => 1, 'new' => 1), 'count' => 1, 'nolimit' => 1));
     $this->assert_equal($count_posts, $count);
     // not:any:info
     $count = DB::get_value("SELECT COUNT(*) FROM {posts} WHERE\n\t\t\t\t{posts}.id NOT IN (\n\t\t\t\t\tSELECT post_id FROM {postinfo}\n\t\t\t\t\t\tWHERE ( {postinfo}.name = 'two' AND {postinfo}.value = 1 )\n\t\t\t\t)\n\t\t");
     $count_posts = Posts::get(array('ignore_permissions' => true, 'not:any:info' => array('two' => 1), 'count' => 1, 'nolimit' => 1));
     $this->assert_equal($count_posts, $count);
     $count = DB::get_value("SELECT COUNT(*) FROM {posts} WHERE\n\t\t\t\t{posts}.id NOT IN (\n\t\t\t\t\tSELECT post_id FROM {postinfo}\n\t\t\t\t\t\tWHERE ( {postinfo}.name = 'black' AND {postinfo}.value = 1 OR\n\t\t\t\t\t\t {postinfo}.name = 'blue' AND {postinfo}.value = 1 )\n\t\t\t\t)\n\t\t");
     $count_posts = Posts::get(array('ignore_permissions' => true, 'not:any:info' => array('black' => 1, 'blue' => 1), 'count' => 1, 'nolimit' => 1));
     $this->assert_equal($count_posts, $count);
     //		$query = Posts::get( array( 'not:any:info' => array( 'comments_disabled' => 1, 'html_title' => 'Chili, The Breakfast of Champions' ), 'nolimit' => 1, 'fetch_fn' => 'get_query' ) );
     //		Utils::debug( $query );die();
     // teardown
     Posts::get(array('ignore_permissions' => true, 'has:info' => 'testing_info', 'nolimit' => 1))->delete();
     $informationless_post->delete();
 }
开发者ID:habari,项目名称:tests,代码行数:73,代码来源:test_posts.php

示例2: get_collection

 /**
  *	Output a post collection based on the provided parameters.
  *
  * @param array $params An array of parameters as passed to Posts::get() to retrieve posts.
  */
 public function get_collection($params = array())
 {
     // Store handler vars since we'll be using them a lot.
     $handler_vars = Controller::get_handler_vars();
     // Retrieve the current matched rule and store its name and argument values.
     $rr = URL::get_matched_rule();
     $rr_name = $rr->name;
     $rr_args = $rr->named_arg_values;
     // Assign alternate links based on the matched rule.
     $alternate_rules = array('atom_feed_tag' => 'display_entries_by_tag', 'atom_feed' => 'display_home', 'atom_entry' => 'display_entry', 'atom_feed_entry_comments' => 'display_entry', 'atom_feed_page_comments' => 'display_entry', 'atom_feed_comments' => 'display_home');
     $alternate_rules = Plugins::filter('atom_get_collection_alternate_rules', $alternate_rules);
     $alternate = URL::get($alternate_rules[$rr_name], $handler_vars, false);
     // Assign self link based on the matched rule.
     $self = URL::get($rr_name, $rr_args, false);
     $id = isset($rr_args_values['tag']) ? $rr_args_values['tag'] : 'atom';
     $xml = $this->create_atom_wrapper($alternate, $self, $id);
     $xml = $this->add_pagination_links($xml, Posts::count_total(Post::status('published')));
     // Get posts to put in the feed
     $page = isset($rr_args['page']) ? $rr_args['page'] : 1;
     if ($page > 1) {
         $params['page'] = $page;
     }
     if (!isset($params['content_type'])) {
         $params['content_type'] = Post::type('entry');
     }
     $params['content_type'] = Plugins::filter('atom_get_collection_content_type', $params['content_type']);
     $params['status'] = Post::status('published');
     $params['orderby'] = 'updated DESC';
     $params['limit'] = Options::get('atom_entries');
     $params = array_merge($params, $rr_args);
     if (array_key_exists('tag', $params)) {
         $params['tag_slug'] = Utils::slugify($params['tag']);
         unset($params['tag']);
     }
     $posts = Posts::get($params);
     $xml = $this->add_posts($xml, $posts);
     Plugins::act('atom_get_collection', $xml, $params, $handler_vars);
     $xml = $xml->asXML();
     ob_clean();
     header('Content-Type: application/atom+xml');
     print $xml;
 }
开发者ID:anupom,项目名称:my-blog,代码行数:47,代码来源:atomhandler.php

示例3: get_collection

 /**
  * Output a post collection based on the provided parameters.
  *
  * @param array $params An array of parameters as passed to Posts::get() to retrieve posts.
  */
 public function get_collection($params = array())
 {
     // Store handler vars since we'll be using them a lot.
     $handler_vars = Controller::get_handler_vars();
     // Retrieve the current matched rule and store its name and argument values.
     $rr = URL::get_matched_rule();
     $rr_name = $rr->name;
     $rr_args = $rr->named_arg_values;
     // Assign alternate links based on the matched rule.
     $alternate_rules = array('atom_feed_tag' => 'display_entries_by_tag', 'atom_feed' => 'display_home', 'atom_entry' => 'display_entry', 'atom_feed_entry_comments' => 'display_entry', 'atom_feed_page_comments' => 'display_entry', 'atom_feed_comments' => 'display_home');
     $alternate_rules = Plugins::filter('atom_get_collection_alternate_rules', $alternate_rules);
     $alternate = URL::get($alternate_rules[$rr_name], $handler_vars, false);
     // Assign self link based on the matched rule.
     $self = URL::get($rr_name, $rr_args, false);
     // Get posts to put in the feed
     $page = isset($rr_args['page']) ? $rr_args['page'] : 1;
     if ($page > 1) {
         $params['page'] = $page;
     }
     if (!isset($params['content_type'])) {
         $params['content_type'] = Post::type('entry');
     }
     $params['content_type'] = Plugins::filter('atom_get_collection_content_type', $params['content_type']);
     $params['status'] = $this->is_auth() ? 'any' : Post::status('published');
     $params['orderby'] = 'updated DESC';
     $params['limit'] = Options::get('atom_entries');
     $params = array_merge($params, $rr_args);
     if (array_key_exists('tag', $params)) {
         $id = urlencode($params['tag']);
         $tags = explode(' ', $params['tag']);
         foreach ($tags as $tag) {
             if ($tag[0] == '-') {
                 $tag = substr($tag, 1);
                 $params['vocabulary'][Tags::vocabulary()->name . ':not:term'][] = Utils::slugify($tag);
             } else {
                 $params['vocabulary'][Tags::vocabulary()->name . ':all:term'][] = Utils::slugify($tag);
             }
         }
         unset($params['tag']);
     } else {
         $id = 'atom';
     }
     $posts = Posts::get($params);
     if (count($posts)) {
         $updated = $posts[0]->updated;
     } else {
         $updated = null;
     }
     $xml = $this->create_atom_wrapper($alternate, $self, $id, $updated);
     if ($this->is_auth()) {
         $xml = $this->add_pagination_links($xml, Posts::count_total());
     } else {
         $xml = $this->add_pagination_links($xml, Posts::count_total(Post::status('published')));
     }
     $xml = $this->add_posts($xml, $posts);
     Plugins::act('atom_get_collection', $xml, $params, $handler_vars);
     $xml = $xml->asXML();
     ob_clean();
     header('Content-Type: application/atom+xml');
     print $this->tidy_xml($xml);
 }
开发者ID:ringmaster,项目名称:system,代码行数:66,代码来源:atomhandler.php


注:本文中的Posts::count_total方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。