Fixed request handling
authorAlexander Ebert <ebert@woltlab.com>
Thu, 6 Oct 2011 19:02:09 +0000 (21:02 +0200)
committerAlexander Ebert <ebert@woltlab.com>
Thu, 6 Oct 2011 19:02:09 +0000 (21:02 +0200)
wcfsetup/install/files/lib/system/form/container/MultipleSelectionFormElementContainer.class.php
wcfsetup/install/files/lib/system/form/container/SelectionFormElementContainer.class.php
wcfsetup/install/files/lib/system/form/element/AbstractNamedFormElement.class.php
wcfsetup/install/files/lib/system/form/element/MultipleSelectionFormElement.class.php
wcfsetup/install/files/lib/system/package/PackageInstallationDispatcher.class.php

index 425d550bdfc4581176dac34a995f545b1e0f9855..c0d27e38c8d6681f28f7a9bc908099c4e28b742d 100644 (file)
@@ -27,15 +27,6 @@ class MultipleSelectionFormElementContainer extends SelectionFormElementContaine
                $this->value = $value;
        }
        
-       /**
-        * Returns container value.
-        *
-        * @return      array
-        */
-       public function getValue() {
-               return $this->value;
-       }
-       
        /**
         * @see wcf\system\form\IFormElementContainer::getHTML()
         */
index 1380ab033d78e6e45655ac6f31fe5541ec46006f..b6140acbf7317e9fa3d601cc75c6a5a599906877 100644 (file)
@@ -1,5 +1,6 @@
 <?php
 namespace wcf\system\form\container;
+use wcf\util\StringUtil;
 
 /**
  * Basic implementation for form selection element containers.
index 4559bf02a561a0d83215e890064d10023e38336e..56fbfe66eb9f30c4b2127be1d104bd1c8f71bf37 100644 (file)
@@ -49,6 +49,9 @@ abstract class AbstractNamedFormElement extends AbstractFormElement {
         * @param       string          $value
         */
        public function setValue($value) {
+               if (!is_string($value)) {
+                       die(print_r($value, true));
+               }
                $this->value = StringUtil::trim($value);
        }
        
index cbd009815728543642ca76a62ec7b10d918f2110..31f0d65d10669324ca4765abf9e12b05f18223d7 100644 (file)
@@ -1,5 +1,6 @@
 <?php
 namespace wcf\system\form\element;
+use wcf\system\exception\SystemException;
 
 /**
  * Provides a checkbox form element.
@@ -12,6 +13,18 @@ namespace wcf\system\form\element;
  * @category   Community Framework
  */
 class MultipleSelectionFormElement extends AbstractNamedFormElement {
+       /**
+        * @see wcf\system\form\element\AbstractNamedFormElement::setValue()
+        */
+       public function setValue($value) {
+               if (!is_array($value)) {
+                       parent::setValue($value);
+               }
+               else {
+                       $this->value = array_map(array('wcf\util\StringUtil', 'trim'), $value);
+               }
+       }
+       
        /**
         * @see wcf\system\form\IFormElement::getHTML()
         */
index 9da7230fb4aa7dda48803ae93159c741023d5bd9..ed565dcd6123e9914a1c518b3d05455970789785 100644 (file)
@@ -385,6 +385,7 @@ class PackageInstallationDispatcher {
         */
        protected function promptPackageDir() {
                if (!PackageInstallationFormManager::findForm($this->queue, 'packageDir')) {
+                       
                        $container = new container\GroupFormElementContainer();
                        $packageDir = new element\TextInputFormElement($container);
                        $packageDir->setName('packageDir');
@@ -423,9 +424,11 @@ class PackageInstallationDispatcher {
        protected function promptOptionalPackages(array $packages) {
                if (!PackageInstallationFormManager::findForm($this->queue, 'optionalPackages')) {
                        $container = new container\MultipleSelectionFormElementContainer();
+                       $container->setName('optionalPackages');
                        
                        foreach ($packages as $package) {
                                $optionalPackage = new element\MultipleSelectionFormElement($container);
+                               $optionalPackage->setName('optionalPackages');
                                $optionalPackage->setLabel($package['packageName']);
                                $optionalPackage->setValue($package['package']);
                                
@@ -443,6 +446,12 @@ class PackageInstallationDispatcher {
                        $document->handleRequest();
                        
                        $packages = $document->getValue('optionalPackages');
+                       if (!empty($packages)) {
+                               foreach ($packages as $package) {
+                                       // haha, this is going to be mad
+                                       
+                               }
+                       }
                        die('<pre>'.print_r($packages, true));
                }
        }