コード例 #1
0
 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;
 }