Index: trunk/core/kernel/utility/event.php
===================================================================
diff -u -N
--- trunk/core/kernel/utility/event.php (revision 8605)
+++ trunk/core/kernel/utility/event.php (revision 0)
@@ -1,318 +0,0 @@
-Init($prefix,$special);
- $this->Name = getArrayValue($params,'name');
- }
- elseif ($params && is_string($params)) {
- if (preg_match('/([^.:]*)[.]{0,1}([^:]*):(.*)/', $params, $regs)) {
- $prefix = $regs[1];
- $special = $regs[2];
- if($prefix) $this->Init($prefix,$special);
- $this->Name = $regs[3];
- }
- else {
- trigger_error('Invalid event string '.$params.' should be prefix[.special]:OnEvent ', E_USER_ERROR);
- }
- }
- if (isset($specificParams)) $this->specificParams = $specificParams;
- }
-
- function setEventParam($name,$value)
- {
- $this->specificParams[$name]=$value;
- }
-
- function getEventParam($name)
- {
- $args = func_get_args();
- if (count($args) > 1) {
- array_unshift($args, $this->specificParams);
- return call_user_func_array('getArrayValue', $args); // getArrayValue($this->specificParams, $name);
- }
- return isset($this->specificParams[$name]) ? $this->specificParams[$name] : false;
- }
-
- function getPrefixSpecial($from_submit=false)
- {
- $separator=!$from_submit?'.':'_';
- $ret=$this->Prefix.$separator.$this->Special;
- return rtrim($ret,$separator);
- }
-
- /**
- * Set's pseudo class that differs from
- * the one specified in $Prefix
- *
- * @param string $appendix
- * @access public
- */
- function setPseudoClass($appendix)
- {
- $this->pseudoClass = $this->Prefix.$appendix;
- }
-
- function Init($prefix, $special = '')
- {
- $this->Prefix = $prefix;
- $this->pseudoClass = $prefix; // default value
- $this->Special = $special;
- $this->Prefix_Special = rtrim($this->Prefix.'.'.$this->Special,'.');
- }
-
- /**
- * Returns object used in event
- *
- * @access public
- * @return kDBBase
- */
- function &getObject($params = Array())
- {
- $object =& $this->Application->recallObject($this->Prefix_Special, $this->pseudoClass, $params);
- return $object;
- }
-
- /**
- * Calls passed event by name in current prefix/special environment
- * Called event gets this event as MasterEvent,
- * but its results (status and redirect* properties are copied back to current event)
- *
- * @param string $name EventName to call
- */
- function CallSubEvent($name)
- {
- $child_event = new kEvent();
- $child_event->MasterEvent =& $this;
- $child_event->Prefix = $this->Prefix;
- $child_event->Special = $this->Special;
- $child_event->Prefix_Special = $this->Prefix_Special;
- $child_event->redirect = $this->redirect;
- $child_event->redirect_params = $this->redirect_params;
- $child_event->redirect_script = $this->redirect_script;
- $child_event->Name = $name;
-
- $this->Application->HandleEvent( $child_event );
-
- $this->status = $child_event->status;
- $this->redirect = $child_event->redirect;
- $this->redirect_params = $child_event->redirect_params;
- $this->redirect_script = $child_event->redirect_script;
- }
-
- /**
- * Set's redirect param for event
- *
- * @param string $name
- * @param string $value
- * @access public
- */
- function SetRedirectParam($name, $value)
- {
- $this->redirect_params[$name] = $value;
- }
-
- /**
- * Allows to merge passed redirect params hash with existing ones
- *
- * @param Array $params
- * @access public
- */
- function setRedirectParams($params)
- {
- $this->redirect_params = array_merge_recursive2($this->redirect_params, $params);
- }
-
- /**
- * Returns Master event name if any
- *
- * @return mixed
- * @access public
- */
- function hasMasterEvent()
- {
- return is_object($this->MasterEvent) ? $this->MasterEvent->Name : false;
- }
-
- /**
- * Allows to tell if this event was called some how (e.g. subevent, hook) from event requested
- *
- * @param string $event_key event key in format [prefix[.special]:]event_name
- * @return unknown
- */
- function hasAncestor($event_key)
- {
- $event_manager =& $this->Application->recallObject('EventManager');
- if (strpos($event_key, ':') === false) {
- $event_key = $this->getPrefixSpecial().':'.$event_key;
- }
-
- return $event_manager->eventRunning($event_key);
- }
-
- /**
- * Returns section for current event
- *
- * @return string
- */
- function getSection()
- {
- $perm_section = $this->getEventParam('PermSection');
- if ($perm_section) {
- return $perm_section;
- }
-
- // 1. get section by current top_prefix
- $top_prefix = $this->getEventParam('top_prefix');
- $section = $this->Application->getUnitOption($top_prefix.'.main', 'PermSection');
-
- // 2. check if this section has perm_prefix mapping to other prefix
- $sections_helper =& $this->Application->recallObject('SectionsHelper');
- /* @var $sections_helper kSectionsHelper */
-
- $section_data =& $sections_helper->getSectionData($section);
- if ($section_data && isset($section_data['perm_prefix']) && $section_data['perm_prefix'] != $top_prefix) {
- $this->setEventParam('top_prefix', $section_data['perm_prefix']);
- $section = $this->Application->getUnitOption($section_data['perm_prefix'].'.main', 'PermSection');
- }
-
- if (!$section) {
- if ($this->Application->isDebugMode()) {
- $this->Application->Debugger->appendTrace();
- }
- trigger_error('Permission section not specified for prefix '.$top_prefix.'', E_USER_ERROR);
- }
- return $section;
- }
-
- }
-
-?>
\ No newline at end of file