Automatically set the application install date option value
authorMatthias Schmidt <gravatronics@live.com>
Tue, 8 Jul 2014 18:05:42 +0000 (20:05 +0200)
committerMatthias Schmidt <gravatronics@live.com>
Tue, 8 Jul 2014 18:05:42 +0000 (20:05 +0200)
Hidden integer options of an application with name "app_install_date" will automatically get the current timestamp as option value.

wcfsetup/install/files/lib/system/package/plugin/OptionPackageInstallationPlugin.class.php

index 57be733201a379616ff13e9dc9489455421f2c78..d6ee129ce331a8118d56e79ed38ee5476d37e740 100644 (file)
@@ -2,6 +2,7 @@
 namespace wcf\system\package\plugin;
 use wcf\data\option\Option;
 use wcf\data\option\OptionEditor;
+use wcf\data\package\Package;
 use wcf\system\exception\SystemException;
 use wcf\system\WCF;
 
@@ -85,6 +86,14 @@ class OptionPackageInstallationPlugin extends AbstractOptionPackageInstallationP
                
                // result was 'false' thus create a new item
                if (!$row) {
+                       // set the value of 'app_install_date' to the current timestamp
+                       if ($hidden && $optionType == 'integer' && $this->installation->getPackage()->isApplication) {
+                               $abbreviation = Package::getAbbreviation($this->installation->getPackage()->package);
+                               if ($optionName == $abbreviation.'_install_date') {
+                                       $defaultValue = TIME_NOW;
+                               }
+                       }
+                       
                        $data['optionName'] = $optionName;
                        $data['packageID'] = $this->installation->getPackageID();
                        $data['optionValue'] = $defaultValue;