00001 <?php
00002
00041 require_once(dirname(__FILE__) ."/embient.php");
00042
00044 $Embient = NULL;
00045
00049 function embient_smf_load()
00050 {
00051 global $Embient;
00052
00053 embient_set_error_logger('_embient_log_error');
00054 $Embient = new Embient('smf');
00055 }
00056
00065 function embient_smf_register($regvars, $themevars)
00066 {
00067 global $Embient;
00068
00129 list($firstname, $lastname) = split("\ ", $regvars['register_vars']['realName']);
00130
00131 $userinfo = array
00132 (
00133 'name' => $regvars['username'],
00134 'passwd' => $regvars['password'],
00135 'mail' => $regvars['email'],
00136 'firstname' => $firstname,
00137 'lastname' => $lastname,
00138 'signature' => $regvars['signature'],
00139 );
00140
00141 $Embient->Add($userinfo);
00142 }
00143
00154 function embient_smf_login($username, $hash_password, $cookie_length)
00155 {
00156 global $Embient;
00157
00158 $Embient->Login($username);
00159 }
00160
00167 function embient_smf_logout($username)
00168 {
00169 global $Embient;
00170
00171 $Embient->Logout($username);
00172 }
00173
00184 function embient_smf_userdata($usernames, $field, $value)
00185 {
00186 global $Embient;
00187
00188
00189 $value = preg_replace("/'(.*)'/", "\$1", $value);
00190
00191 foreach ($usernames as $name)
00192 {
00193 $userinfo = array();
00194
00195 switch($field)
00196 {
00197 case 'memberName':
00198 $userinfo['name'] = $value;
00199 break;
00200
00201 case 'emailAddress':
00202 $userinfo['mail'] = $value;
00203 break;
00204
00205 case 'realName':
00206 list($firstname, $lastname) = split("\ ", $value);
00207 $userinfo['firstname'] = $firstname;
00208 $userinfo['lastname'] = $lastname;
00209 break;
00210
00211 case 'signature':
00212 $userinfo['signature'] = $value;
00213 break;
00214
00215 case 'timeOffset':
00216 $userinfo['timezone'] = $value;
00217 break;
00218 }
00219
00220 embient_debug("$name is changing it's $field to $value");
00221
00222 if ( ! empty($userinfo) )
00223 {
00224 $Embient->Update($name, $userinfo);
00225 }
00226 }
00227 }
00228
00235 function embient_smf_delete($smf_userid)
00236 {
00237 global $Embient;
00238 global $db_prefix;
00239
00240 embient_debug("smf request to delete $smf_userid");
00241
00242 $query = "SELECT memberName "
00243 . "FROM {$db_prefix}members "
00244 . "WHERE ID_MEMBER = '$smf_userid' "
00245 . "LIMIT 1";
00246
00247 $request = db_query($query, __FILE__, __LINE__);
00248 $user = mysql_fetch_assoc($request);
00249 mysql_free_result($request);
00250
00251 $Embient->Delete($user['memberName']);
00252 }
00253
00264 function embient_smf_pass($username, $newusername, $newpassword)
00265 {
00266 global $Embient;
00267
00268 if ( $username != $newusername )
00269 {
00270 $userinfo['name'] = $newusername;
00271 }
00272 $userinfo['passwd'] = $newpassword;
00273 $Embient->Update($username, $userinfo);
00274 }
00275
00286 function embient_smf_filter($content)
00287 {
00288 global $Embient;
00289 global $embient_debug_msg;
00290
00291 if ($embient_debug_msg != '')
00292 {
00293 $content .= '<div>'
00294 . '<center>'
00295 . '<table border="0" width="95%" cellspacing="1" cellpadding="5" class="tborder">'
00296 . '<tr><td class="catbg">'
00297 . 'Debug:'
00298 . '</td></tr>'
00299 . '<tr class="windowbg2"><td>'
00300 . $embient_debug_msg
00301 . '</td></tr>'
00302 . '</table>'
00303 . '</center>'
00304 . '</div>';
00305
00306 $embient_debug_msg = '';
00307 }
00308
00309 return $content;
00310 }
00311
00323 function _embient_log_error($msg, $file, $line)
00324 {
00325 global $Embient;
00326
00327 log_error($msg, $file, $line);
00328 }