diff --git a/core/Constants.php b/core/Constants.php index 92d6b207f..94a67f0e4 100644 --- a/core/Constants.php +++ b/core/Constants.php @@ -111,7 +111,7 @@ if(!defined('TRUSTED_PROXY')) { */ if(!isset($_SERVER['HTTP_HOST'])) { // HTTP_HOST, REQUEST_PORT, SCRIPT_NAME, and PHP_SELF - global $_FILE_TO_URL_MAPPING; + global $_FILE_TO_URL_MAPPING; if(isset($_FILE_TO_URL_MAPPING)) { $fullPath = $testPath = realpath($_SERVER['SCRIPT_FILENAME']); while($testPath && $testPath != '/' && !preg_match('/^[A-Z]:\\\\$/', $testPath)) { @@ -159,7 +159,7 @@ if(!isset($_SERVER['HTTP_HOST'])) { $trustedProxyHeader = (defined('SS_TRUSTED_PROXY_HOST_HEADER')) ? SS_TRUSTED_PROXY_HOST_HEADER : 'HTTP_X_FORWARDED_HOST'; - + if (TRUSTED_PROXY && !empty($_SERVER[$trustedProxyHeader])) { // Get the first host, in case there's multiple separated through commas $_SERVER['HTTP_HOST'] = strtok($_SERVER[$trustedProxyHeader], ','); diff --git a/core/manifest/ConfigManifest.php b/core/manifest/ConfigManifest.php index 40a4f540d..ad15bc43b 100644 --- a/core/manifest/ConfigManifest.php +++ b/core/manifest/ConfigManifest.php @@ -250,7 +250,7 @@ class SS_ConfigManifest { // Keep track of all the modules we've seen $this->addModule(dirname(dirname($pathname))); - + $parser = new Parser(); // The base header diff --git a/dev/DevelopmentAdmin.php b/dev/DevelopmentAdmin.php index 55584cb20..d3553e824 100644 --- a/dev/DevelopmentAdmin.php +++ b/dev/DevelopmentAdmin.php @@ -2,7 +2,7 @@ /** * Base class for development tools. - * + * * Configured in framework/_config/dev.yml, with the config key registeredControllers being * used to generate the list of links for /dev. * @@ -21,9 +21,9 @@ class DevelopmentAdmin extends Controller { 'generatesecuretoken' => 'generatesecuretoken', '$Action' => 'runRegisteredController', ); - - private static $allowed_actions = array( - 'index', + + private static $allowed_actions = array( + 'index', 'buildDefaults', 'runRegisteredController', 'generatesecuretoken', @@ -110,17 +110,17 @@ class DevelopmentAdmin extends Controller { public function runRegisteredController(SS_HTTPRequest $request){ $controllerClass = null; - + $baseUrlPart = $request->param('Action'); $reg = Config::inst()->get(__CLASS__, 'registered_controllers'); if(isset($reg[$baseUrlPart])){ $controllerClass = $reg[$baseUrlPart]['controller']; } - + if($controllerClass && class_exists($controllerClass)){ return $controllerClass::create(); } - + $msg = 'Error: no controller registered in '.__CLASS__.' for: '.$request->param('Action'); if(Director::is_cli()){ // in CLI we cant use httpError because of a bug with stuff being in the output already, see DevAdminControllerTest @@ -130,9 +130,9 @@ class DevelopmentAdmin extends Controller { } } - - - + + + /* * Internal methods */ @@ -142,7 +142,7 @@ class DevelopmentAdmin extends Controller { */ protected static function get_links(){ $links = array(); - + $reg = Config::inst()->get(__CLASS__, 'registered_controllers'); foreach($reg as $registeredController){ foreach($registeredController['links'] as $url => $desc){ @@ -154,18 +154,18 @@ class DevelopmentAdmin extends Controller { protected function getRegisteredController($baseUrlPart){ $reg = Config::inst()->get(__CLASS__, 'registered_controllers'); - + if(isset($reg[$baseUrlPart])){ $controllerClass = $reg[$baseUrlPart]['controller']; return $controllerClass; } - + return null; } - - - - + + + + /* * Unregistered (hidden) actions */ diff --git a/dev/YamlFixture.php b/dev/YamlFixture.php index 48fdda8a7..b3377d103 100644 --- a/dev/YamlFixture.php +++ b/dev/YamlFixture.php @@ -4,42 +4,42 @@ use Symfony\Component\Yaml\Parser; /** * Uses Symfony's YAML component to parse a YAML document (see http://yaml.org). - * YAML is a simple markup languages that uses tabs and colons instead of the more verbose XML tags, + * YAML is a simple markup languages that uses tabs and colons instead of the more verbose XML tags, * and because of this much better for developers creating files by hand. - * + * * The contents of the YAML file are broken into three levels: - * - Top level: class names - Page and ErrorPage. This is the name of the dataobject class that should be created. - * The fact that ErrorPage is actually a subclass is irrelevant to the system populating the database. - * Each identifier you specify delimits a new database record. + * - Top level: class names - Page and ErrorPage. This is the name of the dataobject class that should be created. + * The fact that ErrorPage is actually a subclass is irrelevant to the system populating the database. + * Each identifier you specify delimits a new database record. * This means that every record needs to have an identifier, whether you use it or not. - * - Third level: fields - each field for the record is listed as a 3rd level entry. - * In most cases, the field's raw content is provided. + * - Third level: fields - each field for the record is listed as a 3rd level entry. + * In most cases, the field's raw content is provided. * However, if you want to define a relationship, you can do so using "=>" - * + * * There are a couple of lines like this: * * Parent: =>Page.about * * This will tell the system to set the ParentID database field to the ID of the Page object with the identifier - * 'about'. This can be used on any has-one or many-many relationship. + * 'about'. This can be used on any has-one or many-many relationship. * Note that we use the name of the relationship (Parent), and not the name of the database field (ParentID) * * On many-many relationships, you should specify a comma separated list of values. * * MyRelation: =>Class.inst1,=>Class.inst2,=>Class.inst3 * - * - * An crucial thing to note is that the YAML file specifies DataObjects, not database records. - * The database is populated by instantiating DataObject objects, setting the fields listed, and calling write(). - * This means that any onBeforeWrite() or default value logic will be executed as part of the test. + * + * An crucial thing to note is that the YAML file specifies DataObjects, not database records. + * The database is populated by instantiating DataObject objects, setting the fields listed, and calling write(). + * This means that any onBeforeWrite() or default value logic will be executed as part of the test. * This forms the basis of our testURLGeneration() test above. - * - * For example, the URLSegment value of Page.staffduplicate is the same as the URLSegment value of Page.staff. + * + * For example, the URLSegment value of Page.staffduplicate is the same as the URLSegment value of Page.staff. * When the fixture is set up, the URLSegment value of Page.staffduplicate will actually be my-staff-2. - * - * Finally, be aware that requireDefaultRecords() is not called by the database populator - + * + * Finally, be aware that requireDefaultRecords() is not called by the database populator - * so you will need to specify standard pages such as 404 and home in your YAML file. - * + * * * Page: * home: @@ -61,7 +61,7 @@ use Symfony\Component\Yaml\Parser; * Title: Page not Found * ErrorCode: 404 * - * + * * @package framework * @subpackage core */ @@ -97,10 +97,10 @@ class YamlFixture extends Object { $this->fixtureFile = $fixture; } - + parent::__construct(); } - + /** * @return String Absolute file path */ @@ -119,7 +119,7 @@ class YamlFixture extends Object { * Persists the YAML data in a FixtureFactory, * which in turn saves them into the database. * Please use the passed in factory to access the fixtures afterwards. - * + * * @param FixtureFactory $factory */ public function writeInto(FixtureFactory $factory) { diff --git a/email/Mailer.php b/email/Mailer.php index 0e44df151..42b25afeb 100644 --- a/email/Mailer.php +++ b/email/Mailer.php @@ -3,7 +3,7 @@ /** * Mailer objects are responsible for actually sending emails. * The default Mailer class will use PHP's mail() function. - * + * * @package framework * @subpackage email */ @@ -130,7 +130,7 @@ class Mailer extends Object { /** * Send a plain-text email. - * + * * @param string $to Email recipient * @param string $from Email from * @param string $subject Subject text @@ -179,7 +179,7 @@ class Mailer extends Object { /** * Send an email of an arbitrary format - * + * * @param string $to To * @param string $from From * @param string $subject Subject @@ -199,7 +199,7 @@ class Mailer extends Object { if($attachedFiles) { list($fullBody, $headers) = $this->encodeAttachments($attachedFiles, $headers, $fullBody); } - + // Get bounce email $bounceAddress = $this->getBounceEmail() ?: $from; if(preg_match('/^([^<>]*)<([^<>]+)> *$/', $bounceAddress, $parts)) $bounceAddress = $parts[2]; @@ -214,7 +214,7 @@ class Mailer extends Object { /** * Send the actual email - * + * * @param string $to * @param string $subjectEncoded * @param string $fullBody @@ -228,11 +228,11 @@ class Mailer extends Object { if(!$result) { $result = mail($to, $subjectEncoded, $fullBody, $headersEncoded); } - + if($result) { return array($to, $subjectEncoded, $fullBody, $headersEncoded, $bounceAddress); } - + return false; } @@ -271,7 +271,7 @@ class Mailer extends Object { */ protected function preparePlainSubmessage($plainContent, $htmlContent) { $plainEncoding = $this->getMessageEncoding(); - + // Generate plain text version if not explicitly given if(!$plainContent) $plainContent = Convert::xml2raw($htmlContent); @@ -304,7 +304,7 @@ class Mailer extends Object { "\n\n" . ""; } - + // Make the HTML part $headers["Content-Type"] = "text/html; charset=utf-8"; $headers["Content-Transfer-Encoding"] = $this->getMessageEncoding(); @@ -366,36 +366,36 @@ class Mailer extends Object { /** * Encode the contents of a file for emailing, including headers - * + * * $file can be an array, in which case it expects these members: * 'filename' - the filename of the file * 'contents' - the raw binary contents of the file as a string * and can optionally include these members: * 'mimetype' - the mimetype of the file (calculated from filename if missing) * 'contentLocation' - the 'Content-Location' header value for the file - * + * * $file can also be a string, in which case it is assumed to be the filename - * + * * h5. contentLocation - * - * Content Location is one of the two methods allowed for embedding images into an html email. + * + * Content Location is one of the two methods allowed for embedding images into an html email. * It's also the simplest, and best supported. - * + * * Assume we have an email with this in the body: - * + * * - * - * To display the image, an email viewer would have to download the image from the web every time - * it is displayed. Due to privacy issues, most viewers will not display any images unless + * + * To display the image, an email viewer would have to download the image from the web every time + * it is displayed. Due to privacy issues, most viewers will not display any images unless * the user clicks 'Show images in this email'. Not optimal. - * - * However, we can also include a copy of this image as an attached file in the email. - * By giving it a contentLocation of "http://example.com/image.gif" most email viewers + * + * However, we can also include a copy of this image as an attached file in the email. + * By giving it a contentLocation of "http://example.com/image.gif" most email viewers * will use this attached copy instead of downloading it. Better, * most viewers will show it without a 'Show images in this email' conformation. - * + * * Here is an example of passing this information through Email.php: - * + * * $email = new Email(); * $email->attachments[] = array( * 'filename' => BASE_PATH . "/themes/mytheme/images/header.gif", @@ -409,13 +409,13 @@ class Mailer extends Object { user_error("encodeFileForEmail: not passed a filename and/or data", E_USER_WARNING); return; } - + if (is_string($file)) { $file = array('filename' => $file); $fh = fopen($file['filename'], "rb"); if ($fh) { $file['contents'] = ""; - while(!feof($fh)) $file['contents'] .= fread($fh, 10000); + while(!feof($fh)) $file['contents'] .= fread($fh, 10000); fclose($fh); } } @@ -427,7 +427,7 @@ class Mailer extends Object { $mimeType = !empty($file['mimetype']) ? $file['mimetype'] : HTTP::get_mime_type($file['filename']); if(!$mimeType) $mimeType = "application/unknown"; if (empty($disposition)) $disposition = isset($file['contentLocation']) ? 'inline' : 'attachment'; - + // Encode for emailing if (substr($mimeType, 0, 4) != 'text') { $encoding = "base64"; @@ -435,16 +435,16 @@ class Mailer extends Object { } else { // This mime type is needed, otherwise some clients will show it as an inline attachment $mimeType = 'application/octet-stream'; - $encoding = "quoted-printable"; + $encoding = "quoted-printable"; $file['contents'] = quoted_printable_encode($file['contents']); } $headers = "Content-type: $mimeType;\n\tname=\"$base\"\n". "Content-Transfer-Encoding: $encoding\n". "Content-Disposition: $disposition;\n\tfilename=\"$base\"\n"; - + if ( isset($file['contentLocation']) ) $headers .= 'Content-Location: ' . $file['contentLocation'] . "\n" ; - + $headers .= $extraHeaders . "\n"; // Return completed packet @@ -472,7 +472,7 @@ class Mailer extends Object { $emailAddress = str_replace('@', '', substr($emailAddress, 0, $openBracket)) . substr($emailAddress, $openBracket); } - + return $emailAddress; } diff --git a/filesystem/AssetAdapterTest.php b/filesystem/AssetAdapterTest.php index d83ec6360..7cbadf511 100644 --- a/filesystem/AssetAdapterTest.php +++ b/filesystem/AssetAdapterTest.php @@ -66,4 +66,4 @@ class AssetAdapterTest extends SapphireTest { // Test url $this->assertEquals('/assets/file.jpg', $adapter->getProtectedUrl('file.jpg')); } -} \ No newline at end of file +} diff --git a/filesystem/File.php b/filesystem/File.php index 20b4055a8..f60fb86d4 100644 --- a/filesystem/File.php +++ b/filesystem/File.php @@ -95,7 +95,7 @@ class File extends DataObject implements ShortcodeHandler, AssetContainer { "Parent" => "File", "Owner" => "Member" ); - + private static $defaults = array( "ShowInSearch" => 1, ); @@ -205,7 +205,7 @@ class File extends DataObject implements ShortcodeHandler, AssetContainer { /** * Replace"[file_link id=n]" shortcode with an anchor tag or link to the file. - * + * * @param array $arguments Arguments passed to the parser * @param string $content Raw shortcode * @param ShortcodeParser $parser Parser @@ -491,7 +491,7 @@ class File extends DataObject implements ShortcodeHandler, AssetContainer { // Check configured categories $appCategories = self::config()->app_categories; - + // Merge all categories into list of extensions $extensions = array(); foreach(array_filter($categories) as $category) { @@ -710,7 +710,7 @@ class File extends DataObject implements ShortcodeHandler, AssetContainer { if($parent && $parent->exists()) { return $this->join_paths($parent->getFilename(), $this->Name); } - + return $this->Name; } @@ -743,7 +743,7 @@ class File extends DataObject implements ShortcodeHandler, AssetContainer { if($parent && $parent->exists()) { $folder = $parent->Filename; } - + // Detect change in foldername $newFolder = ltrim(dirname(trim($filename, '/')), '.'); if($folder !== $newFolder) { @@ -894,7 +894,7 @@ class File extends DataObject implements ShortcodeHandler, AssetContainer { } return round($size/(1024*1024*1024)*10)/10 . ' GB'; } - + /** * Convert a php.ini value (eg: 512M) to bytes * @@ -917,7 +917,7 @@ class File extends DataObject implements ShortcodeHandler, AssetContainer { /** * Return file size in bytes. - * + * * @return int */ public function getAbsoluteSize(){ @@ -995,7 +995,7 @@ class File extends DataObject implements ShortcodeHandler, AssetContainer { public function setFromLocalFile($path, $filename = null, $hash = null, $variant = null, $config = array()) { $result = $this->File->setFromLocalFile($path, $filename, $hash, $variant, $config); - + // Update File record to name of the uploaded asset if($result) { $this->setFilename($result['Filename']); diff --git a/filesystem/Folder.php b/filesystem/Folder.php index 6ee808942..4914c17b7 100644 --- a/filesystem/Folder.php +++ b/filesystem/Folder.php @@ -94,7 +94,7 @@ class Folder extends File { * Override setting the Title of Folders to that Name and Title are always in sync. * Note that this is not appropriate for files, because someone might want to create a human-readable name * of a file that is different from its name on disk. But folders should always match their name on disk. - * + * * @param string $title * @return $this */ diff --git a/filesystem/GDBackend.php b/filesystem/GDBackend.php index a580df013..1623eff1c 100644 --- a/filesystem/GDBackend.php +++ b/filesystem/GDBackend.php @@ -144,7 +144,7 @@ class GDBackend extends Object implements Image_Backend, Flushable { $this->markFailed($filename, $hash, $variant); return; } - + imagealphablending($image, false); imagesavealpha($image, true); // save alphablending setting (important) $this->setImageResource($image); @@ -639,4 +639,4 @@ class GDBackend extends Object implements Image_Backend, Flushable { $cache->clean(Zend_Cache::CLEANING_MODE_ALL); } -} \ No newline at end of file +} diff --git a/filesystem/ImageManipulation.php b/filesystem/ImageManipulation.php index 4614bc1c9..c5256bcd7 100644 --- a/filesystem/ImageManipulation.php +++ b/filesystem/ImageManipulation.php @@ -119,7 +119,7 @@ trait ImageManipulation { * @return bool */ abstract public function getIsImage(); - + /** * @config * @var bool Force all images to resample in all cases @@ -131,7 +131,7 @@ trait ImageManipulation { * @var int The width of an image thumbnail in a strip. */ private static $strip_thumbnail_width = 50; - + /** * @config * @var int The height of an image thumbnail in a strip. @@ -577,7 +577,7 @@ trait ImageManipulation { if(!$this->getIsImage()) { return null; } - + $content = $this->getString(); if(!$content) { return null; @@ -597,7 +597,7 @@ trait ImageManipulation { if(is_numeric($dim)) { return $size[$dim]; } - + return "$size[0]x$size[1]"; } diff --git a/filesystem/ImagickBackend.php b/filesystem/ImagickBackend.php index 8d7d32c29..522030f39 100644 --- a/filesystem/ImagickBackend.php +++ b/filesystem/ImagickBackend.php @@ -27,7 +27,7 @@ class ImagickBackend extends Imagick implements Image_Backend { */ public function __construct(AssetContainer $assetContainer = null) { parent::__construct(); - + if($assetContainer) { $this->loadFromContainer($assetContainer); } @@ -154,7 +154,7 @@ class ImagickBackend extends Imagick implements Image_Backend { if(!$this->valid()) { return null; } - + $new = $this->resizeRatio($width, $height); $new->setImageBackgroundColor("#".$backgroundColor); $w = $new->getImageWidth(); diff --git a/filesystem/flysystem/ProtectedAdapter.php b/filesystem/flysystem/ProtectedAdapter.php index 5841baef7..89e462006 100644 --- a/filesystem/flysystem/ProtectedAdapter.php +++ b/filesystem/flysystem/ProtectedAdapter.php @@ -16,4 +16,4 @@ interface ProtectedAdapter extends AdapterInterface { * @return string|null */ public function getProtectedUrl($path); -} \ No newline at end of file +} diff --git a/filesystem/flysystem/PublicAssetAdapter.php b/filesystem/flysystem/PublicAssetAdapter.php index 8e4864449..e6e27f024 100644 --- a/filesystem/flysystem/PublicAssetAdapter.php +++ b/filesystem/flysystem/PublicAssetAdapter.php @@ -55,4 +55,4 @@ class PublicAssetAdapter extends AssetAdapter implements PublicAdapter { // File outside of webroot can't be used return null; } -} \ No newline at end of file +} diff --git a/filesystem/storage/DBFile.php b/filesystem/storage/DBFile.php index 8ac58ed0b..4e2c602a5 100644 --- a/filesystem/storage/DBFile.php +++ b/filesystem/storage/DBFile.php @@ -282,7 +282,7 @@ class DBFile extends CompositeDBField implements AssetContainer { ->getStore() ->getMimeType($this->Filename, $this->Hash, $this->Variant); } - + public function getValue() { if(!$this->exists()) { return null; @@ -311,7 +311,7 @@ class DBFile extends CompositeDBField implements AssetContainer { ->getStore() ->exists($this->Filename, $this->Hash, $this->Variant); } - + public function getFilename() { return $this->getField('Filename'); } @@ -397,7 +397,7 @@ class DBFile extends CompositeDBField implements AssetContainer { if($allowed) { return in_array($extension, $allowed); } - + // If no extensions are configured, fallback to global list $globalList = File::config()->allowed_extensions; if(in_array($extension, $globalList)) { @@ -459,7 +459,7 @@ class DBFile extends CompositeDBField implements AssetContainer { if($field === 'Filename' && $value) { $this->assertFilenameValid($value); } - + return parent::setField($field, $value, $markChanged); } diff --git a/filesystem/storage/DefaultAssetNameGenerator.php b/filesystem/storage/DefaultAssetNameGenerator.php index ab1124b60..efc99a425 100644 --- a/filesystem/storage/DefaultAssetNameGenerator.php +++ b/filesystem/storage/DefaultAssetNameGenerator.php @@ -120,7 +120,7 @@ class DefaultAssetNameGenerator implements AssetNameGenerator { public function current() { $version = $this->version; - + // Initially suggest original name if($version === $this->first) { return $this->filename; diff --git a/filesystem/storage/GeneratedAssetHandler.php b/filesystem/storage/GeneratedAssetHandler.php index 0087b0d35..745c9e811 100644 --- a/filesystem/storage/GeneratedAssetHandler.php +++ b/filesystem/storage/GeneratedAssetHandler.php @@ -12,7 +12,7 @@ interface GeneratedAssetHandler { /** * Returns a URL to a generated asset, if one is available. - * + * * Given a filename, determine if a file is available. If the file is unavailable, * and a callback is supplied, invoke it to regenerate the content. * @@ -25,7 +25,7 @@ interface GeneratedAssetHandler { /** * Returns the content for a generated asset, if one is available. - * + * * Given a filename, determine if a file is available. If the file is unavailable, * and a callback is supplied, invoke it to regenerate the content. * @@ -43,12 +43,12 @@ interface GeneratedAssetHandler { * @param string $content Content to write to the backend */ public function setContent($filename, $content); - + /** * Remove any content under the given file. - * + * * If $filename is a folder, it should delete all files underneath it also. - * + * * @param string $filename */ public function removeContent($filename); diff --git a/forms/AssetField.php b/forms/AssetField.php index 84e84a1f6..5e469a6ba 100644 --- a/forms/AssetField.php +++ b/forms/AssetField.php @@ -118,7 +118,7 @@ class AssetField extends FileField { * @var string */ 'uploadTemplateName' => 'ss-uploadfield-uploadtemplate', - + /** * javascript template used to display already uploaded files * @@ -238,7 +238,7 @@ class AssetField extends FileField { $this->record = $record; return $this; } - + /** * Get the record to use as "Parent" for uploaded Files (eg a Page with a has_one to File) If none is set, it will * use Form->getRecord(). @@ -290,7 +290,7 @@ class AssetField extends FileField { // Set value using parent return parent::setValue($value, $record); } - + public function Value() { // Re-override FileField Value to use data value return $this->dataValue(); @@ -565,7 +565,7 @@ class AssetField extends FileField { // Revalidate each file against nested validator $this->getUpload()->clearErrors(); - + // Generate $_FILES style file attribute array for upload validator $store = $this->getAssetStore(); $mime = $store->getMimeType($value['Filename'], $value['Hash'], $value['Variant']); @@ -599,7 +599,7 @@ class AssetField extends FileField { protected function extractUploadedFileData($postVars) { // Note: Format of posted file parameters in php is a feature of using // for multiple file uploads - + // Skip empty file if(empty($postVars['tmp_name'])) { return null; @@ -712,7 +712,7 @@ class AssetField extends FileField { // Get form details $name = $this->getName(); $postVars = $request->postVar($name); - + // Extract uploaded files from Form data $uploadedFile = $this->extractUploadedFileData($postVars); if(!$uploadedFile) { diff --git a/forms/CheckboxSetField.php b/forms/CheckboxSetField.php index d12f63519..6379c749d 100644 --- a/forms/CheckboxSetField.php +++ b/forms/CheckboxSetField.php @@ -56,13 +56,13 @@ class CheckboxSetField extends MultiSelectField { /** * Gets the list of options to render in this formfield - * + * * @return ArrayList */ public function getOptions() { $selectedValues = $this->getValueArray(); $defaultItems = $this->getDefaultItems(); - + // Generate list of options to display $odd = 0; $formID = $this->ID(); @@ -72,7 +72,7 @@ class CheckboxSetField extends MultiSelectField { $odd = ($odd + 1) % 2; $extraClass = $odd ? 'odd' : 'even'; $extraClass .= ' val' . preg_replace('/[^a-zA-Z0-9\-\_]/', '_', $itemValue); - + $itemChecked = in_array($itemValue, $selectedValues) || in_array($itemValue, $defaultItems); $itemDisabled = $this->isDisabled() || in_array($itemValue, $defaultItems); diff --git a/forms/Form.php b/forms/Form.php index 0523c14a4..0be639164 100644 --- a/forms/Form.php +++ b/forms/Form.php @@ -695,7 +695,7 @@ class Form extends RequestHandler { /** * Set actions that are exempt from validation - * + * * @param array */ public function setValidationExemptActions($actions) { @@ -705,7 +705,7 @@ class Form extends RequestHandler { /** * Get a list of actions that are exempt from validation - * + * * @return array */ public function getValidationExemptActions() { diff --git a/forms/ListboxField.php b/forms/ListboxField.php index 89544f1ae..9274d308a 100644 --- a/forms/ListboxField.php +++ b/forms/ListboxField.php @@ -57,7 +57,7 @@ class ListboxField extends MultiSelectField { /** * Returns a