public function getAuthor() { if (!$this->_author) { $this->_author = KunenaUser::getInstance((int) $this->created_by); } return $this->_author; }
/** * @param UserTable $user */ public function syncUser($user) { global $_CB_framework; if (!class_exists('KunenaUser')) { return; } $exists = KunenaUser::getInstance((int) $user->id); if ($exists) { $plugin = cbforumsClass::getPlugin(); $updated = false; $fields = array('ordering', 'viewtype', 'signature', 'personaltext', 'gender', 'birthdate', 'location', 'icq', 'aim', 'yim', 'msn', 'skype', 'twitter', 'facebook', 'gtalk', 'myspace', 'linkedin', 'delicious', 'friendfeed', 'digg', 'blogspot', 'flickr', 'bebo', 'website', 'email', 'online', 'subscribe', 'listlimit'); foreach ($fields as $field) { $cbField = $plugin->params->get('k20_' . $field, null); if ($cbField && isset($user->{$cbField})) { $value = $user->get($cbField); // Convert legacy values for B/C: switch ($value) { case '_UE_ORDERING_OLDEST': case 'UE_ORDERING_OLDEST': case 'Oldest': $value = 0; break; case '_UE_ORDERING_LATEST': case 'UE_ORDERING_LATEST': case 'Latest': $value = 1; break; case '_UE_VIEWTYPE_FLAT': case 'UE_VIEWTYPE_FLAT': case 'Flat': $value = 'flat'; break; case '_UE_VIEWTYPE_THREADED': case 'UE_VIEWTYPE_THREADED': case 'Threaded': $value = 'threaded'; break; case '_UE_VIEWTYPE_INDENTED': case 'UE_VIEWTYPE_INDENTED': case 'Indented': $value = 'indented'; break; case '_UE_MALE': case 'UE_MALE': case 'Male': $value = 1; break; case '_UE_FEMALE': case 'UE_FEMALE': case 'Female': $value = 2; break; case '_UE_HIDE': case 'UE_HIDE': case '_UE_NO': case 'UE_NO': case '_UE_UNKNOWN': case 'UE_UNKNOWN': case 'Hide': case 'No': case 'Unknown': $value = 0; break; case '_UE_SHOW': case 'UE_SHOW': case '_UE_YES': case 'UE_YES': case 'Show': case 'Yes': $value = 1; break; } // Convert the field name and/or value to Kunena compatible: switch ($field) { case 'birthdate': if ($value && !in_array($value, array('0000-00-00', '0000-00-00 00:00:00'))) { $value = $_CB_framework->getUTCDate('Y-m-d', $value); } else { $value = '0000-00-00'; } break; case 'viewtype': $field = 'view'; break; case 'email': $field = 'hideEmail'; break; case 'online': $field = 'showOnline'; break; case 'personaltext': $field = 'personalText'; break; case 'subscribe': $field = 'canSubscribe'; break; case 'listlimit': $field = 'userListtime'; break; } // If the field is website then set both values in Kunena as needed; otherwise do normal set: if ($field == 'website') { $web = explode('|*|', $value); if (count($web) > 1) { $webName = isset($web[0]) ? $web[0] : null; $webUrl = isset($web[1]) ? $web[1] : null; } else { $webName = null; $webUrl = isset($web[0]) ? $web[0] : null; } if ($webName != $exists->get('websitename')) { $exists->set('websitename', $webName); $updated = true; } if ($webUrl != $exists->get('websiteurl')) { $exists->set('websiteurl', $webUrl); $updated = true; } } else { if ($value != $exists->get($field)) { $exists->set($field, $value); $updated = true; } } } } if ($updated) { if (!$exists->save()) { trigger_error(CBTxt::T('FORUMS_SYNC_USER_ERROR', '[element] - syncUser SQL Error: [error]', array('[element]' => $plugin->element, '[error]' => $exists->getError())), E_USER_WARNING); } } } }
/** * Puts user forum settings into object * * @param moscomprofilerUser $user * @param object $forum * @param mixed $additional * @return object */ function getUserSettings($user, $forum, $additional = null) { global $_CB_database; static $cache = array(); if (!isset($cache[$user->id])) { if ($forum->prefix != 'kunena' || $forum->prefix == 'kunena' && !class_exists('KunenaForum')) { $query = 'SELECT f.*' . $additional . "\n FROM " . $_CB_database->NameQuote('#__' . $forum->prefix . '_users') . 'AS f' . ', ' . $_CB_database->NameQuote('#__users') . 'AS u' . "\n WHERE f." . $_CB_database->NameQuote('userid') . " = u." . $_CB_database->NameQuote('id') . "\n AND f." . $_CB_database->NameQuote('userid') . " = " . (int) $user->id; $_CB_database->setQuery($query, 0, 1); $settings = null; $_CB_database->loadObject($settings); } elseif (class_exists('KunenaUser')) { $settings = KunenaUser::getInstance((int) $user->id); } else { $settings = null; } $cache[$user->id] = $settings ? $settings : null; } return $cache[$user->id]; }
/** * Get Kunena user object * * Returns the global {@link KunenaUser} object, only creating it if it doesn't already exist. * * @param int $id The user to load - Can be an integer or string - If string, it is converted to Id automatically. * * @return object KunenaUser */ public static function getUser($id = null, $reload = false) { kimport('user'); return KunenaUser::getInstance($id, $reload); }