Prvotni komit
|
@ -0,0 +1,174 @@
|
|||
name: schunder-madre
|
||||
type: drupal9
|
||||
docroot: web
|
||||
php_version: "7.3"
|
||||
webserver_type: nginx-fpm
|
||||
router_http_port: "80"
|
||||
router_https_port: "443"
|
||||
xdebug_enabled: false
|
||||
additional_hostnames: []
|
||||
additional_fqdns: []
|
||||
mariadb_version: "10.3"
|
||||
mysql_version: ""
|
||||
provider: default
|
||||
use_dns_when_possible: true
|
||||
composer_version: ""
|
||||
|
||||
|
||||
# This config.yaml was created with ddev version v1.16.6
|
||||
# webimage: drud/ddev-webserver:v1.16.6
|
||||
# dbimage: drud/ddev-dbserver-mariadb-10.2:v1.16.0
|
||||
# dbaimage: phpmyadmin:5
|
||||
# However we do not recommend explicitly wiring these images into the
|
||||
# config.yaml as they may break future versions of ddev.
|
||||
# You can update this config.yaml using 'ddev config'.
|
||||
|
||||
# Key features of ddev's config.yaml:
|
||||
|
||||
# name: <projectname> # Name of the project, automatically provides
|
||||
# http://projectname.ddev.site and https://projectname.ddev.site
|
||||
|
||||
# type: <projecttype> # drupal6/7/8, backdrop, typo3, wordpress, php
|
||||
|
||||
# docroot: <relative_path> # Relative path to the directory containing index.php.
|
||||
|
||||
# php_version: "7.3" # PHP version to use, "5.6", "7.0", "7.1", "7.2", "7.3", "7.4" "8.0"
|
||||
|
||||
# You can explicitly specify the webimage, dbimage, dbaimage lines but this
|
||||
# is not recommended, as the images are often closely tied to ddev's' behavior,
|
||||
# so this can break upgrades.
|
||||
|
||||
# webimage: <docker_image> # nginx/php docker image.
|
||||
# dbimage: <docker_image> # mariadb docker image.
|
||||
# dbaimage: <docker_image>
|
||||
|
||||
# mariadb_version and mysql_version
|
||||
# ddev can use many versions of mariadb and mysql
|
||||
# However these directives are mutually exclusive
|
||||
# mariadb_version: 10.2
|
||||
# mysql_version: 8.0
|
||||
|
||||
# router_http_port: <port> # Port to be used for http (defaults to port 80)
|
||||
# router_https_port: <port> # Port for https (defaults to 443)
|
||||
|
||||
# xdebug_enabled: false # Set to true to enable xdebug and "ddev start" or "ddev restart"
|
||||
# Note that for most people the commands
|
||||
# "ddev xdebug" to enable xdebug and "ddev xdebug off" to disable it work better,
|
||||
# as leaving xdebug enabled all the time is a big performance hit.
|
||||
|
||||
# webserver_type: nginx-fpm # or apache-fpm
|
||||
|
||||
# timezone: Europe/Berlin
|
||||
# This is the timezone used in the containers and by PHP;
|
||||
# it can be set to any valid timezone,
|
||||
# see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
# For example Europe/Dublin or MST7MDT
|
||||
|
||||
# composer_version: "2"
|
||||
# if composer_version:"" it will use the current ddev default composer release.
|
||||
# It can also be set to "1", to get most recent composer v1
|
||||
# or "2" for most recent composer v2.
|
||||
# It can be set to any existing specific composer version.
|
||||
# After first project 'ddev start' this will not be updated until it changes
|
||||
|
||||
# additional_hostnames:
|
||||
# - somename
|
||||
# - someothername
|
||||
# would provide http and https URLs for "somename.ddev.site"
|
||||
# and "someothername.ddev.site".
|
||||
|
||||
# additional_fqdns:
|
||||
# - example.com
|
||||
# - sub1.example.com
|
||||
# would provide http and https URLs for "example.com" and "sub1.example.com"
|
||||
# Please take care with this because it can cause great confusion.
|
||||
|
||||
# upload_dir: custom/upload/dir
|
||||
# would set the destination path for ddev import-files to custom/upload/dir.
|
||||
|
||||
# working_dir:
|
||||
# web: /var/www/html
|
||||
# db: /home
|
||||
# would set the default working directory for the web and db services.
|
||||
# These values specify the destination directory for ddev ssh and the
|
||||
# directory in which commands passed into ddev exec are run.
|
||||
|
||||
# omit_containers: [db, dba, ddev-ssh-agent]
|
||||
# Currently only these containers are supported. Some containers can also be
|
||||
# omitted globally in the ~/.ddev/global_config.yaml. Note that if you omit
|
||||
# the "db" container, several standard features of ddev that access the
|
||||
# database container will be unusable.
|
||||
|
||||
# nfs_mount_enabled: false
|
||||
# Great performance improvement but requires host configuration first.
|
||||
# See https://ddev.readthedocs.io/en/stable/users/performance/#using-nfs-to-mount-the-project-into-the-container
|
||||
|
||||
# host_https_port: "59002"
|
||||
# The host port binding for https can be explicitly specified. It is
|
||||
# dynamic unless otherwise specified.
|
||||
# This is not used by most people, most people use the *router* instead
|
||||
# of the localhost port.
|
||||
|
||||
# host_webserver_port: "59001"
|
||||
# The host port binding for the ddev-webserver can be explicitly specified. It is
|
||||
# dynamic unless otherwise specified.
|
||||
# This is not used by most people, most people use the *router* instead
|
||||
# of the localhost port.
|
||||
|
||||
# host_db_port: "59002"
|
||||
# The host port binding for the ddev-dbserver can be explicitly specified. It is dynamic
|
||||
# unless explicitly specified.
|
||||
|
||||
# phpmyadmin_port: "8036"
|
||||
# phpmyadmin_https_port: "8037"
|
||||
# The PHPMyAdmin ports can be changed from the default 8036 and 8037
|
||||
|
||||
# mailhog_port: "8025"
|
||||
# mailhog_https_port: "8026"
|
||||
# The MailHog ports can be changed from the default 8025 and 8026
|
||||
|
||||
# webimage_extra_packages: [php7.3-tidy, php-bcmath]
|
||||
# Extra Debian packages that are needed in the webimage can be added here
|
||||
|
||||
# dbimage_extra_packages: [telnet,netcat]
|
||||
# Extra Debian packages that are needed in the dbimage can be added here
|
||||
|
||||
# use_dns_when_possible: true
|
||||
# If the host has internet access and the domain configured can
|
||||
# successfully be looked up, DNS will be used for hostname resolution
|
||||
# instead of editing /etc/hosts
|
||||
# Defaults to true
|
||||
|
||||
# project_tld: ddev.site
|
||||
# The top-level domain used for project URLs
|
||||
# The default "ddev.site" allows DNS lookup via a wildcard
|
||||
# If you prefer you can change this to "ddev.local" to preserve
|
||||
# pre-v1.9 behavior.
|
||||
|
||||
# ngrok_args: --subdomain mysite --auth username:pass
|
||||
# Provide extra flags to the "ngrok http" command, see
|
||||
# https://ngrok.com/docs#http or run "ngrok http -h"
|
||||
|
||||
# disable_settings_management: false
|
||||
# If true, ddev will not create CMS-specific settings files like
|
||||
# Drupal's settings.php/settings.ddev.php or TYPO3's AdditionalSettings.php
|
||||
# In this case the user must provide all such settings.
|
||||
|
||||
# no_project_mount: false
|
||||
# (Experimental) If true, ddev will not mount the project into the web container;
|
||||
# the user is responsible for mounting it manually or via a script.
|
||||
# This is to enable experimentation with alternate file mounting strategies.
|
||||
# For advanced users only!
|
||||
|
||||
# provider: default # Currently either "default" or "pantheon"
|
||||
#
|
||||
# Many ddev commands can be extended to run tasks before or after the
|
||||
# ddev command is executed, for example "post-start", "post-import-db",
|
||||
# "pre-composer", "post-composer"
|
||||
# See https://ddev.readthedocs.io/en/stable/users/extending-commands/ for more
|
||||
# information on the commands that can be extended and the tasks you can define
|
||||
# for them. Example:
|
||||
#hooks:
|
||||
# post-import-db:
|
||||
# - exec: drush cr
|
||||
# - exec: drush updb
|
|
@ -0,0 +1,17 @@
|
|||
# Drupal editor configuration normalization
|
||||
# @see http://editorconfig.org/
|
||||
|
||||
# This is the top-most .editorconfig file; do not search in parent directories.
|
||||
root = true
|
||||
|
||||
# All files.
|
||||
[*]
|
||||
end_of_line = LF
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[composer.{json,lock}]
|
||||
indent_size = 4
|
|
@ -0,0 +1,61 @@
|
|||
# Drupal git normalization
|
||||
# @see https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html
|
||||
# @see https://www.drupal.org/node/1542048
|
||||
|
||||
# Normally these settings would be done with macro attributes for improved
|
||||
# readability and easier maintenance. However macros can only be defined at the
|
||||
# repository root directory. Drupal avoids making any assumptions about where it
|
||||
# is installed.
|
||||
|
||||
# Define text file attributes.
|
||||
# - Treat them as text.
|
||||
# - Ensure no CRLF line-endings, neither on checkout nor on checkin.
|
||||
# - Detect whitespace errors.
|
||||
# - Exposed by default in `git diff --color` on the CLI.
|
||||
# - Validate with `git diff --check`.
|
||||
# - Deny applying with `git apply --whitespace=error-all`.
|
||||
# - Fix automatically with `git apply --whitespace=fix`.
|
||||
|
||||
*.config text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.css text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.dist text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.engine text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.html text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=html
|
||||
*.inc text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.install text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.js text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.json text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.lock text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.map text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.md text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.module text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.php text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.po text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.profile text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.script text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.sh text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.sql text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.svg text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.theme text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.twig text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.txt text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.xml text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.yml text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
|
||||
# Define binary file attributes.
|
||||
# - Do not treat them as text.
|
||||
# - Include binary diff in patches instead of "binary files differ."
|
||||
*.eot -text diff
|
||||
*.exe -text diff
|
||||
*.gif -text diff
|
||||
*.gz -text diff
|
||||
*.ico -text diff
|
||||
*.jpeg -text diff
|
||||
*.jpg -text diff
|
||||
*.otf -text diff
|
||||
*.phar -text diff
|
||||
*.png -text diff
|
||||
*.svgz -text diff
|
||||
*.ttf -text diff
|
||||
*.woff -text diff
|
||||
*.woff2 -text diff
|
|
@ -0,0 +1,2 @@
|
|||
data/*
|
||||
vendor/*
|
|
@ -0,0 +1,90 @@
|
|||
{
|
||||
"name": "drupal/recommended-project",
|
||||
"description": "Project template for Drupal 9 projects with a relocated document root",
|
||||
"type": "project",
|
||||
"license": "GPL-2.0-or-later",
|
||||
"homepage": "https://www.drupal.org/project/drupal",
|
||||
"support": {
|
||||
"docs": "https://www.drupal.org/docs/user_guide/en/index.html",
|
||||
"chat": "https://www.drupal.org/node/314178"
|
||||
},
|
||||
"repositories": [
|
||||
{
|
||||
"type": "composer",
|
||||
"url": "https://packages.drupal.org/8"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"composer/installers": "^1.9",
|
||||
"drupal/bootstrap5": "^1.1",
|
||||
"drupal/core-composer-scaffold": "^9.2",
|
||||
"drupal/core-project-message": "^9.2",
|
||||
"drupal/core-recommended": "^9.2",
|
||||
"drush/drush": "^10.6"
|
||||
},
|
||||
"conflict": {
|
||||
"drupal/drupal": "*"
|
||||
},
|
||||
"minimum-stability": "stable",
|
||||
"prefer-stable": true,
|
||||
"config": {
|
||||
"sort-packages": true
|
||||
},
|
||||
"extra": {
|
||||
"drupal-scaffold": {
|
||||
"locations": {
|
||||
"web-root": "web/"
|
||||
}
|
||||
},
|
||||
"installer-paths": {
|
||||
"web/core": [
|
||||
"type:drupal-core"
|
||||
],
|
||||
"web/libraries/{$name}": [
|
||||
"type:drupal-library"
|
||||
],
|
||||
"web/modules/contrib/{$name}": [
|
||||
"type:drupal-module"
|
||||
],
|
||||
"web/profiles/contrib/{$name}": [
|
||||
"type:drupal-profile"
|
||||
],
|
||||
"web/themes/contrib/{$name}": [
|
||||
"type:drupal-theme"
|
||||
],
|
||||
"drush/Commands/contrib/{$name}": [
|
||||
"type:drupal-drush"
|
||||
],
|
||||
"web/modules/custom/{$name}": [
|
||||
"type:drupal-custom-module"
|
||||
],
|
||||
"web/profiles/custom/{$name}": [
|
||||
"type:drupal-custom-profile"
|
||||
],
|
||||
"web/themes/custom/{$name}": [
|
||||
"type:drupal-custom-theme"
|
||||
]
|
||||
},
|
||||
"drupal-core-project-message": {
|
||||
"include-keys": [
|
||||
"homepage",
|
||||
"support"
|
||||
],
|
||||
"post-create-project-cmd-message": [
|
||||
"<bg=blue;fg=white> </>",
|
||||
"<bg=blue;fg=white> Congratulations, you’ve installed the Drupal codebase </>",
|
||||
"<bg=blue;fg=white> from the drupal/recommended-project template! </>",
|
||||
"<bg=blue;fg=white> </>",
|
||||
"",
|
||||
"<bg=yellow;fg=black>Next steps</>:",
|
||||
" * Install the site: https://www.drupal.org/docs/8/install",
|
||||
" * Read the user guide: https://www.drupal.org/docs/user_guide/en/index.html",
|
||||
" * Get support: https://www.drupal.org/support",
|
||||
" * Get involved with the Drupal community:",
|
||||
" https://www.drupal.org/getting-involved",
|
||||
" * Remove the plugin that prints this message:",
|
||||
" composer remove drupal/core-project-message"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 801 KiB |
After Width: | Height: | Size: 2.4 MiB |
After Width: | Height: | Size: 957 KiB |
After Width: | Height: | Size: 540 KiB |
After Width: | Height: | Size: 4.2 MiB |
After Width: | Height: | Size: 923 KiB |
After Width: | Height: | Size: 1.3 MiB |
After Width: | Height: | Size: 1.1 MiB |
After Width: | Height: | Size: 143 KiB |
|
@ -0,0 +1,40 @@
|
|||
--errors=box-model,
|
||||
display-property-grouping,
|
||||
duplicate-background-images,
|
||||
duplicate-properties,
|
||||
empty-rules,
|
||||
ids,
|
||||
import,
|
||||
important,
|
||||
known-properties,
|
||||
outline-none,
|
||||
overqualified-elements,
|
||||
qualified-headings,
|
||||
shorthand,
|
||||
star-property-hack,
|
||||
text-indent,
|
||||
underscore-property-hack,
|
||||
unique-headings,
|
||||
unqualified-attributes,
|
||||
vendor-prefix,
|
||||
zero-units
|
||||
--ignore=adjoining-classes,
|
||||
box-sizing,
|
||||
bulletproof-font-face,
|
||||
compatible-vendor-prefixes,
|
||||
errors,
|
||||
fallback-colors,
|
||||
floats,
|
||||
font-faces,
|
||||
font-sizes,
|
||||
gradients,
|
||||
import-ie-limit,
|
||||
order-alphabetical,
|
||||
regex-selectors,
|
||||
rules-count,
|
||||
selector-max,
|
||||
selector-max-approaching,
|
||||
selector-newline,
|
||||
universal-selector
|
||||
--exclude-list=core/assets,
|
||||
vendor
|
|
@ -0,0 +1,8 @@
|
|||
core/**/*
|
||||
vendor/**/*
|
||||
sites/**/files/**/*
|
||||
libraries/**/*
|
||||
sites/**/libraries/**/*
|
||||
profiles/**/libraries/**/*
|
||||
**/js_test_files/**/*
|
||||
**/node_modules/**/*
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"extends": "./core/.eslintrc.json"
|
||||
}
|
|
@ -0,0 +1,65 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Router script for the built-in PHP web server.
|
||||
*
|
||||
* The built-in web server should only be used for development and testing as it
|
||||
* has a number of limitations that makes running Drupal on it highly insecure
|
||||
* and somewhat limited.
|
||||
*
|
||||
* Note that:
|
||||
* - The server is single-threaded, any requests made during the execution of
|
||||
* the main request will hang until the main request has been completed.
|
||||
* - The web server does not enforce any of the settings in .htaccess in
|
||||
* particular a remote user will be able to download files that normally would
|
||||
* be protected from direct access such as .module files.
|
||||
*
|
||||
* The router script is needed to work around a bug in PHP, see
|
||||
* https://bugs.php.net/bug.php?id=61286.
|
||||
*
|
||||
* Usage:
|
||||
* php -S localhost:8888 .ht.router.php
|
||||
*
|
||||
* @see http://php.net/manual/en/features.commandline.webserver.php
|
||||
*/
|
||||
|
||||
$url = parse_url($_SERVER['REQUEST_URI']);
|
||||
if (file_exists(__DIR__ . $url['path'])) {
|
||||
// Serve the requested resource as-is.
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// Work around the PHP bug.
|
||||
$path = $url['path'];
|
||||
$script = 'index.php';
|
||||
if (strpos($path, '.php') !== FALSE) {
|
||||
// Work backwards through the path to check if a script exists. Otherwise
|
||||
// fallback to index.php.
|
||||
do {
|
||||
$path = dirname($path);
|
||||
if (preg_match('/\.php$/', $path) && is_file(__DIR__ . $path)) {
|
||||
// Discovered that the path contains an existing PHP file. Use that as the
|
||||
// script to include.
|
||||
$script = ltrim($path, '/');
|
||||
break;
|
||||
}
|
||||
} while ($path !== '/' && $path !== '.');
|
||||
}
|
||||
|
||||
// Update $_SERVER variables to point to the correct index-file.
|
||||
$index_file_absolute = $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . $script;
|
||||
$index_file_relative = DIRECTORY_SEPARATOR . $script;
|
||||
|
||||
// SCRIPT_FILENAME will point to the router script itself, it should point to
|
||||
// the full path of index.php.
|
||||
$_SERVER['SCRIPT_FILENAME'] = $index_file_absolute;
|
||||
|
||||
// SCRIPT_NAME and PHP_SELF will either point to index.php or contain the full
|
||||
// virtual path being requested depending on the URL being requested. They
|
||||
// should always point to index.php relative to document root.
|
||||
$_SERVER['SCRIPT_NAME'] = $index_file_relative;
|
||||
$_SERVER['PHP_SELF'] = $index_file_relative;
|
||||
|
||||
// Require the script and let core take over.
|
||||
require $_SERVER['SCRIPT_FILENAME'];
|
|
@ -0,0 +1,182 @@
|
|||
#
|
||||
# Apache/PHP/Drupal settings:
|
||||
#
|
||||
|
||||
# Protect files and directories from prying eyes.
|
||||
<FilesMatch "\.(engine|inc|install|make|module|profile|po|sh|.*sql|theme|twig|tpl(\.php)?|xtmpl|yml)(~|\.sw[op]|\.bak|\.orig|\.save)?$|^(\.(?!well-known).*|Entries.*|Repository|Root|Tag|Template|composer\.(json|lock)|web\.config)$|^#.*#$|\.php(~|\.sw[op]|\.bak|\.orig|\.save)$">
|
||||
<IfModule mod_authz_core.c>
|
||||
Require all denied
|
||||
</IfModule>
|
||||
<IfModule !mod_authz_core.c>
|
||||
Order allow,deny
|
||||
</IfModule>
|
||||
</FilesMatch>
|
||||
|
||||
# Don't show directory listings for URLs which map to a directory.
|
||||
Options -Indexes
|
||||
|
||||
# Set the default handler.
|
||||
DirectoryIndex index.php index.html index.htm
|
||||
|
||||
# Add correct encoding for SVGZ.
|
||||
AddType image/svg+xml svg svgz
|
||||
AddEncoding gzip svgz
|
||||
|
||||
# Most of the following PHP settings cannot be changed at runtime. See
|
||||
# sites/default/default.settings.php and
|
||||
# Drupal\Core\DrupalKernel::bootEnvironment() for settings that can be
|
||||
# changed at runtime.
|
||||
|
||||
# PHP 7, Apache 1 and 2.
|
||||
<IfModule mod_php7.c>
|
||||
php_value assert.active 0
|
||||
</IfModule>
|
||||
|
||||
# Requires mod_expires to be enabled.
|
||||
<IfModule mod_expires.c>
|
||||
# Enable expirations.
|
||||
ExpiresActive On
|
||||
|
||||
# Cache all files for 2 weeks after access (A).
|
||||
ExpiresDefault A1209600
|
||||
|
||||
<FilesMatch \.php$>
|
||||
# Do not allow PHP scripts to be cached unless they explicitly send cache
|
||||
# headers themselves. Otherwise all scripts would have to overwrite the
|
||||
# headers set by mod_expires if they want another caching behavior. This may
|
||||
# fail if an error occurs early in the bootstrap process, and it may cause
|
||||
# problems if a non-Drupal PHP file is installed in a subdirectory.
|
||||
ExpiresActive Off
|
||||
</FilesMatch>
|
||||
</IfModule>
|
||||
|
||||
# Set a fallback resource if mod_rewrite is not enabled. This allows Drupal to
|
||||
# work without clean URLs. This requires Apache version >= 2.2.16. If Drupal is
|
||||
# not accessed by the top level URL (i.e.: http://example.com/drupal/ instead of
|
||||
# http://example.com/), the path to index.php will need to be adjusted.
|
||||
<IfModule !mod_rewrite.c>
|
||||
FallbackResource /index.php
|
||||
</IfModule>
|
||||
|
||||
# Various rewrite rules.
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteEngine on
|
||||
|
||||
# Set "protossl" to "s" if we were accessed via https://. This is used later
|
||||
# if you enable "www." stripping or enforcement, in order to ensure that
|
||||
# you don't bounce between http and https.
|
||||
RewriteRule ^ - [E=protossl]
|
||||
RewriteCond %{HTTPS} on
|
||||
RewriteRule ^ - [E=protossl:s]
|
||||
|
||||
# Make sure Authorization HTTP header is available to PHP
|
||||
# even when running as CGI or FastCGI.
|
||||
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
||||
|
||||
# Block access to "hidden" directories whose names begin with a period. This
|
||||
# includes directories used by version control systems such as Subversion or
|
||||
# Git to store control files. Files whose names begin with a period, as well
|
||||
# as the control files used by CVS, are protected by the FilesMatch directive
|
||||
# above.
|
||||
#
|
||||
# NOTE: This only works when mod_rewrite is loaded. Without mod_rewrite, it is
|
||||
# not possible to block access to entire directories from .htaccess because
|
||||
# <DirectoryMatch> is not allowed here.
|
||||
#
|
||||
# If you do not have mod_rewrite installed, you should remove these
|
||||
# directories from your webroot or otherwise protect them from being
|
||||
# downloaded.
|
||||
RewriteRule "/\.|^\.(?!well-known/)" - [F]
|
||||
|
||||
# If your site can be accessed both with and without the 'www.' prefix, you
|
||||
# can use one of the following settings to redirect users to your preferred
|
||||
# URL, either WITH or WITHOUT the 'www.' prefix. Choose ONLY one option:
|
||||
#
|
||||
# To redirect all users to access the site WITH the 'www.' prefix,
|
||||
# (http://example.com/foo will be redirected to http://www.example.com/foo)
|
||||
# uncomment the following:
|
||||
# RewriteCond %{HTTP_HOST} .
|
||||
# RewriteCond %{HTTP_HOST} !^www\. [NC]
|
||||
# RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
|
||||
#
|
||||
# To redirect all users to access the site WITHOUT the 'www.' prefix,
|
||||
# (http://www.example.com/foo will be redirected to http://example.com/foo)
|
||||
# uncomment the following:
|
||||
# RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
|
||||
# RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]
|
||||
|
||||
# Modify the RewriteBase if you are using Drupal in a subdirectory or in a
|
||||
# VirtualDocumentRoot and the rewrite rules are not working properly.
|
||||
# For example if your site is at http://example.com/drupal uncomment and
|
||||
# modify the following line:
|
||||
# RewriteBase /drupal
|
||||
#
|
||||
# If your site is running in a VirtualDocumentRoot at http://example.com/,
|
||||
# uncomment the following line:
|
||||
# RewriteBase /
|
||||
|
||||
# Redirect common PHP files to their new locations.
|
||||
RewriteCond %{REQUEST_URI} ^(.*)?/(install\.php) [OR]
|
||||
RewriteCond %{REQUEST_URI} ^(.*)?/(rebuild\.php)
|
||||
RewriteCond %{REQUEST_URI} !core
|
||||
RewriteRule ^ %1/core/%2 [L,QSA,R=301]
|
||||
|
||||
# Rewrite install.php during installation to see if mod_rewrite is working
|
||||
RewriteRule ^core/install\.php core/install.php?rewrite=ok [QSA,L]
|
||||
|
||||
# Pass all requests not referring directly to files in the filesystem to
|
||||
# index.php.
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteCond %{REQUEST_URI} !=/favicon.ico
|
||||
RewriteRule ^ index.php [L]
|
||||
|
||||
# For security reasons, deny access to other PHP files on public sites.
|
||||
# Note: The following URI conditions are not anchored at the start (^),
|
||||
# because Drupal may be located in a subdirectory. To further improve
|
||||
# security, you can replace '!/' with '!^/'.
|
||||
# Allow access to PHP files in /core (like authorize.php or install.php):
|
||||
RewriteCond %{REQUEST_URI} !/core/[^/]*\.php$
|
||||
# Allow access to test-specific PHP files:
|
||||
RewriteCond %{REQUEST_URI} !/core/modules/system/tests/https?\.php
|
||||
# Allow access to Statistics module's custom front controller.
|
||||
# Copy and adapt this rule to directly execute PHP files in contributed or
|
||||
# custom modules or to run another PHP application in the same directory.
|
||||
RewriteCond %{REQUEST_URI} !/core/modules/statistics/statistics\.php$
|
||||
# Deny access to any other PHP files that do not match the rules above.
|
||||
# Specifically, disallow autoload.php from being served directly.
|
||||
RewriteRule "^(.+/.*|autoload)\.php($|/)" - [F]
|
||||
|
||||
# Rules to correctly serve gzip compressed CSS and JS files.
|
||||
# Requires both mod_rewrite and mod_headers to be enabled.
|
||||
<IfModule mod_headers.c>
|
||||
# Serve gzip compressed CSS files if they exist and the client accepts gzip.
|
||||
RewriteCond %{HTTP:Accept-encoding} gzip
|
||||
RewriteCond %{REQUEST_FILENAME}\.gz -s
|
||||
RewriteRule ^(.*)\.css $1\.css\.gz [QSA]
|
||||
|
||||
# Serve gzip compressed JS files if they exist and the client accepts gzip.
|
||||
RewriteCond %{HTTP:Accept-encoding} gzip
|
||||
RewriteCond %{REQUEST_FILENAME}\.gz -s
|
||||
RewriteRule ^(.*)\.js $1\.js\.gz [QSA]
|
||||
|
||||
# Serve correct content types, and prevent double compression.
|
||||
RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1,E=no-brotli:1]
|
||||
RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1,E=no-brotli:1]
|
||||
|
||||
<FilesMatch "(\.js\.gz|\.css\.gz)$">
|
||||
# Serve correct encoding type.
|
||||
Header set Content-Encoding gzip
|
||||
# Force proxies to cache gzipped & non-gzipped css/js files separately.
|
||||
Header append Vary Accept-Encoding
|
||||
</FilesMatch>
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
|
||||
# Various header fixes.
|
||||
<IfModule mod_headers.c>
|
||||
# Disable content sniffing, since it's an attack vector.
|
||||
Header always set X-Content-Type-Options nosniff
|
||||
# Disable Proxy header, since it's an attack vector.
|
||||
RequestHeader unset Proxy
|
||||
</IfModule>
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
Please read core/INSTALL.txt for detailed installation instructions for your
|
||||
Drupal website.
|
|
@ -0,0 +1,75 @@
|
|||
<img alt="Drupal Logo" src="https://www.drupal.org/files/Wordmark_blue_RGB.png" height="60px">
|
||||
|
||||
Drupal is an open source content management platform supporting a variety of
|
||||
websites ranging from personal weblogs to large community-driven websites. For
|
||||
more information, visit the Drupal website, [Drupal.org][Drupal.org], and join
|
||||
the [Drupal community][Drupal community].
|
||||
|
||||
## Contributing
|
||||
|
||||
Drupal is developed on [Drupal.org][Drupal.org], the home of the international
|
||||
Drupal community since 2001!
|
||||
|
||||
[Drupal.org][Drupal.org] hosts Drupal's [GitLab repository][GitLab repository],
|
||||
its [issue queue][issue queue], and its [documentation][documentation]. Before
|
||||
you start working on code, be sure to search the [issue queue][issue queue] and
|
||||
create an issue if your aren't able to find an existing issue.
|
||||
|
||||
Every issue on Drupal.org automatically creates a new community-accessible fork
|
||||
that you can contribute to. Learn more about the code contribution process on
|
||||
the [Issue forks & merge requests page][issue forks].
|
||||
|
||||
## Usage
|
||||
|
||||
For a brief introduction, see [USAGE.txt](/core/USAGE.txt). You can also find
|
||||
guides, API references, and more by visiting Drupal's [documentation
|
||||
page][documentation].
|
||||
|
||||
You can quickly extend Drupal's core feature set by installing any of its
|
||||
[thousands of free and open source modules][modules]. With Drupal and its
|
||||
module ecosystem, you can often build most or all of what your project needs
|
||||
before writing a single line of code.
|
||||
|
||||
## Changelog
|
||||
|
||||
Drupal keeps detailed [change records][changelog]. You can search Drupal's
|
||||
changes for a record of every notable breaking change and new feature since
|
||||
2011.
|
||||
|
||||
## Security
|
||||
|
||||
For a list of security announcements, see the [Security advisories
|
||||
page][Security advisories] (available as [an RSS feed][security RSS]). This
|
||||
page also describes how to subscribe to these announcements via email.
|
||||
|
||||
For information about the Drupal security process, or to find out how to report
|
||||
a potential security issue to the Drupal security team, see the [Security team
|
||||
page][security team].
|
||||
|
||||
## Need a helping hand?
|
||||
|
||||
Visit the [Support page][support] or browse [over a thousand Drupal
|
||||
providers][service providers] offering design, strategy, development, and
|
||||
hosting services.
|
||||
|
||||
## Legal matters
|
||||
|
||||
Know your rights when using Drupal by reading Drupal core's
|
||||
[license](/core/LICENSE.txt).
|
||||
|
||||
Learn about the [Drupal trademark and logo policy here][trademark].
|
||||
|
||||
[Drupal.org]: https://www.drupal.org
|
||||
[Drupal community]: https://www.drupal.org/community
|
||||
[GitLab repository]: https://git.drupalcode.org/project/drupal
|
||||
[issue queue]: https://www.drupal.org/project/issues/drupal
|
||||
[issue forks]: https://www.drupal.org/drupalorg/docs/gitlab-integration/issue-forks-merge-requests
|
||||
[documentation]: https://www.drupal.org/documentation
|
||||
[changelog]: https://www.drupal.org/list-changes/drupal
|
||||
[modules]: https://www.drupal.org/project/project_module
|
||||
[security advisories]: https://www.drupal.org/security
|
||||
[security RSS]: https://www.drupal.org/security/rss.xml
|
||||
[security team]: https://www.drupal.org/drupal-security-team
|
||||
[service providers]: https://www.drupal.org/drupal-services
|
||||
[support]: https://www.drupal.org/support
|
||||
[trademark]: https://www.drupal.com/trademark
|
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Includes the autoloader created by Composer.
|
||||
*
|
||||
* This file was generated by drupal-scaffold.
|
||||
*
|
||||
* @see composer.json
|
||||
* @see index.php
|
||||
* @see core/install.php
|
||||
* @see core/rebuild.php
|
||||
* @see core/modules/statistics/statistics.php
|
||||
*/
|
||||
|
||||
return require __DIR__ . '/../vendor/autoload.php';
|
|
@ -0,0 +1,58 @@
|
|||
{
|
||||
"version": "0.1",
|
||||
"language": "en-US",
|
||||
"allowCompoundWords": false,
|
||||
"ignorePaths": [
|
||||
".*.json",
|
||||
".*ignore",
|
||||
"composer.lock",
|
||||
"assets/vendor/**",
|
||||
"lib/Drupal/Component/Diff/**",
|
||||
"lib/Drupal/Component/Transliteration/data/**",
|
||||
"lib/Drupal/Core/File/MimeType/ExtensionMimeTypeGuesser.php",
|
||||
"**/LICENSE.txt",
|
||||
"modules/**/Migrate*Test.php",
|
||||
"modules/color/preview.html",
|
||||
"modules/color/tests/modules/color_test/themes/color_test_theme/color/preview.html",
|
||||
"modules/media/tests/fixtures/oembed/*",
|
||||
"modules/migrate_drupal/tests/fixtures/drupal6.php",
|
||||
"modules/migrate_drupal/tests/fixtures/drupal7.php",
|
||||
"modules/search/tests/UnicodeTest.txt",
|
||||
"modules/system/tests/logo.svgz",
|
||||
"node_modules/*",
|
||||
"profiles/demo_umami/modules/demo_umami_content/default_content/languages/es/**/*",
|
||||
"tests/fixtures/files/*",
|
||||
"tests/Drupal/Tests/Component/Annotation/Doctrine/**",
|
||||
"themes/bartik/color/preview.html",
|
||||
"themes/olivero/fonts/**",
|
||||
"COPYRIGHT.txt",
|
||||
"MAINTAINERS.txt",
|
||||
"package.json",
|
||||
"yarn.lock",
|
||||
"misc/cspell/dictionary.txt"
|
||||
],
|
||||
"ignoreRegExpList": [
|
||||
"^msgstr .*",
|
||||
"!!binary .*",
|
||||
"%[0-9][0-9A-F]",
|
||||
"\\Wi18n"
|
||||
],
|
||||
"dictionaries": ["drupal","companies", "fonts", "html", "php", "softwareTerms"],
|
||||
"dictionaryDefinitions": [
|
||||
{ "name": "drupal", "path": "./misc/cspell/dictionary.txt"}
|
||||
],
|
||||
"flagWords": [
|
||||
"grey",
|
||||
"hte"
|
||||
],
|
||||
"overrides": [
|
||||
{
|
||||
"filename": "**/{*.engine,*.inc,*.install,*.module,*.profile,*.theme}",
|
||||
"languageId": "php"
|
||||
},
|
||||
{
|
||||
"filename": "**/scripts/{*.php.txt, *.sh}",
|
||||
"languageId": "php"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,77 @@
|
|||
# This is a dotenv file used by JavaScript tasks.
|
||||
# Copy this to '.env' to override.
|
||||
|
||||
#############################
|
||||
# General Test Environment #
|
||||
#############################
|
||||
# This is the URL that Drupal can be accessed by. You don't need an installed
|
||||
# site here, just make sure you can at least access the installer screen. If you
|
||||
# don't already have one running, e.g. Apache, you can use PHP's built-in web
|
||||
# server by running the following command in your Drupal root folder:
|
||||
# php -S localhost:8888 .ht.router.php
|
||||
# DRUPAL_TEST_BASE_URL=http://localhost:8888
|
||||
DRUPAL_TEST_BASE_URL=
|
||||
|
||||
# Tests need to be executed with a user in the same group as the web server
|
||||
# user.
|
||||
#DRUPAL_TEST_WEBSERVER_USER=www-data
|
||||
|
||||
# By default we use sqlite as database. Use
|
||||
# mysql://username:password@localhost/databasename#table_prefix for mysql.
|
||||
DRUPAL_TEST_DB_URL=sqlite://localhost/sites/default/files/db.sqlite
|
||||
|
||||
#############
|
||||
# Webdriver #
|
||||
#############
|
||||
|
||||
# If Chromedriver is running as a service elsewhere, set it here.
|
||||
# When using DRUPAL_TEST_CHROMEDRIVER_AUTOSTART leave this at the default settings.
|
||||
DRUPAL_TEST_WEBDRIVER_HOSTNAME=localhost
|
||||
DRUPAL_TEST_WEBDRIVER_PORT=9515
|
||||
|
||||
# If using Selenium, override the path prefix here.
|
||||
# See http://nightwatchjs.org/gettingstarted#browser-drivers-setup
|
||||
#DRUPAL_TEST_WEBDRIVER_PATH_PREFIX=/wd/hub
|
||||
|
||||
################
|
||||
# Chromedriver #
|
||||
################
|
||||
|
||||
# Automatically start chromedriver for local development. Set to false when you
|
||||
# use your own webdriver or chromedriver setup.
|
||||
# Also set it to false when you use a different browser for testing.
|
||||
DRUPAL_TEST_CHROMEDRIVER_AUTOSTART=true
|
||||
|
||||
# A list of arguments to pass to Chrome, separated by spaces
|
||||
# e.g. `--disable-gpu --headless --no-sandbox`.
|
||||
#DRUPAL_TEST_WEBDRIVER_CHROME_ARGS=
|
||||
|
||||
##############
|
||||
# Nightwatch #
|
||||
##############
|
||||
|
||||
# Nightwatch generates output files. Use this to specify the location where these
|
||||
# files need to be stored. The default location is ignored by git, if you modify
|
||||
# the location you will probably want to add this location to your .gitignore.
|
||||
DRUPAL_NIGHTWATCH_OUTPUT=reports/nightwatch
|
||||
|
||||
# The path that Nightwatch searches for assumes the same directory structure as
|
||||
# when you download Drupal core. If you have Drupal installed into a docroot
|
||||
# folder, you can use the following folder structure to add integration tests
|
||||
# for your project, outside of tests specifically for custom modules/themes/profiles.
|
||||
#
|
||||
# .
|
||||
# ├── docroot
|
||||
# │ ├── core
|
||||
# ├── tests
|
||||
# │ ├── Nightwatch
|
||||
# │ │ ├── Tests
|
||||
# │ │ │ ├── myTest.js
|
||||
#
|
||||
# and then set DRUPAL_NIGHTWATCH_SEARCH_DIRECTORY=../
|
||||
#
|
||||
#DRUPAL_NIGHTWATCH_SEARCH_DIRECTORY=
|
||||
|
||||
# Filter directories to look for tests. This uses minimatch syntax.
|
||||
# Separate folders with a comma.
|
||||
DRUPAL_NIGHTWATCH_IGNORE_DIRECTORIES=node_modules,vendor,.*,sites/*/files,sites/*/private,sites/simpletest
|
|
@ -0,0 +1,10 @@
|
|||
assets/vendor/**/*
|
||||
node_modules/**/*
|
||||
**/js_test_files/**/*
|
||||
*.js
|
||||
!*.es6.js
|
||||
modules/locale/tests/locale_test.es6.js
|
||||
!tests/Drupal/Nightwatch/**/*.js
|
||||
misc/polyfills/array.find.es6.js
|
||||
misc/polyfills/element.closest.es6.js
|
||||
misc/polyfills/object.assign.es6.js
|
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"extends": [
|
||||
"airbnb",
|
||||
"plugin:prettier/recommended"
|
||||
],
|
||||
"root": true,
|
||||
"env": {
|
||||
"browser": true,
|
||||
"es6": true,
|
||||
"node": true
|
||||
},
|
||||
"globals": {
|
||||
"Drupal": true,
|
||||
"drupalSettings": true,
|
||||
"drupalTranslations": true,
|
||||
"jQuery": true,
|
||||
"_": true,
|
||||
"Cookies": true,
|
||||
"Backbone": true,
|
||||
"Modernizr": true,
|
||||
"Popper": true,
|
||||
"Shepherd": true,
|
||||
"Sortable": true,
|
||||
"once": true,
|
||||
"CKEDITOR": true,
|
||||
"tabbable": true
|
||||
},
|
||||
"settings": {
|
||||
"react": {
|
||||
"version": "latest"
|
||||
}
|
||||
},
|
||||
"rules": {
|
||||
"prettier/prettier": "error",
|
||||
"consistent-return": ["off"],
|
||||
"no-underscore-dangle": ["off"],
|
||||
"max-nested-callbacks": ["warn", 3],
|
||||
"import/no-mutable-exports": ["warn"],
|
||||
"no-plusplus": ["warn", {
|
||||
"allowForLoopAfterthoughts": true
|
||||
}],
|
||||
"no-param-reassign": ["off"],
|
||||
"no-prototype-builtins": ["off"],
|
||||
"valid-jsdoc": ["warn", {
|
||||
"prefer": {
|
||||
"returns": "return",
|
||||
"property": "prop"
|
||||
},
|
||||
"requireReturn": false
|
||||
}],
|
||||
"no-unused-vars": ["warn"],
|
||||
"operator-linebreak": ["error", "after", { "overrides": { "?": "ignore", ":": "ignore" } }]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,94 @@
|
|||
{
|
||||
"extends": "eslint:recommended",
|
||||
"root": true,
|
||||
"env": {
|
||||
"browser": true
|
||||
},
|
||||
"globals": {
|
||||
"Drupal": true,
|
||||
"drupalSettings": true,
|
||||
"drupalTranslations": true,
|
||||
"domready": true,
|
||||
"jQuery": true,
|
||||
"_": true,
|
||||
"matchMedia": true,
|
||||
"Backbone": true,
|
||||
"Modernizr": true,
|
||||
"CKEDITOR": true
|
||||
},
|
||||
"rules": {
|
||||
"array-bracket-spacing": ["error", "never"],
|
||||
"block-scoped-var": "error",
|
||||
"brace-style": ["error", "stroustrup", {"allowSingleLine": true}],
|
||||
"comma-dangle": ["error", "never"],
|
||||
"comma-spacing": "error",
|
||||
"comma-style": ["error", "last"],
|
||||
"computed-property-spacing": ["error", "never"],
|
||||
"curly": ["error", "all"],
|
||||
"eol-last": "error",
|
||||
"eqeqeq": ["error", "smart"],
|
||||
"guard-for-in": "error",
|
||||
"indent": ["error", 2, {"SwitchCase": 1}],
|
||||
"key-spacing": ["error", {"beforeColon": false, "afterColon": true}],
|
||||
"keyword-spacing": ["error", {"before": true, "after": true}],
|
||||
"linebreak-style": ["error", "unix"],
|
||||
"lines-around-comment": ["error", {"beforeBlockComment": true, "afterBlockComment": false}],
|
||||
"new-parens": "error",
|
||||
"no-array-constructor": "error",
|
||||
"no-caller": "error",
|
||||
"no-catch-shadow": "error",
|
||||
"no-eval": "error",
|
||||
"no-extend-native": "error",
|
||||
"no-extra-bind": "error",
|
||||
"no-extra-parens": ["error", "functions"],
|
||||
"no-implied-eval": "error",
|
||||
"no-iterator": "error",
|
||||
"no-label-var": "error",
|
||||
"no-labels": "error",
|
||||
"no-lone-blocks": "error",
|
||||
"no-loop-func": "error",
|
||||
"no-multi-spaces": "error",
|
||||
"no-multi-str": "error",
|
||||
"no-native-reassign": "error",
|
||||
"no-nested-ternary": "error",
|
||||
"no-new-func": "error",
|
||||
"no-new-object": "error",
|
||||
"no-new-wrappers": "error",
|
||||
"no-octal-escape": "error",
|
||||
"no-process-exit": "error",
|
||||
"no-proto": "error",
|
||||
"no-return-assign": "error",
|
||||
"no-script-url": "error",
|
||||
"no-sequences": "error",
|
||||
"no-shadow-restricted-names": "error",
|
||||
"no-spaced-func": "error",
|
||||
"no-trailing-spaces": "error",
|
||||
"no-undef-init": "error",
|
||||
"no-undefined": "error",
|
||||
"no-unused-expressions": "error",
|
||||
"no-unused-vars": ["error", {"vars": "all", "args": "none"}],
|
||||
"no-with": "error",
|
||||
"object-curly-spacing": ["error", "never"],
|
||||
"one-var": ["error", "never"],
|
||||
"quote-props": ["error", "consistent-as-needed"],
|
||||
"quotes": ["error", "single", "avoid-escape"],
|
||||
"semi": ["error", "always"],
|
||||
"semi-spacing": ["error", {"before": false, "after": true}],
|
||||
"space-before-blocks": ["error", "always"],
|
||||
"space-before-function-paren": ["error", {"anonymous": "always", "named": "never"}],
|
||||
"space-in-parens": ["error", "never"],
|
||||
"space-infix-ops": "error",
|
||||
"space-unary-ops": ["error", { "words": true, "nonwords": false }],
|
||||
"spaced-comment": ["error", "always"],
|
||||
"strict": ["error", "function"],
|
||||
"yoda": ["error", "never"],
|
||||
"max-nested-callbacks": ["warn", 3],
|
||||
"valid-jsdoc": ["warn", {
|
||||
"prefer": {
|
||||
"returns": "return",
|
||||
"property": "prop"
|
||||
},
|
||||
"requireReturn": false
|
||||
}]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"extends": "./.eslintrc.json",
|
||||
"rules": {
|
||||
"no-shadow": "off",
|
||||
"no-new": "off",
|
||||
"no-continue": "off",
|
||||
"new-cap": "off",
|
||||
"max-len": "off",
|
||||
"default-case": "off",
|
||||
"prefer-destructuring": "off",
|
||||
"react/no-this-in-sfc": "off",
|
||||
"react/destructuring-assignment": "off",
|
||||
"import/named": "off"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
# Ignore node_modules folder created when installing core's JavaScript
|
||||
# dependencies.
|
||||
node_modules
|
||||
yarn-error.log
|
||||
|
||||
# Ignore overrides of core's phpcs.xml.dist and phpunit.xml.dist.
|
||||
phpcs.xml
|
||||
phpunit.xml
|
||||
|
||||
# Ignore package-lock.json that is automatically created when adding
|
||||
# dependencies by users of NPMv5.
|
||||
package-lock.json
|
||||
|
||||
# Ignore test reports
|
||||
reports
|
||||
|
||||
# Ignore local Nightwatch settings
|
||||
nightwatch.settings.json
|
||||
|
||||
# Ignore dotenv
|
||||
.env
|
|
@ -0,0 +1 @@
|
|||
modules/locale/tests/locale_test.es6.js
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"printWidth": 80,
|
||||
"semi": true,
|
||||
"singleQuote": true,
|
||||
"trailingComma": "all"
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
themes/claro/**/*.css
|
||||
!themes/claro/**/*.pcss.css
|
||||
themes/olivero/**/*.css
|
||||
!themes/olivero/**/*.pcss.css
|
||||
misc/dialog/off-canvas.reset.css
|
||||
misc/dialog/off-canvas.base.css
|
||||
themes/stable/css/core/dialog/off-canvas.reset.css
|
||||
themes/stable/css/core/dialog/off-canvas.base.css
|
||||
themes/stable9/css/core/dialog/off-canvas.reset.css
|
||||
themes/stable9/css/core/dialog/off-canvas.base.css
|
|
@ -0,0 +1,468 @@
|
|||
{
|
||||
"extends": "stylelint-config-standard",
|
||||
"plugins": [
|
||||
"stylelint-order"
|
||||
],
|
||||
"rules": {
|
||||
"comment-empty-line-before": null,
|
||||
"function-linear-gradient-no-nonstandard-direction": null,
|
||||
"function-whitespace-after": null,
|
||||
"no-descending-specificity": null,
|
||||
"no-duplicate-selectors": null,
|
||||
"no-unknown-animations": true,
|
||||
"media-feature-name-no-unknown": [true, {
|
||||
"ignoreMediaFeatureNames": [
|
||||
"prefers-reduced-motion",
|
||||
"min--moz-device-pixel-ratio"
|
||||
]
|
||||
}],
|
||||
"number-leading-zero": "always",
|
||||
"order/order": [
|
||||
"custom-properties",
|
||||
"dollar-variables",
|
||||
{
|
||||
"type": "at-rule",
|
||||
"hasBlock": false
|
||||
},
|
||||
"declarations",
|
||||
"rules",
|
||||
{
|
||||
"type": "at-rule",
|
||||
"hasBlock": true
|
||||
}
|
||||
],
|
||||
"order/properties-order": [
|
||||
"position",
|
||||
"z-index",
|
||||
"top",
|
||||
"right",
|
||||
"bottom",
|
||||
"left",
|
||||
|
||||
"display",
|
||||
"visibility",
|
||||
"float",
|
||||
"clear",
|
||||
"overflow",
|
||||
"overflow-x",
|
||||
"overflow-y",
|
||||
"-ms-overflow-x",
|
||||
"-ms-overflow-y",
|
||||
"-webkit-overflow-scrolling",
|
||||
"clip",
|
||||
"zoom",
|
||||
|
||||
"flex",
|
||||
"flex-flow",
|
||||
"flex-direction",
|
||||
"flex-wrap",
|
||||
"flex-basis",
|
||||
"flex-grow",
|
||||
"flex-shrink",
|
||||
"flex-order",
|
||||
"flex-pack",
|
||||
|
||||
"-ms-grid",
|
||||
"grid",
|
||||
"grid-area",
|
||||
"grid-template",
|
||||
"grid-template-areas",
|
||||
"-ms-grid-rows",
|
||||
"grid-template-rows",
|
||||
"-ms-grid-columns",
|
||||
"grid-template-columns",
|
||||
"grid-row",
|
||||
"-ms-grid-row",
|
||||
"grid-row-start",
|
||||
"grid-row-end",
|
||||
"grid-column",
|
||||
"-ms-grid-column",
|
||||
"grid-column-start",
|
||||
"grid-column-end",
|
||||
"grid-auto-rows",
|
||||
"grid-auto-columns",
|
||||
"grid-auto-flow",
|
||||
"grid-gap",
|
||||
"grid-row-gap",
|
||||
"grid-column-gap",
|
||||
"-ms-grid-row-align",
|
||||
"-ms-grid-column-align",
|
||||
|
||||
"place-content",
|
||||
"place-items",
|
||||
"align-content",
|
||||
"align-items",
|
||||
"align-self",
|
||||
"justify-content",
|
||||
"justify-items",
|
||||
"justify-self",
|
||||
|
||||
"order",
|
||||
|
||||
"-webkit-box-sizing",
|
||||
"-moz-box-sizing",
|
||||
"box-sizing",
|
||||
"width",
|
||||
"min-width",
|
||||
"max-width",
|
||||
"height",
|
||||
"min-height",
|
||||
"max-height",
|
||||
"margin",
|
||||
"margin-top",
|
||||
"margin-right",
|
||||
"margin-bottom",
|
||||
"margin-left",
|
||||
"margin-block-start",
|
||||
"margin-block-end",
|
||||
"margin-inline-start",
|
||||
"margin-inline-end",
|
||||
"padding",
|
||||
"padding-top",
|
||||
"padding-right",
|
||||
"padding-bottom",
|
||||
"padding-left",
|
||||
"padding-block-start",
|
||||
"padding-block-end",
|
||||
"padding-inline-start",
|
||||
"padding-inline-end",
|
||||
|
||||
"table-layout",
|
||||
"-webkit-columns",
|
||||
"-moz-columns",
|
||||
"columns",
|
||||
"-webkit-column-span",
|
||||
"-moz-column-span",
|
||||
"column-span",
|
||||
"-webkit-column-width",
|
||||
"-moz-column-width",
|
||||
"column-width",
|
||||
"-webkit-column-count",
|
||||
"-moz-column-count",
|
||||
"column-count",
|
||||
"-webkit-column-fill",
|
||||
"-moz-column-fill",
|
||||
"column-fill",
|
||||
"-webkit-column-gap",
|
||||
"-moz-column-gap",
|
||||
"column-gap",
|
||||
"-webkit-column-rule",
|
||||
"-moz-column-rule",
|
||||
"column-rule",
|
||||
"-webkit-column-rule-width",
|
||||
"-moz-column-rule-width",
|
||||
"column-rule-width",
|
||||
"-webkit-column-rule-style",
|
||||
"-moz-column-rule-style",
|
||||
"column-rule-style",
|
||||
"-webkit-column-rule-color",
|
||||
"-moz-column-rule-color",
|
||||
"column-rule-color",
|
||||
"empty-cells",
|
||||
"caption-side",
|
||||
"border-spacing",
|
||||
"border-collapse",
|
||||
"$counter-style",
|
||||
"list-style",
|
||||
"list-style-position",
|
||||
"list-style-type",
|
||||
"list-style-image",
|
||||
|
||||
"content",
|
||||
"quotes",
|
||||
"counter-reset",
|
||||
"counter-increment",
|
||||
"resize",
|
||||
"cursor",
|
||||
"-webkit-user-select",
|
||||
"-moz-user-select",
|
||||
"-ms-user-select",
|
||||
"user-select",
|
||||
"nav-index",
|
||||
"nav-up",
|
||||
"nav-right",
|
||||
"nav-down",
|
||||
"nav-left",
|
||||
"-webkit-transition",
|
||||
"-moz-transition",
|
||||
"-ms-transition",
|
||||
"-o-transition",
|
||||
"transition",
|
||||
"-webkit-transition-delay",
|
||||
"-moz-transition-delay",
|
||||
"-ms-transition-delay",
|
||||
"-o-transition-delay",
|
||||
"transition-delay",
|
||||
"-webkit-transition-timing-function",
|
||||
"-moz-transition-timing-function",
|
||||
"-ms-transition-timing-function",
|
||||
"-o-transition-timing-function",
|
||||
"transition-timing-function",
|
||||
"-webkit-transition-duration",
|
||||
"-moz-transition-duration",
|
||||
"-ms-transition-duration",
|
||||
"-o-transition-duration",
|
||||
"transition-duration",
|
||||
"-webkit-transition-property",
|
||||
"-moz-transition-property",
|
||||
"-ms-transition-property",
|
||||
"-o-transition-property",
|
||||
"transition-property",
|
||||
"-webkit-transform",
|
||||
"-moz-transform",
|
||||
"-ms-transform",
|
||||
"-o-transform",
|
||||
"transform",
|
||||
"-webkit-transform-origin",
|
||||
"-moz-transform-origin",
|
||||
"-ms-transform-origin",
|
||||
"-o-transform-origin",
|
||||
"transform-origin",
|
||||
"$keyframes",
|
||||
"-webkit-animation",
|
||||
"-moz-animation",
|
||||
"-ms-animation",
|
||||
"-o-animation",
|
||||
"animation",
|
||||
"-webkit-animation-name",
|
||||
"-moz-animation-name",
|
||||
"-ms-animation-name",
|
||||
"-o-animation-name",
|
||||
"animation-name",
|
||||
"-webkit-animation-duration",
|
||||
"-moz-animation-duration",
|
||||
"-ms-animation-duration",
|
||||
"-o-animation-duration",
|
||||
"animation-duration",
|
||||
"-webkit-animation-play-state",
|
||||
"-moz-animation-play-state",
|
||||
"-ms-animation-play-state",
|
||||
"-o-animation-play-state",
|
||||
"animation-play-state",
|
||||
"-webkit-animation-timing-function",
|
||||
"-moz-animation-timing-function",
|
||||
"-ms-animation-timing-function",
|
||||
"-o-animation-timing-function",
|
||||
"animation-timing-function",
|
||||
"-webkit-animation-delay",
|
||||
"-moz-animation-delay",
|
||||
"-ms-animation-delay",
|
||||
"-o-animation-delay",
|
||||
"animation-delay",
|
||||
"-webkit-animation-iteration-count",
|
||||
"-moz-animation-iteration-count",
|
||||
"-ms-animation-iteration-count",
|
||||
"-o-animation-iteration-count",
|
||||
"animation-iteration-count",
|
||||
"-webkit-animation-direction",
|
||||
"-moz-animation-direction",
|
||||
"-ms-animation-direction",
|
||||
"-o-animation-direction",
|
||||
"animation-direction",
|
||||
"text-align",
|
||||
"-webkit-text-align-last",
|
||||
"-moz-text-align-last",
|
||||
"-ms-text-align-last",
|
||||
"text-align-last",
|
||||
"vertical-align",
|
||||
"white-space",
|
||||
"text-decoration",
|
||||
"text-emphasis",
|
||||
"text-emphasis-color",
|
||||
"text-emphasis-style",
|
||||
"text-emphasis-position",
|
||||
"text-indent",
|
||||
"-ms-text-justify",
|
||||
"text-justify",
|
||||
"text-transform",
|
||||
"letter-spacing",
|
||||
"word-spacing",
|
||||
"-ms-writing-mode",
|
||||
"text-outline",
|
||||
"text-transform",
|
||||
"text-wrap",
|
||||
"text-overflow",
|
||||
"-ms-text-overflow",
|
||||
"text-overflow-ellipsis",
|
||||
"text-overflow-mode",
|
||||
"-ms-word-wrap",
|
||||
"word-wrap",
|
||||
"word-break",
|
||||
"-ms-word-break",
|
||||
"-moz-tab-size",
|
||||
"-o-tab-size",
|
||||
"tab-size",
|
||||
"-webkit-hyphens",
|
||||
"-moz-hyphens",
|
||||
"hyphens",
|
||||
"pointer-events",
|
||||
"direction",
|
||||
"unicode-bidi",
|
||||
"orphans",
|
||||
"widows",
|
||||
"object-fit",
|
||||
"object-position",
|
||||
|
||||
"opacity",
|
||||
"filter:progid:DXImageTransform.Microsoft.Alpha(Opacity",
|
||||
"-ms-filter:\\'progid:DXImageTransform.Microsoft.Alpha",
|
||||
"-webkit-filter",
|
||||
"-ms-filter",
|
||||
"filter",
|
||||
"-ms-interpolation-mode",
|
||||
"color",
|
||||
"border",
|
||||
"border-collapse",
|
||||
"border-width",
|
||||
"border-style",
|
||||
"border-color",
|
||||
"border-top",
|
||||
"border-top-width",
|
||||
"border-top-style",
|
||||
"border-top-color",
|
||||
"border-right",
|
||||
"border-right-width",
|
||||
"border-right-style",
|
||||
"border-right-color",
|
||||
"border-bottom",
|
||||
"border-bottom-width",
|
||||
"border-bottom-style",
|
||||
"border-bottom-color",
|
||||
"border-left",
|
||||
"border-left-width",
|
||||
"border-left-style",
|
||||
"border-left-color",
|
||||
"border-block-start",
|
||||
"border-block-start-width",
|
||||
"border-block-start-style",
|
||||
"border-block-start-color",
|
||||
"border-inline-end",
|
||||
"border-inline-end-width",
|
||||
"border-inline-end-style",
|
||||
"border-inline-end-color",
|
||||
"border-block-end",
|
||||
"border-block-end-width",
|
||||
"border-block-end-style",
|
||||
"border-block-end-color",
|
||||
"border-inline-start",
|
||||
"border-inline-start-width",
|
||||
"border-inline-start-style",
|
||||
"border-inline-start-color",
|
||||
"-webkit-border-radius",
|
||||
"-moz-border-radius",
|
||||
"border-radius",
|
||||
"-webkit-border-top-left-radius",
|
||||
"-moz-border-radius-topleft",
|
||||
"border-top-left-radius",
|
||||
"-webkit-border-top-right-radius",
|
||||
"-moz-border-radius-topright",
|
||||
"border-top-right-radius",
|
||||
"-webkit-border-bottom-right-radius",
|
||||
"-moz-border-radius-bottomright",
|
||||
"border-bottom-right-radius",
|
||||
"-webkit-border-bottom-left-radius",
|
||||
"-moz-border-radius-bottomleft",
|
||||
"border-bottom-left-radius",
|
||||
"-webkit-border-image",
|
||||
"-moz-border-image",
|
||||
"-o-border-image",
|
||||
"border-image",
|
||||
"-webkit-border-image-source",
|
||||
"-moz-border-image-source",
|
||||
"-o-border-image-source",
|
||||
"border-image-source",
|
||||
"-webkit-border-image-slice",
|
||||
"-moz-border-image-slice",
|
||||
"-o-border-image-slice",
|
||||
"border-image-slice",
|
||||
"-webkit-border-image-width",
|
||||
"-moz-border-image-width",
|
||||
"-o-border-image-width",
|
||||
"border-image-width",
|
||||
"-webkit-border-image-outset",
|
||||
"-moz-border-image-outset",
|
||||
"-o-border-image-outset",
|
||||
"border-image-outset",
|
||||
"-webkit-border-image-repeat",
|
||||
"-moz-border-image-repeat",
|
||||
"-o-border-image-repeat",
|
||||
"border-image-repeat",
|
||||
"outline",
|
||||
"outline-width",
|
||||
"outline-style",
|
||||
"outline-color",
|
||||
"outline-offset",
|
||||
"background",
|
||||
"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader",
|
||||
"background-color",
|
||||
"background-image",
|
||||
"background-repeat",
|
||||
"background-attachment",
|
||||
"background-position",
|
||||
"background-position-x",
|
||||
"-ms-background-position-x",
|
||||
"background-position-y",
|
||||
"-ms-background-position-y",
|
||||
"-webkit-background-clip",
|
||||
"-moz-background-clip",
|
||||
"background-clip",
|
||||
"background-origin",
|
||||
"-webkit-background-size",
|
||||
"-moz-background-size",
|
||||
"-o-background-size",
|
||||
"background-size",
|
||||
"box-decoration-break",
|
||||
"-webkit-box-shadow",
|
||||
"-moz-box-shadow",
|
||||
"box-shadow",
|
||||
"filter:progid:DXImageTransform.Microsoft.gradient",
|
||||
"-ms-filter:\\'progid:DXImageTransform.Microsoft.gradient",
|
||||
"text-shadow",
|
||||
|
||||
"$font-face",
|
||||
"font",
|
||||
"font-family",
|
||||
"src",
|
||||
"$font-feature-values",
|
||||
"$swash",
|
||||
"$annotation",
|
||||
"$ornaments",
|
||||
"$stylistic",
|
||||
"$styleset",
|
||||
"$character-variant",
|
||||
"font-variant-alternates",
|
||||
"font-size",
|
||||
"font-weight",
|
||||
"font-style",
|
||||
"font-variant",
|
||||
"font-size-adjust",
|
||||
"font-stretch",
|
||||
"font-effect",
|
||||
"font-emphasize",
|
||||
"font-emphasize-position",
|
||||
"font-emphasize-style",
|
||||
"font-smooth",
|
||||
"line-height"
|
||||
],
|
||||
"property-no-unknown": null,
|
||||
"rule-empty-line-before": null,
|
||||
"selector-pseudo-element-colon-notation": null,
|
||||
"shorthand-property-no-redundant-values": null,
|
||||
"string-quotes": "double",
|
||||
"unit-allowed-list": ["ch", "deg", "em", "ex", "fr", "ms", "rem", "%", "s", "px", "vw", "vh"],
|
||||
"value-keyword-case": ["lower", {
|
||||
"ignoreProperties": [
|
||||
"--font-family",
|
||||
"font-family"
|
||||
]
|
||||
}]
|
||||
},
|
||||
"ignoreFiles": [
|
||||
"assets/vendor/**/*.css",
|
||||
"tests/Drupal/Tests/Core/Asset/css_test_files/**/*.css",
|
||||
"modules/media/css/plugins/drupalmedia/ckeditor.drupalmedia.css",
|
||||
"themes/stable/css/core/assets/vendor/**/*.css",
|
||||
"themes/stable9/css/core/assets/vendor/**/*.css",
|
||||
"themes/stable9/css/media/plugins/drupalmedia/ckeditor.drupalmedia.css"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
New minor (feature) releases of Drupal are released every six months and
|
||||
patch (bugfix) releases are released every month. More information on the
|
||||
Drupal release cycle: https://www.drupal.org/core/release-cycle-overview
|
||||
|
||||
* For a full list of fixes in the latest release, visit:
|
||||
https://www.drupal.org/latest-release
|
||||
* API change records for Drupal core:
|
||||
https://www.drupal.org/list-changes/drupal
|
|
@ -0,0 +1,64 @@
|
|||
All Drupal code is Copyright 2001 - 2020 by the original authors.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or (at
|
||||
your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program as the file LICENSE.txt; if not, please see
|
||||
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
|
||||
|
||||
Drupal is a registered trademark of Dries Buytaert.
|
||||
|
||||
Drupal includes works under other copyright notices and distributed
|
||||
according to the terms of the GNU General Public License or a compatible
|
||||
license, including:
|
||||
|
||||
JavaScript
|
||||
|
||||
Farbtastic - Copyright (c) 2010 Matt Farina
|
||||
|
||||
HTML5 Shiv - Copyright (c) 2014 Alexander Farkas, Jonathan Neal, Paul Irish,
|
||||
and John-David Dalton
|
||||
|
||||
jQuery - Copyright (c) 2011 John Resig
|
||||
|
||||
jQuery Bgiframe - Copyright (c) 2013 Brandon Aaron (http://brandonaaron.net)
|
||||
|
||||
jQuery BBQ - Copyright (c) 2010 "Cowboy" Ben Alman
|
||||
|
||||
jQuery Cookie - Copyright (c) 2014 Klaus Hartl
|
||||
|
||||
jQuery Form - Copyright (c) 2017 Kevin Morris
|
||||
|
||||
jQuery Globalize - Copyright (c) 2012 Software Freedom Conservancy, Inc.
|
||||
|
||||
jQuery Mousewheel - Copyright OpenJS Foundation and other contributors
|
||||
(https://openjsf.org/)
|
||||
|
||||
jQuery Metadata - Copyright (c) 2006 John Resig, Yehuda Katz, Jörn Zaefferer,
|
||||
Paul McLanahan
|
||||
|
||||
jQuery Once - Copyright (c) 2009 Konstantin Käfer
|
||||
|
||||
jQuery UI - Copyright (c) 2015 by the authors and other contributors
|
||||
(http://jqueryui.com/about)
|
||||
|
||||
Sizzle.js - Copyright (c) 2016 JS Foundation and other contributors
|
||||
(https://js.foundation)
|
||||
|
||||
PHP
|
||||
|
||||
Drupal depends on numerous PHP Composer packages. All Composer packages
|
||||
retain the copyright of the authors.
|
||||
|
||||
Brand materials
|
||||
|
||||
Drupal brand materials under core/misc/logo have a dedicated license. See
|
||||
core/misc/logo/LICENSE.txt.
|
|
@ -0,0 +1,45 @@
|
|||
|
||||
CREATE THE MySQL DATABASE
|
||||
--------------------------
|
||||
|
||||
This step is only necessary if you don't already have a database set up (e.g.,
|
||||
by your host). In the following examples, 'username' is an example MySQL user
|
||||
which has the CREATE and GRANT privileges. Use the appropriate user name for
|
||||
your system.
|
||||
|
||||
First, you must create a new database for your Drupal site (here, 'databasename'
|
||||
is the name of the new database):
|
||||
|
||||
mysqladmin -u username -p create databasename
|
||||
|
||||
MySQL will prompt for the 'username' database password and then create the
|
||||
initial database files. Next you must log in and set the access database rights:
|
||||
|
||||
mysql -u username -p
|
||||
|
||||
Again, you will be asked for the 'username' database password. At the MySQL
|
||||
prompt, enter the following command:
|
||||
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER,
|
||||
CREATE TEMPORARY TABLES ON databasename.*
|
||||
TO 'username'@'localhost' IDENTIFIED BY 'password';
|
||||
|
||||
where:
|
||||
|
||||
'databasename' is the name of your database
|
||||
'username' is the username of your MySQL account
|
||||
'localhost' is the web server host where Drupal is installed
|
||||
'password' is the password required for that username
|
||||
|
||||
Note: Unless the database user/host combination for your Drupal installation
|
||||
has all of the privileges listed above (except possibly CREATE TEMPORARY TABLES,
|
||||
which is currently only used by Drupal core automated tests and some
|
||||
contributed modules), you will not be able to install or run Drupal.
|
||||
|
||||
If successful, MySQL will reply with:
|
||||
|
||||
Query OK, 0 rows affected
|
||||
|
||||
If the InnoDB storage engine is available, it will be used for all database
|
||||
tables. InnoDB provides features over MyISAM such as transaction support,
|
||||
row-level locks, and consistent non-locking reads.
|
|
@ -0,0 +1,44 @@
|
|||
|
||||
CREATE THE PostgreSQL DATABASE
|
||||
------------------------------
|
||||
|
||||
Note that the database must be created with UTF-8 (Unicode) encoding.
|
||||
|
||||
1. CREATE DATABASE USER
|
||||
|
||||
This step is only necessary if you don't already have a user set up (e.g., by
|
||||
your host), or want to create a new user for use with Drupal only. The
|
||||
following command creates a new user named 'username' and asks for a password
|
||||
for that user:
|
||||
|
||||
createuser --pwprompt --encrypted --no-createrole --no-createdb username
|
||||
|
||||
If there are no errors, then the command was successful.
|
||||
|
||||
2. CREATE DRUPAL DATABASE
|
||||
|
||||
This step is only necessary if you don't already have a database set up
|
||||
(e.g., by your host) or want to create a new database for use with Drupal
|
||||
only. The following command creates a new database named 'databasename',
|
||||
which is owned by the previously created 'username':
|
||||
|
||||
createdb --encoding=UTF8 --owner=username databasename
|
||||
|
||||
If there are no errors, then the command was successful.
|
||||
|
||||
3. CREATE SCHEMA OR SCHEMAS (Optional advanced step)
|
||||
|
||||
Drupal will run across different schemas within your database if you so wish.
|
||||
By default, Drupal runs inside the 'public' schema but you can use $db_prefix
|
||||
inside settings.php to define a schema for Drupal to run inside of, or
|
||||
specify tables that are shared inside of a separate schema. Drupal will not
|
||||
create schemas for you. In fact, the user that Drupal runs as should not be
|
||||
allowed to do this. You'll need to execute the SQL below as a superuser,
|
||||
replace 'username' with the username that Drupal uses to connect to
|
||||
PostgreSQL, and replace 'schema_name' with a schema name you wish to use,
|
||||
such as 'shared':
|
||||
|
||||
CREATE SCHEMA schema_name AUTHORIZATION username;
|
||||
|
||||
Do this for as many schemas as you need. See default.settings.php for
|
||||
instructions on how to set which tables use which schemas.
|
|
@ -0,0 +1,39 @@
|
|||
|
||||
SQLITE REQUIREMENTS
|
||||
-------------------
|
||||
|
||||
PHP's PDO SQLite driver must be enabled. If you do not have pdo_sqlite
|
||||
available, depending on your system there are different ways to install it.
|
||||
|
||||
Windows
|
||||
-------
|
||||
Read more about it on http://www.php.net/manual/en/pdo.installation.php
|
||||
|
||||
Linux
|
||||
-----
|
||||
|
||||
sudo apt-get install php-sqlite3
|
||||
|
||||
SQLITE DATABASE CREATION
|
||||
------------------------
|
||||
|
||||
The Drupal installer will create the SQLite database for you. The only
|
||||
requirement is that the installer must have write permissions to the directory
|
||||
where the database file resides. This directory (not just the database file) also
|
||||
has to remain writable by the web server going forward for SQLite to continue to
|
||||
be able to operate.
|
||||
|
||||
On the "Database configuration" form in the "Database file" field, you must
|
||||
supply the exact path to where you wish your database file to reside. It is
|
||||
strongly suggested that you choose a path that is outside of the webroot, yet
|
||||
ensure that the directory is writable by the web server.
|
||||
|
||||
If you must place your database file in your webroot, you could try using the
|
||||
following in your "Database file" field:
|
||||
|
||||
sites/default/files/.ht.sqlite
|
||||
|
||||
Note: The .ht in the name will tell Apache to prevent the database from being
|
||||
downloaded. Please check that the file is, indeed, protected by your webserver.
|
||||
If not, please consult the documentation of your webserver on how to protect a
|
||||
file from downloading.
|
|
@ -0,0 +1,460 @@
|
|||
|
||||
CONTENTS OF THIS FILE
|
||||
---------------------
|
||||
|
||||
* Quickstart
|
||||
* Requirements and notes
|
||||
* Optional server requirements
|
||||
* Installation
|
||||
* Reinstall
|
||||
* Building and customizing your site
|
||||
* Multisite configuration
|
||||
* Multilingual configuration
|
||||
|
||||
QUICKSTART
|
||||
----------------------
|
||||
|
||||
Prerequisites:
|
||||
- PHP 7.3.0 (or greater) (https://php.net).
|
||||
|
||||
In the instructions below, replace the version x.y.z with the specific version
|
||||
you wish to download. Example: 8.6.0.zip. You can find the latest stable version
|
||||
at https://www.drupal.org/project/drupal.
|
||||
|
||||
Download and extract the Drupal package:
|
||||
- curl -sS https://ftp.drupal.org/files/projects/drupal-x.y.z.zip --output drupal-x.y.z.zip
|
||||
- unzip drupal-x.y.z.zip
|
||||
- cd /path/to/drupal-x.y.z
|
||||
- php core/scripts/drupal quick-start
|
||||
|
||||
Wait… installation can take a minute or two. A successful installation will
|
||||
result in opening the new site in your browser.
|
||||
|
||||
Run the following command for a list of available options that you may need to
|
||||
configure quick-start:
|
||||
- php core/scripts/drupal quick-start --help
|
||||
|
||||
Follow the instructions in the REINSTALL section below to start over.
|
||||
|
||||
NOTE: This quick start solution uses PHP's built-in web server and is not
|
||||
intended for production use. Read more about how to run Drupal in a production
|
||||
environment below.
|
||||
|
||||
REQUIREMENTS AND NOTES
|
||||
----------------------
|
||||
|
||||
Drupal requires:
|
||||
|
||||
- A web server with PHP support, for example:
|
||||
- Apache 2.4.7 (or greater) (http://httpd.apache.org/).
|
||||
- Nginx 1.1 (or greater) (http://nginx.com/).
|
||||
- PHP 7.3.0 (or greater) (http://php.net/). For better security support it is
|
||||
recommended to update to at least 7.3.13.
|
||||
- One of the following databases:
|
||||
- MySQL 5.7.8 (or greater) (http://www.mysql.com/).
|
||||
- MariaDB 10.3.7 (or greater) (https://mariadb.org/). MariaDB is a fully
|
||||
compatible drop-in replacement for MySQL.
|
||||
- Percona Server 5.7.8 (or greater) (http://www.percona.com/). Percona
|
||||
Server is a backwards-compatible replacement for MySQL.
|
||||
- PostgreSQL 10 (or greater) (http://www.postgresql.org/).
|
||||
- SQLite 3.26 (or greater) (http://www.sqlite.org/).
|
||||
|
||||
For more detailed information about Drupal requirements, including a list of
|
||||
PHP extensions and configurations that are required, see "System requirements"
|
||||
(https://www.drupal.org/docs/system-requirements) in the Drupal.org online
|
||||
documentation.
|
||||
|
||||
For detailed information on how to configure a test server environment using a
|
||||
variety of operating systems and web servers, see "Local server setup"
|
||||
(https://www.drupal.org/node/157602) in the Drupal.org online documentation.
|
||||
|
||||
Note that all directories mentioned in this document are always relative to the
|
||||
directory of your Drupal installation, and commands are meant to be run from
|
||||
this directory (except for the initial commands that create that directory).
|
||||
|
||||
OPTIONAL SERVER REQUIREMENTS
|
||||
----------------------------
|
||||
|
||||
- If you want to use Drupal's "Clean URLs" feature on an Apache web server, you
|
||||
will need the mod_rewrite module and the ability to use local .htaccess
|
||||
files. For Clean URLs support on IIS, see "Clean URLs with IIS"
|
||||
(https://www.drupal.org/node/3854) in the Drupal.org online documentation.
|
||||
|
||||
- If you plan to use XML-based services such as RSS aggregation, you will need
|
||||
PHP's XML extension. This extension is enabled by default on most PHP
|
||||
installations.
|
||||
|
||||
- To serve gzip compressed CSS and JS files on an Apache web server, you will
|
||||
need the mod_headers module and the ability to use local .htaccess files.
|
||||
|
||||
- Some Drupal functionality (e.g., checking whether Drupal and contributed
|
||||
modules need updates, RSS aggregation, etc.) require that the web server be
|
||||
able to go out to the web and download information. If you want to use this
|
||||
functionality, you need to verify that your hosting provider or server
|
||||
configuration allows the web server to initiate outbound connections. Most web
|
||||
hosting setups allow this.
|
||||
|
||||
INSTALLATION
|
||||
------------
|
||||
|
||||
1. Download and extract Drupal.
|
||||
|
||||
You can obtain the latest Drupal release from https://www.drupal.org -- the
|
||||
files are available in .tar.gz and .zip formats and can be extracted using
|
||||
most compression tools.
|
||||
|
||||
To download and extract the files, on a typical Unix/Linux command line, use
|
||||
the following commands (assuming you want version x.y.z of Drupal in .tar.gz
|
||||
format):
|
||||
|
||||
wget https://www.drupal.org/files/projects/drupal-x.y.z.tar.gz
|
||||
tar -zxvf drupal-x.y.z.tar.gz
|
||||
|
||||
This will create a new directory drupal-x.y.z/ containing all Drupal files
|
||||
and directories. Then, to move the contents of that directory into a
|
||||
directory within your web server's document root or your public HTML
|
||||
directory, continue with this command:
|
||||
|
||||
mv drupal-x.y.z/* drupal-x.y.z/.htaccess drupal-x.y.z/.csslintrc drupal-x.y.z/.editorconfig drupal-x.y.z/.eslintignore drupal-x.y.z/.eslintrc.json drupal-x.y.z/.gitattributes /path/to/your/installation
|
||||
|
||||
You can also download the latest version of Drupal using Git on the command
|
||||
line and set up a repository by following the instructions at
|
||||
https://www.drupal.org/project/drupal/git-instructions for "Setting up
|
||||
repository for the first time".
|
||||
|
||||
Once you have downloaded Drupal successfully, you may install Composer
|
||||
globally using the instructions at
|
||||
https://getcomposer.org/doc/00-intro.md#globally
|
||||
|
||||
With Composer installed, run the following command from the Drupal web root:
|
||||
|
||||
composer install
|
||||
|
||||
2. Create the Drupal database.
|
||||
|
||||
Because Drupal stores all site information in a database, the Drupal
|
||||
installer will attempt to create this database for you. If you create the
|
||||
database manually, you must grant Drupal certain database privileges (such as
|
||||
the ability to create tables). For details, consult INSTALL.mysql.txt,
|
||||
INSTALL.pgsql.txt, or INSTALL.sqlite.txt. You may also need to consult your
|
||||
web hosting provider for instructions specific to your web host.
|
||||
|
||||
Take note of the username, password, database name, and hostname as you
|
||||
create the database. You will enter this information during the install.
|
||||
|
||||
3. Run the install script.
|
||||
|
||||
To run the install script, point your browser to the base URL of your
|
||||
website (e.g., http://www.example.com).
|
||||
|
||||
You will be guided through several screens to set up the database, add the
|
||||
site maintenance account (the first user, also known as user/1), and provide
|
||||
basic website settings.
|
||||
|
||||
During installation, several files and directories need to be created, which
|
||||
the install script will try to do automatically. However, on some hosting
|
||||
environments, manual steps are required, and the install script will tell
|
||||
you that it cannot proceed until you fix certain issues. This is normal and
|
||||
does not indicate a problem with your server.
|
||||
|
||||
The most common steps you may need to perform are:
|
||||
|
||||
a. Missing files directory.
|
||||
|
||||
The install script will attempt to create a public file storage directory
|
||||
in the default location at sites/default/files (the location of the files
|
||||
directory may be changed after Drupal is installed).
|
||||
|
||||
If auto-creation fails, you can create the directory yourself. (If you are
|
||||
creating a multisite installation, substitute the correct sites directory
|
||||
for sites/default; see the Multisite Configuration section of this file,
|
||||
below.) Sample commands from a Unix/Linux command line:
|
||||
|
||||
mkdir sites/default/files
|
||||
chmod a+w sites/default/files
|
||||
|
||||
Alternatively, you can make the install script work by changing
|
||||
permissions on the sites/default directory. The web server can then
|
||||
create the files directory within it for you.
|
||||
|
||||
For example, on a Unix/Linux command line, you can grant everyone
|
||||
(including the web server) permission to write to the sites/default
|
||||
directory with this command:
|
||||
|
||||
chmod a+w sites/default
|
||||
|
||||
Then re-run install.php (e.g. by clicking "try again" at the bottom of
|
||||
the Requirements problem page. Once the files directory is created, you
|
||||
will need to grant everyone (including the web server) permission to
|
||||
write to it with this command:
|
||||
|
||||
chmod a+w sites/default/files
|
||||
|
||||
Be sure to set the permissions for the default directory back after the
|
||||
installation is finished! (Leave the files directory writable.)
|
||||
Sample command:
|
||||
|
||||
chmod go-w sites/default
|
||||
|
||||
b. Missing settings file.
|
||||
|
||||
Drupal will try to automatically create a settings.php configuration file,
|
||||
which is normally in the directory sites/default (to avoid problems when
|
||||
upgrading, Drupal is not packaged with this file). If auto-creation fails,
|
||||
you will need to create this file yourself, using the file
|
||||
sites/default/default.settings.php as a template.
|
||||
|
||||
For example, on a Unix/Linux command line, you can make a copy of the
|
||||
default.settings.php file with the command:
|
||||
|
||||
cp sites/default/default.settings.php sites/default/settings.php
|
||||
|
||||
Next, grant write privileges to the file to everyone (including the web
|
||||
server) with the command:
|
||||
|
||||
chmod a+w sites/default/settings.php
|
||||
|
||||
Be sure to set the permissions back after the installation is finished!
|
||||
Sample command:
|
||||
|
||||
chmod go-w sites/default/settings.php
|
||||
|
||||
c. Write permissions after install.
|
||||
|
||||
The install script will attempt to write-protect the settings.php file and
|
||||
the sites/default directory after saving your configuration. If this
|
||||
fails, you will be notified, and you can do it manually. Sample commands
|
||||
from a Unix/Linux command line:
|
||||
|
||||
chmod go-w sites/default/settings.php
|
||||
chmod go-w sites/default
|
||||
|
||||
4. Verify that the site is working.
|
||||
|
||||
When the install script finishes, you will be logged in with the site
|
||||
maintenance account on a "Welcome" page. If the default Drupal theme is not
|
||||
displaying properly and links on the page result in "Page Not Found" errors,
|
||||
you may be experiencing problems with clean URLs. Visit
|
||||
https://www.drupal.org/docs/8/clean-urls-in-drupal-8 to troubleshoot.
|
||||
|
||||
5. Change file system storage settings (optional).
|
||||
|
||||
The files directory created in step 3 is the default file system path used to
|
||||
store all uploaded files, as well as some temporary files created by
|
||||
Drupal. After installation, you can modify the file system path to store
|
||||
uploaded files in a different location.
|
||||
|
||||
It is not necessary to modify this path, but you may wish to change it if:
|
||||
|
||||
- Your site runs multiple Drupal installations from a single codebase (modify
|
||||
the file system path of each installation to a different directory so that
|
||||
uploads do not overlap between installations).
|
||||
|
||||
- Your site runs on a number of web servers behind a load balancer or reverse
|
||||
proxy (modify the file system path on each server to point to a shared file
|
||||
repository).
|
||||
|
||||
- You want to restrict access to uploaded files.
|
||||
|
||||
To modify the file system path:
|
||||
|
||||
a. Ensure that the new location for the path exists and is writable by the
|
||||
web server. For example, to create a new directory named uploads and grant
|
||||
write permissions, use the following commands on a Unix/Linux command
|
||||
line:
|
||||
|
||||
mkdir uploads
|
||||
chmod a+w uploads
|
||||
|
||||
b. Open your settings.php in a plain-text editor, and uncomment (remove the #
|
||||
at the start of line) this line:
|
||||
|
||||
# $settings['file_public_path'] = 'sites/default/files';
|
||||
|
||||
Enter the desired path and save the file.
|
||||
|
||||
If you want to use private file storage, you need to uncomment (remove
|
||||
the # at the start of line) the following line in settings.php:
|
||||
|
||||
# $settings['file_private_path'] = '';
|
||||
|
||||
Enter the path for private files and save the file.
|
||||
|
||||
Changing the file system path after files have been uploaded may cause
|
||||
unexpected problems on an existing site. If you modify the file system path
|
||||
on an existing site, remember to copy all files from the original location
|
||||
to the new location.
|
||||
|
||||
6. Revoke documentation file permissions (optional).
|
||||
|
||||
Some administrators suggest making the documentation files, especially
|
||||
CHANGELOG.txt, non-readable so that the exact version of Drupal you are
|
||||
running is slightly more difficult to determine. If you wish to implement
|
||||
this optional security measure, from a Unix/Linux command line you can use
|
||||
the following command:
|
||||
|
||||
chmod a-r core/CHANGELOG.txt
|
||||
|
||||
Note that the example only affects CHANGELOG.txt. To completely hide all
|
||||
documentation files from public view, repeat this command for each of the
|
||||
Drupal documentation files in the installation directory, substituting the
|
||||
name of each file for CHANGELOG.txt in the example.
|
||||
|
||||
For more information on setting file permissions, see "Modifying Linux,
|
||||
Unix, and Mac file permissions" (https://www.drupal.org/node/202483) or
|
||||
"Modifying Windows file permissions" (https://www.drupal.org/node/202491) in
|
||||
the Drupal.org online documentation.
|
||||
|
||||
7. Set up independent "cron" maintenance jobs.
|
||||
|
||||
Many Drupal modules have tasks that must be run periodically, including the
|
||||
Search module (building and updating the index used for keyword searching),
|
||||
the Aggregator module (retrieving feeds from other sites), and the System
|
||||
module (performing routine maintenance and pruning of database tables). These
|
||||
tasks are known as "cron maintenance tasks", named after the Unix/Linux
|
||||
"cron" utility.
|
||||
|
||||
When you install Drupal, its built-in cron feature is enabled, which
|
||||
automatically runs the cron tasks periodically, triggered by people visiting
|
||||
pages of your site. You can configure the built-in cron feature by navigating
|
||||
to Administration > Configuration > System > Cron.
|
||||
|
||||
It is also possible to run the cron tasks independent of site visits; this is
|
||||
recommended for most sites. To do this, you will need to set up an automated
|
||||
process to visit the page /cron on your site, which executes the cron
|
||||
tasks.
|
||||
|
||||
The URL of the cron page requires a "cron key" to protect against
|
||||
unauthorized access. Your site's cron key is automatically generated during
|
||||
installation and is specific to your site. The full URL of the page, with the
|
||||
cron key, is available in the "Cron maintenance tasks" section of the Status
|
||||
report page at Administration > Reports > Status report.
|
||||
|
||||
As an example of how to set up this automated process, you can use the
|
||||
crontab utility on Unix/Linux systems. The following crontab line uses the
|
||||
wget command to visit the cron page, and runs each hour, on the hour:
|
||||
|
||||
0 * * * * wget -O - -q -t 1 http://example.com/cron/YOURKEY
|
||||
|
||||
Replace the text "http://example.com/cron/YOURKEY" in the example with the
|
||||
full URL displayed under "Cron maintenance tasks" on the "Status report"
|
||||
page.
|
||||
|
||||
More information about cron maintenance tasks is available at
|
||||
https://www.drupal.org/cron, and sample cron shell scripts can be found in
|
||||
the core/scripts/ directory. (Note that these scripts must be customized like
|
||||
the above example, to add your site-specific cron key and domain name.)
|
||||
|
||||
REINSTALL
|
||||
------------
|
||||
|
||||
Drupal can be reinstalled without downloading and extracting the Drupal release.
|
||||
|
||||
1. Drop all the tables in your database.
|
||||
|
||||
2. Remove everything in sites/default/files.
|
||||
|
||||
3. Remove sites/default/settings.php.
|
||||
|
||||
4. Follow the Installation Instructions above starting from Step 3 (Run the
|
||||
install script).
|
||||
|
||||
BUILDING AND CUSTOMIZING YOUR SITE
|
||||
----------------------------------
|
||||
|
||||
A new installation of Drupal defaults to a very basic configuration. To extend
|
||||
your site, you use "modules" and "themes". A module is a plugin that adds
|
||||
functionality to Drupal, while a theme changes the look of your site. The core
|
||||
of Drupal provides several optional modules and themes, and you can download
|
||||
more at https://www.drupal.org/project/project_module and
|
||||
https://www.drupal.org/project/project_theme
|
||||
|
||||
Do not mix downloaded or custom modules and themes with Drupal's core modules
|
||||
and themes. Drupal's modules and themes are located in the /core/modules and
|
||||
/core/themes directories, while the modules and themes you add to Drupal are
|
||||
normally placed in the /modules and /themes directories. If you run a multisite
|
||||
installation, you can also place modules and themes in the site-specific
|
||||
directories -- see the Multisite Configuration section, below.
|
||||
|
||||
Never edit Drupal's core modules and themes; instead, use the hooks available in
|
||||
the Drupal API. To modify the behavior of Drupal, develop a module as described
|
||||
at https://www.drupal.org/developing/modules. To modify the look of Drupal,
|
||||
create a subtheme as described at https://www.drupal.org/node/2165673, or a
|
||||
completely new theme as described at https://www.drupal.org/docs/8/theming
|
||||
|
||||
MULTISITE CONFIGURATION
|
||||
-----------------------
|
||||
|
||||
A single Drupal installation can host several Drupal-powered sites, each with
|
||||
its own individual configuration.
|
||||
|
||||
For this to work you need the file sites/sites.php to exist. Make a copy of
|
||||
the example.sites.php file:
|
||||
|
||||
$ cp sites/example.sites.php sites/sites.php
|
||||
|
||||
Additional site configurations are created in subdirectories within the 'sites'
|
||||
directory. Each subdirectory must have a 'settings.php' file, which specifies
|
||||
the configuration settings. The easiest way to create additional sites is to
|
||||
copy file 'default.settings.php' from the 'sites/default' directory into the
|
||||
new site directory with file name 'settings.php' and modify as appropriate.
|
||||
The new directory name is constructed from the site's URL. The configuration
|
||||
for www.example.com could be in 'sites/example.com/settings.php' (note that
|
||||
'www.' should be omitted if users can access your site at http://example.com/).
|
||||
|
||||
$ cp sites/default/default.settings.php sites/example.com/settings.php
|
||||
|
||||
Sites do not have to have a different domain. You can also use subdomains and
|
||||
subdirectories for Drupal sites. For example, example.com, sub.example.com, and
|
||||
sub.example.com/site3 can all be defined as independent Drupal sites. The setup
|
||||
for a configuration such as this would look like the following:
|
||||
|
||||
sites/default/settings.php
|
||||
sites/example.com/settings.php
|
||||
sites/sub.example.com/settings.php
|
||||
sites/sub.example.com.site3/settings.php
|
||||
|
||||
When searching for a site configuration (for example www.sub.example.com/site3),
|
||||
Drupal will search for configuration files in the following order, using the
|
||||
first configuration it finds:
|
||||
|
||||
sites/www.sub.example.com.site3/settings.php
|
||||
sites/sub.example.com.site3/settings.php
|
||||
sites/example.com.site3/settings.php
|
||||
sites/www.sub.example.com/settings.php
|
||||
sites/sub.example.com/settings.php
|
||||
sites/example.com/settings.php
|
||||
sites/default/settings.php
|
||||
|
||||
If you are installing on a non-standard port, the port number is treated as the
|
||||
deepest subdomain. For example: http://www.example.com:8080/ could be loaded
|
||||
from sites/8080.www.example.com/. The port number will be removed according to
|
||||
the pattern above if no port-specific configuration is found, just like a real
|
||||
subdomain.
|
||||
|
||||
Each site configuration can have its own site-specific modules and themes in
|
||||
addition to those installed in the standard 'modules' and 'themes' directories.
|
||||
To use site-specific modules or themes, simply create a 'modules' or 'themes'
|
||||
directory within the site configuration directory. For example, if
|
||||
sub.example.com has a custom theme and a custom module that should not be
|
||||
accessible to other sites, the setup would look like this:
|
||||
|
||||
sites/sub.example.com/
|
||||
settings.php
|
||||
themes/custom_theme
|
||||
modules/custom_module
|
||||
|
||||
For more information about multiple virtual hosts or the configuration
|
||||
settings, consult https://www.drupal.org/docs/8/multisite
|
||||
|
||||
For more information on configuring Drupal's file system path in a multisite
|
||||
configuration, see step 6 above.
|
||||
|
||||
MULTILINGUAL CONFIGURATION
|
||||
--------------------------
|
||||
|
||||
By default, Drupal is installed in one language, and further languages may be
|
||||
installed later.
|
||||
|
||||
For detailed instructions, visit
|
||||
https://www.drupal.org/docs/8/multilingual
|
|
@ -0,0 +1,339 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
|
@ -0,0 +1,553 @@
|
|||
Drupal core is built and maintained by the Drupal project community. Everyone is
|
||||
encouraged to submit issues and changes (patches) to improve Drupal, and to
|
||||
contribute in other ways -- see https://www.drupal.org/contribute to find out
|
||||
how.
|
||||
|
||||
This file lists the active maintainers. For a list of past maintainers, see:
|
||||
https://www.drupal.org/core/maintainers/past
|
||||
|
||||
|
||||
Core committers
|
||||
---------------
|
||||
|
||||
The Drupal core committers oversee the development of Drupal as a whole. The
|
||||
core committers for Drupal are (in alphabetical order):
|
||||
|
||||
BDFL
|
||||
- Dries Buytaert 'dries' https://www.drupal.org/u/dries
|
||||
|
||||
Product managers
|
||||
- Dries Buytaert 'dries' https://www.drupal.org/u/dries
|
||||
- Angela Byron 'webchick' https://www.drupal.org/u/webchick
|
||||
- Gábor Hojtsy 'Gábor Hojtsy' https://www.drupal.org/u/gábor-hojtsy
|
||||
- Roy Scholten 'yoroy' https://www.drupal.org/u/yoroy
|
||||
|
||||
Framework managers
|
||||
|
||||
Backend
|
||||
- Alex Bronstein 'effulgentsia' https://www.drupal.org/u/effulgentsia
|
||||
- Nathaniel Catchpole 'catch' https://www.drupal.org/u/catch
|
||||
- Alex Pott 'alexpott' https://www.drupal.org/u/alexpott
|
||||
- Lee Rowlands 'larowlan' https://www.drupal.org/u/larowlan
|
||||
|
||||
Frontend
|
||||
- Lauri Eskola 'lauriii' https://www.drupal.org/u/lauriii
|
||||
- (provisional) Cristina Chumillas 'ckrina' https://www.drupal.org/u/ckrina
|
||||
- (provisional) Ben Mullins 'bnjmnm' https://www.drupal.org/u/bnjmnm
|
||||
|
||||
Release managers
|
||||
- Nathaniel Catchpole 'catch' https://www.drupal.org/u/catch
|
||||
- Jess Myrbo 'xjm' https://www.drupal.org/u/xjm
|
||||
- (provisional) Victoria Spagnolo 'quietone' https://www.drupal.org/u/quietone
|
||||
|
||||
Core JavaScript packages
|
||||
- (provisional) Théodore Biadala 'nod_' https://www.drupal.org/u/nod_
|
||||
- (provisional) Sally Young 'justafish' https://www.drupal.org/u/justafish
|
||||
|
||||
Committer team facilitators
|
||||
- Pamela Barone 'pameeela' https://www.drupal.org/u/pameeela
|
||||
|
||||
Subsystem maintainers
|
||||
---------------------
|
||||
|
||||
The Drupal core subsystem maintainers oversee the development of Drupal
|
||||
subsystems. See https://www.drupal.org/contribute/core-maintainers for more
|
||||
information on their responsibilities, and to find out how to become a subsystem
|
||||
maintainer. Current subsystem maintainers:
|
||||
|
||||
Actions
|
||||
- ?
|
||||
|
||||
Aggregator
|
||||
- ?
|
||||
|
||||
Ajax
|
||||
- Alex Bronstein 'effulgentsia' https://www.drupal.org/u/effulgentsia
|
||||
- Tim Plunkett 'tim.plunkett' https://www.drupal.org/u/tim.plunkett
|
||||
|
||||
Asset Library API
|
||||
- ?
|
||||
|
||||
Authentication and Authorization
|
||||
- ?
|
||||
|
||||
Automated Cron
|
||||
- ?
|
||||
|
||||
Ban
|
||||
- ?
|
||||
|
||||
Bartik
|
||||
- Emma Maria Karayiannis 'emma.maria' https://www.drupal.org/u/emma.maria
|
||||
|
||||
Base system
|
||||
- ?
|
||||
|
||||
Basic Auth
|
||||
- Juampy Novillo Requena 'juampy' https://www.drupal.org/u/juampy
|
||||
|
||||
Batch API
|
||||
- John Cook 'John Cook' https://www.drupal.org/u/john-cook
|
||||
|
||||
BigPipe
|
||||
- Wim Leers 'Wim Leers' https://www.drupal.org/u/wim-leers
|
||||
- Fabian Franz 'Fabianx' https://www.drupal.org/u/fabianx
|
||||
|
||||
Block
|
||||
- Tim Plunkett 'tim.plunkett' https://www.drupal.org/u/tim.plunkett
|
||||
- Ben Dougherty 'benjy' https://www.drupal.org/u/benjy
|
||||
|
||||
Block Content
|
||||
- Lee Rowlands 'larowlan' https://www.drupal.org/u/larowlan
|
||||
|
||||
Book
|
||||
- Peter Wolanin 'pwolanin' https://www.drupal.org/u/pwolanin
|
||||
|
||||
Bootstrap
|
||||
- ?
|
||||
|
||||
Breakpoint
|
||||
- Peter Droogmans 'attiks' https://www.drupal.org/u/attiks
|
||||
- Marc Drummond 'mdrummond' https://www.drupal.org/u/mdrummond
|
||||
|
||||
Cache
|
||||
- Nathaniel Catchpole 'catch' https://www.drupal.org/u/catch
|
||||
|
||||
CKEditor
|
||||
- Henrik Danielsson 'TwoD' https://www.drupal.org/u/TwoD
|
||||
- Wim Leers 'Wim Leers' https://www.drupal.org/u/wim-leers
|
||||
- Marek 'mlewand' Lewandowski https://www.drupal.org/u/mlewand
|
||||
|
||||
Claro
|
||||
- Cristina Chumillas 'ckrina' https://www.drupal.org/u/ckrina
|
||||
- Sascha Eggenberger 'saschaeggi' https://www.drupal.org/u/saschaeggi
|
||||
- Lauri Eskola 'lauriii' https://www.drupal.org/u/lauriii
|
||||
- Ben Mullins 'bnjmnm' https://www.drupal.org/u/bnjmnm
|
||||
|
||||
Classy
|
||||
- David Hernandez 'davidhernandez' https://www.drupal.org/u/davidhernandez
|
||||
|
||||
Color
|
||||
- ?
|
||||
|
||||
Comment
|
||||
- Lee Rowlands 'larowlan' https://www.drupal.org/u/larowlan
|
||||
- Andrey Postnikov 'andypost' https://www.drupal.org/u/andypost
|
||||
|
||||
Configuration API
|
||||
- Alex Pott 'alexpott' https://www.drupal.org/u/alexpott
|
||||
- Matthew Tift 'mtift' https://www.drupal.org/u/mtift
|
||||
|
||||
Configuration Entity API
|
||||
- Alex Pott 'alexpott' https://www.drupal.org/u/alexpott
|
||||
- Tim Plunkett 'tim.plunkett' https://www.drupal.org/u/tim.plunkett
|
||||
|
||||
Configuration UI
|
||||
- Tim Plunkett 'tim.plunkett' https://www.drupal.org/u/tim.plunkett
|
||||
|
||||
Configuration Translation
|
||||
- Gábor Hojtsy 'Gábor Hojtsy' https://www.drupal.org/u/gábor-hojtsy
|
||||
- Tobias Zimmermann 'tstoeckler' https://www.drupal.org/u/tstoeckler
|
||||
- Vijayachandran Mani 'vijaycs85' https://www.drupal.org/u/vijaycs85
|
||||
|
||||
Contact
|
||||
- Lee Rowlands 'larowlan' https://www.drupal.org/u/larowlan
|
||||
- Jibran Ijaz 'jibran' https://www.drupal.org/u/jibran
|
||||
- Andrey Postnikov 'andypost' https://www.drupal.org/u/andypost
|
||||
|
||||
Content Moderation
|
||||
- Sam Becker 'Sam152' https://www.drupal.org/u/sam152
|
||||
|
||||
Content Translation
|
||||
- ?
|
||||
|
||||
Contextual
|
||||
- ?
|
||||
|
||||
Cron
|
||||
- ?
|
||||
|
||||
CSS
|
||||
- John Albin Wilkins 'JohnAlbin' https://www.drupal.org/u/johnalbin
|
||||
|
||||
Database API
|
||||
- ?
|
||||
|
||||
MySQL DB driver
|
||||
- David Strauss 'David Strauss' https://www.drupal.org/u/david-strauss
|
||||
|
||||
PostgreSQL DB driver
|
||||
- ?
|
||||
|
||||
Sqlite DB driver
|
||||
- ?
|
||||
|
||||
Database Logging
|
||||
- Mariano D'Agostino 'dagmar' https://www.drupal.org/u/dagmar
|
||||
|
||||
Database Update API
|
||||
- ?
|
||||
|
||||
DateTime
|
||||
- Jonathan Hedstrom 'jhedstrom' https://www.drupal.org/u/jhedstrom
|
||||
- Matthew Donadio 'mpdonadio' https://www.drupal.org/u/mpdonadio
|
||||
|
||||
DateTime Range
|
||||
- Jonathan Hedstrom 'jhedstrom' https://www.drupal.org/u/jhedstrom
|
||||
- Matthew Donadio 'mpdonadio' https://www.drupal.org/u/mpdonadio
|
||||
|
||||
Dynamic Page Cache
|
||||
- Fabian Franz 'Fabianx' https://www.drupal.org/u/fabianx
|
||||
- Wim Leers 'Wim Leers' https://www.drupal.org/u/wim-leers
|
||||
|
||||
Editor
|
||||
- Henrik Danielsson 'TwoD' https://www.drupal.org/u/TwoD
|
||||
- Wim Leers 'Wim Leers' https://www.drupal.org/u/wim-leers
|
||||
|
||||
Entity API
|
||||
- Nathaniel Catchpole 'catch' https://www.drupal.org/u/catch
|
||||
- Hristo Chonov 'hchonov' https://www.drupal.org/u/hchonov
|
||||
- Sascha Grossenbacher 'Berdir' https://www.drupal.org/u/berdir
|
||||
- Tobias Zimmermann 'tstoeckler' https://www.drupal.org/u/tstoeckler
|
||||
|
||||
Extension API
|
||||
- ?
|
||||
|
||||
Field API
|
||||
- Andrei Mateescu 'amateescu' https://www.drupal.org/u/amateescu
|
||||
|
||||
Field UI
|
||||
- Yves Chedemois 'yched' https://www.drupal.org/u/yched
|
||||
- Andrei Mateescu 'amateescu' https://www.drupal.org/u/amateescu
|
||||
|
||||
File
|
||||
- Kim Pepper 'kim.pepper' https://www.drupal.org/u/kimpepper
|
||||
|
||||
Filter
|
||||
- ?
|
||||
|
||||
Forum
|
||||
- Lee Rowlands 'larowlan' https://www.drupal.org/u/larowlan
|
||||
|
||||
Form API
|
||||
- Alex Bronstein 'effulgentsia' https://www.drupal.org/u/effulgentsia
|
||||
- Tim Plunkett 'tim.plunkett' https://www.drupal.org/u/tim.plunkett
|
||||
|
||||
History
|
||||
- Andrey Postnikov 'andypost' https://www.drupal.org/u/andypost
|
||||
|
||||
Hypertext Application Language (HAL)
|
||||
- ?
|
||||
|
||||
Help
|
||||
- ?
|
||||
|
||||
Help Topics
|
||||
- Amber Matz 'Amber Himes Matz' https://www.drupal.org/u/amber-himes-matz
|
||||
- Andrey Postnikov 'andypost' https://www.drupal.org/u/andypost
|
||||
|
||||
Image
|
||||
- Claudiu Cristea 'claudiu.cristea' https://www.drupal.org/u/claudiu.cristea
|
||||
|
||||
Inline Form Errors
|
||||
- Daniël Smidt 'dmsmidt' https://www.drupal.org/u/dmsmidt
|
||||
|
||||
Installer
|
||||
- ?
|
||||
|
||||
Interface Translation (locale)
|
||||
- Gábor Hojtsy 'Gábor Hojtsy' https://www.drupal.org/u/gábor-hojtsy
|
||||
|
||||
JavaScript
|
||||
- Théodore Biadala 'nod_' https://www.drupal.org/u/nod_
|
||||
- Sally Young 'justafish' https://www.drupal.org/u/justafish
|
||||
|
||||
JSON:API
|
||||
- Mateu Aguiló Bosch 'e0ipso' https://www.drupal.org/u/e0ipso
|
||||
- Björn Brala 'bbrala' https://www.drupal.org/u/bbrala
|
||||
- Gabe Sullice 'gabesullice' https://www.drupal.org/u/gabesullice
|
||||
- Wim Leers 'Wim Leers' https://www.drupal.org/u/wim-leers
|
||||
|
||||
Language
|
||||
- Daniel F. Kudwien 'sun' https://www.drupal.org/u/sun
|
||||
|
||||
Layout Builder
|
||||
- Ted Bowman 'tedbow' https://www.drupal.org/u/tedbow
|
||||
- Emilie Nouveau 'DyanneNova' https://www.drupal.org/u/dyannenova
|
||||
- Tim Plunkett 'tim.plunkett' https://www.drupal.org/u/tim.plunkett
|
||||
|
||||
Link Field
|
||||
- Weber Macedo 'Mac_Weber' https://www.drupal.org/u/mac_weber
|
||||
|
||||
Lock
|
||||
- ?
|
||||
|
||||
Mail
|
||||
- ?
|
||||
|
||||
Markup
|
||||
- ?
|
||||
|
||||
Media
|
||||
- Sean Blommaert 'seanB' https://www.drupal.org/u/seanb
|
||||
- Marcos Cano 'marcoscano' https://www.drupal.org/u/marcoscano
|
||||
- Christian Fritsch 'chr.fritsch' https://www.drupal.org/u/chr.fritsch
|
||||
- Adam Globus-Hoenich 'phenaproxima' https://www.drupal.org/u/phenaproxima
|
||||
|
||||
Media Library
|
||||
- Sean Blommaert 'seanB' https://www.drupal.org/u/seanb
|
||||
- Adam Globus-Hoenich 'phenaproxima' https://www.drupal.org/u/phenaproxima
|
||||
|
||||
Menu
|
||||
- Daniel Wehner 'dawehner' https://www.drupal.org/u/dawehner
|
||||
- Peter Wolanin 'pwolanin' https://www.drupal.org/u/pwolanin
|
||||
|
||||
Menu Link Content
|
||||
- Daniel Wehner 'dawehner' https://www.drupal.org/u/dawehner
|
||||
- Peter Wolanin 'pwolanin' https://www.drupal.org/u/pwolanin
|
||||
|
||||
Menu UI
|
||||
- ?
|
||||
|
||||
Migrate
|
||||
- Benji Fisher 'benjifisher' https://www.drupal.org/u/benjifisher
|
||||
- Adam Globus-Hoenich 'phenaproxima' https://www.drupal.org/u/phenaproxima
|
||||
- Lucas Hedding 'heddn' https://www.drupal.org/u/heddn
|
||||
- Michael Lutz 'mikelutz' https://www.drupal.org/u/mikelutz
|
||||
- Victoria Spagnolo 'quietone' https://www.drupal.org/u/quietone
|
||||
|
||||
Node
|
||||
- ?
|
||||
|
||||
Node Access
|
||||
- Ken Rickard 'agentrickard' https://www.drupal.org/u/agentrickard
|
||||
- Moshe Weitzman 'moshe weitzman' https://www.drupal.org/u/moshe-weitzman
|
||||
- Jess Myrbo 'xjm' https://www.drupal.org/u/xjm
|
||||
|
||||
Olivero
|
||||
- Mike Herchel 'mherchel' https://www.drupal.org/u/mherchel
|
||||
- Putra Bonaccorsi 'proeung' https://www.drupal.org/u/proeung
|
||||
- Jen Witkowski 'jwitkowski79' https://www.drupal.org/u/jwitkowski79
|
||||
- Konstantin Shupenko 'kostyashupenko' https://www.drupal.org/u/kostyashupenko
|
||||
|
||||
Options
|
||||
- ?
|
||||
|
||||
Page Cache
|
||||
- Lorenz Schori 'znerol' https://www.drupal.org/u/znerol
|
||||
- Fabian Franz 'Fabianx' https://www.drupal.org/u/fabianx
|
||||
|
||||
Path
|
||||
- Nathaniel Catchpole 'catch' https://www.drupal.org/u/catch
|
||||
|
||||
Path Alias
|
||||
- Nathaniel Catchpole 'catch' https://www.drupal.org/u/catch
|
||||
|
||||
Plugin
|
||||
- Kris Vanderwater 'EclipseGc' https://www.drupal.org/u/eclipseGc
|
||||
- Alex Bronstein 'effulgentsia' https://www.drupal.org/u/effulgentsia
|
||||
- Tim Plunkett 'tim.plunkett' https://www.drupal.org/u/tim.plunkett
|
||||
|
||||
Queue
|
||||
- James Gilliland 'neclimdul' https://www.drupal.org/u/neclimdul
|
||||
|
||||
Quick Edit
|
||||
- Wim Leers 'Wim Leers' https://www.drupal.org/u/wim-leers
|
||||
- Théodore Biadala 'nod_' https://www.drupal.org/u/nod_
|
||||
|
||||
RDF
|
||||
- ?
|
||||
|
||||
Render API
|
||||
- Alex Bronstein 'effulgentsia' https://www.drupal.org/u/effulgentsia
|
||||
- Moshe Weitzman 'moshe weitzman' https://www.drupal.org/u/moshe-weitzman
|
||||
|
||||
Request Processing
|
||||
- ?
|
||||
|
||||
REST
|
||||
- Wim Leers 'Wim Leers' https://www.drupal.org/u/wim-leers
|
||||
|
||||
Responsive Image
|
||||
- Peter Droogmans 'attiks' https://www.drupal.org/u/attiks
|
||||
- Marc Drummond 'mdrummond' https://www.drupal.org/u/mdrummond
|
||||
- Jelle Sebreghts 'Jelle_S' https://www.drupal.org/u/jelle_s
|
||||
|
||||
Routing
|
||||
- Tim Plunkett 'tim.plunkett' https://www.drupal.org/u/tim.plunkett
|
||||
|
||||
Search
|
||||
- Peter Wolanin 'pwolanin' https://www.drupal.org/u/pwolanin
|
||||
|
||||
Serialization
|
||||
- Damian Lee 'damiankloip' https://www.drupal.org/u/damiankloip
|
||||
|
||||
Settings Tray
|
||||
- Ted Bowman 'tedbow' https://www.drupal.org/u/tedbow
|
||||
|
||||
Seven
|
||||
- ?
|
||||
|
||||
Shortcut
|
||||
- Tobias Zimmermann 'tstoeckler' https://www.drupal.org/u/tstoeckler
|
||||
- Jibran Ijaz 'jibran' https://www.drupal.org/u/jibran
|
||||
|
||||
Stable
|
||||
- ?
|
||||
|
||||
Stark
|
||||
- John Albin Wilkins 'JohnAlbin' https://www.drupal.org/u/johnalbin
|
||||
|
||||
Statistics
|
||||
- ?
|
||||
|
||||
Syslog
|
||||
- Mariano D'Agostino 'dagmar' https://www.drupal.org/u/dagmar
|
||||
|
||||
System (module)
|
||||
- ?
|
||||
|
||||
Taxonomy
|
||||
- Jess Myrbo 'xjm' https://www.drupal.org/u/xjm
|
||||
- Nathaniel Catchpole 'catch' https://www.drupal.org/u/catch
|
||||
|
||||
Telephone
|
||||
- ?
|
||||
|
||||
Testing framework
|
||||
- Alex Pott 'alexpott' https://www.drupal.org/u/alexpott
|
||||
- Sascha Grossenbacher 'Berdir' https://www.drupal.org/u/berdir
|
||||
- Daniel Wehner 'dawehner' https://www.drupal.org/u/dawehner
|
||||
- Alberto M. 'mondrake' https://www.drupal.org/u/mondrake
|
||||
|
||||
Text Field
|
||||
- ?
|
||||
|
||||
Theme API
|
||||
- Alex Bronstein 'effulgentsia' https://www.drupal.org/u/effulgentsia
|
||||
- Fabian Franz 'Fabianx' https://www.drupal.org/u/fabianx
|
||||
- Joël Pittet 'joelpittet' https://www.drupal.org/u/joelpittet
|
||||
- Lauri Eskola 'lauriii' https://www.drupal.org/u/lauriii
|
||||
|
||||
Token
|
||||
- ?
|
||||
|
||||
Toolbar
|
||||
- Théodore Biadala 'nod_' https://www.drupal.org/u/nod_
|
||||
|
||||
Tour
|
||||
- Nick Schuch 'nick_schuch' https://www.drupal.org/u/nick_schuch
|
||||
|
||||
Tracker
|
||||
- ?
|
||||
|
||||
Transliteration
|
||||
- Andrei Mateescu 'amateescu' https://www.drupal.org/u/amateescu
|
||||
|
||||
Typed Data
|
||||
- Wolfgang Ziegler 'fago' https://www.drupal.org/u/fago
|
||||
|
||||
Umami demo
|
||||
- Mark Conroy 'markconroy' https://www.drupal.org/u/markconroy
|
||||
- Gareth Goodwin 'smaz' https://www.drupal.org/u/smaz
|
||||
- Keith Jay 'kjay' https://www.drupal.org/u/kjay
|
||||
- Ofer Shaal 'shaal' https://www.drupal.org/u/shaal
|
||||
|
||||
Update Manager
|
||||
- Ted Bowman 'tedbow' https://www.drupal.org/u/tedbow
|
||||
- Derek Wright 'dww' https://www.drupal.org/u/dww
|
||||
|
||||
User
|
||||
- Moshe Weitzman 'moshe weitzman' https://www.drupal.org/u/moshe-weitzman
|
||||
|
||||
Views
|
||||
- Daniel Wehner 'dawehner' https://www.drupal.org/u/dawehner
|
||||
- Tim Plunkett 'tim.plunkett' https://www.drupal.org/u/tim.plunkett
|
||||
- Damian Lee 'damiankloip' https://www.drupal.org/u/damiankloip
|
||||
- Jess Myrbo 'xjm' https://www.drupal.org/u/xjm
|
||||
- Len Swaneveld 'Lendude' https://www.drupal.org/u/lendude
|
||||
|
||||
Workflows
|
||||
- Sam Becker 'Sam152' https://www.drupal.org/u/sam152
|
||||
|
||||
|
||||
Topic maintainers
|
||||
-----------------
|
||||
|
||||
The Drupal Core topic maintainers are subject-matter experts in a topic that
|
||||
spans multiple subsystems. These correspond to the core gates which all
|
||||
proposed changes must pass. https://www.drupal.org/contribute/core/maintainers
|
||||
provides more information on their responsibilities.
|
||||
|
||||
Accessibility
|
||||
- Rain Breaw Michaels 'rainbreaw' https://www.drupal.org/u/rainbreaw
|
||||
- Mike Gifford 'mgifford' https://www.drupal.org/u/mgifford
|
||||
- Andrew Macpherson 'andrewmacpherson' https://www.drupal.org/u/andrewmacpherson
|
||||
- (provisional) Ben Mullins 'bnjmnm' https://www.drupal.org/u/bnjmnm
|
||||
|
||||
Documentation
|
||||
- ?
|
||||
|
||||
Performance
|
||||
- Nathaniel Catchpole 'catch' https://www.drupal.org/u/catch
|
||||
|
||||
Testing
|
||||
- ?
|
||||
|
||||
Usability
|
||||
- Cristina Chumillas 'ckrina' https://www.drupal.org/u/ckrina
|
||||
- Roy Scholten 'yoroy' https://www.drupal.org/u/yoroy
|
||||
- Bojhan Somers 'Bojhan' https://www.drupal.org/u/bojhan
|
||||
|
||||
|
||||
Security team
|
||||
-------------
|
||||
|
||||
To report a security issue, see:
|
||||
https://www.drupal.org/security-team/report-issue
|
||||
|
||||
The Drupal security team provides Security Advisories for vulnerabilities,
|
||||
assists developers in resolving security issues, and provides security
|
||||
documentation. See https://www.drupal.org/security-team for more information.
|
||||
The security team lead is:
|
||||
|
||||
- Michael Hess 'mlhess' https://www.drupal.org/u/mlhess
|
||||
|
||||
|
||||
Initiative coordinators
|
||||
-----------------------
|
||||
|
||||
The Drupal core initiative coordinators oversee approved projects that
|
||||
re-architect or otherwise improve large areas of Drupal core. See
|
||||
https://www.drupal.org/contribute/core/maintainers for more information on
|
||||
their responsibilities. The initiative coordinators are:
|
||||
|
||||
Decoupled Menus Initiative
|
||||
- Théodore Biadala 'nod_' https://www.drupal.org/u/nod_
|
||||
- Brian Perry 'brianperry' https://www.drupal.org/u/brianperry
|
||||
|
||||
Media Initiative
|
||||
- Janez Urevc 'slashrsm' https://www.drupal.org/u/slashrsm
|
||||
|
||||
|
||||
Core mentoring coordinators
|
||||
---------------------------
|
||||
|
||||
The Drupal core mentors inspire, enable, and encourage new core contributors.
|
||||
See https://www.drupal.org/core-mentoring for more information about mentoring.
|
||||
|
||||
Mentoring coordinators recruit and coach other mentors. They work on contributor
|
||||
tools, documentation, and processes to make it easier for new contributors to
|
||||
get involved. They organize communications and logistics, and actively
|
||||
participate in mentoring.
|
||||
|
||||
- Mauricio Dinarte 'dinarcon' https://www.drupal.org/u/dinarcon
|
||||
- Lucas Hedding 'heddn' https://www.drupal.org/u/heddn
|
||||
- Tara King 'sparklingrobots' https://www.drupal.org/u/sparklingrobots
|
||||
- Rachel Lawson 'rachel_norfolk' https://www.drupal.org/u/rachel_norfolk
|
||||
- Elli Ludwigson 'ekl1773' https://www.drupal.org/u/ekl1773
|
||||
- Jess Myrbo 'xjm' https://www.drupal.org/u/xjm
|
||||
- Matthew Radcliffe 'mradcliffe' https://www.drupal.org/u/mradcliffe
|
||||
- (provisional) Chris Darke 'chrisdarke' https://www.drupal.org/u/chrisdarke
|
||||
- (provisional) Brian Gilbert 'realityloop' https://www.drupal.org/u/realityloop
|
||||
- (provisional) AmyJune Hineline 'volkswagenchick' https://www.drupal.org/u/volkswagenchick
|
|
@ -0,0 +1,77 @@
|
|||
CONTENTS OF THIS FILE
|
||||
---------------------
|
||||
|
||||
* Introduction
|
||||
* Minor and patch version updates
|
||||
* Is my site using Composer?
|
||||
* Updating code manually
|
||||
* Updating code with Composer
|
||||
* Updating Drupal 8 to Drupal 9
|
||||
* Updating Drupal 6 or 7 to Drupal 9
|
||||
|
||||
|
||||
INTRODUCTION
|
||||
------------
|
||||
|
||||
This document provides links to resources on how to update or migrate your
|
||||
Drupal site.
|
||||
|
||||
|
||||
MINOR AND PATCH VERSION UPDATES
|
||||
-------------------------------
|
||||
|
||||
Minor and patch updates are done either manually or with Composer, depending on
|
||||
how the site was installed. Refer to the sections below on updating with
|
||||
Composer or updating manually for tarball/zip installations.
|
||||
|
||||
Minor and patch versions are updates such as:
|
||||
* Patch releases (e.g. 9.1.2 to 9.1.3)
|
||||
* Scheduled minor releases (e.g 9.3.5 to 9.4.0)
|
||||
* Beta to final releases (e.g. 9.1.0-beta2 to 9.1.0)
|
||||
|
||||
|
||||
IS MY SITE USING COMPOSER?
|
||||
--------------------------
|
||||
|
||||
Before updating, determine if your site is currently managed by Composer.
|
||||
|
||||
On a typical Unix/Linux command line, this can be determined by running the
|
||||
following command (replace /PATH/TO/composer with the appropriate location
|
||||
for your system):
|
||||
|
||||
/PATH/TO/composer info drupal/core
|
||||
|
||||
|
||||
UPDATING CODE WITH COMPOSER
|
||||
---------------------------
|
||||
|
||||
* Refer to 'Update Drupal core via Composer' for details on using Composer:
|
||||
https://www.drupal.org/docs/8/update/update-drupal-core-via-composer
|
||||
|
||||
|
||||
UPDATING CODE MANUALLY
|
||||
----------------------
|
||||
|
||||
* Refer to 'Updating the Core Software' for details on updating manually:
|
||||
https://www.drupal.org/docs/8/update/update-core-manually
|
||||
|
||||
|
||||
UPDATING DRUPAL 8 TO DRUPAL 9
|
||||
-----------------------------
|
||||
|
||||
1. Prepare the Drupal 8 site for Drupal 9:
|
||||
https://www.drupal.org/docs/9/how-to-prepare-your-drupal-7-or-8-site-for-drupal-9/upgrading-a-drupal-8-site-to-drupal-9
|
||||
|
||||
2. Update the Drupal 8 codebase to Drupal 9:
|
||||
https://www.drupal.org/docs/8/upgrade/upgrading-between-drupal-8-major-versions-eg-from-drupal-8-to-drupal-9
|
||||
|
||||
3. Navigate to /update.php to initiate the update process.
|
||||
|
||||
|
||||
UPDATING DRUPAL 6 OR 7 TO DRUPAL 9
|
||||
----------------------------------
|
||||
|
||||
* Updating from a previous major version, such as Drupal 6 or 7, requires
|
||||
importing the old site configuration and content into a new Drupal 9 site.
|
||||
Refer to the 'Migrate Guide' for more details on this process:
|
||||
https://www.drupal.org/upgrade/migrate
|
|
@ -0,0 +1,96 @@
|
|||
CONFIGURATION AND FEATURES
|
||||
--------------------------
|
||||
|
||||
Drupal core (what you get when you download and extract a drupal-x.y.tar.gz or
|
||||
drupal-x.y.zip file from https://www.drupal.org/project/drupal) has what you
|
||||
need to get started with your website. It includes several modules (extensions
|
||||
that add functionality) for common website features, such as managing content,
|
||||
user accounts, image uploading, and search. Core comes with many options that
|
||||
allow site-specific configuration. In addition to the core modules, there are
|
||||
thousands of contributed modules (for functionality not included with Drupal
|
||||
core) available for download.
|
||||
|
||||
More about configuration:
|
||||
* Install, update, and maintain Drupal:
|
||||
See INSTALL.txt and UPDATE.txt in the "core" directory.
|
||||
* Learn about how to use Drupal to create your site:
|
||||
https://www.drupal.org/documentation
|
||||
* Follow best practices:
|
||||
https://www.drupal.org/best-practices
|
||||
* Download contributed modules to /modules to extend Drupal's functionality:
|
||||
https://www.drupal.org/project/project_module
|
||||
* See also: "Developing for Drupal" for writing your own modules, below.
|
||||
|
||||
|
||||
INSTALLATION PROFILES
|
||||
---------------------
|
||||
|
||||
Installation profiles define additional steps (such as enabling modules,
|
||||
defining content types, etc.) that run after the base installation provided
|
||||
by core when Drupal is first installed. There are two basic installation
|
||||
profiles provided with Drupal core.
|
||||
|
||||
Installation profiles from the Drupal community modify the installation process
|
||||
to provide a website for a specific use case, such as a CMS for media
|
||||
publishers, a web-based project tracking tool, or a full-fledged CRM for
|
||||
non-profit organizations raising money and accepting donations. They can be
|
||||
distributed as bare installation profiles or as "distributions". Distributions
|
||||
include Drupal core, the installation profile, and all other required
|
||||
extensions, such as contributed and custom modules, themes, and third-party
|
||||
libraries. Bare installation profiles require you to download Drupal Core and
|
||||
the required extensions separately; place the downloaded profile in the
|
||||
/profiles directory before you start the installation process.
|
||||
|
||||
More about installation profiles and distributions:
|
||||
* Read about the difference between installation profiles and distributions:
|
||||
https://www.drupal.org/docs/distributions/creating-distributions
|
||||
* Download contributed installation profiles and distributions:
|
||||
https://www.drupal.org/project/project_distribution
|
||||
* Develop your own installation profile or distribution:
|
||||
https://www.drupal.org/docs/distributions/creating-distributions
|
||||
|
||||
APPEARANCE
|
||||
----------
|
||||
|
||||
In Drupal, the appearance of your site is set by the theme (themes are
|
||||
extensions that set fonts, colors, and layout). Drupal core comes with several
|
||||
themes. More themes are available for download, and you can also create your own
|
||||
custom theme.
|
||||
|
||||
More about themes:
|
||||
* Download contributed themes to /themes to modify Drupal's appearance:
|
||||
https://www.drupal.org/project/project_theme
|
||||
* Develop your own theme:
|
||||
https://www.drupal.org/docs/theming-drupal
|
||||
|
||||
|
||||
DEVELOPING FOR DRUPAL
|
||||
---------------------
|
||||
|
||||
Drupal contains an extensive API that allows you to add to and modify the
|
||||
functionality of your site. The API consists of "hooks", which allow modules to
|
||||
react to system events and customize Drupal's behavior, and functions that
|
||||
standardize common operations such as database queries and form generation. The
|
||||
flexible hook architecture means that you should never need to directly modify
|
||||
the files that come with Drupal core to achieve the functionality you want;
|
||||
instead, functionality modifications take the form of modules.
|
||||
|
||||
When you need new functionality for your Drupal site, search for existing
|
||||
contributed modules. If you find a module that matches except for a bug or an
|
||||
additional needed feature, change the module and contribute your improvements
|
||||
back to the project in the form of a "patch". Create new custom modules only
|
||||
when nothing existing comes close to what you need.
|
||||
|
||||
More about developing:
|
||||
* Search for existing contributed modules:
|
||||
https://www.drupal.org/project/project_module
|
||||
* Contribute a patch:
|
||||
https://www.drupal.org/patch/submit
|
||||
* Develop your own module:
|
||||
https://www.drupal.org/developing/modules
|
||||
* Follow programming best practices:
|
||||
https://www.drupal.org/docs/develop/standards
|
||||
* Refer to the API documentation:
|
||||
https://api.drupal.org/api/drupal/9
|
||||
* Learn from documented Drupal API examples:
|
||||
https://www.drupal.org/project/examples
|
|
@ -0,0 +1,11 @@
|
|||
Drupal Scaffold Files are files that are contained inside drupal/core, but are
|
||||
installed outside of the core directory (e.g. at the Drupal root).
|
||||
|
||||
Scaffold files were added to drupal/core in Drupal 8.8.x. During the Drupal 8
|
||||
development cycle, the scaffold files are also being maintained in their original
|
||||
locations. This is done so that Drupal sites based on the template project
|
||||
drupal-composer/drupal-project may continue to download these files from the same
|
||||
URLs they have historically been found at.
|
||||
|
||||
The scaffold files will be deleted from their original location in Drupal 9.
|
||||
See https://www.drupal.org/project/drupal/issues/3075954 for follow-on work.
|
|
@ -0,0 +1,16 @@
|
|||
HOW-TO: Test these Drupal scaffold files
|
||||
|
||||
In order to test these scaffold files, you'll need to get the entire Drupal repo and
|
||||
run the tests there.
|
||||
|
||||
You'll find the tests in core/tests/Drupal/Tests/ComposerIntegrationTest.php.
|
||||
|
||||
You can get the full Drupal repo here:
|
||||
https://www.drupal.org/project/drupal/git-instructions
|
||||
|
||||
You can find more information about running PHPUnit tests with Drupal here:
|
||||
https://www.drupal.org/node/2116263
|
||||
|
||||
You can run a single phpunit test file like so:
|
||||
|
||||
$ ./vendor/bin/phpunit -c core core/tests/Drupal/Tests/ComposerIntegrationTest.php
|
|
@ -0,0 +1,40 @@
|
|||
--errors=box-model,
|
||||
display-property-grouping,
|
||||
duplicate-background-images,
|
||||
duplicate-properties,
|
||||
empty-rules,
|
||||
ids,
|
||||
import,
|
||||
important,
|
||||
known-properties,
|
||||
outline-none,
|
||||
overqualified-elements,
|
||||
qualified-headings,
|
||||
shorthand,
|
||||
star-property-hack,
|
||||
text-indent,
|
||||
underscore-property-hack,
|
||||
unique-headings,
|
||||
unqualified-attributes,
|
||||
vendor-prefix,
|
||||
zero-units
|
||||
--ignore=adjoining-classes,
|
||||
box-sizing,
|
||||
bulletproof-font-face,
|
||||
compatible-vendor-prefixes,
|
||||
errors,
|
||||
fallback-colors,
|
||||
floats,
|
||||
font-faces,
|
||||
font-sizes,
|
||||
gradients,
|
||||
import-ie-limit,
|
||||
order-alphabetical,
|
||||
regex-selectors,
|
||||
rules-count,
|
||||
selector-max,
|
||||
selector-max-approaching,
|
||||
selector-newline,
|
||||
universal-selector
|
||||
--exclude-list=core/assets,
|
||||
vendor
|
|
@ -0,0 +1,189 @@
|
|||
parameters:
|
||||
session.storage.options:
|
||||
# Default ini options for sessions.
|
||||
#
|
||||
# Some distributions of Linux (most notably Debian) ship their PHP
|
||||
# installations with garbage collection (gc) disabled. Since Drupal depends
|
||||
# on PHP's garbage collection for clearing sessions, ensure that garbage
|
||||
# collection occurs by using the most common settings.
|
||||
# @default 1
|
||||
gc_probability: 1
|
||||
# @default 100
|
||||
gc_divisor: 100
|
||||
#
|
||||
# Set session lifetime (in seconds), i.e. the time from the user's last
|
||||
# visit to the active session may be deleted by the session garbage
|
||||
# collector. When a session is deleted, authenticated users are logged out,
|
||||
# and the contents of the user's $_SESSION variable is discarded.
|
||||
# @default 200000
|
||||
gc_maxlifetime: 200000
|
||||
#
|
||||
# Set session cookie lifetime (in seconds), i.e. the time from the session
|
||||
# is created to the cookie expires, i.e. when the browser is expected to
|
||||
# discard the cookie. The value 0 means "until the browser is closed".
|
||||
# @default 2000000
|
||||
cookie_lifetime: 2000000
|
||||
#
|
||||
# Drupal automatically generates a unique session cookie name based on the
|
||||
# full domain name used to access the site. This mechanism is sufficient
|
||||
# for most use-cases, including multi-site deployments. However, if it is
|
||||
# desired that a session can be reused across different subdomains, the
|
||||
# cookie domain needs to be set to the shared base domain. Doing so assures
|
||||
# that users remain logged in as they cross between various subdomains.
|
||||
# To maximize compatibility and normalize the behavior across user agents,
|
||||
# the cookie domain should start with a dot.
|
||||
#
|
||||
# @default none
|
||||
# cookie_domain: '.example.com'
|
||||
#
|
||||
# Set the session ID string length. The length can be between 22 to 256. The
|
||||
# PHP recommended value is 48. See
|
||||
# https://www.php.net/manual/session.security.ini.php for more information.
|
||||
# This value should be kept in sync with
|
||||
# \Drupal\Core\Session\SessionConfiguration::__construct()
|
||||
# @default 48
|
||||
sid_length: 48
|
||||
#
|
||||
# Set the number of bits in encoded session ID character. The possible
|
||||
# values are '4' (0-9, a-f), '5' (0-9, a-v), and '6' (0-9, a-z, A-Z, "-",
|
||||
# ","). The PHP recommended value is 6. See
|
||||
# https://www.php.net/manual/session.security.ini.php for more information.
|
||||
# This value should be kept in sync with
|
||||
# \Drupal\Core\Session\SessionConfiguration::__construct()
|
||||
# @default 6
|
||||
sid_bits_per_character: 6
|
||||
twig.config:
|
||||
# Twig debugging:
|
||||
#
|
||||
# When debugging is enabled:
|
||||
# - The markup of each Twig template is surrounded by HTML comments that
|
||||
# contain theming information, such as template file name suggestions.
|
||||
# - Note that this debugging markup will cause automated tests that directly
|
||||
# check rendered HTML to fail. When running automated tests, 'debug'
|
||||
# should be set to FALSE.
|
||||
# - The dump() function can be used in Twig templates to output information
|
||||
# about template variables.
|
||||
# - Twig templates are automatically recompiled whenever the source code
|
||||
# changes (see auto_reload below).
|
||||
#
|
||||
# For more information about debugging Twig templates, see
|
||||
# https://www.drupal.org/node/1906392.
|
||||
#
|
||||
# Not recommended in production environments
|
||||
# @default false
|
||||
debug: false
|
||||
# Twig auto-reload:
|
||||
#
|
||||
# Automatically recompile Twig templates whenever the source code changes.
|
||||
# If you don't provide a value for auto_reload, it will be determined
|
||||
# based on the value of debug.
|
||||
#
|
||||
# Not recommended in production environments
|
||||
# @default null
|
||||
auto_reload: null
|
||||
# Twig cache:
|
||||
#
|
||||
# By default, Twig templates will be compiled and stored in the filesystem
|
||||
# to increase performance. Disabling the Twig cache will recompile the
|
||||
# templates from source each time they are used. In most cases the
|
||||
# auto_reload setting above should be enabled rather than disabling the
|
||||
# Twig cache.
|
||||
#
|
||||
# Not recommended in production environments
|
||||
# @default true
|
||||
cache: true
|
||||
renderer.config:
|
||||
# Renderer required cache contexts:
|
||||
#
|
||||
# The Renderer will automatically associate these cache contexts with every
|
||||
# render array, hence varying every render array by these cache contexts.
|
||||
#
|
||||
# @default ['languages:language_interface', 'theme', 'user.permissions']
|
||||
required_cache_contexts: ['languages:language_interface', 'theme', 'user.permissions']
|
||||
# Renderer automatic placeholdering conditions:
|
||||
#
|
||||
# Drupal allows portions of the page to be automatically deferred when
|
||||
# rendering to improve cache performance. That is especially helpful for
|
||||
# cache contexts that vary widely, such as the active user. On some sites
|
||||
# those may be different, however, such as sites with only a handful of
|
||||
# users. If you know what the high-cardinality cache contexts are for your
|
||||
# site, specify those here. If you're not sure, the defaults are fairly safe
|
||||
# in general.
|
||||
#
|
||||
# For more information about rendering optimizations see
|
||||
# https://www.drupal.org/developing/api/8/render/arrays/cacheability#optimizing
|
||||
auto_placeholder_conditions:
|
||||
# Max-age at or below which caching is not considered worthwhile.
|
||||
#
|
||||
# Disable by setting to -1.
|
||||
#
|
||||
# @default 0
|
||||
max-age: 0
|
||||
# Cache contexts with a high cardinality.
|
||||
#
|
||||
# Disable by setting to [].
|
||||
#
|
||||
# @default ['session', 'user']
|
||||
contexts: ['session', 'user']
|
||||
# Tags with a high invalidation frequency.
|
||||
#
|
||||
# Disable by setting to [].
|
||||
#
|
||||
# @default []
|
||||
tags: []
|
||||
# Cacheability debugging:
|
||||
#
|
||||
# Responses with cacheability metadata (CacheableResponseInterface instances)
|
||||
# get X-Drupal-Cache-Tags, X-Drupal-Cache-Contexts and X-Drupal-Cache-Max-Age
|
||||
# headers.
|
||||
#
|
||||
# For more information about debugging cacheable responses, see
|
||||
# https://www.drupal.org/developing/api/8/response/cacheable-response-interface
|
||||
#
|
||||
# Not recommended in production environments
|
||||
# @default false
|
||||
http.response.debug_cacheability_headers: false
|
||||
factory.keyvalue: {}
|
||||
# Default key/value storage service to use.
|
||||
# @default keyvalue.database
|
||||
# default: keyvalue.database
|
||||
# Collection-specific overrides.
|
||||
# state: keyvalue.database
|
||||
factory.keyvalue.expirable: {}
|
||||
# Default key/value expirable storage service to use.
|
||||
# @default keyvalue.database.expirable
|
||||
# default: keyvalue.database.expirable
|
||||
# Allowed protocols for URL generation.
|
||||
filter_protocols:
|
||||
- http
|
||||
- https
|
||||
- ftp
|
||||
- news
|
||||
- nntp
|
||||
- tel
|
||||
- telnet
|
||||
- mailto
|
||||
- irc
|
||||
- ssh
|
||||
- sftp
|
||||
- webcal
|
||||
- rtsp
|
||||
|
||||
# Configure Cross-Site HTTP requests (CORS).
|
||||
# Read https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
|
||||
# for more information about the topic in general.
|
||||
# Note: By default the configuration is disabled.
|
||||
cors.config:
|
||||
enabled: false
|
||||
# Specify allowed headers, like 'x-allowed-header'.
|
||||
allowedHeaders: []
|
||||
# Specify allowed request methods, specify ['*'] to allow all possible ones.
|
||||
allowedMethods: []
|
||||
# Configure requests allowed from specific origins.
|
||||
allowedOrigins: ['*']
|
||||
# Sets the Access-Control-Expose-Headers header.
|
||||
exposedHeaders: false
|
||||
# Sets the Access-Control-Max-Age header.
|
||||
maxAge: false
|
||||
# Sets the Access-Control-Allow-Credentials header.
|
||||
supportsCredentials: false
|
|
@ -0,0 +1,804 @@
|
|||
<?php
|
||||
|
||||
// phpcs:ignoreFile
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Drupal site-specific configuration file.
|
||||
*
|
||||
* IMPORTANT NOTE:
|
||||
* This file may have been set to read-only by the Drupal installation program.
|
||||
* If you make changes to this file, be sure to protect it again after making
|
||||
* your modifications. Failure to remove write permissions to this file is a
|
||||
* security risk.
|
||||
*
|
||||
* In order to use the selection rules below the multisite aliasing file named
|
||||
* sites/sites.php must be present. Its optional settings will be loaded, and
|
||||
* the aliases in the array $sites will override the default directory rules
|
||||
* below. See sites/example.sites.php for more information about aliases.
|
||||
*
|
||||
* The configuration directory will be discovered by stripping the website's
|
||||
* hostname from left to right and pathname from right to left. The first
|
||||
* configuration file found will be used and any others will be ignored. If no
|
||||
* other configuration file is found then the default configuration file at
|
||||
* 'sites/default' will be used.
|
||||
*
|
||||
* For example, for a fictitious site installed at
|
||||
* https://www.drupal.org:8080/mysite/test/, the 'settings.php' file is searched
|
||||
* for in the following directories:
|
||||
*
|
||||
* - sites/8080.www.drupal.org.mysite.test
|
||||
* - sites/www.drupal.org.mysite.test
|
||||
* - sites/drupal.org.mysite.test
|
||||
* - sites/org.mysite.test
|
||||
*
|
||||
* - sites/8080.www.drupal.org.mysite
|
||||
* - sites/www.drupal.org.mysite
|
||||
* - sites/drupal.org.mysite
|
||||
* - sites/org.mysite
|
||||
*
|
||||
* - sites/8080.www.drupal.org
|
||||
* - sites/www.drupal.org
|
||||
* - sites/drupal.org
|
||||
* - sites/org
|
||||
*
|
||||
* - sites/default
|
||||
*
|
||||
* Note that if you are installing on a non-standard port number, prefix the
|
||||
* hostname with that number. For example,
|
||||
* https://www.drupal.org:8080/mysite/test/ could be loaded from
|
||||
* sites/8080.www.drupal.org.mysite.test/.
|
||||
*
|
||||
* @see example.sites.php
|
||||
* @see \Drupal\Core\DrupalKernel::getSitePath()
|
||||
*
|
||||
* In addition to customizing application settings through variables in
|
||||
* settings.php, you can create a services.yml file in the same directory to
|
||||
* register custom, site-specific service definitions and/or swap out default
|
||||
* implementations with custom ones.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Database settings:
|
||||
*
|
||||
* The $databases array specifies the database connection or
|
||||
* connections that Drupal may use. Drupal is able to connect
|
||||
* to multiple databases, including multiple types of databases,
|
||||
* during the same request.
|
||||
*
|
||||
* One example of the simplest connection array is shown below. To use the
|
||||
* sample settings, copy and uncomment the code below between the @code and
|
||||
* @endcode lines and paste it after the $databases declaration. You will need
|
||||
* to replace the database username and password and possibly the host and port
|
||||
* with the appropriate credentials for your database system.
|
||||
*
|
||||
* The next section describes how to customize the $databases array for more
|
||||
* specific needs.
|
||||
*
|
||||
* @code
|
||||
* $databases['default']['default'] = [
|
||||
* 'database' => 'databasename',
|
||||
* 'username' => 'sqlusername',
|
||||
* 'password' => 'sqlpassword',
|
||||
* 'host' => 'localhost',
|
||||
* 'port' => '3306',
|
||||
* 'driver' => 'mysql',
|
||||
* 'prefix' => '',
|
||||
* 'collation' => 'utf8mb4_general_ci',
|
||||
* ];
|
||||
* @endcode
|
||||
*/
|
||||
$databases = [];
|
||||
|
||||
/**
|
||||
* Customizing database settings.
|
||||
*
|
||||
* Many of the values of the $databases array can be customized for your
|
||||
* particular database system. Refer to the sample in the section above as a
|
||||
* starting point.
|
||||
*
|
||||
* The "driver" property indicates what Drupal database driver the
|
||||
* connection should use. This is usually the same as the name of the
|
||||
* database type, such as mysql or sqlite, but not always. The other
|
||||
* properties will vary depending on the driver. For SQLite, you must
|
||||
* specify a database file name in a directory that is writable by the
|
||||
* webserver. For most other drivers, you must specify a
|
||||
* username, password, host, and database name.
|
||||
*
|
||||
* Drupal core implements drivers for mysql, pgsql, and sqlite. Other drivers
|
||||
* can be provided by contributed or custom modules. To use a contributed or
|
||||
* custom driver, the "namespace" property must be set to the namespace of the
|
||||
* driver. The code in this namespace must be autoloadable prior to connecting
|
||||
* to the database, and therefore, prior to when module root namespaces are
|
||||
* added to the autoloader. To add the driver's namespace to the autoloader,
|
||||
* set the "autoload" property to the PSR-4 base directory of the driver's
|
||||
* namespace. This is optional for projects managed with Composer if the
|
||||
* driver's namespace is in Composer's autoloader.
|
||||
*
|
||||
* For each database, you may optionally specify multiple "target" databases.
|
||||
* A target database allows Drupal to try to send certain queries to a
|
||||
* different database if it can but fall back to the default connection if not.
|
||||
* That is useful for primary/replica replication, as Drupal may try to connect
|
||||
* to a replica server when appropriate and if one is not available will simply
|
||||
* fall back to the single primary server (The terms primary/replica are
|
||||
* traditionally referred to as master/slave in database server documentation).
|
||||
*
|
||||
* The general format for the $databases array is as follows:
|
||||
* @code
|
||||
* $databases['default']['default'] = $info_array;
|
||||
* $databases['default']['replica'][] = $info_array;
|
||||
* $databases['default']['replica'][] = $info_array;
|
||||
* $databases['extra']['default'] = $info_array;
|
||||
* @endcode
|
||||
*
|
||||
* In the above example, $info_array is an array of settings described above.
|
||||
* The first line sets a "default" database that has one primary database
|
||||
* (the second level default). The second and third lines create an array
|
||||
* of potential replica databases. Drupal will select one at random for a given
|
||||
* request as needed. The fourth line creates a new database with a name of
|
||||
* "extra".
|
||||
*
|
||||
* You can optionally set prefixes for some or all database table names
|
||||
* by using the 'prefix' setting. If a prefix is specified, the table
|
||||
* name will be prepended with its value. Be sure to use valid database
|
||||
* characters only, usually alphanumeric and underscore. If no prefixes
|
||||
* are desired, leave it as an empty string ''.
|
||||
*
|
||||
* To have all database names prefixed, set 'prefix' as a string:
|
||||
* @code
|
||||
* 'prefix' => 'main_',
|
||||
* @endcode
|
||||
*
|
||||
* Per-table prefixes are deprecated as of Drupal 8.2, and will be removed in
|
||||
* Drupal 9.0. After that, only a single prefix for all tables will be
|
||||
* supported.
|
||||
*
|
||||
* To provide prefixes for specific tables, set 'prefix' as an array.
|
||||
* The array's keys are the table names and the values are the prefixes.
|
||||
* The 'default' element is mandatory and holds the prefix for any tables
|
||||
* not specified elsewhere in the array. Example:
|
||||
* @code
|
||||
* 'prefix' => [
|
||||
* 'default' => 'main_',
|
||||
* 'users' => 'shared_',
|
||||
* 'sessions' => 'shared_',
|
||||
* 'role' => 'shared_',
|
||||
* 'authmap' => 'shared_',
|
||||
* ],
|
||||
* @endcode
|
||||
* You can also use a reference to a schema/database as a prefix. This may be
|
||||
* useful if your Drupal installation exists in a schema that is not the default
|
||||
* or you want to access several databases from the same code base at the same
|
||||
* time.
|
||||
* Example:
|
||||
* @code
|
||||
* 'prefix' => [
|
||||
* 'default' => 'main.',
|
||||
* 'users' => 'shared.',
|
||||
* 'sessions' => 'shared.',
|
||||
* 'role' => 'shared.',
|
||||
* 'authmap' => 'shared.',
|
||||
* ];
|
||||
* @endcode
|
||||
* NOTE: MySQL and SQLite's definition of a schema is a database.
|
||||
*
|
||||
* Advanced users can add or override initial commands to execute when
|
||||
* connecting to the database server, as well as PDO connection settings. For
|
||||
* example, to enable MySQL SELECT queries to exceed the max_join_size system
|
||||
* variable, and to reduce the database connection timeout to 5 seconds:
|
||||
* @code
|
||||
* $databases['default']['default'] = [
|
||||
* 'init_commands' => [
|
||||
* 'big_selects' => 'SET SQL_BIG_SELECTS=1',
|
||||
* ],
|
||||
* 'pdo' => [
|
||||
* PDO::ATTR_TIMEOUT => 5,
|
||||
* ],
|
||||
* ];
|
||||
* @endcode
|
||||
*
|
||||
* WARNING: The above defaults are designed for database portability. Changing
|
||||
* them may cause unexpected behavior, including potential data loss. See
|
||||
* https://www.drupal.org/developing/api/database/configuration for more
|
||||
* information on these defaults and the potential issues.
|
||||
*
|
||||
* More details can be found in the constructor methods for each driver:
|
||||
* - \Drupal\Core\Database\Driver\mysql\Connection::__construct()
|
||||
* - \Drupal\Core\Database\Driver\pgsql\Connection::__construct()
|
||||
* - \Drupal\Core\Database\Driver\sqlite\Connection::__construct()
|
||||
*
|
||||
* Sample Database configuration format for PostgreSQL (pgsql):
|
||||
* @code
|
||||
* $databases['default']['default'] = [
|
||||
* 'driver' => 'pgsql',
|
||||
* 'database' => 'databasename',
|
||||
* 'username' => 'sqlusername',
|
||||
* 'password' => 'sqlpassword',
|
||||
* 'host' => 'localhost',
|
||||
* 'prefix' => '',
|
||||
* ];
|
||||
* @endcode
|
||||
*
|
||||
* Sample Database configuration format for SQLite (sqlite):
|
||||
* @code
|
||||
* $databases['default']['default'] = [
|
||||
* 'driver' => 'sqlite',
|
||||
* 'database' => '/path/to/databasefilename',
|
||||
* ];
|
||||
* @endcode
|
||||
*
|
||||
* Sample Database configuration format for a driver in a contributed module:
|
||||
* @code
|
||||
* $databases['default']['default'] = [
|
||||
* 'driver' => 'my_driver',
|
||||
* 'namespace' => 'Drupal\my_module\Driver\Database\my_driver',
|
||||
* 'autoload' => 'modules/my_module/src/Driver/Database/my_driver/',
|
||||
* 'database' => 'databasename',
|
||||
* 'username' => 'sqlusername',
|
||||
* 'password' => 'sqlpassword',
|
||||
* 'host' => 'localhost',
|
||||
* 'prefix' => '',
|
||||
* ];
|
||||
* @endcode
|
||||
*/
|
||||
|
||||
/**
|
||||
* Location of the site configuration files.
|
||||
*
|
||||
* The $settings['config_sync_directory'] specifies the location of file system
|
||||
* directory used for syncing configuration data. On install, the directory is
|
||||
* created. This is used for configuration imports.
|
||||
*
|
||||
* The default location for this directory is inside a randomly-named
|
||||
* directory in the public files path. The setting below allows you to set
|
||||
* its location.
|
||||
*/
|
||||
# $settings['config_sync_directory'] = '/directory/outside/webroot';
|
||||
|
||||
/**
|
||||
* Settings:
|
||||
*
|
||||
* $settings contains environment-specific configuration, such as the files
|
||||
* directory and reverse proxy address, and temporary configuration, such as
|
||||
* security overrides.
|
||||
*
|
||||
* @see \Drupal\Core\Site\Settings::get()
|
||||
*/
|
||||
|
||||
/**
|
||||
* Salt for one-time login links, cancel links, form tokens, etc.
|
||||
*
|
||||
* This variable will be set to a random value by the installer. All one-time
|
||||
* login links will be invalidated if the value is changed. Note that if your
|
||||
* site is deployed on a cluster of web servers, you must ensure that this
|
||||
* variable has the same value on each server.
|
||||
*
|
||||
* For enhanced security, you may set this variable to the contents of a file
|
||||
* outside your document root; you should also ensure that this file is not
|
||||
* stored with backups of your database.
|
||||
*
|
||||
* Example:
|
||||
* @code
|
||||
* $settings['hash_salt'] = file_get_contents('/home/example/salt.txt');
|
||||
* @endcode
|
||||
*/
|
||||
$settings['hash_salt'] = '';
|
||||
|
||||
/**
|
||||
* Deployment identifier.
|
||||
*
|
||||
* Drupal's dependency injection container will be automatically invalidated and
|
||||
* rebuilt when the Drupal core version changes. When updating contributed or
|
||||
* custom code that changes the container, changing this identifier will also
|
||||
* allow the container to be invalidated as soon as code is deployed.
|
||||
*/
|
||||
# $settings['deployment_identifier'] = \Drupal::VERSION;
|
||||
|
||||
/**
|
||||
* Access control for update.php script.
|
||||
*
|
||||
* If you are updating your Drupal installation using the update.php script but
|
||||
* are not logged in using either an account with the "Administer software
|
||||
* updates" permission or the site maintenance account (the account that was
|
||||
* created during installation), you will need to modify the access check
|
||||
* statement below. Change the FALSE to a TRUE to disable the access check.
|
||||
* After finishing the upgrade, be sure to open this file again and change the
|
||||
* TRUE back to a FALSE!
|
||||
*/
|
||||
$settings['update_free_access'] = FALSE;
|
||||
|
||||
/**
|
||||
* Fallback to HTTP for Update Manager and for fetching security advisories.
|
||||
*
|
||||
* If your site fails to connect to updates.drupal.org over HTTPS (either when
|
||||
* fetching data on available updates, or when fetching the feed of critical
|
||||
* security announcements), you may uncomment this setting and set it to TRUE to
|
||||
* allow an insecure fallback to HTTP. Note that doing so will open your site up
|
||||
* to a potential man-in-the-middle attack. You should instead attempt to
|
||||
* resolve the issues before enabling this option.
|
||||
* @see https://www.drupal.org/docs/system-requirements/php-requirements#openssl
|
||||
* @see https://en.wikipedia.org/wiki/Man-in-the-middle_attack
|
||||
* @see \Drupal\update\UpdateFetcher
|
||||
* @see \Drupal\system\SecurityAdvisories\SecurityAdvisoriesFetcher
|
||||
*/
|
||||
# $settings['update_fetch_with_http_fallback'] = TRUE;
|
||||
|
||||
/**
|
||||
* External access proxy settings:
|
||||
*
|
||||
* If your site must access the Internet via a web proxy then you can enter the
|
||||
* proxy settings here. Set the full URL of the proxy, including the port, in
|
||||
* variables:
|
||||
* - $settings['http_client_config']['proxy']['http']: The proxy URL for HTTP
|
||||
* requests.
|
||||
* - $settings['http_client_config']['proxy']['https']: The proxy URL for HTTPS
|
||||
* requests.
|
||||
* You can pass in the user name and password for basic authentication in the
|
||||
* URLs in these settings.
|
||||
*
|
||||
* You can also define an array of host names that can be accessed directly,
|
||||
* bypassing the proxy, in $settings['http_client_config']['proxy']['no'].
|
||||
*/
|
||||
# $settings['http_client_config']['proxy']['http'] = 'http://proxy_user:proxy_pass@example.com:8080';
|
||||
# $settings['http_client_config']['proxy']['https'] = 'http://proxy_user:proxy_pass@example.com:8080';
|
||||
# $settings['http_client_config']['proxy']['no'] = ['127.0.0.1', 'localhost'];
|
||||
|
||||
/**
|
||||
* Reverse Proxy Configuration:
|
||||
*
|
||||
* Reverse proxy servers are often used to enhance the performance
|
||||
* of heavily visited sites and may also provide other site caching,
|
||||
* security, or encryption benefits. In an environment where Drupal
|
||||
* is behind a reverse proxy, the real IP address of the client should
|
||||
* be determined such that the correct client IP address is available
|
||||
* to Drupal's logging, statistics, and access management systems. In
|
||||
* the most simple scenario, the proxy server will add an
|
||||
* X-Forwarded-For header to the request that contains the client IP
|
||||
* address. However, HTTP headers are vulnerable to spoofing, where a
|
||||
* malicious client could bypass restrictions by setting the
|
||||
* X-Forwarded-For header directly. Therefore, Drupal's proxy
|
||||
* configuration requires the IP addresses of all remote proxies to be
|
||||
* specified in $settings['reverse_proxy_addresses'] to work correctly.
|
||||
*
|
||||
* Enable this setting to get Drupal to determine the client IP from the
|
||||
* X-Forwarded-For header. If you are unsure about this setting, do not have a
|
||||
* reverse proxy, or Drupal operates in a shared hosting environment, this
|
||||
* setting should remain commented out.
|
||||
*
|
||||
* In order for this setting to be used you must specify every possible
|
||||
* reverse proxy IP address in $settings['reverse_proxy_addresses'].
|
||||
* If a complete list of reverse proxies is not available in your
|
||||
* environment (for example, if you use a CDN) you may set the
|
||||
* $_SERVER['REMOTE_ADDR'] variable directly in settings.php.
|
||||
* Be aware, however, that it is likely that this would allow IP
|
||||
* address spoofing unless more advanced precautions are taken.
|
||||
*/
|
||||
# $settings['reverse_proxy'] = TRUE;
|
||||
|
||||
/**
|
||||
* Specify every reverse proxy IP address in your environment.
|
||||
* This setting is required if $settings['reverse_proxy'] is TRUE.
|
||||
*/
|
||||
# $settings['reverse_proxy_addresses'] = ['a.b.c.d', ...];
|
||||
|
||||
/**
|
||||
* Reverse proxy trusted headers.
|
||||
*
|
||||
* Sets which headers to trust from your reverse proxy.
|
||||
*
|
||||
* Common values are:
|
||||
* - \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_FOR
|
||||
* - \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_HOST
|
||||
* - \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PORT
|
||||
* - \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PROTO
|
||||
* - \Symfony\Component\HttpFoundation\Request::HEADER_FORWARDED
|
||||
*
|
||||
* Note the default value of
|
||||
* @code
|
||||
* \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_FOR | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_HOST | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PORT | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PROTO | \Symfony\Component\HttpFoundation\Request::HEADER_FORWARDED
|
||||
* @endcode
|
||||
* is not secure by default. The value should be set to only the specific
|
||||
* headers the reverse proxy uses. For example:
|
||||
* @code
|
||||
* \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_FOR | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_HOST | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PORT | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PROTO
|
||||
* @endcode
|
||||
* This would trust the following headers:
|
||||
* - X_FORWARDED_FOR
|
||||
* - X_FORWARDED_HOST
|
||||
* - X_FORWARDED_PROTO
|
||||
* - X_FORWARDED_PORT
|
||||
*
|
||||
* @see \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_FOR
|
||||
* @see \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_HOST
|
||||
* @see \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PORT
|
||||
* @see \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PROTO
|
||||
* @see \Symfony\Component\HttpFoundation\Request::HEADER_FORWARDED
|
||||
* @see \Symfony\Component\HttpFoundation\Request::setTrustedProxies
|
||||
*/
|
||||
# $settings['reverse_proxy_trusted_headers'] = \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_FOR | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_HOST | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PORT | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PROTO | \Symfony\Component\HttpFoundation\Request::HEADER_FORWARDED;
|
||||
|
||||
|
||||
/**
|
||||
* Page caching:
|
||||
*
|
||||
* By default, Drupal sends a "Vary: Cookie" HTTP header for anonymous page
|
||||
* views. This tells a HTTP proxy that it may return a page from its local
|
||||
* cache without contacting the web server, if the user sends the same Cookie
|
||||
* header as the user who originally requested the cached page. Without "Vary:
|
||||
* Cookie", authenticated users would also be served the anonymous page from
|
||||
* the cache. If the site has mostly anonymous users except a few known
|
||||
* editors/administrators, the Vary header can be omitted. This allows for
|
||||
* better caching in HTTP proxies (including reverse proxies), i.e. even if
|
||||
* clients send different cookies, they still get content served from the cache.
|
||||
* However, authenticated users should access the site directly (i.e. not use an
|
||||
* HTTP proxy, and bypass the reverse proxy if one is used) in order to avoid
|
||||
* getting cached pages from the proxy.
|
||||
*/
|
||||
# $settings['omit_vary_cookie'] = TRUE;
|
||||
|
||||
|
||||
/**
|
||||
* Cache TTL for client error (4xx) responses.
|
||||
*
|
||||
* Items cached per-URL tend to result in a large number of cache items, and
|
||||
* this can be problematic on 404 pages which by their nature are unbounded. A
|
||||
* fixed TTL can be set for these items, defaulting to one hour, so that cache
|
||||
* backends which do not support LRU can purge older entries. To disable caching
|
||||
* of client error responses set the value to 0. Currently applies only to
|
||||
* page_cache module.
|
||||
*/
|
||||
# $settings['cache_ttl_4xx'] = 3600;
|
||||
|
||||
/**
|
||||
* Expiration of cached forms.
|
||||
*
|
||||
* Drupal's Form API stores details of forms in a cache and these entries are
|
||||
* kept for at least 6 hours by default. Expired entries are cleared by cron.
|
||||
*
|
||||
* @see \Drupal\Core\Form\FormCache::setCache()
|
||||
*/
|
||||
# $settings['form_cache_expiration'] = 21600;
|
||||
|
||||
/**
|
||||
* Class Loader.
|
||||
*
|
||||
* If the APCu extension is detected, the classloader will be optimized to use
|
||||
* it. Set to FALSE to disable this.
|
||||
*
|
||||
* @see https://getcomposer.org/doc/articles/autoloader-optimization.md
|
||||
*/
|
||||
# $settings['class_loader_auto_detect'] = FALSE;
|
||||
|
||||
/**
|
||||
* Authorized file system operations:
|
||||
*
|
||||
* The Update Manager module included with Drupal provides a mechanism for
|
||||
* site administrators to securely install missing updates for the site
|
||||
* directly through the web user interface. On securely-configured servers,
|
||||
* the Update manager will require the administrator to provide SSH or FTP
|
||||
* credentials before allowing the installation to proceed; this allows the
|
||||
* site to update the new files as the user who owns all the Drupal files,
|
||||
* instead of as the user the webserver is running as. On servers where the
|
||||
* webserver user is itself the owner of the Drupal files, the administrator
|
||||
* will not be prompted for SSH or FTP credentials (note that these server
|
||||
* setups are common on shared hosting, but are inherently insecure).
|
||||
*
|
||||
* Some sites might wish to disable the above functionality, and only update
|
||||
* the code directly via SSH or FTP themselves. This setting completely
|
||||
* disables all functionality related to these authorized file operations.
|
||||
*
|
||||
* @see https://www.drupal.org/node/244924
|
||||
*
|
||||
* Remove the leading hash signs to disable.
|
||||
*/
|
||||
# $settings['allow_authorize_operations'] = FALSE;
|
||||
|
||||
/**
|
||||
* Default mode for directories and files written by Drupal.
|
||||
*
|
||||
* Value should be in PHP Octal Notation, with leading zero.
|
||||
*/
|
||||
# $settings['file_chmod_directory'] = 0775;
|
||||
# $settings['file_chmod_file'] = 0664;
|
||||
|
||||
/**
|
||||
* Public file base URL:
|
||||
*
|
||||
* An alternative base URL to be used for serving public files. This must
|
||||
* include any leading directory path.
|
||||
*
|
||||
* A different value from the domain used by Drupal to be used for accessing
|
||||
* public files. This can be used for a simple CDN integration, or to improve
|
||||
* security by serving user-uploaded files from a different domain or subdomain
|
||||
* pointing to the same server. Do not include a trailing slash.
|
||||
*/
|
||||
# $settings['file_public_base_url'] = 'http://downloads.example.com/files';
|
||||
|
||||
/**
|
||||
* Public file path:
|
||||
*
|
||||
* A local file system path where public files will be stored. This directory
|
||||
* must exist and be writable by Drupal. This directory must be relative to
|
||||
* the Drupal installation directory and be accessible over the web.
|
||||
*/
|
||||
# $settings['file_public_path'] = 'sites/default/files';
|
||||
|
||||
/**
|
||||
* Private file path:
|
||||
*
|
||||
* A local file system path where private files will be stored. This directory
|
||||
* must be absolute, outside of the Drupal installation directory and not
|
||||
* accessible over the web.
|
||||
*
|
||||
* Note: Caches need to be cleared when this value is changed to make the
|
||||
* private:// stream wrapper available to the system.
|
||||
*
|
||||
* See https://www.drupal.org/documentation/modules/file for more information
|
||||
* about securing private files.
|
||||
*/
|
||||
# $settings['file_private_path'] = '';
|
||||
|
||||
/**
|
||||
* Temporary file path:
|
||||
*
|
||||
* A local file system path where temporary files will be stored. This directory
|
||||
* must be absolute, outside of the Drupal installation directory and not
|
||||
* accessible over the web.
|
||||
*
|
||||
* If this is not set, the default for the operating system will be used.
|
||||
*
|
||||
* @see \Drupal\Component\FileSystem\FileSystem::getOsTemporaryDirectory()
|
||||
*/
|
||||
# $settings['file_temp_path'] = '/tmp';
|
||||
|
||||
/**
|
||||
* Session write interval:
|
||||
*
|
||||
* Set the minimum interval between each session write to database.
|
||||
* For performance reasons it defaults to 180.
|
||||
*/
|
||||
# $settings['session_write_interval'] = 180;
|
||||
|
||||
/**
|
||||
* String overrides:
|
||||
*
|
||||
* To override specific strings on your site with or without enabling the Locale
|
||||
* module, add an entry to this list. This functionality allows you to change
|
||||
* a small number of your site's default English language interface strings.
|
||||
*
|
||||
* Remove the leading hash signs to enable.
|
||||
*
|
||||
* The "en" part of the variable name, is dynamic and can be any langcode of
|
||||
* any added language. (eg locale_custom_strings_de for german).
|
||||
*/
|
||||
# $settings['locale_custom_strings_en'][''] = [
|
||||
# 'forum' => 'Discussion board',
|
||||
# '@count min' => '@count minutes',
|
||||
# ];
|
||||
|
||||
/**
|
||||
* A custom theme for the offline page:
|
||||
*
|
||||
* This applies when the site is explicitly set to maintenance mode through the
|
||||
* administration page or when the database is inactive due to an error.
|
||||
* The template file should also be copied into the theme. It is located inside
|
||||
* 'core/modules/system/templates/maintenance-page.html.twig'.
|
||||
*
|
||||
* Note: This setting does not apply to installation and update pages.
|
||||
*/
|
||||
# $settings['maintenance_theme'] = 'bartik';
|
||||
|
||||
/**
|
||||
* PHP settings:
|
||||
*
|
||||
* To see what PHP settings are possible, including whether they can be set at
|
||||
* runtime (by using ini_set()), read the PHP documentation:
|
||||
* http://php.net/manual/ini.list.php
|
||||
* See \Drupal\Core\DrupalKernel::bootEnvironment() for required runtime
|
||||
* settings and the .htaccess file for non-runtime settings.
|
||||
* Settings defined there should not be duplicated here so as to avoid conflict
|
||||
* issues.
|
||||
*/
|
||||
|
||||
/**
|
||||
* If you encounter a situation where users post a large amount of text, and
|
||||
* the result is stripped out upon viewing but can still be edited, Drupal's
|
||||
* output filter may not have sufficient memory to process it. If you
|
||||
* experience this issue, you may wish to uncomment the following two lines
|
||||
* and increase the limits of these variables. For more information, see
|
||||
* http://php.net/manual/pcre.configuration.php.
|
||||
*/
|
||||
# ini_set('pcre.backtrack_limit', 200000);
|
||||
# ini_set('pcre.recursion_limit', 200000);
|
||||
|
||||
/**
|
||||
* Add Permissions-Policy header to disable Google FLoC.
|
||||
*
|
||||
* By default, Drupal sends the 'Permissions-Policy: interest-cohort=()' header
|
||||
* to disable Google's Federated Learning of Cohorts feature, introduced in
|
||||
* Chrome 89.
|
||||
*
|
||||
* See https://en.wikipedia.org/wiki/Federated_Learning_of_Cohorts for more
|
||||
* information about FLoC.
|
||||
*
|
||||
* If you don't wish to disable FLoC in Chrome, you can set this value
|
||||
* to FALSE.
|
||||
*/
|
||||
# $settings['block_interest_cohort'] = TRUE;
|
||||
|
||||
/**
|
||||
* Configuration overrides.
|
||||
*
|
||||
* To globally override specific configuration values for this site,
|
||||
* set them here. You usually don't need to use this feature. This is
|
||||
* useful in a configuration file for a vhost or directory, rather than
|
||||
* the default settings.php.
|
||||
*
|
||||
* Note that any values you provide in these variable overrides will not be
|
||||
* viewable from the Drupal administration interface. The administration
|
||||
* interface displays the values stored in configuration so that you can stage
|
||||
* changes to other environments that don't have the overrides.
|
||||
*
|
||||
* There are particular configuration values that are risky to override. For
|
||||
* example, overriding the list of installed modules in 'core.extension' is not
|
||||
* supported as module install or uninstall has not occurred. Other examples
|
||||
* include field storage configuration, because it has effects on database
|
||||
* structure, and 'core.menu.static_menu_link_overrides' since this is cached in
|
||||
* a way that is not config override aware. Also, note that changing
|
||||
* configuration values in settings.php will not fire any of the configuration
|
||||
* change events.
|
||||
*/
|
||||
# $config['system.site']['name'] = 'My Drupal site';
|
||||
# $config['user.settings']['anonymous'] = 'Visitor';
|
||||
|
||||
/**
|
||||
* Fast 404 pages:
|
||||
*
|
||||
* Drupal can generate fully themed 404 pages. However, some of these responses
|
||||
* are for images or other resource files that are not displayed to the user.
|
||||
* This can waste bandwidth, and also generate server load.
|
||||
*
|
||||
* The options below return a simple, fast 404 page for URLs matching a
|
||||
* specific pattern:
|
||||
* - $config['system.performance']['fast_404']['exclude_paths']: A regular
|
||||
* expression to match paths to exclude, such as images generated by image
|
||||
* styles, or dynamically-resized images. The default pattern provided below
|
||||
* also excludes the private file system. If you need to add more paths, you
|
||||
* can add '|path' to the expression.
|
||||
* - $config['system.performance']['fast_404']['paths']: A regular expression to
|
||||
* match paths that should return a simple 404 page, rather than the fully
|
||||
* themed 404 page. If you don't have any aliases ending in htm or html you
|
||||
* can add '|s?html?' to the expression.
|
||||
* - $config['system.performance']['fast_404']['html']: The html to return for
|
||||
* simple 404 pages.
|
||||
*
|
||||
* Remove the leading hash signs if you would like to alter this functionality.
|
||||
*/
|
||||
# $config['system.performance']['fast_404']['exclude_paths'] = '/\/(?:styles)|(?:system\/files)\//';
|
||||
# $config['system.performance']['fast_404']['paths'] = '/\.(?:txt|png|gif|jpe?g|css|js|ico|swf|flv|cgi|bat|pl|dll|exe|asp)$/i';
|
||||
# $config['system.performance']['fast_404']['html'] = '<!DOCTYPE html><html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL "@path" was not found on this server.</p></body></html>';
|
||||
|
||||
/**
|
||||
* Load services definition file.
|
||||
*/
|
||||
$settings['container_yamls'][] = $app_root . '/' . $site_path . '/services.yml';
|
||||
|
||||
/**
|
||||
* Override the default service container class.
|
||||
*
|
||||
* This is useful for example to trace the service container for performance
|
||||
* tracking purposes, for testing a service container with an error condition or
|
||||
* to test a service container that throws an exception.
|
||||
*/
|
||||
# $settings['container_base_class'] = '\Drupal\Core\DependencyInjection\Container';
|
||||
|
||||
/**
|
||||
* Override the default yaml parser class.
|
||||
*
|
||||
* Provide a fully qualified class name here if you would like to provide an
|
||||
* alternate implementation YAML parser. The class must implement the
|
||||
* \Drupal\Component\Serialization\SerializationInterface interface.
|
||||
*/
|
||||
# $settings['yaml_parser_class'] = NULL;
|
||||
|
||||
/**
|
||||
* Trusted host configuration.
|
||||
*
|
||||
* Drupal core can use the Symfony trusted host mechanism to prevent HTTP Host
|
||||
* header spoofing.
|
||||
*
|
||||
* To enable the trusted host mechanism, you enable your allowable hosts
|
||||
* in $settings['trusted_host_patterns']. This should be an array of regular
|
||||
* expression patterns, without delimiters, representing the hosts you would
|
||||
* like to allow.
|
||||
*
|
||||
* For example:
|
||||
* @code
|
||||
* $settings['trusted_host_patterns'] = [
|
||||
* '^www\.example\.com$',
|
||||
* ];
|
||||
* @endcode
|
||||
* will allow the site to only run from www.example.com.
|
||||
*
|
||||
* If you are running multisite, or if you are running your site from
|
||||
* different domain names (eg, you don't redirect http://www.example.com to
|
||||
* http://example.com), you should specify all of the host patterns that are
|
||||
* allowed by your site.
|
||||
*
|
||||
* For example:
|
||||
* @code
|
||||
* $settings['trusted_host_patterns'] = [
|
||||
* '^example\.com$',
|
||||
* '^.+\.example\.com$',
|
||||
* '^example\.org$',
|
||||
* '^.+\.example\.org$',
|
||||
* ];
|
||||
* @endcode
|
||||
* will allow the site to run off of all variants of example.com and
|
||||
* example.org, with all subdomains included.
|
||||
*/
|
||||
|
||||
/**
|
||||
* The default list of directories that will be ignored by Drupal's file API.
|
||||
*
|
||||
* By default ignore node_modules and bower_components folders to avoid issues
|
||||
* with common frontend tools and recursive scanning of directories looking for
|
||||
* extensions.
|
||||
*
|
||||
* @see \Drupal\Core\File\FileSystemInterface::scanDirectory()
|
||||
* @see \Drupal\Core\Extension\ExtensionDiscovery::scanDirectory()
|
||||
*/
|
||||
$settings['file_scan_ignore_directories'] = [
|
||||
'node_modules',
|
||||
'bower_components',
|
||||
];
|
||||
|
||||
/**
|
||||
* The default number of entities to update in a batch process.
|
||||
*
|
||||
* This is used by update and post-update functions that need to go through and
|
||||
* change all the entities on a site, so it is useful to increase this number
|
||||
* if your hosting configuration (i.e. RAM allocation, CPU speed) allows for a
|
||||
* larger number of entities to be processed in a single batch run.
|
||||
*/
|
||||
$settings['entity_update_batch_size'] = 50;
|
||||
|
||||
/**
|
||||
* Entity update backup.
|
||||
*
|
||||
* This is used to inform the entity storage handler that the backup tables as
|
||||
* well as the original entity type and field storage definitions should be
|
||||
* retained after a successful entity update process.
|
||||
*/
|
||||
$settings['entity_update_backup'] = TRUE;
|
||||
|
||||
/**
|
||||
* Node migration type.
|
||||
*
|
||||
* This is used to force the migration system to use the classic node migrations
|
||||
* instead of the default complete node migrations. The migration system will
|
||||
* use the classic node migration only if there are existing migrate_map tables
|
||||
* for the classic node migrations and they contain data. These tables may not
|
||||
* exist if you are developing custom migrations and do not want to use the
|
||||
* complete node migrations. Set this to TRUE to force the use of the classic
|
||||
* node migrations.
|
||||
*/
|
||||
$settings['migrate_node_migrate_type_classic'] = FALSE;
|
||||
|
||||
/**
|
||||
* Load local development override configuration, if available.
|
||||
*
|
||||
* Create a settings.local.php file to override variables on secondary (staging,
|
||||
* development, etc.) installations of this site.
|
||||
*
|
||||
* Typical uses of settings.local.php include:
|
||||
* - Disabling caching.
|
||||
* - Disabling JavaScript/CSS compression.
|
||||
* - Rerouting outgoing emails.
|
||||
*
|
||||
* Keep this code block at the end of this file to take full effect.
|
||||
*/
|
||||
#
|
||||
# if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) {
|
||||
# include $app_root . '/' . $site_path . '/settings.local.php';
|
||||
# }
|
|
@ -0,0 +1,9 @@
|
|||
# Local development services.
|
||||
#
|
||||
# To activate this feature, follow the instructions at the top of the
|
||||
# 'example.settings.local.php' file, which sits next to this file.
|
||||
parameters:
|
||||
http.response.debug_cacheability_headers: true
|
||||
services:
|
||||
cache.backend.null:
|
||||
class: Drupal\Core\Cache\NullBackendFactory
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
Please read core/INSTALL.txt for detailed installation instructions for your
|
||||
Drupal website.
|
|
@ -0,0 +1,75 @@
|
|||
<img alt="Drupal Logo" src="https://www.drupal.org/files/Wordmark_blue_RGB.png" height="60px">
|
||||
|
||||
Drupal is an open source content management platform supporting a variety of
|
||||
websites ranging from personal weblogs to large community-driven websites. For
|
||||
more information, visit the Drupal website, [Drupal.org][Drupal.org], and join
|
||||
the [Drupal community][Drupal community].
|
||||
|
||||
## Contributing
|
||||
|
||||
Drupal is developed on [Drupal.org][Drupal.org], the home of the international
|
||||
Drupal community since 2001!
|
||||
|
||||
[Drupal.org][Drupal.org] hosts Drupal's [GitLab repository][GitLab repository],
|
||||
its [issue queue][issue queue], and its [documentation][documentation]. Before
|
||||
you start working on code, be sure to search the [issue queue][issue queue] and
|
||||
create an issue if your aren't able to find an existing issue.
|
||||
|
||||
Every issue on Drupal.org automatically creates a new community-accessible fork
|
||||
that you can contribute to. Learn more about the code contribution process on
|
||||
the [Issue forks & merge requests page][issue forks].
|
||||
|
||||
## Usage
|
||||
|
||||
For a brief introduction, see [USAGE.txt](/core/USAGE.txt). You can also find
|
||||
guides, API references, and more by visiting Drupal's [documentation
|
||||
page][documentation].
|
||||
|
||||
You can quickly extend Drupal's core feature set by installing any of its
|
||||
[thousands of free and open source modules][modules]. With Drupal and its
|
||||
module ecosystem, you can often build most or all of what your project needs
|
||||
before writing a single line of code.
|
||||
|
||||
## Changelog
|
||||
|
||||
Drupal keeps detailed [change records][changelog]. You can search Drupal's
|
||||
changes for a record of every notable breaking change and new feature since
|
||||
2011.
|
||||
|
||||
## Security
|
||||
|
||||
For a list of security announcements, see the [Security advisories
|
||||
page][Security advisories] (available as [an RSS feed][security RSS]). This
|
||||
page also describes how to subscribe to these announcements via email.
|
||||
|
||||
For information about the Drupal security process, or to find out how to report
|
||||
a potential security issue to the Drupal security team, see the [Security team
|
||||
page][security team].
|
||||
|
||||
## Need a helping hand?
|
||||
|
||||
Visit the [Support page][support] or browse [over a thousand Drupal
|
||||
providers][service providers] offering design, strategy, development, and
|
||||
hosting services.
|
||||
|
||||
## Legal matters
|
||||
|
||||
Know your rights when using Drupal by reading Drupal core's
|
||||
[license](/core/LICENSE.txt).
|
||||
|
||||
Learn about the [Drupal trademark and logo policy here][trademark].
|
||||
|
||||
[Drupal.org]: https://www.drupal.org
|
||||
[Drupal community]: https://www.drupal.org/community
|
||||
[GitLab repository]: https://git.drupalcode.org/project/drupal
|
||||
[issue queue]: https://www.drupal.org/project/issues/drupal
|
||||
[issue forks]: https://www.drupal.org/drupalorg/docs/gitlab-integration/issue-forks-merge-requests
|
||||
[documentation]: https://www.drupal.org/documentation
|
||||
[changelog]: https://www.drupal.org/list-changes/drupal
|
||||
[modules]: https://www.drupal.org/project/project_module
|
||||
[security advisories]: https://www.drupal.org/security
|
||||
[security RSS]: https://www.drupal.org/security/rss.xml
|
||||
[security team]: https://www.drupal.org/drupal-security-team
|
||||
[service providers]: https://www.drupal.org/drupal-services
|
||||
[support]: https://www.drupal.org/support
|
||||
[trademark]: https://www.drupal.com/trademark
|
|
@ -0,0 +1,17 @@
|
|||
# Drupal editor configuration normalization
|
||||
# @see http://editorconfig.org/
|
||||
|
||||
# This is the top-most .editorconfig file; do not search in parent directories.
|
||||
root = true
|
||||
|
||||
# All files.
|
||||
[*]
|
||||
end_of_line = LF
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[composer.{json,lock}]
|
||||
indent_size = 4
|
|
@ -0,0 +1,8 @@
|
|||
core/**/*
|
||||
vendor/**/*
|
||||
sites/**/files/**/*
|
||||
libraries/**/*
|
||||
sites/**/libraries/**/*
|
||||
profiles/**/libraries/**/*
|
||||
**/js_test_files/**/*
|
||||
**/node_modules/**/*
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"extends": "./core/.eslintrc.json"
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
# This file contains default .gitignore rules. To use it, copy it to .gitignore,
|
||||
# and it will cause files like your settings.php and user-uploaded files to be
|
||||
# excluded from Git version control. This is a common strategy to avoid
|
||||
# accidentally including private information in public repositories and patch
|
||||
# files.
|
||||
#
|
||||
# Because .gitignore can be specific to your site, this file has a different
|
||||
# name; updating Drupal core will not override your custom .gitignore file.
|
||||
|
||||
# Ignore core when managing all of a project's dependencies with Composer
|
||||
# including Drupal core.
|
||||
# core
|
||||
|
||||
# Ignore dependencies that are managed with Composer.
|
||||
# Generally you should only ignore the root vendor directory. It's important
|
||||
# that core/assets/vendor and any other vendor directories within contrib or
|
||||
# custom module, theme, etc., are not ignored unless you purposely do so.
|
||||
/vendor/
|
||||
|
||||
# Ignore configuration files that may contain sensitive information.
|
||||
sites/*/settings*.php
|
||||
sites/*/services*.yml
|
||||
|
||||
# Ignore paths that contain user-generated content.
|
||||
sites/*/files
|
||||
sites/*/private
|
||||
|
||||
# Ignore SimpleTest multi-site environment.
|
||||
sites/simpletest
|
||||
|
||||
# If you prefer to store your .gitignore file in the sites/ folder, comment
|
||||
# or delete the previous settings and uncomment the following ones, instead.
|
||||
|
||||
# Ignore configuration files that may contain sensitive information.
|
||||
# */settings*.php
|
||||
|
||||
# Ignore paths that contain user-generated content.
|
||||
# */files
|
||||
# */private
|
||||
|
||||
# Ignore SimpleTest multi-site environment.
|
||||
# simpletest
|
|
@ -0,0 +1,155 @@
|
|||
<?php
|
||||
|
||||
// phpcs:ignoreFile
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Local development override configuration feature.
|
||||
*
|
||||
* To activate this feature, copy and rename it such that its path plus
|
||||
* filename is 'sites/default/settings.local.php'. Then, go to the bottom of
|
||||
* 'sites/default/settings.php' and uncomment the commented lines that mention
|
||||
* 'settings.local.php'.
|
||||
*
|
||||
* If you are using a site name in the path, such as 'sites/example.com', copy
|
||||
* this file to 'sites/example.com/settings.local.php', and uncomment the lines
|
||||
* at the bottom of 'sites/example.com/settings.php'.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Assertions.
|
||||
*
|
||||
* The Drupal project primarily uses runtime assertions to enforce the
|
||||
* expectations of the API by failing when incorrect calls are made by code
|
||||
* under development.
|
||||
*
|
||||
* @see http://php.net/assert
|
||||
* @see https://www.drupal.org/node/2492225
|
||||
*
|
||||
* If you are using PHP 7.0 it is strongly recommended that you set
|
||||
* zend.assertions=1 in the PHP.ini file (It cannot be changed from .htaccess
|
||||
* or runtime) on development machines and to 0 in production.
|
||||
*
|
||||
* @see https://wiki.php.net/rfc/expectations
|
||||
*/
|
||||
assert_options(ASSERT_ACTIVE, TRUE);
|
||||
\Drupal\Component\Assertion\Handle::register();
|
||||
|
||||
/**
|
||||
* Enable local development services.
|
||||
*/
|
||||
$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';
|
||||
|
||||
/**
|
||||
* Show all error messages, with backtrace information.
|
||||
*
|
||||
* In case the error level could not be fetched from the database, as for
|
||||
* example the database connection failed, we rely only on this value.
|
||||
*/
|
||||
$config['system.logging']['error_level'] = 'verbose';
|
||||
|
||||
/**
|
||||
* Disable CSS and JS aggregation.
|
||||
*/
|
||||
$config['system.performance']['css']['preprocess'] = FALSE;
|
||||
$config['system.performance']['js']['preprocess'] = FALSE;
|
||||
|
||||
/**
|
||||
* Disable the render cache.
|
||||
*
|
||||
* Note: you should test with the render cache enabled, to ensure the correct
|
||||
* cacheability metadata is present. However, in the early stages of
|
||||
* development, you may want to disable it.
|
||||
*
|
||||
* This setting disables the render cache by using the Null cache back-end
|
||||
* defined by the development.services.yml file above.
|
||||
*
|
||||
* Only use this setting once the site has been installed.
|
||||
*/
|
||||
# $settings['cache']['bins']['render'] = 'cache.backend.null';
|
||||
|
||||
/**
|
||||
* Disable caching for migrations.
|
||||
*
|
||||
* Uncomment the code below to only store migrations in memory and not in the
|
||||
* database. This makes it easier to develop custom migrations.
|
||||
*/
|
||||
# $settings['cache']['bins']['discovery_migration'] = 'cache.backend.memory';
|
||||
|
||||
/**
|
||||
* Disable Internal Page Cache.
|
||||
*
|
||||
* Note: you should test with Internal Page Cache enabled, to ensure the correct
|
||||
* cacheability metadata is present. However, in the early stages of
|
||||
* development, you may want to disable it.
|
||||
*
|
||||
* This setting disables the page cache by using the Null cache back-end
|
||||
* defined by the development.services.yml file above.
|
||||
*
|
||||
* Only use this setting once the site has been installed.
|
||||
*/
|
||||
# $settings['cache']['bins']['page'] = 'cache.backend.null';
|
||||
|
||||
/**
|
||||
* Disable Dynamic Page Cache.
|
||||
*
|
||||
* Note: you should test with Dynamic Page Cache enabled, to ensure the correct
|
||||
* cacheability metadata is present (and hence the expected behavior). However,
|
||||
* in the early stages of development, you may want to disable it.
|
||||
*/
|
||||
# $settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';
|
||||
|
||||
/**
|
||||
* Allow test modules and themes to be installed.
|
||||
*
|
||||
* Drupal ignores test modules and themes by default for performance reasons.
|
||||
* During development it can be useful to install test extensions for debugging
|
||||
* purposes.
|
||||
*/
|
||||
# $settings['extension_discovery_scan_tests'] = TRUE;
|
||||
|
||||
/**
|
||||
* Enable access to rebuild.php.
|
||||
*
|
||||
* This setting can be enabled to allow Drupal's php and database cached
|
||||
* storage to be cleared via the rebuild.php page. Access to this page can also
|
||||
* be gained by generating a query string from rebuild_token_calculator.sh and
|
||||
* using these parameters in a request to rebuild.php.
|
||||
*/
|
||||
$settings['rebuild_access'] = TRUE;
|
||||
|
||||
/**
|
||||
* Skip file system permissions hardening.
|
||||
*
|
||||
* The system module will periodically check the permissions of your site's
|
||||
* site directory to ensure that it is not writable by the website user. For
|
||||
* sites that are managed with a version control system, this can cause problems
|
||||
* when files in that directory such as settings.php are updated, because the
|
||||
* user pulling in the changes won't have permissions to modify files in the
|
||||
* directory.
|
||||
*/
|
||||
$settings['skip_permissions_hardening'] = TRUE;
|
||||
|
||||
/**
|
||||
* Exclude modules from configuration synchronization.
|
||||
*
|
||||
* On config export sync, no config or dependent config of any excluded module
|
||||
* is exported. On config import sync, any config of any installed excluded
|
||||
* module is ignored. In the exported configuration, it will be as if the
|
||||
* excluded module had never been installed. When syncing configuration, if an
|
||||
* excluded module is already installed, it will not be uninstalled by the
|
||||
* configuration synchronization, and dependent configuration will remain
|
||||
* intact. This affects only configuration synchronization; single import and
|
||||
* export of configuration are not affected.
|
||||
*
|
||||
* Drupal does not validate or sanity check the list of excluded modules. For
|
||||
* instance, it is your own responsibility to never exclude required modules,
|
||||
* because it would mean that the exported configuration can not be imported
|
||||
* anymore.
|
||||
*
|
||||
* This is an advanced feature and using it means opting out of some of the
|
||||
* guarantees the configuration synchronization provides. It is not recommended
|
||||
* to use this feature with modules that affect Drupal in a major way such as
|
||||
* the language or field module.
|
||||
*/
|
||||
# $settings['config_exclude_modules'] = ['devel', 'stage_file_proxy'];
|
|
@ -0,0 +1,57 @@
|
|||
<?php
|
||||
|
||||
// phpcs:ignoreFile
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Configuration file for multi-site support and directory aliasing feature.
|
||||
*
|
||||
* This file is required for multi-site support and also allows you to define a
|
||||
* set of aliases that map hostnames, ports, and pathnames to configuration
|
||||
* directories in the sites directory. These aliases are loaded prior to
|
||||
* scanning for directories, and they are exempt from the normal discovery
|
||||
* rules. See default.settings.php to view how Drupal discovers the
|
||||
* configuration directory when no alias is found.
|
||||
*
|
||||
* Aliases are useful on development servers, where the domain name may not be
|
||||
* the same as the domain of the live server. Since Drupal stores file paths in
|
||||
* the database (files, system table, etc.) this will ensure the paths are
|
||||
* correct when the site is deployed to a live server.
|
||||
*
|
||||
* To activate this feature, copy and rename it such that its path plus
|
||||
* filename is 'sites/sites.php'.
|
||||
*
|
||||
* Aliases are defined in an associative array named $sites. The array is
|
||||
* written in the format: '<port>.<domain>.<path>' => 'directory'. As an
|
||||
* example, to map https://www.drupal.org:8080/mysite/test to the configuration
|
||||
* directory sites/example.com, the array should be defined as:
|
||||
* @code
|
||||
* $sites = [
|
||||
* '8080.www.drupal.org.mysite.test' => 'example.com',
|
||||
* ];
|
||||
* @endcode
|
||||
* The URL, https://www.drupal.org:8080/mysite/test/, could be a symbolic link
|
||||
* or an Apache Alias directive that points to the Drupal root containing
|
||||
* index.php. An alias could also be created for a subdomain. See the
|
||||
* @link https://www.drupal.org/documentation/install online Drupal installation guide @endlink
|
||||
* for more information on setting up domains, subdomains, and subdirectories.
|
||||
*
|
||||
* The following examples look for a site configuration in sites/example.com:
|
||||
* @code
|
||||
* URL: http://dev.drupal.org
|
||||
* $sites['dev.drupal.org'] = 'example.com';
|
||||
*
|
||||
* URL: http://localhost/example
|
||||
* $sites['localhost.example'] = 'example.com';
|
||||
*
|
||||
* URL: http://localhost:8080/example
|
||||
* $sites['8080.localhost.example'] = 'example.com';
|
||||
*
|
||||
* URL: https://www.drupal.org:8080/mysite/test/
|
||||
* $sites['8080.www.drupal.org.mysite.test'] = 'example.com';
|
||||
* @endcode
|
||||
*
|
||||
* @see default.settings.php
|
||||
* @see \Drupal\Core\DrupalKernel::getSitePath()
|
||||
* @see https://www.drupal.org/documentation/install/multi-site
|
||||
*/
|
|
@ -0,0 +1,61 @@
|
|||
# Drupal git normalization
|
||||
# @see https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html
|
||||
# @see https://www.drupal.org/node/1542048
|
||||
|
||||
# Normally these settings would be done with macro attributes for improved
|
||||
# readability and easier maintenance. However macros can only be defined at the
|
||||
# repository root directory. Drupal avoids making any assumptions about where it
|
||||
# is installed.
|
||||
|
||||
# Define text file attributes.
|
||||
# - Treat them as text.
|
||||
# - Ensure no CRLF line-endings, neither on checkout nor on checkin.
|
||||
# - Detect whitespace errors.
|
||||
# - Exposed by default in `git diff --color` on the CLI.
|
||||
# - Validate with `git diff --check`.
|
||||
# - Deny applying with `git apply --whitespace=error-all`.
|
||||
# - Fix automatically with `git apply --whitespace=fix`.
|
||||
|
||||
*.config text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.css text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.dist text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.engine text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.html text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=html
|
||||
*.inc text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.install text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.js text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.json text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.lock text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.map text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.md text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.module text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.php text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.po text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.profile text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.script text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.sh text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.sql text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.svg text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.theme text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
|
||||
*.twig text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.txt text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.xml text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
*.yml text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
|
||||
|
||||
# Define binary file attributes.
|
||||
# - Do not treat them as text.
|
||||
# - Include binary diff in patches instead of "binary files differ."
|
||||
*.eot -text diff
|
||||
*.exe -text diff
|
||||
*.gif -text diff
|
||||
*.gz -text diff
|
||||
*.ico -text diff
|
||||
*.jpeg -text diff
|
||||
*.jpg -text diff
|
||||
*.otf -text diff
|
||||
*.phar -text diff
|
||||
*.png -text diff
|
||||
*.svgz -text diff
|
||||
*.ttf -text diff
|
||||
*.woff -text diff
|
||||
*.woff2 -text diff
|
|
@ -0,0 +1,65 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Router script for the built-in PHP web server.
|
||||
*
|
||||
* The built-in web server should only be used for development and testing as it
|
||||
* has a number of limitations that makes running Drupal on it highly insecure
|
||||
* and somewhat limited.
|
||||
*
|
||||
* Note that:
|
||||
* - The server is single-threaded, any requests made during the execution of
|
||||
* the main request will hang until the main request has been completed.
|
||||
* - The web server does not enforce any of the settings in .htaccess in
|
||||
* particular a remote user will be able to download files that normally would
|
||||
* be protected from direct access such as .module files.
|
||||
*
|
||||
* The router script is needed to work around a bug in PHP, see
|
||||
* https://bugs.php.net/bug.php?id=61286.
|
||||
*
|
||||
* Usage:
|
||||
* php -S localhost:8888 .ht.router.php
|
||||
*
|
||||
* @see http://php.net/manual/en/features.commandline.webserver.php
|
||||
*/
|
||||
|
||||
$url = parse_url($_SERVER['REQUEST_URI']);
|
||||
if (file_exists(__DIR__ . $url['path'])) {
|
||||
// Serve the requested resource as-is.
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// Work around the PHP bug.
|
||||
$path = $url['path'];
|
||||
$script = 'index.php';
|
||||
if (strpos($path, '.php') !== FALSE) {
|
||||
// Work backwards through the path to check if a script exists. Otherwise
|
||||
// fallback to index.php.
|
||||
do {
|
||||
$path = dirname($path);
|
||||
if (preg_match('/\.php$/', $path) && is_file(__DIR__ . $path)) {
|
||||
// Discovered that the path contains an existing PHP file. Use that as the
|
||||
// script to include.
|
||||
$script = ltrim($path, '/');
|
||||
break;
|
||||
}
|
||||
} while ($path !== '/' && $path !== '.');
|
||||
}
|
||||
|
||||
// Update $_SERVER variables to point to the correct index-file.
|
||||
$index_file_absolute = $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . $script;
|
||||
$index_file_relative = DIRECTORY_SEPARATOR . $script;
|
||||
|
||||
// SCRIPT_FILENAME will point to the router script itself, it should point to
|
||||
// the full path of index.php.
|
||||
$_SERVER['SCRIPT_FILENAME'] = $index_file_absolute;
|
||||
|
||||
// SCRIPT_NAME and PHP_SELF will either point to index.php or contain the full
|
||||
// virtual path being requested depending on the URL being requested. They
|
||||
// should always point to index.php relative to document root.
|
||||
$_SERVER['SCRIPT_NAME'] = $index_file_relative;
|
||||
$_SERVER['PHP_SELF'] = $index_file_relative;
|
||||
|
||||
// Require the script and let core take over.
|
||||
require $_SERVER['SCRIPT_FILENAME'];
|
|
@ -0,0 +1,182 @@
|
|||
#
|
||||
# Apache/PHP/Drupal settings:
|
||||
#
|
||||
|
||||
# Protect files and directories from prying eyes.
|
||||
<FilesMatch "\.(engine|inc|install|make|module|profile|po|sh|.*sql|theme|twig|tpl(\.php)?|xtmpl|yml)(~|\.sw[op]|\.bak|\.orig|\.save)?$|^(\.(?!well-known).*|Entries.*|Repository|Root|Tag|Template|composer\.(json|lock)|web\.config)$|^#.*#$|\.php(~|\.sw[op]|\.bak|\.orig|\.save)$">
|
||||
<IfModule mod_authz_core.c>
|
||||
Require all denied
|
||||
</IfModule>
|
||||
<IfModule !mod_authz_core.c>
|
||||
Order allow,deny
|
||||
</IfModule>
|
||||
</FilesMatch>
|
||||
|
||||
# Don't show directory listings for URLs which map to a directory.
|
||||
Options -Indexes
|
||||
|
||||
# Set the default handler.
|
||||
DirectoryIndex index.php index.html index.htm
|
||||
|
||||
# Add correct encoding for SVGZ.
|
||||
AddType image/svg+xml svg svgz
|
||||
AddEncoding gzip svgz
|
||||
|
||||
# Most of the following PHP settings cannot be changed at runtime. See
|
||||
# sites/default/default.settings.php and
|
||||
# Drupal\Core\DrupalKernel::bootEnvironment() for settings that can be
|
||||
# changed at runtime.
|
||||
|
||||
# PHP 7, Apache 1 and 2.
|
||||
<IfModule mod_php7.c>
|
||||
php_value assert.active 0
|
||||
</IfModule>
|
||||
|
||||
# Requires mod_expires to be enabled.
|
||||
<IfModule mod_expires.c>
|
||||
# Enable expirations.
|
||||
ExpiresActive On
|
||||
|
||||
# Cache all files for 2 weeks after access (A).
|
||||
ExpiresDefault A1209600
|
||||
|
||||
<FilesMatch \.php$>
|
||||
# Do not allow PHP scripts to be cached unless they explicitly send cache
|
||||
# headers themselves. Otherwise all scripts would have to overwrite the
|
||||
# headers set by mod_expires if they want another caching behavior. This may
|
||||
# fail if an error occurs early in the bootstrap process, and it may cause
|
||||
# problems if a non-Drupal PHP file is installed in a subdirectory.
|
||||
ExpiresActive Off
|
||||
</FilesMatch>
|
||||
</IfModule>
|
||||
|
||||
# Set a fallback resource if mod_rewrite is not enabled. This allows Drupal to
|
||||
# work without clean URLs. This requires Apache version >= 2.2.16. If Drupal is
|
||||
# not accessed by the top level URL (i.e.: http://example.com/drupal/ instead of
|
||||
# http://example.com/), the path to index.php will need to be adjusted.
|
||||
<IfModule !mod_rewrite.c>
|
||||
FallbackResource /index.php
|
||||
</IfModule>
|
||||
|
||||
# Various rewrite rules.
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteEngine on
|
||||
|
||||
# Set "protossl" to "s" if we were accessed via https://. This is used later
|
||||
# if you enable "www." stripping or enforcement, in order to ensure that
|
||||
# you don't bounce between http and https.
|
||||
RewriteRule ^ - [E=protossl]
|
||||
RewriteCond %{HTTPS} on
|
||||
RewriteRule ^ - [E=protossl:s]
|
||||
|
||||
# Make sure Authorization HTTP header is available to PHP
|
||||
# even when running as CGI or FastCGI.
|
||||
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
||||
|
||||
# Block access to "hidden" directories whose names begin with a period. This
|
||||
# includes directories used by version control systems such as Subversion or
|
||||
# Git to store control files. Files whose names begin with a period, as well
|
||||
# as the control files used by CVS, are protected by the FilesMatch directive
|
||||
# above.
|
||||
#
|
||||
# NOTE: This only works when mod_rewrite is loaded. Without mod_rewrite, it is
|
||||
# not possible to block access to entire directories from .htaccess because
|
||||
# <DirectoryMatch> is not allowed here.
|
||||
#
|
||||
# If you do not have mod_rewrite installed, you should remove these
|
||||
# directories from your webroot or otherwise protect them from being
|
||||
# downloaded.
|
||||
RewriteRule "/\.|^\.(?!well-known/)" - [F]
|
||||
|
||||
# If your site can be accessed both with and without the 'www.' prefix, you
|
||||
# can use one of the following settings to redirect users to your preferred
|
||||
# URL, either WITH or WITHOUT the 'www.' prefix. Choose ONLY one option:
|
||||
#
|
||||
# To redirect all users to access the site WITH the 'www.' prefix,
|
||||
# (http://example.com/foo will be redirected to http://www.example.com/foo)
|
||||
# uncomment the following:
|
||||
# RewriteCond %{HTTP_HOST} .
|
||||
# RewriteCond %{HTTP_HOST} !^www\. [NC]
|
||||
# RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
|
||||
#
|
||||
# To redirect all users to access the site WITHOUT the 'www.' prefix,
|
||||
# (http://www.example.com/foo will be redirected to http://example.com/foo)
|
||||
# uncomment the following:
|
||||
# RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
|
||||
# RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]
|
||||
|
||||
# Modify the RewriteBase if you are using Drupal in a subdirectory or in a
|
||||
# VirtualDocumentRoot and the rewrite rules are not working properly.
|
||||
# For example if your site is at http://example.com/drupal uncomment and
|
||||
# modify the following line:
|
||||
# RewriteBase /drupal
|
||||
#
|
||||
# If your site is running in a VirtualDocumentRoot at http://example.com/,
|
||||
# uncomment the following line:
|
||||
# RewriteBase /
|
||||
|
||||
# Redirect common PHP files to their new locations.
|
||||
RewriteCond %{REQUEST_URI} ^(.*)?/(install\.php) [OR]
|
||||
RewriteCond %{REQUEST_URI} ^(.*)?/(rebuild\.php)
|
||||
RewriteCond %{REQUEST_URI} !core
|
||||
RewriteRule ^ %1/core/%2 [L,QSA,R=301]
|
||||
|
||||
# Rewrite install.php during installation to see if mod_rewrite is working
|
||||
RewriteRule ^core/install\.php core/install.php?rewrite=ok [QSA,L]
|
||||
|
||||
# Pass all requests not referring directly to files in the filesystem to
|
||||
# index.php.
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteCond %{REQUEST_URI} !=/favicon.ico
|
||||
RewriteRule ^ index.php [L]
|
||||
|
||||
# For security reasons, deny access to other PHP files on public sites.
|
||||
# Note: The following URI conditions are not anchored at the start (^),
|
||||
# because Drupal may be located in a subdirectory. To further improve
|
||||
# security, you can replace '!/' with '!^/'.
|
||||
# Allow access to PHP files in /core (like authorize.php or install.php):
|
||||
RewriteCond %{REQUEST_URI} !/core/[^/]*\.php$
|
||||
# Allow access to test-specific PHP files:
|
||||
RewriteCond %{REQUEST_URI} !/core/modules/system/tests/https?\.php
|
||||
# Allow access to Statistics module's custom front controller.
|
||||
# Copy and adapt this rule to directly execute PHP files in contributed or
|
||||
# custom modules or to run another PHP application in the same directory.
|
||||
RewriteCond %{REQUEST_URI} !/core/modules/statistics/statistics\.php$
|
||||
# Deny access to any other PHP files that do not match the rules above.
|
||||
# Specifically, disallow autoload.php from being served directly.
|
||||
RewriteRule "^(.+/.*|autoload)\.php($|/)" - [F]
|
||||
|
||||
# Rules to correctly serve gzip compressed CSS and JS files.
|
||||
# Requires both mod_rewrite and mod_headers to be enabled.
|
||||
<IfModule mod_headers.c>
|
||||
# Serve gzip compressed CSS files if they exist and the client accepts gzip.
|
||||
RewriteCond %{HTTP:Accept-encoding} gzip
|
||||
RewriteCond %{REQUEST_FILENAME}\.gz -s
|
||||
RewriteRule ^(.*)\.css $1\.css\.gz [QSA]
|
||||
|
||||
# Serve gzip compressed JS files if they exist and the client accepts gzip.
|
||||
RewriteCond %{HTTP:Accept-encoding} gzip
|
||||
RewriteCond %{REQUEST_FILENAME}\.gz -s
|
||||
RewriteRule ^(.*)\.js $1\.js\.gz [QSA]
|
||||
|
||||
# Serve correct content types, and prevent double compression.
|
||||
RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1,E=no-brotli:1]
|
||||
RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1,E=no-brotli:1]
|
||||
|
||||
<FilesMatch "(\.js\.gz|\.css\.gz)$">
|
||||
# Serve correct encoding type.
|
||||
Header set Content-Encoding gzip
|
||||
# Force proxies to cache gzipped & non-gzipped css/js files separately.
|
||||
Header append Vary Accept-Encoding
|
||||
</FilesMatch>
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
|
||||
# Various header fixes.
|
||||
<IfModule mod_headers.c>
|
||||
# Disable content sniffing, since it's an attack vector.
|
||||
Header always set X-Content-Type-Options nosniff
|
||||
# Disable Proxy header, since it's an attack vector.
|
||||
RequestHeader unset Proxy
|
||||
</IfModule>
|
|
@ -0,0 +1,22 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* The PHP page that serves all page requests on a Drupal installation.
|
||||
*
|
||||
* All Drupal code is released under the GNU General Public License.
|
||||
* See COPYRIGHT.txt and LICENSE.txt files in the "core" directory.
|
||||
*/
|
||||
|
||||
use Drupal\Core\DrupalKernel;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
$autoloader = require_once 'autoload.php';
|
||||
|
||||
$kernel = new DrupalKernel('prod', $autoloader);
|
||||
|
||||
$request = Request::createFromGlobals();
|
||||
$response = $kernel->handle($request);
|
||||
$response->send();
|
||||
|
||||
$kernel->terminate($request, $response);
|
|
@ -0,0 +1,42 @@
|
|||
Modules extend your site functionality beyond Drupal core.
|
||||
|
||||
WHAT TO PLACE IN THIS DIRECTORY?
|
||||
--------------------------------
|
||||
|
||||
Placing downloaded and custom modules in this directory separates downloaded and
|
||||
custom modules from Drupal core's modules. This allows Drupal core to be updated
|
||||
without overwriting these files.
|
||||
|
||||
DOWNLOAD ADDITIONAL MODULES
|
||||
---------------------------
|
||||
|
||||
Contributed modules from the Drupal community may be downloaded at
|
||||
https://www.drupal.org/project/project_module.
|
||||
|
||||
ORGANIZING MODULES IN THIS DIRECTORY
|
||||
------------------------------------
|
||||
|
||||
You may create subdirectories in this directory, to organize your added modules,
|
||||
without breaking the site. Some common subdirectories include "contrib" for
|
||||
contributed modules, and "custom" for custom modules. Note that if you move a
|
||||
module to a subdirectory after it has been enabled, you may need to clear the
|
||||
Drupal cache so it can be found.
|
||||
|
||||
There are number of directories that are ignored when looking for modules. These
|
||||
are 'src', 'lib', 'vendor', 'assets', 'css', 'files', 'images', 'js', 'misc',
|
||||
'templates', 'includes', 'fixtures' and 'Drupal'.
|
||||
|
||||
MULTISITE CONFIGURATION
|
||||
-----------------------
|
||||
|
||||
In multisite configurations, modules found in this directory are available to
|
||||
all sites. You may also put modules in the sites/all/modules directory, and the
|
||||
versions in sites/all/modules will take precedence over versions of the same
|
||||
module that are here. Alternatively, the sites/your_site_name/modules directory
|
||||
pattern may be used to restrict modules to a specific site instance.
|
||||
|
||||
MORE INFORMATION
|
||||
----------------
|
||||
|
||||
Refer to the “Developing for Drupal” section of the README.txt in the Drupal
|
||||
root directory for further information on extending Drupal with custom modules.
|
|
@ -0,0 +1,28 @@
|
|||
Installation profiles define additional steps that run after the base
|
||||
installation of Drupal is completed. They may also offer additional
|
||||
functionality and change the behavior of the site.
|
||||
|
||||
WHAT TO PLACE IN THIS DIRECTORY?
|
||||
--------------------------------
|
||||
|
||||
Place downloaded and custom installation profiles in this directory.
|
||||
Note that installation profiles are generally provided as part of a Drupal
|
||||
distribution.
|
||||
|
||||
DOWNLOAD ADDITIONAL DISTRIBUTIONS
|
||||
---------------------------------
|
||||
|
||||
Contributed distributions from the Drupal community may be downloaded at
|
||||
https://www.drupal.org/project/project_distribution.
|
||||
|
||||
MULTISITE CONFIGURATION
|
||||
-----------------------
|
||||
|
||||
In multisite configurations, installation profiles found in this directory are
|
||||
available to all sites during their initial site installation.
|
||||
|
||||
MORE INFORMATION
|
||||
----------------
|
||||
|
||||
Refer to the "Installation profiles" section of the README.txt in the Drupal
|
||||
root directory for further information on extending Drupal with custom profiles.
|
|
@ -0,0 +1,61 @@
|
|||
#
|
||||
# robots.txt
|
||||
#
|
||||
# This file is to prevent the crawling and indexing of certain parts
|
||||
# of your site by web crawlers and spiders run by sites like Yahoo!
|
||||
# and Google. By telling these "robots" where not to go on your site,
|
||||
# you save bandwidth and server resources.
|
||||
#
|
||||
# This file will be ignored unless it is at the root of your host:
|
||||
# Used: http://example.com/robots.txt
|
||||
# Ignored: http://example.com/site/robots.txt
|
||||
#
|
||||
# For more information about the robots.txt standard, see:
|
||||
# http://www.robotstxt.org/robotstxt.html
|
||||
|
||||
User-agent: *
|
||||
# CSS, JS, Images
|
||||
Allow: /core/*.css$
|
||||
Allow: /core/*.css?
|
||||
Allow: /core/*.js$
|
||||
Allow: /core/*.js?
|
||||
Allow: /core/*.gif
|
||||
Allow: /core/*.jpg
|
||||
Allow: /core/*.jpeg
|
||||
Allow: /core/*.png
|
||||
Allow: /core/*.svg
|
||||
Allow: /profiles/*.css$
|
||||
Allow: /profiles/*.css?
|
||||
Allow: /profiles/*.js$
|
||||
Allow: /profiles/*.js?
|
||||
Allow: /profiles/*.gif
|
||||
Allow: /profiles/*.jpg
|
||||
Allow: /profiles/*.jpeg
|
||||
Allow: /profiles/*.png
|
||||
Allow: /profiles/*.svg
|
||||
# Directories
|
||||
Disallow: /core/
|
||||
Disallow: /profiles/
|
||||
# Files
|
||||
Disallow: /README.txt
|
||||
Disallow: /web.config
|
||||
# Paths (clean URLs)
|
||||
Disallow: /admin/
|
||||
Disallow: /comment/reply/
|
||||
Disallow: /filter/tips
|
||||
Disallow: /node/add/
|
||||
Disallow: /search/
|
||||
Disallow: /user/register
|
||||
Disallow: /user/password
|
||||
Disallow: /user/login
|
||||
Disallow: /user/logout
|
||||
# Paths (no clean URLs)
|
||||
Disallow: /index.php/admin/
|
||||
Disallow: /index.php/comment/reply/
|
||||
Disallow: /index.php/filter/tips
|
||||
Disallow: /index.php/node/add/
|
||||
Disallow: /index.php/search/
|
||||
Disallow: /index.php/user/password
|
||||
Disallow: /index.php/user/register
|
||||
Disallow: /index.php/user/login
|
||||
Disallow: /index.php/user/logout
|
|
@ -0,0 +1,10 @@
|
|||
This directory structure contains the settings and configuration files specific
|
||||
to your site or sites and is an integral part of multisite configurations.
|
||||
|
||||
It is now recommended to place your custom and downloaded extensions in the
|
||||
/modules, /themes, and /profiles directories located in the Drupal root. The
|
||||
sites/all/ subdirectory structure, which was recommended in previous versions
|
||||
of Drupal, is still supported.
|
||||
|
||||
See core/INSTALL.txt for information about single-site installation or
|
||||
multisite configuration.
|
|
@ -0,0 +1,31 @@
|
|||
Themes allow you to change the look and feel of your Drupal site. You can use
|
||||
themes contributed by others or create your own.
|
||||
|
||||
WHAT TO PLACE IN THIS DIRECTORY?
|
||||
--------------------------------
|
||||
|
||||
Placing downloaded and custom themes in this directory separates downloaded and
|
||||
custom themes from Drupal core's themes. This allows Drupal core to be updated
|
||||
without overwriting these files.
|
||||
|
||||
DOWNLOAD ADDITIONAL THEMES
|
||||
--------------------------
|
||||
|
||||
Contributed themes from the Drupal community may be downloaded at
|
||||
https://www.drupal.org/project/project_theme.
|
||||
|
||||
MULTISITE CONFIGURATION
|
||||
-----------------------
|
||||
|
||||
In multisite configurations, themes found in this directory are available to
|
||||
all sites. You may also put themes in the sites/all/themes directory, and the
|
||||
versions in sites/all/themes will take precedence over versions of the same
|
||||
themes that are here. Alternatively, the sites/your_site_name/themes directory
|
||||
pattern may be used to restrict themes to a specific site instance.
|
||||
|
||||
MORE INFORMATION
|
||||
-----------------
|
||||
|
||||
Refer to the "Appearance" section of the README.txt in the Drupal root directory
|
||||
for further information on customizing the appearance of Drupal with custom
|
||||
themes.
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* The PHP page that handles updating the Drupal installation.
|
||||
*
|
||||
* All Drupal code is released under the GNU General Public License.
|
||||
* See COPYRIGHT.txt and LICENSE.txt files in the "core" directory.
|
||||
*/
|
||||
|
||||
use Drupal\Core\Update\UpdateKernel;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
$autoloader = require_once 'autoload.php';
|
||||
|
||||
// Disable garbage collection during test runs. Under certain circumstances the
|
||||
// update path will create so many objects that garbage collection causes
|
||||
// segmentation faults.
|
||||
if (drupal_valid_test_ua()) {
|
||||
gc_collect_cycles();
|
||||
gc_disable();
|
||||
}
|
||||
|
||||
$kernel = new UpdateKernel('prod', $autoloader, FALSE);
|
||||
$request = Request::createFromGlobals();
|
||||
|
||||
$response = $kernel->handle($request);
|
||||
$response->send();
|
||||
|
||||
$kernel->terminate($request, $response);
|
|
@ -0,0 +1,91 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<system.webServer>
|
||||
<!-- Don't show directory listings for URLs which map to a directory. -->
|
||||
<directoryBrowse enabled="false" />
|
||||
|
||||
<!--
|
||||
Caching configuration was not delegated by default. Some hosters may not
|
||||
delegate the caching configuration to site owners by default and that
|
||||
may cause errors when users install. Uncomment this if you want to and
|
||||
are allowed to enable caching.
|
||||
-->
|
||||
<!--
|
||||
<caching>
|
||||
<profiles>
|
||||
<add extension=".php" policy="DisableCache" kernelCachePolicy="DisableCache" />
|
||||
<add extension=".html" policy="CacheForTimePeriod" kernelCachePolicy="CacheForTimePeriod" duration="14:00:00" />
|
||||
</profiles>
|
||||
</caching>
|
||||
-->
|
||||
|
||||
<rewrite>
|
||||
<rules>
|
||||
<rule name="Protect files and directories from prying eyes" stopProcessing="true">
|
||||
<match url="\.(engine|inc|install|module|profile|po|sh|.*sql|theme|twig|tpl(\.php)?|xtmpl|yml|svn-base)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template|all-wcprops|entries|format|composer\.(json|lock)|\.htaccess)$" />
|
||||
<action type="CustomResponse" statusCode="403" subStatusCode="0" statusReason="Forbidden" statusDescription="Access is forbidden." />
|
||||
</rule>
|
||||
|
||||
<rule name="Force simple error message for requests for non-existent favicon.ico" stopProcessing="true">
|
||||
<match url="favicon\.ico" />
|
||||
<action type="CustomResponse" statusCode="404" subStatusCode="1" statusReason="File Not Found" statusDescription="The requested file favicon.ico was not found" />
|
||||
<conditions>
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
|
||||
</conditions>
|
||||
</rule>
|
||||
<!-- To redirect all users to access the site WITH the 'www.' prefix,
|
||||
http://example.com/foo will be redirected to http://www.example.com/foo)
|
||||
adapt and uncomment the following: -->
|
||||
<!--
|
||||
<rule name="Redirect to add www" stopProcessing="true">
|
||||
<match url="^(.*)$" ignoreCase="false" />
|
||||
<conditions>
|
||||
<add input="{HTTP_HOST}" pattern="^example\.com$" />
|
||||
</conditions>
|
||||
<action type="Redirect" redirectType="Permanent" url="http://www.example.com/{R:1}" />
|
||||
</rule>
|
||||
-->
|
||||
|
||||
<!-- To redirect all users to access the site WITHOUT the 'www.' prefix,
|
||||
http://www.example.com/foo will be redirected to http://example.com/foo)
|
||||
adapt and uncomment the following: -->
|
||||
<!--
|
||||
<rule name="Redirect to remove www" stopProcessing="true">
|
||||
<match url="^(.*)$" ignoreCase="false" />
|
||||
<conditions>
|
||||
<add input="{HTTP_HOST}" pattern="^www\.example\.com$" />
|
||||
</conditions>
|
||||
<action type="Redirect" redirectType="Permanent" url="http://example.com/{R:1}" />
|
||||
</rule>
|
||||
-->
|
||||
|
||||
<!-- Pass all requests not referring directly to files in the filesystem
|
||||
to index.php. -->
|
||||
<rule name="Short URLS" stopProcessing="true">
|
||||
<match url="^(.*)$" ignoreCase="false" />
|
||||
<conditions>
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
|
||||
<add input="{URL}" pattern="^/favicon.ico$" ignoreCase="false" negate="true" />
|
||||
</conditions>
|
||||
<action type="Rewrite" url="index.php" />
|
||||
</rule>
|
||||
</rules>
|
||||
</rewrite>
|
||||
|
||||
<!-- If running Windows Server 2008 R2 this can be commented out -->
|
||||
<!-- httpErrors>
|
||||
<remove statusCode="404" subStatusCode="-1" />
|
||||
<error statusCode="404" prefixLanguageFilePath="" path="/index.php" responseMode="ExecuteURL" />
|
||||
</httpErrors -->
|
||||
|
||||
<defaultDocument>
|
||||
<!-- Set the default document -->
|
||||
<files>
|
||||
<clear />
|
||||
<add value="index.php" />
|
||||
</files>
|
||||
</defaultDocument>
|
||||
|
||||
</system.webServer>
|
||||
</configuration>
|
|
@ -0,0 +1 @@
|
|||
ckeditor/samples
|
|
@ -0,0 +1,109 @@
|
|||
/**
|
||||
* This is a Drupal-optimized build of CKEditor.
|
||||
*
|
||||
* To re-create this build:
|
||||
* 1. Clone the development repo of CKEditor to your machine
|
||||
* 2. Check out the version you'd like to build
|
||||
* 3. Copy PATH/TO/DRUPAL/core/assets/vendor/ckeditor/build-config.js ./dev/builder/
|
||||
* 4. Run ./dev/builder/build.sh -s
|
||||
*
|
||||
* Then, replace this directory (core/assets/vendor/ckeditor) with your build.
|
||||
*
|
||||
* Also: Remember to update core/core.libraries.yml if you are doing an update of the version of CKEditor for Drupal
|
||||
* Core.
|
||||
*
|
||||
* If you are developing or debugging CKEditor plugins, you may want to work
|
||||
* against an unoptimized (unminified) CKEditor build. To do so,
|
||||
* run the build command with the --leave-js-unminified flag.
|
||||
*
|
||||
* NOTE:
|
||||
* This file is not used by CKEditor, you may remove it.
|
||||
* Changing this file will not change your CKEditor configuration.
|
||||
*/
|
||||
|
||||
/* exported CKBUILDER_CONFIG */
|
||||
|
||||
var CKBUILDER_CONFIG = {
|
||||
skin: 'moono-lisa',
|
||||
ignore: [
|
||||
// CKEditor repository structure: unrelated to the usage of CKEditor itself.
|
||||
'bender.js',
|
||||
'bender.ci.js',
|
||||
'.bender',
|
||||
'bender-err.log',
|
||||
'bender-out.log',
|
||||
'bender-runner.config.json',
|
||||
'.travis.yml',
|
||||
'dev',
|
||||
'docs',
|
||||
'.DS_Store',
|
||||
'.editorconfig',
|
||||
'.gitignore',
|
||||
'.gitattributes',
|
||||
'.github',
|
||||
'gruntfile.js',
|
||||
'.idea',
|
||||
'.jscsrc',
|
||||
'.jshintignore',
|
||||
'.jshintrc',
|
||||
'less',
|
||||
'.mailmap',
|
||||
'node_modules',
|
||||
'.nvmrc',
|
||||
'package.json',
|
||||
'README.md',
|
||||
'tests',
|
||||
// Parts of CKEditor that we consciously don't ship with Drupal.
|
||||
'adapters',
|
||||
'config.js',
|
||||
'contents.css',
|
||||
'styles.js',
|
||||
'samples',
|
||||
'skins/moono-lisa/readme.md'
|
||||
],
|
||||
plugins: {
|
||||
a11yhelp: 1,
|
||||
about: 1,
|
||||
autogrow: 1,
|
||||
basicstyles: 1,
|
||||
blockquote: 1,
|
||||
clipboard: 1,
|
||||
contextmenu: 1,
|
||||
elementspath: 1,
|
||||
enterkey: 1,
|
||||
entities: 1,
|
||||
filebrowser: 1,
|
||||
floatingspace: 1,
|
||||
format: 1,
|
||||
horizontalrule: 1,
|
||||
htmlwriter: 1,
|
||||
image2: 1,
|
||||
indent: 1,
|
||||
indentlist: 1,
|
||||
justify: 1,
|
||||
language: 1,
|
||||
list: 1,
|
||||
magicline: 1,
|
||||
maximize: 1,
|
||||
pastefromgdocs: 1,
|
||||
pastefromlibreoffice: 1,
|
||||
pastefromword: 1,
|
||||
pastetext: 1,
|
||||
removeformat: 1,
|
||||
sharedspace: 1,
|
||||
showblocks: 1,
|
||||
showborders: 1,
|
||||
sourcearea: 1,
|
||||
sourcedialog: 1,
|
||||
specialchar: 1,
|
||||
stylescombo: 1,
|
||||
tab: 1,
|
||||
table: 1,
|
||||
tableresize: 1,
|
||||
tabletools: 1,
|
||||
toolbar: 1,
|
||||
undo: 1,
|
||||
widget: 1,
|
||||
wysiwygarea: 1
|
||||
}
|
||||
};
|
|
@ -0,0 +1,63 @@
|
|||
Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
|
||||
af.js Found: 62 Missing: 4
|
||||
ar.js Found: 51 Missing: 15
|
||||
bg.js Found: 58 Missing: 8
|
||||
bn.js Found: 40 Missing: 26
|
||||
bs.js Found: 29 Missing: 37
|
||||
ca.js Found: 61 Missing: 5
|
||||
cs.js Found: 66 Missing: 0
|
||||
cy.js Found: 66 Missing: 0
|
||||
da.js Found: 66 Missing: 0
|
||||
de.js Found: 66 Missing: 0
|
||||
el.js Found: 59 Missing: 7
|
||||
en-au.js Found: 38 Missing: 28
|
||||
en-ca.js Found: 37 Missing: 29
|
||||
en-gb.js Found: 61 Missing: 5
|
||||
eo.js Found: 66 Missing: 0
|
||||
es.js Found: 66 Missing: 0
|
||||
et.js Found: 66 Missing: 0
|
||||
eu.js Found: 48 Missing: 18
|
||||
fa.js Found: 66 Missing: 0
|
||||
fi.js Found: 66 Missing: 0
|
||||
fo.js Found: 66 Missing: 0
|
||||
fr-ca.js Found: 42 Missing: 24
|
||||
fr.js Found: 66 Missing: 0
|
||||
gl.js Found: 40 Missing: 26
|
||||
gu.js Found: 66 Missing: 0
|
||||
he.js Found: 66 Missing: 0
|
||||
hi.js Found: 43 Missing: 23
|
||||
hr.js Found: 66 Missing: 0
|
||||
hu.js Found: 63 Missing: 3
|
||||
is.js Found: 41 Missing: 25
|
||||
it.js Found: 66 Missing: 0
|
||||
ja.js Found: 62 Missing: 4
|
||||
ka.js Found: 62 Missing: 4
|
||||
km.js Found: 40 Missing: 26
|
||||
ko.js Found: 40 Missing: 26
|
||||
lt.js Found: 66 Missing: 0
|
||||
lv.js Found: 40 Missing: 26
|
||||
mk.js Found: 0 Missing: 66
|
||||
mn.js Found: 40 Missing: 26
|
||||
ms.js Found: 39 Missing: 27
|
||||
nb.js Found: 66 Missing: 0
|
||||
nl.js Found: 65 Missing: 1
|
||||
no.js Found: 66 Missing: 0
|
||||
pl.js Found: 66 Missing: 0
|
||||
pt-br.js Found: 66 Missing: 0
|
||||
pt.js Found: 52 Missing: 14
|
||||
ro.js Found: 61 Missing: 5
|
||||
ru.js Found: 66 Missing: 0
|
||||
sk.js Found: 49 Missing: 17
|
||||
sl.js Found: 48 Missing: 18
|
||||
sr-latn.js Found: 40 Missing: 26
|
||||
sr.js Found: 40 Missing: 26
|
||||
sv.js Found: 62 Missing: 4
|
||||
th.js Found: 40 Missing: 26
|
||||
tr.js Found: 66 Missing: 0
|
||||
ug.js Found: 66 Missing: 0
|
||||
uk.js Found: 66 Missing: 0
|
||||
vi.js Found: 66 Missing: 0
|
||||
zh-cn.js Found: 66 Missing: 0
|
||||
zh.js Found: 58 Missing: 8
|