예제 #1
0
 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;
 }
예제 #2
0
 /**
  * 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 . '%;">&nbsp;</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));
예제 #4
0
}
/**
 * Очистка данных полученных извне 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
예제 #5
0
 /**
  * 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;
     }
 }