protected function setLangDict(&$lang) { if ($this->currLang !== $lang) { !empty($lang) && in_array($lang, $this->arrLangs) ? $this->currLang =& $lang : ($this->currLang = CONF_LANGUAGE); } cookies::setCookieSite('langDictSelects', $this->currLang, 30); file_exists('lang/' . $this->currLang . '/lang.dictionarys.selects.php') ? include 'lang/' . $this->currLang . '/lang.dictionarys.selects.php' : messages::printDie(ERROR_FILE_NOT_OPEN); $this->arrSysDict =& $arrSysDict; $this->arrAddDict =& $arrAddDict; return true; }
/** * protected функция оцнеки статьи * * @param int $score - оценка статьи * @param int $id - id статьи * * @return echo (печатает результат) */ protected function pRateArticle(&$score, &$id) { // проверяем наличие id статьи в куках пользователя // если $flag = true, значит пользователь уже голосовал за статью isset($_COOKIE['artvote']) && $_COOKIE['artvote'] ? !in_array($id, explode(':', $_COOKIE['artvote'])) ? $flag = false : ($flag = true) : ($flag = false); if (!$flag) { if ($arrData = $this->pGetArticle("id IN (" . secure::escQuoteData($id) . ") AND token IN ('active')")) { // проверяем, голосовал ли пользователь за эту статью if ($_SERVER['REMOTE_ADDR'] !== $arrData['ip_last']) { // вычисляем рейтинг с учетом всех голосов // считаем балл, и доавляем его к рейтингу $fullRating = $arrData['rating'] * $arrData['votes'] + $score * 20; // увеличиваем количество голосов $votes = !$arrData['votes'] ? 1 : $arrData['votes'] + 1; // высчитываем новый средний рейтинг $rating = $fullRating / $votes; $this->pUpdateArticles(array('rating' => $rating, 'votes' => $votes, 'ip_last' => $_SERVER['REMOTE_ADDR']), array($id)); // устанавливаем куку isset($_COOKIE['artvote']) && $_COOKIE['artvote'] ? cookies::setCookieSite('artvote', $_COOKIE['artvote'] . ':' . $id) : cookies::setCookieSite('artvote', $id); // выводим результат $result = '<div class="rate">' . '<div class="rating">' . FORM_ARTICLES_RATING . ': ' . $rating . '</div>' . '<div class="base" style="height:16px;"><div class="average" style="width: ' . $rating . '%;"> </div></div>' . '<div class="votes">' . $votes . ' ' . FORM_ARTICLES_VOTES . '</div>' . '</div>' . '<div class="status">' . '</div>'; print $result; } else { print ERROR_ONLY_ONE_VOTING_ARTICLE; } } else { print ERROR_SELECTED_ARTICLE; } } else { print ERROR_ONLY_ONE_VOTING_ARTICLE; } }
/** * @package * @todo */ !defined('SDG') ? die('Triple protection!') : null; // инициируем "Наименование страницы" отображаемое в форме $arrNamePage = array(array('name' => MENU_ADMIN_MAIN, 'link' => CONF_ADMIN_FILE), array('name' => MENU_SERVICE, 'link' => false), array('name' => MENU_MANAGER_TEMPLATES_SITE, 'link' => false)); if (!empty($_POST['currTemplate']) && is_dir('templates/site/' . $_POST['currTemplate'])) { $currTemplate =& $_POST['currTemplate']; } elseif (!empty($_COOKIE['adm_currTmplManage']) && is_dir('templates/site/' . $_COOKIE['adm_currTmplManage'])) { $currTemplate =& $_COOKIE['adm_currTmplManage']; } else { $currTemplate = CONF_TEMPLATE; } // устанавливаем кукисы cookies::setCookieSite('adm_currTmplManage', $currTemplate); // передаем текуший шаблон в Smarty $smarty->assignByRef('currTemplate', $currTemplate); // текущий шаблон // формируем данные - Список файлов шаблона foreach (filesys::getFilesInDir("templates/site/{$currTemplate}/") as $fileName) { if (false !== strstr($fileName, '.tpl')) { // записываем данные в массив $listTemplates[] = array('name' => $fileName, 'id' => $id = str_replace('.', '_', $fileName)); } } // формируем данные - Список файлов стилей foreach (filesys::getFilesInDir("templates/site/{$currTemplate}/style/") as $fileName) { if (false !== strstr($fileName, '.css')) { // записываем данные в массив $listCSS[] = array('name' => $fileName, 'id' => $id = str_replace('.', '_', $fileName));
} /** * Очистка данных полученных извне PHP */ secure::clearRequestData(); /** * Определение текущей локализации */ if (!empty($_COOKIE['currLang']) && false !== ($currLang = array_search($_COOKIE['currLang'], $existLangs))) { unset($existLangs[$currLang]); array_unshift($existLangs, $currLang =& $_COOKIE['currLang']); cookies::setCookieSite('currLang', $currLang, 30); } else { unset($existLangs[array_search(CONF_LANGUAGE, $existLangs)]); array_unshift($existLangs, $currLang = CONF_LANGUAGE); cookies::setCookieSite('currLang', $currLang, 30); } /** * Подключения языковых файлов текущей локализации */ foreach (filesys::getFilesInDir('lang/' . $currLang . '/') as $fileLang) { 0 !== strpos($fileLang, 'adm.') ? require_once 'lang/' . $currLang . '/' . $fileLang : null; } /** * Капча */ require_once 'core/si/securimage.php'; /** * Моды */ // empty
/** * protected Функция авторизации пользователя * * @param (string) $email - email для авторизации * @param (string) $password - пароль для авторизации * @param (bool) $remember - признак записи данных пользователя в куки * @param (bool) $cookie - признак авторизации из кукисов (если true, значит пароль передается уже в MD5) * * @return bool */ protected function authorizeUser($email, $password, $remember, $cookie) { !$cookie ? $password = md5($password) : null; // считываем данные пользователя if ($this->getEntry("email IN (" . secure::escQuoteData($email) . ") AND password IN (" . secure::escQuoteData($password) . ") AND token IN ('active')")) { $group = new group(); // получаем данные пользователя $arrData = $this->retDataSubj(); /* * *** Сохраняем IP-адрес пользователя **** */ $updData = array('pre_ip' => $arrData['curr_ip'], 'curr_ip' => $_SERVER['REMOTE_ADDR']); // Если ip, запоминаемый при регистрации пустой, записываем текущий // это временная мера, для уже существующих пользователей // так сделано потому, что поля ip-адресов были добавлены позже, чем появились превые пользователи // в дальнейшем эту проверку можно убрать empty($arrData['reg_ip']) ? $updData['reg_ip'] = $_SERVER['REMOTE_ADDR'] : null; $strWhere = "id=" . secure::escQuoteData($arrData['id']); $this->updateUser($updData, $strWhere); // если установлен признак "Запомнить", записываем данные пользователя в куки if ($remember) { cookies::setCookieSite('remid', $arrData['id'], 7); cookies::setCookieSite('remh', $this->cookieUserHash($arrData), 7); } // сохраняем данные пользователя в сессию $arrData = array_merge($arrData, $updData); $_SESSION['sd_user']['data'] = $arrData; // переопределяем рабочую таблицу $this->changeTable('conf_users'); // Проверяем, есть ли настройки пользователя в таблице conf_users. // Может быть такой вариант, когда пользователь зарегистрирован в другой доске. // В этом случае в общей таблице он будет, а в таблице настроек нет. // Тогда мы добавляем его в таблицу настроек. if (!$this->getEntry("id IN (" . secure::escQuoteData($arrData['id']) . ")")) { $this->fillTableFieldsValue(array('id' => $arrData['id'], 'token' => 'new')); $this->addEntry(); $arrData = array('id' => $arrData['id'], 'user_type' => '', user_group => '', 'token' => 'new'); } else { // если пользователь есть в таблице conf_users, // получаем данные конфигурации пользователя $arrData = $this->retDataSubj(); } // сохраняем данные пользователя в сессию $_SESSION['sd_user'][DB_PREFIX . 'conf'] = $arrData; $_SESSION['sd_' . DB_PREFIX . 'codex'] = $group->setUserRights($arrData['user_type'], $arrData['user_group']); $this->changeTable('users', USR_PREFIX); return true; } else { return false; } }