Joostina CMS / CMF v2.* API
  • Docs
  • Package
  • Class
  • Tree
  • Todo
Overview

Packages

  • Components
    • Acls
      • Models
        • Admin
        • Site
    • BlogCategory
      • Models
        • Admin
        • Site
    • Blogs
      • Controllers
        • Admin
        • Site
      • Helpers
      • Models
        • Admin
        • Site
    • Coder
      • Controllers
        • Admin
      • Models
        • Admin
    • Comments
      • Controllers
        • Admin
        • Site
      • Helpers
      • Models
        • Admin
        • Site
    • CommentsCounter
      • Models
        • Admin
        • Site
    • Mainpage
      • Controllers
        • Site
    • News
      • Controllers
        • Admin
        • Site
      • Helpers
      • Models
        • Admin
        • Site
    • Pages
      • Controllers
        • Admin
        • Site
      • Models
        • Site
    • Search
      • Controllers
        • Site
    • Site
      • Controllers
        • Admin
        • Site
    • Sitemap
      • Controllers
        • Admin
        • Site
      • Models
        • Admin
        • Site
    • Test
      • Controllers
        • Site
    • Torrents
      • Controllers
        • Site
    • Users
      • Controllers
        • Admin
        • Site
      • Models
        • Admin
        • Site
  • Compression
  • Core
    • Libraries
      • Arhive
      • Array
      • Attached
      • Autoadmin
      • Autoloader
      • Benchmark
      • Breadcrumbs
      • Cache
      • Config
      • Cookie
      • Csrf
      • Database
        • Drivers
          • Interfaces
      • Datetime
      • Debug
      • Editor
      • Events
      • File
      • Filter
      • Flashmessage
      • Folder
      • Hit
      • Html
      • Image
      • Inflector
      • Inputfilter
      • Libraries
      • Mail
      • Module
      • Nestedset
      • Pager
      • Pages
      • Params
      • Randomizer
      • Request
      • RobotLoader
      • Route
      • Security
      • Session
      • Static
      • String
      • Text
      • Trash
      • Validate
  • Email
  • Extra
    • Libraries
      • Basket
  • Joostina
    • Controller
    • Core
    • Document
  • JSMin
  • Libraries
    • Extra
      • Basket
        • Models
          • Site
  • None
  • Plugins
    • Autoadmin
    • Editor
    • Sitemap
  • SimpleMail
  • Vendors
    • Libraries
      • Email

Classes

  • helperAcl
  • joosAdminToolbarButtons
  • joosAdminView
  • joosAdminViewToolbarEdit
  • joosAdminViewToolbarListing
  • joosAutoadminHTML
  • joosTemplater
  • joosValidateHelper
  • modelAdminCoder_Faker
  • moduleActions
  • moduleActionsLogin
  • moduleActionsMenu
  • moduleActionsNews
  • moduleActionsTest
  • Route
  • rulesValidation
  • TreeBuilder

Interfaces

  • joosAutoadminPluginsEdit
  • joosAutoadminPluginsTable

Exceptions

  • joosAutoadminClassPlugionNotFoundException
  • joosAutoadminFilePluginNotFoundException
  • joosAutoloaderClassNotFoundException
  • joosAutoloaderFileNotFoundException
  • joosAutoloaderOnStartFileNotFoundException
  • joosCacheException
  • joosCoreException
  • joosDatabaseException
  • joosException
  • joosFileLibrariesException
  • joosFolderLibrariesException
  • joosImageLibrariesException
  • joosModulesException
  • joosSimpleMailException
  • joosUploadLibrariesException
  • joosUserException
  • JSMinException

Functions

  • navigation_ul_li_recurse
  • quoted_printable_encode
  1: <?php defined('_JOOS_CORE') or exit();
  2: 
  3: /**
  4:  * Обработка исключений
  5:  *
  6:  * @version    1.0
  7:  * @package    Core\Libraries
  8:  * @subpackage Exception
  9:  * @category   Libraries
 10:  * @author     Joostina Team <info@joostina.ru>
 11:  * @copyright  (C) 2007-2012 Joostina Team
 12:  * @license    MIT License http://www.opensource.org/licenses/mit-license.php
 13:  * Информация об авторах и лицензиях стороннего кода в составе Joostina CMS: docs/copyrights
 14:  *
 15:  * */
 16: // запрет прямого доступа
 17: defined('_JOOS_CORE') or exit();
 18: 
 19: /**
 20:  * Обработка всех уровней ошибок
 21:  *
 22:  */
 23: class joosException extends Exception
 24: {
 25:     const CONTEXT_RADIUS = 10;
 26: 
 27:     public function __construct($message = '', array $params = array())
 28:     {
 29:         joosRequest::send_headers_by_code(503);
 30: 
 31:         parent::__construct(strtr($message, $params));
 32: 
 33:         if (isset($params[':error_file'])) {
 34:             $this->file = $params[':error_file'];
 35:         }
 36: 
 37:         if (isset($params[':error_line'])) {
 38:             $this->line = $params[':error_line'];
 39:         }
 40: 
 41:         if (isset($params[':error_code'])) {
 42:             $this->code = $params[':error_code'];
 43:         }
 44: 
 45:         //$this->__toString();
 46:     }
 47: 
 48:     private function get_file_context()
 49:     {
 50:         $file = $this->getFile();
 51:         $line_number = $this->getLine();
 52: 
 53:         $context = array();
 54:         $i = 0;
 55:         foreach (file($file) as $line) {
 56:             $i++;
 57:             if ($i >= $line_number - self::CONTEXT_RADIUS && $i <= $line_number + self::CONTEXT_RADIUS) {
 58:                 if ($i == $line_number) {
 59:                     $context[] = ' >>   ' . $i . "\t" . $line;
 60:                 } else {
 61:                     $context[] = "\t" . $i . "\t" . $line;
 62:                 }
 63:             }
 64:             if ($i > $line_number + self::CONTEXT_RADIUS) {
 65:                 break;
 66:             }
 67:         }
 68: 
 69:         return "\n" . implode("", $context);
 70:     }
 71: 
 72:     public function __toString()
 73:     {
 74:         // очистим всю вышестоящую буферизацию без вывода её в браузер
 75:         !ob_get_level() ? : ob_end_clean();
 76: 
 77:         parent::__toString();
 78:         echo joosRequest::is_ajax() ? $this->to_json() : $this->show();
 79:         die();
 80:     }
 81: 
 82:     private function show()
 83:     {
 84:         return JDEBUG ? $this->create() : $this->render();
 85:     }
 86: 
 87:     private function create()
 88:     {
 89:         if (headers_sent()) {
 90:             !ob_get_level() ? : ob_end_clean();
 91:         } else {
 92:             joosRequest::send_headers('Content-type: text/html; charset=UTF-8');
 93:         }
 94: 
 95:         $message = nl2br($this->getMessage());
 96:         $result = <<<HTML
 97:   <style>
 98:     body { background-color: #fff; color: #333; }
 99:     body, p, ol, ul, td { font-family: verdana, arial, helvetica, sans-serif; font-size: 13px; line-height: 25px; }
100:     pre { background-color: #eee; padding: 10px; font-size: 11px; line-height: 18px; }
101:     a { color: #000; }
102:     a:visited { color: #666; }
103:     a:hover { color: #fff; background-color:#000; }
104:   </style>
105: <div style="width:99%; position:relative">
106: <h2 id='Title'>{$message}</h2>
107: <div id="Context" style="display: block;"><h3>Ошибка с кодом {$this->getCode()} в файле '{$this->getFile()}' в строке {$this->getLine()}:</h3><pre>{$this->prepare($this->get_file_context())}</pre></div>
108: <div id="Trace"><h2>Стэк вызовов</h2><pre>{$this->getTraceAsString()}</pre></div>
109: HTML;
110:         $result .= "</div></div>";
111: 
112:         return $result;
113:     }
114: 
115:     protected function prepare($content)
116:     {
117:         return htmlspecialchars($content, ENT_NOQUOTES, 'UTF-8');
118:     }
119: 
120:     /**
121:      * Возврат информации об ошибки в JSON-сериализованном виде
122:      *
123:      * @return string строка в json с кодом ошибки закодированная в JSON
124:      */
125:     private function to_json()
126:     {
127:         $response = array('code' => ($this->getCode() != 0) ? $this->getCode() : 503, 'message' => $this->getMessage());
128: 
129:         return joosText::json_encode($response);
130:     }
131: 
132:     private function render()
133:     {
134:         $message = $this->message;
135: 
136:         $file = (!JDEBUG && $this->code != 503) ? sprintf('%s/app/templates/system/500.php', JPATH_BASE) : sprintf('%s/app/templates/system/exception.php', JPATH_BASE);
137: 
138:         require $file;
139:     }
140: 
141:     public static function error_handler($code, $message, $file, $line)
142:     {
143:         throw new joosException('Ошибка :message! <br /> Код: <pre>:error_code</pre> Файл: :error_file<br />Строка :error_line', array(':message' => $message, ':error_code' => $code, ':error_file' => $file, ':error_line' => $line));
144:     }
145: 
146: }
147: 
148: /**
149:  * Класс обработки общих ошибок пользователя, без уточнений
150:  *
151:  */
152: class joosUserException extends joosException
153: {
154:     public function __construct($message = '', array $params = array())
155:     {
156:         $this->code = 503;
157: 
158:         parent::__construct(strtr($message, $params));
159: 
160:         $this->__toString();
161:     }
162: 
163: }
164: 
Joostina CMS / CMF v2.* API API documentation generated by ApiGen 2.6.1 – Template adapted by @olvlv and Joostina Team