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

  • joosEvents
 1: <?php defined('_JOOS_CORE') or exit();
 2: 
 3: /*
 4:   joosEvents::add_events('system.onstart', function($a, $b) {
 5:   echo sprintf('1. a=%s; $b=%s', $a, $b);
 6:   });
 7: 
 8:   joosEvents::add_events('system.onstart', function($a, $b) {
 9:   echo sprintf('2. a=%s; $b=%s', $a, $b);
10:   });
11: 
12:   joosEvents::add_events('system.onstart', 'absd');
13: 
14:   joosEvents::add_events('system.onstart', 'actionsTest::viewtest');
15: 
16:   joosEvents::fire_events('system.onstart', 1, 2);
17: 
18:  */
19: 
20: /**
21:  * Работа с плагинами, реализация метода Observer
22:  *
23:  * @version    1.0
24:  * @package    Core\Libraries
25:  * @subpackage Events
26:  * @category   Libraries
27:  * @author     Joostina Team <info@joostina.ru>
28:  * @copyright  (C) 2007-2012 Joostina Team
29:  * @license    MIT License http://www.opensource.org/licenses/mit-license.php
30:  * Информация об авторах и лицензиях стороннего кода в составе Joostina CMS: docs/copyrights
31:  *
32:  * @todo       добавить возможность указывать файл, который будет непосредственно подключаться при наступлении события, в нём будет проверяться запрашиваемя функция и возможность её выполнения
33:  * */
34: class joosEvents
35: {
36:     private static $events = array();
37: 
38:     /**
39:      * Добавление функции в общий список обработки
40:      *
41:      * @param string $events_name название обытия
42:      * @param mixed  $function    задача
43:      */
44:     public static function add_events($events_name, $function)
45:     {
46:         // если массива для списка задач на событие не создано - создаём его
47:         if (!isset(self::$events[$events_name])) {
48:             self::$events[$events_name] = array();
49:         }
50:         self::$events[$events_name][] = $function;
51:     }
52: 
53:     /**
54:      * Вызов задач повешанных на событие
55:      *
56:      * @param string $events_name название обытия
57:      */
58:     public static function fire_events($events_name)
59:     {
60:         // задач на собыьтие не создано
61:         if (!isset(self::$events[$events_name])) {
62:             return false;
63:         }
64: 
65:         // задачи на событие есть - выполняем их поочередно
66:         foreach (self::$events[$events_name] as $event) {
67: 
68:             if (is_callable($event)) {
69:                 JDEBUG ? joosDebug::add(sprintf('Запускаем обработку события %s', $events_name)) : null;
70:                 call_user_func_array($event, func_get_args());
71:             }
72:         }
73:     }
74: 
75:     /**
76:      * Проверка наличия созданных задач на событие
77:      *
78:      * @param string $events_name название обытия
79:      *
80:      * @return bool результат наличия событий
81:      */
82:     public static function has_events($event_name)
83:     {
84:         joosDebug::log('Проверка наличия событий :event_name', array(':event_name' => $event_name));
85: 
86:         return (isset(self::$events[$event_name]) && count(self::$events[$event_name]) > 0);
87:     }
88: 
89: }
90: 
Joostina CMS / CMF v2.* API API documentation generated by ApiGen 2.6.1 – Template adapted by @olvlv and Joostina Team