/** * Banner management screen. */ public function Banner() { $this->Permission('Garden.Settings.Manage'); $this->AddSideMenu('dashboard/settings/banner'); $this->Title(T('Banner')); $Validation = new Gdn_Validation(); $ConfigurationModel = new Gdn_ConfigurationModel($Validation); $ConfigurationModel->SetField(array('Garden.Title')); // Set the model on the form. $this->Form->SetModel($ConfigurationModel); // If seeing the form for the first time... if ($this->Form->AuthenticatedPostBack() === FALSE) { // Apply the config settings to the form. $this->Form->SetData($ConfigurationModel->Data); } else { // Define some validation rules for the fields being saved $ConfigurationModel->Validation->ApplyRule('Garden.Title', 'Required'); if ($this->Form->Save() !== FALSE) { $Upload = new Gdn_Upload(); try { // Validate the upload $TmpImage = $Upload->ValidateUpload('Logo', FALSE); if ($TmpImage) { // Generate the target image name $TargetImage = $Upload->GenerateTargetName(PATH_ROOT . DS . 'uploads'); $ImageBaseName = pathinfo($TargetImage, PATHINFO_BASENAME); // Delete any previously uploaded images @unlink(PATH_ROOT . DS . C('Garden.Logo', '')); // Save the uploaded image $Upload->SaveAs($TmpImage, PATH_ROOT . DS . 'uploads' . DS . $ImageBaseName); } } catch (Exception $ex) { $this->Form->AddError($ex->getMessage()); } // If there were no errors, save the path to the logo in the config if ($this->Form->ErrorCount() == 0 && $Upload->GetUploadedFileName() != '') { SaveToConfig('Garden.Logo', 'uploads' . DS . $ImageBaseName); } $this->StatusMessage = T("Your settings have been saved."); } } $this->Render(); }