<?xml version="1.0" encoding="UTF-8"  standalone="yes" ?>
<rss version="2.0">
	<channel>
		<title>社群: Web Programming - 文件區(interfaces (api))</title>
		<description>台灣數位學習數位教學平台 RSS feed provider</description>
		<language>zh-tw</language>
		<link>http://lms.xms.com.tw/board.php?courseID=100&amp;f=doclist&amp;folderID=1234</link>
	<item>
		<title>drupal_unpack() @ bootstrap.inc</title>
		<link>http://lms.xms.com.tw/board.php?courseID=100&amp;f=doc&amp;cid=5694</link>
		<description>/**&amp;nbsp;* Unserializes and appends elements from a serialized string.&amp;nbsp;*&amp;nbsp;* @param $obj&amp;nbsp;*&amp;nbsp;&amp;nbsp; The object to which the elements are appended.&amp;nbsp;* @param $field&amp;nbsp;*&amp;nbsp;&amp;nbsp; The attribute of $obj whose value should be unserialized.&amp;nbsp;*/function drupal_unpack($obj, $field = &#039;data&#039;) {&amp;nbsp; if ($obj-&amp;gt;$field &amp;amp;&amp;amp; $data = unserialize($obj-&amp;gt;$field)) {&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach ($data as $key =&amp;gt; $value) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!empty($key) &amp;amp;&amp;amp; !isset($obj-&amp;gt;$key)) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $obj-&amp;gt;$key = $value;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; }&amp;nbsp; return $obj;}  </description>
		<pubDate>Sat, 30 Apr 2011 12:05:20 +0800</pubDate>
	</item>
	<item>
		<title>user_load() @ user.module</title>
		<link>http://lms.xms.com.tw/board.php?courseID=100&amp;f=doc&amp;cid=5691</link>
		<description>1. get user info
db_query(&#039;SELECT * FROM {users} u WHERE &#039;. implode(&#039; AND &#039;, $query), $params);
&amp;nbsp;
2. get user role
db_query(&#039;SELECT r.rid, r.name FROM {role} r INNER JOIN {users_roles} ur ON ur.rid = r.rid WHERE ur.uid = %d&#039;, $user-&amp;gt;uid);
&amp;nbsp;
/**&amp;nbsp;* Fetch a user object.&amp;nbsp;*&amp;nbsp;* @param $user_info&amp;nbsp;*&amp;nbsp;&amp;nbsp; Information about the user to load, consisting of one of the following:&amp;nbsp;*&amp;nbsp;&amp;nbsp; - An associative array whose keys are fields in the {users} table (such as&amp;nbsp;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uid, name, pass, mail, status) and whose values are the field&#039;s value.&amp;nbsp;*&amp;nbsp;&amp;nbsp; - A numeric user ID.&amp;nbsp;*&amp;nbsp;* @return&amp;nbsp;*&amp;nbsp;&amp;nbsp; A fully-loaded $user object upon successful user load or FALSE if user&amp;nbsp;*&amp;nbsp;&amp;nbsp; cannot be loaded.&amp;nbsp;*/function user_load($user_info = array()) {&amp;nbsp; // Dynamically compose a SQL query:&amp;nbsp; $query = array();&amp;nbsp; $params = array();
&amp;nbsp; if (is_numeric($user_info)) {&amp;nbsp;&amp;nbsp;&amp;nbsp; $user_info = array(&#039;uid&#039; =&amp;gt; $user_info);&amp;nbsp; }&amp;nbsp; elseif (!is_array($user_info)) {&amp;nbsp;&amp;nbsp;&amp;nbsp; return FALSE;&amp;nbsp; }
&amp;nbsp; foreach ($user_info as $key =&amp;gt; $value) {&amp;nbsp;&amp;nbsp;&amp;nbsp; if ($key == &#039;uid&#039; || $key == &#039;status&#039;) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $query[] = &quot;$key = %d&quot;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $params[] = $value;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; else if ($key == &#039;pass&#039;) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $query[] = &quot;pass = &#039;%s&#039;&quot;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $params[] = md5($value);&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $query[]= &quot;LOWER($key) = LOWER(&#039;%s&#039;)&quot;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $params[] = $value;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; }&amp;nbsp; $result = db_query(&#039;SELECT * FROM {users} u WHERE &#039;. implode(&#039; AND &#039;, $query), $params);
&amp;nbsp; if ($user = db_fetch_object($result)) {&amp;nbsp;&amp;nbsp;&amp;nbsp; $user = drupal_unpack($user);
&amp;nbsp;&amp;nbsp;&amp;nbsp; $user-&amp;gt;roles = array();&amp;nbsp;&amp;nbsp;&amp;nbsp; if ($user-&amp;gt;uid) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $user-&amp;gt;roles[DRUPAL_AUTHENTICATED_RID] = &#039;authenticated user&#039;;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $user-&amp;gt;roles[DRUPAL_ANONYMOUS_RID] = &#039;anonymous user&#039;;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; $result = db_query(&#039;SELECT r.rid, r.name FROM {role} r INNER JOIN {users_roles} ur ON ur.rid = r.rid WHERE ur.uid = %d&#039;, $user-&amp;gt;uid);&amp;nbsp;&amp;nbsp;&amp;nbsp; while ($role = db_fetch_object($result)) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $user-&amp;gt;roles[$role-&amp;gt;rid] = $role-&amp;gt;name;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; user_module_invoke(&#039;load&#039;, $user_info, $user);&amp;nbsp; }&amp;nbsp; else {&amp;nbsp;&amp;nbsp;&amp;nbsp; $user = FALSE;&amp;nbsp; }
&amp;nbsp; return $user;} </description>
		<pubDate>Sat, 30 Apr 2011 11:27:07 +0800</pubDate>
	</item>
	</channel>
	</rss>
