<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><style type="text/css"><!--
#msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; }
#msg ul, pre { overflow: auto; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<title>[15675] trunk/wp-includes/ms-functions.php: Some phpdoc for ms-functions.
 php.</title>
</head>
<body>

<div id="msg">
<dl>
<dt>Revision</dt> <dd><a href="http://trac.wordpress.org/changeset/15675">15675</a></dd>
<dt>Author</dt> <dd>nacin</dd>
<dt>Date</dt> <dd>2010-09-29 23:44:34 +0000 (Wed, 29 Sep 2010)</dd>
</dl>

<h3>Log Message</h3>
<pre>Some phpdoc for ms-functions.php. props boonebgorges. see <a href="http://trac.wordpress.org/ticket/14953">#14953</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkwpincludesmsfunctionsphp">trunk/wp-includes/ms-functions.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkwpincludesmsfunctionsphp"></a>
<div class="modfile"><h4>Modified: trunk/wp-includes/ms-functions.php (15674 => 15675)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-includes/ms-functions.php        2010-09-29 09:11:08 UTC (rev 15674)
+++ trunk/wp-includes/ms-functions.php        2010-09-29 23:44:34 UTC (rev 15675)
</span><span class="lines">@@ -7,6 +7,15 @@
</span><span class="cx">  * @since 3.0.0
</span><span class="cx">  */
</span><span class="cx"> 
</span><ins>+/**
+ * Gets the network's site and user counts.
+ *
+ * @since MU 1.0
+ * @uses get_blog_count()
+ * @uses get_user_count()
+ *
+ * @return array Site and user count for the network.
+ */
</ins><span class="cx"> function get_sitestats() {
</span><span class="cx">         global $wpdb;
</span><span class="cx"> 
</span><span class="lines">@@ -16,6 +25,15 @@
</span><span class="cx">         return $stats;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+/**
+ * Get the admin for a domain/path combination.
+ *
+ * @since MU 1.0
+ *
+ * @param string $sitedomain Optional. Site domain.
+ * @param string $path Optional. Site path.
+ * @return array The network admins
+ */
</ins><span class="cx"> function get_admin_users_for_domain( $sitedomain = '', $path = '' ) {
</span><span class="cx">         global $wpdb;
</span><span class="cx"> 
</span><span class="lines">@@ -30,7 +48,28 @@
</span><span class="cx">         return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-function get_active_blog_for_user( $user_id ) { // get an active blog for user - either primary blog or from blogs list
</del><ins>+/**
+ * Get one of a user's active blogs
+ *
+ * Returns the user's primary blog, if she has one and
+ * it is active. If it's inactive, function returns another
+ * active blog of the user. If none are found, the user
+ * is added as a Subscriber to the Dashboard Blog and that blog
+ * is returned.
+ *
+ * @since MU 1.0
+ * @uses get_blogs_of_user()
+ * @uses get_dashboard_blog()
+ * @uses add_user_to_blog()
+ * @uses update_user_meta()
+ * @uses wp_cache_delete()
+ * @uses get_user_meta()
+ * @uses get_blog_details()
+ *
+ * @param int $user_id The unique ID of the user
+ * @return object The blog object
+ */
+function get_active_blog_for_user( $user_id ) {
</ins><span class="cx">         global $wpdb;
</span><span class="cx">         $blogs = get_blogs_of_user( $user_id );
</span><span class="cx">         if ( empty( $blogs ) ) {
</span><span class="lines">@@ -44,7 +83,6 @@
</span><span class="cx">         $primary_blog = get_user_meta( $user_id, 'primary_blog', true );
</span><span class="cx">         $details = get_dashboard_blog();
</span><span class="cx">         if ( $primary_blog ) {
</span><del>-                $blogs = get_blogs_of_user( $user_id );
</del><span class="cx">                 if ( isset( $blogs[ $primary_blog ] ) == false ) {
</span><span class="cx">                         add_user_to_blog( $details-&gt;blog_id, $user_id, 'subscriber' );
</span><span class="cx">                         update_user_meta( $user_id, 'primary_blog', $details-&gt;blog_id );
</span><span class="lines">@@ -94,6 +132,16 @@
</span><span class="cx">         }
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+/**
+ * Find out whether a user is a member of a given blog.
+ *
+ * @since MU 1.1
+ * @uses get_blogs_of_user()
+ * 
+ * @param int $user_id The unique ID of the user
+ * @param int $blog Optional. If no blog_id is provided, current site is used
+ * @return bool
+ */
</ins><span class="cx"> function is_user_member_of_blog( $user_id, $blog_id = 0 ) {
</span><span class="cx">         $user_id = (int) $user_id;
</span><span class="cx">         $blog_id = (int) $blog_id;
</span><span class="lines">@@ -110,6 +158,17 @@
</span><span class="cx">                 return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+/**
+ * The number of active users in your installation.
+ *
+ * This function also saves the count as a site option,
+ * which speeds up future lookups.
+ *
+ * @since MU 2.7
+ * @uses update_site_option()
+ *
+ * @return int
+ */
</ins><span class="cx"> function get_user_count() {
</span><span class="cx">         global $wpdb;
</span><span class="cx"> 
</span><span class="lines">@@ -125,6 +184,18 @@
</span><span class="cx">         return $count;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+/**
+ * The number of active sites on your installation.
+ *
+ * This function also saves the count as a site option,
+ * which speeds up future lookups.
+ *
+ * @since MU 1.0
+ * @uses update_site_option()
+ *
+ * @param int $id Optional. A site_id.
+ * @return int
+ */
</ins><span class="cx"> function get_blog_count( $id = 0 ) {
</span><span class="cx">         global $wpdb;
</span><span class="cx"> 
</span><span class="lines">@@ -143,6 +214,15 @@
</span><span class="cx">         return $count;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+/**
+ * Get a blog post from any site on the network.
+ *
+ * @since MU 1.0
+ *
+ * @param int $blog_id ID of the blog.
+ * @param int $post_id ID of the post you're looking for.
+ * @return object The post.
+ */
</ins><span class="cx"> function get_blog_post( $blog_id, $post_id ) {
</span><span class="cx">         global $wpdb;
</span><span class="cx"> 
</span><span class="lines">@@ -156,6 +236,23 @@
</span><span class="cx">         return $post;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+/**
+ * Add a user to a blog.
+ *
+ * Use the 'add_user_to_blog' action to fire an event when
+ * users are added to a blog.
+ *
+ * @since MU 1.0
+ * @uses switch_to_blog()
+ * @uses update_user_meta()
+ * @uses wp_cache_delete()
+ * @uses restore_current_blog()
+ *
+ * @param int $blog_id ID of the blog you're adding the user to.
+ * @param int $user_id ID of the user you're adding.
+ * @param string $role The role you want the user to have
+ * @return bool
+ */
</ins><span class="cx"> function add_user_to_blog( $blog_id, $user_id, $role ) {
</span><span class="cx">         switch_to_blog($blog_id);
</span><span class="cx"> 
</span><span class="lines">@@ -178,6 +275,27 @@
</span><span class="cx">         return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+/**
+ * Remove a user from a blog.
+ *
+ * Use the 'remove_user_from_blog' action to fire an event when
+ * users are removed from a blog.
+ *
+ * Accepts an optional $reassign parameter, if you want to 
+ * reassign the user's blog posts to another user upon removal.
+ *
+ * @since MU 1.0
+ * @uses switch_to_blog()
+ * @uses get_user_meta()
+ * @uses get_blogs_of_user()
+ * @uses update_user_meta()
+ * @uses restore_current_blog()
+ *
+ * @param int $user_id ID of the user you're removing.
+ * @param int $blog_id ID of the blog you're removing the user from.
+ * @param string $reassign Optional. A user to whom to reassign posts.
+ * @return bool
+ */
</ins><span class="cx"> function remove_user_from_blog($user_id, $blog_id = '', $reassign = '') {
</span><span class="cx">         global $wpdb;
</span><span class="cx">         switch_to_blog($blog_id);
</span><span class="lines">@@ -225,6 +343,20 @@
</span><span class="cx">         restore_current_blog();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+/**
+ * Create an empty blog.
+ *
+ * @since MU 1.0
+ * @uses switch_to_blog()
+ * @uses install_blog()
+ * @uses restore_current_blog()
+ *
+ * @param string $domain The new blog's domain.
+ * @param string $path The new blog's path.
+ * @param string $string The new blog's title.
+ * @param int $site Optional. Defaults to 1.
+ * @return int $blog_id The ID of the newly created blog
+ */
</ins><span class="cx"> function create_empty_blog( $domain, $path, $weblog_title, $site_id = 1 ) {
</span><span class="cx">         $domain                        = addslashes( $domain );
</span><span class="cx">         $weblog_title        = addslashes( $weblog_title );
</span><span class="lines">@@ -250,6 +382,19 @@
</span><span class="cx">         return $blog_id;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+/**
+ * Get the permalink for a post on another blog.
+ *
+ * @since MU 1.0
+ * @uses wp_cache_get()
+ * @uses switch_to_blog()
+ * @uses restore_current_blog()
+ * @uses wp_cache_add()
+ *
+ * @param int $_blog_id ID of the source blog.
+ * @param int $post_id ID of the desired post.
+ * @return string $link The post's permalink
+ */
</ins><span class="cx"> function get_blog_permalink( $_blog_id, $post_id ) {
</span><span class="cx">         $key = &quot;{$_blog_id}-{$post_id}-blog_permalink&quot;;
</span><span class="cx">         $link = wp_cache_get( $key, 'site-options' );
</span><span class="lines">@@ -262,6 +407,22 @@
</span><span class="cx">         return $link;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+/**
+ * Get a blog's numeric ID from its URL.
+ *
+ * On a subdirectory installation like example.com/blog1/,
+ * $domain will be the root 'example.com' and $path the
+ * subdirectory '/blog1/'. With subdomains like blog1.example.com,
+ * $domain is 'blog1.example.com' and $path is '/'.
+ *
+ * @since MU 2.6.5
+ * @uses wp_cache_get()
+ * @uses wp_cache_set()
+ *
+ * @param string $domain
+ * @param string $path Optional. Not required for subdomain installations.
+ * @return int $id
+ */
</ins><span class="cx"> function get_blog_id_from_url( $domain, $path = '/' ) {
</span><span class="cx">         global $wpdb;
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>