コード例 #1
0
function apply()
{
    $settings['site_language'] = JArrayHelper::getValue($_REQUEST, 'site_language', "en");
    $settings['map_lang'] = JArrayHelper::getValue($_REQUEST, 'map_lang', "en");
    $settings['cache_map'] = JArrayHelper::getValue($_REQUEST, 'cache_map', "0");
    $settings['translator'] = JArrayHelper::getValue($_REQUEST, 'translator', "bing");
    $settings['api_google_translate_key'] = JArrayHelper::getValue($_REQUEST, 'api_google_translate_key', "");
    $settings['api_bing_client_secret'] = JArrayHelper::getValue($_REQUEST, 'api_bing_client_secret', "");
    $settings['api_bing_client_id'] = JArrayHelper::getValue($_REQUEST, 'api_bing_client_id', "");
    setParams($settings);
}
コード例 #2
0
ファイル: setting.php プロジェクト: Nnamso/tbox
">
								<a class="gird-box-image" href="javascript:void(0)" onclick="removeImg(this)"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span></a>
							</div>
						</div>
						<div class="row col-md-12">
							<div class="form-group">
								<?php 
$options = array('Defaults', 'Repeat', 'No repeat');
?>
									<select class="form-control input-sm" name="params[background][style]">
										
										<?php 
for ($i = 0; $i < 3; $i++) {
    ?>
											<?php 
    $background_style = setParams($params, 'background', 'style');
    if ($background_style == $options[$i]) {
        $check = 'selected=""';
    } else {
        $check = '';
    }
    ?>
											<option value="<?php 
    echo $options[$i];
    ?>
" <?php 
    echo $check;
    ?>
><?php 
    echo $options[$i];
    ?>
コード例 #3
0
/**
 * Функция отправляет письма
 */
function sendMail()
{
    // Явное указание на использование глобальных переменных
    global $localhostPath, $dbConnect, $prefix, $maxMailSend, $maxMailSendInDay, $log, $timeout;
    // Устанавливаем значение "по умолчанию" переменной статуса завершения функции
    $status = false;
    // Формирвоание текста сообщения о наличии файла "stop.txt"
    $stopFileExistlogMessage = date('d.m.Y H:i:s') . ": Выполнение предыдущей версии скрипта еще не завершено!";
    // Формирвоание текста сообщения о наличии файла "gotLimit.txt"
    $gotlimitFileExistlogMessage = date('d.m.Y H:i:s') . ": Достигнут суточный лимит отправляемых писем. Рассылку необходимо возобновить вручную через 24 часа!";
    // Если файла "gotLimit.txt" на сервере нет
    // Если файла "stop.txt" на сервере нет
    // Если соединение с БД установлено
    // И параметры скрипта переопределены
    // И максимальное количество отправляемых за раз писем не равно 0
    if (!checkFileExists('gotLimit.txt', $gotlimitFileExistlogMessage) && !checkFileExists('stop.txt', $stopFileExistlogMessage) && dbConnect() && setParams() && $maxMailSend !== 0) {
        // Создаем файл "stop.txt"
        createFile('stop.txt', 'stop');
        // Если есть активные почтовые рассылки, получаем параметры первой активной рассылки
        if ($mail = getMailingGroup()) {
            // Добавляем сообщение о начале работы скрипта в массив лога
            $log[] = date('d.m.Y H:i:s') . ": Начало работы скрипта!";
            // Получение списка адресатов, кому были отправлены письма
            $whoSent = $mail['whoSent'] ? explode(',', $mail['whoSent']) : array();
            // Получаем массив категорий материалов рассылки
            $categories = $mail['categories'] ? array_diff(explode(',', $mail['categories']), array('', ' ', null)) : array();
            // Получаем количество отправленных писем из отчера за предыдущий день
            $sendedYesterday = getYesterdayReportData();
            // Определение количества отправленных писем
            $sendedInAllTime = $mail['log'] > count($whoSent) ? $mail['log'] : count($whoSent);
            // Подсчитываем, сколько еще можно отправить писем за этот день, не превышая лимитов хостинга
            $needToSend = $maxMailSendInDay + $sendedYesterday - $sendedInAllTime;
            // Переопределение максимального количества отправляемых за раз писем
            $maxMailSend = $needToSend >= $maxMailSend ? $maxMailSend : $needToSend;
            // Если не достигнут суточный лимит количества отправляемых писем
            if ($needToSend > 0) {
                // Получение списка подписчиков активной рассылки
                $subscribers = getSubscribers($categories, $mail['log']);
                // Если массив подписчиков не пуст
                if (!empty($subscribers)) {
                    // Закрываем текущее соединение с БД, во избежание зазрыва соединения по таймауту
                    mysql_close($dbConnect);
                    // Обход массива подписчиков
                    foreach ($subscribers as $subscriber) {
                        // Если количество отправленных писем меньше максимального количества отправляемых писем за раз
                        // И подписчику еще не отправлялось письмо
                        if ($countMailSend < $maxMailSend && !in_array($subscriber['email'], $whoSent)) {
                            // Установка временного интервала между отправками писем в 10 секунд
                            sleep($timeout);
                            // Определение значения по умолчанию сгенерированной строки, добавляемой к телу письма
                            $generatorStr = '';
                            // Если параметр "Подключать словарь генерации случайного текста?" рассылки установлен в позицию "Да"
                            if ($mail['generator'] == 1) {
                                // Получение сгенерированной строки случайного текста
                                $generator = generator();
                                // Если строка не сгенерирована
                                if (!$generator) {
                                    // Переход к следующей итерации цикла
                                    continue;
                                }
                                // Добавляем сгенерированную строчку случайного текста
                                $generatorStr = $generator;
                            }
                            /* --------- Генерация письма -------- */
                            // Тема письма
                            $subject = $mail['subject'];
                            // Формируем тело письма для отправки
                            // Подставляем Имя пльзователя в тело в шаблон письма если есть маркер -{fio}-
                            $body = str_replace('-{fio}-', $subscriber['fio'], $mail['textemail']);
                            // Подставляем Email пльзователя в тело в шаблон письма если есть маркер -{fio}-
                            $body = str_replace('-{email}-', $subscriber['email'], $body);
                            // Добавление сгенерированной строки к телу письма
                            $body .= $generatorStr;
                            // Формируем заголовок письма
                            $headers = "MIME-Version: 1.0\r\n";
                            $headers .= "Content-type: text/html; charset=utf-8\r\n";
                            $headers .= "From: " . $mail['myemail'] . "\r\n";
                            $headers .= "Reply-To: " . $mail['myemail'] . "\r\n";
                            /* --------- Отправка письма -------- */
                            // Отправка письма адресату
                            $sendingMail = mail($subscriber['email'], $subject, $body, $headers);
                            /* --------- Проверка результата операции отправки -------- */
                            // Если письмо успешно отправлено
                            if ($sendingMail) {
                                // Добавляем E-mail адрес подписчика в массив адресатов, кому уже отправлены письма
                                $whoSent[] = $subscriber['email'];
                                // Формируем запрос на обновление списка отправленных у подписчика
                                $updateSubscriberInfo[] = "(" . $subscriber['id'] . ", '" . addslashes($subscriber['downloadedDocs'] . "\r\n" . $mail['id'] . ". " . $mail['subject'] . " (" . date('H:i:s d.m.y') . ")") . "')";
                                $log[] = 'Письмо c id=' . $mail['id'] . ' успешно отправлено адресату ' . $subscriber['email'];
                            } else {
                                // Добавляем сообщение об ошибке в массив лога ошибок
                                $log[] = 'Письмо c id=' . $mail['id'] . ' не отправлено на е-mail ' . $subscriber['email'];
                            }
                            // Удаление переменных
                            unset($body, $subject, $header);
                            // Увеличиваем общий счетчик отправленных писем на единицу
                            $countMailSend++;
                        } else {
                            // Переход к следующей итерации цикла
                            continue;
                        }
                    }
                    // Формируем запрос в БД на обновление информации о рассылке
                    $query = "UPDATE `" . $prefix . "subscribers_emails` SET  `log`=" . ($mail['log'] + $countMailSend) . ", `whoSent`='" . implode(',', $whoSent) . "', `noteMail`='" . $mail['noteMail'] . "\r\n" . date('H:i:s d.m.Y') . ":Отправлено всего на " . count($whoSent) . " e-mail адресов' WHERE `id`=" . $mail['id'];
                } else {
                    // Формируем запрос в БД на обновление информации о рассылке
                    $query = "UPDATE `" . $prefix . "subscribers_emails` SET `log`=0, `published`=-1, `send_date`='" . date('Y-m-d H:i:s') . "', `whoSent`='" . implode(',', $whoSent) . "', `noteMail`='" . $mail['noteMail'] . "\r\n" . date('H:i:s d.m.Y') . ":Отправлено всего на " . count($whoSent) . " e-mail адресов' WHERE `id`=" . $mail['id'];
                }
                // Восстанавливаем отключенное ранее соединение с БД
                dbConnect();
                // Отправка запроса в БД и получение результата
                $resultToDb = mysql_query($query, $dbConnect);
                // Если последняя операция MySQL вернула сообщение об ошибке (не пустую строку)
                if (!$resultToDb) {
                    // Добавленеи сообщения об ошибках операции в MySQL в массив лога ошибок
                    $log[] = "MySQL query error: " . mysql_error() . ' (' . $query . ')';
                }
                // Если массив запросов на обновление списка отправленных материалов подписчику не пустой
                if ($updateSubscriberInfo) {
                    // Преобразовываем массив в строку
                    $updateSubscriberInfo = implode(',', $updateSubscriberInfo);
                    // Формируем строку запроса в БД на внесение изменений в данные подписчиков в БД
                    $updateSubscriberInfo = 'INSERT INTO `' . $prefix . 'subscribers` (`id`, `downloadedDocs`) VALUES' . $updateSubscriberInfo . ' ON DUPLICATE KEY UPDATE `downloadedDocs` = VALUES(`downloadedDocs`)';
                    // Отправка запроса в БД и получение результата
                    $res = mysql_query($updateSubscriberInfo, $dbConnect);
                    if (!$res) {
                        // Добавленеи сообщения об ошибках операции в MySQL в массив лога ошибок
                        $log[] = "MySQL query error: " . mysql_error() . ' (' . $query . ')';
                    }
                }
            } else {
                // Добавленеи сообщение о достижении суточного лимита в массив лога ошибок
                $log[] = "Достигнут суточный лимит отправляемых писем. Рассылка будет возобновлена завтра!";
                // Проверяем, существует ли файл "dayReport.txt" на сервере
                if (file_exists($localhostPath . 'dayReport.txt')) {
                    // Удаление файла "dayReport.txt"
                    unlink($localhostPath . 'dayReport.txt');
                }
                // Вызываем функцию создания файла отчета об общем количестве отправленных писем по текущей рассылке
                createFile('dayReport.txt', count($whoSent));
                // Вызываем функцию создания файла
                createFile('gotLimit.txt', 'true');
            }
            // Добавляем сообщение об окончании работы скрипта в массив лога
            $log[] = date('d.m.Y H:i:s') . ": Завершение работы скрипта!";
        } else {
            // Добавляем сообщение об окончании работы скрипта в массив лога
            $log[] = date('d.m.Y H:i:s') . ": Рассылка не ведется! Нет активных почтовых рассылок!";
        }
        // Удаление файла "stop"
        unlink($localhostPath . 'stop.txt');
        // Устанавливаем значение переменной статуса завершения функции
        $status = true;
    }
    // Закрываем текущее соединение с БД
    mysql_close($dbConnect);
    // Записываем логи в файл
    writeToLog();
    // Завершаем выполнение работы скрипта. Выходим из функции
    return $status;
}
コード例 #4
0
ファイル: index.php プロジェクト: nickbreslin/Assembler
<?php

define('ROOT_PATH', realpath(dirname(__FILE__) . '/../../') . '/');
require_once ROOT_PATH . 'lib/boot/bootstrap.php';
$method = $_SERVER['REQUEST_METHOD'];
Debug::info($method);
setParams(array('method' => $method));
if ($collection = getParam("admin")) {
    if (!strcmp($collection, "dbupdate")) {
        require_once ROOT_PATH . 'lib/core/dbupdate.php';
        require_once ROOT_PATH . 'lib/core/dbchange.php';
        $dbupdate = new Dbupdate();
        $dbupdate->run();
    } else {
        Debug::warning("Route: [admin] : No Element");
    }
} else {
    if ($collection = getParam("views")) {
        if (!strcmp($collection, "dbupdate")) {
            require_once ROOT_PATH . 'lib/core/dbupdate.php';
            require_once ROOT_PATH . 'lib/core/dbchange.php';
            $dbupdate = new Dbupdate();
            $dbupdate->run();
        } else {
            Debug::warning("Route: [views] : No Element");
        }
    } else {
        if ($collection = getParam("assembla")) {
            if (!strcmp($collection, "query")) {
                require_once ROOT_PATH . 'lib/core/curl.php';
                require_once ROOT_PATH . 'lib/rest/assembla.php';
コード例 #5
0
$params = array();
function getParam($key, $default = false)
{
    global $params;
    return isset($params[$key]) ? $params[$key] : $default;
}
function setParams($newParams)
{
    if (is_array($newParams)) {
        global $params;
        $params = array_merge($params, $newParams);
    } else {
        Debug::error("No params.");
    }
}
setParams($_REQUEST);
if (!file_exists(SETTINGS_FILE)) {
    echo "no settings";
    Debug::error("No Settings File Found");
    exit;
}
$environment = file_exists(IS_PRODUCTION) ? "production" : "development";
$iniSettings = parse_ini_file(SETTINGS_FILE, true);
$configEnvironment = $iniSettings[$environment];
$configDefault = $iniSettings['default'];
$config = array_merge($configDefault, $configEnvironment);
function config($key, $default = false)
{
    global $config;
    return isset($config[$key]) ? $config[$key] : $default;
}