Author: jablko
Date: 2008-11-21 10:41:55 -0800 (Fri, 21 Nov 2008)
New Revision: 1613

Added:
   trunk/qubit/plugins/sfInstallPlugin/config/
   
trunk/qubit/plugins/sfInstallPlugin/config/sfInstallPluginConfiguration.class.php
   trunk/qubit/plugins/sfTranslatePlugin/config/
   
trunk/qubit/plugins/sfTranslatePlugin/config/sfTranslatePluginConfiguration.class.php
Modified:
   trunk/qubit/apps/qubit/config/settings.yml.tmpl
   trunk/qubit/config/
   trunk/qubit/config/ProjectConfiguration.class.php
   trunk/qubit/index.php
   trunk/qubit/lib/QubitTransactionFilter.class.php
   trunk/qubit/lib/vendor/symfony/lib/database/sfDatabaseManager.class.php
   trunk/qubit/plugins/sfInstallPlugin/lib/sfInstall.class.php
   
trunk/qubit/plugins/sfInstallPlugin/modules/sfInstallPlugin/actions/configureAction.class.php
Log:
First crack at updating sfInstallPlugin to symfony 1.2.
Enable sfInstallPlugin and sfTranslatePlugin modules in plugin configuration 
instead of settings.yml, to avoid fooling with enabled_modules configuration in 
the install frontend.
Generate and parse new DSN format.
Attempt to make databases.yml optional, to avoid fooling with use_database 
configuration in the install frontend.


Modified: trunk/qubit/apps/qubit/config/settings.yml.tmpl
===================================================================
--- trunk/qubit/apps/qubit/config/settings.yml.tmpl     2008-11-21 01:12:27 UTC 
(rev 1612)
+++ trunk/qubit/apps/qubit/config/settings.yml.tmpl     2008-11-21 18:41:55 UTC 
(rev 1613)
@@ -77,7 +77,7 @@
     standard_helpers:       [Partial, Cache, Form, I18N, Object, Qubit]
 #
 #    # Activated modules from plugins or from the symfony core
-    enabled_modules:        [default, sfInstallPlugin, sfTranslatePlugin]
+#    enabled_modules:        [default]
 #
 #    # Charset used for the response
 #    charset:                utf-8


Property changes on: trunk/qubit/config
___________________________________________________________________
Modified: svn:ignore
   - databases.yml
propel.ini
generated-schema-transformed.xml

   + databases.yml
propel.ini


Modified: trunk/qubit/config/ProjectConfiguration.class.php
===================================================================
--- trunk/qubit/config/ProjectConfiguration.class.php   2008-11-21 01:12:27 UTC 
(rev 1612)
+++ trunk/qubit/config/ProjectConfiguration.class.php   2008-11-21 18:41:55 UTC 
(rev 1613)
@@ -7,6 +7,6 @@
 {
   public function setup()
   {
-    $this->enablePlugins(array('sfCompat10Plugin', 'sfHistoryPlugin', 
'sfLucenePlugin', 'sfSearchPlugin', 'sfTranslatePlugin'));
+    $this->enablePlugins(array('sfCompat10Plugin', 'sfHistoryPlugin', 
'sfInstallPlugin', 'sfLucenePlugin', 'sfSearchPlugin', 'sfTranslatePlugin'));
   }
-}
\ No newline at end of file
+}

Modified: trunk/qubit/index.php
===================================================================
--- trunk/qubit/index.php       2008-11-21 01:12:27 UTC (rev 1612)
+++ trunk/qubit/index.php       2008-11-21 18:41:55 UTC (rev 1613)
@@ -1,5 +1,11 @@
 <?php
 
+// Only the web directory is meant to be web accessible.  The production
+// frontend is in the web directory, which is distributed as a sibling of this
+// file.  If this file is web accessible, then the URL of the web directory is
+// probably a sibling of the URL of this file.  Try to redirect the web browser
+// to the production frontend.
+
 $path = preg_replace('/\/[^\/]+\.php5?$/', null, 
isset($_SERVER['SCRIPT_NAME']) ? $_SERVER['SCRIPT_NAME'] : 
(isset($_SERVER['ORIG_SCRIPT_NAME']) ? $_SERVER['ORIG_SCRIPT_NAME'] : null));
 
 $webUrl = $path.'/web/index.php';

Modified: trunk/qubit/lib/QubitTransactionFilter.class.php
===================================================================
--- trunk/qubit/lib/QubitTransactionFilter.class.php    2008-11-21 01:12:27 UTC 
(rev 1612)
+++ trunk/qubit/lib/QubitTransactionFilter.class.php    2008-11-21 18:41:55 UTC 
(rev 1613)
@@ -21,7 +21,8 @@
 
 class QubitTransactionFilter extends sfFilter
 {
-  protected static $connection = null;
+  protected static
+    $connection = null;
 
   public static function getConnection()
   {

Modified: 
trunk/qubit/lib/vendor/symfony/lib/database/sfDatabaseManager.class.php
===================================================================
--- trunk/qubit/lib/vendor/symfony/lib/database/sfDatabaseManager.class.php     
2008-11-21 01:12:27 UTC (rev 1612)
+++ trunk/qubit/lib/vendor/symfony/lib/database/sfDatabaseManager.class.php     
2008-11-21 18:41:55 UTC (rev 1613)
@@ -64,12 +64,12 @@
   {
     if ($this->configuration instanceof sfApplicationConfiguration)
     {
-      $databases = 
include($this->configuration->getConfigCache()->checkConfig('config/databases.yml'));
+      $databases = 
include($this->configuration->getConfigCache()->checkConfig('config/databases.yml',
 true));
     }
     else
     {
       $configHandler = new sfDatabaseConfigHandler();
-      $databases = 
$configHandler->evaluate(array($this->configuration->getRootDir().'/config/databases.yml'));
+      $databases = 
$configHandler->evaluate(array($this->configuration->getRootDir().'/config/databases.yml',
 true));
     }
 
     foreach ($databases as $name => $database)

Added: 
trunk/qubit/plugins/sfInstallPlugin/config/sfInstallPluginConfiguration.class.php
===================================================================
--- 
trunk/qubit/plugins/sfInstallPlugin/config/sfInstallPluginConfiguration.class.php
                           (rev 0)
+++ 
trunk/qubit/plugins/sfInstallPlugin/config/sfInstallPluginConfiguration.class.php
   2008-11-21 18:41:55 UTC (rev 1613)
@@ -0,0 +1,22 @@
+<?php
+
+/**
+ * sfInstallPlugin configuration.
+ * 
+ * @package     sfInstallPlugin
+ * @subpackage  config
+ * @author      Your name here
+ * @version     SVN: $Id$
+ */
+class sfInstallPluginConfiguration extends sfPluginConfiguration
+{
+  /**
+   * @see sfPluginConfiguration
+   */
+  public function initialize()
+  {
+    $enabledModules = sfConfig::get('sf_enabled_modules');
+    $enabledModules[] = 'sfInstallPlugin';
+    sfConfig::set('sf_enabled_modules', $enabledModules);
+  }
+}


Property changes on: 
trunk/qubit/plugins/sfInstallPlugin/config/sfInstallPluginConfiguration.class.php
___________________________________________________________________
Added: svn:keywords
   + Author Id Revision
Added: svn:eol-style
   + native

Modified: trunk/qubit/plugins/sfInstallPlugin/lib/sfInstall.class.php
===================================================================
--- trunk/qubit/plugins/sfInstallPlugin/lib/sfInstall.class.php 2008-11-21 
01:12:27 UTC (rev 1612)
+++ trunk/qubit/plugins/sfInstallPlugin/lib/sfInstall.class.php 2008-11-21 
18:41:55 UTC (rev 1613)
@@ -460,27 +460,25 @@
   {
     $database = array();
 
-    $dsn = 'mysql://';
+    $arguments = array();
+    $arguments[] = 'mysql:host=localhost;dbname='.$databaseName;
     if (strlen($databaseUsername) > 0)
     {
-      $usernameAndPassword = $databaseUsername;
+      $arguments[] = $databaseUsername;
+
       if (strlen($databasePassword) > 0)
       {
-        $usernameAndPassword .= ':'.$databasePassword;
+        $arguments[] = $databasePassword;
       }
-
-      $dsn .= $usernameAndPassword.'@';
     }
 
-    $dsn .= 'localhost/'.$databaseName;
-
     $dispatcher = sfContext::getInstance()->getEventDispatcher();
     $formatter = new sfAnsiColorFormatter;
 
     chdir(sfConfig::get('sf_root_dir'));
 
     $configureDatabase = new sfConfigureDatabaseTask($dispatcher, $formatter);
-    $configureDatabase->run(array($dsn));
+    $configureDatabase->run($arguments);
 
     // FIXME: By instantiating a new application configuration the cache clear
     // task may change these settings, leading to bugs in code which expects
@@ -515,13 +513,18 @@
 
   public static function insertSql()
   {
+    $arguments = array();
+
+    $options = array();
+    $options[] = 'no-confirmation';
+
     $dispatcher = sfContext::getInstance()->getEventDispatcher();
     $formatter = new sfAnsiColorFormatter;
 
     chdir(sfConfig::get('sf_root_dir'));
 
     $insertSql = new sfPropelInsertSqlTask($dispatcher, $formatter);
-    $insertSql->run();
+    $insertSql->run($arguments, $options);
   }
 
   public static function loadData()
@@ -532,6 +535,6 @@
     chdir(sfConfig::get('sf_root_dir'));
 
     $loadData = new sfPropelLoadDataTask($dispatcher, $formatter);
-    $loadData->run(array('qubit'));
+    $loadData->run();
   }
 }

Modified: 
trunk/qubit/plugins/sfInstallPlugin/modules/sfInstallPlugin/actions/configureAction.class.php
===================================================================
--- 
trunk/qubit/plugins/sfInstallPlugin/modules/sfInstallPlugin/actions/configureAction.class.php
       2008-11-21 01:12:27 UTC (rev 1612)
+++ 
trunk/qubit/plugins/sfInstallPlugin/modules/sfInstallPlugin/actions/configureAction.class.php
       2008-11-21 18:41:55 UTC (rev 1613)
@@ -24,10 +24,22 @@
     }
     else
     {
-      $configuration = sfPropelDatabase::getConfiguration();
-      $this->form->setDefault('database_name', 
$configuration['propel']['datasources']['propel']['connection']['database']);
-      $this->form->setDefault('database_username', 
$configuration['propel']['datasources']['propel']['connection']['username']);
-      $this->form->setDefault('database_password', 
$configuration['propel']['datasources']['propel']['connection']['password']);
+      // TODO: Can we avoid hardcoding the database name?
+      $database = $this->context->getDatabaseManager()->getDatabase('propel');
+
+      // TODO: This should be handled by sfPdoDatabase::parseDsn()
+      $pattern = '/([^=]*)=([^;]*);?/';
+      $subject = preg_replace('/[^:]*:/', null, 
$database->getParameter('dsn'));
+      if (false === preg_match_all($pattern, $subject, $matches))
+      {
+        // TODO: Error handling
+      }
+
+      $parameters = array_combine($matches[1], $matches[2]);
+
+      $this->form->setDefault('database_name', $parameters['dbname']);
+      $this->form->setDefault('database_username', 
$database->getParameter('username'));
+      $this->form->setDefault('database_password', 
$database->getParameter('password'));
     }
   }
 }

Added: 
trunk/qubit/plugins/sfTranslatePlugin/config/sfTranslatePluginConfiguration.class.php
===================================================================
--- 
trunk/qubit/plugins/sfTranslatePlugin/config/sfTranslatePluginConfiguration.class.php
                               (rev 0)
+++ 
trunk/qubit/plugins/sfTranslatePlugin/config/sfTranslatePluginConfiguration.class.php
       2008-11-21 18:41:55 UTC (rev 1613)
@@ -0,0 +1,22 @@
+<?php
+
+/**
+ * sfTranslatePlugin configuration.
+ * 
+ * @package     sfTranslatePlugin
+ * @subpackage  config
+ * @author      Your name here
+ * @version     SVN: $Id$
+ */
+class sfTranslatePluginConfiguration extends sfPluginConfiguration
+{
+  /**
+   * @see sfPluginConfiguration
+   */
+  public function initialize()
+  {
+    $enabledModules = sfConfig::get('sf_enabled_modules');
+    $enabledModules[] = 'sfTranslatePlugin';
+    sfConfig::set('sf_enabled_modules', $enabledModules);
+  }
+}


Property changes on: 
trunk/qubit/plugins/sfTranslatePlugin/config/sfTranslatePluginConfiguration.class.php
___________________________________________________________________
Added: svn:keywords
   + Author Id Revision
Added: svn:eol-style
   + native


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Qubit Toolkit Commits" 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.ca/group/qubit-commits?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to