Exemplo n.º 1
0
 /**
  * функция проверки авторизации админа
  * Берет логин и пароль админа из сесси и сверяет их с данными в БД
  * 
  * @param (string) $login - новый логин (может быть false)
  * @param (string) $password - новый пароль (может быть false)
  * 
  * @return bool (сообщение перезагружающее страницу)
  */
 static function changeAdminPassword($login, $password)
 {
     $link = isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING']) ? '?' . $_SERVER['QUERY_STRING'] : '';
     if ($login && $password) {
         $change = "login='******', password='******'";
         $arrSession = array('administrator_login' => md5($login), 'administrator_password' => md5($password));
     } elseif (!$login && $password) {
         $change = "password='******'";
         $arrSession = array('administrator_password' => md5($password));
     } elseif ($login && !$password) {
         $change = "login='******'";
         $arrSession = array('administrator_login' => md5($login));
     } else {
         $change = false;
     }
     $strQuery = "UPDATE " . USR_PREFIX . "admin SET " . $change . " WHERE login IN (" . secure::escQuoteData($_SESSION['administrator_login']) . ") AND password IN (" . secure::escQuoteData($_SESSION['administrator_password']) . ")";
     if (!empty($change) && db::dbQuery($strQuery)) {
         // обновляем пароль в сессии
         tools::updateSessionData($_SESSION, $arrSession);
         messages::messageChangeSaved(MESSAGE_DATA_HAS_BEEN_CHANGED, false, CONF_ADMIN_FILE . $link);
     } else {
         messages::messageChangeSaved(MESSAGE_DATA_HAS_NOT_BEEN_CHANGED, false, CONF_ADMIN_FILE . $link);
     }
 }
Exemplo n.º 2
0
 private function saveFile(&$noExit = false)
 {
     // данные для записи в файл
     $data = "<?php\n\n" . "(!defined('SDG')) ? die ('Triple protection!') : null;\n\n" . "#SYSTEM DICTIONARYS#\n" . '$arrSysDict = ' . $this->parseArrData($this->arrSysDict) . "\n" . "#END SYSTEM DICTIONARYS#\n\n" . "#ADDITIONAL DICTIONARYS#\n" . '$arrAddDict = ' . $this->parseArrData($this->arrAddDict) . "\n" . "#END ADDITIONAL DICTIONARYS#\n";
     // запись файла
     if (file_put_contents('lang/' . $this->currLang . '/lang.dictionarys.selects.php', $data)) {
         if ($noExit) {
             return true;
         } else {
             messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=dictionary&s=selects');
         }
     } else {
         if ($noExit) {
             return false;
         } else {
             messages::printDie(ERROR_FILE_NOT_WRITE);
         }
     }
 }
Exemplo n.º 3
0
    }
    // загружаем файл
    if ($fm->loadFile('load_file', $files_dir, $fm->arrFileTypes)) {
        uploads::$fileProperties['path'] = $files_dir;
        uploads::$fileProperties['link'] = $files_dir;
        // если файл - изобажение, обрабатываем его
        if ('image' === $_POST['type']) {
            if (img::setParam(uploads::$arrUploadsSubj['file_name'], uploads::$arrUploadsSubj['upload_dir'])) {
                if (img::createThumbnail(CONF_FILEMANAGER_THUMBNAIL_WIDTH, CONF_FILEMANAGER_THUMBNAIL_HEIGHT)) {
                    $dbData = $fm->getFilesProperties($files_dir . 'mda/uploads.mda');
                    $dbData[uploads::$fileProperties['filename']] = uploads::$fileProperties;
                    $fm->putFilesProperties($files_dir . 'mda/uploads.mda', $dbData);
                    messages::messageChangeSaved(MESSAGE_FILE_LOAD_SUCCESS, false, CONF_ADMIN_FILE . '?m=manager&s=file');
                } else {
                    $arrErrors[] = ERROR_FILE_NOT_LOAD;
                }
            } else {
                $arrErrors = img::$arrErrors;
            }
        } else {
            $dbData = $fm->getFilesProperties($files_dir . 'mda/uploads.mda');
            $dbData[uploads::$fileProperties['filename']] = uploads::$fileProperties;
            $fm->putFilesProperties($files_dir . 'mda/uploads.mda', $dbData);
            messages::messageChangeSaved(MESSAGE_FILE_LOAD_SUCCESS, false, CONF_ADMIN_FILE . '?m=manager&s=file');
        }
    } else {
        $arrErrors = uploads::$arrErrors;
    }
}
$smarty->assignByRef('errors', $arrErrors);
$smarty->assignByRef('action', $arrActions);
         }
         /**
          * Производим поиск/замену во всех шаблонах скрипта
          */
         foreach (filesys::getChildDirs('templates/site/') as $template) {
             $formFileName = 'templates/site/' . $template . '/resume.form.tpl';
             if (is_file($formFileName)) {
                 file_put_contents($formFileName, str_replace($arrSearch, $arrRreplace, file_get_contents($formFileName)));
             }
             $formFileName = 'templates/site/' . $template . '/resume.preview.tpl';
             if (is_file($formFileName)) {
                 file_put_contents($formFileName, str_replace($arrSearch, $arrRreplace, file_get_contents($formFileName)));
             }
         }
         file_put_contents('templates/admin/adm.announces.resume.edit.tpl', str_replace($arrSearch, $arrRreplace, file_get_contents('templates/admin/adm.announces.resume.edit.tpl')));
         messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=announces&s=common&action=confQuestResume');
     } else {
         messages::printDie(ERROR_FILE_NOT_WRITE);
     }
 }
 $arrDescriptFields = array();
 // Описание основных полей анкеты
 foreach (array_keys(array_merge($arrBindFields, $arrNoBindFields)) as $indexField) {
     $arrDescriptFields['basic'][$indexField] = @constant('ANNOUNCE_BASIC_FIELD_DESCRIPT_' . strtoupper($indexField)) or $arrDescriptFields['basic'][$indexField] = @constant('RESUME_BASIC_FIELD_DESCRIPT_' . strtoupper($indexField));
 }
 // Описание дополнительных полей анкеты - Образование
 foreach (array_keys(array_merge($arrEducation['arrBindFields'], $arrEducation['arrNoBindFields'])) as $indexField) {
     $arrDescriptFields['education'][$indexField] = @constant('ANNOUNCE_EXT_EDUCATION_FIELD_DESCRIPT_' . strtoupper($indexField));
 }
 // Описание дополнительных полей анкеты - Опыт работы
 foreach (array_keys(array_merge($arrExpire['arrBindFields'], $arrExpire['arrNoBindFields'])) as $indexField) {
} elseif ($arrActions['saveLog'] && !empty($_GET['file'])) {
    if (file_exists($_GET['file'])) {
        header('Content-type: application/octet-stream');
        header('Content-Disposition: attachment; filename=' . basename($_GET['file']));
        readfile($_GET['file']);
        exit;
    } else {
        $arrErrors[] = ERROR_FILE_NOT_EXISTS;
    }
} else {
    // необходимо устанавливать действиям фолс, т.к. у них есть доп. условия
    $arrActions['backup'] = false;
    $arrActions['setup'] = false;
    // получаем форму обновления
    if (!empty($_POST['login']) && !empty($_POST['password']) && !empty($_POST['file']) && !empty($_POST['revision'])) {
        $resUpdate = $updates->getUpdate($_POST);
        if (!$resUpdate['status']) {
            $arrErrors[] = $resUpdate['error'];
        } else {
            // ставим сайт на тех обслуживание
            $data = "<?php\n\n" . "(!defined('SDG')) ? die ('Triple protection!') : null;\n\n" . 'define("CONF_SERVICE_ADMINISTRATION_MAINTENANCE", true);' . "\n";
            tools::saveConfig('core/conf/const.config.service.php', $data, false);
            messages::messageChangeSaved(MESSAGE_UPDATE_SUCCESSFULLY_DOWNLOADED, false, CONF_ADMIN_FILE . '?m=system&s=updates&action=backup&file=' . $_POST['file']);
        }
    }
    $smarty->assignByRef('arrUpdates', $updates->getUpdatesInfo());
}
// адресная строка
$smarty->assignByRef('qString', $qString);
$smarty->assignByRef('errors', $arrErrors);
$smarty->assignByRef('action', $arrActions);
        $smarty->assign('professions', $professions->retCategorysByIds($arrProfId));
        // формируем и передаем массив необходимых городов
        $citys = new citys();
        $smarty->assign('citys', $citys->retCategorysByIds($arrCitysId));
    }
    $smarty->assign('return_data', $return_data);
    // значения, возвращаемые в форму
} else {
    /**
     * Действия
     */
    if (!empty($_POST['action'])) {
        // удаление
        if ('del' === $_POST['action'] && !empty($_POST['subscr'])) {
            $subscription->delSubscriptionsById(array_keys($_POST['subscr']));
            messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=manager&s=subscriptions');
        }
    }
    /**
     * массив, который возращается в форму
     * содержит значения по умолчанию для формы отбора
     */
    $return_data = array('id_user' => '', 'type_subscription' => 'all', 'payment' => '', 'period' => '', 'id_section' => '', 'id_profession' => '', 'id_region' => '', 'id_city' => '');
    $strWhere = "id_announce IN ('0') AND token IN ('active')";
    /**
     * отбор записей
     */
    $arrDif = array_diff_key($return_data, $_GET);
    // проверяем присутствие всех значений отбора в массиве
    if (!empty($_GET['do']) && 'filter' === $_GET['do'] && empty($arrDif)) {
        $return_data['id_user'] = (int) $_GET['id_user'] > 0 ? (int) $_GET['id_user'] : '';
Exemplo n.º 7
0
     $strWhere = "id_user IN (" . secure::escQuoteData($arrUser['id']) . ") AND token IN ('archived')";
     $arrArticles = $articles->getArticles($strWhere, false, false, false);
     $smarty->assignByRef('arrArticles', $arrArticles);
 } elseif ($arrActions['active']) {
     /** ДЕЙСТВИЯ **/
     if (!empty($_POST['action'])) {
         // удаление
         if ('delete' === $_POST['action'] && !empty($_SESSION['sd_' . DB_PREFIX . 'codex']['rights']['del_articles']) && !empty($_POST['articles'])) {
             $strWhere = "id_user IN (" . secure::escQuoteData($arrUser['id']) . ")";
             !$articles->deleteArticles(array_keys($_POST['articles']), $strWhere) ? $arrErrors[] = db::$message_error : messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=user.articles&amp;action=active'));
         }
         // архивация
         if ('archive' === $_POST['action'] && !empty($_SESSION['sd_' . DB_PREFIX . 'codex']['rights']['arc_articles']) && !empty($_POST['articles'])) {
             $arrData = array('token' => 'archived');
             $strWhere = "id_user IN (" . secure::escQuoteData($arrUser['id']) . ")";
             !$articles->updateArticles($arrData, array_keys($_POST['articles']), $strWhere) ? $arrErrors[] = db::$message_error : messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=user.articles&amp;action=active'));
         }
     }
     // инициируем "Наименование страницы" отображаемое в заголовке формы
     $arrNamePage[] = array('name' => constant('MENU_ACTION_ACTIVE'), 'link' => false);
     $strWhere = "id_user IN (" . secure::escQuoteData($arrUser['id']) . ") AND token IN ('active')";
     if ($arrArticles = $articles->getArticles($strWhere, false, false, false)) {
         // если есть статьи, устанавливаем признак публикации
         foreach ($arrArticles as $key => &$value) {
             $value['link'] = strtotime($value['datetime']) > time() ? false : true;
             $arrArticles[$key] = $value;
         }
     }
     $smarty->assignByRef('arrArticles', $arrArticles);
 } else {
     messages::error404();
Exemplo n.º 8
0
 /**
  * static сохранения файлов конфигурации
  * 
  * @param (string) $file - полный путь к файлу, который необходимо сохранить
  * @param (string) $data - данные для сохранения
  * @param (string or false) $link - ссылка для переадлресации (в случае успешного сохранения). Если сслыка FALSE, то метод вернет результат TRUE вместо переадресации
  * 
  * @return - false (значит либо не найден файл, либо у файла нет прав на запись) или перезагружает страницу
  */
 static function saveConfig($file, &$data, $link = false)
 {
     // если файл не существует и не удалось записать данные в файл возвращем false
     if (!file_exists($file) && !file_put_contents($file, $data)) {
         return false;
     } elseif (!filesys::setFileChmod($file, '0666') && !unlink($file) && !file_put_contents($file, $data)) {
         return false;
     } elseif (!file_put_contents($file, $data)) {
         return false;
     } elseif (!empty($link)) {
         messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, $link);
     } else {
         return true;
     }
 }
Exemplo n.º 9
0
                }
            } else {
                $arrErrors[] = ERROR_EMPTY_FIELDS;
            }
            $smarty->assign('return_data', array('email' => $_POST['email']));
        } elseif (isset($_GET['i']) && $_GET['i']) {
            if ($userData = $user->checkLinkToChangePassword()) {
                // генерируем новый пароль
                $password = strings::randomString(CONF_REGISTER_USER_PASSWORD);
                $mailer = new mailer();
                // массив для замены в шаблоне
                $mailer->setAddReplace(array('%NEW_PASSWORD%' => $password));
                if ($mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, false, false, $userData['email'], $userData['email'], CONF_SITE_NAME . MAIL_SUBJ_NEW_PASS, 'new.pass.txt')) {
                    // если письмо успешно отправлено, обновляем пароль
                    if ($user->updateUser(array('password' => md5($password)), "id IN (" . secure::escQuoteData($userData['id']) . ") AND password IN (" . secure::escQuoteData($userData['password']) . ")")) {
                        messages::messageChangeSaved(MENU_NEW_PASS, MESSAGE_NEW_PASS_SUCCESS, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=authorize'), 10000);
                    } else {
                        $arrErrors[] = db::$message_error;
                    }
                } else {
                    $arrErrors[] = ERROR_SEND_EMAIL;
                }
            } else {
                messages::error404();
            }
        }
        $smarty->assignByRef('errors', $arrErrors);
    }
} else {
    messages::error404();
}
Exemplo n.º 10
0
  * иницализация массива подключаемых шаблонов: по умолчанию все значения - false
  * для подключения шаблона, необходимо установить значение - true
  * шаблоны подключаются в порядке установленном в файле головного шаблона
  */
 $arrAction = array('vacancy' => false, 'resume' => false);
 /**
  * иницализация массива токенов объявлений доступных для просмотра пользователю
  */
 $arrTokens = array('new', 'moderate', 'correction', 'payment', 'active', 'template', 'archived');
 // проверяем запрошенный шаблон и токен объявлений
 if (isset($_GET['action']) && isset($arrAction[$_GET['action']]) && isset($_GET['token']) && in_array($_GET['token'], $arrTokens)) {
     $arrAction[$_GET['action']] = true;
     /**
      * действия с объявлениями
      */
     isset($_POST['arrAnnData']['action']) ? !${$_GET}['action']->actionAnnounces($_POST['arrAnnData'], false) ? messages::messageChangeSaved(ERROR_NOT_CHANGE_DATA, false, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=user.announces&amp;action=' . $_GET['action'] . '&amp;token=' . $_GET['token'])) : messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=user.announces&amp;action=' . $_GET['action'] . '&amp;token=' . $_GET['token'])) : null;
     /**
      * инициализация списка Период размещения
      */
     //$smarty->assignByRef('actperiod', $arrSysDict['ActPeriod']['values']);
     /**
      * инициализация списка Пол
      */
     //$smarty->assignByRef('gender', $arrSysDict['Gender']['values']);
     /**
      * инициализация списка Тип размещения
      */
     if (!empty($arrAction['resume']) && 'active' === $_GET['token']) {
         $arrVisibility = array('visible' => ANNOUNCE_VISIBILITY_VISIBLE, 'visiblehc' => ANNOUNCE_VISIBILITY_VISIBLEHC, 'members' => ANNOUNCE_VISIBILITY_MEMBERS, 'membershc' => ANNOUNCE_VISIBILITY_MEMBERSHC, 'hide' => ANNOUNCE_VISIBILITY_HIDE);
         $smarty->assignByRef('arrVisibility', $arrVisibility);
     }
Exemplo n.º 11
0
<?php

/********************************************************
	JobExpert v1.0
	powered by Script Developers Group (SD-Group)
	email: info@sd-group.org.ua
	url: http://sd-group.org.ua/
	Copyright 2010-2015 (c) SD-Group
	All rights reserved
=========================================================
	Логи - SQL
********************************************************/
/**
* @package
* @todo
*/
!defined('SDG') ? die('Triple protection!') : null;
// инициируем "Наименование страницы" отображаемое в форме
$arrNamePage = array(array('name' => MENU_ADMIN_MAIN, 'link' => CONF_ADMIN_FILE), array('name' => MENU_LOGS, 'link' => false), array('name' => MENU_LOGS_SQL, 'link' => false));
// действия
// очистка логов
if (isset($_POST['clear'])) {
    @unlink('core/data/log/sql_error.log');
    messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=logs&s=sql');
}
// Получаем данные из файла
$logData = @file_get_contents('core/data/log/sql_error.log') ? explode("\n\n\n", @file_get_contents('core/data/log/sql_error.log')) : false;
$smarty->assign('logData', $logData);
    // скрытие
    if ('hide' === $_POST['action'] && isset($_POST['pages'])) {
        if ($pages->updatePages(array('token' => 'archived'), array_keys($_POST['pages']))) {
            messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=manager&s=dop.pages');
        } else {
            messages::messageChangeSaved(ERROR_NOT_SAVE_CHANGE, false, CONF_ADMIN_FILE . '?m=manager&s=dop.pages');
        }
    }
    // удаление
    if ('del' === $_POST['action'] && isset($_POST['pages'])) {
        $pages->deletePages(array_keys($_POST['pages']));
        messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=manager&s=dop.pages');
    }
    // сортировка
    if ('sorting' === $_POST['action'] && !empty($_POST['sort'])) {
        foreach ($_POST['sort'] as $key => $value) {
            $pages->updatePages(array('sort' => $value), array($key));
        }
        messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=manager&s=dop.pages');
    }
    messages::messageChangeSaved(MESSAGE_WARNING_NOT_SELECT_RECORDS, false, CONF_ADMIN_FILE . '?m=manager&s=dop.pages');
} else {
    $arrNamePage[] = array('name' => MENU_MANAGER_DOP_PAGES, 'link' => false);
    /**
     * массив всех страниц
     */
    $smarty->assign('arrPages', $pages->getAllPages());
}
// END Вывод всех страниц
$smarty->assignByRef('errors', $arrErrors);
$smarty->assignByRef('action', $arrActions);
Exemplo n.º 13
0
 /**
  * public функция выполняет действия над группой регионов
  *
  * @param string $action
  * @param array $arrFields
  *
  * @return bool
  */
 public function actionSections($action, $arrFields)
 {
     if ('edit' === $action || 'sort' === $action || 'del' === $action) {
         if ('del' === $action) {
             global $professions;
             $professions->delCategorys('parent_id IN (' . implode(',', secure::escQuoteData($arrFields)) . ')');
         }
         !$this->actionCategorys($action, $arrFields) ? messages::messageChangeSaved(ERROR_NOT_SAVE_CHANGE, false, CONF_ADMIN_FILE . '?m=dictionary&amp;s=sections') : messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=dictionary&amp;s=sections');
     } else {
         messages::messageChangeSaved(MESSAGE_WARNING_UNKNOWN_ACTION, false, CONF_ADMIN_FILE . '?m=dictionary&amp;s=sections');
     }
 }
Exemplo n.º 14
0
 /**
  * public функция выполняет действия над группой регионов
  *
  * @param string $action
  * @param array $arrFields
  *
  * @return bool
  */
 public function actionCitys($action, $arrFields, $parent_id, $silentMode = false)
 {
     $action = (string) $action;
     $arrFields = (array) $arrFields;
     $parent_id = (int) $parent_id;
     $silentMode = (bool) $silentMode;
     if ('edit' === $action || 'setcapital' === $action || 'resetcapital' === $action || 'del' === $action) {
         if ('edit' === $action && isset($arrFields['capital_city'])) {
             $this->actionCategorys('resetcapital', array($parent_id));
             $this->actionCategorys('setcapital', array($arrFields['capital_city']));
             unset($arrFields['capital_city']);
         }
         'setcapital' === $action ? $this->actionCategorys('resetcapital', array($parent_id)) : null;
         if (!$this->actionCategorys($action, $arrFields)) {
             if ($silentMode) {
                 return false;
             } else {
                 messages::messageChangeSaved(ERROR_NOT_SAVE_CHANGE, false, CONF_ADMIN_FILE . '?m=dictionary&amp;s=regions&amp;action=citys&amp;pid=' . $parent_id);
             }
         } else {
             if ($silentMode) {
                 return true;
             } else {
                 messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=dictionary&amp;s=regions&amp;action=citys&amp;pid=' . $parent_id);
             }
         }
     } else {
         if ($silentMode) {
             messages::messageChangeSaved(MESSAGE_WARNING_UNKNOWN_ACTION, false, CONF_ADMIN_FILE . '?m=dictionary&amp;s=regions&amp;action=citys&amp;pid=' . $parent_id);
         } else {
             return false;
         }
     }
 }
Exemplo n.º 15
0
$hand = new hand();
// ответ пользователю
if (isset($_GET['result']) && !empty($_POST)) {
} else {
    // проверяем наличие в сессии необходимых параметров и установлена ли цена в тарифной сетке для выбранной услуги
    if (isset($_SESSION['payment']) && isset($_SESSION['payment']['service']) && $payments->checkPriceInTariff($_SESSION['payment']['service'], $arrTariffs) && !empty($_SESSION['payment']['id'])) {
        // Сохраняем запрос оплаты
        if (isset($_POST['pay'])) {
            if (validate::postDataNotEmpty()) {
                // заполняем обязательные поля
                $hand->arrBindFields = array('order_id' => $_POST['order_id'], 'action' => $_SESSION['payment']['service'], 'user_id' => $_SESSION['sd_user']['data']['id'], 'record_id' => $_SESSION['payment']['id'], 'amount' => $_POST['amount'], 'currency' => HAND_CONF_CURRENCY, 'payment_type' => $_POST['payment']);
                // заполняем дополнительные поля
                $hand->additionalFields = array('description' => $payments->generatePaymentDescription($_SESSION['payment']['service']), 'payment_type_desc' => $handPaymentTypes[$_POST['payment']]);
                if (!$hand->recRecord()) {
                    $arrErrors[] = ERROR_UNABLE_PERFORM_OPERATION;
                } else {
                    unset($_SESSION['payment']);
                    messages::messageChangeSaved(MESSAGE_PYMENT_SUCCESSFULLY_ADDED, false, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=user.data'));
                }
            } else {
                $arrErrors[] = HAND_ERROR_NOT_ALL_PAYMENT_DETAILS;
            }
        }
        $arrData = array('order_id' => time(), 'amount' => $arrTariffs[$_SESSION['payment']['service']], 'description' => $payments->generatePaymentDescription($_SESSION['payment']['service']));
        $smarty->assignByRef('arrData', $arrData);
        $smarty->assignByRef('handPaymentTypes', $handPaymentTypes);
        $smarty->assign('include_template', SD_ROOT_DIR . 'core/mods/payments/hand/templates/hand.pay.form.tpl');
    } else {
        $arrErrors[] = ERROR_PAY_SYSTEM_NOT_DEFINE_PRICE;
    }
}
Exemplo n.º 16
0
 /**
  * private функция рассылки почтовых сообщений
  *
  * @param string $typeAnnounce - тип объявления (должно соответствовать имени таблицы БД)
  * @param array $arrAnnounceData - массив данных объявления
  * @param bool $screenMessageOn [default = true] - завершение работы скрипта, выводом информационного сообщения
  *
  * @return bool
  */
 private function sendEmails(&$typeAnnounce, &$arrAnnounceData, $screenMessageOn = true)
 {
     if (isset($_SESSION['referer'])) {
         unset($_SESSION['referer']);
     }
     $user_type = !empty($_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type']) ? 'ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;' : '';
     switch ($arrAnnounceData['token']) {
         case 'new':
             /**
              * отправляем письмо пользователю
              */
             $mailer = new mailer();
             // дата удаления неактивированного объявления
             $deldate = date(terms::dateFormatFromSmarty(CONF_DATE_FORMAT, CONF_TIME_FORMAT), strtotime(terms::calcDateTimeOfTerm(constant('CONF_' . strtoupper($typeAnnounce) . '_ACTIVATE_THERM'))));
             $mailer->setAddReplace(array('%ANNOUNCE_TYPE%' => constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)), '%ANNOUNCE_TITLE%' => $arrAnnounceData['title'], '%CODE%' => $arrAnnounceData['unikey'], '%DELDATE%' => $deldate, '%ACTIVATE_PAGE%' => CONF_SCRIPT_URL . 'index.php?' . $user_type . 'do=' . $typeAnnounce . '&amp;action=activate', '%ACTIVATE_LINK%' => CONF_SCRIPT_URL . 'index.php?' . $user_type . 'do=' . $typeAnnounce . '&amp;action=activate&amp;code=' . $arrAnnounceData['unikey']));
             $result = $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, CONF_SITE_NAME, false, $arrAnnounceData['email'], $arrAnnounceData['email'], MAIL_SUBJ_ACTIVATE_ANNOUNCE . constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)) . ' - ' . $arrAnnounceData['title'], 'announce.user.activate.txt');
             unset($mailer);
             // уничтожаем объект
             if (!$result && !empty($screenMessageOn)) {
                 messages::printDie(ERROR_SEND_EMAIL);
             } elseif (!empty($screenMessageOn)) {
                 messages::messageChangeSaved(ANNOUNCE_ADD_ACTIVATE_TITLE, ANNOUNCE_ADD_ACTIVATE_MESSAGE, CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&do=' . $typeAnnounce . '&action=activate', 5000);
             } else {
                 return $result;
             }
         case 'moderate':
             // массив для замены в шаблоне
             $arrAddReplace = array('%ANNOUNCE_TYPE%' => constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)), '%ANNOUNCE_TITLE%' => $arrAnnounceData['title']);
             /**
              * отправляем письмо администратору
              */
             $mailer = new mailer();
             // передаем массив для замены в шаблоне
             $mailer->setAddReplace($arrAddReplace + array('%ADMIN_PANEL_LINK%' => CONF_SCRIPT_URL . CONF_ADMIN_FILE . '?m=announces&amp;s=' . $typeAnnounce . 's&amp;action=moderate'));
             $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, CONF_SITE_NAME, false, CONF_MAIL_ADMIN_EMAIL, false, MAIL_SUBJ_NEW_ANNOUNCE . $arrAnnounceData['title'], empty($arrAnnounceData['comments']) ? 'adm.moderate.announce.txt' : 'adm.edited.announce.txt');
             unset($mailer);
             // уничтожаем объект
             /**
              * отправляем письмо пользователю
              */
             $mailer = new mailer();
             // передаем массив для замены в шаблоне
             $mailer->setAddReplace($arrAddReplace);
             $result = $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, CONF_SITE_NAME, false, $arrAnnounceData['email'], $arrAnnounceData['email'], MAIL_SUBJ_MODERATE_ANNOUNCE . constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)) . ' - ' . $arrAnnounceData['title'], 'announce.user.moderate.txt');
             unset($mailer);
             // уничтожаем объект
             if (!$result && !empty($screenMessageOn)) {
                 messages::printDie(ERROR_SEND_EMAIL);
             } elseif (!empty($screenMessageOn)) {
                 $link = !empty($arrAnnounceData['id_user']) ? CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&do=user.announces&action=' . $typeAnnounce . '&token=' . $arrAnnounceData['token'] : CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'];
                 messages::messageChangeSaved(ANNOUNCE_ADD_MODERATION_TITLE, ANNOUNCE_ADD_MODERATION_MESSAGE, chpu::createChpuUrl($link), 5000);
             } else {
                 return $result;
             }
         case 'correction':
             /**
              * отправляем письмо пользователю
              */
             $mailer = new mailer();
             // дата удаления не исправленного объявления
             $deldate = date(terms::dateFormatFromSmarty(CONF_DATE_FORMAT, CONF_TIME_FORMAT), strtotime(terms::calcDateTimeOfTerm(constant('CONF_' . strtoupper($typeAnnounce) . '_CORRECTION_THERM'))));
             $mailer->setAddReplace(array('%ANNOUNCE_TYPE%' => constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)), '%ANNOUNCE_TITLE%' => $arrAnnounceData['title'], '%DELDATE%' => $deldate, '%USER_PANEL_LINK%' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=user.announces&amp;action=' . $typeAnnounce . '&amp;token=' . $arrAnnounceData['token']), '%COMMENTS%' => CONF_MAIL_FORMAT_HTML ? nl2br($arrAnnounceData['comments']) : $arrAnnounceData['comments']));
             $result = $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, CONF_SITE_NAME, false, $arrAnnounceData['email'], $arrAnnounceData['email'], MAIL_SUBJ_NEW_ANNOUNCE_CORRECTION . constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)) . ' - ' . $arrAnnounceData['title'], 'announce.user.correction.txt');
             unset($mailer);
             // уничтожаем объект
             if (!$result && !empty($screenMessageOn)) {
                 messages::printDie(ERROR_SEND_EMAIL);
             } else {
                 return $result;
             }
         case 'payment':
             /**
              * отправляем письмо пользователю
              */
             $mailer = new mailer();
             // дата удаления неоплаченого объявления
             $deldate = date(terms::dateFormatFromSmarty(CONF_DATE_FORMAT, CONF_TIME_FORMAT), strtotime(terms::calcDateTimeOfTerm(constant('CONF_' . strtoupper($typeAnnounce) . '_PAYMENT_THERM'))));
             $mailer->setAddReplace(array('%ANNOUNCE_TYPE%' => constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)), '%ANNOUNCE_TITLE%' => $arrAnnounceData['title'], '%CODE%' => $arrAnnounceData['unikey'], '%DELDATE%' => $deldate, '%PAYMENT_LINK%' => CONF_SCRIPT_URL . 'index.php?' . $user_type . 'do=' . $typeAnnounce . '&amp;action=payment&amp;id=' . $arrAnnounceData['id']));
             $result = $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, CONF_SITE_NAME, false, $arrAnnounceData['email'], $arrAnnounceData['email'], MAIL_SUBJ_NEW_ANNOUNCE_PAYMENT . constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)) . ' - ' . $arrAnnounceData['title'], 'announce.user.payment.txt');
             unset($mailer);
             // уничтожаем объект
             if (!$result && !empty($screenMessageOn)) {
                 messages::printDie(ERROR_SEND_EMAIL);
             } elseif (!empty($screenMessageOn)) {
                 $_SESSION['payment'] = array('service' => 'add_' . $typeAnnounce, 'announce_type' => $typeAnnounce, 'id' => $arrAnnounceData['id'], 'tId' => $arrAnnounceData['tId'], 'announce_title' => $arrAnnounceData['title']);
                 messages::messageChangeSaved(ANNOUNCE_ADD_PAYMENT_TITLE, ANNOUNCE_ADD_PAYMENT_MESSAGE, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&do=payments'), 5000);
             } else {
                 return $result;
             }
         case 'active':
             // транслитерация ЧПУ
             chpu::chpuTranslit($arrAnnounceData);
             if (CONF_ANNOUNCE_ADD_SUCCESS_ADMIN_INFORM) {
                 $mailer = new mailer();
                 // массив для замены в шаблоне
                 $mailer->setAddReplace(array('%ANNOUNCE_TYPE%' => constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)), '%ANNOUNCE_TITLE%' => $arrAnnounceData['title'], '%ANNOUNCE_LINK%' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=' . $typeAnnounce . '&amp;action=view&amp;id=' . $arrAnnounceData['tId']), '%ADMIN_PANEL_LINK%' => CONF_SCRIPT_URL . CONF_ADMIN_FILE . '?m=announces&amp;s=' . $typeAnnounce . 's'));
                 // отправляем письмо администратору
                 $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, CONF_SITE_NAME, false, CONF_MAIL_ADMIN_EMAIL, false, MAIL_SUBJ_NEW_ANNOUNCE . constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)) . ' - ' . $arrAnnounceData['title'], 'adm.add.announce.txt');
                 unset($mailer);
                 // уничтожаем объект
             }
             if (CONF_ANNOUNCE_ADD_SUCCESS_USER_INFORM) {
                 $mailer = new mailer();
                 $mailer->setAddReplace(array('%ANNOUNCE_TYPE%' => constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)), '%ANNOUNCE_TITLE%' => $arrAnnounceData['title'], '%ANNOUNCE_LINK%' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=' . $typeAnnounce . '&amp;action=view&amp;id=' . $arrAnnounceData['tId']), '%USER_PANEL_LINK%' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=user.announces&amp;action=' . $typeAnnounce . '&amp;token=' . $arrAnnounceData['token'])));
                 // отправляем письмо пользователю
                 $result = $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, CONF_SITE_NAME, false, $arrAnnounceData['email'], $arrAnnounceData['email'], MAIL_SUBJ_NEW_ANNOUNCE . constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)) . ' - ' . $arrAnnounceData['title'], 'announce.user.added.txt');
                 unset($mailer);
                 // уничтожаем объект
                 if (!$result && !empty($screenMessageOn)) {
                     messages::printDie(ERROR_SEND_EMAIL);
                 }
             }
             if (!empty($screenMessageOn)) {
                 messages::messageChangeSaved(ANNOUNCE_ADD_SUCCESS_TITLE, ANNOUNCE_ADD_SUCCESS_MESSAGE, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=' . $typeAnnounce . '&action=view&id=' . $arrAnnounceData['tId']), 5000);
             } else {
                 return true;
             }
         case 'deleted':
         case 'archived':
             /**
              * отправляем письмо пользователю
              */
             $mailer = new mailer();
             $mailer->setAddReplace(array('%ANNOUNCE_TYPE%' => constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)), '%ANNOUNCE_TITLE%' => $arrAnnounceData['title'], '%COMMENTS%' => $arrAnnounceData['comments']));
             $result = $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, CONF_SITE_NAME, false, $arrAnnounceData['email'], $arrAnnounceData['email'], MAIL_SUBJ_NEW_ANNOUNCE_DELETED . constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)) . ' - ' . $arrAnnounceData['title'], 'announce.user.deleted.txt');
             unset($mailer);
             // уничтожаем объект
             if (!$result && !empty($screenMessageOn)) {
                 messages::printDie(ERROR_SEND_EMAIL);
             } else {
                 return $result;
             }
         case 'vip':
         case 'hot':
             /**
              * отправляем письмо пользователю
              */
             $mailer = new mailer();
             $mailer->setAddReplace(array('%ANNOUNCE_TYPE%' => constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)), '%ANNOUNCE_TITLE%' => $arrAnnounceData['title'], '%STATUS%' => strtoupper($arrAnnounceData['token'])));
             $result = $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, CONF_SITE_NAME, false, $arrAnnounceData['email'], $arrAnnounceData['email'], MAIL_SUBJ_NEW_ANNOUNCE_DELETED . constant('MAIL_ANNOUNCE_TYPE_' . strtoupper($typeAnnounce)) . ' - ' . $arrAnnounceData['title'], 'announce.user.' . $arrAnnounceData['token'] . '.reset.txt');
             unset($mailer);
             // уничтожаем объект
             if (!$result && !empty($screenMessageOn)) {
                 messages::printDie(ERROR_SEND_EMAIL);
             } else {
                 return $result;
             }
         default:
             return false;
     }
 }
    /**
     * Формируем страницы и передаем полученные данные в шаблон
     */
    $offset = isset($_GET['offset']) ? (int) abs($_GET['offset']) : 0;
    //смещение, всегда 0 (затем берется из $_GET)
    $arrLimit = array('strLimit' => $offset . ',' . CONF_ANNOUNCE_PERPAGE_ADMIN_PANEL, 'calcRows' => true);
    $smarty->assign('return_data', $vacancy->getAnnouncesByToken($_GET['action'], false, $arrLimit, array($order => $by)));
    $allRecords = $vacancy->cntAnnounces();
    // получаем общее количество объявлений
    $smarty->assignByRef('allRecords', $allRecords);
    $smarty->assign('strPages', strings::generatePage($allRecords, $offset, CONF_ANNOUNCE_PERPAGE_ADMIN_PANEL, CONF_ADMIN_FILE . '?m=announces&amp;s=vacancys&amp;action=' . $_GET['action'] . $strOrderBy . '&amp;', true));
} else {
    /**
     * действия с объявлениями
     */
    isset($_POST['arrVacData']['action']) ? !$vacancy->actionAnnounces($_POST['arrVacData']) ? messages::messageChangeSaved(ERROR_NOT_SAVE_CHANGE, false, CONF_ADMIN_FILE . '?m=announces&amp;s=vacancys') : messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=announces&amp;s=vacancys') : null;
    // инициируем "Наименование страницы" отображаемое в форме
    $arrNamePage[] = array('name' => MENU_ANNOUNCES_VACANCYS, 'link' => false);
    /**
     * передаем данные в шаблон
     */
    $smarty->assign('professions', $professions->retCategorys());
    $smarty->assign('citys', $citys->retCategorys());
    /**
     * Проверяем фильтр
     */
    $strWhere = isset($_GET['filter']) && ('company_name' === $_GET['filter'] || 'email' === $_GET['filter'] || 'user_type' === $_GET['filter'] || 'id_region' === $_GET['filter'] || 'id_city' === $_GET['filter'] || 'id_section' === $_GET['filter'] || 'id_profession' === $_GET['filter']) && isset($_GET['in']) && !empty($_GET['in']) ? $_GET['filter'] . " IN (" . secure::escQuoteData($_GET['in']) . ")" : false;
    /**
     * Проверяем сортировку
     */
    $arrOrderBy = array();
Exemplo n.º 18
0
            $payments->sendAdminEmail($logData, 'FAIL');
            header("HTTP/1.0 404 Not Found");
            exit;
        }
    } else {
        // если неверные параметры платежа
        // логируем ответ в файл
        logs::logPaymentData($_POST, 'WRONG PARAMS', 'intellectmoney');
        header("HTTP/1.0 404 Not Found");
        die;
    }
} elseif (isset($_GET['success'])) {
    if (!empty($_SESSION['payment']['service'])) {
        $payments->succesAnswer($_SESSION['payment']['service']);
    } else {
        messages::messageChangeSaved(MESSAGE_PYMENT_WAS_SUCCESS, false, 'index.php', 5000);
    }
} elseif (isset($_GET['fail'])) {
    $smarty->assign('include_template', SD_ROOT_DIR . 'core/mods/payments/intellectmoney/templates/intellectmoney.fail.tpl');
    // оплата не прошла
} elseif (isset($_GET['back'])) {
    $smarty->assign('include_template', SD_ROOT_DIR . 'core/mods/payments/intellectmoney/templates/intellectmoney.back.tpl');
} else {
    // проверяем наличие в сессии необходимых параметров и установлена ли цена в тарифной сетке для выбранной услуги
    if (isset($_SESSION['payment']) && isset($_SESSION['payment']['service']) && $payments->checkPriceInTariff($_SESSION['payment']['service'], $arrTariffs)) {
        $imData = array('amount' => $arrTariffs[$_SESSION['payment']['service']], 'order_id' => time(), 'description' => $payments->generatePaymentDescription($_SESSION['payment']['service']), 'service' => $_SESSION['payment']['service'] . '::' . $_SESSION['payment']['id']);
        $smarty->assignByRef('imData', $imData);
        $smarty->assign('include_template', SD_ROOT_DIR . 'core/mods/payments/intellectmoney/templates/intellectmoney.pay.form.tpl');
    } else {
        $arrErrors[] = ERROR_PAY_SYSTEM_NOT_DEFINE_PRICE;
    }
            break;
        case 'edit':
            $arrActSelects[$_GET['action']] = true;
            $arrNamePage[] = array('name' => MENU_ACTION_EDIT, 'link' => false);
            if (isset($_POST['save_dict'])) {
                !isset($_POST['editDict']) || !is_array($arrEditDict = $_POST['editDict']) || empty($arrEditDict) || !validate::arrDataNotEmpty($arrEditDict) || !isset($arrEditDict['value']) || !validate::arrDataNotEmpty($arrEditDict['value']) || !isset($arrEditDict['type']) || 'assoc' !== $arrEditDict['type'] && 'index' !== $arrEditDict['type'] || 'assoc' === $arrEditDict['type'] && !isset($arrEditDict['index']) ? null : $selects->editDict($arrEditDict);
            }
            empty($_GET['type']) || empty($_GET['alias']) || !($editDict = $selects->retDictByAlias($_GET['type'], $_GET['alias'])) ? messages::messageChangeSaved(MESSAGE_WARNING_UNKNOWN_ACTION, false, CONF_ADMIN_FILE . '?m=dictionary&s=selects') : null;
            $arrNamePage[] = array('name' => $editDict['discription'], 'link' => false);
            $smarty->assignByRef('return_data', $editDict);
            break;
        case 'del':
            isset($_POST['alias']) ? $selects->delDict($_POST['alias']) : messages::messageChangeSaved(MESSAGE_WARNING_UNKNOWN_ACTION, false, CONF_ADMIN_FILE . '?m=dictionary&s=selects');
            break;
        default:
            messages::messageChangeSaved(MESSAGE_WARNING_UNKNOWN_ACTION, false, CONF_ADMIN_FILE . '?m=dictionary&s=selects');
    }
} else {
    // инициируем "Наименование страницы" отображаемое в форме
    $arrNamePage = array(array('name' => MENU_ADMIN_MAIN, 'link' => CONF_ADMIN_FILE), array('name' => MENU_DICTIONARY_SELECTS, 'link' => false));
    // получаем список доступных дирректорий шаблонов
    $langs = $selects->retLangs();
    $smarty->assignByRef('langs', $langs);
    // список доступных локализаций
    $smarty->assign('return_data', array('sysDict' => $selects->retSysDict(), 'addDict' => $selects->retAddDict()));
    // массив дополнительных словарей
}
$smarty->assign('currLang', $selects->retCurrLang());
// текущая локализация
$smarty->assignByRef('errors', $arrErrors);
$smarty->assignByRef('action', $arrActSelects);
Exemplo n.º 20
0
 /**
  * protected функция выполняет действия над группой строк в таблице БД
  *
  * @param string $action
  * @param array $arrFields
  *
  * @return bool
  */
 protected function actionCategorys($action, $arrFields, $silentMode = false)
 {
     switch ($action) {
         case 'edit':
             foreach ($arrFields as $key => $value) {
                 $arrData = isset($value['arrNoBindFields']) ? $value['arrBindFields'] + $value['arrNoBindFields'] : $value['arrBindFields'];
                 $result = $this->editEntrys(secure::escQuoteData($arrData), "id IN (" . secure::escQuoteData($key) . ")");
             }
             break;
         case 'sort':
             foreach ($arrFields as $key => $value) {
                 $arrSort[$value][] = $key;
             }
             foreach ($arrSort as $key => $value) {
                 $result = $this->editEntrys(array('sort' => "'{$key}'"), "id IN (" . implode(',', secure::escQuoteData($value)) . ")");
             }
             break;
         case 'del':
             $table = $this->retTableName();
             $strFields = implode(',', secure::escQuoteData($arrFields));
             $vacancy = new vacancy();
             $result = $vacancy->delAnnounces('id_' . $table . ' IN (' . $strFields . ')');
             $resume = new resume();
             $result = $resume->delAnnounces('id_' . $table . ' IN (' . $strFields . ')');
             $subscription = new subscription();
             $strWhere = 'profession' !== $table ? 'id_' . $table . ' IN (' . $strFields . ')' : 'id_' . $table . ' IN (' . $strFields . ') OR id_' . $table . '_1 IN (' . $strFields . ') OR id_' . $table . '_2 IN (' . $strFields . ')';
             $result = $subscription->delSubscriptions($strWhere);
             $result = $this->delCategorys('id IN (' . $strFields . ')');
             break;
         case 'setcapital':
             $result = $this->editEntrys(array('capital' => "'on'"), "id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND capital IN ('0')");
             break;
         case 'resetcapital':
             $result = $this->editEntrys(array('capital' => "'0'"), "parent_id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND capital IN ('on')");
             break;
         case 'setRegionMajor':
             $result = $this->editEntrys(array('major' => "'on'"), "id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND major IN ('0')");
             break;
         case 'resetRegionMajor':
             $result = $this->editEntrys(array('major' => "'0'"), "id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND major IN ('on')");
             break;
         case 'setAddCityAllowed':
             $result = $this->editEntrys(array('add_city_allowed' => "'on'"), "id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND add_city_allowed IN ('0')");
             break;
         case 'resetAddCityAllowed':
             $result = $this->editEntrys(array('add_city_allowed' => "'0'"), "id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND add_city_allowed IN ('on')");
             break;
         default:
             if ($silentMode) {
                 $result = false;
             } else {
                 messages::messageChangeSaved(MESSAGE_WARNING_UNKNOWN_ACTION, false, CONF_ADMIN_FILE);
             }
     }
     return $result;
 }
Exemplo n.º 21
0
    $arrNamePage[] = array('name' => MENU_LANGUAGE_MANAGER, 'link' => false);
    include_once 'core/mods/payments/' . $_GET['id'] . '/admin.php';
    $smarty->assign('ltTemplate', 'adm.mods.payments.language.manager.tpl');
    $smarty->assign('defLocalizConst', localiz::getLocalizConst('russian', false, $langDir));
    $smarty->assign('currLocalizConst', localiz::getLocalizConst($currLang, false, $langDir));
} else {
    // инициируем "Наименование страницы" отображаемое в форме
    $arrNamePage[] = array('name' => MENU_MODS_PAYMENTS, 'link' => false);
    /**
     * Установка, включение, отключение и удаление модулей
     */
    if (!empty($_POST['action']) && !empty($_POST['payments'])) {
        if ('install' === $_POST['action']) {
            $payments->installMods(array_keys($_POST['payments']));
            messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=mods&s=payments');
        } elseif ('del' === $_POST['action']) {
            $payments->deleteMods(array_keys($_POST['payments']));
            messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=mods&s=payments');
        } elseif ('enable' === $_POST['action']) {
            $payments->enableMods(array_keys($_POST['payments']));
            messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=mods&s=payments');
        } elseif ('disable' === $_POST['action']) {
            $payments->enableMods(array_keys($_POST['payments']), false);
            messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=mods&s=payments');
        }
    }
    $smarty->assign('mods', $payments->generateModsList());
}
$smarty->assignByRef('modMenu', $modMenu);
$smarty->assignByRef('errors', $arrErrors);
$smarty->assignByRef('action', $arrActions);
Exemplo n.º 22
0
 /**
  * public функция выполняет действия над группой регионов
  *
  * @param string $action
  * @param array $arrFields
  *
  * @return bool
  */
 public function actionRegions($action, $arrFields, $silentMode = false)
 {
     if ('edit' === $action || 'sort' === $action || 'del' === $action || 'setRegionMajor' === $action || 'resetRegionMajor' === $action || 'setAddCityAllowed' === $action || 'resetAddCityAllowed' === $action) {
         if ('del' === $action) {
             global $citys;
             $citys->delCategorys('parent_id IN (' . implode(',', secure::escQuoteData($arrFields)) . ')');
         }
         if (!$this->actionCategorys($action, $arrFields)) {
             if ($silentMode) {
                 return false;
             } else {
                 messages::messageChangeSaved(ERROR_NOT_SAVE_CHANGE, false, CONF_ADMIN_FILE . '?m=dictionary&amp;s=regions');
             }
         } else {
             if ($silentMode) {
                 return true;
             } else {
                 messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=dictionary&amp;s=regions');
             }
         }
     } else {
         if ($silentMode) {
             return false;
         } else {
             messages::messageChangeSaved(MESSAGE_WARNING_UNKNOWN_ACTION, false, CONF_ADMIN_FILE . '?m=dictionary&amp;s=regions');
         }
     }
 }
Exemplo n.º 23
0
        }
        $group = new group();
        $smarty->assign('user_types', $group->arrTypes);
        $smarty->assign('user_groups', $group->getAllGroups("token IN ('active')", false, array('id')));
        $arrActions['filter'] = true;
    }
} else {
    // инициируем "Наименование страницы" отображаемое в форме
    $arrNamePage[] = array('name' => MENU_MANAGER_USERS, 'link' => false);
    /**
     * удаление пользователей
     */
    if (isset($_POST['action'])) {
        if ('del' === $_POST['action'] && isset($_POST['users'])) {
            $user->deleteUsers(array_keys($_POST['users']), true, true, true, true, true);
            messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=users&s=manager');
        }
    }
    /**
     * ФОРМИРУЕМ СТРАНИЦЫ И ПЕРЕДАЕМ В ШАБЛОН НЕОБХОДИМЫЕ ДАНЫЕ
     */
    //смещение, всегда 0 (затем берется из $_GET)
    $offset = isset($_GET['offset']) ? (int) abs($_GET['offset']) : 0;
    //текущий обработанный URL
    $path = CONF_ADMIN_FILE . '?m=users&amp;s=manager&amp;order=' . $order . '&amp;by=' . $by . '&amp;';
    //$fields = array(USR_PREFIX . 'users' => array('id', 'email', 'reg_datetime'), DB_PREFIX . 'conf_users' => array('user_type', 'user_group'));
    // получаем данные пользователя
    $usersData = $user->getCombinedUsersData(false, false, array($order => $by), $offset . ',' . CONF_USERS_STRINGS_PERPAGE_ADMIN_PANEL);
    // получаем общее количество записей
    $allRecords = $user->cntUsers();
    $smarty->assignByRef('order', $arrOrd);
Exemplo n.º 24
0
    	$arrNamePage[] = array('name' => MENU_CONFIG, 'link' => false);
    
    	if (isset($_POST['save'])) // сохраняем данные, переданные из формы
    	{
    		$data = "<?php\n\n"
    			  . "(!defined('SDG')) ? die ('Triple protection!') : null;\n\n"
    			  . 'define("CONF_BACKUPS_PATH_TO_FILES", "' . filesys::setPath($_POST['path']) . '");' . "\n";
    
       		if (!tools::saveConfig('core/conf/const.config.backups.php', $data, CONF_ADMIN_FILE . '?m=system&s=backups&action=config'))
    		{
    			$arrErrors[] = ERROR_FILES_MISSING_FILE;
    		}
    	}
    */
} else {
    /**
     * удаление файлов
     */
    if (isset($_POST['action'])) {
        if ('del' === $_POST['action'] && !empty($_POST['files'])) {
            foreach ($_POST['files'] as $key => $value) {
                unlink($key);
            }
            messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=system&s=backups');
        }
    }
    $arrFiles = backup::getBackupFiles();
    $smarty->assignByRef('arrFiles', $arrFiles);
}
$smarty->assignByRef('errors', $arrErrors);
$smarty->assignByRef('action', $arrActions);
Exemplo n.º 25
0
            !$securimage->check($_POST['keystring']) ? $arrErrors[] = ERROR_CAPTCHA : null;
        }
    } else {
        $arrErrors[] = ERROR_EMPTY_FIELDS;
    }
    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////
    if (!$arrErrors) {
        $mailer = new mailer();
        // массив для замены в шаблоне
        CONF_MAIL_FORMAT_HTML ? $message = nl2br($_POST['message']) : ($message =& $_POST['message']);
        $mailer->setAddReplace(array('%FEEDBACK%' => &$message));
        // проверяем, если есть дополнительный словарь тем, то используем его
        $toAddress = isset($arrAddDict['FeedbackSubject']) && ($address = array_search($_POST['subject'], $arrAddDict['FeedbackSubject']['values'])) ? $address : CONF_MAIL_ADMIN_EMAIL;
        // пытамеся отправить сообщение
        if (!$mailer->sendEmail($_POST['email'], $_POST['email'], $_POST['email'], $toAddress, $toAddress, $_POST['subject'], 'feedback.txt')) {
            $arrErrors[] = ERROR_SEND_EMAIL;
        } else {
            messages::messageChangeSaved(MESSAGE_WAS_SEND, false, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=feedback'));
        }
    }
    $return_data['subject'] = !empty($_POST['subject']) ? $_POST['subject'] : '';
    $return_data['email'] = !empty($_POST['email']) ? $_POST['email'] : '';
    $return_data['message'] = !empty($_POST['message']) ? $_POST['message'] : '';
}
// проверяем, если есть дополнительный словарь тем, то бере темы из него
$feedBackSubject = isset($arrAddDict['FeedbackSubject']) ? $arrAddDict['FeedbackSubject']['values'] : $arrSysDict['FeedbackSubject']['values'];
$smarty->assign('sid', md5(time()));
$smarty->assignByRef('return_data', $return_data);
$smarty->assignByRef('subject', $feedBackSubject);
$smarty->assignByRef('errors', $arrErrors);
Exemplo n.º 26
0
                             @unlink('uploads/images/logo/thumbs/thumb_' . $arrUser['logo']);
                         }
                     }
                 } else {
                     $arrErrors[] = ERROR_FILE_EXISTS;
                 }
             } else {
                 $logo = $arrUser['logo'];
             }
             if (!$arrErrors) {
                 $arrConfData = array('company_name' => $_POST['company_name'], 'company_city' => $_POST['company_city'], 'company_url' => $_POST['company_url'], 'company_description' => CONF_USE_VISUAL_EDITOR && CONF_COMPANIES_USE_VISUAL_EDITOR ? $_POST['company_description'] : htmlentities($_POST['company_description'], ENT_QUOTES, CONF_DEFAULT_CHARSET), 'logo' => $logo);
                 if (!$user->updateUserData(false, $arrConfData)) {
                     $arrErrors[] = db::$message_error ? db::$message_error : ERROR_MISMATCH_FIELDS;
                 } else {
                     // если удалось обновить данные,
                     messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=user.data&action=edit&amp;anc=1'));
                 }
             }
         }
         $arrAction['edit'] = true;
         $arrNamePage = array(array('name' => MENU_USER_DATA, 'link' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=user.data')), array('name' => MENU_EDIT_USER_DATA, 'link' => false));
     }
 }
 $smarty->assignByRef('arrUser', $arrUser);
 $smarty->assignByRef('action', $arrAction);
 $smarty->assignByRef('errors', $arrErrors);
 $smarty->assign('anc', isset($_GET['anc']) ? $_GET['anc'] : 0);
 // передаем массив селекта "Пол"
 unset($arrSysDict['Gender']['values']['none']);
 // вырезаем ненужное значение
 //$smarty -> assignByRef('gender', $arrSysDict['Gender']['values']);
    $strPages = strings::generatePage($allRecords, $offset, !empty($records) ? $records : $allRecords, $path, true);
    // формируем странциы
    $smarty->assignByRef('arrComments', $arrComments);
    $smarty->assignByRef('allRecords', $allRecords);
    $smarty->assignByRef('strPages', $strPages);
} else {
    // инициируем "Наименование страницы" отображаемое в форме
    $arrNamePage[] = array('name' => MENU_MANAGER_ARTICLES, 'link' => false);
    /**
     * отображение, скрытие, удаление статей
     */
    if (isset($_POST['action'])) {
        if ('delete' === $_POST['action'] && !empty($_POST['articles'])) {
            !$articles->deleteArticles(array_keys($_POST['articles'])) ? $arrErrors[] = db::$message_error : messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?' . $qString);
        } elseif ('archived' === $_POST['action'] && !empty($_POST['articles'])) {
            !$articles->updateArticles(array('token' => 'archived'), array_keys($_POST['articles'])) ? $arrErrors[] = db::$message_error : messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?' . $qString);
        }
    }
    // END отображение, скрытие, удаление новостей
    /** строка запроса по умолчанию **/
    $strWhere = "token IN ('active')";
    /** текущий обработанный URL **/
    $path = CONF_ADMIN_FILE . '?m=manager&amp;s=articles&amp;';
    /**
     * отбор записей
     */
    if (!empty($_GET['do']) && 'filter' === $_GET['do']) {
        $retFields = array('id' => !empty($_GET['id']) ? $_GET['id'] : false, 'id_user' => !empty($_GET['id_user']) ? $_GET['id_user'] : false, 'author' => !empty($_GET['author']) ? $_GET['author'] : false, 'title' => !empty($_GET['title']) ? $_GET['title'] : false, 'id_section' => !empty($_GET['id_section']) && strings::ifInt($_GET['id_section']) ? (int) abs($_GET['id_section']) : false, 'sDate' => !empty($_GET['sDate']) ? $_GET['sDate'] : false, 'eDate' => !empty($_GET['eDate']) ? $_GET['eDate'] : false, 'records' => !empty($_GET['records']) && strings::ifInt($_GET['records']) ? (int) abs($_GET['records']) : 30);
        ///////////////////////////////////////////////////////////////
        // Проверка данных, полученных из формы и формирование запроса
        ///////////////////////////////////////////////////////////////
Exemplo n.º 28
0
                $new_password = md5($_POST['new_password']);
                if (md5($_POST['password']) !== $_SESSION['sd_user']['data']['password']) {
                    $arrErrors[] = ERROR_PASSWORD;
                }
                if (strlen($_POST['new_password']) < CONF_REGISTER_USER_PASSWORD) {
                    $arrErrors[] = ERROR_PASSWORD_SHORT;
                }
                if (md5($_POST['password']) === md5($_POST['new_password'])) {
                    $arrErrors[] = ERROR_PASSWORD_NOT_NEW_PASSWORD;
                }
                if ($_POST['new_password'] !== $_POST['confirm_password']) {
                    $arrErrors[] = ERROR_PASSWORD_NOT_CONFIRM_PASSWORD;
                }
            } else {
                $arrErrors[] = ERROR_EMPTY_FIELDS;
            }
            if (!$arrErrors) {
                $user->updateUser(array('password' => md5($_POST['new_password'])), "id IN (" . secure::escQuoteData($_SESSION['sd_user']['data']['id']) . ")");
                // обновляем пароль в сессии
                tools::updateSessionData($_SESSION['sd_user']['data'], array('password' => md5($_POST['new_password'])));
                messages::messageChangeSaved(MESSAGE_PASSWORD_HAS_BEEEN_CHANGED, false, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=user.data'));
            } else {
                $smarty->assignByRef('errors', $arrErrors);
            }
        }
    } else {
        messages::error404();
    }
} else {
    messages::error404();
}
Exemplo n.º 29
0
 /**
  * public функция выполняет действия над группой регионов
  *
  * @param string $action
  * @param array $arrFields
  *
  * @return bool
  */
 public function actionProfessions($action, $arrFields, $parent_id)
 {
     if ('edit' === $action || 'sort' === $action || 'del' === $action) {
         !$this->actionCategorys($action, $arrFields) ? messages::messageChangeSaved(ERROR_NOT_SAVE_CHANGE, false, CONF_ADMIN_FILE . '?m=dictionary&amp;s=sections&amp;action=professions&amp;pid=' . $parent_id) : messages::messageChangeSaved(MESSAGE_CHANGE_SAVED, false, CONF_ADMIN_FILE . '?m=dictionary&amp;s=sections&amp;action=professions&amp;pid=' . $parent_id);
     } else {
         messages::messageChangeSaved(MESSAGE_WARNING_UNKNOWN_ACTION, false, CONF_ADMIN_FILE . '?m=dictionary&amp;s=sections&amp;action=professions&amp;pid=' . $parent_id);
     }
 }
Exemplo n.º 30
0
             * и изменится только после того, как пользователь выберет необходимый тип пользователя
             * это нормально, т.к. из формы выбора типа он никуда не может переходить
             */
            die('<script type="text/javascript">window.location="' . chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=competitor&do=select.type') . '";</script>');
        }
    } elseif ('moderate' === $_SESSION['sd_user'][DB_PREFIX . 'conf']['token']) {
        $user_type = 'competitor' === $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] ? 'competitor' : 'employer';
        // очищаем куки и сессию пользователя
        $user->clearUserSessionAndCookie();
        messages::messageChangeSaved(MESSAGE_ACCOUNT_MODERATE, MESSAGE_ACCOUNT_MODERATE_TEXT, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $user_type), 10000);
    } elseif ('payment' === $_SESSION['sd_user'][DB_PREFIX . 'conf']['token']) {
        $user_type = 'employer' === $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] ? 'employer' : 'competitor';
        $_SESSION['payment'] = array('service' => 'register_' . strtolower($_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type']), 'id' => $_SESSION['sd_user']['data']['id'], 'user_type' => $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type']);
        // очищаем куки и сессию пользователя
        $user->clearUserSessionAndCookie();
        messages::messageChangeSaved(MESSAGE_REGISTER_SUCCESS_DO_PAYMENT, MESSAGE_REGISTER_SUCCESS_DO_PAYMENT_TEXT, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $user_type . '&do=payments'), 10000);
    } else {
        $smarty->assignByRef('user_email', $_SESSION['sd_user']['data']['email']);
        $smarty->assign('user_type', $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type']);
        // передаем в Smarty права пользователя
        $smarty->assign('codex', $_SESSION['sd_' . DB_PREFIX . 'codex']);
        // значения, возвращаемые в форму
    }
} else {
    // если пользователь не вошел, проверяем его Кукисы и очищаем их, либо делаем автоматический вход
    if (!isset($_SESSION['sd_user']) && isset($_COOKIE['remid']) && $_COOKIE['remid'] && isset($_COOKIE['remh']) && $_COOKIE['remh']) {
        // проверяем, есть ли в кукисах наши параметры
        $arrData = $user->getUser("id IN (" . secure::escQuoteData((int) $_COOKIE['remid']) . ")");
        // если пользователь с таким id найден, сверяем хеш
        if (!empty($arrData)) {
            // выполняем вход