public static function smart_settings($settings) { if (!is_array($settings)) { return FALSE; } // If a setting is given, it is automatically enabled foreach ($settings as $name => $value) { if (($setting = CrayonGlobalSettings::get($name)) !== FALSE && is_bool($setting->def())) { $value = CrayonUtil::str_to_bool($value); } if ($name == 'min-height' || $name == 'max-height' || $name == 'height') { self::smart_hw($name, CrayonSettings::HEIGHT_SET, CrayonSettings::HEIGHT_MODE, CrayonSettings::HEIGHT_UNIT, $settings); } else { if ($name == 'min-width' || $name == 'max-width' || $name == 'width') { self::smart_hw($name, CrayonSettings::WIDTH_SET, CrayonSettings::WIDTH_MODE, CrayonSettings::WIDTH_UNIT, $settings); } else { if ($name == CrayonSettings::FONT_SIZE) { $settings[CrayonSettings::FONT_SIZE_ENABLE] = TRUE; } else { if ($name == CrayonSettings::TOP_MARGIN) { $settings[CrayonSettings::TOP_SET] = TRUE; } else { if ($name == CrayonSettings::LEFT_MARGIN) { $settings[CrayonSettings::LEFT_SET] = TRUE; } else { if ($name == CrayonSettings::BOTTOM_MARGIN) { $settings[CrayonSettings::BOTTOM_SET] = TRUE; } else { if ($name == CrayonSettings::RIGHT_MARGIN) { $settings[CrayonSettings::RIGHT_SET] = TRUE; } else { if ($name == CrayonSettings::ERROR_MSG) { $settings[CrayonSettings::ERROR_MSG_SHOW] = TRUE; } else { if ($name == CrayonSettings::H_ALIGN) { $settings[CrayonSettings::FLOAT_ENABLE] = TRUE; $value = CrayonUtil::tlower($value); $values = array('none' => 0, 'left' => 1, 'center' => 2, 'right' => 3); if (array_key_exists($value, $values)) { $settings[CrayonSettings::H_ALIGN] = $values[$value]; } } else { if ($name == CrayonSettings::SHOW_LANG) { $value = CrayonUtil::tlower($value); $values = array('found' => 0, 'always' => 1, 'true' => 1, 'never' => 2, 'false' => 2); if (array_key_exists($value, $values)) { $settings[CrayonSettings::SHOW_LANG] = $values[$value]; } } else { if ($name == CrayonSettings::TOOLBAR) { if (CrayonUtil::tlower($value) == 'always') { $settings[CrayonSettings::TOOLBAR] = 1; } else { if (CrayonUtil::str_to_bool($value) === FALSE) { $settings[CrayonSettings::TOOLBAR] = 2; } } } } } } } } } } } } } } return $settings; }