Source of file EnvSiteConfigExtension.php
Size: 1,335 Bytes - Last Modified: 2021-12-23T10:00:25+00:00
/var/www/docs.ssmods.com/process/src/src/Extensions/EnvSiteConfigExtension.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | <?php namespace LeKoala\DevToolkit\Extensions; use Exception; use SilverStripe\Forms\FieldList; use SilverStripe\Control\Director; use SilverStripe\ORM\DataExtension; use SilverStripe\Forms\TextareaField; use SilverStripe\Security\Permission; /** * Edit the .env file from the SiteConfig screen * * @author lekoala */ class EnvSiteConfigExtension extends DataExtension { public function updateCMSFields(FieldList $fields) { $SS_ENVIRONMENT_FILE = Director::baseFolder() . '/.env'; if ($SS_ENVIRONMENT_FILE && Permission::check('ADMIN')) { $class = TextareaField::class; $fields->addFieldToTab( 'Root.Env', $field = $class::create( 'SS_Environment', null, file_get_contents($SS_ENVIRONMENT_FILE) ) ); if (!is_writable($SS_ENVIRONMENT_FILE)) { $field->setReadonly(true); } } } public function setSS_Environment($v) { $SS_ENVIRONMENT_FILE = Director::baseFolder() . '/.env'; if (!is_writable($SS_ENVIRONMENT_FILE)) { throw new Exception('Environment file must be writable'); } else { return file_put_contents($SS_ENVIRONMENT_FILE, $v); } } } |