/** * Return the storage class for the given form. * @param string $form_name * @param boolean $no_cache Check from the source, not the cached array * @return string */ public static function getStorage($form_name, $no_cache = false) { if ($form_name instanceof I2CE_Form) { $form_name = $form_name->getName(); } if (!is_array(self::$storage)) { self::$storage = array(); } if ($no_cache || !array_key_exists($form_name, self::$storage)) { $type = 'entry'; $form_config = I2CE::getConfig()->traverse("/modules/forms/"); if (!$form_config->setIfIsSet($type, "forms/" . $form_name . "/storage")) { $form_config->setIfIsSet($type, "storage/default"); } $not_assignable = false; I2CE::getConfig()->setIfIsSet($not_assignable, "/modules/forms/storage/not_assignable/{$type}"); if ($not_assignable) { I2CE::raiseError("Invalid form storage type was used ({$type}). You must set the storage to something else."); return ''; } else { self::$storage[$form_name] = $type; } } return self::$storage[$form_name]; }