function SettingsForm::validateLogoPath

Helper function for the navigation settings form.

Attempts to validate normal system paths, paths relative to the public files directory, or stream wrapper URIs. If the given path is any of the above, returns a valid path or URI that the theme system can display.

Parameters

string $path: A path relative to the Drupal root or to the public files directory, or a stream wrapper URI.

Return value

string|null A valid path that can be displayed through the theme system, or NULL if the path could not be validated.

2 calls to SettingsForm::validateLogoPath()
SettingsForm::submitForm in core/modules/navigation/src/Form/SettingsForm.php
Form submission handler.
SettingsForm::validateForm in core/modules/navigation/src/Form/SettingsForm.php
Form validation handler.

File

core/modules/navigation/src/Form/SettingsForm.php, line 312

Class

SettingsForm
Configure Navigation settings for this site.

Namespace

Drupal\navigation\Form

Code

protected function validateLogoPath(string $path) : ?string {
    // Absolute local file paths are invalid.
    if ($this->fileSystem
        ->realpath($path) == $path) {
        return NULL;
    }
    // A path relative to the Drupal root or a fully qualified URI is valid.
    if (is_file($path)) {
        return $path;
    }
    // Prepend 'public://' for relative file paths within public filesystem.
    if (StreamWrapperManager::getScheme($path) === FALSE) {
        $path = 'public://' . $path;
    }
    if (is_file($path)) {
        return $path;
    }
    return NULL;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.