Init($prefix,$special); $this->Name = getArrayValue($params,'name'); } } function setEventParam($name,$value) { $this->specificParams[$name]=$value; } function getEventParam($name) { return getArrayValue($this->specificParams, $name); } 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() { return $this->Application->recallObject($this->Prefix_Special,$this->pseudoClass); } /** * 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; } function SetRedirectParam($name, $value) { $this->redirect_params = array_merge_recursive2( $this->redirect_params, Array($name => $value) ); } } ?>