Author: Jonathan.Wage
Date: 2010-02-03 00:55:30 +0100 (Wed, 03 Feb 2010)
New Revision: 27461

Modified:
   
plugins/sfSympalPlugin/trunk/lib/plugins/sfSympalAdminPlugin/config/sfSympalAdminPluginConfiguration.class.php
   
plugins/sfSympalPlugin/trunk/lib/plugins/sfSympalAdminPlugin/lib/form/sfSympalConfigForm.class.php
Log:
[1.4][sfSympalPlugin][1.0] Adding ability to choose what languages you can use 
in Sympal from the admin system settings


Modified: 
plugins/sfSympalPlugin/trunk/lib/plugins/sfSympalAdminPlugin/config/sfSympalAdminPluginConfiguration.class.php
===================================================================
--- 
plugins/sfSympalPlugin/trunk/lib/plugins/sfSympalAdminPlugin/config/sfSympalAdminPluginConfiguration.class.php
      2010-02-02 23:30:45 UTC (rev 27460)
+++ 
plugins/sfSympalPlugin/trunk/lib/plugins/sfSympalAdminPlugin/config/sfSympalAdminPluginConfiguration.class.php
      2010-02-02 23:55:30 UTC (rev 27461)
@@ -105,18 +105,38 @@
   {
     $form = $event->getSubject();
 
-    $array = sfSympalFormToolkit::getThemeWidgetAndValidator();
-    
-    $languageForm = new sfFormLanguage(
-      sfContext::getInstance()->getUser(), 
-      array('languages' => sfSympalConfig::getLanguageCodes())
-    );
-    $widgetSchema = $languageForm->getWidgetSchema();
-    $validatorSchema = $languageForm->getValidatorSchema();
+    if (sfSympalConfig::isI18nEnabled())
+    {
+      $cultures = sfCultureInfo::getCultures(sfCultureInfo::NEUTRAL);
+      $languages = array();
+      foreach ($cultures as $key => $value)
+      {
+        $formatted = format_language($value);;
+        if ($formatted)
+        {
+          $languages[$value] = $formatted;
+        }
+      }
+      asort($languages);
+      $widget = new sfWidgetFormChoice(array('multiple' => true, 'choices' => 
$languages));
+      $validator = new sfValidatorChoice(array('multiple' => true, 'choices' 
=> array_keys($languages)));
+      $form->addSetting(null, 'language_codes', 'Available Cultures', $widget, 
$validator);
 
-    $form->addSetting(null, 'default_culture', 'Default Culture', 
$widgetSchema['language'], $validatorSchema['language']);
+      $languageForm = new sfFormLanguage(
+        sfContext::getInstance()->getUser(), 
+        array('languages' => sfSympalConfig::getLanguageCodes())
+      );
+      $widgetSchema = $languageForm->getWidgetSchema();
+      $validatorSchema = $languageForm->getValidatorSchema();
+
+      $form->addSetting(null, 'default_culture', 'Default Culture', 
$widgetSchema['language'], $validatorSchema['language']);
+    }
+
     $form->addSetting(null, 'rows_per_page', 'Rows Per Page');
+
+    $array = sfSympalFormToolkit::getThemeWidgetAndValidator();
     $form->addSetting(null, 'default_theme', 'Default Theme', 
$array['widget'], $array['validator']);
+
     $form->addSetting(null, 'default_rendering_module', 'Default Rendering 
Module');
     $form->addSetting(null, 'default_rendering_action', 'Default Rendering 
Action');
     $form->addSetting(null, 'recaptcha_public_key', 'Recaptcha Public Key');

Modified: 
plugins/sfSympalPlugin/trunk/lib/plugins/sfSympalAdminPlugin/lib/form/sfSympalConfigForm.class.php
===================================================================
--- 
plugins/sfSympalPlugin/trunk/lib/plugins/sfSympalAdminPlugin/lib/form/sfSympalConfigForm.class.php
  2010-02-02 23:30:45 UTC (rev 27460)
+++ 
plugins/sfSympalPlugin/trunk/lib/plugins/sfSympalAdminPlugin/lib/form/sfSympalConfigForm.class.php
  2010-02-02 23:55:30 UTC (rev 27461)
@@ -115,6 +115,8 @@
 
     $array = array();
     $array['all']['sympal_config'] = array();
+
+    // Add only the values that have changed from the old default values
     foreach ($new as $key => $value)
     {
       if ($value != $old[$key])
@@ -123,10 +125,22 @@
       }
     }
 
-    return sfToolkit::arrayDeepMerge(
+    // Merge in existing values from the current app.yml file
+    $array = sfToolkit::arrayDeepMerge(
       sfYaml::load(sfConfig::get('sf_app_dir').'/config/app.yml'),
       $array
     );
+
+    // Remove values that don't exist anymore
+    foreach ($array['all']['sympal_config'] as $key => $value)
+    {
+      if (!array_key_exists($key, $new))
+      {
+        unset($array['all']['sympal_config'][$key]);
+      }
+    }
+
+    return $array;
   }
 
   public function getGroups()

-- 
You received this message because you are subscribed to the Google Groups 
"symfony SVN" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/symfony-svn?hl=en.

Reply via email to