function latest_forum_posts($course_id, $hp_items, $user_id) { $db =& JFactory::getDBO(); $latest_forum_posts = array(); if (strlen($course_id)) { $query = "SELECT fd.*, c.course_name" . "\n FROM #__lms_forum_details as fd, #__lms_courses AS c" . "\n WHERE c.id = fd.course_id" . "\n AND fd.course_id IN (" . $course_id . ")"; $db->setQuery($query); $forum_details = $db->loadObjectList(); $board_ids = array(); foreach ($forum_details as $fd) { $board_ids[] = $fd->ID_BOARD; } $latest_forum_posts = array(); $forum =& JLMS_SMF::getInstance(); if (isset($forum->smf_db)) { $latest_forum_posts = $forum->getLatestPosts($user_id, $hp_items, $board_ids); } if (count($latest_forum_posts)) { for ($i = 0; $i < count($latest_forum_posts); $i++) { foreach ($forum_details as $fd) { if ($latest_forum_posts[$i]->id_board == $fd->ID_BOARD) { $latest_forum_posts[$i]->course_id = $fd->course_id; $latest_forum_posts[$i]->course_name = $fd->course_name; } } } } } return $latest_forum_posts; }
function onAfterRoute() { $database = JFactory::getDBO(); $task = JRequest::getVar('task', ''); $option = JRequest::getVar('option', ''); $id = JRequest::getInt('id'); $version = new JVersion(); $app =& JFactory::getApplication(); $loginTasks = array('login', 'user.login'); $logoutTasks = array('logout', 'user.logout'); $editTasks = array('saveUserEdit', 'saveregisters', 'profile.save', 'registration.register', 'register_save', 'user.save', 'user.apply', 'save', 'apply'); if (strnatcasecmp($version->RELEASE, '1.7') >= 0) { $jVersion = 17; } else { if (strnatcasecmp($version->RELEASE, '1.6') >= 0) { $jVersion = 16; } else { $jVersion = 15; } } if (file_exists(JPATH_SITE . DS . 'components' . DS . 'com_joomla_lms' . DS . "includes" . DS . "classes" . DS . "lms.factory.php")) { require_once JPATH_SITE . DS . 'components' . DS . 'com_joomla_lms' . DS . "includes" . DS . "classes" . DS . "lms.factory.php"; } else { //JoomlaLMS system files not found return; } if (!file_exists(JPATH_SITE . DS . 'components' . DS . 'com_joomla_lms' . DS . 'includes' . DS . 'forums' . DS . 'smf' . DS . 'smf.php')) { //JoomlaLMS system files not found return; } if (!class_exists('JLMSFactory')) { //JoomlaLMS system class not found return; } jimport('joomla.user.helper'); $JLMS_CONFIG = JLMSFactory::getConfig(); /* admin language for JoomlaLMS BackEnd menu */ $app =& JFactory::getApplication(); if ($app->isAdmin()) { $language = $JLMS_CONFIG->get('default_language'); $lang_path = JPATH_SITE . DS . "administrator" . DS . "components" . DS . "com_joomla_lms"; $lang =& JFactory::getLanguage(); $oldLang = $lang->setDefault('english'); if ($jVersion >= 16) { $lang->load('com_joomla_lms.sys', $lang_path, $language); } else { $lang->load('admin.menu.lang', $lang_path, $language); } $lang->setDefault($oldLang); } /* end of admin language */ $user_id = 0; if (in_array($task, $loginTasks)) { $username = JRequest::getVar('username', '', 'post', 'username'); $password = JRequest::getVar('password', '', 'post', 'string', JREQUEST_ALLOWRAW); if (!$username) { return false; } if (!$password) { $password = JRequest::getVar('passwd', '', 'post', 'string', JREQUEST_ALLOWRAW); } $query = 'SELECT * ' . ' FROM `#__users`' . ' WHERE username='******':', $result->password); $crypt = $parts[0]; $salt = @$parts[1]; $testcrypt = JUserHelper::getCryptedPassword($password, $salt); if ($crypt == $testcrypt) { $juser = $result; } } if (isset($juser->id)) { $user_id = $juser->id; } } else { $user =& JFactory::getUser(); $user_id = $id ? $id : $user->get('id'); } //echo '<pre>'; //print_r($juser); //echo '</pre>'; //die; $do_synchronize = false; if ($this->params->get('synch_all_users', 1)) { $do_synchronize = true; } else { if (!$user_id) { return false; } $query = "SELECT user_id FROM #__lms_users WHERE user_id = " . $user_id; $database->setQuery($query); $lms_user_id = $database->LoadResult(); if (!$lms_user_id) { $query = "SELECT user_id FROM #__lms_user_courses WHERE user_id = " . $user_id; $database->setQuery($query); $lms_user_id = $database->LoadResult(); if (!$lms_user_id) { $query = "SELECT user_id FROM #__lms_users_in_groups WHERE user_id = " . $user_id; $database->setQuery($query); $lms_user_id = $database->LoadResult(); } } if (!$lms_user_id) { $do_synchronize = false; } else { $do_synchronize = true; } } if ($JLMS_CONFIG->get('plugin_forum') && $option && $do_synchronize) { if (in_array($option, array('com_users', 'com_user', 'com_comprofiler')) && in_array($task, $loginTasks)) { $forum =& JLMS_SMF::getInstance(); if (is_object($forum)) { //require_once ( JPATH_SITE.'/components/com_joomla_lms/includes/jlms_reg_forum.php'); if (isset($juser) && is_object($juser)) { if (isset($juser->id)) { //----> CB section $query = "SELECT lms_config_var, lms_config_value FROM `#__lms_config` WHERE lms_config_var LIKE '%_cb_%' "; $database->setQuery($query); $configs = $database->loadObjectList(); $cb_values = array(); foreach ($configs as $cb_value) { $cb_values[$cb_value->lms_config_var] = $cb_value->lms_config_value; } $cb_info = array(); if ($cb_values['is_cb_installed']) { $fields = array('website', 'ICQ', 'AIM', 'YIM', 'MSN', 'location'); $fields_isset = array(); foreach ($fields as $field) { if (isset($cb_values['jlms_cb_' . $field]) && $cb_values['jlms_cb_' . $field]) { $fields_isset[] = $cb_values['jlms_cb_' . $field]; } } if (!empty($fields_isset)) { $fields_str = implode(',', $fields_isset); $query = "SELECT name FROM `#__comprofiler_fields` WHERE fieldid IN ({$fields_str}) "; $database->setQuery($query); $field_name = $database->loadResultArray(); $field_names = implode(',', $field_name); $query = "SELECT " . $field_names . " FROM `#__comprofiler` WHERE user_id=" . $juser->id; $database->setQuery($query); $cb_user = $database->loadResultArray(); if (isset($cb_user[0])) { $cb_info = array_values($cb_user); } } } $groups = ''; $smf_user = $forum->loadMemberByName($username); if (is_object($smf_user) && isset($smf_user->id_member)) { $mem_id = $smf_user->id_member; } else { $mem_id = $forum->registerOnForum($juser, $password, $groups, $cb_info); } $forum->setLoginCookie15($mem_id, $password); } } } } elseif (in_array($option, array('com_users', 'com_user', 'com_comprofiler')) && in_array($task, $logoutTasks)) { $forum =& JLMS_SMF::getInstance(); if (is_object($forum)) { $cookiename = $forum->getCookieName(); $parts = $forum->urlParts(); if ($parts[0] == 'localhost') { setcookie($cookiename, 0, time() - 3600, $parts[1]); } else { setcookie($cookiename, 0, time() - 3600, $parts[1], $parts[0]); } } } elseif (in_array($option, array('com_users', 'com_user', 'com_comprofiler')) && in_array($task, $editTasks)) { if (!$id) { return false; } $forum =& JLMS_SMF::getInstance(); if (is_object($forum)) { $loginForm = JRequest::getVar('jform', array(), 'default', 'array'); $verifyPass = JRequest::getVar('password__verify', '', 'post', 'string', JREQUEST_ALLOWRAW); $isCB = !$verifyPass ? false : true; if ($isCB) { $email = JRequest::getVar('email'); $username = JRequest::getVar('username'); $name = JRequest::getVar('name'); $postPass = JRequest::getVar('password', '', 'post', 'string', JREQUEST_ALLOWRAW); } else { if ($jVersion > 15) { $username = $loginForm['username']; $name = $loginForm['name']; if ($app->isAdmin()) { $email = $loginForm['email']; $postPass = $loginForm['password']; } else { $email = $loginForm['email1']; $postPass = $loginForm['password1']; } $verifyPass = $loginForm['password2']; } else { $email = JRequest::getVar('email'); $username = JRequest::getVar('username'); $name = JRequest::getVar('name'); $postPass = JRequest::getVar('password', '', 'post', 'string', JREQUEST_ALLOWRAW); $verifyPass = JRequest::getVar('password2', '', 'post', 'string', JREQUEST_ALLOWRAW); } } //$pass='******'; $password = ''; if (!preg_match("/.+@.+\\..+/", $email)) { return false; } if ($username) { if ($verifyPass) { if ($verifyPass == $postPass) { $password = $forum->password($username, $postPass); //$pass = "******".$password."', "; } else { return false; } } } if ($id) { $query = "SELECT username FROM `#__users` WHERE id='" . $id . "'"; $database->setQuery($query); $database->query(); $usernameOld = $database->loadResult(); $smf_user = $forum->loadMemberByName($usernameOld); $userid_forum = $smf_user->id_member; $storeData = get_object_vars($smf_user); } $storeData['id_member'] = $userid_forum; $storeData['member_name'] = $username; $storeData['email_address'] = $email; $storeData['real_name'] = $name; if ($password) { $storeData['passwd'] = $password; } $forum->storeMember($storeData); if ($password) { $forum->setLoginCookie15($userid_forum, $post_password); } } } } }
function JLMS_checkSMF_cookies($reconnect = true) { global $JLMS_CONFIG, $JLMS_DB; $id_member = 0; $password = ''; $forum =& JLMS_SMF::getInstance(); $cookiename = $forum->getCookieName(); if (isset($_COOKIE[$cookiename])) { $cookie_forum = stripslashes($_COOKIE[$cookiename]); if (preg_match('~^a:[34]:\\{i:0;(i:\\d{1,6}|s:[1-8]:"\\d{1,8}");i:1;s:(0|40):"([a-fA-F0-9]{40})?";i:2;[id]:\\d{1,14};(i:3;i:\\d;)?\\}$~', $cookie_forum) == 1) { list($id_member, $password) = @unserialize($cookie_forum); $id_member = !empty($id_member) && strlen($password) > 0 ? (int) $id_member : 0; } else { $id_member = 0; } } if ($id_member) { $user_data = $forum->selectMembers(array($id_member)); $user_settings = array(); if ($user_data) { $user_settings = $user_data[0]; } if (!empty($user_settings)) { // SHA-1 passwords should be 40 characters long. if (strlen($password) == 40) { $check = sha1($user_settings->passwd . $user_settings->password_salt) == $password; } else { $check = false; } // Wrong password or not activated - either way, you're going nowhere. //$id_member = $check && ($user_settings['is_activated'] == 1 || $user_settings['is_activated'] == 11) ? $user_settings['id_member'] : 0; $id_member = $check ? $user_settings->id_member : 0; } else { $id_member = 0; } } return $id_member; }
function JLMS_DelOp_deleteLpaths($cid) { global $JLMS_DB, $JLMS_CONFIG; $cids = implode(',', $cid); //patch by DEN - 10 march 2010 - ticket RQFC-2946 $query = "DELETE FROM #__lms_gradebook_lpaths WHERE learn_path_id IN ({$cids})"; $JLMS_DB->setQuery($query); $JLMS_DB->query(); $query = "SELECT id FROM #__lms_forums WHERE forum_level = 1"; $JLMS_DB->SetQuery($query); $board_types = $JLMS_DB->LoadResultArray(); if (count($board_types)) { $board_types_str = implode(',', $board_types); $query = "SELECT id, course_id, board_type, group_id, ID_GROUP AS id_group, ID_CAT AS id_cat, ID_BOARD AS id_board, is_active, need_update FROM #__lms_forum_details WHERE board_type IN ({$board_types_str}) AND group_id IN ({$cids})"; $JLMS_DB->setQuery($query); $lpaths = $JLMS_DB->loadObjectList(); $boards = array(); $mem_groups = array(); foreach ($lpaths as $lpath) { $boards[] = $lpath->id_board; $mem_groups[] = $lpath->id_group; } $query = "DELETE FROM #__lms_forum_details WHERE board_type IN ({$board_types_str}) AND group_id IN ({$cids})"; $JLMS_DB->setQuery($query); $JLMS_DB->query(); $forum =& JLMS_SMF::getInstance(); if (is_object($forum)) { $forum->deleteBoards($boards); $forum->deleteTopics($boards); $forum->deleteMessages($boards); $forum->deleteModerators($boards); $forum->deleteMembergroups($mem_groups); $forum->deletePermissions($mem_groups); } } }