/** * Pre process field args before creating the field object * @param string $field * @param array &$args */ protected function preProcessFieldArgs($field, &$args) { parent::preProcessFieldArgs($field, $args); if (array_key_exists('meta', $args) && array_key_exists('add_limit_module', $args['meta'])) { $mod_factory = I2CE_ModuleFactory::instance(); foreach ($args['meta']['add_limit_module'] as $module => $method) { if ($mod_factory->isEnabled($module)) { $mod_class = $mod_factory->getClass($module); if (!$mod_class->_hasMethod($method)) { I2CE::raiseError("Cannot access method {$method} of {$module} when " . $this->getName() . "." . $field . " is trying to add limits from it."); } else { $args['meta']['limits_add'][$module] = $mod_class->{$method}($this, $args); $args['meta']['enable_limits_add'][$module] = 1; } } } } }