Jump to content

Including modifiers when extending nodes

From NusaATK
Revision as of 15:29, 23 November 2006 by Juneih (talk | contribs)

ATK Howto: Including modifiers when extending nodes

Complexity: easy
Author: June Henriksen <juneih@linpro.no>

List of other Howto's

This howto explains how you can include modifiers when you extend a node.

All modifiers added to a node will be run in the node's init function. Which modifiers that runs however, depends on the m_type of a node, which will be different for any node that extends it. In order to have the modifiers run, some changes has to be made in the extended nodes init node.

An example init_node:

function init()
 {
   $ret = parent::init();
   $oldtype = $this->m_type;
   $oldmodule= $this->m_module;
   $this->m_type='hours';
   $this->m_module='timereg';
   global $g_modifiers;
   if (isset($g_modifiers[$this->atknodetype()]))
   {
     foreach ($g_modifiers[$this->atknodetype()] as $modulename)
     {
       $module = &getModule($modulename);
       $module->modifier($this);
     }
   }
   $this->m_module=$oldmodule;
   $this->m_type = $oldtype;
   return $ret;
 }


--juneih 16:29, 23 November 2006 (CEST)