/** * Install modulevars for a module. $vars is an array of $key => array($default_value, $type, $min, $max). * @param GWF_Module $module * @param array $vars * return error message or '' */ public static function installVars(GWF_Module $module, array $vars) { $old_vars = $module->getModuleVars(); $id = $module->getID(); $var_t = GDO::table('GWF_ModuleVar'); # TODO: SAFE CLEANUP // if (false === $var_t->deleteWhere("mv_mid=$id")) { // return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); // } $back = ''; foreach ($vars as $key => $d) { $value = isset($old_vars[$key]) ? $old_vars[$key] : $d[0]; $type = $d[1]; $min = isset($d[2]) ? $d[2] : NULL; $max = isset($d[3]) ? $d[3] : NULL; if (false === ($val = self::getVarValue($value, $type, $min, $max))) { $back .= GWF_HTML::err('ERR_PARAMETER', array(__FILE__, __LINE__, '$key=' . $key . ', $value=' . htmlspecialchars($value) . ', $type=' . $type)); continue; } if (false === $var_t->insertAssoc(array('mv_mid' => $id, 'mv_key' => $key, 'mv_val' => $val, 'mv_value' => $value, 'mv_type' => $type, 'mv_min' => $min, 'mv_max' => $max), true)) { $back .= GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); continue; } } return $back; }