예제 #1
0
function FatalCheck()
{
    $error = error_get_last();
    if ($error['type'] == E_ERROR) {
        ErrorHandler($error['type'], $error['message'], $error['file'], $error['line']);
    }
}
/**
 * Автозагрузка классов
 * @param $ClassName
 */
function __autoload($ClassName)
{
    if (isset($GLOBALS['system_autoload'][$ClassName])) {
        require_once $GLOBALS['system_autoload'][$ClassName];
    } else {
        ErrorHandler(E_USER_ERROR, 'Class not found: ' . $ClassName, __FILE__, __LINE__);
    }
}
/**
 * Отправляет E-mail
 * @param $ToName
 * @param $ToEmail
 * @param $Subject
 * @param $Text
 * @param bool $Html
 * @param string $From
 * @param string $FromEmail
 */
function SendMail($ToName, $ToEmail, $Subject, $Text, $Html = false, $From = '', $FromEmail = '')
{
    $mail = LmEmailExtended::Instance();
    if ($From == '' && $FromEmail == '') {
        $mail->SetFrom(System::config('general/site_email'), Cp1251ToUtf8(System::config('general/site_name')));
    } else {
        $mail->SetFrom($FromEmail, Cp1251ToUtf8($From));
    }
    $mail->SetSubject(Cp1251ToUtf8($Subject));
    if (!$Html) {
        $mail->AddTextPart(Cp1251ToUtf8($Text));
    } else {
        $mail->AddHtmlPart(Cp1251ToUtf8($Text));
    }
    $mail->AddTo($ToEmail, Cp1251ToUtf8($ToName));
    if (!$mail->Send()) {
        ErrorHandler(USER_ERROR, 'Проблема при отправке E-mail "' . $Subject . '".', __FILE__);
    }
}
 /**
  * Создает новое изображение из файла
  * @param $ImgFileName
  * @param int $Width
  * @param int $Height
  * @return mixed
  */
 public function CreateFromFile($ImgFileName, $Width = 0, $Height = 0)
 {
     if (!file_exists($ImgFileName)) {
         ErrorHandler(USER_NOTICE, 'Файл не найден', 'TPicture::CreateFromFile');
         return;
     }
     if ($this->gd != null) {
         $this->Destruct();
     }
     $size = getimagesize($ImgFileName);
     $format = strtolower(substr($size['mime'], strpos($size['mime'], '/') + 1));
     $vformat = false;
     if ($format == 'jpg' || $format == 'jpeg') {
         $vformat = true;
         $this->Format = IMAGE_JPEG;
         $this->gd = ImageCreateFromJPEG($ImgFileName);
     } elseif ($format == 'png') {
         $vformat = true;
         $this->Format = IMAGE_PNG;
         $this->gd = ImageCreateFromPNG($ImgFileName);
     } elseif ($format == 'gif') {
         $vformat = true;
         $this->Format = IMAGE_GIF;
         $this->gd = ImageCreateFromGIF($ImgFileName);
     } elseif ($format == 'wbmp') {
         $vformat = true;
         $this->Format = IMAGE_WBMP;
         $this->gd = ImageCreateFromWBMP($ImgFileName);
     }
     if ($vformat) {
         $this->SaveFormat = $this->Format;
         $this->Width = $size[0];
         $this->Height = $size[1];
         $this->NewWidth = 0;
         $this->NewHeight = 0;
         $this->JpegQuality = 95;
     }
 }
 public function testMain()
 {
     ob_start();
     dump(['test' => rand()]);
     // это тест!
     expect('Функция дампа не отдает результат', ob_get_clean())->notEmpty();
     $this->assertInstanceOf(yii\log\Dispatcher::class, YiiLog());
     $this->assertInstanceOf(yii\db\Connection::class, DB());
     $this->assertInstanceOf(yii\base\ErrorHandler::class, ErrorHandler());
     $this->assertInstanceOf(yii\caching\Cache::class, Cache());
     $this->assertInstanceOf(yii\i18n\Formatter::class, Formatter());
     $this->assertInstanceOf(yii\base\View::class, View());
     $this->assertInstanceOf(yii\i18n\I18N::class, I18N());
     $this->assertInstanceOf(yii\rbac\ManagerInterface::class, AuthManager());
     $this->assertInstanceOf(yii\web\AssetManager::class, AssetManager());
     $this->assertInstanceOf(yii\web\User::class, User());
     $this->assertInstanceOf(yii\base\Request::class, Request());
     $this->assertInstanceOf(yii\base\Response::class, Response());
     $this->assertInstanceOf(yii\web\Session::class, Session());
     $this->assertInstanceOf(yii\web\UrlManager::class, UrlManager());
     $this->assertInstanceOf(yii\mail\MailerInterface::class, Mailer());
     $this->assertInstanceOf(services\File\Service::class, FileService());
     $this->assertInstanceOf(services\Activity\Service::class, ActivityService());
 }
 /**
  * Вывод пользовательской ошибки через обработчик ошибок.
  * @static
  * @param $No
  * @param $Error
  * @param $File
  * @param $Line
  */
 public static function error($No, $Error, $File, $Line = -1)
 {
     ErrorHandler($No, $Error, $File, $Line);
 }
/**
 * Для совместимости со старыми модулями.
 * @param $No
 * @param $Error
 * @param $File
 * @param $Line
 */
function error_handler($No, $Error, $File, $Line = -1)
{
    ErrorHandler($No, $Error, $File, $Line);
}
 /**
  * Выводит форму добавления или редактирования комментария.
  * @param bool        $Edit              Метод редактирования
  * @param string      $PostFormBlockName Имя блока для вывода формы
  */
 public function RenderForm($Edit = false, $PostFormBlockName = 'postsform')
 {
     if ($this->DisableComments) {
         System::site()->AddBlock($PostFormBlockName, false, false, 'form', $this->PostFormTemplate);
         return;
     } else {
         System::site()->AddBlock($PostFormBlockName, true, false, 'form', $this->PostFormTemplate);
     }
     if ($Edit && isset($_GET['post_id'])) {
         $post_id = SafeEnv($_GET['post_id'], 11, int);
     } elseif ($Edit && !isset($_GET['post_id'])) {
         ErrorHandler(USER_ERROR, 'Posts::PostForm(): post_id не инициализирована.', __FILE__);
         return;
     }
     if (!$Edit && !$this->AlloyComments) {
         $this->Alert($PostFormBlockName, 'Обсуждение закрыто');
         return;
     }
     if (!$Edit && !System::user()->Auth && !$this->GuestPost) {
         // Гость
         $this->Alert($PostFormBlockName, 'Гости не могут добавлять комментарии, войдите или зарегистрируйтесь.');
         return;
     }
     System::site()->AddVars('template', array('lang_posts_username' => 'Имя', 'lang_posts_useremail' => 'E-mail', 'lang_posts_hideemail' => 'Скрыть E-mail', 'lang_posts_userhomepage' => 'Сайт', 'lang_posts_posttitle' => 'Заголовок', 'lang_posts_postmessage' => 'Сообщение', 'lang_posts_cancel' => 'Отмена', 'lang_posts_canceltitle' => 'Вернуться к теме без сохранения изменений'));
     $back = '';
     if (!$Edit) {
         $back = '&back=' . SaveRefererUrl();
     }
     $vars = array();
     if ($Edit) {
         System::database()->Select($this->PostsTable, "`id`='{$post_id}'");
         $post = System::database()->FetchRow();
         if (System::user()->Auth) {
             $access = System::user()->Get('u_id') == $post['user_id'] || System::user()->isAdmin();
         } else {
             $access = $post['user_id'] == '0' && $post['user_ip'] == getip();
         }
         if (!$access) {
             $this->Alert($PostFormBlockName, 'У вас не достаточно прав!');
             return;
         }
         $vars['form_title'] = 'Редактирование сообщения';
         $vars['form_action'] = $this->PostFormAction . "&post_id={$post_id}" . $back;
         $vars['post_message'] = HtmlChars($post['post_message']);
         $vars['edit'] = true;
         System::site()->SetVar('template', 'lang_posts_submit', 'Сохранить');
         System::site()->SetVar('template', 'lang_posts_submittitle', 'Сохранить изменения и вернуться');
         $vars['visibility'] = 'visible';
     } else {
         $vars['form_title'] = 'Добавить комментарий';
         $vars['form_action'] = $this->PostFormAction . $back;
         $vars['post_title'] = '';
         $vars['post_message'] = '';
         $vars['edit'] = false;
         System::site()->SetVar('template', 'lang_posts_submit', 'Добавить');
         System::site()->SetVar('template', 'lang_posts_submittitle', 'Добавить новое сообщение');
         $vars['visibility'] = 'hidden';
     }
     $vars['add'] = !$vars['edit'];
     $vars['add_guest'] = (System::user()->AccessLevel() == 3 || System::user()->AccessLevel() == 4) && $vars['add'];
     $vars['show_kaptcha'] = $vars['add_guest'] || !System::user()->isAdmin() && $this->ShowKaptchaForMembers;
     $vars['kaptcha_url'] = 'index.php?name=plugins&p=antibot';
     $vars['kaptcha_width'] = '120';
     $vars['kaptcha_height'] = '40';
     // Подключаем BBCode редактор
     IncludePluginsGroup('bbcode_editors');
     // Смайлики для формы
     $smilies = System::database()->Select('smilies', "`enabled`='1'");
     $vars['is_smilies'] = System::database()->NumRows() != 0;
     if ($vars['is_smilies']) {
         System::site()->AddBlock('smilies', true, true, 'smile');
         foreach ($smilies as $smile) {
             $smile['file'] = RealPath2(System::config('general/smilies_dir') . $smile['file']);
             $sub_codes = explode(',', SafeDB($smile['code'], 255, str));
             $smile['code'] = $sub_codes[0];
             System::site()->AddSubBlock('smilies', true, $smile);
         }
     } else {
         System::site()->AddBlock('smilies', true, false, 'smile', '', 'Смайликов пока нет.');
     }
     System::site()->Blocks[$PostFormBlockName]['vars'] = $vars;
 }
 protected function Error($msg)
 {
     $msg = '<p><b>' . $this->Method . '</b>: ' . $msg . '<p>';
     $this->ErrorMsg = $msg;
     $this->AllErrors[] = $msg;
     $this->Error = true;
     if ($this->ErrorReporting) {
         ErrorHandler(USER_WARNING, $msg, __FILE__, __LINE__);
     }
     $this->EndQ();
 }
function IndexFormSendMail($email, $form_name, $time, $user, $ip, $data_rows)
{
    if ($user != 0) {
        $user_info = GetUserInfo($user);
        $user = SafeDB($user_info['name'], 255, str) . ' ( id:' . SafeDB($user_info['id'], 11, int) . ' )';
        $from = $user_info['name'];
        $from_email = $user_info['email'];
    } else {
        $user = '******';
        $from = System::config('general/site_name');
        $from_email = System::config('general/site_email');
    }
    $subject = 'Веб форма "' . SafeDB($form_name, 255, str) . '"';
    $mail = LmEmailExtended::Instance();
    $mail->SetSubject(Cp1251ToUtf8($subject));
    $mail->SetFrom($from_email, Cp1251ToUtf8($from));
    $mail->AddTo($email, Cp1251ToUtf8('Администратор'));
    $post_text = '';
    foreach ($data_rows as $row) {
        if ($row[2] == 'file') {
            $mail->AddAttachmentPart(file_get_contents($row[1]), $row[3]);
        } else {
            $post_text .= '<b>' . SafeDB($row[0], 255, str) . ':</b><br />' . SafeDB($row[1], 0, str) . '<br />';
        }
    }
    $text = Indent('
		<html>
		<head>
			<title>Форма</title>
		</head>
		<body>
			<table cellspacing="2" cellpadding="10" border="1">
				<tr>
					<th>Дата: ' . TimeRender($time, true, false) . '</th>
					<th>Пользователь: ' . $user . '</th>
					<th>IP: ' . $ip . '</th>
				</tr>
				<tr>
					<td colspan="3" style="text-align: left;">' . $post_text . '</td>
				</tr>
			</table>
		</body>
		</html>
	');
    $mail->AddHtmlPart(Cp1251ToUtf8($text));
    if (!$mail->Send()) {
        ErrorHandler(USER_ERROR, 'Проблема при отправке E-mail "' . $subject . '".', __FILE__);
    }
}
 /**
  * Обходит дерево с вызовом пользовательской функции
  * Пример пользовательской функции
  * function UserFunc($cat, $level){
  *  $cat - Текущий элемент дерева
  *  $level - Уровень вложенности
  * }
  *
  * @param int          $ParentId     Идентификатор родительского объекта с которого нужно начинать обход
  * @param string|array $CallbackFunc Имя функции или массив с именем класса и метода
  * @param string|array $CallbackCatFinish Имя функции вызываемой при завершении обработки каждой категории. Параметры $Id, $Level.
  * @return bool Возвращает true в случае успешного обхода
  */
 public function ListingTree($ParentId, $CallbackFunc, $CallbackCatFinish = null)
 {
     $tree = $this->GetChildTree($ParentId);
     if (!is_array($CallbackFunc) && !@function_exists($CallbackFunc) || is_array($CallbackFunc) && !@method_exists($CallbackFunc[0], $CallbackFunc[1])) {
         ErrorHandler(NOTICE, 'CallBack функция не предопределена.', 'Tree->ListingTree()');
         return false;
     } else {
         if (count($tree) == 0) {
             return false;
         }
         $c = count($tree);
         foreach ($tree as $i => $tree_item) {
             if (call_user_func_array($CallbackFunc, array($tree_item, 0, $i, $c)) !== false) {
                 $this->ToCatsTree($tree_item, 1, $CallbackFunc, $CallbackCatFinish);
             }
         }
         if (isset($CallbackCatFinish)) {
             call_user_func_array($CallbackCatFinish, array('0', 0));
         }
         return true;
     }
 }
예제 #12
0
<?php

$config = "WEB-INF/config.xml";
$xmlreader = new xmlreader($config);
$xml = $xmlreader->parse();
$dbsetting = $xml["config"]["#"]["database"][0]["#"];
$dsn = "{$dbsetting['type'][0]['#']}://{$dbsetting['usr'][0]['#']}:{$dbsetting['pass'][0]['#']}@{$dbsetting['host'][0]['#']}/{$dbsetting['name'][0]['#']}";
$db = NewADOConnection($dsn);
if (!$db) {
    ErrorHandler("Can not connet to {$dbsetting['type'][0]['#']} server", __FILE__, __LINE__);
}
$_SERVER['Magix_DB'] = $db;
//add other configuer
예제 #13
0
파일: index.php 프로젝트: sonicmaster/RPG
function FatalErrorHandler()
{
    if ($error = error_get_last()) {
        ErrorHandler($error['type'], $error['message'], $error['file'], $error['line']);
    }
}