diff --git a/.editorconfig b/.editorconfig index 25e24d98..6bf8660c 100644 --- a/.editorconfig +++ b/.editorconfig @@ -23,3 +23,7 @@ trim_trailing_whitespace = true indent_style = space indent_size = 4 max_line_length = 80 + +[Makefile] +# Use tabs for indentation (Makefiles require tabs) +indent_style = tab diff --git a/.github/workflows/apply-precommit.yml b/.github/workflows/apply-precommit.yml new file mode 100644 index 00000000..44019f6f --- /dev/null +++ b/.github/workflows/apply-precommit.yml @@ -0,0 +1,59 @@ +name: Check and Fix Whitespace on Schedule + +on: + schedule: + - cron: '0 0 * * *' + workflow_dispatch: + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.x' + + - name: Install pre-commit + run: pip install pre-commit + + - name: Run pre-commit hooks and apply fixes + id: pre-commit + run: | + # Run pre-commit with auto-fix and ignore exit code + pre-commit run --all-files --hook-stage=manual --show-diff-on-failure || true + # Check if any files were modified + git diff --exit-code || echo "FIX_NEEDED=true" >> $GITHUB_ENV + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Create and push changes if needed + if: env.FIX_NEEDED == 'true' + id: create_branch + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + # Create a new branch for the changes + BRANCH_NAME="fix/whitespace-$(date +'%Y%m%d%H%M%S')" + git checkout -b "$BRANCH_NAME" + git add . + git commit -m "fix: apply whitespace fixes" + git push origin "$BRANCH_NAME" + echo "branch_name=$BRANCH_NAME" >> $GITHUB_ENV + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Open Pull Request + if: env.FIX_NEEDED == 'true' + uses: repo-sync/pull-request@v2 + with: + source_branch: ${{ env.branch_name }} + destination_branch: ${{ github.ref_name }} + pr_title: "Fix whitespace issues" + pr_body: "This PR automatically applies whitespace fixes." + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/test-documentation.yml b/.github/workflows/test-documentation.yml new file mode 100644 index 00000000..bb4f8950 --- /dev/null +++ b/.github/workflows/test-documentation.yml @@ -0,0 +1,17 @@ +name: test documentation + +on: [ push, pull_request ] + +jobs: + tests: + name: test-documentation + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Test if the documentation will render without warnings + run: | + mkdir -p Documentation-GENERATED-temp \ + && docker run --rm --pull always -v $(pwd):/project \ + ghcr.io/typo3-documentation/render-guides:latest --config=Documentation --no-progress --minimal-test diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 00000000..1291b200 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,46 @@ +name: tests + +on: + push: + pull_request: + +jobs: + lint: + name: Linting + runs-on: ubuntu-latest + strategy: + matrix: + php: + - '8.1' + - '8.2' + - '8.3' + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Lint PHP + run: Build/Scripts/runTests.sh -p ${{ matrix.php }} -s lint + + quality: + name: Quality + runs-on: ubuntu-latest + env: + php: '8.1' + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install testing system + run: Build/Scripts/runTests.sh -p ${{ env.php }} -s composerUpdate + + - name: Composer validate + run: Build/Scripts/runTests.sh -p ${{ env.php }} -s composerValidate + + - name: Composer normalize + run: Build/Scripts/runTests.sh -p ${{ env.php }} -s composerNormalize -n + + - name: CGL + run: Build/Scripts/runTests.sh -n -p ${{ env.php }} -s cgl -n + + - name: Lint YAML + run: Build/Scripts/runTests.sh -p ${{ env.php }} -s yamlLint diff --git a/.gitignore b/.gitignore index 48577d06..bb118af2 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,6 @@ .webprj nbproject Documentation-GENERATED-temp/ +/composer.json.testing +/.Build/ +/composer.lock diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..7be14764 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,6 @@ +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.4.0 # Use the latest version + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer diff --git a/Build/.gitignore b/Build/.gitignore new file mode 100644 index 00000000..cffb6ef0 --- /dev/null +++ b/Build/.gitignore @@ -0,0 +1 @@ +testing-docker/.env diff --git a/Build/.php-cs-fixer.dist.php b/Build/.php-cs-fixer.dist.php new file mode 100644 index 00000000..7bd02cda --- /dev/null +++ b/Build/.php-cs-fixer.dist.php @@ -0,0 +1,76 @@ +setFinder( + (new Finder()) + ->in(__DIR__.'/../Documentation') + ) + ->setRiskyAllowed(true) + ->setRules([ + '@DoctrineAnnotation' => true, + // @todo: Switch to @PER-CS2.0 once php-cs-fixer's todo list is done: https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7247 + '@PER-CS1.0' => true, + 'array_indentation' => true, + 'array_syntax' => ['syntax' => 'short'], + 'cast_spaces' => ['space' => 'none'], + // @todo: Can be dropped once we enable @PER-CS2.0 + 'concat_space' => ['spacing' => 'one'], + 'declare_equal_normalize' => ['space' => 'none'], + 'declare_parentheses' => true, + 'dir_constant' => true, + // @todo: Can be dropped once we enable @PER-CS2.0 + 'function_declaration' => [ + 'closure_fn_spacing' => 'none', + ], + 'function_to_constant' => ['functions' => ['get_called_class', 'get_class', 'get_class_this', 'php_sapi_name', 'phpversion', 'pi']], + 'type_declaration_spaces' => true, + 'global_namespace_import' => ['import_classes' => false, 'import_constants' => false, 'import_functions' => false], + 'list_syntax' => ['syntax' => 'short'], + // @todo: Can be dropped once we enable @PER-CS2.0 + 'method_argument_space' => true, + 'modernize_strpos' => true, + 'modernize_types_casting' => true, + 'native_function_casing' => true, + 'no_alias_functions' => true, + 'no_blank_lines_after_phpdoc' => true, + 'no_empty_phpdoc' => true, + 'no_empty_statement' => true, + 'no_extra_blank_lines' => true, + 'no_leading_namespace_whitespace' => true, + 'no_null_property_initialization' => true, + 'no_short_bool_cast' => true, + 'no_singleline_whitespace_before_semicolons' => true, + 'no_superfluous_elseif' => true, + 'no_trailing_comma_in_singleline' => true, + 'no_unneeded_control_parentheses' => true, + 'no_unused_imports' => true, + 'no_useless_nullsafe_operator' => true, + 'ordered_imports' => ['imports_order' => ['class', 'function', 'const'], 'sort_algorithm' => 'alpha'], + 'php_unit_construct' => ['assertions' => ['assertEquals', 'assertSame', 'assertNotEquals', 'assertNotSame']], + 'php_unit_mock_short_will_return' => true, + 'php_unit_test_case_static_method_calls' => ['call_type' => 'self'], + 'phpdoc_no_access' => true, + 'phpdoc_no_empty_return' => true, + 'phpdoc_no_package' => true, + 'phpdoc_scalar' => true, + 'phpdoc_trim' => true, + 'phpdoc_types' => true, + 'phpdoc_types_order' => ['null_adjustment' => 'always_last', 'sort_algorithm' => 'none'], + 'return_type_declaration' => ['space_before' => 'none'], + 'single_quote' => true, + 'single_space_around_construct' => true, + 'single_line_comment_style' => ['comment_types' => ['hash']], + // @todo: Can be dropped once we enable @PER-CS2.0 + 'single_line_empty_body' => true, + 'trailing_comma_in_multiline' => ['elements' => ['arguments', 'arrays', 'match', 'parameters']], + 'whitespace_after_comma_in_array' => ['ensure_single_space' => true], + 'yoda_style' => ['equal' => false, 'identical' => false, 'less_and_greater' => false], + + // We need this for documentation! + 'no_useless_else' => false, // We want to preserve else with comments only + ]); diff --git a/Build/Scripts/runTests.sh b/Build/Scripts/runTests.sh new file mode 100755 index 00000000..05cbdccf --- /dev/null +++ b/Build/Scripts/runTests.sh @@ -0,0 +1,375 @@ +#!/usr/bin/env bash + +# +# EXT:examples test runner based on docker/podman. +# + +cleanUp() { + ATTACHED_CONTAINERS=$(${CONTAINER_BIN} ps --filter network=${NETWORK} --format='{{.Names}}') + for ATTACHED_CONTAINER in ${ATTACHED_CONTAINERS}; do + ${CONTAINER_BIN} rm -f ${ATTACHED_CONTAINER} >/dev/null + done + ${CONTAINER_BIN} network rm ${NETWORK} >/dev/null +} + +cleanCacheFiles() { + echo -n "Clean caches ... " + rm -rf \ + .Build/.cache \ + .php-cs-fixer.cache + echo "done" +} + +cleanRenderedDocumentationFiles() { + echo -n "Clean rendered documentation files ... " + rm -rf \ + Documentation-GENERATED-temp + echo "done" +} + +loadHelp() { + # Load help text into $HELP + read -r -d '' HELP < + Specifies which test suite to run + - checkRst: test .rst files for integrity + - cgl: cgl test and fix all php files + - clean: Clean temporary files + - cleanCache: Clean cache folds for files. + - cleanRenderedDocumentation: Clean existing rendered documentation output. + - composer: "composer" with all remaining arguments dispatched. + - composerNormalize: "composer normalize" + - composerUpdate: "composer update", handy if host has no PHP + - composerValidate: "composer validate" + - lint: PHP linting + - phpstan: PHPStan static analysis + - phpstanBaseline: Generate PHPStan baseline + - rector: Apply Rector rules + - renderDocumentation + - testRenderDocumentation + - yamlLint: YAML linting + + -b + Container environment: + - docker + - podman + + If not specified, podman will be used if available. Otherwise, docker is used. + + -p <8.1|8.2|8.3|8.4> + Specifies the PHP minor version to be used + - 8.1: (default) use PHP 8.1 + - 8.2: use PHP 8.2 + - 8.3: use PHP 8.3 + - 8.4: use PHP 8.4 + -n + Only with -s cgl, composerNormalize, rector + Activate dry-run in CGL check and composer normalize that does not actively change files and only prints broken ones. + + -u + Update existing typo3/core-testing-*:latest container images and remove dangling local volumes. + New images are published once in a while and only the latest ones are supported by core testing. + Use this if weird test errors occur. Also removes obsolete image versions of typo3/core-testing-*. + + -h + Show this help. + +Examples: + # Run unit tests using PHP 8.1 + ./Build/Scripts/runTests.sh +EOF +} + +# Test if docker exists, else exit out with error +if ! type "docker" >/dev/null 2>&1 && ! type "podman" >/dev/null 2>&1; then + echo "This script relies on docker or podman. Please install" >&2 + exit 1 +fi + +# Option defaults +TEST_SUITE="cgl" +PHP_VERSION="8.1" +PHP_XDEBUG_ON=0 +PHP_XDEBUG_PORT=9003 +CGLCHECK_DRY_RUN=0 +CI_PARAMS="${CI_PARAMS:-}" +DOCS_PARAMS="${DOCS_PARAMS:=--pull always}" +CONTAINER_BIN="" +CONTAINER_HOST="host.docker.internal" + +# Option parsing updates above default vars +# Reset in case getopts has been used previously in the shell +OPTIND=1 +# Array for invalid options +INVALID_OPTIONS=() +# Simple option parsing based on getopts (! not getopt) +while getopts "b:s:p:xy:nhu" OPT; do + case ${OPT} in + s) + TEST_SUITE=${OPTARG} + ;; + b) + if ! [[ ${OPTARG} =~ ^(docker|podman)$ ]]; then + INVALID_OPTIONS+=("${OPTARG}") + fi + CONTAINER_BIN=${OPTARG} + ;; + p) + PHP_VERSION=${OPTARG} + if ! [[ ${PHP_VERSION} =~ ^(8.1|8.2|8.3|8.4)$ ]]; then + INVALID_OPTIONS+=("p ${OPTARG}") + fi + ;; + x) + PHP_XDEBUG_ON=1 + ;; + y) + PHP_XDEBUG_PORT=${OPTARG} + ;; + n) + CGLCHECK_DRY_RUN=1 + ;; + h) + loadHelp + echo "${HELP}" + exit 0 + ;; + u) + TEST_SUITE=update + ;; + \?) + INVALID_OPTIONS+=("${OPTARG}") + ;; + :) + INVALID_OPTIONS+=("${OPTARG}") + ;; + esac +done + +# Exit on invalid options +if [ ${#INVALID_OPTIONS[@]} -ne 0 ]; then + echo "Invalid option(s):" >&2 + for I in "${INVALID_OPTIONS[@]}"; do + echo "-"${I} >&2 + done + echo >&2 + echo "call \".Build/Scripts/runTests.sh -h\" to display help and valid options" + exit 1 +fi + +COMPOSER_ROOT_VERSION="13.0.x-dev" +HOST_UID=$(id -u) +USERSET="" +if [ $(uname) != "Darwin" ]; then + USERSET="--user $HOST_UID" +fi + +# Go to the directory this script is located, so everything else is relative +# to this dir, no matter from where this script is called, then go up two dirs. +THIS_SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)" +cd "$THIS_SCRIPT_DIR" || exit 1 +cd ../../ || exit 1 +ROOT_DIR="${PWD}" + +# Create .cache dir: composer need this. +mkdir -p .Build/.cache +mkdir -p .Build/Web/typo3temp/var/tests + +IMAGE_PREFIX="docker.io/" +# Non-CI fetches TYPO3 images (php and nodejs) from ghcr.io +TYPO3_IMAGE_PREFIX="ghcr.io/typo3/" +CONTAINER_INTERACTIVE="-it --init" + +IS_CORE_CI=0 +# ENV var "CI" is set by gitlab-ci. We use it here to distinct 'local' and 'CI' environment. +if [ "${CI}" == "true" ]; then + IS_CORE_CI=1 + IMAGE_PREFIX="" + CONTAINER_INTERACTIVE="" +fi + +# determine default container binary to use: 1. podman 2. docker +if [[ -z "${CONTAINER_BIN}" ]]; then + if type "podman" >/dev/null 2>&1; then + CONTAINER_BIN="podman" + elif type "docker" >/dev/null 2>&1; then + CONTAINER_BIN="docker" + fi +fi + +IMAGE_PHP="${TYPO3_IMAGE_PREFIX}core-testing-$(echo "php${PHP_VERSION}" | sed -e 's/\.//'):latest" +IMAGE_ALPINE="${IMAGE_PREFIX}alpine:3.8" +IMAGE_DOCS="ghcr.io/typo3-documentation/render-guides:latest" + +# Set $1 to first mass argument, this is the optional test file or test directory to execute +shift $((OPTIND - 1)) + +SUFFIX=$(echo $RANDOM) +NETWORK="t3docsexamples-${SUFFIX}" +${CONTAINER_BIN} network create ${NETWORK} >/dev/null + +if [ ${CONTAINER_BIN} = "docker" ]; then + # docker needs the add-host for xdebug remote debugging. podman has host.container.internal built in + CONTAINER_COMMON_PARAMS="${CONTAINER_INTERACTIVE} --rm --network ${NETWORK} --add-host "${CONTAINER_HOST}:host-gateway" ${USERSET} -v ${ROOT_DIR}:${ROOT_DIR} -w ${ROOT_DIR}" + CONTAINER_DOCS_PARAMS="${CONTAINER_INTERACTIVE} ${DOCS_PARAMS} --rm --network ${NETWORK} --add-host "${CONTAINER_HOST}:host-gateway" ${USERSET} -v ${ROOT_DIR}:/project" +else + # podman + CONTAINER_HOST="host.containers.internal" + CONTAINER_COMMON_PARAMS="${CONTAINER_INTERACTIVE} ${CI_PARAMS} --rm --network ${NETWORK} -v ${ROOT_DIR}:${ROOT_DIR} -w ${ROOT_DIR}" + CONTAINER_DOCS_PARAMS="${CONTAINER_INTERACTIVE} ${DOCS_PARAMS} --rm --network ${NETWORK} -v ${ROOT_DIR}:/project" +fi + +if [ ${PHP_XDEBUG_ON} -eq 0 ]; then + XDEBUG_MODE="-e XDEBUG_MODE=off" + XDEBUG_CONFIG=" " +else + XDEBUG_MODE="-e XDEBUG_MODE=debug -e XDEBUG_TRIGGER=foo" + XDEBUG_CONFIG="client_port=${PHP_XDEBUG_PORT} client_host=host.docker.internal" +fi + +# Suite execution +case ${TEST_SUITE} in + checkRst) + COMMAND=(php -dxdebug.mode=off Build/Scripts/validateRstFiles.php "$@") + ${CONTAINER_BIN} run ${CONTAINER_COMMON_PARAMS} --name checkRst-${SUFFIX} -e COMPOSER_CACHE_DIR=.Build/.cache/composer -e COMPOSER_ROOT_VERSION=${COMPOSER_ROOT_VERSION} ${IMAGE_PHP} "${COMMAND[@]}" + SUITE_EXIT_CODE=$? + ;; + cgl) + if [ "${CGLCHECK_DRY_RUN}" -eq 1 ]; then + COMMAND="php -dxdebug.mode=off .Build/bin/php-cs-fixer fix -v --dry-run --diff --config=Build/.php-cs-fixer.dist.php --using-cache=no" + else + COMMAND="php -dxdebug.mode=off .Build/bin/php-cs-fixer fix -v --config=Build/.php-cs-fixer.dist.php --using-cache=no" + fi + ${CONTAINER_BIN} run ${CONTAINER_COMMON_PARAMS} --name cgl-${SUFFIX} -e COMPOSER_CACHE_DIR=.Build/.cache/composer -e COMPOSER_ROOT_VERSION=${COMPOSER_ROOT_VERSION} ${IMAGE_PHP} /bin/sh -c "${COMMAND}" + SUITE_EXIT_CODE=$? + ;; + clean) + cleanCacheFiles + cleanRenderedDocumentationFiles + ;; + cleanCache) + cleanCacheFiles + ;; + cleanRenderedDocumentation) + cleanRenderedDocumentationFiles + ;; + composer) + COMMAND=(composer "$@") + ${CONTAINER_BIN} run ${CONTAINER_COMMON_PARAMS} --name composer-command-${SUFFIX} -e COMPOSER_CACHE_DIR=.Build/.cache/composer -e COMPOSER_ROOT_VERSION=${COMPOSER_ROOT_VERSION} ${IMAGE_PHP} "${COMMAND[@]}" + SUITE_EXIT_CODE=$? + ;; + composerNormalize) + if [ "${CGLCHECK_DRY_RUN}" -eq 1 ]; then + COMMAND=(composer normalize -n) + else + COMMAND=(composer normalize) + fi + ${CONTAINER_BIN} run ${CONTAINER_COMMON_PARAMS} --name composer-command-${SUFFIX} -e COMPOSER_CACHE_DIR=.Build/.cache/composer -e COMPOSER_ROOT_VERSION=${COMPOSER_ROOT_VERSION} ${IMAGE_PHP} "${COMMAND[@]}" + SUITE_EXIT_CODE=$? + ;; + composerUpdate) + rm -rf .Build/bin/ .Build/typo3 .Build/vendor .Build/Web ./composer.lock + cp ${ROOT_DIR}/composer.json ${ROOT_DIR}/composer.json.orig + if [ -f "${ROOT_DIR}/composer.json.testing" ]; then + cp ${ROOT_DIR}/composer.json ${ROOT_DIR}/composer.json.orig + fi + COMMAND=(composer require --no-ansi --no-interaction --no-progress) + ${CONTAINER_BIN} run ${CONTAINER_COMMON_PARAMS} --name composer-install-${SUFFIX} -e COMPOSER_CACHE_DIR=.Build/.cache/composer -e COMPOSER_ROOT_VERSION=${COMPOSER_ROOT_VERSION} ${IMAGE_PHP} "${COMMAND[@]}" + SUITE_EXIT_CODE=$? + cp ${ROOT_DIR}/composer.json ${ROOT_DIR}/composer.json.testing + mv ${ROOT_DIR}/composer.json.orig ${ROOT_DIR}/composer.json + ;; + composerValidate) + COMMAND=(composer validate "$@") + ${CONTAINER_BIN} run ${CONTAINER_COMMON_PARAMS} --name composer-command-${SUFFIX} -e COMPOSER_CACHE_DIR=.Build/.cache/composer -e COMPOSER_ROOT_VERSION=${COMPOSER_ROOT_VERSION} ${IMAGE_PHP} "${COMMAND[@]}" + SUITE_EXIT_CODE=$? + ;; + lint) + COMMAND="find . -name \\*.php ! -path "./.Build/\\*" -print0 | xargs -0 -n1 -P4 php -dxdebug.mode=off -l >/dev/null" + ${CONTAINER_BIN} run ${CONTAINER_COMMON_PARAMS} --name composer-command-${SUFFIX} -e COMPOSER_CACHE_DIR=.Build/.cache/composer -e COMPOSER_ROOT_VERSION=${COMPOSER_ROOT_VERSION} ${IMAGE_PHP} /bin/sh -c "${COMMAND}" + SUITE_EXIT_CODE=$? + ;; + phpstan) + COMMAND="php -dxdebug.mode=off .Build/bin/phpstan --configuration=Build/phpstan/phpstan.neon" + ${CONTAINER_BIN} run ${CONTAINER_COMMON_PARAMS} --name phpstan-${SUFFIX} -e COMPOSER_CACHE_DIR=.Build/.cache/composer -e COMPOSER_ROOT_VERSION=${COMPOSER_ROOT_VERSION} ${IMAGE_PHP} /bin/sh -c "${COMMAND}" + SUITE_EXIT_CODE=$? + ;; + phpstanBaseline) + COMMAND="php -dxdebug.mode=off .Build/bin/phpstan --configuration=Build/phpstan/phpstan.neon --generate-baseline=Build/phpstan/phpstan-baseline.neon -v" + ${CONTAINER_BIN} run ${CONTAINER_COMMON_PARAMS} --name phpstan-${SUFFIX} -e COMPOSER_CACHE_DIR=.Build/.cache/composer -e COMPOSER_ROOT_VERSION=${COMPOSER_ROOT_VERSION} ${IMAGE_PHP} /bin/sh -c "${COMMAND}" + SUITE_EXIT_CODE=$? + ;; + rector) + if [ "${CGLCHECK_DRY_RUN}" -eq 1 ]; then + COMMAND=(php -dxdebug.mode=off .Build/bin/rector -n --config=Build/rector/rector.php --clear-cache "$@") + else + COMMAND=(php -dxdebug.mode=off .Build/bin/rector --config=Build/rector/rector.php --clear-cache "$@") + fi + ${CONTAINER_BIN} run ${CONTAINER_COMMON_PARAMS} --name rector-${SUFFIX} -e COMPOSER_CACHE_DIR=.Build/.cache/composer -e COMPOSER_ROOT_VERSION=${COMPOSER_ROOT_VERSION} ${IMAGE_PHP} "${COMMAND[@]}" + SUITE_EXIT_CODE=$? + ;; + renderDocumentation) + COMMAND=(--config=Documentation "$@") + mkdir -p Documentation-GENERATED-temp + ${CONTAINER_BIN} run ${CONTAINER_INTERACTIVE} ${CONTAINER_DOCS_PARAMS} --name render-documentation-${SUFFIX} ${IMAGE_DOCS} "${COMMAND[@]}" + SUITE_EXIT_CODE=$? + ;; + testRenderDocumentation) + COMMAND=(--config=Documentation --no-progress --fail-on-log "$@") + mkdir -p Documentation-GENERATED-temp + ${CONTAINER_BIN} run ${CONTAINER_INTERACTIVE} ${CONTAINER_DOCS_PARAMS} --name render-documentation-test-${SUFFIX} ${IMAGE_DOCS} "${COMMAND[@]}" + SUITE_EXIT_CODE=$? + ;; + update) + # pull typo3/core-testing-* versions of those ones that exist locally + echo "> pull ${TYPO3_IMAGE_PREFIX}core-testing-* versions of those ones that exist locally" + ${CONTAINER_BIN} images "${TYPO3_IMAGE_PREFIX}core-testing-*" --format "{{.Repository}}:{{.Tag}}" | xargs -I {} ${CONTAINER_BIN} pull {} + echo "" + # remove "dangling" typo3/core-testing-* images (those tagged as ) + echo "> remove \"dangling\" ${TYPO3_IMAGE_PREFIX}/core-testing-* images (those tagged as )" + ${CONTAINER_BIN} images --filter "reference=${TYPO3_IMAGE_PREFIX}/core-testing-*" --filter "dangling=true" --format "{{.ID}}" | xargs -I {} ${CONTAINER_BIN} rmi -f {} + echo "" + ;; + yamlLint) + COMMAND=(php -dxdebug.mode=off .Build/bin/yaml-lint Documentation/ "$@") + ${CONTAINER_BIN} run ${CONTAINER_COMMON_PARAMS} --name yamlLint-${SUFFIX} -e COMPOSER_CACHE_DIR=.Build/.cache/composer -e COMPOSER_ROOT_VERSION=${COMPOSER_ROOT_VERSION} ${IMAGE_PHP} "${COMMAND[@]}" + SUITE_EXIT_CODE=$? + ;; + *) + loadHelp + echo "Invalid -s option argument ${TEST_SUITE}" >&2 + echo >&2 + echo "${HELP}" >&2 + exit 1 + ;; +esac + +cleanUp + +# Print summary +echo "" >&2 +echo "###########################################################################" >&2 +echo "Result of ${TEST_SUITE}" >&2 +echo "Container runtime: ${CONTAINER_BIN}" >&2 +if [[ ${IS_CORE_CI} -eq 1 ]]; then + echo "Environment: CI" >&2 +else + echo "Environment: local" >&2 +fi +echo "PHP: ${PHP_VERSION}" >&2 +echo "TYPO3: ${CORE_VERSION}" >&2 +if [[ ${SUITE_EXIT_CODE} -eq 0 ]]; then + echo "SUCCESS" >&2 +else + echo "FAILURE" >&2 +fi +echo "###########################################################################" >&2 +echo "" >&2 + +# Exit with code of test suite - This script return non-zero if the executed test failed. +exit $SUITE_EXIT_CODE diff --git a/Documentation/Administration/BackendUsers/Administrator.rst b/Documentation/Administration/BackendUsers/Administrator.rst new file mode 100644 index 00000000..6f5c693d --- /dev/null +++ b/Documentation/Administration/BackendUsers/Administrator.rst @@ -0,0 +1,146 @@ +:navigation-title: Administrator + +.. include:: /Includes.rst.txt +.. _backend-users-admin: + +=========================== +TYPO3 backend administrator +=========================== + +Each administrator that uses the TYPO3 backend should have their own personal +backend user account. This allows you to see who made which changes later on. + +The administrator account that was automatically created for you during +`Installation `_ +has the widest rights possible and is a System Maintainer. The System Maintainer +is an Administrator who can also see and use the section +`Admin Tools `_ in the +backend. + +.. tip:: + If your Backend User account does not seem to work for some reason, check + chapter `Troubleshooting common TYPO3 backend login + problems `_. + +.. contents:: Table of Contents + :local: + :depth: 1 + +.. _backend-users-admin-creation: + +Creating a TYPO3 backend administrator +====================================== + +There are 3 ways to create a new TYPO3 backend administrator: + +.. contents:: Table of Contents + :local: + :depth: 1 + +.. _backend-users-admin-cli: + +Create an administrator using a console command +----------------------------------------------- + +In DDEV or on a server if you can use the console there is a console +command to create a new administrator: + +.. tabs:: + + .. group-tab:: DDEV + + .. code-block:: bash + + ddev typo3 backend:user:create + + .. group-tab:: On server + + .. code-block:: bash + + vendor/bin/typo3 backend:user:create + +When prompted answer that you want to create an administrator. If they should +also be a system maintainer, answer yes during the prompt. + +.. _backend-users-admin-backend-module: + +Using the backend module "Backend Users" to create admins +--------------------------------------------------------- + +The first administrator got created for you during +`Installation `_. + +When you log into the backend (See `Backend login `_) +you can go to module `Backend Users `_ +and create a new administrator there. + +.. figure:: /Images/ManualScreenshots/BackendUser/CreateUser.png + :alt: Screenshot of the "Backend Users" module demonstrating the location of the "Create new backend user" button in the module header + + Open the module :guilabel:`System > Backend Users` and click on "Create new backend user" + +When creating the user check the "Admin" option: + +.. figure:: /Images/ManualScreenshots/BackendUser/CreateAdmin.png + :alt: The Admin option is the first option in the tab "General" in the backend user edit form + + When you check the Admin option the form needs to reload once. Answer the dialogue with "OK". + +You can :ref:`Grant System Maintainer rights ` +in the Admin Tools later on. + +.. _backend-users-admin-install-tool: + +Using the Install Tool to create an administrator +------------------------------------------------- + +Access the Install Tool at `https://my-site.ddev.site/typo3/install.php` using +the Install Tool password defined during the installation process. + +.. figure:: /Images/ManualScreenshots/BackendUser/InstallTool.png + :alt: The Install Tool: Create Administrative User, Create new administrative users and grant them system maintainer privileges (optional). + + In the module "Maintenance" module use the button "Create Administrator". + +If they should be a System Maintainer check the box. + +.. _backend-users-system-maintainer: + +Granting System Maintainer rights +================================= + +.. note:: + You must be logged in with a System Maintainer account or use the + Install Tool to grant System Maintainer rights. In + `Application context Development `_ + all backend administrators can use the module. + +Using the module :guilabel:`Admin Tools > Settings` and card +"Manage System Maintainers Access" you can manage which administrator accounts +should be granted "System Maintainer" rights. + +.. figure:: /Images/ManualScreenshots/BackendUser/ManageSystemMaintainers.png + :alt: "Manage System Maintainers" window in the Admin Tools. + + Disabled backend admins are marked with [DISABLED], you can choose them any way. + +On saving the changes are written to file :file:`config/system/settings.php` +therefore this file needs to be writable. + +If your installation also has a file called :file:`config/system/additional.php` +the settings can be overridden here. In this case changes you make in the +Admin Tools do not take effect. + +A setting overriding the System Maintainer list could look like this: + +.. code-block:: php + :caption: config/system/additional.php + + $GLOBALS['TYPO3_CONF_VARS']['SYS']['systemMaintainers'] => [ + 1, + 3, + 42 + ]; + +This setting is also documented in +:ref:`systemMaintainers `. diff --git a/Documentation/Administration/BackendUsers/Index.rst b/Documentation/Administration/BackendUsers/Index.rst new file mode 100644 index 00000000..89888203 --- /dev/null +++ b/Documentation/Administration/BackendUsers/Index.rst @@ -0,0 +1,43 @@ +:navigation-title: Backend Users + +.. include:: /Includes.rst.txt + +.. _backend-users: + +============================================ +Creating and configuring TYPO3 backend users +============================================ + +Each person that uses the TYPO3 backend should have their own personal backend +user account. + +The user that was automatically created for you during +`Installation `_ +has the widest rights possible and is a System Maintainer. The System Maintainer +is an Administrator who can also see and use the section +`Admin Tools `_ in the +backend. + +.. tip:: + If your Backend User account does not seem to work for some reason, check + chapter `Troubleshooting common TYPO3 backend login + problems `_. + +.. toctree:: + :hidden: + :titlesonly: + :glob: + + * + +.. card-grid:: + :columns: 1 + :columns-md: 2 + :gap: 4 + :class: pb-4 + :card-height: 100 + + .. card:: `Administrators `_ + + Create personal administrator accounts and mange them. Grant + System Maintainer permissions to administrators. diff --git a/Documentation/Administration/Index.rst b/Documentation/Administration/Index.rst new file mode 100644 index 00000000..ce0b1806 --- /dev/null +++ b/Documentation/Administration/Index.rst @@ -0,0 +1,34 @@ +:navigation-title: Administration + +.. include:: /Includes.rst.txt + +.. _administration: + +========================================== +Administration of your first TYPO3 project +========================================== + +In this chapter you will: + +* Learn how to create and mange backend user. + +.. card-grid:: + :columns: 1 + :columns-md: 2 + :gap: 4 + :class: pb-4 + :card-height: 100 + + .. card:: Backend User Management + + Each person (administrator or editor) that uses the TYPO3 backend should + have their own personal backend user account. + + .. card-footer:: :ref:`Backend Users ` :ref:`Administrators ` + :button-style: btn btn-secondary stretched-link + +.. toctree:: + :hidden: + :titlesonly: + + BackendUsers/Index diff --git a/Documentation/Concepts/Assets/Index.rst b/Documentation/Concepts/Assets/Index.rst new file mode 100644 index 00000000..2011571a --- /dev/null +++ b/Documentation/Concepts/Assets/Index.rst @@ -0,0 +1,70 @@ +.. include:: /Includes.rst.txt +.. _webroot: + +================== +Webroot and assets +================== + +In TYPO3 files that are displayed in the web browser, must - for +security reasons - be placed in certain directories. + +In a standard Composer-based installation, which this tutorial assumes you have, the webroot +of the server points to directory :directory:`public`. Read more about this folder: +:ref:`TYPO3 Explained, folder "public/" `. Files +placed outside of this folder cannot be called directly by the web browser. + +There are 3 types of files that must be accessed directly by the browser: + +* :ref:`Media and downloads `: Images, videos and audio files used within the content and + managed by editors. Downloads like PDF files, Excel sheets etc. +* :ref:`Assets `: Including CSS, JavaScript, fonts, images and icons used for design purposes. +* Technical files managed by Composer and TYPO3, including the `index.php` as + Entry point, automatically generated assets and scaled versions of images. + +.. _media: + +Media and downloads +=================== + +Media and downloads **must** be stored in fileadmin. In standard +Composer-based installations, as we assume you have here, they are stored in +:path:`public/fileadmin/`. + +Read more about this folder: +:ref:`TYPO3 Explained, folder "public/fileadmin/" `. + +Files in the fileadmin directory are managed by the +:ref:`File abstraction layer (FAL) `. + +They can be uploaded, moved and deleted in the backend module +:guilabel:`File > Filelist` by administrators and +depending on :ref:`permissions `, +by editors. + +.. warning:: + For security reasons, do not store any templates, scripts or assets in this + directory. Store them in a :ref:`site package ` + :ref:`assets`. + +.. _assets: + +Assets in extensions and site packages +===================================== + +Assets usually include CSS files, JavaScript and images / icons used for design +purposes. + +Within an extension, including a site package, they can only be placed in the +:path:`Resources/Public` folder and subfolders of this folder. + +During Composer installation the :path:`Resources/Public` directories of all +installed extensions are symlinked into the :path:`public/_assets` webroot folder. +For security reasons the folders in :path:`public/_assets` have hashed names. + +.. note:: + You **must never** reference any file in :path:`public/_assets` directly by + using the hash in an absolute or relative URL. The hashes can change at any + time. Only use TYPO3 library methods to reference the assets. + +Read more about this folder: +:ref:`TYPO3 Explained, folder "public/_assets/" `. diff --git a/Documentation/Concepts/Backend/AdminTools/ContentSecurityPolicy.rst b/Documentation/Concepts/Backend/AdminTools/ContentSecurityPolicy.rst new file mode 100644 index 00000000..67d5821f --- /dev/null +++ b/Documentation/Concepts/Backend/AdminTools/ContentSecurityPolicy.rst @@ -0,0 +1,17 @@ +:navigation-title: Content Security Policy +.. include:: /Includes.rst.txt +.. _admin-tools-csp: + +===================================== +Content Security Policy (Admin Tools) +===================================== + +:ref:`Content Security Policy ` declarations +can be applied to a TYPO3 website in frontend and backend scope with a dedicated +API. + +This module handles +:ref:`Reporting of violations of the Content Security +Policy `. It is always available +but can only be :ref:`accessed via the backend `, +not the Install Tool. diff --git a/Documentation/Concepts/Backend/AdminTools/Environment.rst b/Documentation/Concepts/Backend/AdminTools/Environment.rst new file mode 100644 index 00000000..1a645e27 --- /dev/null +++ b/Documentation/Concepts/Backend/AdminTools/Environment.rst @@ -0,0 +1,15 @@ +:navigation-title: Environment +.. include:: /Includes.rst.txt +.. _admin-tools-environment: + +========================= +Environment (Admin Tools) +========================= + +Only available if :composer:`typo3/cms-install` is installed. + +The backend module :guilabel:`Admin Tools > Maintenance` offers tools +to system maintainers regarding the server environment like PHP and database +versions, directory status, mail setup and image processing. + +.. todo: Describe the tools available here diff --git a/Documentation/Concepts/Backend/AdminTools/Extensions.rst b/Documentation/Concepts/Backend/AdminTools/Extensions.rst new file mode 100644 index 00000000..9e120f06 --- /dev/null +++ b/Documentation/Concepts/Backend/AdminTools/Extensions.rst @@ -0,0 +1,15 @@ +:navigation-title: Extensions +.. include:: /Includes.rst.txt +.. _admin-tools-extensions: + +======================== +Extensions (Admin Tools) +======================== + +Only available if :composer:`typo3/cms-extensionmanager` is installed. + +The backend module :guilabel:`Admin Tools > Extensions`, also called +"Extension Manager", can be used in Composer-based extensions to view which +TYPO3 extensions are installed. In non-Composer installation (not in the scope +of this guide) they can also be used to install and activate extensions: +:ref:`Installing an Extension using the Extension Manager `. diff --git a/Documentation/Concepts/Backend/AdminTools/Index.rst b/Documentation/Concepts/Backend/AdminTools/Index.rst new file mode 100644 index 00000000..0b3b3d08 --- /dev/null +++ b/Documentation/Concepts/Backend/AdminTools/Index.rst @@ -0,0 +1,89 @@ +.. include:: /Includes.rst.txt +.. _admin-tools: + +=========== +Admin Tools +=========== + +In the :ref:`User Management ` chapter we covered the +*Access* and *Backend Users* module. In this section we take a look +at the remaining modules. + +The following modules are available in a full TYPO3 installation: + +.. toctree:: + :glob: + :titlesonly: + + Maintenance + Settings + Upgrade + Environment + ContentSecurityPolicy + Extensions + +.. contents:: + +.. _admin-tools-access: + +Accessing the Admin Tools +========================= + +The Admin Tools can only be accessed from the backend if: + +* :composer:`typo3/cms-install` is installed. This system extension became + optional with TYPO3 13. +* The currently logged in backend user has admin privileges and is a system + maintainer. +* On systems in the :ref:`application context "Production" ` + the user has to reconfirm their login. + +If the TYPO3 backend is not accessible you can access the "Install Tool", which +features the Admin Tool modules provided by :composer:`typo3/cms-install`: + +.. _install-tools-access: + +Accessing the Install Tools without TYPO3 Backend access +======================================================== + +On any TYPO3 installation with :composer:`typo3/cms-install` you can access the +Install Tools by calling the following URL: `https://example.org/typo3/index.php`. + +To prove that you have writing access to the file system where TYPO3 is installed +you **have to** create a file in path :file:`var/transient/ENABLE_INSTALL_TOOL` +or :file:`config/ENABLE_INSTALL_TOOL`. The file can be empty, TYPO3 has to have +write access to the file. You can create it like this on: + +.. code-block:: bash + + touch config/ENABLE_INSTALL_TOOL + +See also :ref:`TYPO3 Explained, ENABLE_INSTALL_TOOL `. + +You **must** now enter the Install Tool password. If you do not know the install +tool password you can generate a new one by entering the desired password. + +Copy the calculated hash: + +.. figure:: /Images/ManualScreenshots/AdminTools/InstallToolHash.png + :alt: Screenshot demonstrating copying the calculated hash in the install tool + + Copy the calculated hash + +Open file :file:`config/system/settings.php` and adjust the Install tool +password like so: + +.. code-block:: diff + :caption: config/system/settings.php (Difference) + + [ + - 'installToolPassword' => '$argon2i$v=19$m=65536,t=16,p=1$Z1BRbnZDdGx4T3pJVmpLVw$Bjhz+rSW1Bps5hIdXUBXrtlZ52E4Qx4lw4NU0MiEUyg', + + 'installToolPassword' => '$argon2i$v=19$m=65536,t=16,p=1$Z0tiZjVVdzN5VUEuLzhmYw$xTalKXJVMCALCO+0OklDt24Y/7NkffNc1bOeg2jo00I', + 'passwordHashing' => [ + 'className' => 'TYPO3\\CMS\\Core\\Crypto\\PasswordHashing\\Argon2iPasswordHash', + 'options' => [], + ], + ], + ]; diff --git a/Documentation/Concepts/Backend/AdminTools/Maintenance.rst b/Documentation/Concepts/Backend/AdminTools/Maintenance.rst new file mode 100644 index 00000000..d943d0b4 --- /dev/null +++ b/Documentation/Concepts/Backend/AdminTools/Maintenance.rst @@ -0,0 +1,69 @@ +:navigation-title: Maintenance +.. include:: /Includes.rst.txt +.. _admin-tools-maintenance: + +========================= +Maintenance (Admin Tools) +========================= + +Only available if :composer:`typo3/cms-install` is installed. + +The backend module :guilabel:`Admin Tools > Maintenance` offers tools +to system maintainers that are necessary during development or updates. + +Some of the tools available here include: + +.. todo: describe the other tools + +.. contents:: + +.. _admin-tools-maintenance-flush-cache: + +Flush TYPO3 and PHP Cache +========================= + +By clicking the button :guilabel:`Flush cache` you can flush all caches. This is +necessary during development if you changed files like +:ref:`Fluid templates `, :ref:`TypoScript files `, +or PHP files. + +It is also necessary to flush caches after installing or updating extensions. + +You can achieve the same effect by calling + +.. code-block:: bash + + ddev typo3 cache: flush + +.. note:: + Flushing the cache via the "Clear cache" buttons in the + :ref:`Top Bar ` does not have the same effect. It does not flush + PHP related caches. + +.. _admin-tools-maintenance-database-analyzer: + +Analyze Database Structure +========================== + +Aside its name this tool does not only analyze the database structure but also +offers to fix it for you. + +Database changes can be necessary when :ref:`TCA files ` where changed or +extensions installed / updated. + +.. _admin-tools-maintenance-create-admin: + +Create Administrative User +========================== + +This tool can be used to create a new administrative backend user with or +without maintainer privileges. + +You can also create a new backend user from the console: + +.. code-block:: bash + + ddev typo3 backend:user:create + +and from the module :guilabel:`System > Backend Users`. The latter cannot +grant system maintainer rights but is available to all admins. diff --git a/Documentation/Concepts/Backend/AdminTools/Settings.rst b/Documentation/Concepts/Backend/AdminTools/Settings.rst new file mode 100644 index 00000000..f5d7e9c7 --- /dev/null +++ b/Documentation/Concepts/Backend/AdminTools/Settings.rst @@ -0,0 +1,15 @@ +:navigation-title: Settings +.. include:: /Includes.rst.txt +.. _admin-tools-settings: + +====================== +Settings (Admin Tools) +====================== + +Only available if :composer:`typo3/cms-install` is installed. + +The backend module :guilabel:`Admin Tools > Settings` offers tools +to system maintainers regarding **global** settings that influence the complete +TYPO3 installation. + +.. todo: Describe the tools available here diff --git a/Documentation/Concepts/Backend/AdminTools/Upgrade.rst b/Documentation/Concepts/Backend/AdminTools/Upgrade.rst new file mode 100644 index 00000000..21c50ccc --- /dev/null +++ b/Documentation/Concepts/Backend/AdminTools/Upgrade.rst @@ -0,0 +1,15 @@ +:navigation-title: Upgrade +.. include:: /Includes.rst.txt +.. _admin-tools-upgrade: + +===================== +Upgrade (Admin Tools) +===================== + +Only available if :composer:`typo3/cms-install` is installed. + +The backend module :guilabel:`Admin Tools > Upgrade` offers tools +to system maintainers that are useful during +:ref:`Major upgrades (TYPO3 explained) `. + +.. todo: Describe the tools available here diff --git a/Documentation/Concepts/Backend/FileModule/Index.rst b/Documentation/Concepts/Backend/FileModule/Index.rst new file mode 100644 index 00000000..aa26654a --- /dev/null +++ b/Documentation/Concepts/Backend/FileModule/Index.rst @@ -0,0 +1,92 @@ +.. include:: /Includes.rst.txt +.. _file-module: + +=================== +The Filelist module +=================== + +The :guilabel:`File > Filelist` module is where you can manage +all the :ref:`media and downloads ` associated with your TYPO3 web site. + +The Editors Guide describes how to +:ref:`manage media in the TYPO3 backend `. + +Do not store :ref:`assets ` needed for your theme here. Store these in +the folder :path:`Resources/Public` of your :ref:`site package ` +or another :ref:`extension `. + +.. _file-module-fileadmin: + +Fileadmin - the default file storage +==================================== + +By default all media managed via the Filelist module is stored in the folder +:path:`public/fileadmin`. + +This folder is publicly accessible and it is possible for attackers to access +any file herein when they have or guess the correct path. + +Third party extensions like :composer:`leuchtfeuer/secure-downloads` can help +you if downloads should only be available to logged-in frontend users. + +.. _file-module-storages: + +File storages +============= + +It is possible to configure additional file storages, including private and +read only ones. This topic is beyond the scope of this guide. It is explained in +TYPO3 Explained, chapter :ref:`File storages `. + +.. _file-module-fal: + +File abstraction layer (FAL) +============================ + +All media and download files managed in the Filelist module are managed via +an abstraction layer. You can find the documentation of this layer in TYPO3 +Explained, chapter :ref:`File abstraction layer (FAL) `. + +On uploading, each file gets a unique identifier assigned to +it. This identifier is used to link to files and also to attach meta data to +them. + +This allows your editors to rename and move files without breaking the frontend. +It also allows to test whether a file is still being used on deletion and to +automatically delete unused media if desired. + +However you can only use the full power of the FAL if you do not link directly +to files but only use the API to access them: + +In Fluid link files using the +:ref:`Image ViewHelper ` with property +:typo3:viewhelper-argument:`image ` +for images and the :ref:`Link.file ViewHelper ` +for download links. + +In TypoScript the :ref:`typolink function with the file property ` +can be used to link downloads. + +For usage in PHP there is an API: :ref:`Working with files, folders and file +references ` + +.. note:: + Never link to a file in the fileadmin from CSS or or JavaScript. Such files + like logos, icons, background images etc. should be stored as + :ref:`Assets in extensions and site packages `. + +.. _file-module-meta-data: + +File meta data +============== + +A number of meta data fields for media uploaded in the Filelist module is +available out-of-the-box. Additional meta data fields are available if the +system extension :composer:`typo3/cms-filemetadata` is installed. + +For accessibility reasons images should always have an alt text defined. +Editors can input an alt text either in the file metadata in the Filelist module +or override it in the file relation when they use an image in a content element. + +By using the :ref:`Image ViewHelper ` +the alt text is automatically output unless you override it with property 'alt'. diff --git a/Documentation/Concepts/Backend/GeneralBackendStructure/ContextMenu/Index.rst b/Documentation/Concepts/Backend/GeneralBackendStructure/ContextMenu/Index.rst new file mode 100644 index 00000000..3fd2e806 --- /dev/null +++ b/Documentation/Concepts/Backend/GeneralBackendStructure/ContextMenu/Index.rst @@ -0,0 +1,25 @@ +.. include:: /Includes.rst.txt +.. index:: Context menu +.. _context-menu: + +================= +The context menus +================= + +While learning about the :ref:`page tree `, +we were introduced to contextual menus +when selecting icons in the Page module. + +Contextual menus exist throughout the CMS's +backend. You will notice that different sets of +icons appear depending on what page you are on +what actions you are performing. + +For example, there's a contextual menu in the **WEB > List** view: + +.. include:: /Images/AutomaticScreenshots/ListModule/ContextMenu.rst.txt + +or in the **FILE > Filelist** view: + +.. include:: /Images/AutomaticScreenshots/FilelistModule/ContextMenu.rst.txt + diff --git a/Documentation/Concepts/Backend/GeneralBackendStructure/Index.rst b/Documentation/Concepts/Backend/GeneralBackendStructure/Index.rst new file mode 100644 index 00000000..aea06740 --- /dev/null +++ b/Documentation/Concepts/Backend/GeneralBackendStructure/Index.rst @@ -0,0 +1,41 @@ +:navigation-title: Structure +.. include:: /Includes.rst.txt +.. _general-backend-structure: + +========================= +General backend structure +========================= + +Here is a complete overview of the backend interface and its structure. + +.. figure:: /Images/ManualScreenshots/Backend/BackendAreasOverviewShort.png + :alt: Screenshot of the TYPO3 Backend after login, with annotated parts + + Overview of the whole TYPO3 CMS backend + +Situated in the center left of page is the +*page tree* and to its right the (main) *content area*. + +:ref:`Top bar ` (1) + This gives you access to your user settings, logout, search + etc. + +Module menu (2) + This is the main menu of the TYPO3 CMS backend. It is divided + into main modules (:guilabel:`WEB`, :guilabel:`FILE`, etc.) and + their sub-modules. + +:ref:`Page tree ` (3) + This can be used to browse through and select pages. + +Docheader (4) and Content area (5) + The content in these areas depends on which backend module is currently + opened. + +.. toctree:: The backend structure in depth + :maxdepth: 1 + :titlesonly: + + TopBar/Index + PageTree/Index + ContextMenu/Index diff --git a/Documentation/Concepts/Backend/GeneralBackendStructure/PageTree/Index.rst b/Documentation/Concepts/Backend/GeneralBackendStructure/PageTree/Index.rst new file mode 100644 index 00000000..7f1aadcd --- /dev/null +++ b/Documentation/Concepts/Backend/GeneralBackendStructure/PageTree/Index.rst @@ -0,0 +1,216 @@ +.. include:: /Includes.rst.txt +.. index:: Backend; Page tree +.. _page-tree: + +========= +Page tree +========= + +The page tree represents the hierarchical structure of your site and its pages. In +most cases this corresponds exactly to the navigation structure +of your web site. The page tree can be expanded by clicking +the arrow to the left of each page. + +.. rst-class:: bignums + + +1. :ref:`Enter the backend ` and select the page module + + Click on **WEB** > **Page** now. + +2. Look at the page tree in the backend: + + For example, click on the arrow next to the page called "Congratulations", + and then "Content Examples". + + Your page tree should look like this: + + .. include:: /Images/AutomaticScreenshots/PageTree/PageTree.rst.txt + + +3. View page in the frontend: + + To view the page in the frontend, click on the :guilabel:`View webpage` + icon in the Docheader. + + .. include:: /Images/AutomaticScreenshots/PageModule/ViewWebpage.rst.txt + +4. Now take a look at the navigation in the frontend. + + Click on :guilabel:`CONTENT EXAMPLES` in the main menu on top and then + select :guilabel:`Media` from the sub-menu: + + .. figure:: /Images/ManualScreenshots/Frontend/FrontendPage.png + :alt: Frontend of the Introduction Package + :class: with-shadow + +The main menu on top of your web site corresponds to the first +level menu pages in the page tree. The sub-menu of the :guilabel:`"Content Examples"` +page in the frontend corresponds to the entries beneath "Content Examples" in the page tree. + +.. index:: Root page + +Working with the page tree +========================== + +We will now look at some components of the page tree a little more closely: + + +Root page + The page with the globe icon represents the root of your web site. + Multiple websites can exist within a single installation of TYPO3. + The top node with the TYPO3 logo is a special container which is used + to store shared resources such as file mounts and backend user records. + +.. include:: /Images/AutomaticScreenshots/PageTree/RootPage.rst.txt + +Modules: + Some modules make use of the page tree, but not all. The presence of the page tree + implies that the module depends upon the selection of a specific pages in the page tree. + +Content area: + Clicking on a pages title opens that page in the content area to + the right. Hovering over the icon of a page will display its internal id. + +Context menu: + 1. A click on the page icon will open the context menu. 2. **Or**, you + can right click the whole page title. + + .. include:: /Images/AutomaticScreenshots/PageTree/ContextMenu.rst.txt + + +.. index:: Page tree; Context menu +.. _the-context-menu: + +The context menu +================ + +The context menu of a page is used to access the most common +page related functions. Here is what these options do: + +- **Show**: Opens the page you clicked in the browser (frontend) + +- **Edit**: Lets you edit the page properties + +- **New**: Create a new page + + +.. important:: + + This creates a new page under the current page on the same level in the page + tree: + + .. code-block:: none + + parent + | + ---> current page + | + ---> new page + + If you wish to create a new page, as subpage of current page, use "More options" + > 'Create New' wizard" or use :ref:`new-page-drag-and-drop`. + + .. code-block:: none + + parent + | + --> current page + | + ---> new page + + +- **Info**: Displays information about the page + +- **Copy**: Copies the page + +- **Cut**: Cuts the page + +- **More options**: + + - **More options ... > 'Create New' wizard**: Same as "New", but you can select where + the new page is to be created. + + - ... + + - **More options ... > Export**: Opens the export tool and preselects the selected page + + - **More options ... > Import**: Opens the import tool and preselects the selected + page + +- **Enable** or **Disable**: Enables or disables the page depending on its current state. + Disabled pages can be edited as normal, but are not accessible from the frontend. + +- **Delete**: Deletes the page + +- **History/Undo**: Shows the change history of the page (who did which + changes when) + + +.. index:: Pages; Create +.. _new-page-drag-and-drop: + +Create new pages with drag and drop +=================================== + +You can also create new pages using drag and drop. + +.. rst-class:: bignums + +1. Clicking on the "Create new pages" icon (top left of the page tree) + +2. Drag and drop a "Standard" page to its desired location in the page tree. + + + .. figure:: /Images/ManualScreenshots/PageTree/Dragndop1.png + :class: with-shadow + + .. figure:: /Images/ManualScreenshots/PageTree/Dragndop2.png + :class: with-shadow + +3. A new page has now been created at the desired location. + + By default it will be called "[Default Title]" which can be changed + right away by entering a new title. + + .. figure:: /Images/ManualScreenshots/PageTree/Dragndop3.png + :class: with-shadow + + +.. index:: Modules; View +.. _the-view-module: + +The view module +=============== + +It is also possible to view a page without having to leave the backend. By selecting the View module, +backend users are able to preview individual pages and test them against various screen sizes, +by accessing the drop-down menu at the top. + +.. figure:: /Images/ManualScreenshots/Modules/ViewModule.png + :alt: Viewing a page directly in the backend + :class: with-shadow + + +.. index:: Page tree; Collapse +.. _collapse-page-tree: + +Collapsing the page tree +======================== + +The page tree can be collapsed to gain screen space, by clicking on the second icon +on the left in the top bar. + +.. include:: /Images/AutomaticScreenshots/PageTree/CollapsePageTree.rst.txt + + +.. index:: Pages; Edit +.. _editing-pages: + +Editing pages +============= + +Modifying an existing page or adding a new one is covered in the +:ref:`Editors Tutorial `. + +Next we will look at how content is placed on pages. diff --git a/Documentation/Concepts/Backend/GeneralBackendStructure/TopBar/Index.rst b/Documentation/Concepts/Backend/GeneralBackendStructure/TopBar/Index.rst new file mode 100644 index 00000000..41b88caf --- /dev/null +++ b/Documentation/Concepts/Backend/GeneralBackendStructure/TopBar/Index.rst @@ -0,0 +1,38 @@ +.. include:: /Includes.rst.txt +.. index:: Backend; Top bar +.. _top-bar: + +=========== +The top bar +=========== + +The top bar features a set of menus that allow you to quickly carry out common administrative tasks. + +The top bar also contains specific information about your instance of TYPO3 +including the name of your site and also the version of TYPO3 it is currently running. + +.. include:: /Images/AutomaticScreenshots/BackendOverview/BackendTopBar.rst.txt + +#. To the left is the icon for **minimizing the Module Menu**. +#. Next comes the **TYPO3 CMS logo** + (which may have been modified by an extension). + Then comes the **name of your site**. This is part of global + configuration, which is described later. +#. The star icon will open a list of **Bookmarks**. You can add one on most pages + in the backend by clicking the share icon in the DocHeader and selecting "Create + a bookmark to this record" in the dropdown. +#. The lightning bolt icon opens the **Clear Cache** menu to flush the various + caches that are used by TYPO3 CMS to improve performance. + Caches are described in detail in TYPO3 Explained::ref:`t3coreapi:caching`. +#. The document icon displays your **Open and Recently Used Documents** +#. The question mark icon opens the **Help** menu, which gives + you access to helper modules and additional support documentation. +#. The next icon opens up a panel showing various information + about the environment. +#. Your user name is displayed next. It opens a menu giving access + to the **"User Settings"** module, where you can change your password + and configure other backend preferences. You can also "Logout" of + the CMS from this menu option. +#. At the far right, is general **"Search"** field, which will search + through records (pages, content elements, users, etc.) that exist + within your installation of TYPO3. diff --git a/Documentation/Concepts/Backend/Index.rst b/Documentation/Concepts/Backend/Index.rst new file mode 100644 index 00000000..1408ea3c --- /dev/null +++ b/Documentation/Concepts/Backend/Index.rst @@ -0,0 +1,64 @@ +:navigation-title: Backend +.. include:: /Includes.rst.txt + +.. _backend: + +======= +Backend +======= + +.. figure:: /Images/ManualScreenshots/Backend/BackendAreasOverviewShort.png + :alt: Screenshot of the TYPO3 Backend after login, with annotated parts + + Overview of the whole TYPO3 backend, see also :ref:`general-backend-structure` + +The backend is the administrative side of the CMS, accessible only to users +with the correct permissions. It allows users to create and publish content, +configure the site (like settings, domains, languages), manage backend users, +and handle third-party extensions. The :ref:`frontend` is what visitors +see when browsing the site. + +You can view and try out the TYPO3 backend on this `demo `__ + +.. toctree:: + :maxdepth: 1 + :titlesonly: + + GeneralBackendStructure/Index + Login/Index + PageModule/Index + ListModule/Index + FileModule/Index + SiteManagement/Index + InfoModule/Index + AdminTools/Index + SystemModules/Index + +.. _backend modules: + +Backend modules +--------------- + +The backend contains modules that are grouped by task. Which modules a +user sees depends on the access rights that have been given to them. + +The :guilabel:`Web` group contains a set of modules for the creation and +management of pages and content. This group contains important backend modules +such as :ref:`Pages `, where the page content can be edited, +:ref:`List ` where database records can be viewed and edited and +:ref:`Info ` where you can find information provided by different +system and third party extension. Many page modules provided by third party +extensions can also be found in this area. + +:guilabel:`Site Management` is for the setup of a site. Here it is possible to +specify the site name, assign domains and select languages. + +:ref:`Filelist ` is for viewing and managing files including +documents, images and videos. + +:guilabel:`Admin Tools` are administrative modules for maintenance and performing +upgrades. One module is the Extension manager for enabling/disabling +third-party extensions. + +:ref:`System ` is where administrators control access to the +backend, view error logs and provide information specific to the installation. diff --git a/Documentation/Concepts/Backend/InfoModule/Index.rst b/Documentation/Concepts/Backend/InfoModule/Index.rst new file mode 100644 index 00000000..2bcbcaf4 --- /dev/null +++ b/Documentation/Concepts/Backend/InfoModule/Index.rst @@ -0,0 +1,19 @@ +.. include:: /Includes.rst.txt +.. index:: Modules; Info +.. _info-functions-modules: +.. _info-module: + +=========== +Info module +=========== + +The **WEB > Info** module displays a variety of information +related to the pages in your web site. It contains several +functions which can be accessed from the dropdown menu in the +docheader. For example, the *Localization Overview* lets +you quickly identify which pages are translated and which are +not. You can also so set how many levels down the page tree you +wish to analyze. + +.. include:: /Images/AutomaticScreenshots/Modules/LocalizationOverview.rst.txt + diff --git a/Documentation/Concepts/Backend/ListModule/Index.rst b/Documentation/Concepts/Backend/ListModule/Index.rst new file mode 100644 index 00000000..443f45b4 --- /dev/null +++ b/Documentation/Concepts/Backend/ListModule/Index.rst @@ -0,0 +1,89 @@ +.. include:: /Includes.rst.txt +.. index:: Modules; List module +.. _list-module: + +=============== +The list module +=============== + +Almost all data stored in the database is represented as a +:ref:`Database record ` in the TYPO3 backend. + +The respective backend module called :guilabel:`Web > List` module can be +used to view, edit, search and export database records. + +How to use the List module effectively for managing database records is +described in-depth in +:ref:`Editors Guide, Using the list module `. + +For example there is a :ref:`Mass editing mode ` and +a :ref:`clipboard `. + +.. _list-module-tca: + +Display of database records in the List module +============================================== + +How a database record type is displayed in the list module is determined by +:ref:`tca` and can be further configured by TSconfig. While TCA is always loaded +globally Tsconfig can be included on a per-site or per-page level. + +.. todo: Link tsconfig once article exists in concepts. + +Here are some examples of what you might want to change in the list module: + +.. _list-module-mod-hideTables: + +Hide tables in the List module +------------------------------ + +The TSconfig properties in section :ref:`web_list ` +can be used to influence display and functionality of the List module. + +For example you can hide the records of certain tables visible in the List module with: + +.. code-block:: typoscript + :caption: EXT:site_package/Configuration/page.tsconfig + + mod.web_list { + hideTables := addToList(tx_my_table,tx_my_table2) + } + +We use the :ref:`operator ":=" ` to add tables to a list that we want to hide. + +.. _list-module-disableHideAtCopy: + +Disable hide and prepend at copy +-------------------------------- + +By default copied database records are inserted hidden and with `(copy X)` +appended to their label. You can disable this default behaviour by +setting :ref:`disablePrependAtCopy ` +and :ref:`disableHideAtCopy ` for +the affected table belonging to the record to true like so: + +.. code-block:: typoscript + :caption: EXT:site_package/Configuration/page.tsconfig + + TCEMAIN.table.tx_my_table { + disablePrependAtCopy = 1 + disableHideAtCopy = 1 + } + +.. _list-module-TCAdefaults: + +Define defaults for certain fields +---------------------------------- + +You can override the :confval:`default (TCA reference) ` +set globally in the :ref:`tca` by setting a custom default value in TSconfig +:ref:`TCAdefaults `: + +.. code-block:: typoscript + :caption: EXT:site_package/Configuration/page.tsconfig + + # Do not hide newly created pages by default + TCAdefaults.pages.hidden = 0 + + # Set the author of a news to "Anonymous" + TCAdefaults.tx_news_domain_model_news.author = Anonymous diff --git a/Documentation/Concepts/Backend/Login/Index.rst b/Documentation/Concepts/Backend/Login/Index.rst new file mode 100644 index 00000000..3640285f --- /dev/null +++ b/Documentation/Concepts/Backend/Login/Index.rst @@ -0,0 +1,18 @@ +.. include:: /Includes.rst.txt +.. _backend-login: + +============= +Backend login +============= + +The backend is accessed via the url (insert your domain) :samp:`example.org/typo3`. + +.. figure:: /Images/Illustrations/backend_login.png + +When a user logs into the backend they see the dashboard (by default). + +.. note:: + Since TYPO3 v13, a custom entry point for the TYPO3 backend can be + customized. If the path :samp:`/typo3` does not work, consult the + project's documentation or ask your administrator for the correct backend + URL. diff --git a/Documentation/Concepts/Backend/PageModule/Index.rst b/Documentation/Concepts/Backend/PageModule/Index.rst new file mode 100644 index 00000000..5c035277 --- /dev/null +++ b/Documentation/Concepts/Backend/PageModule/Index.rst @@ -0,0 +1,120 @@ +:navigation-title: Page module +.. include:: /Includes.rst.txt +.. _page-content: + +============================== +"Page" backend module in TYPO3 +============================== + +The :guilabel:`Web > Page` module is used by the editors of the site to add +and modify content elements on the page. + +The Editors Guide, chapter :ref:`Content Elements `, +covers practical topics on how to work with content. + +.. contents:: Topics related to the page module + +.. _page-layout: + +Page layout / backend layout +============================ + +Within the Page module there can be one or more areas (also called columns) +in which content can be added. The columns to be displayed in the backend +are defined via page TSconfig in a so-called backend layout, sometimes also +called page layout. The site package tutorial describes how page layouts +can be configured and used: :doc:`Page layouts with page +TSconfig `. + +The topic is also covered in-depth in the TSconfig Reference, +chapter :ref:`Backend layouts `. + +.. _page-new-content: + +The "New Page Content" wizard +============================= + +.. figure:: /Images/ManualScreenshots/Backend/NewPageContentWizard.png + :alt: Screenshot of a "New page content" wizard in a standard TYPO3 installation + + The "New page content" wizard + +When an editor adds a new content element to the page the "New Page Content" +wizard is displayed. Available :ref:`content elements ` and +:ref:`plugins ` are ordered into groups. + +You can use the page TSconfig setting +:ref:`mod.wizard.newContentElement.wizardItems ` +to hide or edit content elements displayed here. For example you can hide the +"HTML" content element supplied by :composer:`typo3/cms-fluid-styled-content`: + +.. code-block:: typoscript + :caption: EXT:site_package/Configuration/page.tsconfig + + mod.wizards.newContentElement.wizardItems { + special.removeItems := addToList(html) + } + +.. _page-content-elements: + +Content elements +================ + +You can use the community extension :composer:`friendsoftypo3/content-blocks` to +define additional content elements. Many third party extensions like +:composer:`bk2k/bootstrap-package` offer pre-defined content elements or, like +:composer:`georgringer/news` :ref:`plugins `. + +New content elements can also be created without relying on third party +extensions. You need basic knowledge on :ref:`tca`, :ref:`typoscript`, and +:ref:`templating with Fluid `. You have to use PHP for some +basic configurations but need no in-depth knowledge of programming. + +See :ref:`create a custom content element type `. + +.. _page-plugins: + +Plugins +======= + +A plugin is a special kind of content element. It typically provides dynamic or +interactive functionality. Many third party extensions offer ready to use +plugins for a wide range of functionality. For example plugins to display news: +:composer:`georgringer/news`, plugins to perform searches: +:composer:`apache-solr-for-typo3/solr`, to display Open Street maps: +:composer:`wsr/myleaflet`, event management with registration: +:composer:`derhansen/sf-event-mgt-contentelements` and many more. + +The chapter :ref:`how-to-find-extensions` covers searching for suitable extensions. + +Usually a PHP class called a "controller" manages +the functionality and display of the plugin. To create a custom plugin you +need some experience in PHP programming and dealing with databases etc. + +.. note:: + In TYPO3 a plugin is a special type of content element that can be added to + a page to provide complex functionality. + + Other content management systems like wordpress use the word "plugin" to + describe what we call an :ref:`extension ` in TYPO3. + +.. _preview-page: + +How to preview a page +===================== + +The preview function in TYPO3 allows you to check pages before publishing them. + +#. Preview from the Page Module + + * You can preview a page by clicking the page icon of the desired page in + the page tree. Click the ´show´ icon in the appearing context menu. + The page will open in a new tab. + + .. figure:: /Images/ManualScreenshots/Backend/previewMenue.png + +#. Preview button in the top bar + + * You can preview the page via clicking the button in the top bar. + + .. figure:: /Images/ManualScreenshots/Backend/previewButton.png diff --git a/Documentation/Concepts/Backend/SiteManagement/Index.rst b/Documentation/Concepts/Backend/SiteManagement/Index.rst new file mode 100644 index 00000000..81011f79 --- /dev/null +++ b/Documentation/Concepts/Backend/SiteManagement/Index.rst @@ -0,0 +1,23 @@ +:navigation-title: Site Management +.. include:: /Includes.rst.txt +.. _site-management-modules: + +======================= +Site Management modules +======================= + +The modules in this group manage and configure a site in your installation. + +It is possible to manage more then one web site within one TYPO3 installation. +In the beginning you will probably only have one site in your installation. + +The following modules are available in a full TYPO3 installation: + +.. toctree:: + :glob: + :titlesonly: + + Sites + Redirects + PageTSconfig + TypoScript diff --git a/Documentation/Concepts/Backend/SiteManagement/PageTSconfig.rst b/Documentation/Concepts/Backend/SiteManagement/PageTSconfig.rst new file mode 100644 index 00000000..86cfea58 --- /dev/null +++ b/Documentation/Concepts/Backend/SiteManagement/PageTSconfig.rst @@ -0,0 +1,55 @@ +:navigation-title: Page TSconfig +.. include:: /Includes.rst.txt +.. _site-management-page-tsconfig: + +====================================== +Page TSconfig module (Site management) +====================================== + +This module works in a similar way like the +:ref:`TypoScript module `. + +Page TSconfig and TypoScript both use the same syntax and are loaded in a similar +fashion. + +.. _site-management-page-tsconfig-overview: + +Pages containing page TSconfig +============================== + +Until TYPO3 version 13 page TSconfig was either added globally via a file +called :file:`EXT:my_extension/Configuration/page.tsconfig` or inserted or +included in the record of a page in the page properties. Doing so is still +possible for backward compatibility reasons. + +If you included the Page TSconfig via a site set or globally it +not displayed in the overview submodule. + +This does not mean it is not being loaded. + +.. _site-management-page-tsconfig-active: + +Active page TSconfig +==================== + +This module works much like :ref:`site-management-typoscript-active`. + +.. _site-management-page-tsconfig-included: + +Included page TSconfig +====================== + +This module works much like :ref:`site-management-typoscript-included`, however +the sources from which TSconfig is being loaded are different. + +In this Guide we assume that you load page TSconfig via the the site set of your +site package. The TSconfig Reference gives you an overview of all possible +strategies to set page TSconfig: +:ref:`Setting page TSconfig `. + +And to make confusion perfect there is also user TSconfig, which is loaded on a +per user basis: :ref:`Setting user TSconfig ` +and can override page TSconfig: +:ref:`Overriding page TSconfig in user TSconfig ` + +These topics are beyond the scope of this Guide however. diff --git a/Documentation/Concepts/Backend/SiteManagement/Redirects.rst b/Documentation/Concepts/Backend/SiteManagement/Redirects.rst new file mode 100644 index 00000000..8a4cc753 --- /dev/null +++ b/Documentation/Concepts/Backend/SiteManagement/Redirects.rst @@ -0,0 +1,14 @@ +:navigation-title: Redirects +.. include:: /Includes.rst.txt +.. _site-management-redirects: + +================================== +Redirects module (Site management) +================================== + +This backend module is only available if the optional system extension +:composer:`typo3/cms-redirects` is installed. + +The the Redirects system extension has a dedicated manual in which the +:doc:`Usage ` of this module is +described. diff --git a/Documentation/Concepts/Backend/SiteManagement/Sites.rst b/Documentation/Concepts/Backend/SiteManagement/Sites.rst new file mode 100644 index 00000000..99612e17 --- /dev/null +++ b/Documentation/Concepts/Backend/SiteManagement/Sites.rst @@ -0,0 +1,11 @@ +:navigation-title: Site +.. include:: /Includes.rst.txt +.. _site-management-site-configuration: + +========================= +Site configuration module +========================= + +.. note:: + Content will follow, for now see TYPO3 explained, + :ref:`Creating a new site configuration `. diff --git a/Documentation/Concepts/Backend/SiteManagement/TypoScript.rst b/Documentation/Concepts/Backend/SiteManagement/TypoScript.rst new file mode 100644 index 00000000..3af31cbd --- /dev/null +++ b/Documentation/Concepts/Backend/SiteManagement/TypoScript.rst @@ -0,0 +1,105 @@ +:navigation-title: TypoScript +.. include:: /Includes.rst.txt +.. _site-management-typoscript: + +=================================== +TypoScript module (Site management) +=================================== + +The TypoScript backend module can be used to debug your TypoScript configuration. + +TypoScript is managed via database records, called "TypoScript +records". This module can +be used to manage TypoScript records. Its usage is described in +TypoScript Reference, chapter +:ref:`TypoScript backend module `. + +The TypoScript module consists of the following submodules. You can switch them +in the docheader: + +.. figure:: /Images/ManualScreenshots/Modules/TypoScript.png + :alt: Screenshot of the TypoScript module in the backend demonstrating the location of the submodule switch, a drop down in the document header + + Switch between the TypoScript submodules in + +.. contents:: + +.. _site-management-typoscript-overview: + +TypoScript Overview +=================== + +Global overview of all pages with active TypoScript definitions (TypoScript +records and site sets). Useful if you have more then one site or more then one +TypoScript record in one site. + +.. _site-management-typoscript-constant-editor: + +Constant Editor +=============== + +TypoScript constants are +used to define values once and reuse them across TypoScript definitions. + +This editor can be used to edit Constants that have been defined in Extensions +with a special kind of comments. They are not widely supported anymore. + +.. _site-management-typoscript-record-editor: + +Edit TypoScript record +====================== + +Can be used to edit TypoScript records. + +Its usage is described in the TypoScript reference, +chapter :ref:`Submodule "Edit TypoScript Record" `. + +.. _site-management-typoscript-active: + +Active TypoScript +================= + +This module can be used to debug the active TypoScript. During loading and +pre compiling TypoScript configuration can override or unset definitions made in +another file. + +How exactly this happens depends on things like loading order. + +For example if the TypoScript in your site package configures: + +.. code-block:: typoscript + :caption: EXT:site_package/Configuration/TypoScript/setup.typoscript + + page.20 = TEXT + page.20.value = Apple + +And the TypoScript of another extensions configures: + +.. code-block:: typoscript + :caption: EXT:some_extension/Configuration/TypoScript/setup.typoscript + + page.20 = TEXT + page.20.value = Banana + +It depends on how these includes are loaded weather the `page.20.value` ends up +being set to "Banana" or "Apple". + +The module can also be used to simulate what happens if certain +:ref:`TypoScript Conditions ` +are being met or how site settings / TypoScript constants are replaced. + +Chapter :ref:`Debug the TypoScript in the backend module "Active +TypoScript" ` demonstrates the usage of this module in +a concrete example. + +.. _site-management-typoscript-included: + +Included TypoScript +=================== + +This submodule is helpful in debugging in which order TypoScript files were +included and :ref:`@import ` statements were +resolved. + +This module is also described in the TypoScript reference, chapter +:ref:`Submodule "Included TypoScript" `. diff --git a/Documentation/Concepts/Backend/SystemModules/Index.rst b/Documentation/Concepts/Backend/SystemModules/Index.rst new file mode 100644 index 00000000..70390280 --- /dev/null +++ b/Documentation/Concepts/Backend/SystemModules/Index.rst @@ -0,0 +1,176 @@ +:navigation-title: System modules +.. include:: /Includes.rst.txt +.. _system-modules: + +============== +System modules +============== + +System modules are backend modules in the group "System" +and they are only available to backend users with +admin permissions. + +Some modules are only available when you have an optional system extension +installed. If you want to see all available modules you can also make a +full TYPO3 install, see `https://get.typo3.org/misc/composer/helper`__. + +.. contents:: Backend modules in group "System" + +.. _system-modules-permissions: + +Permissions +=========== + +In TYPO3, you can grant permissions to backend users. +At first, a newly created backend user without any administrative +privileges has no access to neither the page module nor the +pages in the backend. +The module :guilabel:`System > Permissions` can be used to view or edit +these backend user permissions for pages in the backend. + +See also TYPO3 Explained, +:ref:`Permissions management `. + +.. _system-modules-backend-users: + +Backend Users +============= + +The module :guilabel:`System > Backend Users` is used to create, edit and delete +backend users. + +See also TYPO3 Explained, +:ref:`Backend user management `. + +.. _system-modules-reactions: + +Reactions (optional) +==================== + +This module is only available if the system extension +:composer:`typo3/cms-reactions` is installed. This extension handles **incoming** +webhooks to TYPO3. It also provides a corresponding backend module to manage +reaction records. + +It has its own manual: +:ref:`TYPO3 Reactions `. + +.. _system-modules-webhooks : + +Webhooks (optional) +=================== + +This module is only available if the system extension +:composer:`typo3/cms-webhooks` is installed. This extension handles **outgoing** +webhooks to TYPO3. It also provides a corresponding backend module to manage +webhook records in TYPO3. + +Unfortunately this extension is not documented at the time of writing. + +.. _system-modules-scheduler: + +Scheduler (optional) +==================== + +This module is only available if the system extension +:composer:`typo3/cms-scheduler` is installed. + +The Scheduler supports one-time or periodic execution of tasks that can be +delivered by any extension. It has its own manual: +:ref:`TYPO3 Scheduler `. + +.. _system-modules-scheduler-cronjobs: + +Cron jobs in Scheduler +---------------------- + +The backend module called :ref:`TYPO3 Scheduler ` can +be used to perform a task that you defined previously in the scheduler. +The scheduler can be triggered by a cron job. In your terminal you +can type + +.. code-block:: shell + :caption: Create or open the crontab + + crontab -e + +to create a new job on unix-like operating systems. In +:ref:`Setting up the cron job ` you can see how +this works. Normally you have to define the time or a time interval in which the +job should be performed once or frequently. To test your pattern you can insert +it `here `__ and test if it performs like you expect. +When you are not familiar with cron jobs we refer to https://en.wikipedia.org/wiki/Cron. + +.. _system-modules-dbcheck: + +DB check (optional) +=================== + +This module is only available if the system extension +:composer:`typo3/cms-lowlevel` is installed. + +The *Database (DB) check* module offers functions related +to the database and its content. + +Record Statistics + Shows a count of the various records in the database, + broken down by type for pages and content elements. + +Relations + Checks if certain relations are empty or broken, typically + used to check if files are being referenced. + +Search + A tool to search through the whole database. It offers an + advanced mode which is similar to a visual query builder. + +Check and update global reference index + TYPO3 CMS keeps a record of relations between all records. + This may get out of sync when certain operations are performed + without the strict context of the backend. It is therefore + useful to update this index regularly. + +Some third party extensions offer similar but extended functionality around +the database, for example :composer:`fixpunkt/backendtools` can be used during +development to find all pages that contain a certain plugin or that use +a certain backend layout etc. + +.. _system-modules-configuration: + +Configuration +============= + +The *Configuration* module can be used to view the various +configuration arrays used by the CMS. It is not the goal +of this tutorial to describe the role of each of these arrays, +you can discover their function as you dig deeper into +TYPO3 CMS. Let's just mention that the `$GLOBALS['TYPO3_CONF_VARS']` +contains global configuration values. + +.. _system-modules-reports: + +Reports (optional) +================== + +This module is only available if the system extension +:composer:`typo3/cms-reports` is installed. + +The :guilabel:`System > Reports` module contains information and diagnostic data +about your TYPO3 installation. It is recommended that you +regularly check the "Status Report" as it will inform you +about configuration errors, security issues, etc. + +This module has its own dedicated manual: +:ref:`TYPO3 Reports `. It can be extended by third-party +extensions. For example :composer:`apache-solr-for-typo3/solr` offers its own +section in the report module. + +.. _system-modules-log: + +Log +=== + +The TYPO3 CMS backend logs a number of actions performed by backend users: +login, cache clearing, database entries (creation, update, deletion), +settings changes, file actions and errors. A number of filters are +available to help filter this data. diff --git a/Documentation/Concepts/Cache/Index.rst b/Documentation/Concepts/Cache/Index.rst new file mode 100644 index 00000000..ae26a8c2 --- /dev/null +++ b/Documentation/Concepts/Cache/Index.rst @@ -0,0 +1,58 @@ +:navigation-title: Cache +.. include:: /Includes.rst.txt + +.. _cache: + +===== +Cache +===== + +.. _what-is-caching: + +What is caching in TYPO3? +========================= + +Caching is a process TYPO3 uses to temporarily store content and data to help +your website load faster and perform efficiently. Instead of regenerating +every page or content piece each time a visitor loads it, TYPO3 saves a +"cached" version. This way, the system can quickly serve this saved content, +reducing the load on the server and speeding up the response time for users. + +.. _how-to-clear-cache: + +How to clear caches in TYPO3? +============================= + +When you update content or make configuration changes, TYPO3 sometimes needs a +cache refresh to reflect these updates on the live site. +Here are the main ways to clear caches in TYPO3 13: + +* Clearing Cache in the backend: + + * In the Backend, look for the Clear cache icon, which resembles a + lightning bolt. You can find this in the `top bar `_. + + .. figure:: /Images/ManualScreenshots/ClearCache/Toolbar.png + + * For deeper cache management, you can use the Install Tool: + In :guilabel:`Admin Tools > Maintenance` you can find the option to + clear all caches. This will refresh everything, including caches + that aren't typically cleared through the backend top bar. + +* Clearing caches via Command Line + + For advanced users or developers, caches can also be cleared from + the command line: + + .. code-block:: bash + + ddev typo3 cache:flush + +.. _when-to-clear-cache: + +When should you clear caches? +============================= + +* If new content, images or text doesn't show up right away. +* When adjusting templates, extensions or system settings. +* While working on custom code, plugins or during site updates. diff --git a/Documentation/Concepts/Extensions/Index.rst b/Documentation/Concepts/Extensions/Index.rst new file mode 100644 index 00000000..59636f1e --- /dev/null +++ b/Documentation/Concepts/Extensions/Index.rst @@ -0,0 +1,98 @@ +:navigation-title: Extensions +.. include:: /Includes.rst.txt + +.. _concepts-extensions: + +========== +Extensions +========== + +Extensions are pieces of software developed by the TYPO3 community that extend +the functionality of a TYPO3 installation. Extensions come in many forms. +Some are only used for one site and contain mainly the theme of that site. +These extensions are called a :ref:`site package `. + +.. contents:: + +.. _concepts-extensions-composer: + +Extensions as Composer packages +================================ + +If you have worked with other PHP based projects you have probably run across +`Composer packages `__. + +Each TYPO3 extension is a Composer package of type `typo3-cms-extension`. +Extensions provided by the TYPO3 Core have type `typo3-cms-framework`. + +The minimum needed to define a TYPO3 extension is: + +A directory containing a file called :file:`composer.json` with at least +the following data: + +.. code-block:: yaml + :caption: packages/my_extension/composer.json + + { + "name": "myvendor/my-extension", + "type": "typo3-cms-extension", + "require": { + "typo3/cms-core": "^13.4", + }, + "extra": { + "typo3/cms": { + "extension-key": "my_extension" + } + } + } + +In order to be used the Extension should be +:ref:`installed via Composer `. + +There is a legacy way to +:ref:`install extensions without Composer ` but it +is not recommended anymore and not covered in this Guide. For this legacy way of +installation as well as for functional tests or to publish your extension your +need a file called :ref:`ext_emconf.php `. This topic +is also not covered here. + +.. _concepts-extensions-plugin: + +Extension vs plugin +=================== + +A TYPO3 extension is a similar concept to what is called a "Plugin" in WordPress. + +In TYPO3 a **plugin** is a **content element** that can be inserted into one or +all pages, typically providing dynamic or interactive functionality. + +The data to be displayed is usually supplied by a special PHP class called a +"controller". + +One **TYPO3 extension** can provide several plugins - or none at all. + +See also: :ref:`Plugins in TYPO3 (TYPO3 explained) `. + +Therefore in TYPO3 extensions and plugins are different concepts. + +.. _concepts-extensions-types: + +Types of extensions +=================== + +Internally the TYPO3 Core consists of mandatory and optional **system extensions** +each of them is a Composer package. All mandatory system extensions and a few +recommended ones will be automatically installed during the +:ref:`Installation `. Optional system +extensions can be installed via Composer or the Extension Manager in classic mode + +**Third party extensions** offer additional functionality. Find commonly used +extensions in the list of +:ref:`Recommended Extensions `. There are +extensions available for many different use cases, see also chapter +:ref:`How to find extensions `. + +A **site package** is an extension that you install locally and only in your +project. It contains the templates and assets as well as configuration for your +theme. It can also contain specialized plugins or other pieces of software used +only in this one project. diff --git a/Documentation/Concepts/Fluid/Index.rst b/Documentation/Concepts/Fluid/Index.rst new file mode 100644 index 00000000..650eb550 --- /dev/null +++ b/Documentation/Concepts/Fluid/Index.rst @@ -0,0 +1,209 @@ +.. include:: /Includes.rst.txt +.. highlight:: html + +.. _fluid-templates: + +=============== +Fluid templates +=============== + +.. contents:: + :caption: Content on this page + +.. _quick-introduction-to-fluid: + +Quick Introduction to Fluid +=========================== + +TYPO3 uses a template engine to generate the necessary HTML +markup for a website. The template engine provides data from +the backend, such as content or menu structures, which can +then be formatted with HTML. + +TYPO3's template engine of choice is called Fluid. Fluid's +syntax is inspired by the syntax of HTML or XML documents, +so it should already be familiar for users that already know +HTML. + +While Fluid is extendable by PHP developers, knowing any +PHP is not necessary to write templates for TYPO3. However, +Fluid comes with its own syntax rules, which need to be +obeyed when writing templates. + +.. _fluid-basics: + +Fluid Basics +============ + +.. _fluid-basics-accessing-variables: + +Accessing Variables +------------------- + +An integral part of Fluid are variables. This is the data +that is provided by the backend to be used inside your +template. You can access variables like this: + +.. code-block:: xml + +

{myHeadline}

+ + +If a variable contains subitems, these can be accessed +with the dot syntax: + +.. code-block:: xml + +

{myVariable.mySubItem}

+ +.. _fluid-basics-modifying-variables: + +Modifying Variables +------------------- + +You can also do some basic math operations: + +.. code-block:: xml + + {myNumber + 5} + + +If you need to modify the provided data even more, you +can use so-called ViewHelpers. These are functions that +take some input values, perform operations on those +values and then output the result. The following example +converts a variable to uppercase: + +.. code-block:: xml + + {myText} + +If you want to perform multiple operations on one variable +or if your templates become more complex, you might also +want to use :ref:`Fluid's inline notation `. + +.. _fluid-basics-control-structures: + +Using Control Structures +------------------------ + +ViewHelpers are also used for so-called control structures. +If you want to add a condition to your template, you can +use the :ref:`If ViewHelper `: + +.. code-block:: xml + + + The variable is "hello". + + +You can also use the :ref:`For ViewHelper ` to loop over an +array: + +.. code-block:: xml + +
    + +
  • This item is {myItem}.
  • +
    +
+ + +.. _ft-directory-structure: + +Directory structure +=================== + +Nowadays, Fluid templates in TYPO3 are always part of an +extension. As they are neither PHP code nor configuration files +and don't need to be accessed by end users, they are placed in the +`Resources/Private/` subfolder. + +.. directory-tree:: + :level: 6 + :show-file-icons: true + + * my_sitepackage + + * Resources + + * Private + + * Templates + + * Layouts + + * DefaultLayout.html + + * Pages + + * MyPage.html + + * Partials + + * MyPartial.html + + +The displayed folder structure is the convention for the location +of template files in a sitepackage extension. +However, be aware that these paths might vary slightly between +projects or extensions as they can be configured individually. + +.. _fluid-templates-folders-under-private: + +Templates, Layouts and Partials +------------------------------- + +.. uml:: + :caption: Fluid template structure + + frame layout as "Templates/Layouts/DefaultLayout.html" { + frame page as "Templates/Pages/MyPage.html" { + rectangle partial [ + Templates/Partials/MyPartial.html + (reusable code snippet) + ] + } + } + + +Fluid knows three different types of template files: **Templates**, +**Layouts** and **Partials**. Templates are always the starting point +and thus are always required, while both Partials and Layouts are optional. +However, these can be very helpful to improve the structure of +your templates and can avoid duplicate code, which makes +maintenance much easier. + +**Layouts** are a flexible method to reuse HTML markup that should wrap +around multiple template files. You could for example extract your +header and footer markup to a layout file and only keep the content +in-between in your template. Layouts automatically have access to all +variables defined within the template. + +**Partials** are an easy way to abstract and reuse code snippets in +your templates. They don't have access to all template variables, instead +the required variables need to be provided to the partial when it is used. + +.. _fluid-in-depth: + +Fluid in depth +============== + +.. card-grid:: + :columns: 1 + :columns-md: 2 + :gap: 4 + :class: pb-4 + :card-height: 100 + + .. card:: :doc:`ViewHelper reference ` + + * Official reference + * Complete list of available ViewHelpers + * In depth information on ViewHelper + + .. card:: :ref:`Introduction to Fluid ` + + * Official reference + * Complete list of available ViewHelpers + * In depth information on ViewHelper diff --git a/Documentation/Concepts/Frontend/Index.rst b/Documentation/Concepts/Frontend/Index.rst new file mode 100644 index 00000000..67324ad7 --- /dev/null +++ b/Documentation/Concepts/Frontend/Index.rst @@ -0,0 +1,26 @@ +:navigation-title: Frontend +.. include:: /Includes.rst.txt + +.. _frontend: + +======== +Frontend +======== + +.. figure:: /Images/Illustrations/frontend.png + +The frontend consists of web pages generated from content created in +the backend combined with Fluid templates in the installation. The Fluid +templating engine provides the glue between the content and the templates. + +A typical Fluid template contains HTML to structure the page and Fluid tags that +perform tasks on the page. For example, a simple web page that features a +navigation menu, a block of text and a company logo will contain three Fluid +tags. The three tags are: + +- A tag to insert a content element that contains the block of text. +- A tag that generates the main navigation menu. +- A tag to insert the company logo. + +Site assets, such as HTML, CSS and JavaScript, are stored in a +:ref:`site package `. diff --git a/Documentation/Concepts/Index.rst b/Documentation/Concepts/Index.rst index b1c39cbe..e12322a7 100644 --- a/Documentation/Concepts/Index.rst +++ b/Documentation/Concepts/Index.rst @@ -8,103 +8,120 @@ TYPO3 Concepts ============== -The backend & frontend -====================== +.. card-grid:: + :columns: 1 + :columns-md: 2 + :gap: 4 + :class: pb-4 + :card-height: 100 -TYPO3 is separated into two parts, the backend and the frontend. + .. card:: Backend -.. figure:: /Images/Illustrations/backend_frontend.png + The backend in TYPO3 is the administrative interface where users + manage content, configure settings, and control the overall + structure and functionality of the website. -The backend is the administrative side of the CMS, it is only accessible to -users who have been granted access. The frontend is what the visitor will see -when browsing the site. + .. card-footer:: :ref:`Backend ` + :button-style: btn btn-secondary stretched-link -Backend -======= + .. card:: Frontend -.. figure:: /Images/Illustrations/backend.png + The frontend in TYPO3 refers to the part of the website that visitors + see and interact with, including all visual elements and + content displayed in the browser. -The backend's main role is to enable users to create and publish content for -their site. + .. card-footer:: :ref:`Frontend ` + :button-style: btn btn-secondary stretched-link -The backend is also used to configure a TYPO3 installation. Domains, -languages and other information that determine how a site behaves are managed -via the backend. Tasks such as adding backend users and -managing third-party extensions also take place in the backend. + .. card:: Project Structure -Accessing The Backend ---------------------- + This chapter describes the structure of a TYPO3 project. -The backend can be accessed via :samp:`example.org/typo3`. + .. card-footer:: :ref:`Project Structure ` + :button-style: btn btn-secondary stretched-link -.. figure:: /Images/Illustrations/backend_login.png + .. card:: Extensions -By default, users see the CMS's Overview Dashboard when they log -in to the backend. + An extension in TYPO3 is an add-on module that enhances the core + functionality of the CMS, allowing you to add custom features or + tools to your website. -Backend Modules ---------------- + .. card-footer:: :ref:`Extensions ` + :button-style: btn btn-secondary stretched-link -.. container:: row + .. card:: Cache - .. container:: col-md-4 + The TYPO3 cache temporarily stores website data to improve loading + speed and reduce server load by delivering saved versions + of content to visitors. - .. figure:: /Images/Illustrations/backend_module.png + .. card-footer:: :ref:`Cache ` + :button-style: btn btn-secondary stretched-link - .. container:: col-md-8 + .. card:: TypoScript - The backend contains a range of modules that are grouped by task. User - access rights determine what modules are visible to users when they log into the backend. + TypoScript is the basic configuration language used to configure the + frontend output of a page in TYPO3. - - The Web group contains a set of modules that handle the creation and - management of both pages and content. + .. card-footer:: :ref:`Create a minimal page created by pure TypoScript ` + :button-style: btn btn-secondary stretched-link - - Site Management handles the setup of a site. From this module it is - possible to specify the site name, assign domains and select - languages. + .. card:: TSconfig - - Filelist provides a convenient way to view and manage files, including - documents, images and videos. + TSconfig is a configuration language used to configure the + TYPO3 backend. It has the same syntax as TypoScript. - - Admin Tools features a collection of administrative modules so that - you can perform various maintenance and upgrade tasks. This module also - contains the Extension manager, where you can enable and disable any - third-party extensions. + .. card-footer:: :ref:`TSconfig ` + :button-style: btn btn-secondary stretched-link - - The System group contains modules that allow administrators to manage - access to the backend, view error logs and provide information - specific to that installation. + .. card:: Fluid templating -Extensions ----------- + Fluid is the standard templating engine that is used with TYPO3. -.. figure:: /Images/Illustrations/extensions.png + .. card-footer:: :ref:`Quick introduction to Fluid ` + :button-style: btn btn-secondary stretched-link -Developed by the community, extensions provide a range of solutions that help -extend TYPO3. Extensions come in many forms - from small extensions that carry out -specific tasks to larger extensions that provide an entire suite of -functionality such as the TYPO3 Blog Extension. + .. card:: TCA + TCA (Table Configuration Array) in TYPO3 is a configuration system that + defines the structure, behavior, and appearance of database tables and + their fields in the backend, impacting how data is stored, validated, + and displayed. -Frontend -======== + .. card-footer:: :ref:`Quick introduction to TCA ` + :button-style: btn btn-secondary stretched-link + + .. card:: Webroot and assets + + In TYPO3 files that are displayed in the web browser, must - for + security reasons - be placed in certain directories. + + .. card-footer:: :ref:`Webroot and assets - where to put public files ` + :button-style: btn btn-secondary stretched-link + + +.. toctree:: + :caption: Topics + :glob: + :titlesonly: + :hidden: + + Backend/Index + Frontend/Index + ProjectStructure/Index + Extensions/Index + Cache/Index + TypoScript/Index + TSconfig/Index + Fluid/Index + TCA/Index + Assets/Index + */Index + * -.. figure:: /Images/Illustrations/frontend.png -The frontend combines the content created in the backend along with the -installation's HTML templates to generate web pages. -To achieve this, TYPO3 uses the Fluid templating engine that acts as the glue -between user generated content and design templates. -A typical Fluid template will contain HTML that defines the structure of the -page and Fluid tags that perform various tasks. -For example a simple web page that features a navigation menu, a block of text -and a company logo will contain three Fluid tags. -- A tag to insert the content element that contains the block of text. -- Another that generates the main navigation menu. -- A third tag to insert the company logo. -Site assets, such as HTML, CSS and JavaScript, are stored in a site package. diff --git a/Documentation/Concepts/ProjectStructure/Index.rst b/Documentation/Concepts/ProjectStructure/Index.rst new file mode 100644 index 00000000..602bca16 --- /dev/null +++ b/Documentation/Concepts/ProjectStructure/Index.rst @@ -0,0 +1,150 @@ +:navigation-title: Project Structure +.. include:: /Includes.rst.txt + +.. _project-structure: + +================= +Project structure +================= + +The following introduction refers to a Composer-based installation. + +.. directory-tree:: + :level: 2 + :show-file-icons: true + + + * config + + * sites + * system + + * packages + + * public/ + + * _assets/ + * fileadmin/ + * typo3/ + * typo3temp/ + + * assets/ + + * var/ + + * cache/ + * labels/ + * log + + * vendor + * composer.json + * composer.lock + +.. _files-and-directories: + +Files and directories on project level +====================================== + +The :file:`composer.json` contains the requirements for the TYPO3 installation and +the :file:`composer.lock` contains information about the concrete installed versions +of each package. For further information see +:ref:`here `. + +.. _directory-config: + +:file:`config/` +~~~~~~~~~~~~~~ +This directory contains installation-wide configuration. + +.. _directory-config-sites: + +:file:`config/sites/` +~~~~~~~~~~~~~~~~~~~~~ + +The folder :file:`config/sites/` contains subfolders for each site. + +The following files are processed: + +* :file:`config.yaml` for the :ref:`site configuration ` +* :file:`settings.yaml` for the :ref:`site settings ` + +.. _directory-config-system: + +:file:`config/system/` +~~~~~~~~~~~~~~~~~~~~~~ + +The folder :file:`config/system/` contains the installation-wide + +* :file:`settings.php`: :ref:`Configuration ` written + by the :guilabel:`Admin Tools > Settings` backend module +* :file:`additional.php`: :ref:`Manually created file ` + which can override settings from :file:`settings.php` file + +.. _directory-packages: + +:file:`packages/` +----------------- + +.. todo: Link sitepackage + +Each website running on TYPO3 should have a site package - a specialized an +:ref:`extension ` that contains all the templates, +styles, images and other assets required for the theme. + +The sitepackage is typically stored locally and then linked inte the :file:`vendor` +folder via a symlink. Many projects also require custom extensions, +which can also be stored in this location. + +.. _directory-public: + +:file:`public/` +--------------- + +This folder contains all files that are publicly available. Your webserver's +web root **must** point here. + +This folder contains the main entry script :file:`index.php` created by Composer +and might contain publicly available files like a :file:`robots.txt` and +files needed for the server configuration like a :file:`.htaccess`. + +.. _directory-public-fileadmin: + +:file:`public/fileadmin/` +~~~~~~~~~~~~~~~~~~~~~~~~~ + +This is a directory in which editors store files. Typically images, +PDFs or video files appear in this directory and/or its subdirectories. + +.. _directory-public-typo3: + +:file:`public/typo3/` +~~~~~~~~~~~~~~~~~~~~~ + +This directory contains the two PHP files for accessing the TYPO3 +backend (:file:`typo3/index.php`) and install tool (:file:`typo3/install.php`). + +.. _directory-var: + +:file:`var/` +------------ + +Directory for temporary files that contains private files (e.g. +cache and logs files) and should not be publicly available. + +.. _directory-var-log: + +:file:`var/log/` +~~~~~~~~~~~~~~~~ + +This directory contains log files like the +TYPO3 log, the deprecations log and logs generated by extensions. + +.. _directory-vendor: + +:file:`vendor/` +--------------- + +In this directory all extensions (system, third-party and custom) are installed +as Composer packages. + +For more information see :ref:`here `. diff --git a/Documentation/Concepts/TCA/Index.rst b/Documentation/Concepts/TCA/Index.rst new file mode 100644 index 00000000..8aa2f548 --- /dev/null +++ b/Documentation/Concepts/TCA/Index.rst @@ -0,0 +1,53 @@ +.. include:: /Includes.rst.txt + +.. _tca: + +=============================== +TCA (Table Configuration Array) +=============================== + +In TYPO3, TCA stands for Table Configuration Array. It is a core part of the +TYPO3 framework that defines how data is stored, displayed, and managed within +the TYPO3 backend. TCA is essential for customizing and configuring how TYPO3 +handles database tables and how content is presented in the backend interface. + +The TCA is essentially a large PHP array that +defines the structure of database tables and their fields within TYPO3. +It controls how data is displayed in forms, how records are listed, +and how data validation and processing are handled. TCA is used to configure +not only custom tables but also many of the core tables within TYPO3, +like tt_content, which manages page content. + +.. _tca-what-is:: + +What is TCA used for? +===================== + +TCA is used to: + +* TCA lets you define the fields of a database table, specifying data types, labels, default values, + and constraints. You can configure various input types like text fields, checkboxes, and dropdowns. +* TCA controls how forms are rendered in the TYPO3 backend. It defines the fields that are shown, their layout, + and whether they are required or optional. +* TCA allows developers to enforce validation rules on fields to ensure data integrity. For example, you can set a + field to only accept numeric values or enforce a specific character limit. +* TCA supports defining relationships between tables, such as one-to-one, one-to-many, and many-to-many relations. + It manages how records from related tables are linked and displayed in the backend. +* TCA handles which fields and records are editable, based on user roles and permissions. +* TCA extends existing tables and creates new ones with custom field definitions + +For example, when you create a new content element or extend an existing one, +you define the fields using TCA in the Configuration/TCA directory of your extension. +TYPO3 then uses this configuration to build the backend interface for editors. + +.. _tca-more-information: + +Where to find more information +============================== + +To learn more about TCA and how to use it in your TYPO3 projects, you can refer to the official +TYPO3 documentation: + +* :ref:`TYPO3 TCA Reference ` +* `Database records `_ +* `Relations between Extbase models `_ diff --git a/Documentation/Concepts/TSconfig/Index.rst b/Documentation/Concepts/TSconfig/Index.rst new file mode 100644 index 00000000..24a19e6e --- /dev/null +++ b/Documentation/Concepts/TSconfig/Index.rst @@ -0,0 +1,48 @@ +:navigation-title: TSconfig +.. include:: /Includes.rst.txt + +.. _tsconfig: + +======== +TSConfig +======== + +There are two types of TSconfig: user TSconfig and page TSconfig. + +.. _concepts_user_tsconfig: + +User TSconfig +============= + +User TSconfig is a set of configuration values that affect backend users. Best +practice is to set them globally (in a site package TSconfig file) but they can +also be set at the backend user or group level (then affecting all +users in that group). Things that can be configured are generally related to +permissions for basic functionality, for example, whether a user can clear the cache. + +There are also configuration values for the :ref:`TYPO3 Admin Panel ` +(which is shown in the frontend and not the backend). + + +.. _concepts_page_tsconfig: + +Page TSconfig +============= + +Page TSconfig is a set of configuration values that affect pages. It is often +set globally at the site level (in a site package TSconfig file) but can also be +set at the page level and then affects that page and all the pages below it in +the tree. The things that can be configured mainly affect the look and feel of the backend, +such as which fields are available when editing a content element. In general, +page TSconfig dictates what a user sees when they click on modules under `Web` in the +left-hand module bar that open a pagetree, e.g. Page, View, List. + +.. _tsconfig-more-information: + +Where to find more information +============================== + +To learn more about TSconfig and how to use it in your TYPO3 projects, refer to the official +TYPO3 documentation: + +* `Using and setting TSconfig `_ diff --git a/Documentation/Concepts/TypoScript/Index.rst b/Documentation/Concepts/TypoScript/Index.rst new file mode 100644 index 00000000..d35166fe --- /dev/null +++ b/Documentation/Concepts/TypoScript/Index.rst @@ -0,0 +1,168 @@ +:navigation-title: TypoScript +.. include:: /Includes.rst.txt + +.. _typoscript: + +========================================= +A minimal page created by pure TypoScript +========================================= + +TypoScript is the basic configuration language used to configure the frontend +output of a page in TYPO3. + +Learn more about TypoScript in +:ref:`Getting started: A quick introduction into TypoScript ` in +the :ref:`TypoScript Reference `. + +You can find detailed information about the +:ref:`TypoScript Syntax` and a listing of all objects +and with their properties and functions in the +:ref:`TypoScript Reference `. + +.. _typoscript-hello-world: + +"Hello world" example in TypoScript +=================================== + +To start, in the TYPO3 backend, create a standard page named +:guilabel:`Minimal example` just under (inside) the page tree TYPO3 logo +container. Add a basic :ref:`site configuration ` +for this page. + +Create a new TypoScript template record on this page. +Give the TypoScript template a title, and make it a root level template, +but do not include any static templates. + +In the TypoScript template Setup field, add the following three lines: + +.. literalinclude:: _minimal.typoscript + :caption: "Setup" field in the TypoScript record + :linenos: + +#. Is a comment. See the Syntax of comments in TypoScript: + :ref:`Comments `. +#. Assigns a top level object of type :ref:`PAGE ` + to a variable called `page`. +#. The `page` gets more options in this block. See the + :ref:`Blocks in the TypoScript syntax `. +#. Another comment. +#. Assigns a content object (also called "cObject") of type + :ref:`TEXT ` to + :confval:`index number 10 ` of `page`. It has the path + `page.10` if you want to change it later. +#. Assigns the value `Hello, world.` to the `value` property of the TEXT + cObject stored in path `page.10`. + +.. todo: Link to page how to clear cache once https://github.com/TYPO3-Documentation/TYPO3CMS-Tutorial-GettingStarted/issues/425 is resolved + +Clear all caches via the following console command or the button in the backend: + +.. code-block:: bash + + ddev typo3 cache:flush + +You can now preview the result. + +.. todo: Add link on how to preview a page. +.. todo: Link to how to clear all caches + +.. _typoscript-hello-world-result: + +Resulting web page +================== + +Here is the resulting web page HTML source for both the TypoScript-only and +the Fluid-based implementations. Notice how TYPO3 has added default markup +around the single line of content: + +.. literalinclude:: _minimal-output.html + :caption: Example frontend output + +.. _typoscript-active-debug: + +Debug the TypoScript in the backend module "Active TypoScript" +============================================================== + +Open the backend module +:guilabel:`Site Management > TypoScript > Active TypoScript`. +You can find the variable `page` that you just defined. The other variables have +been created by TypoScript loaded globally by the TYPO3 Core and system +extensions. They are some of the +:ref:`Reserved top-level objects `. + +.. _typoscript-play-around: + +Play around with TypoScript +=========================== + +You can now try out a couple of TypoScript commands to familiarize yourself +with TypoScript. + +Here are some examples: + +.. _typoscript-example-stdwrap: + +Wrap "Hello, world." in p-tags +------------------------------ + +.. literalinclude:: _stdwrap.typoscript + :caption: "Setup" field in the TypoScript record + :linenos: + :emphasize-lines: 4-7 + +4. As we now have several options for :ref:`TEXT ` object + with path `page.10`, we switch to the + :ref:`block syntax ` here. +5. Assign the text to the :confval:`value ` property of + the TEXT object. +6. We use the :confval:`stdWrap ` property of the TEXT + object to configure the :ref:`stdWrap ` function. + + In this function we use the option :confval:`wrap `. + It surrounds the current content of the TEXT object as set in line 5 with + the value defined here. The pipe `|` character is replaced by the text that corresponds to the value property. + +.. note:: + You may sometimes see that :confval:`stdWrap ` + functionality is directly applied to a TEXT object like this: + + .. literalinclude:: _stdwrap_direct.typoscript + :caption: "Setup" field in the TypoScript record + :linenos: + :emphasize-lines: 6 + + For backward compatibility reasons it is possible to apply stdWrap + properties directly to TEXT object. This is only true for TEXT objects, not + any other TypoScript cObject types. So we recommend to always use + stdWrap to stay consistent. + +.. _typoscript-example-page-title: + +Display the title of the current page on top +-------------------------------------------- + +.. literalinclude:: _page-title.typoscript + :caption: "Setup" field in the TypoScript record + :linenos: + :emphasize-lines: 3-7 + +3. We assign a second content object (also called "cObject") of type + :ref:`TEXT ` to + :confval:`index number 5 ` of `page`. As the index is + smaller than the index 10 of the TEXT object containing the text + "Hello World", it is displayed before the other object. +4. Uses the :ref:`block syntax ` + to apply properties to the TEXT object. +5. Uses the stdWrap property :confval:`field ` to fetch + the field `title` from the :ref:`database record ` + of the current page. +6. Uses the stdWrap property :confval:`wrap ` to wrap the + current string fetched in line 5 in :html:`

` tags. + +.. note:: + The order in which the content objects are defined in the TypoScript file + does not matter. They are output from the smallest index to the largest. + Therefore the following would give you the same output: + + .. literalinclude:: _page-title_reverse.typoscript + :caption: "Setup" field in the TypoScript record diff --git a/Documentation/Concepts/TypoScript/_minimal-output.html b/Documentation/Concepts/TypoScript/_minimal-output.html new file mode 100644 index 00000000..4da7bd62 --- /dev/null +++ b/Documentation/Concepts/TypoScript/_minimal-output.html @@ -0,0 +1,19 @@ + + + + + + Example site - Start page + + + +Hello, world. + + diff --git a/Documentation/Concepts/TypoScript/_minimal.typoscript b/Documentation/Concepts/TypoScript/_minimal.typoscript new file mode 100644 index 00000000..53cd6036 --- /dev/null +++ b/Documentation/Concepts/TypoScript/_minimal.typoscript @@ -0,0 +1,7 @@ +# Create the frontend output of the page +page = PAGE +page { + # Show a text with value "Hello world." + 10 = TEXT + 10.value = Hello, world. +} diff --git a/Documentation/Concepts/TypoScript/_page-title.typoscript b/Documentation/Concepts/TypoScript/_page-title.typoscript new file mode 100644 index 00000000..2920a178 --- /dev/null +++ b/Documentation/Concepts/TypoScript/_page-title.typoscript @@ -0,0 +1,13 @@ +page = PAGE +page { + 5 = TEXT + 5 { + stdWrap.field = title + stdWrap.wrap =

|

+ } + 10 = TEXT + 10 { + value = Hello, world. + stdWrap.wrap =

|

+ } +} diff --git a/Documentation/Concepts/TypoScript/_page-title_reverse.typoscript b/Documentation/Concepts/TypoScript/_page-title_reverse.typoscript new file mode 100644 index 00000000..1438758a --- /dev/null +++ b/Documentation/Concepts/TypoScript/_page-title_reverse.typoscript @@ -0,0 +1,13 @@ +page = PAGE +page { + 10 = TEXT + 10 { + value = Hello, world. + stdWrap.wrap =

|

+ } + 5 = TEXT + 5 { + stdWrap.field = title + stdWrap.wrap =

|

+ } +} diff --git a/Documentation/Concepts/TypoScript/_stdwrap.typoscript b/Documentation/Concepts/TypoScript/_stdwrap.typoscript new file mode 100644 index 00000000..3e6dddc4 --- /dev/null +++ b/Documentation/Concepts/TypoScript/_stdwrap.typoscript @@ -0,0 +1,8 @@ +page = PAGE +page { + 10 = TEXT + 10 { + value = Hello, world. + stdWrap.wrap =

|

+ } +} diff --git a/Documentation/Concepts/TypoScript/_stdwrap_direct.typoscript b/Documentation/Concepts/TypoScript/_stdwrap_direct.typoscript new file mode 100644 index 00000000..1e39475b --- /dev/null +++ b/Documentation/Concepts/TypoScript/_stdwrap_direct.typoscript @@ -0,0 +1,8 @@ +page = PAGE +page { + 10 = TEXT + 10 { + value = Hello, world. + wrap =

|

+ } +} diff --git a/Documentation/Extensions/CreateOwnExtension.rst b/Documentation/Extensions/CreateOwnExtension.rst new file mode 100644 index 00000000..49971297 --- /dev/null +++ b/Documentation/Extensions/CreateOwnExtension.rst @@ -0,0 +1,72 @@ +.. include:: /Includes.rst.txt + +.. _create-own-extension: + +========================= +Create your own extension +========================= + +In TYPO3, extensions allow you to expand the system’s functionality by +adding new features and customizing behavior according to your project's needs. + +Prerequisites +============= + +* A working :ref:`TYPO3 installation ` + using Composer. +* Familiarity with Composer +* Basic knowledge of PHP and TYPO3 development concepts +* CLI access to your TYPO3 instance + +.. _why-create-extension: + +Why create an extension? +======================== + +Creating an extension allows you to: + +* Add custom features and modules to TYPO3 +* Share functionality across multiple TYPO3 instances + + +.. _how-to-create-extension: + +How to start developing an extension +==================================== + +Developing an extension involves several steps, from setting up the extension +structure to implementing your custom functionality. +To guide you through this process, TYPO3 provides a detailed tutorial on +extension development. + +Please refer to this :ref:`link ` for +comprehensive, step-by-step instructions on how to create an extension. + + +.. _basic-steps: + +Basic steps to create an extension +================================== + +* Define the purpose of your extension. + + Determine what specific functionality or feature you want to add to TYPO3 + +* Create the extension skeleton + + Set up the basic structure for your extension. + +* Implement the desired features + + Add the necessary PHP classes, TypoScript configuration and templates + that will bring your extension's functionality to life. + +* Register the extension in TYPO3 + + Register your extension so TYPO3 can recognize it. This includes adding it + to your instance's configuration. + +* Test and refine + + Test your extension to ensure it works as expected and make any needed + adjustments. diff --git a/Documentation/Extensions/HowToFindExtensions.rst b/Documentation/Extensions/HowToFindExtensions.rst new file mode 100644 index 00000000..4c248efe --- /dev/null +++ b/Documentation/Extensions/HowToFindExtensions.rst @@ -0,0 +1,75 @@ +.. include:: /Includes.rst.txt + +.. _how-to-find-extensions: + +====================== +How to find extensions +====================== + +For beginners, finding the right extensions can enhance their TYPO3 experience +significantly. Here is a brief guide on how to search for extensions and where +to find the necessary information. + +#. `TYPO3 Extension Repository (TER) `__ + + The TYPO3 Extension Repository (TER) is an online platform, that hosts + thousands of extensions created by the TYPO3 Community. + Here you can: + + * Search by keyword + * Explore categories + * Filter results + +#. `Packagist `__ + + Packagist serves as the default package repository for PHP packages using Composer, + including TYPO3 extensions. You can search for TYPO3 extensions on Packagist + by entering relevant keywords or filter for extensions to narrow down your + results. Many TYPO3 extensions are available via Composer, which allows for + easier dependency management and installation. This is particularly useful + for developers looking to integrate extensions into their projects. + + +.. _tips-for-choosing-extensions: + +Tips for choosing the right TYPO3 extension +=========================================== + +Selecting the right extension is essential for ensuring that it meets your needs +and integrates well into your TYPO3 setup. Here are a few key factors to consider: + +* Compatibility: + + Verify that the extension is compatible with your version of TYPO3. + The TER and Packagist often display compatibility information. Choosing an + incompatible extension can lead to errors or unexpected issues. + +* Popularity and reviews: + + Extensions that are frequently used and have good reviews are often more + reliable. Look at download numbers, ratings, and user feedback in the TER + or on GitHub to get a sense of the extension’s quality. + +* Support and updates: + + Check if the extension is actively maintained and updated to work with the + latest TYPO3 versions. An extension with recent updates is more likely to + be secure and compatible with modern TYPO3 standards. + +* Documentation: + + Good documentation is essential, especially for beginners. Ensure that the + extension has clear setup and configuration guides, either in the TER, on + the developer's website, or on GitHub. + +* Performance and security: + + Extensions can affect your site’s performance, so choose extensions that + are optimized and well-coded. Additionally, check for any reported security + vulnerabilities, particularly for older extensions, to keep your site secure. + +* Customizability and flexibility: + + If you have specific needs, ensure that the extension is flexible enough to + be customized or configured as required. Some extensions provide PSR-14 events or + APIs, which are beneficial for custom development. diff --git a/Documentation/Extensions/Index.rst b/Documentation/Extensions/Index.rst index 56411b70..742116a3 100644 --- a/Documentation/Extensions/Index.rst +++ b/Documentation/Extensions/Index.rst @@ -6,52 +6,34 @@ Working With Extensions ======================= -.. container:: row m-0 p-0 +.. card-grid:: + :columns: 1 + :columns-md: 2 + :gap: 4 + :class: pb-4 + :card-height: 100 - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + .. card:: :ref:`How to find extensions ` - .. container:: card px-0 h-100 + Information on how to find extensions and what to consider when choosing. - .. rst-class:: card-header h3 + .. card:: :ref:`Installing Extensions ` - .. rubric:: :ref:`Managing Extensions` + Information on how to install extensions using Composer. - .. container:: card-body + .. card:: :ref:`Create your own extension ` - Information on how to find, install and manage extensions using Composer. + This guide contains information on how to create your own extension. - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + .. card:: :ref:`Recommended extensions ` - .. container:: card px-0 h-100 + An overview of recommended extensions. + +.. toctree:: + :hidden: + :titlesonly: - .. rst-class:: card-header h3 - - .. rubric:: `Installing Local Extensions `_ - - .. container:: card-body - - Information on how to install local extensions including sitepackages and custom - extensions using Composer. - - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 - - .. container:: card px-0 h-100 - - .. rst-class:: card-header h3 - - .. rubric:: :ref:`Managing Extensions - Legacy Guide` - - .. container:: card-body - - This guide contains information on how to manage extensions using the - TYPO3 backend and the TYPO3 Extension Repository (TER) without Composer. - This method of managing extensions is now deprecated. - - -.. toctree:: - :hidden: - :titlesonly: - - Management.rst - Installing Local Extensions - LegacyManagement.rst + HowToFindExtensions + InstallingExtensions + CreateOwnExtension + RecommendedExtensions diff --git a/Documentation/Extensions/Management.rst b/Documentation/Extensions/InstallingExtensions.rst similarity index 77% rename from Documentation/Extensions/Management.rst rename to Documentation/Extensions/InstallingExtensions.rst index 17bbffec..9de297ee 100644 --- a/Documentation/Extensions/Management.rst +++ b/Documentation/Extensions/InstallingExtensions.rst @@ -1,10 +1,10 @@ .. include:: /Includes.rst.txt -.. _extensions_management: +.. _installing-extensions: -=================== -Managing Extensions -=================== +===================== +Installing extensions +===================== Both system extensions and third-party extensions are managed using Composer. Composer handles the installation of the extension and also installs any dependencies that may be @@ -12,9 +12,6 @@ required. Composer is also used to uninstall extensions. .. _install-extension-with-composer: -Installing extensions -===================== - Find the Composer package name for an extension ----------------------------------------------- @@ -24,18 +21,20 @@ and search for the extension. On the extension page , under :guilabel:`"Composer support"`, will be the Composer command required to install that extension. -For example, the `news extension `__ -has the package name `georgringer/news`. +For example, the extension :t3ext:`news` +has the package name :composer:`georgringer/news`. Typically the package name will be vendor + slash + extension key. However, if the extension key contains an underscore, it is replaced with a dash in the package name. For example: -`Extension Builder `__: - -* **extension key**: `extension_builder` -* **vendor**: `friendsoftypo3` -* **Composer package name**: `friendsoftypo3/extension-builder` +:t3ext:`extension_builder`: +extension key + `extension_builder` +vendor + `friendsoftypo3` +Composer package name + :composer:`friendsoftypo3/extension-builder` Use :bash:`composer require` to install the extension @@ -118,9 +117,8 @@ Then run `composer require` to the install the local extension `my-local-extensi composer require vendor/my-local-extension:@dev -By executing this command, Composer locates `vendor/my-local-extension` and then symlinks -it to `typo3conf/ext/my-local-extension` once `composer install` is executed. -The setup from above defines that the extension is to be placed by composer into the folder `:file:packages/my-local-extension` +By executing this command, Composer locates `vendor/my-local-extension` once `composer install` is executed. +The setup from above defines that the extension is to be placed by composer into the folder :file:`packages/my-local-extension` if it has not been already there. @@ -132,13 +130,26 @@ Additional information Find out the extension key for an extension ------------------------------------------- -For any installed extension, the extension key can be found by looking at the -file system into the directory :file:`public/typo3conf/ext/`. -The directory name of the extension is the same as the extension key. +The extension key of an extension can be found in its :file:`composer.json`. + +.. code-block:: json + :caption: EXT:blog_example/composer.json + :emphasize-lines: 7 + + { + "name": "t3docs/blog-example", + "type": "typo3-cms-extension", + "..": "...", + "extra": { + "typo3/cms": { + "extension-key": "blog_example", + } + } + } + -Before installing an extension, the extension key can be found on its' page in the +Before installing an extension, the extension key can be found on its page in the `TYPO3 Extension Repository (TER) `__. -The extension key is listed on the top. For the -`extension news `__, -the extension key is `news`. +The extension key is listed on the top. For the extension +:t3ext:`news`, the extension key is `news`. diff --git a/Documentation/Extensions/LegacyManagement.rst b/Documentation/Extensions/LegacyManagement.rst deleted file mode 100644 index 8126a746..00000000 --- a/Documentation/Extensions/LegacyManagement.rst +++ /dev/null @@ -1,145 +0,0 @@ -.. include:: /Includes.rst.txt - -.. _extensions_legacy_management: - -================================== -Managing Extensions - Legacy Guide -================================== - -Installing an Extension using the Extension Manager -=================================================== - -In the backend: - -.. rst-class:: bignums - -1. Go to :guilabel:`"ADMIN TOOLS" > "Extensions"` -2. In the Docheader, select :guilabel:`"Get Extensions"` -3. Click :guilabel:`"Update now"` - - The button is on the top right. - -4. Enter the name of the extension in the search field -5. Click on :guilabel:`"Go"` -6. Click on the Action icon on the left for the extension: - - :guilabel:`"Import and Install"` - - Now the extension is installed, but not activated. To activate: - -7. Choose :guilabel:`"Installed Extensions"` in the Docheader -8. Click on the icon with a :guilabel:`"+"` sign for your extension - in the :guilabel:`"A/D"` column. - -.. _uninstall_extension_without_composer: - -Uninstall an Extension Without Composer -======================================= - -If you installed TYPO3 via composer you should uninstall Extensions via composer. - -Check Dependencies ------------------- - -First find out, which other extensions and functions of your TYPO3 installation are dependent on the extension you -want to uninstall. You can find out about the dependencies by checking the -`Extension Repository `__. Look for the extension -you want to uninstall and the others you have installed. Read in each extensions manual the sections 'Dependencies' and -'Reverse dependencies'. - -Check whether any referrals have been made to the extension in any setup, config or other TypoScript files. Check if you -included a plugin from the extension in your web site. Think of the results of removing them and finally do it. - -If you are working locally or on a test server you might as well try to uninstall the extension. The Extension Manager -warns you about dependencies that are written in an extensions :file:`ext_emconf.php` constraints section. Note however -that you depend on the extensions developers faithfully noting all dependencies in this config file. - -If you get an exception and can't even access the Extension Manager anymore because of it, you can uninstall / install -extensions manually with :file:`PackageStates.php` as a last resort, see :ref:`uninstall-extension-manually` - -.. tip:: - Be sure not to uninstall extensions by trial and error on production systems, especially not under time pressure. - -.. _uninstall-extension-backend: - -Uninstall / Deactivate Extension via TYPO3 Backend --------------------------------------------------- - -.. include:: ../Images/AutomaticScreenshots/ExtensionManager/UninstallExtension.rst.txt - - -Log into the TYPO3 Backend and open the Extension Manager ('Ext Manager'). From the menu choose 'Install extensions'. -You get an overview about installed extensions. - -On the left side you see an icon, which shows the status of each extension, and what you can do: - -* Extension Install Icon with plus sign: The extension is not installed. (Click once to install) -* Extension Uninstall Icon with minus sign: The extension is installed and running. (Click once to uninstall) - -Next to the extension you want to uninstall click on Extension UnInstall Icon. After some seconds the icon changes to -the grey Extension Install Icon. - - -.. _remove-extension-backend: - -Remove an Extension via the TYPO3 Backend --------------------------------------------------- - -After successfully uninstalling an extension via the Extension Manager you can permanently remove the extension by -clicking on the waste-basket symbol "Remove" beside the extensions entry in the Extension Manager. - -.. _uninstall-extension-manually: - -Uninstalling an Extension Manually ----------------------------------- - -At times an extension causes a problem and the TYPO3 Backend can not be opened anymore due to it. In such a case the -extension can be uninstalled manually. This is not common practise but a last resort. - -Since LTS8 this can be done by removing the extensions configuration from the file :file:`PackageStates.php` - -.. rst-class:: bignums - -#. Open the file :file:`typo3conf/PackageStates.php` -#. Search for your ext_key in the array. - - .. code-block:: php - :caption: typo3conf/PackageStates.php - - 'ext_key' => [ - 'packagePath' => 'typo3conf/ext/ext_key/', - ], - ... - -#. Remove the entry. - -.. _remove-extension-manually: - -Removing an Extension Manually ------------------------------- -Removing an extension manually is not common practice and should only be done as a last resort. You should only remove -an extension that you uninstalled successfully. Make a backup first. Then you can permanently -remove an extension by removing its folder at :file:`typo3conf/ext/[extensionname]`. The corresponding database tables -can be removed in the :guilabel:`Install Tool -> Important Actions -> Database analyzer -> Compare current database -with specification`. - -Additional Information -====================== - -The following is independent of whether you install with Composer or without. - -.. _find-out-extension-key: - -Find out the Extension Key for an Extension -------------------------------------------- - -Again, go to the `Extension Repository `__, -and search for the extension. - -The extension key is listed on the top. For the -`extension news `__, -the extension key is `news`. - -You can also see the extension key in your file system in the directory -:file:`public/typo3conf/ext/`. The directory name of the extension is the -same as the extension key. diff --git a/Documentation/Extensions/RecommendedExtensions.rst b/Documentation/Extensions/RecommendedExtensions.rst new file mode 100644 index 00000000..232b9135 --- /dev/null +++ b/Documentation/Extensions/RecommendedExtensions.rst @@ -0,0 +1,85 @@ +.. include:: /Includes.rst.txt + +.. _recommended-extensions: + +====================== +Recommended Extensions +====================== + +Here's a selection of recommended extensions that provide essential features, +streamlined workflows, and powerful enhancements for TYPO3 development. + +.. _development-extensions: + +Development +=========== + +* TYPO3 console: :composer:`helhum/typo3-console` + + TYPO3 Console is a powerful command-line tool that simplifies many backend + tasks for TYPO3. It allows developers to efficiently manage caches, + extensions and system maintenance from the command line, making it an + essential tool for automated workflows. + +.. _content-elements: + +Content elements +================ + +* Custom content elements: :composer:`mask/mask` + + Mask is an extension that lets developers create custom content elements + with ease, directly from the TYPO3 backend. This is ideal for projects that + require unique, structured content elements that are easy for editors to + use and manage. + +* Content Blocks: :composer:`friendsoftypo3/content-blocks` + + Content Blocks enable the creation of reusable content elements that can be + added to pages in a modular way. This extension is beneficial for sites + requiring flexible, component-based design, and simplifies content + structuring for editors. + +* Containers: :composer:`b13/container` + + The Container extension offers a grid layout system, allowing developers to + group multiple content elements into a container. This helps organize page + layouts more flexibly, especially useful for responsive or complex designs. + +.. _news-extension: + +News +==== + +* News Management: :composer:`georgringer/news` + + The News extension is a feature-rich solution for managing news articles + and blog posts within TYPO3. It offers a comprehensive set of tools for + categorizing, tagging, and displaying news content, making it perfect for + content-heavy sites. + +.. _search-extensions: + +Search +====== + +* Enterprise Search Integration: :composer:`apache-solr-for-typo3/solr` + + Apache Solr for TYPO3 provides a powerful, scalable search solution for + TYPO3 sites. Leveraging Apache Solr, this extension enables advanced search + functionality and is ideal for large or data-intensive projects where + high-performance search is required. + +* Built-in TYPO3 Search: :composer:`typo3/cms-indexed-search` + + The Indexed Search extension provides an out-of-the-box search feature for + TYPO3. It is straightforward to set up and integrates well with TYPO3's + core, making it a great solution for sites that require basic search + without additional configuration. + +* Elasticsearch Integration: :composer:`pagemachine/searchable` + + Searchable for TYPO3 provides an integration of the Elasticsearch engine, + known for its high-speed search capabilities and scalability. This extension + is ideal for large-scale websites or applications that demand robust search + functionality. diff --git a/Documentation/FirstProject/CreateRootPage.rst b/Documentation/FirstProject/CreateRootPage.rst new file mode 100644 index 00000000..c123f889 --- /dev/null +++ b/Documentation/FirstProject/CreateRootPage.rst @@ -0,0 +1,69 @@ +:navigation-title: Root page +.. include:: /Includes.rst.txt + +.. index:: site, domain configuration, languages + +.. _create-root-page: + +========================= +How to create a root page +========================= + +In TYPO3, the root page is the starting point for any website. +It serves as the top-level page in the page tree and is essential for +configuring the site and making it available to users. In this tutorial, +you will learn how to create a root page in TYPO3 v13. + +.. note:: + * You have TYPO3 :ref:`installed ` + and can log into the backend. + * You have access to the Page module and permission to create pages. + * You are familiar with the basic layout of the TYPO3 backend. + +.. rst-class:: bignums-xxl +#. Access the Page module + + Once you log into the TYPO3 backend, locate the :guilabel:`Web > Page` module on the left-hand + side of the screen. Click on the Page module to open the page tree. + + .. figure:: /Images/ManualScreenshots/CreateRootPage/PageModule.png + +#. Create a new root page + + * In the page tree, right-click on the "root level" or the top node of the page + tree (if no pages exist yet, this will likely be labeled as "site" or similar). + A context menu will appear. + + * From the context menu, select "New". This will open a form for creating a new + page. + + .. figure:: /Images/ManualScreenshots/CreateRootPage/CreateNewPage.png + + * Alternatively, you can select a new page from the menu above the + page tree using drag & drop and place it in the page tree. + + .. figure:: /Images/ManualScreenshots/CreateRootPage/PageMenu.png + + +#. Set the page type to root + + Now, you need to configure the new page: + + * In the form that appears, give your new page a name. + This will be the label of your root page in the page tree. + + * Under the :guilabel:`Behaviour` tab, look for the checkbox called + "Use as Root Page". Ensure this is checked. + + .. figure:: /Images/ManualScreenshots/CreateRootPage/SetRootPage.png + +#. Save the page + + Once you have filled in the necessary information and selected the + "Use as Root Page" option, click the "Save" button at the top of the + form. Your new root page will now appear in the page tree on the left. + + .. note:: + By default, a newly created page is disabled. You need to enable it to + make the page publicly visible. + diff --git a/Documentation/FirstProject/CreateSitePackage.rst b/Documentation/FirstProject/CreateSitePackage.rst new file mode 100644 index 00000000..e8fbc257 --- /dev/null +++ b/Documentation/FirstProject/CreateSitePackage.rst @@ -0,0 +1,61 @@ +.. include:: /Includes.rst.txt + +.. _creating-a-site-package: + +======================= +Creating a site package +======================= + +The next step is to create a site package. In TYPO3, a site package is a +structured package that organizes the layout, design, and essential +configuration settings for your website. By using a site package, you can +manage all customizations in one place, which keeps your changes organized and +makes your project easier to maintain, even through TYPO3 updates. + +.. _how-to-create-a-site-package: + +How to create a site package +============================ + +To create a site package, you have two main options: + +* Manual creation: For full control over your project's setup, you can follow + the detailed instructions in the + :ref:`TYPO3 site package tutorial `. + +* Using the `Site Package Builder `__: + If you are looking for a faster start, TYPO3's official Site Package Builder + is a handy tool. You can choose whether your site package should be based on + the `Bootstrap Package `__ or + :ref:`fluid_styled_content `. + + Fill in the fields in the form, download the site package and save it + in the :path:`packages` directory. Then require the site package using Composer: + + .. code-block:: bash + + composer require vendor\sitepackagename + + and include the sets in your `site configuration `_. + + .. figure:: /Images/ManualScreenshots/CreateSitePackage/SitePackageBuilder.png + :alt: Screenshot of the site package builder at get.typo3.org demonstrating the installation steps + + Click on "Composer-based TYPO3 installation" for the commands to install the site package + + +.. _pros-and-cons-of-sitepackage-builder: + +Pros and cons of using the Site Package Builder +=============================================== + +Pros: + +* The Site Package Builder is particularly useful for beginners or projects + that need a quick start. + +Cons: + +* A large number of unnecessary, mostly empty files are generated. +* Depending on your prior knowledge, you may use code that you + do not fully understand. diff --git a/Documentation/FirstProject/Index.rst b/Documentation/FirstProject/Index.rst new file mode 100644 index 00000000..60de9556 --- /dev/null +++ b/Documentation/FirstProject/Index.rst @@ -0,0 +1,63 @@ +.. include:: /Includes.rst.txt + +.. _first-project-setup: + +=================== +First project setup +=================== + +.. card-grid:: + :columns: 1 + :columns-md: 2 + :gap: 4 + :class: pb-4 + :card-height: 100 + + .. card:: The "Introduction Package" + + The "Introduction Package" is a great place to start if you are looking + to test drive TYPO3 and see a prebuilt site that contains + a range of example page templates and content. + + .. card-footer:: :ref:`Set up a prebuild site ` + :button-style: btn btn-secondary stretched-link + + .. card:: :ref:`Root page ` + + Learn how to create the first page, the so called root page. + It will be your future home page. + + .. card-footer:: :ref:`Create a root page ` + :button-style: btn btn-secondary stretched-link + + .. card:: :ref:`Create a new site configuration ` + + Create a site configuration defining side wide information like + title, root path and default language. + + .. card-footer:: :ref:`Create a site configuration ` + :button-style: btn btn-secondary stretched-link + + .. card:: :ref:`Settings ` + + Learn where to apply settings for your system. + + .. card-footer:: :ref:`Manage settings ` + :button-style: btn btn-secondary stretched-link + + .. card:: :ref:`Creating a site package ` + + Next steps after setting up your first project. + + .. card-footer:: :ref:`Creating a site package ` + :button-style: btn btn-secondary stretched-link + +.. toctree:: + :hidden: + :titlesonly: + + IntroductionPackage/Index + CreateRootPage + SiteManagement/Index + Settings + CreateSitePackage diff --git a/Documentation/FirstProject/IntroductionPackage/Index.rst b/Documentation/FirstProject/IntroductionPackage/Index.rst new file mode 100644 index 00000000..ee5f9431 --- /dev/null +++ b/Documentation/FirstProject/IntroductionPackage/Index.rst @@ -0,0 +1,93 @@ +.. include:: /Includes.rst.txt + +.. _introductionpackage_index: + +==================== +Introduction Package +==================== + +If you are using TYPO3 for the first time you may want to +see a working example of the CMS before you start work on +your own project. + +The Official Introduction Package :composer:`typo3/cms-introduction` +showcases many of +TYPO3's capabilities and gives you the ability to try them first hand. +The Introduction Package utilizes the extension :composer:`bk2k/bootstrap-package` +to generate multiple responsive HTML templates that you can select and try +out. + +It also features examples of the different kinds page content that you +typically see on a website, such as paragraphs of text, images, tables +and navigation menus. + +.. _installing-introduction-package-with-composer: +.. _installing-distributions-wit-composer: + +Installing the Introduction Package +=================================== + +To install the Introduction Package run the following command: + +.. tabs:: + + .. group-tab:: bash + + .. code-block:: bash + + composer require typo3/cms-introduction + + .. group-tab:: powershell + + .. code-block:: powershell + + composer require typo3/cms-introduction + + .. group-tab:: ddev + + .. code-block:: bash + + ddev composer require typo3/cms-introduction + +Then run: + +.. tabs:: + + .. group-tab:: bash + + .. code-block:: bash + + vendor/bin/typo3 extension:setup + + .. group-tab:: powershell + + .. code-block:: powershell + + vendor/bin/typo3 extension:setup + + .. group-tab:: ddev + + .. code-block:: bash + + ddev typo3 extension:setup + +This will set up the extension ready for immediate use. + +.. _install-intro-first-steps: + +First steps with the Introduction Package +========================================= + +The "Introduction Package" creates a number of pre-built pages within the page tree. The top level page is named "Congratulations". + +.. rst-class:: bignums-xxl + +#. Click on "Congratulations" in the page tree. + + +#. View the page in the frontend: + + Click on the :guilabel:`"View webpage"` icon (with an eye) to view the page + in the frontend. + +.. include:: /Images/AutomaticScreenshots/Frontend/IntroductionPackageHome.rst.txt diff --git a/Documentation/FirstProject/Settings.rst b/Documentation/FirstProject/Settings.rst new file mode 100644 index 00000000..1a421f03 --- /dev/null +++ b/Documentation/FirstProject/Settings.rst @@ -0,0 +1,129 @@ +.. include:: /Includes.rst.txt + +.. _settings: + +======== +Settings +======== + +There are different possibilities to make settings to your installation or +parts of it. + +.. contents:: + +.. _settings_global: + +Global settings +=============== + +Global settings can be made in the modules under the :guilabel:`Admin Tools` section, +which updates the :file:`config/system/settings.php` file. Alternatively, settings can +be overridden manually in the :file:`config/system/additional.php` file. Avoid making +manual changes to the first file mentioned, as it is auto-managed. + +.. todo: Also explain Configuration Presets and Feature Toggles here? + +.. _settings_global-extension: + +Global extension settings +------------------------- + +Global settings for installed extensions, including some that are part of a +default installation, can be made in the +:guilabel:`Admin Tools > Settings > Extension Configuration` submodule. + +.. figure:: /Images/ManualScreenshots/AdminTools/ExtensionConfiguration.png + :alt: Screenshot demonstration the location of the Extension Configuration in module "Settings" + + You can find the global Extension Configuration in module Settings + +After opening the submodule, you can make your changes and hit "Save": + + +.. figure:: /Images/ManualScreenshots/AdminTools/ExtensionConfigurationDetail.png + :alt: Screenshot of the Extension Configuration submodule + + Make changes and hit "Save". + +.. note:: + The :file:`config/system/settings.php` file has to be writable. If you keep + it under version control, make sure to commit and push your changes. + +.. _settings_site: + +Site handling +============= + +One TYPO3 installation can contain more then one site. Even if you only have one +site in your installation, important settings can be made in the Site Configuration. +Read more about this in the chapter: :ref:`siteconfiguration`. + +Site configurations are stored in a file called +:file:`config/sites/my-site/config.yaml` and can be edited from the +:guilabel:`Site Management > Sites` module. Each site must have a unique key, called +the "Site Identifier". For demonstration purposes, we use "my-site" here. The +Site Identifier is also used as the path for saving the configuration file. + +.. figure:: /Images/ManualScreenshots/SiteManagement/SiteIdentifier.png + :alt: Screenshot demonstration field "Site Identifier" in a site configuration + + The Site Identifier can be changed in this field + +Find detailed information in :ref:`TYPO3 Explained, Site handling `. + +.. _settings_site_settings: + +Site settings +------------- + +.. versionadded:: 12.0 + Starting with TYPO3 v12 site settings can be saved in a file called + :file:`config/sites/my-site/settings.yaml`. + +Settings that only affect one site can be made in file +:file:`config/sites/my-site/settings.yaml`. If that is necessary we will refer +to this file in the documentation and authors of third party extensions might +also refer you to it. Find detailed information in +:ref:`TYPO3 Explained, Site settings `. + +.. _settings_typoscript: + +Page wide frontend definitions: TypoScript +========================================== + +.. versionchanged:: 12.0 + This module was renamed. With TYPO3 v12 it was moved from + :guilabel:`Web > Template` to :guilabel:`Site Management > TypoScript`. + +TypoScript is a configuration language used to configure both the frontend +output and the backend of a TYPO3 web site. TypoScript can be managed in a TypoScript +record, which can be found in the :guilabel:`Site Management > TypoScript` module. + +.. figure:: /Images/ManualScreenshots/SiteManagement/TypoScriptModule.png + :ref: Screenshot demonstrating the TypoScript overview module + + Edit the TypoScript record by clicking on the name of the record in the overview module + +TypoScript affects the page on which it is defined, and any subpages. In most cases, +TypoScript is only defined on the root page of a site. In this case. the +settings made here affect the entire page. + +You can also navigate between the different submodules by using the submodule menu: + +.. figure:: /Images/ManualScreenshots/SiteManagement/TypoScriptModuleMenu.png + :ref: Screenshot demonstrating the TypoScript module and its location of the submodule menu + + Switch between the different submodules of the TypoScript module. + +See also the complete :ref:`TypoScript Reference `. + +.. todo: Describe TypoScript in more detail? + +.. _settings_page_tsconfig: + +Page wide backend settings: Page TSconfig +========================================= + +Read more about this topic in :ref:`Setting page TSconfig `. + +.. todo: Add screenshots, mention the module etc? diff --git a/Documentation/FirstProject/SiteManagement/Index.rst b/Documentation/FirstProject/SiteManagement/Index.rst new file mode 100644 index 00000000..2dc15522 --- /dev/null +++ b/Documentation/FirstProject/SiteManagement/Index.rst @@ -0,0 +1,43 @@ +.. include:: /Includes.rst.txt + +.. _site-management: + +=============== +Site Management +=============== + +.. _siteconfiguration: +.. _siterecords: +.. _site-configuration: + +Create a new site configuration +=============================== + +Before creating a site configuration, you should have :ref:`created the root page ` of +your site in the page tree. + +The site configuration is stored in a file called +:file:`config/sites/my_site/config.yaml`. For your convenience, you can +edit this file using the backend module: :guilabel:`Site Management > Sites`. + +Available root pages should be listed in this module. Click +the button :guilabel:`Add new site configuration` next to the relevant +page to create a site configuration for it. + +In the next step, you can enter some basic information about the site. + +The site identifier can be arbitrary, so we use "example_site" here. The +entry point should be a URL pointing to the web root. In this example, it is +a local URL generated by `DDEV `__. + +In the next two tabs, you can define error handling, such as a custom 404 page, +and static routes, for example, to a :file:`robots.txt` file. + +You can read more about :ref:`Site Handling ` in +the reference "TYPO3 Explained". + +After saving, a new file should be created in your project: + +.. literalinclude:: _config.yaml + :language: yaml + :caption: config/sites/example_site/config.yaml diff --git a/Documentation/FirstProject/SiteManagement/_config.yaml b/Documentation/FirstProject/SiteManagement/_config.yaml new file mode 100644 index 00000000..944a9012 --- /dev/null +++ b/Documentation/FirstProject/SiteManagement/_config.yaml @@ -0,0 +1,14 @@ +base: 'https://example-typo3131.ddev.site' +languages: + - + title: English + enabled: true + locale: en_US + hreflang: '' + base: /en/ + websiteTitle: '' + navigationTitle: English + flag: en-us-gb + languageId: 0 +rootPageId: 7 +websiteTitle: 'My example page' diff --git a/Documentation/Glossary/Index.rst b/Documentation/Glossary/Index.rst new file mode 100644 index 00000000..9b680c1b --- /dev/null +++ b/Documentation/Glossary/Index.rst @@ -0,0 +1,354 @@ +.. include:: /Includes.rst.txt + +.. _getting-started-glossary-index: + +======== +Glossary +======== + +.. todo: Note for contributing +.. todo: Links for further information +.. todo: Add missing descriptions + +.. glossary:: + + Apache + `Apache httpd `__ + is a web server. Others are Nginx, Microsoft IIS and Caddy Server (`see system requirements `__). + + Admin Tools + Admin tools are a group of backend modules. + These include maintaining the installation, adjusting settings, executing upgrade wizards, + checking environment information and setting up extensions. + + Admin User + + Assets + :ref:`Assets ` are media resources such as images, videos and documents that are uploaded and managed in TYPO3 system. + Also, extensions can include assets which used in the frontend, like icons or JavaScript libraries. + + Application context + In TYPO3, the :ref:`Application Context ` is the environment + (e.g., Development, Production) the site is running in, which sets things like debugging or + performance optimization accordingly. This helps tailor TYPO3 behavior for each stage of deployment. + + Backend + The :ref:`backend ` is the administrative interface for editors and administrators. + + Block syntax + In TypoScript you can use block syntax to enhance the readability of your code. + + Bootstrap + `Bootstrap `__ is a popular, beginner-friendly framework for building responsive, mobile-first + websites using pre-designed HTML, CSS, and JavaScript components. + + Class + In PHP we can define classes located in the directory + EXT:my_extension/Classes. If the namespace is correct they will be loaded + automatically. + + Cache + :ref:`Caches ` are used to improve website performance by storing frequently + accessed data. TYPO3 has multiple caches for various performance-relevant areas in both the frontend and backend. + + cObject + A :ref:`cObject (content object) ` is a core concept used to render content types on a website, + allowing developers to define and control how content elements like text, images, and menus are displayed. + + Character Set + A `character set `__ + is a collection of letters and symbols used in a writing system. + + Composer + `Composer `__ is a tool used in TYPO3 to install, update, and manage extensions and libraries, + making it simple to handle dependencies and keep the system up to date. + + Compression + In TypoScript you can compress css and js files. + + CMS + A CMS, or Content Management System, is software like TYPO3 that allows users to create, edit, + and manage website content without needing to code, making it easier to maintain and update websites. + + Content Security Policy + A Content Security Policy (CSP) + makes the frontend and backend more secure from attacks by restricting the rules + governing what a user of a website or TYPO3 backend can do. CSP is a W3C standard + valid for everyone. TYPO3 provides a backend module that manages + this security feature. CSP helps to protect your website from + attacks by controlling which resources (like scripts, styles, or images) are + loaded, reducing the risk of malicious content being injected. To + configure CSP go to :ref:`Content Security Policy `. + + CType + CType refers to Content Type and is a database column field in a very + important database table called 'tt_content' which stores all the content elements. + The column defines the name of the content element, and influences how it is + displayed in the backend and frontend. + + Database + A database stores and manages all a website's content, settings, and configurations, + allowing the system to retrieve and display data dynamically on the site. + + Documentation + Documentation consists of detailed guides and instructions to help users and developers understand, + set up, and customize TYPO3, making it easier to work with the system effectively. + + Docker + `Docker `__ is a tool that runs TYPO3 in a consistent and isolated environment by packaging it with all its + dependencies, making setup, deployment, and development easier and more reliable. + + DDEV + `DDEV `__ is a local development tool that simplifies setting up a TYPO3 environment on your computer, making it + easy to start developing, testing, and managing TYPO3 projects without complex configuration. + + Deployment + :ref:`Deployment ` refers to the process of transferring your website’s code, content, and settings from a + development environment to a live server, making it accessible to users online. + + Debug mode + Debug Mode is a feature that helps developers find and fix errors by showing detailed information + about a website’s processes and any issues with the code. + + Developer + A developer is someone who builds, customizes, and maintains a website, creating new features, + fixing issues, and ensuring everything works smoothly for users and administrators. + + Dependencies + In Composer there are usually dependencies that have to be installed too. + + Editor + An editor is a user who creates and manages content on a website, such as adding text, images, and links, + without needing technical or coding knowledge. + + Extension + An :ref:`extension ` is an add-on that provides additional features or functionality to a website, + allowing you to customize and expand what TYPO3 can do. + + Extension Configuration + + Error page + An error page is a custom page that is displayed to users when something goes wrong, + such as when a page is not found (404) or there is a server issue (500). + + Fluid + Fluid is a PHP template engine and is the de facto standard for any + HTML-based output in the TYPO3 CMS. See :ref:`Fluid Reference` + for further details. + + Fileadmin + Fileadmin is a folder structure where you can organize and manage all the files, such as images, + documents, and media, that are used on your website. + + Filelist + The filelist is a backend module where you can upload files and + manage your uploaded files. + + FAL + :ref:`File abstraction layer (FAL) ` is a + system that manages and organizes media files, allowing you to easily store, + access, and use files across the entire website in a standardized way. + + Frontend + The :ref:`frontend ` is the publicly accessible part of a website. + + Frontend login + You can implement a frontend login on your website. To + implement this use the system extension felogin provided by TYPO3. + + Fluid styled content extension + The fluid styled content extension is a + system extension provided by TYPO3 that gives you default content elements, + palettes and backend fields. That is the reason why you can use bodytext, + image and assets without having to do a database compare. + + Global TYPO3 variables + In TYPO3 there is a global TYPO3 configuration array + ($GLOBALS) where you can declare :ref:`global settings/variables ` + for your TYPO3 instance. There are many different options. For example: BE - + backend configuration, DB - database connections and many more. + + Integrator + An integrator is a person who connects and configures external + systems, services, or data sources with the TYPO3 platform, ensuring smooth + integration and functionality across different tools and applications. + + Installtool password + The Install Tool password is a secure password used to + access the Install Tool, a tool that allows administrators to configure and + manage the TYPO3 system, including database connections and system settings. + + Local development + It is common practice to develop locally on your local + machine first. Later when you are sure about your website you can think about + deployment and setting up a production environment which has better performance and + Content Security Policy settings. + + Local extension + + LTS + LTS (Long-Term Support) in TYPO3 refers to a version of the software + that receives extended updates and security fixes for several years, ensuring + stability and reliability for businesses and long-term projects. + + Language file + A language file is a file that contains translated text for + a website, allowing content to be displayed in different languages based + on a user’s preferences or settings. + + Layouts + Layouts are templates that define the structure and design of + content elements on a website, allowing you to customize how content is + presented on different pages. + + Log Folder + The log folder is a directory where system logs are stored, + helping administrators track errors, events, and activities to diagnose and + troubleshoot issues with a website. + + Legacy installation + + Production server + A production server is the live server where a fully + developed website is hosted, making it accessible to users on the internet, and + it typically has optimized settings for performance and security. + + Partial + A partial is a small or large HTML code snippet that can be used + often and in multiple places. Here we explain it within + :ref:`the page layout file `. + + Public + + Permissions + Permissions control what users can see and do within a system, + such as editing content, managing files, or configuring settings, based on their + assigned roles and access levels. + + PHP + PHP is a programming language used in TYPO3 to create dynamic web pages + and handle server-side logic, enabling features like content management, user + interactions, and database access. + + Page tree + The Page Tree is a hierarchical structure that represents pages and + their subpages on a website, allowing you to easily organize and manage content and + navigation. + + Resources + In TYPO3, resources refer to files such as images, documents, and + other media that are used on a website, which are stored and managed through the + File Abstraction Layer (FAL) for easy access and organization. + + Root page + The :ref:`Root Page ` is the top-level page in the Page Tree, serving as + the starting point for a website's structure and is the foundation for the site's + overall configuration and settings. + + Reference index + The Reference Index is a system that keeps track of all + content elements, files, and records that are linked or referenced throughout the + website, helping maintain data integrity and consistency. + + Symlink + A symlink (symbolic link) is a shortcut or reference to a file or + directory located elsewhere on the server, allowing you to link content or + resources without duplicating them. + + Snapshot + A snapshot is a backup or saved version of a website's content, + settings, and configuration at a specific point in time, which can be restored if needed. + + Static file + In the context of templating we say a html file is "static" + when it does not use Fluid but only plain HTML. + + Site Package + A :ref:`site package ` is a custom + extension that includes all the necessary templates, configurations and settings + to create and manage a specific website, allowing for easy setup and deployment. + + Site Set + Site sets refer to configurations that define specific settings for + different websites or domains within a multi-site setup, allowing you to manage + multiple websites from a single TYPO3 installation. + + Site Configuration + Site configuration is the setup that defines the settings + for a specific website or domain, such as its language, routing, and templates, + enabling TYPO3 to serve the correct content for that site. + + System extension + A system extension is a built-in extension that provides + essential functionality and features for the core system, such as user management, + backend tools, and caching, which are necessary for the website to operate. + + SEO + SEO (Search Engine Optimization) refers to the process of optimizing a + website's content, structure and technical settings to improve its visibility + and ranking in search engine results, helping to attract more visitors. + + System maintainer + A System Maintainer is a person responsible for managing + and maintaining the overall health and performance of a TYPO3 installation, + ensuring that the system is up to date, secure, and running smoothly. + + Third-party extension + A third-party extension is an add-on developed by + external developers or companies. They extend the functionality of TYPO3, + providing additional features or integrations not included in the core system. + + TCA + + Template + A HTML (Fluid) template is used to output HTML code. + See also :ref:`Fluid Templates `. Usually we use + :ref:`Fluid` and the :ref:`ViewHelpers`. + Get an :ref:`introduction to Fluid templates `. + + Templating + The templating engine that TYPO3 uses is Fluid. + + TER + TER (TYPO3 Extension Repository) is an online platform where developers can share and download extensions, + allowing users to easily extend the functionality of their TYPO3 installation. + + TypoScript + :ref:`TypoScript` is the basic configuration + language used to configure the frontend output of a page in TYPO3. + + Top-level objects + Top-level objects are core components or elements, such + as pages or content objects, that serve as starting points for building and + organizing the structure and content of a website. + + Testing + Testing involves checking the functionality, performance, and + security of a website or extension to ensure everything works as expected before + deployment or during updates. + + TSconfig + In TYPO3 you can set how the TYPO3 backend looks with + TSconfig files. You can set page related appearance, backend user related + appearance and backend user group appearance. You can use + :ref:`TSconfig Reference ` as a overall reference to look up + settings that you can use for TSconfig. Normally you keep all + your settings in TSconfig files like + EXT:my_extension/Configuration/Sets/MyExtension/page.tsconfig. + + Update + + Vendor folder + The vendor folder is where external libraries and dependencies, + such as third-party extensions and frameworks, are stored. They are typically + managed by Composer, to be used by the TYPO3 system. + + Var folder + The var folder is used to store temporary files, cached data, + logs, and other system-related information that helps the system function + efficiently during runtime. + + ViewHelper + A view helper is a reusable function or tool used in Fluid + templates to manipulate or display data in a specific way, helping to keep + templates clean and organized. diff --git a/Documentation/Images/AutomaticScreenshots/BackendOverview/BackendTopBar.png b/Documentation/Images/AutomaticScreenshots/BackendOverview/BackendTopBar.png new file mode 100644 index 00000000..4601c1f3 Binary files /dev/null and b/Documentation/Images/AutomaticScreenshots/BackendOverview/BackendTopBar.png differ diff --git a/Documentation/Images/AutomaticScreenshots/BackendOverview/BackendTopBar.rst.txt b/Documentation/Images/AutomaticScreenshots/BackendOverview/BackendTopBar.rst.txt new file mode 100644 index 00000000..f1a869cc --- /dev/null +++ b/Documentation/Images/AutomaticScreenshots/BackendOverview/BackendTopBar.rst.txt @@ -0,0 +1,6 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/BackendOverview/BackendTopBar.png + :class: with-shadow + + The top bar \ No newline at end of file diff --git a/Documentation/Images/AutomaticScreenshots/BackendOverview/HelpMenu.png b/Documentation/Images/AutomaticScreenshots/BackendOverview/HelpMenu.png new file mode 100644 index 00000000..61ed1ae4 Binary files /dev/null and b/Documentation/Images/AutomaticScreenshots/BackendOverview/HelpMenu.png differ diff --git a/Documentation/Images/AutomaticScreenshots/BackendOverview/HelpMenu.rst.txt b/Documentation/Images/AutomaticScreenshots/BackendOverview/HelpMenu.rst.txt new file mode 100644 index 00000000..a3ac9780 --- /dev/null +++ b/Documentation/Images/AutomaticScreenshots/BackendOverview/HelpMenu.rst.txt @@ -0,0 +1,6 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/BackendOverview/HelpMenu.png + :class: with-shadow + + Accessing the help menu from the top bar \ No newline at end of file diff --git a/Documentation/Images/AutomaticScreenshots/FilelistModule/ContextMenu.png b/Documentation/Images/AutomaticScreenshots/FilelistModule/ContextMenu.png new file mode 100644 index 00000000..9c21907b Binary files /dev/null and b/Documentation/Images/AutomaticScreenshots/FilelistModule/ContextMenu.png differ diff --git a/Documentation/Images/AutomaticScreenshots/FilelistModule/ContextMenu.rst.txt b/Documentation/Images/AutomaticScreenshots/FilelistModule/ContextMenu.rst.txt new file mode 100644 index 00000000..3856065b --- /dev/null +++ b/Documentation/Images/AutomaticScreenshots/FilelistModule/ContextMenu.rst.txt @@ -0,0 +1,6 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/FilelistModule/ContextMenu.png + :class: with-shadow + + The contextual menu in the Filelist \ No newline at end of file diff --git a/Documentation/Images/AutomaticScreenshots/ListModule/ContextMenu.png b/Documentation/Images/AutomaticScreenshots/ListModule/ContextMenu.png new file mode 100644 index 00000000..4382030f Binary files /dev/null and b/Documentation/Images/AutomaticScreenshots/ListModule/ContextMenu.png differ diff --git a/Documentation/Images/AutomaticScreenshots/ListModule/ContextMenu.rst.txt b/Documentation/Images/AutomaticScreenshots/ListModule/ContextMenu.rst.txt new file mode 100644 index 00000000..98f8241a --- /dev/null +++ b/Documentation/Images/AutomaticScreenshots/ListModule/ContextMenu.rst.txt @@ -0,0 +1,6 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/ListModule/ContextMenu.png + :class: with-shadow + + The contextual menu in the "List" module \ No newline at end of file diff --git a/Documentation/Images/AutomaticScreenshots/Modules/ConfigurationModule.png b/Documentation/Images/AutomaticScreenshots/Modules/ConfigurationModule.png new file mode 100644 index 00000000..fd2e801c Binary files /dev/null and b/Documentation/Images/AutomaticScreenshots/Modules/ConfigurationModule.png differ diff --git a/Documentation/Images/AutomaticScreenshots/Modules/ConfigurationModule.rst.txt b/Documentation/Images/AutomaticScreenshots/Modules/ConfigurationModule.rst.txt new file mode 100644 index 00000000..317dfa41 --- /dev/null +++ b/Documentation/Images/AutomaticScreenshots/Modules/ConfigurationModule.rst.txt @@ -0,0 +1,7 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/Modules/ConfigurationModule.png + :alt: The Configuration module showing the global configuration array + :class: with-shadow + + The Configuration module showing the global configuration array \ No newline at end of file diff --git a/Documentation/Images/AutomaticScreenshots/Modules/Dashboard.png b/Documentation/Images/AutomaticScreenshots/Modules/Dashboard.png new file mode 100644 index 00000000..e22dab11 Binary files /dev/null and b/Documentation/Images/AutomaticScreenshots/Modules/Dashboard.png differ diff --git a/Documentation/Images/AutomaticScreenshots/Modules/Dashboard.rst.txt b/Documentation/Images/AutomaticScreenshots/Modules/Dashboard.rst.txt new file mode 100644 index 00000000..6fc27154 --- /dev/null +++ b/Documentation/Images/AutomaticScreenshots/Modules/Dashboard.rst.txt @@ -0,0 +1,6 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/Modules/Dashboard.png + :class: with-shadow + + TYPO3 CMS Dashboard \ No newline at end of file diff --git a/Documentation/Images/AutomaticScreenshots/Modules/ExtensionManager.png b/Documentation/Images/AutomaticScreenshots/Modules/ExtensionManager.png new file mode 100644 index 00000000..f909d143 Binary files /dev/null and b/Documentation/Images/AutomaticScreenshots/Modules/ExtensionManager.png differ diff --git a/Documentation/Images/AutomaticScreenshots/Modules/ExtensionManager.rst.txt b/Documentation/Images/AutomaticScreenshots/Modules/ExtensionManager.rst.txt new file mode 100644 index 00000000..0ee68060 --- /dev/null +++ b/Documentation/Images/AutomaticScreenshots/Modules/ExtensionManager.rst.txt @@ -0,0 +1,6 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/Modules/ExtensionManager.png + :class: with-shadow + + TYPO3 CMS Extension Manager \ No newline at end of file diff --git a/Documentation/Images/AutomaticScreenshots/Modules/LocalizationOverview.png b/Documentation/Images/AutomaticScreenshots/Modules/LocalizationOverview.png new file mode 100644 index 00000000..ffe5e05c Binary files /dev/null and b/Documentation/Images/AutomaticScreenshots/Modules/LocalizationOverview.png differ diff --git a/Documentation/Images/AutomaticScreenshots/Modules/LocalizationOverview.rst.txt b/Documentation/Images/AutomaticScreenshots/Modules/LocalizationOverview.rst.txt new file mode 100644 index 00000000..630b165f --- /dev/null +++ b/Documentation/Images/AutomaticScreenshots/Modules/LocalizationOverview.rst.txt @@ -0,0 +1,6 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/Modules/LocalizationOverview.png + :class: with-shadow + + Viewing translation status, two levels deep \ No newline at end of file diff --git a/Documentation/Images/AutomaticScreenshots/Modules/SiteManagement.png b/Documentation/Images/AutomaticScreenshots/Modules/SiteManagement.png index d9457bd0..d446caa3 100644 Binary files a/Documentation/Images/AutomaticScreenshots/Modules/SiteManagement.png and b/Documentation/Images/AutomaticScreenshots/Modules/SiteManagement.png differ diff --git a/Documentation/Images/AutomaticScreenshots/PageModule/ViewWebpage.png b/Documentation/Images/AutomaticScreenshots/PageModule/ViewWebpage.png new file mode 100644 index 00000000..d58c4075 Binary files /dev/null and b/Documentation/Images/AutomaticScreenshots/PageModule/ViewWebpage.png differ diff --git a/Documentation/Images/AutomaticScreenshots/PageModule/ViewWebpage.rst.txt b/Documentation/Images/AutomaticScreenshots/PageModule/ViewWebpage.rst.txt new file mode 100644 index 00000000..1e066f72 --- /dev/null +++ b/Documentation/Images/AutomaticScreenshots/PageModule/ViewWebpage.rst.txt @@ -0,0 +1,6 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/PageModule/ViewWebpage.png + :class: with-shadow + + View current page in the frontend \ No newline at end of file diff --git a/Documentation/Images/AutomaticScreenshots/PageTree/CollapsePageTree.png b/Documentation/Images/AutomaticScreenshots/PageTree/CollapsePageTree.png new file mode 100644 index 00000000..b0d14f1f Binary files /dev/null and b/Documentation/Images/AutomaticScreenshots/PageTree/CollapsePageTree.png differ diff --git a/Documentation/Images/AutomaticScreenshots/PageTree/CollapsePageTree.rst.txt b/Documentation/Images/AutomaticScreenshots/PageTree/CollapsePageTree.rst.txt new file mode 100644 index 00000000..fa418420 --- /dev/null +++ b/Documentation/Images/AutomaticScreenshots/PageTree/CollapsePageTree.rst.txt @@ -0,0 +1,6 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/PageTree/CollapsePageTree.png + :class: with-shadow + + Collapse or expand the page tree \ No newline at end of file diff --git a/Documentation/Images/AutomaticScreenshots/PageTree/ContextMenu.png b/Documentation/Images/AutomaticScreenshots/PageTree/ContextMenu.png new file mode 100644 index 00000000..f6133aad Binary files /dev/null and b/Documentation/Images/AutomaticScreenshots/PageTree/ContextMenu.png differ diff --git a/Documentation/Images/AutomaticScreenshots/PageTree/ContextMenu.rst.txt b/Documentation/Images/AutomaticScreenshots/PageTree/ContextMenu.rst.txt new file mode 100644 index 00000000..cac69a64 --- /dev/null +++ b/Documentation/Images/AutomaticScreenshots/PageTree/ContextMenu.rst.txt @@ -0,0 +1,6 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/PageTree/ContextMenu.png + :class: with-shadow + + Page tree with opened context menu \ No newline at end of file diff --git a/Documentation/Images/AutomaticScreenshots/PageTree/PageTree.png b/Documentation/Images/AutomaticScreenshots/PageTree/PageTree.png new file mode 100644 index 00000000..dd83608d Binary files /dev/null and b/Documentation/Images/AutomaticScreenshots/PageTree/PageTree.png differ diff --git a/Documentation/Images/AutomaticScreenshots/PageTree/PageTree.rst.txt b/Documentation/Images/AutomaticScreenshots/PageTree/PageTree.rst.txt new file mode 100644 index 00000000..4a972804 --- /dev/null +++ b/Documentation/Images/AutomaticScreenshots/PageTree/PageTree.rst.txt @@ -0,0 +1,6 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/PageTree/PageTree.png + :class: with-shadow + + The page tree with the "Content Examples" page expanded \ No newline at end of file diff --git a/Documentation/Images/AutomaticScreenshots/PageTree/RootPage.png b/Documentation/Images/AutomaticScreenshots/PageTree/RootPage.png new file mode 100644 index 00000000..fdfbb10d Binary files /dev/null and b/Documentation/Images/AutomaticScreenshots/PageTree/RootPage.png differ diff --git a/Documentation/Images/AutomaticScreenshots/PageTree/RootPage.rst.txt b/Documentation/Images/AutomaticScreenshots/PageTree/RootPage.rst.txt new file mode 100644 index 00000000..b209bed9 --- /dev/null +++ b/Documentation/Images/AutomaticScreenshots/PageTree/RootPage.rst.txt @@ -0,0 +1,6 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/PageTree/RootPage.png + :class: with-shadow + + Root page of the Introduction Package \ No newline at end of file diff --git a/Documentation/Images/ManualScreenshots/AdminTools/ExtensionConfiguration.png b/Documentation/Images/ManualScreenshots/AdminTools/ExtensionConfiguration.png new file mode 100644 index 00000000..f25f2a2b Binary files /dev/null and b/Documentation/Images/ManualScreenshots/AdminTools/ExtensionConfiguration.png differ diff --git a/Documentation/Images/ManualScreenshots/AdminTools/ExtensionConfigurationDetail.png b/Documentation/Images/ManualScreenshots/AdminTools/ExtensionConfigurationDetail.png new file mode 100644 index 00000000..a7b332ea Binary files /dev/null and b/Documentation/Images/ManualScreenshots/AdminTools/ExtensionConfigurationDetail.png differ diff --git a/Documentation/Images/ManualScreenshots/AdminTools/InstallToolHash.png b/Documentation/Images/ManualScreenshots/AdminTools/InstallToolHash.png new file mode 100644 index 00000000..55326d44 Binary files /dev/null and b/Documentation/Images/ManualScreenshots/AdminTools/InstallToolHash.png differ diff --git a/Documentation/Images/ManualScreenshots/Backend/BackendAreasOverviewShort.png b/Documentation/Images/ManualScreenshots/Backend/BackendAreasOverviewShort.png new file mode 100644 index 00000000..1ce38573 Binary files /dev/null and b/Documentation/Images/ManualScreenshots/Backend/BackendAreasOverviewShort.png differ diff --git a/Documentation/Images/ManualScreenshots/Backend/NewPageContentWizard.png b/Documentation/Images/ManualScreenshots/Backend/NewPageContentWizard.png new file mode 100644 index 00000000..d8fb0af9 Binary files /dev/null and b/Documentation/Images/ManualScreenshots/Backend/NewPageContentWizard.png differ diff --git a/Documentation/Images/ManualScreenshots/Backend/previewButton.png b/Documentation/Images/ManualScreenshots/Backend/previewButton.png new file mode 100644 index 00000000..528e1802 Binary files /dev/null and b/Documentation/Images/ManualScreenshots/Backend/previewButton.png differ diff --git a/Documentation/Images/ManualScreenshots/Backend/previewMenue.png b/Documentation/Images/ManualScreenshots/Backend/previewMenue.png new file mode 100644 index 00000000..7c23d604 Binary files /dev/null and b/Documentation/Images/ManualScreenshots/Backend/previewMenue.png differ diff --git a/Documentation/Images/ManualScreenshots/BackendUser/CreateAdmin.png b/Documentation/Images/ManualScreenshots/BackendUser/CreateAdmin.png new file mode 100644 index 00000000..e756f25e Binary files /dev/null and b/Documentation/Images/ManualScreenshots/BackendUser/CreateAdmin.png differ diff --git a/Documentation/Images/ManualScreenshots/BackendUser/CreateUser.png b/Documentation/Images/ManualScreenshots/BackendUser/CreateUser.png new file mode 100644 index 00000000..5a074076 Binary files /dev/null and b/Documentation/Images/ManualScreenshots/BackendUser/CreateUser.png differ diff --git a/Documentation/Images/ManualScreenshots/BackendUser/InstallTool.png b/Documentation/Images/ManualScreenshots/BackendUser/InstallTool.png new file mode 100644 index 00000000..65b37af6 Binary files /dev/null and b/Documentation/Images/ManualScreenshots/BackendUser/InstallTool.png differ diff --git a/Documentation/Images/ManualScreenshots/BackendUser/ManageSystemMaintainers.png b/Documentation/Images/ManualScreenshots/BackendUser/ManageSystemMaintainers.png new file mode 100644 index 00000000..f19225e8 Binary files /dev/null and b/Documentation/Images/ManualScreenshots/BackendUser/ManageSystemMaintainers.png differ diff --git a/Documentation/Images/ManualScreenshots/ClearCache/Toolbar.png b/Documentation/Images/ManualScreenshots/ClearCache/Toolbar.png new file mode 100644 index 00000000..33be43b6 Binary files /dev/null and b/Documentation/Images/ManualScreenshots/ClearCache/Toolbar.png differ diff --git a/Documentation/Images/ManualScreenshots/CreateRootPage/CreateNewPage.png b/Documentation/Images/ManualScreenshots/CreateRootPage/CreateNewPage.png new file mode 100644 index 00000000..5f5eba78 Binary files /dev/null and b/Documentation/Images/ManualScreenshots/CreateRootPage/CreateNewPage.png differ diff --git a/Documentation/Images/ManualScreenshots/CreateRootPage/PageMenu.png b/Documentation/Images/ManualScreenshots/CreateRootPage/PageMenu.png new file mode 100644 index 00000000..f18999f5 Binary files /dev/null and b/Documentation/Images/ManualScreenshots/CreateRootPage/PageMenu.png differ diff --git a/Documentation/Images/ManualScreenshots/CreateRootPage/PageModule.png b/Documentation/Images/ManualScreenshots/CreateRootPage/PageModule.png new file mode 100644 index 00000000..35b490d1 Binary files /dev/null and b/Documentation/Images/ManualScreenshots/CreateRootPage/PageModule.png differ diff --git a/Documentation/Images/ManualScreenshots/CreateRootPage/SetRootPage.png b/Documentation/Images/ManualScreenshots/CreateRootPage/SetRootPage.png new file mode 100644 index 00000000..e5f8b962 Binary files /dev/null and b/Documentation/Images/ManualScreenshots/CreateRootPage/SetRootPage.png differ diff --git a/Documentation/Images/ManualScreenshots/CreateSitePackage/SitePackageBuilder.png b/Documentation/Images/ManualScreenshots/CreateSitePackage/SitePackageBuilder.png new file mode 100644 index 00000000..972818d4 Binary files /dev/null and b/Documentation/Images/ManualScreenshots/CreateSitePackage/SitePackageBuilder.png differ diff --git a/Documentation/Images/ManualScreenshots/Frontend/FrontendPage.png b/Documentation/Images/ManualScreenshots/Frontend/FrontendPage.png new file mode 100644 index 00000000..5cb06beb Binary files /dev/null and b/Documentation/Images/ManualScreenshots/Frontend/FrontendPage.png differ diff --git a/Documentation/Images/ManualScreenshots/Modules/TypoScript.png b/Documentation/Images/ManualScreenshots/Modules/TypoScript.png new file mode 100644 index 00000000..23ac2544 Binary files /dev/null and b/Documentation/Images/ManualScreenshots/Modules/TypoScript.png differ diff --git a/Documentation/Images/ManualScreenshots/Modules/ViewModule.png b/Documentation/Images/ManualScreenshots/Modules/ViewModule.png new file mode 100644 index 00000000..56071dbc Binary files /dev/null and b/Documentation/Images/ManualScreenshots/Modules/ViewModule.png differ diff --git a/Documentation/Images/ManualScreenshots/PageTree/Dragndop1.png b/Documentation/Images/ManualScreenshots/PageTree/Dragndop1.png new file mode 100644 index 00000000..89093f2d Binary files /dev/null and b/Documentation/Images/ManualScreenshots/PageTree/Dragndop1.png differ diff --git a/Documentation/Images/ManualScreenshots/PageTree/Dragndop2.png b/Documentation/Images/ManualScreenshots/PageTree/Dragndop2.png new file mode 100644 index 00000000..965347e8 Binary files /dev/null and b/Documentation/Images/ManualScreenshots/PageTree/Dragndop2.png differ diff --git a/Documentation/Images/ManualScreenshots/PageTree/Dragndop3.png b/Documentation/Images/ManualScreenshots/PageTree/Dragndop3.png new file mode 100644 index 00000000..b40e4c50 Binary files /dev/null and b/Documentation/Images/ManualScreenshots/PageTree/Dragndop3.png differ diff --git a/Documentation/Images/ManualScreenshots/SiteManagement/SiteIdentifier.png b/Documentation/Images/ManualScreenshots/SiteManagement/SiteIdentifier.png new file mode 100644 index 00000000..5207f72b Binary files /dev/null and b/Documentation/Images/ManualScreenshots/SiteManagement/SiteIdentifier.png differ diff --git a/Documentation/Images/ManualScreenshots/SiteManagement/TypoScriptModule.png b/Documentation/Images/ManualScreenshots/SiteManagement/TypoScriptModule.png new file mode 100644 index 00000000..e7f1aefa Binary files /dev/null and b/Documentation/Images/ManualScreenshots/SiteManagement/TypoScriptModule.png differ diff --git a/Documentation/Images/ManualScreenshots/SiteManagement/TypoScriptModuleMenu.png b/Documentation/Images/ManualScreenshots/SiteManagement/TypoScriptModuleMenu.png new file mode 100644 index 00000000..40860352 Binary files /dev/null and b/Documentation/Images/ManualScreenshots/SiteManagement/TypoScriptModuleMenu.png differ diff --git a/Documentation/Includes.rst.txt b/Documentation/Includes.rst.txt index 469841d3..cdfcd2ed 100644 --- a/Documentation/Includes.rst.txt +++ b/Documentation/Includes.rst.txt @@ -1,34 +1,2 @@ -.. More information about this file: - https://docs.typo3.org/m/typo3/docs-how-to-document/main/en-us/GeneralConventions/FileStructure.html#includes-rst-txt - -.. ---------- -.. text roles -.. ---------- - -.. role:: aspect(emphasis) -.. role:: bash(code) -.. role:: html(code) -.. role:: js(code) -.. role:: php(code) -.. role:: rst(code) -.. role:: sep(strong) -.. role:: sql(code) - -.. role:: tsconfig(code) - :class: typoscript - -.. role:: typoscript(code) -.. role:: xml(code) - :class: html - -.. role:: yaml(code) - -.. default-role:: code - -.. --------- -.. highlight -.. --------- - -.. By default, code blocks use PHP syntax highlighting - -.. highlight:: php +.. this file can be used to include information on the top of each page +.. for example to add a hint for outdated versions diff --git a/Documentation/Index.rst b/Documentation/Index.rst index 42e938a9..85f827e6 100644 --- a/Documentation/Index.rst +++ b/Documentation/Index.rst @@ -1,147 +1,109 @@ -.. include:: /Includes.rst.txt +.. include:: /Includes.rst.txt .. _start: ================================ TYPO3 - Getting Started Tutorial ================================ -Welcome to Getting Started, this guide features an introduction to TYPO3 that -highlights some of its core concepts including the backend administrative +Welcome to Getting Started. This guide is an introduction to TYPO3 and +highlights some of the core concepts, including the backend administrative interface. This guide also contains information on how to configure the host operating -system and features a detailed installation guide that explains how TYPO3 is -installed. +system and detailed information on how to install TYPO3. ---- -.. container:: row m-0 p-0 +.. card-grid:: + :columns: 1 + :columns-md: 2 + :gap: 4 + :class: pb-4 + :card-height: 100 - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + .. card:: Prerequisites - .. container:: card px-0 h-100 + In this section we mention the prerequisites that you need before + you start with this tutorial. - .. rst-class:: card-header h3 + .. card-footer:: :ref:`See the prerequisites ` + :button-style: btn btn-secondary stretched-link - .. rubric:: :ref:`Concepts ` + .. card:: Concepts - .. container:: card-body + Written for new users, this chapter introduces some of TYPO3's core + concepts, including the backend - TYPO3's administration interface. - Written for new users, this chapter introduces some of TYPO3s core concepts including the backend, TYPO3s administration interface. + .. card-footer:: :ref:`Learn about the basic concepts ` + :button-style: btn btn-secondary stretched-link - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + .. card:: Installation - .. container:: card px-0 h-100 + The installation chapter provides detailed instructions on how to + install TYPO3. It also contains information about how to deploy TYPO3 + to a production environment. - .. rst-class:: card-header h3 + .. card-footer:: :ref:`Perform a TYPO3 Installation ` + :button-style: btn btn-secondary stretched-link - .. rubric:: :ref:`System Requirements ` + .. card:: First project setup - .. container:: card-body + The chapter "first project setup" helps you to go through the next steps + after the installation, such as creating a site record. - System requirements for the host operation system, including its web server and database and how they should be configured prior to installation. + .. card-footer:: :ref:`Setup TYPO3 after installation ` + :button-style: btn btn-secondary stretched-link - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + .. card:: Troubleshooting - .. container:: card px-0 h-100 + Troubleshoot common issues that can occur during installation. The + troubleshooting chapter covers both TYPO3 CMS and the host environment, + including the web server, database and PHP. - .. rst-class:: card-header h3 + .. card-footer:: :ref:`Learn how to troubleshoot ` + :button-style: btn btn-secondary stretched-link - .. rubric:: :ref:`Installation ` + .. card:: Working with extensions - .. container:: card-body + Discover how third-party extensions are installed and managed using + Composer. - The installation chapter provides detailed instructions about how to install TYPO3, it also contains information about how to deploy TYPO3 to a production environment. + .. card-footer:: :ref:`Install and manage extensions ` + :button-style: btn btn-secondary stretched-link - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + .. card:: Next steps - .. container:: card px-0 h-100 + Next steps provides an overview of tasks that can be carried out once + TYPO3 is installed, such as creating templates and adding content. - .. rst-class:: card-header h3 + .. card-footer:: :ref:`Learn how to add content and create templates ` + :button-style: btn btn-secondary stretched-link - .. rubric:: :ref:`Setup ` + .. card:: Glossary - .. container:: card-body + Here you get an overview of important terms in TYPO3. - Setup aims to guide you through the next steps post installation. Such as adding domains, setting up additional users and configuring languages. + .. card-footer:: :ref:`See the glossary ` + :button-style: btn btn-secondary stretched-link - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 +.. toctree:: + :hidden: + :titlesonly: - .. container:: card px-0 h-100 + Prerequisites/Index + Concepts/Index + Installation/Index + FirstProject/Index + Administration/Index + Troubleshooting/Index + Extensions/Index + NextSteps/Index + Glossary/Index - .. rst-class:: card-header h3 +.. toctree:: + :hidden: - .. rubric:: :ref:`Troubleshooting ` - - .. container:: card-body - - Troubleshoot common issues that can occur during installation. The Troubleshooting chapter covers both TYPO3 CMS and the host environment including the web server, database and PHP. - - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 - - .. container:: card px-0 h-100 - - .. rst-class:: card-header h3 - - .. rubric:: :ref:`Managing Backend Users ` - - .. container:: card-body - - Learn how to create users and configure their backend privileges. - - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 - - .. container:: card px-0 h-100 - - .. rst-class:: card-header h3 - - .. rubric:: :ref:`Working With Extensions ` - - .. container:: card-body - - Discover how third-party extensions are installed and managed using Composer. - - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 - - .. container:: card px-0 h-100 - - .. rst-class:: card-header h3 - - .. rubric:: :ref:`The Introduction Package ` - - .. container:: card-body - - The Introduction Package is a great place to start if you are looking to test drive TYPO3 and see a prebuilt site that contains - a range of example page templates and content. - - - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 - - .. container:: card px-0 h-100 - - .. rst-class:: card-header h3 - - .. rubric:: :ref:`Next Steps ` - - .. container:: card-body - - Next Steps provides an overview of tasks that can be carried out once TYPO3 is installed, such as creating templates and adding content. - -.. Table of Contents - -.. toctree:: - :hidden: - :titlesonly: - - Concepts/Index - SystemRequirements/Index - Installation/Index - Setup/Index - Troubleshooting/Index - Extensions/Index - UserManagement/Index - IntroductionPackage/Index - NextSteps/Index + Sitemap ---- @@ -160,11 +122,3 @@ installed. :Rendered: |today| - -.. Meta Menu - -.. toctree:: - :hidden: - - Sitemap - genindex diff --git a/Documentation/Installation/ApplicationContext.rst b/Documentation/Installation/ApplicationContext.rst new file mode 100644 index 00000000..94cc7679 --- /dev/null +++ b/Documentation/Installation/ApplicationContext.rst @@ -0,0 +1,138 @@ +:navigation-title: Application context +.. include:: /Includes.rst.txt + +.. index:: Environment; Configuration; .env ; dotenv + +.. _environment-phpconfig: +.. _environment-configuration: +.. _application-context: + +==================================================== +TYPO3 Application context: Development or Production +==================================================== + +.. figure:: _ApplicationContext/ApplicationContextInformation.png + :alt: Screenshot showing the current application context in the "System Information" box + + The current application context is displayed on the top-right in the "System Information" box + +A TYPO3 instance is often used in different contexts that can adapt to your +needs. + +You can use the application context to differentiate between different +environments / servers. + +There are 3 major application context groups: + +`Development` + To be used during development. Debugging is enabled by default. +`Production` + Debugging and deprecation logs are deactivated by default. +`Testing` + To be used in automated testing. + +You can define arbitrary strings as a subcontext for example `Development/Local` +or `Production/Stage`. + +.. todo: Link to application context in TYPO3 explained, once that chapter is written + +.. contents:: + +.. _set-ApplicationContext: + +Setting the application context +=============================== + +If the application context is not set it is `Production` by default so that you +don't have to do anything on the production server. + +.. todo: Link to application context in TYPO3 explained, once that chapter is written + +In DDEV you should set the application context to `Development/Local` to enable +debugging and different site configurations for DDEV and your live server. + +Create a file called :file:`docker-compose.context.yaml` in your :path:`.ddev` +path with the following content: + +.. literalinclude:: _ApplicationContext/_docker-compose.context.yaml + :caption: [project root]/.ddev/docker-compose.context.yaml + +Restart DDEV using + +.. code-block:: bash + + ddev restart + +.. _development-settings: + +Local development +================= + +When you :ref:`installed TYPO3 with DDEV `, DDEV automatically created +a file called :path:`config/system/additional.php` for you. This file includes +server settings needed only during development, including: + +* A connection to the local database in DDEV +* Configuration of Mailpit to enable debugging of emails +* Image magic configuration so that images can be scaled and edited +* Enabling enhanced error reporting + +You should not :ref:`deploy ` this file to your production server +but create one just for the production server. +See section :ref:`production-settings` + +.. _production-settings: + +Production environment +====================== + +It is not recommended to put credentials into a file that is kept under version +control. However, many other settings should be kept under version control. + +We recommend putting all configuration containing credentials into a special +file that is not kept under version control and include it in your +:path:`config/system/additional.php`. + +Create a file called :file:`config/system/credentials.php`: + +.. literalinclude:: _ApplicationContext/_credentials.php + :caption: config/system/credentials.php + +.. important:: + Add :file:`config/system/credentials.php` to your `.gitignore` so that it + is never put under version control. + +You can now include this file in your +:path:`config/system/additional.php`: + +.. literalinclude:: _ApplicationContext/_additional.php + :caption: config/system/additional.php + +The following steps are needed for a secure production context: + +* :ref:`Generate a unique encryption key ` + and put it in `$customChanges['SYS']['encryptionKey']` in your + :file:`config/system/credentials.php`. +* Choose a new install tool password and put its hash into + `$customChanges['BE']['installToolPassword']`. +* Replace the database credentials in the + `$customChanges['DB']['Connections']['Default']` section with + database credentials for your server. + +Further settings important for security can be made directly in the +:path:`config/system/additional.php`: + +.. literalinclude:: _ApplicationContext/_additional-2.php + :caption: config/system/additional.php + +Please refer to the security guide in getting started to check which settings +are currently recommended for a secure production environment: + +:ref:`Global TYPO3 configuration options ` + +Suggested configurations might change in future security bulletins. + +.. todo: link to chapter about security / security bulletins once it is written. + +You can put any of the suggested changes into the `$customChanges` array of +your :path:`config/system/additional.php`. diff --git a/Documentation/Installation/DeployTYPO3.rst b/Documentation/Installation/DeployTYPO3.rst index aff5e7cf..080969cc 100644 --- a/Documentation/Installation/DeployTYPO3.rst +++ b/Documentation/Installation/DeployTYPO3.rst @@ -1,8 +1,9 @@ -.. include:: /Includes.rst.txt +.. include:: /Includes.rst.txt -.. index:: deployment, composer, production setup +.. index:: deployment, composer, production setup -.. _deploytypo3: +.. _deploytypo3: +.. _deployment: =============== Deploying TYPO3 @@ -20,216 +21,19 @@ necessary. General Deployment Steps ======================== -- Build the local environment (installing everything necessary for the website) -- Run `composer install --no-dev` to install without development dependencies -- Copy files to the production server -- Copy the database to the production server -- Clearing the caches +* Build the local environment (installing everything necessary for the website) +* Run :bash:`composer install --no-dev` to install without development dependencies +* Copy files to the production server +* Copy the database to the production server +* Clearing the caches .. note:: - The `composer install` command should not be run on the live environment. - Ideally, `composer` should only run locally or on a dedicated deployment machine, + The :bash:`composer install` command should not be run on the live environment. + Ideally, Composer should only run locally or on a dedicated deployment machine, to allow testing before going live. To avoid conflicts between the local and the server's PHP version, the server's PHP version can be defined in the :file:`composer.json` file - (e.g. ``{"platform": {"php": "7.4.10"}}``), so `composer` will always check + (e.g. ``{"platform": {"php": "8.1"}}``), so Composer will always check the correct dependencies. - -Production Settings -=================== - -To ensure a secure installation of TYPO3 on a production server, the following settings need to be set: - -- :guilabel:`Admin Tools > Settings > Configuration Presets` The "Live" preset has to be chosen to make sure no debug output is displayed. -- `HTTPS` should be used on production servers and :php:`$GLOBALS['TYPO3_CONF_VARS']['BE']['lockSSL']` should be set to `true`. -- Enforce HSTS (Strict-Transport-Security header) in the web servers configuration. -- The `TYPO3_CONTEXT` environment variable should be set to a main context of `Production` (can be verified on the top right in the TYPO3 backend :guilabel:`Application Information`). It should be used to select the appropriate `base variant` for the target system in the Site Configuration. -- Configure the :ref:`TYPO3 logging framework ` to log messages of high severity including and above WARNING or ERROR - and continue to rotate log files stored in :file:`var/log`. -- Verify the :ref:`file permissions ` are correct on the live system. - -Deployment Automation -===================== - -A typical setup for deploying web applications consists of three different parts: - -- The local environment (for development) -- The build environment (for reproducible builds). This can be a controlled local environment or a remote continuous integration server (for example Gitlab CI or Github Actions) -- The live (production) environment - -To get an application from the local environment to the production system, the usage of a deployment tool and/or a continuous integration solution is recommended. This ensures that only version-controlled code is deployed and that builds are reproducible. Ideally setting a new release live will be an atomical operation and lead to no downtime. If there are errors in any of the deployment or test stages, most deployment tools will initiate an automatic "rollback" preventing that an erroneous build is released. - -One widely employed strategy is the "symlink-switching" approach: - -In that strategy, the webserver serves files from a virtual path :file:`releases/current/public` which consists of a symlink :file:`releases/current` pointing to the latest deployment ("release"). That symlink is switched after a new release has been successfully prepared. -The latest deployment contains symlinks to folders that should be common among all releases (commonly called "shared folders"). - -Usually the database is shared between releases and upgrade wizards and schema upgrades are run automatically before or -shortly after the new release has been set live. - -This is an exemplatory directory structure of a "symlink-switching" TYPO3 installation: - -.. code-block:: none - - ├── shared/ - │ ├── fileadmin/ - │ └── var/ - │ ├── var/charset/ - │ ├── var/lock/ - │ ├── var/log/ - │ └── var/session/ - ├── releases/ - │ ├── current -> ./release1 (symlink to current release) - │ └── release1/ - │ ├── public/ (webserver root, via releases/current/public) - │ │ ├── typo3conf/ - │ │ ├── fileadmin -> ../../../shared/fileadmin/ (symlink) - │ │ └── index.php - │ ├── var/ - │ | ├── var/build/ - │ | ├── var/cache/ - │ | ├── var/charset -> ../../../shared/var/charset/ (symlink) - │ | ├── var/labels/ - │ | ├── var/lock -> ../../../shared/var/lock/ (symlink) - │ | ├── var/log -> ../../../shared/var/log/ (symlink) - │ | └── var/session -> ../../../shared/var/session/ (symlink) - │ ├── vendor/ - │ ├── composer.json - │ └── composer.lock - - -The files in `shared` are shared between different releases of a web site. -The `releases` directory contains the TYPO3 code that will change between the release of each version. - -When using a deployment tool this kind of directory structure is usually created automatically. - -The following section contains examples for various deployment tools and how they can be configured to use TYPO3: - -.. tabs:: - - .. tab:: TYPO3 Surf - - :doc:`TYPO3 Surf ` is a deployment tool written in PHP. - - - .. code-block:: php - :caption: ~/.surf/MyDeployment.php - - setHostname($node->getName()) - ->setOption('username', 'myuser') - ->setOption('phpBinaryPathAndFilename', '/usr/local/bin/php_cli'); - - $application = new \TYPO3\Surf\Application\TYPO3\CMS(); - $application - ->setDeploymentPath('/httpdocs') - ->setOption('baseUrl', 'https://my.node.com/') - ->setOption('webDirectory', 'public') - ->setOption('symlinkDataFolders', ['fileadmin']) - ->setOption('repositoryUrl', 'file://' . dirname(__DIR__)) - ->setOption('keepReleases', 3) - ->setOption('composerCommandPath', 'composer') - ->setOption('rsyncExcludes', [ - '.ddev', - '.git', - $application->getOption('webDirectory') . '/fileadmin', - 'packages/**.sass' - ]) - ->setOption(TYPO3\Surf\Task\TYPO3\CMS\FlushCachesTask::class . '[arguments]', []) - ->addSymlink($application->getOption('webDirectory') . '/config/system/settings.php', '../../../../shared/Configuration/settings.php') - ->addNode($node); - - $deployment - ->addApplication($application) - ->onInitialize( - function () use ($deployment, $application) { - $deployment->getWorkflow() - ->beforeTask(\TYPO3\Surf\Task\TYPO3\CMS\SetUpExtensionsTask::class, \TYPO3\Surf\Task\TYPO3\CMS\CompareDatabaseTask::class, $application) - ->beforeStage('transfer', \TYPO3\Surf\Task\Php\WebOpcacheResetCreateScriptTask::class, $application) - ->afterStage('switch', \TYPO3\Surf\Task\Php\WebOpcacheResetExecuteTask::class, $application) - // CreatePackageStatesTask is done by post-autoload-dump script and can be removed - // https://github.com/TYPO3/TYPO3.CMS.BaseDistribution/blob/9.x/composer.json#L38 - ->removeTask(\TYPO3\Surf\Task\TYPO3\CMS\CreatePackageStatesTask::class, $application) - ->removeTask(\TYPO3\Surf\Task\TYPO3\CMS\CopyConfigurationTask::class, $application); - } - ); - - - .. tab:: Deployer - - `Deployer `__ is an alternative deployment tool - written in PHP. A full description about how to get deployer running - for TYPO3 can be found at https://t3terminal.com/blog/typo3-deploy/ - - .. code-block:: php - - hostname('production.example.org') - ->user('deploy') - ->set('branch', 'main') - ->set('public_urls', ['https://production.example.org']) - ->set('deploy_path', '/home/www/example-project-directory/live'); - - - .. tab:: Magallanes - - Yet another deployment tool for PHP applications written in PHP: https://www.magephp.com - - .. code-block:: yaml - :caption: .mage.yml - - magephp: - log_dir: ./.mage/logs - composer: - path: composer - exclude: - - ./.ddev - - ./.git - - ./.mage - - ./public/fileadmin - - ./public/typo3temp - - ./var - - ./.mage.yml - - ./composer.json - - ./composer.lock - - ./LICENSE - - ./README.md - environments: - main: - user: ssh-user - from: ./ - host_path: /srv/vhosts/target-path/site/mage - releases: 3 - hosts: - - production.example.org - pre-deploy: - - exec: { cmd: "composer install --no-dev --no-progress --optimize-autoloader"} - on-deploy: - - fs/link: { from: "../../../../shared/public/fileadmin", to: "public/fileadmin" } - - fs/link: { from: "../../../../shared/public/typo3temp", to: "public/typo3temp" } - - fs/link: { from: "../../../shared/var", to: "var" } - on-release: - post-release: - - exec: { cmd: './bin/typo3 backend:lock', timeout: 9000 } - - exec: { cmd: './bin/typo3cms database:updateschema *.add,*.change', timeout: 9000 } - - exec: { cmd: './bin/typo3cms cache:flush', timeout: 9000 } - - exec: { cmd: './bin/typo3 upgrade:run', timeout: 9000 } - - exec: { cmd: './bin/typo3 backend:unlock', timeout: 9000 } - post-deploy: diff --git a/Documentation/Installation/Index.rst b/Documentation/Installation/Index.rst index 17265668..6a1432b8 100644 --- a/Documentation/Installation/Index.rst +++ b/Documentation/Installation/Index.rst @@ -1,102 +1,75 @@ -.. include:: /Includes.rst.txt +.. include:: /Includes.rst.txt -.. index:: installation +.. index:: installation -.. _installation_index: +.. _installation_index: ============ Installation ============ -.. container:: row m-0 p-0 +.. toctree:: + :hidden: + :titlesonly: - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + SystemRequirements/Index + Version + Install + DeployTYPO3 + ApplicationContext + Updates/Index - .. container:: card px-0 h-100 +.. card-grid:: + :columns: 1 + :columns-md: 2 + :gap: 4 + :class: pb-4 + :card-height: 100 - .. rst-class:: card-header h3 + .. card:: :ref:`System requirements ` - .. rubric:: :ref:`Installing TYPO3 ` + System requirements for the host operating system, including its web + server and database and how they should be configured prior to + installation. - .. container:: card-body + .. card:: :ref:`Version ` - The Installation Guide covers everything needed to install TYPO3. Including a preinstallation - checklist and a detailed walk through that details every step of the installation process. + This chapter helps you choose the best TYPO3 version to start with and + provides resources for getting it. - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + .. card:: :ref:`Installing TYPO3 ` - .. container:: card px-0 h-100 + This is a step-by-step guide detailing how to install TYPO3 for local + development using DDEV, Docker and Composer. - .. rst-class:: card-header h3 + .. card:: :ref:`TYPO3 Updates ` - .. rubric:: :ref:`Deploying TYPO3 ` + Here we explain the cycle of TYPO3 updates, and show you why and when + a TYPO3 update is useful. - .. container:: card-body + .. card:: :ref:`Deploying TYPO3 ` - The deployment guide highlights some of solutions available that can help automate the process of deploying TYPO3 to - a remote server. + After you have installed TYPO3 locally, learn how to move your result + to a web server. - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + .. card:: :ref:`Application context ` - .. container:: card px-0 h-100 + Use the TYPO3 application context to manage settings for + development and production. - .. rst-class:: card-header h3 +.. _installation_advanced: - .. rubric:: :ref:`Tuning TYPO3 ` +Advanced installation topics +============================ - .. container:: card-body +.. card-grid:: + :columns: 1 + :columns-md: 2 + :gap: 4 + :class: pb-4 + :card-height: 100 - This chapter contains information on how to configure and optimize the infrastructure running TYPO3. + .. card:: :ref:`Tuning TYPO3 ` - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 - - .. container:: card px-0 h-100 - - .. rst-class:: card-header h3 - - .. rubric:: :ref:`TYPO3 Release Integrity ` - - .. container:: card-body - - Every release of TYPO3 is electronically signed by the TYPO3 release team. - In addition, every TYPO3 package also contains a unique file hash that - can be used to ensure file integrity when downloading the release. This guide - details how these signatures can be checked and how file hashes can be compared. - - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 - - .. container:: card px-0 h-100 - - .. rst-class:: card-header h3 - - .. rubric:: :ref:`Installing TYPO3 With DDEV ` - - .. container:: card-body - - This is a step-by-step guide detailing how to install TYPO3 using DDEV, Docker and Composer. - - - - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 - - .. container:: card px-0 h-100 - - .. rst-class:: card-header h3 - - .. rubric:: :ref:`Legacy Installation Guide ` - - .. container:: card-body - - Looking to install TYPO3 the classic way? Whilst this method of installation is no longer recommended, the Legacy Installation - Guide demonstrates how TYPO3 can be installed without using Composer. - -.. toctree:: - :hidden: - :titlesonly: - - Install - DeployTYPO3 - TuneTYPO3 - ReleaseIntegrity - TutorialDdev - LegacyInstallation + This chapter in TYPO3 Explained contains information on how to configure and optimize the + infrastructure running TYPO3. diff --git a/Documentation/Installation/Install.rst b/Documentation/Installation/Install.rst index f7c6d9d2..cb37d544 100644 --- a/Documentation/Installation/Install.rst +++ b/Documentation/Installation/Install.rst @@ -1,254 +1,211 @@ -.. include:: /Includes.rst.txt +:navigation-title: Installation -.. index:: installation, deployment, requirements +.. include:: /Includes.rst.txt -.. _install: +.. _install: +.. _install-access-typo3-via-a-web-browser: +.. _installation-ddev-tutorial: -================ -Installing TYPO3 -================ - -Welcome to the TYPO3 installation guide. This guide covers each of the steps required -to install TYPO3 using Composer. - -For more information on how to deploy TYPO3 to a live environment, visit the :ref:`deploying TYPO3 ` chapter. - -Pre-installation Checklist +========================== +Installing TYPO3 with DDEV ========================== -- Command line (CLI) access with the ability to create directories and symbolic links. -- Access to `Composer `__ via the CLI (for local development) -- Access to the web server's root directory -- Database with appropriate credentials - -Execute Composer Create-Project -=============================== - -The following script will install TYPO3 v12 which is the latest release of the CMS. If you wish to -install the long term support (LTS) release of TYPO3, visit the :ref:`TYPO3 v11 -Installation guide `. - -At the root level of your web server, execute the following command: - -.. tabs:: +This is a step-by-step guide detailing how to install TYPO3 using DDEV, Docker and Composer. - .. group-tab:: bash +DDEV is used for local development only. - .. code-block:: bash +.. youtube:: HW7J3G1SqZw - composer create-project typo3/cms-base-distribution:^12 example-project-directory +.. note:: + Like TYPO3, DDEV is open source software that exists because of the generosity of community members and sponsors. Read more about `how to support DDEV `__. - # Use console command to run the install process - # or use the Install Tool GUI (See below) - ./vendor/bin/typo3 setup +Pre-Installation Checklist +-------------------------- - .. group-tab:: powershell +#. **Install Docker** - Visit `docker.com `__ to download and install the recommended version of Docker for your operating system. - .. code-block:: powershell +#. **Install DDEV** - Follow the `DDEV installation guide `__ to install DDEV. - composer create-project "typo3/cms-base-distribution:^12" example-project-directory +DDEV and Docker need to be installed on your local machine before TYPO3 can be installed. If you need help installing DDEV, support can be found on the `DDEV Discord server `__. - # Use console command to run the install process - # or use the Install Tool GUI (See below) - ./vendor/bin/typo3 setup +Create the Installation Directory +--------------------------------- - .. group-tab:: ddev +Create an empty directory to install TYPO3 in and then change into that directory: - .. code-block:: bash +.. code-block:: bash - # Create a directory for your project - mkdir example-project-directory + mkdir t3example + cd t3example - # Go into that directory - cd example-project-directory +Create a new DDEV Project +------------------------- - # Tell DDEV to create a new project of type "typo3" - # 'docroot' MUST be 'public' PHP 8.1 is required by TYPO3 v12 - ddev config --project-type=typo3 --docroot=public --create-docroot --php-version 8.1 +The `ddev config` command will prompt for information about your project. TYPO3 is in the list +of preconfigured projects. - # Fetch a basic TYPO3 installation and its' dependencies - ddev composer create "typo3/cms-base-distribution:^12" +.. code-block:: bash - # Depending on your DDEV version the configuration file may have been - # created in an outdated location, you can move it with - mkdir -p config/system/ && mv public/typo3conf/AdditionalConfiguration.php $_/additional.php + ddev config --php-version 8.3 - # Use console command to run the install process - # or use the Install Tool GUI (See below) - ddev exec ./vendor/bin/typo3 setup + # Give the following answers when prompted: + Project name (t3example): -This command pulls down the latest release of TYPO3 and places it in the -:file:`example-project-directory`. + Docroot Location (current directory): public -After this command has finished running, :file:`example-project-directory` -will contain the following structure: + Project Type [php, typo3, ...] (php): typo3 -.. code-block:: none +Docroot Location + Is the folder containing files that have to be reached by + the webserver. It contains the vital entry point :file:`index.php`. The folder is commonly called :file:`public`. - . - ├── .gitignore - ├── composer.json - ├── composer.lock - ├── LICENSE - ├── public - ├── README.md - ├── var - └── vendor +Project Type + Should always be "typo3" +.. note:: + The PHP version (:yaml:`php_version`) should be set manually to the required + version in :file:`.ddev/config.yaml`. -Run the setup process -===================== +Alternatively you can skip the prompt by supplying all of the required parameters in a single command: -Setup TYPO3 in the console --------------------------- +.. code-block:: bash -.. versionadded:: 12.1 - Starting with TYPO3 v12.1 a new :ref:`CLI command - ` `setup` is introduced as - an alternative to the existing GUI-based web installer. + ddev config --project-type=typo3 --docroot=public --php-version 8.3 -Interactive / guided setup (questions/answers): +Start the project +----------------- -.. tabs:: +.. code-block:: bash - .. group-tab:: bash + ddev start - .. code-block:: bash +The webserver is now running but TYPO3 is not yet installed. - ./vendor/bin/typo3 setup +Install TYPO3 +------------- - .. group-tab:: powershell +.. code-block:: bash - .. code-block:: powershell + ddev composer create "typo3/cms-base-distribution:^12" - ./vendor/bin/typo3 setup +You now have a **Composer-based TYPO3 installation**. - .. group-tab:: ddev +.. note:: + The command above installs a typical set of functionality. - .. code-block:: bash + The official `Composer Helper `__ + at Get TYPO3 supports you to generate commands for a full TYPO3 installation + with all optional system extensions included. - ddev exec ./vendor/bin/typo3 setup +Run the Installation Setup Tool +------------------------------- -Or use the GUI installer in the browser ---------------------------------------- +Setup TYPO3 in the console +~~~~~~~~~~~~~~~~~~~~~~~~~~ -Create an empty file called `FIRST_INSTALL` in the `/public` directory: +.. versionadded:: 12.1 + Starting with TYPO3 12.1 a new CLI command `setup` is introduced as + an alternative to the existing GUI-based web installer. -.. tabs:: +Interactive / guided setup (questions/answers): - .. group-tab:: bash +.. code-block:: bash - .. code-block:: bash + ddev typo3 setup - touch example-project-directory/public/FIRST_INSTALL +When prompted give the following answers to work with the default DDEV configuration: - .. group-tab:: powershell +.. code-block:: bash - .. code-block:: powershell + Which web server is used? + > apache - echo $null >> public/FIRST_INSTALL + Database driver? + > mysqli - .. group-tab:: ddev + Enter the database "username" [default: db] ? db - .. code-block:: bash + Enter the database "password" ? db - ddev exec touch public/FIRST_INSTALL + Enter the database "port" [default: 3306] ? 3306 -.. code-block:: none - . - ├── .gitignore - ├── composer.json - ├── composer.lock - ├── LICENSE - ├── public - ├── FIRST_INSTALL - ├── README.md - ├── var - └── vendor + Enter the database "host" [default: db] ? db -Access TYPO3 via a web browser -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Select which database to use: + > db -After you have configured your web server to point at the `public` directory of your project, -TYPO3 can be accessed via a web browser. When accessing a new site for the first time, TYPO3 automatically -redirects all requests to :samp:`/typo3/install.php` to complete the installation process. +Setup TYPO3 with the 1,2,3 Install Tool in the browser +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. tip:: +Create a file called :file:`FIRST_INSTALL` in your webroot - When accessing the page via HTTPS, a "Privacy error" or similar warning is likely to occur. - In a local environment it is safe to ignore this warning by forcing the browser to ignore similar - exceptions for this domain. +.. code-block:: bash - The warning is due to the fact that self-signed certificates are being used. + ddev exec touch public/FIRST_INSTALL - If there is a `trustedHostsPattern` error on initial access, accessing TYPO3 without HTTPS (`http://`) is also an option. +Open the installer +.. code-block:: bash -Scan Environment -~~~~~~~~~~~~~~~~ + ddev launch /typo3/install.php -TYPO3 will now scan the host environment. During the scan TYPO3 will check the host system for the following: +Go to the TYPO3 backend: -- Minimum required version of PHP is installed. -- Required PHP extensions are loaded. -- php.ini is configured. -- TYPO3 is able to create and delete files and directories within the installation's root directory. +.. code-block:: bash -If no issues are detected, the installation process can continue. + ddev launch /typo3 -In the event that certain criteria are not met, TYPO3 will display a list of issues it has detected accompanied by a resolution for each issue. +And login with the credentials you just provided. -Once changes have been made, TYPO3 can re-scan the host environment by reloading the page `https://example-project-site.local/typo3/install.php`. -.. include:: ../Images/AutomaticScreenshots/QuickInstall/Step1SystemEnvironment.rst.txt +Managing the Database +--------------------- -Select a Database -~~~~~~~~~~~~~~~~~ +:bash:`ddev start` automatically created a database for +you. DDEV also created the file :file:`config/system/additional.php` +in which it configured the database credentials for you. -Select a database connection driver and enter the credentials for the database. +Many database browsers, including phpMyAdmin, are available to let you browse the database, see `Database GUIs `__ -.. include:: ../Images/AutomaticScreenshots/QuickInstall/Step2DatabaseConnection.rst.txt +Sending E-Mail +-------------- -TYPO3 can either connect to an existing empty database or create a new one. +DDEV creates configuration in :file:`config/system/additional.php` +to capture sent mails. You can see what mails have been sent here: -The list of databases available is dependent on which database drivers are installed on the host. +.. code-block:: bash -For example, if an instance of TYPO3 is intended to be used with a MySQL database then the PHP extension 'pdo_mysql' is required. -Once it's installed, :guilabel:`MySQL Database` will be available as an option. + ddev launch -m -.. include:: ../Images/AutomaticScreenshots/QuickInstall/Step3ChooseDb.rst.txt +Stopping a DDEV Instance +------------------------ -Create Administrative User & Set Site Name -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +If you want to stop all projects from running you can call: -An administrator account needs to be created to gain access to TYPO3's backend. +.. code-block:: bash -An email address for this user can also be specified and a name can be given. + ddev poweroff -.. include:: ../Images/AutomaticScreenshots/QuickInstall/Step4AdminUserSitename.rst.txt +The projects will stay configured and databases will be persisted. -.. note:: - The password must comply with the configured - :ref:`password policy `. +Deleting a DDEV Instance +------------------------ -Initialise ------------ +If you want to delete the project you just created you can remove it by +calling the following command in your new projects root folder: -TYPO3 offers two options for initialisation: creating an empty starting page or -it can go directly to the backend administrative interface. -Beginners should select the first option and allow TYPO3 to create an empty starting page. -This will also generate a site configuration file. +.. code-block:: bash -.. include:: ../Images/AutomaticScreenshots/QuickInstall/Step5LastStep.rst.txt + ddev delete --omit-snapshot -Next Steps ----------- +This will remove all containers from the project and delete the database. -Now that installation is complete, TYPO3 can be :ref:`configured `. +Afterwards you can safely delete the project's root folder. -Using DDEV ----------- +DDEV Documentation +------------------ -We also provide a step-by-step tutorial on how to :ref:`Install TYPO3 using DDEV `. -The tutorial also includes a video. +You will want to visit `DDEV's documentation `_, +which also has a `TYPO3 Quick Start `_ +which parallels this one. diff --git a/Documentation/Installation/LegacyInstallation.rst b/Documentation/Installation/LegacyInstallation.rst index f37096b4..216c7eb1 100644 --- a/Documentation/Installation/LegacyInstallation.rst +++ b/Documentation/Installation/LegacyInstallation.rst @@ -1,96 +1,18 @@ +:orphan: .. include:: /Includes.rst.txt .. index:: legacy installation .. _legacyinstallation: +.. _release_integrity: =================== Legacy Installation =================== -This guide details how TYPO3 can be installed without using Composer. This method of installation -is now considered out of date, users are strongly encouraged to use the Composer based :ref:`install` +.. warning:: + TYPO3 can be installed without using Composer. This method of installation + is now considered **out of date**, users are strongly encouraged to use the + :ref:`Composer-based installation instructions `. -Installing on a Unix Server -=========================== - -#. Download TYPO3's source package from `https://get.typo3.org/ - `_: - - .. code-block:: bash - :caption: /var/www/site/$ - - wget --content-disposition https://get.typo3.org/11 - - Ensure that the package is one level above the web server's document root. - -#. Unpack the :file:`typo3_src-11.5.x.tar.gz`: - - .. code-block:: bash - :caption: /var/www/site/$ - - tar xzf typo3_src-11.5.x.tar.gz - - Note that the `x` in the extracted folder will be replaced with the latest bugfix version of TYPO3. - - -#. Create the following symlinks in the document root: - - - .. code-block:: bash - :caption: /var/www/site/$ - - cd public - ln -s ../typo3_src-11.5.x typo3_src - ln -s typo3_src/index.php index.php - ln -s typo3_src/typo3 typo3 - -.. important:: - Make sure to upload the whole TYPO3 source directory including the - :file:`vendor` directory, otherwise you will miss important dependencies. - -#. This will then create the following structure: - - .. code-block:: none - - ├── typo3_src-11.5.x/ - ├── public/ - ├── ── typo3_src -> ../typo3_src-11.5.x/ - ├── ── typo3 -> typo3_src/typo3/ - ├── ── index.php -> typo3_src/index.php - -Installing on a Windows Server -============================== - -#. Download TYPO3's source package from `https://get.typo3.org/ - `_ and extract the :file:`.zip` file on the web server. - - Ensure that the package is one level above the web server's document root. - - -#. Use the shell to create the following symlinks in the document root: - - .. code-block:: bash - :caption: /var/www/site/$ - - cd public - mklink /d typo3_src ..\typo3_src-11.5.x - mklink /d typo3 typo3_src\typo3 - mklink index.php typo3_src\index.php - -#. This will then create the following structure: - - .. code-block:: none - - ├── typo3_src-11.5.x/ - ├── public/ - ├── ── typo3_src -> ../typo3_src-11.5.x/ - ├── ── typo3 -> typo3_src/typo3/ - ├── ── index.php -> typo3_src/index.php - - -Completing The Installation -=========================== - -After the source package has been extracted and the symlinks created, -visit the Access TYPO3 via web browser to complete the installation. +See how to do a :ref:`Legacy installation in TYPO3 explained `. diff --git a/Documentation/Installation/ReleaseIntegrity.rst b/Documentation/Installation/ReleaseIntegrity.rst deleted file mode 100644 index 638c298c..00000000 --- a/Documentation/Installation/ReleaseIntegrity.rst +++ /dev/null @@ -1,253 +0,0 @@ -.. include:: /Includes.rst.txt - -.. _release_integrity: - -======================= -TYPO3 Release Integrity -======================= - -TYPO3 Release Packages (the downloadable tarballs and zip files) as well as -Git tags are signed using PGP signatures during the automated release process. -SHA2-256, SHA1 and MD5 hashes are also generated for these files. - -Release contents ----------------- - -Every release of TYPO3 is made available with the following files: - -.. code-block:: bash - :caption: `TYPO3 CMS 11.5.1 `_ release as an example - - typo3_src-11.5.1.tar.gz - typo3_src-11.5.1.tar.gz.sig - typo3_src-11.5.1.zip - typo3_src-11.5.1.zip.sig - -* ``*.tar.gz`` and ``*.zip`` files are the actual release packages, containing - the source code of TYPO3 CMS -* ``*.sig`` files contain the corresponding signatures for each release package file - -Checking file hashes --------------------- - -File hashes are used to check that a downloaded file was transferred and stored -correctly on the local system. TYPO3 uses cryptographic hash methods including `MD5`_ -and `SHA2-256`_. - -The file hashes for each version are published on get.typo3.org and can be found -on the corresponding release page, for example https://get.typo3.org/version/11#package-checksums contains: - -.. code-block:: bash - :caption: TYPO3 v11.5.1 Checksums - :name: Checksums - - SHA256: - 205d1879e05c75093a2c427f7f7cacb297ca841e491450b3577987e259ff6c5b typo3_src-11.5.1.tar.gz - e07b303405d182f4450fda4a7a7acdbe5080c22123d52f74ef5f2fbf78233a49 typo3_src-11.5.1.zip - - SHA1: - aa88171cfb5aa9935b2a989f51e68b6d8eb6e5f0 typo3_src-11.5.1.tar.gz - 3dbe9322015e1d5266d78c6c3ff40846f8a6492f typo3_src-11.5.1.zip - - MD5: - cda2a4494f6673e9251c265c9ef1c345 typo3_src-11.5.1.tar.gz - 252583501d30bb5679305b58ed6e6f94 typo3_src-11.5.1.zip - - -To verify file hashes, the hashes need to be generated locally for the packages -downloaded and then compared to the published hashes on get.typo3.org. -To generate the hashes locally, one of the following command-line tools ``md5sum``, ``sha1sum`` or ``shasum`` needs to be used. - -The following commands generate hashes for the `.tar.gz` and `.zip` packages: - -.. code-block:: bash - :caption: ~$ - - shasum -a 256 typo3_src-*.tar.gz typo3_src-*.zip - 205d1879e05c75093a2c427f7f7cacb297ca841e491450b3577987e259ff6c5b typo3_src-11.5.1.tar.gz - e07b303405d182f4450fda4a7a7acdbe5080c22123d52f74ef5f2fbf78233a49 typo3_src-11.5.1.zip - -.. code-block:: bash - :caption: ~$ - - sha1sum -c typo3_src-*.tar.gz typo3_src-*.zip - aa88171cfb5aa9935b2a989f51e68b6d8eb6e5f0 typo3_src-11.5.1.tar.gz - 3dbe9322015e1d5266d78c6c3ff40846f8a6492f typo3_src-11.5.1.zip - -.. code-block:: bash - :caption: ~$ - - md5sum typo3_src-*.tar.gz typo3_src-*.zip - cda2a4494f6673e9251c265c9ef1c345 typo3_src-11.5.1.tar.gz - 252583501d30bb5679305b58ed6e6f94 typo3_src-11.5.1.zip - -These hashes must match the hashes published on get.typo3.org to ensure package integrity. - -.. _MD5: https://en.wikipedia.org/wiki/MD5 -.. _SHA2-256: https://en.wikipedia.org/wiki/SHA-2 - - -Checking file signatures ------------------------- - -TYPO3 uses `Pretty Good Privacy`_ to sign release packages and Git release tags. -To validate these signatures `The GNU Privacy Guard`_ is recommend, however -any `OpenPGP`_ compliant tool can also be used. - -The release packages are using a detached binary signature. This means that -the file ``typo3_src-11.5.1.tar.gz`` has an additional signature file -``typo3_src-11.5.1.tar.gz.sig`` which is the detached signature. - -.. code-block:: bash - :caption: ~$ - - gpg --verify typo3_src-11.5.1.tar.gz.sig typo3_src-11.5.1.tar.gz - -.. code-block:: none - - gpg: Signature made Tue Oct 12 12:20:19 2021 UTC - gpg: using RSA key E7ED29A70309A0D1AE34DA733304BBDBFA9613D1 - gpg: Can't check signature: No public key - -The warning means that the public key ``E7ED29A70309A0D1AE34DA733304BBDBFA9613D1`` is not yet available on the -local system and cannot be used to validate the signature. The public key can be -obtained by any key server - a popular one is `pgpkeys.mit.edu`_. - -.. code-block:: bash - :caption: ~$ - - wget -qO- https://get.typo3.org/KEYS | gpg --import - -.. code-block:: none - - gpg: requesting key 59BC94C4 from hkp server pgpkeys.mit.edu - gpg: key 59BC94C4: public key "TYPO3 Release Team (RELEASE) " imported - gpg: key FA9613D1: public key "Benjamin Mack " imported - gpg: key 16490937: public key "Oliver Hader " imported - gpg: no ultimately trusted keys found - gpg: Total number processed: 3 - gpg: imported: 3 (RSA: 3) - -Once the public key has been imported, the previous command on verifying the -signature of the ``typo3_src-11.5.1.tar.gz`` file can be repeated. - -.. code-block:: bash - :caption: ~$ - - gpg --verify typo3_src-11.5.1.tar.gz.sig typo3_src-11.5.1.tar.gz - -.. code-block:: none - - gpg: Signature made Tue Oct 12 12:20:19 2021 UTC - gpg: using RSA key E7ED29A70309A0D1AE34DA733304BBDBFA9613D1 - gpg: Good signature from "Benjamin Mack " [unknown] - gpg: WARNING: This key is not certified with a trusted signature! - gpg: There is no indication that the signature belongs to the owner. - Primary key fingerprint: E7ED 29A7 0309 A0D1 AE34 DA73 3304 BBDB FA96 13D1 - -The new warning is expected since everybody could have created the public key -and uploaded it to the key server. The important point here is to validate the key -fingerprint ``E7ED 29A7 0309 A0D1 AE34 DA73 3304 BBDB FA96 13D1`` which is in -this case the correct one for TYPO3 CMS release packages (see below for a list -of currently used keys or access the https://get.typo3.org/KEYS file directly). - -.. code-block:: bash - :caption: ~$ - - gpg --fingerprint E7ED29A70309A0D1AE34DA733304BBDBFA9613D1 - -.. code-block:: none - - pub rsa4096 2010-06-22 [SC] - E7ED 29A7 0309 A0D1 AE34 DA73 3304 BBDB FA96 13D1 - uid [ unknown] Benjamin Mack - sub rsa4096 2010-06-22 [E] - -.. _Pretty Good Privacy: https://en.wikipedia.org/wiki/Pretty_Good_Privacy -.. _The GNU Privacy Guard: http://www.gnupg.org/ -.. _OpenPGP: http://www.openpgp.org/ -.. _pgpkeys.mit.edu: https://pgpkeys.mit.edu/ - - -Checking tag signature ----------------------- - -Checking signatures on Git tags works similar to verifying the results using the -``gpg`` tool, but with using the ``git tag --verify`` command directly. - -.. code-block:: bash - :caption: ~$ - - git tag --verify v11.5.1 - - -.. code-block:: none - - object dcba2a7ce93eaef0ad025dc21fdeb85636d7b4f4 - type commit - tag v11.5.1 - tagger Benni Mack 1634041135 +0200 - - Release of TYPO3 11.5.1 - gpg: Signature made Tue Oct 12 14:18:55 2021 CEST - gpg: using RSA key E7ED29A70309A0D1AE34DA733304BBDBFA9613D1 - gpg: Good signature from "Benjamin Mack " - -The ``git show`` command on the name of the tag reveals more details. - -.. code-block:: bash - :caption: ~$ - - git show v11.5.1 - -.. code-block:: none - - tag v11.5.1 - Tagger: Benni Mack - Date: Tue Oct 12 14:17:52 2021 +0200 - - Release of TYPO3 11.5.1 - -----BEGIN PGP SIGNATURE----- - ... - -----END PGP SIGNATURE----- - - - -Public Keys ------------ - -.. note:: - - Starting in June 2017, TYPO3 releases have been cryptographically signed by the - ``TYPO3 Release Team `` with a dedicated public key. - Since July 2017 releases are signed by individual members of the TYPO3 - Release Team directly, namely ``Benni Mack `` and - ``Oliver Hader ``. - -You can download the used public keys from `get.typo3.org.keys`_ - -* TYPO3 Release Team - - + 4096 bit RSA key - + Key ID `0x9B9CB92E59BC94C4`_ - + Fingerprint ``7AF5 1AAA DED9 D002 4F89 B06B 9B9C B92E 59BC 94C4`` - -* Benni Mack - - + 4096 bit RSA key - + Key ID `0x3304BBDBFA9613D1`_ - + Fingerprint ``E7ED 29A7 0309 A0D1 AE34 DA73 3304 BBDB FA96 13D1`` - -* Oliver Hader - - + 4096 bit RSA key - + Key ID `0xC19FAFD699012A5A`_, subkey of `0xA36E4D1F16490937`_ - + Fingerprint ``0C4E 4936 2CFA CA0B BFCE 5D16 A36E 4D1F 1649 0937`` - -............................... - -.. _0x9B9CB92E59BC94C4: https://pgpkeys.mit.edu/pks/lookup?search=0x9B9CB92E59BC94C4 -.. _0x3304BBDBFA9613D1: https://pgpkeys.mit.edu/pks/lookup?search=0x3304BBDBFA9613D1 -.. _0xC19FAFD699012A5A: https://pgpkeys.mit.edu/pks/lookup?search=0xC19FAFD699012A5A -.. _0xA36E4D1F16490937: https://pgpkeys.mit.edu/pks/lookup?search=0xA36E4D1F16490937 -.. _get.typo3.org.keys: https://get.typo3.org/KEYS diff --git a/Documentation/Installation/SystemRequirements/Index.rst b/Documentation/Installation/SystemRequirements/Index.rst new file mode 100644 index 00000000..943b6a36 --- /dev/null +++ b/Documentation/Installation/SystemRequirements/Index.rst @@ -0,0 +1,18 @@ +.. include:: /Includes.rst.txt + +.. index:: system requirements, apache, nginx, database, mysql, sqlite + +.. _system-requirements: + +=================== +System requirements +=================== + +You will need a webserver, an up-to-date version of PHP and an SQL database. See +here which versions of TYPO3 are current and their requirements +`get.typo3.org `_. + +.. seealso:: + Advanced information on which PHP configuration and extensions are required and suggested, + how to configure the webserver and database etc can be found in + `TYPO3 Explained, System Requirements `_. diff --git a/Documentation/Installation/TuneTYPO3.rst b/Documentation/Installation/TuneTYPO3.rst deleted file mode 100644 index 0ffd82e1..00000000 --- a/Documentation/Installation/TuneTYPO3.rst +++ /dev/null @@ -1,91 +0,0 @@ -.. include:: /Includes.rst.txt - -.. index:: tuning - -.. _tunetypo3: - -============ -Tuning TYPO3 -============ - -This chapter contains information on how to configure and optimize the infrastructure -running TYPO3. - -OPcache -======= - -It is recommended that OPcache be enabled on the web server running TYPO3. OPcache's -default settings will provide significant performance improvements; however there are -some changes you can make to help further improve stability and performance. In addition -enabling certain features in OPcache can lead to performance degradation. - -Enabling OPcache ----------------- - -.. code-block:: ini - :caption: php.ini - - opcache.enable=1 - opcache.revalidate_freq=30 - opcache.revalidate_path=0 - -Tuning OPcache --------------- - -Below is list a of OPcache features with information on how they can impact TYPO3's performance. - -.. confval:: opcache.save_comments - - :Default: 1 - :Recommended: 1 - - Setting this to 0 may improve performance but some parts of TYPO3 (including Extbase) - rely on information stored in phpDoc comments to function correctly. - -.. confval:: opcache.use_cwd - - :Default: 1 - :Recommended: 1 - - Setting the value to 0 may cause problems in certain applications because files - that have the same name may get mixed up due to the complete path of the file not - being stored as a key. TYPO3 works with absolute paths so this would - return no improvements to performance. - -.. confval:: opcache.validate_timestamps - - :Default: 1 - :Recommended: 1 - - While setting this to 0 may speed up performance, you **must** make sure to - flush opcache whenever changes are made to the PHP scripts or they will not - be updated in OPcache. This can be achieved by using a proper deployment - pipeline. Additionally, some files can be added to the blacklist, see `opcache.blacklist_filename` for more information. - -.. confval:: opcache.revalidate_freq - - :Default: 2 - :Recommended: 30 - - Setting this to a high value can improve performance but shares the same issue - when setting `validate_timestamps` to 0. - -.. confval:: opcache.revalidate_path - - :Default: 1 - :Recommended: 0 - - Setting this value to 0 should be safe with TYPO3. This may be a problem if - relative path names are used to load scripts and if the same file exists several - times in the include path. - -.. confval:: opcache.max_accelerated_files - - :Default: 10000 - :Recommended: 10000 - - The default setting should be enough for TYPO3, but this depends - on the number of additional scripts that need to be loaded by the system. - -For more information on OPcache visit the `Official PHP documentation `__. - diff --git a/Documentation/Installation/TutorialDdev.rst b/Documentation/Installation/TutorialDdev.rst deleted file mode 100644 index d16ce03e..00000000 --- a/Documentation/Installation/TutorialDdev.rst +++ /dev/null @@ -1,184 +0,0 @@ -.. include:: /Includes.rst.txt - -.. index:: installation; Tutorial DDEV - -.. _installation-ddev-tutorial: - -========================== -Installing TYPO3 with DDEV -========================== - -This is a step-by-step guide detailing how to install TYPO3 using DDEV, Docker and Composer. - -DDEV is used for local development only. - -The scripts used in this guide will install TYPO3 v12.0 which is the latest release of the CMS. If you wish to -install the long term support (LTS) release of TYPO3, visit the :ref:`TYPO3 v11 -Installation instructions `. - -.. youtube:: HW7J3G1SqZw - -Pre-Installation Checklist --------------------------- - -#. **Install Docker** - Visit `docker.com `__ to download and install the recommended version of Docker for your operating system. - -#. **Install DDEV** - Follow the `DDEV installation guide `__ to install DDEV. - -DDEV and Docker need to be installed on your local machine before TYPO3 can be installed. If you need help installing DDEV, support can be found on the `DDEV Discord server `__. - -Create the Installation Directory ---------------------------------- - -Create an empty directory to install TYPO3 in and then change into that directory: - -.. code-block:: bash - - mkdir t3example - cd t3example - -Create a new DDEV Project -------------------------- - -The `ddev config` command will prompt for information about your project. TYPO3 is in the list -of preconfigured projects. - -.. code-block:: bash - - ddev config --php-version 8.1 - - # Give the following answers when prompted: - - Project name (t3example): - - Docroot Location (current directory): public - - Create docroot at /home/myuser/projects/t3/t3example/public? [Y/n] (yes): Y - - Project Type [php, typo3, ...] (php): typo3 - -project-type - Should always be "typo3" - -docroot - Is the folder in which all files that have to be reached by - the browser. This folder is commonly called :file:`public`. - -create-docroot - As the directory does not exist yet, this allows DDEV to create it for you. - -Alternatively you can skip the prompt by supplying all of the required parameters in a single command: - -.. code-block:: bash - - ddev config --project-type=typo3 --docroot=public --create-docroot --php-version 8.1 - -Start the project ------------------ - -.. code-block:: bash - - ddev start - -The webserver is now running but TYPO3 is not installed. - -Install TYPO3 -------------- - -.. code-block:: bash - - ddev composer create "typo3/cms-base-distribution:^12" - -As we just created the project and have no, answer yes -when prompted if it is ok to overwrite files in this directory. - -You now have a **Composer-based TYPO3 installation**. - -Run the Installation Setup Tool -------------------------------- - -Setup TYPO3 in the console -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. versionadded:: 12.1 - Starting with TYPO3 12.1 a new CLI command `setup` is introduced as - an alternative to the existing GUI-based web installer. - -Interactive / guided setup (questions/answers): - -.. code-block:: bash - - ddev exec ./vendor/bin/typo3 setup - -Setup TYPO3 with the 1,2,3 Install Tool in the browser -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Create a file called :file:`FIRST_INSTALL` in your webroot - -.. code-block:: bash - - ddev exec touch public/FIRST_INSTALL - -Open the installer - -.. code-block:: bash - - ddev launch typo3/install.php - -Go to the TYPO3 backend: - -.. code-block:: bash - - ddev launch typo3 - -And login with the credentials you just provided. - - -Managing the Database ---------------------- - -Upon calling :bash:`ddev config` DDEV automatically created a database for -you. DDEV also created a file called :file:`config/system/additional.php` -in which it stored the database credentials for you. - -During the installation setup process TYPO3 created all the tables it needed. -If you want to have a look at the database, you can run the following command: - -.. code-block:: bash - - ddev launch -p - -Sending E-Mail --------------- - -DDEV creates :file:`config/system/additional.php` -to fake sending mails. You can see what mails have been sent here: - -.. code-block:: bash - - ddev launch -m - -Stopping a DDEV Instance ------------------------- - -If you want to stop all projects from running you can call: - -.. code-block:: bash - - ddev poweroff - -The projects will stay configured and databases will be persisted. - -Deleting a DDEV Instance ------------------------- - -If you want to delete the project you just created you can remove it by -calling the following command in your new projects root folder: - -.. code-block:: bash - - ddev delete --omit-snapshot - -This will remove all containers from the project and delete the database. - -Afterwards you can safely delete the project's root folder. diff --git a/Documentation/Installation/Updates/Index.rst b/Documentation/Installation/Updates/Index.rst new file mode 100644 index 00000000..6bf16c72 --- /dev/null +++ b/Documentation/Installation/Updates/Index.rst @@ -0,0 +1,157 @@ +.. include:: /Includes.rst.txt + +.. _getting-started-typo3-updates: + +================= +Maintaining TYPO3 +================= + +.. contents:: + :caption: Content on this page + +.. _when-and-why-updates: + +When and why should we perform TYPO3 updates? +============================================= + +With the newest version of TYPO3 you receive free bugfixes and free security patches +for at least three years from the time of the first LTS minor (for example v13.1) release. + +In TYPO3 however, we follow a specific `cycle `__ which usually takes 1.5 years long. Every +1 and a half year a new TYPO3 version occurs. + +We explain the different parts in the `roadmap `__ now. +When you follow the roadmap you see dark red strokes. They represent the **sprint releases**. +Sprint release is a version that starts for example with v13.0 and then the next sprint release follows with v13.1. +After the last sprint release (v13.3) the **Long Term Support release (LTS release)** v13.4 follows. +The aim of the sprint releases is to test the new code with the new features extensively, until the LTS-release is +reached. Therefore, the reason for sprint releases is to make the new code with the new features as agile and stable +as possible. The order is: sprint release (0), sprint release (1), sprint release (2), sprint release (3), LTS release (4). +Sometimes more sprint releases are possible. + +The green area represents the **regular maintenance** state. The orange area is the time where the focus lays on fixing +bugs - so it is the **bug fixing phase**. The light orange area corresponds to the **extended support**. This means, when +you want to get further bugfixes you have to book an +`extended support `__ which usually costs money. + +Before we look a bit deeper into the :ref:`types of updates ` +we summarize how a TYPO3 user should act with respect to TYPO3 updates: + +* When a new major LTS version is released, users **should** focus on updating to this version as soon as possible. +* When a new minor version is released, users **must** update to the new minor version, since the previous minor version is **not** supported any more. +* When a new patch level version is released, users **should** always update to the new version, because it contains **important** bugfixes and security fixes (if announced). Here you find the `security advisories `__. + +Additionally, users should take care of updated extensions on a regular schedule +in order to use the most recent versions. + +When you feel safe with the concepts of TYPO3 updates you can in general use +this :ref:`Upgrade Guide `. + +Now we explain the types of updates. + +.. _getting-started-major-minor-patchlevel-updates: + +Major, minor and patch level updates +==================================== + +In TYPO3 you can update your TYPO3 version. There exist three different types +of updates: + +#. Major updates: for example, from 12.4.23 to 13.0.0 +#. Minor updates: for example, from 13.0 to 13.1 +#. Patch and bugfix level updates (often security updates): for example, from 13.4.0 to 13.4.1 + + +.. _getting-started-major-typo3-updates: + +Major updates +------------- + +In major updates you will definitely have **breaking changes** and incompatible API +changes. +A breaking change can cause your system to break. You need to find a replacement +for any usage that was removed or changed. For example in version 13.0 was a +breaking change :ref:`Breaking: #101266 - Remove RequireJS `. +That means, whenever and wherever you used `requireJsModules` you have to find +an replacement when you would like to have a working JavaScript functionality. +All files that you included with `requireJsModules` will not be loaded anymore. +When you update your TYPO3 version you should be aware of those changelog entries +which you can find in the :doc:`Changelog reference `. +When dealing with a major version updates you usually have to use the backend module called **Upgrade wizard**. This +module will take care of database table changes that came along with the new TYPO3 version. +In TYPO3, we can separate a TYPO3 update into three stages: the :ref:`pre-upgrade stage `, +:ref:`actual update ` and the :ref:`post-upgrade stage `. + +.. _getting-started-minor-typo3-updates: + +Minor updates +------------- + +Minor changes - `11.*.2`: For example 11.5 has new functionalities compared to +11.4. The version 11.5 is compatible with 11. So within a version like major +11, the steps do not lead to breaking changes. For example in version 13.3 +compared to version 13.2 a new +:ref:`Feature: #101252 - Introduce ErrorHandler for 403 errors with redirect option ` +was introduced. +When performing minor updates, you often have to clear the cache, run the Upgrade wizard, and run a database compare. +Usually minor and patch changes are also referred to as **non-breaking** changes. + +.. _getting-started-patchlevel-typo3-updates: + +Patchlevel updates +------------------ + +Patchlevel changes - `11.5.*`: The version 11.5.2 indicates a backwards-compatible bugfix or patch release. +It can be for example a security update. Clear the cache and check if the website is working as expected. For +further information we refer to the :ref:`Patch/Bugfix update guide`. + +.. _getting-started-extension-updates: + +Extension updates +================= + +In a TYPO3 instance you have usually third party extensions installed. When you update your TYPO3 version, you +have to update the third-party extensions too. In the **`TYPO3 Extension Repository (TER) `__** +you can enter the name of that extension and get information about supported TYPO3 versions. +Some extension authors prefer to only publish their extensions on `packagist `__. +When the extension does not exist for the current TYPO3 version you can create an +issue or search for an alternative extension offering the same functionality. +For example, the `gridelements extension`__ +was replaced by the `container extension`__, both +having equal functionalities. + +Useful commands to simplify the updates of extensions can be found in the :ref:`Upgrade extensions guide `. + +.. _getting-started-deprecations: + +Deprecations +============ + +In TYPO3, deprecations indicate that a specific functionality will be removed in the next TYPO3 version. For further +information we refer to the :ref:`article about deprecation `. For example the +:ref:`deprecation: #105171 - INCLUDE_TYPOSCRIPT TypoScript syntax ` - a deprecation +notice telling you that in TYPO3 v14 you can't use the TypoScript syntax :typoscript:`INCLUDE_TYPOSCRIPT` to include TypoScript files anymore. + +.. _getting-started-little-helpers: + +Little Helpers: Rector and Fractor +================================== + +In general you can use extensions like `Rector `__ +or `Fractor `__ to find and replace deprecations. To reach this, you have to +fill out a configuration file (in Rector :file:`rector.php`, in Fractor :file:`fractor.php`) that defines +the scope in which you want to **perform deprecation replacements**. For both extensions, only the rules that +exist can find the respective deprecation. For instance, check the +`overview of existing rules for Rector `__ +or `search for your desired Rector rule `__ if it already exists. When a rule is missing, you can't +find the deprecation using the extension. If you feel able to create your own Rector or Fractor rule and want to share +it with the TYPO3 community, everyone using these tools would be happy to benefit from your efforts. + +.. _getting-started-language-updates: + +Language updates +================ + +After a TYPO3 update, you have to update your translations. We refer to the article +:ref:`Update backend translations `. You have to update the language packs that +you are using after each TYPO3 update. diff --git a/Documentation/Installation/Version.rst b/Documentation/Installation/Version.rst new file mode 100644 index 00000000..f367ba6c --- /dev/null +++ b/Documentation/Installation/Version.rst @@ -0,0 +1,17 @@ +:navigation-title: TYPO3 Version +.. include:: /Includes.rst.txt +.. _typo3-version: + +================================ +TYPO3 version and which to start +================================ + +To get started with TYPO3, it’s recommended to use the latest Long Term Support +(LTS) version. LTS versions are stable, widely used and supported for an extended +period, making them ideal for beginners and production environments. + +You can find more information about the latest TYPO3 versions, their features +and support timelines `here `__. + +Using the latest version ensures you benefit from the most up-to-date tools and +documentation! diff --git a/Documentation/Installation/_ApplicationContext/ApplicationContextInformation.png b/Documentation/Installation/_ApplicationContext/ApplicationContextInformation.png new file mode 100644 index 00000000..6c75274e Binary files /dev/null and b/Documentation/Installation/_ApplicationContext/ApplicationContextInformation.png differ diff --git a/Documentation/Installation/_ApplicationContext/_additional-2.php b/Documentation/Installation/_ApplicationContext/_additional-2.php new file mode 100644 index 00000000..5ffd3b8d --- /dev/null +++ b/Documentation/Installation/_ApplicationContext/_additional-2.php @@ -0,0 +1,24 @@ + [ + 'debug' => '0', + ], + 'FE' => [ + 'debug' => '0', + ], + 'SYS' => [ + 'trustedHostsPattern' => 'SERVER_NAME', // keep this if it is working on your server + 'devIPmask' => '127.0.0.1,::1', // localhost oly + 'displayErrors' => 0, // Turn off error reporting + ], +]; + +$GLOBALS['TYPO3_CONF_VARS'] = array_replace_recursive($GLOBALS['TYPO3_CONF_VARS'], (array)$customChanges); +$file = realpath(__DIR__) . '/credentials.php'; +if (is_file($file)) { + include_once($file); + $GLOBALS['TYPO3_CONF_VARS'] = array_replace_recursive($GLOBALS['TYPO3_CONF_VARS'], (array)$customChanges); +} diff --git a/Documentation/Installation/_ApplicationContext/_additional.php b/Documentation/Installation/_ApplicationContext/_additional.php new file mode 100644 index 00000000..e1c289ec --- /dev/null +++ b/Documentation/Installation/_ApplicationContext/_additional.php @@ -0,0 +1,13 @@ + [ + 'installToolPassword' => 'some encrypted string', + ], + 'DB' => [ + 'Connections' => [ + 'Default' => [ + 'dbname' => 'my_db', + 'host' => 'localhost', + 'password' => '', + 'user' => 'my_db_user', + ], + ], + ], + 'SYS' => [ + 'encryptionKey' => 'replace with generated encryption key', + ], +]; diff --git a/Documentation/Installation/_ApplicationContext/_docker-compose.context.yaml b/Documentation/Installation/_ApplicationContext/_docker-compose.context.yaml new file mode 100644 index 00000000..4c375ef4 --- /dev/null +++ b/Documentation/Installation/_ApplicationContext/_docker-compose.context.yaml @@ -0,0 +1,4 @@ +services: + web: + environment: + - TYPO3_CONTEXT=Development/Local \ No newline at end of file diff --git a/Documentation/IntroductionPackage/Index.rst b/Documentation/IntroductionPackage/Index.rst deleted file mode 100644 index 0e5ee04d..00000000 --- a/Documentation/IntroductionPackage/Index.rst +++ /dev/null @@ -1,99 +0,0 @@ -.. include:: /Includes.rst.txt - - -.. _introductionpackage_index: - -==================== -Introduction Package -==================== - -If you are using TYPO3 for the first time you may want to -see a working example of the CMS before you start work on -your own project. - -The `Official Introduction Package -`__ showcases many of -TYPO3's capabilities and gives you the ability to try them first hand. -The Introduction Package utilizes the `bootstrap_package extension -`__ -to generate multiple responsive HTML templates that you can select and try -out. - -It also features examples of the different kinds page content that you -typically see on a website, such as paragraphs of text, images, tables -and navigation menus. - -.. _installing-introduction-package-with-composer: -.. _installing-distributions-wit-composer: - -Installing The Introduction Package -=================================== - -To install the Introduction Package run the following command: - -.. tabs:: - - .. group-tab:: bash - - .. code-block:: bash - - composer require typo3/cms-introduction - - .. group-tab:: powershell - - .. code-block:: powershell - - composer require typo3/cms-introduction - - .. group-tab:: ddev - - .. code-block:: bash - - ddev composer require typo3/cms-introduction - -This command will download and activate the extension. - -Then run: - -.. tabs:: - - .. group-tab:: bash - - .. code-block:: bash - - vendor/bin/typo3 extension:setup - - .. group-tab:: powershell - - .. code-block:: powershell - - vendor/bin/typo3 extension:setup - - .. group-tab:: ddev - - .. code-block:: bash - - ddev typo3 extension:setup - -This will set up the extension ready for immediate use. - -.. _install-intro-first-steps: - -First steps with the Introduction Package -========================================= - -The "Introduction Package" creates a number of pre-built pages within the page tree. The top level page is named "Congratulations". - -.. rst-class:: bignums-xxl - -#. Click on "Congratulations" in the page tree. - - -#. View the page in the frontend: - - Click on the :guilabel:`"View webpage"` icon (with an eye) to view the page - in the frontend. - -.. include:: ../Images/AutomaticScreenshots/Frontend/IntroductionPackageHome.rst.txt - - diff --git a/Documentation/Localization.ru_RU/About.rst b/Documentation/Localization.ru_RU/About.rst new file mode 100644 index 00000000..54492c57 --- /dev/null +++ b/Documentation/Localization.ru_RU/About.rst @@ -0,0 +1,48 @@ +:orphan: + +.. include:: /Includes.rst.txt + +.. this file is linked from Index.rst but not included in the menu + +.. _about: +.. _about-this-document: + +=================== +Об этом руководстве +=================== + +Этот документ знакомит новых пользователей с TYPO3, ее основными функциями и даёт общее представление о настройке и администрированию CMS. + +По завершению знакомства с этим руководством, вы научитесь устанавливать CMS, получите представление об администрировании системы из интерфейса управления (backend) и создании шаблонов страниц сайта. + +Перевод на французский +====================== + +Перевод на французский язык был выполнен Джонатаном Ируленом. + +В настоящее время проводятся работы над оптимизацией рендеринга. В связи с чем имеется проблема с отрисовкой перевода. Переведенная версия по-прежнему существует в отдельной ветке **fr** и должна быть восстановлена только после того, как будут решены проблемы с рендерингом и французская ветка будет воссоздана для TYPO3 v9. + +Перевод на русский +================== + +Перевод на русский язык выполнен `Андреем Аксёновым +`__. Актуальность перевода TYPO3 v12, август 2023 года. + + +.. _status: + +Статус текущего руководства +=========================== + +Текущая версия обновлена в соответствии с требованиями TYPO3 CMS |release|. + + +.. _credits: + +Благодарность +============= + +Данное руководство изначально было написано Каспером Скорёем и адаптировано для TYPO3 CMS версии 4.5 LTS Филиппом Гампе, Мартином Хольцем, Сюзанной Моог и Франсуа Сутером. Затем было пересмотрен и обновлена до версии 6.2 LTS Гвидо Хаазе, до версии 7 LTS Франсуа Сутером, и до версии 9.5 LTS Сибиллой Петерс. Том Уорвик внес в ветку 9.5 несколько языковых улучшений для повышения удобочитаемости. + +Поскольку документация TYPO3 теперь может редактироваться совместно всем сообществом TYPO3, целый ряд других людей внесли свой вклад и улучшили это руководство. Вы можете ознакомиться со `списком всех соавторов на GitHub +`__. diff --git a/Documentation/Localization.ru_RU/Concepts/Index.rst b/Documentation/Localization.ru_RU/Concepts/Index.rst new file mode 100644 index 00000000..a36230a9 --- /dev/null +++ b/Documentation/Localization.ru_RU/Concepts/Index.rst @@ -0,0 +1,86 @@ +.. include:: /Includes.rst.txt + +.. index:: backend, frontend, concepts + +.. _concepts: + +=============== +Концепции TYPO3 +=============== + +Внутренний и внешний интерфейсы (backend и frontend) +==================================================== + +TYPO3 подразделяется на две части-интерфейсы внутренний (backend) и внешний (frontend). + +.. figure:: /Images/Illustrations/backend_frontend.png + +Внутренний интерфейс (backend) – это административная часть CMS (системы управления сайтом), доступ к которой имеется только у пользователей со специальным доступом. А внешний интерфейс (frontend) – это сам сайт, как его видят посетители, открывая его в браузере. + +Внутренний интерфейс / Backend +============================== + +.. figure:: /Images/Illustrations/backend.png + +Основное предназначение внутреннего интерфейса – удобство создания и публикации содержимого на сайте. + +The backend is also used to configure a TYPO3 installation. Domains, languages and other information that determine how a site behaves are managed via the backend. Tasks such as adding backend users and managing third-party extensions also take place in the backend. Также внутренний интерфейс (Бэкэнд / Backend) нужен для настройки и конфигурирования самой системы TYPO3. Это управление доменами, языками и другой информацией, определяющей поведение сайта – все осуществляется через внутренний интерфейс. Такие задачи, как добавление пользователей и управление сторонними расширениями, также выполняются во внутреннем интерфейсе администрирования. + +Доступ во внутренний интерфейс +------------------------------ + +Авторизоваться во внутреннем интерфейсе можно, набрав :samp:`example.org/typo3`. + +.. figure:: /Images/Illustrations/backend_login.png + +По умолчанию при входе в систему пользователи видят панель Общие сведения о CMS. + +Модули внутреннего интерфейса +----------------------------- + +.. container:: row + + .. container:: col-md-4 + + .. figure:: /Images/Illustrations/backend_module.png + + .. container:: col-md-8 + + Внутренний интерфейс содержит ряд модулей, сгруппированных по задачам. Права доступа пользователей определяют, какие модули будут доступны и видны каждому пользователю при входе во внутренний интерфейс. + + - Группа модулей Веб / Web содержит набор модулей для создания и управления как страницами, так и их содержимым. + + - Группа модулей Управление сайтом / Site Management предназначен для настройки сайта. Из этого модуля можно задать название сайта, назначить ему домены и выбрать языки. + + - Группа модулей Файл / Filelist предоставляет удобный способ просмотра и управления файлами, включая документы, изображения и видео. + + - Группа модулей Инструменты управления / Admin Tools, это набор административных модулей для выполнения различных задач по обслуживанию и обновлению системы. Этот модуль также включает менеджер расширений, где можно включать и отключать любые сторонние расширения. + + - Группа модулей Система / System содержит модули, позволяющие администраторам управлять доступом ко внутреннему интерфейсу, просматривать журналы ошибок, и предоставляющие информацию, характерную для данной установки. + +Расширения +---------- + +.. figure:: /Images/Illustrations/extensions.png + +Расширения, разработанные сообществом, представляют собой ряд решений, позволяющих расширить возможности TYPO3. Расширения могут быть самыми разными – от небольших, выполняющих конкретные задачи, до крупных, предоставляющих целый набор функциональных возможностей, таких как расширение TYPO3 Blog Extension. + + +Внешний интерфейс / Frontend +============================ + +.. figure:: /Images/Illustrations/frontend.png + +Внешний интерфейс объединяет созданное во внутреннем интерфейсе содержимое с HTML-шаблонами, настроенными для текущего сайта, для генерации веб-страниц. + +Для этого в TYPO3 используется механизм шаблонизации Fluid, который служит связующим звеном между добавляемым пользователями содержимым и разработанными шаблонами дизайна сайта. + +Типичный шаблон Fluid содержит код HTML, определяющий структуру страницы, и теги Fluid, выполняющие различные задачи. + +Например, простая веб-страница, содержащая меню навигации, блок текста и логотип компании, будет содержать три тега Fluid. + +- Тег для вставки элемента содержимого, содержащего блок текста. +- Еще один, динамически формирующий главное навигационное меню. +- Третий тег для размещения логотипа компании. + +Ресурсы (assets) сайта, такие как HTML, CSS и JavaScript, хранятся в пакете сайта (site package). diff --git a/Documentation/Localization.ru_RU/Extensions/Index.rst b/Documentation/Localization.ru_RU/Extensions/Index.rst new file mode 100644 index 00000000..2d5558f4 --- /dev/null +++ b/Documentation/Localization.ru_RU/Extensions/Index.rst @@ -0,0 +1,54 @@ +.. include:: /Includes.rst.txt + +.. _extensions_index: + +======================= +Работа с расширениями +======================= + +.. container:: row m-0 p-0 + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Управление расширениями ` + + .. container:: card-body + + Информация о том, как находить, устанавливать и управлять расширения с помощью Composer. + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: `Установка локальных расширений `_ + + .. container:: card-body + + Информация о том, как устанавливать локальные расширения, включая пакеты сайта (sitepackages) и пользовательские расширения, с помощью Composer. + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Управление расширениями - традиционное руководство ` + + .. container:: card-body + + В данном руководстве представлена информация о том, как управлять расширениями с помощью внутреннего интерфейса TYPO3 и репозитория расширений TYPO3 Extension Repository (TER) без использования Composer. Этот способ управления расширениями в настоящее время устарел. + + +.. toctree:: + :hidden: + :titlesonly: + + Management + Установка локальных расширений + LegacyManagement diff --git a/Documentation/Localization.ru_RU/Extensions/LegacyManagement.rst b/Documentation/Localization.ru_RU/Extensions/LegacyManagement.rst new file mode 100644 index 00000000..0ce14971 --- /dev/null +++ b/Documentation/Localization.ru_RU/Extensions/LegacyManagement.rst @@ -0,0 +1,123 @@ +.. include:: /Includes.rst.txt + +.. _extensions_legacy_management: + +================================== +Управление расширениями - традиционное руководство +================================== + +Установка расширения с помощью менеджера расширений +=================================================== + +Во внутреннем интерфейсе: + +.. rst-class:: bignums + +1. Перейдите в модуль :guilabel:`"Инструменты управления" > "Расширения"` / :guilabel:`"ADMIN TOOLS" > "Extensions"` +2. Вверху выберете :guilabel:`"Получить расширения"` / :guilabel:`"Get Extensions"` +3. Щелкните :guilabel:`"Обновить"` / :guilabel:`"Update now"` + + Кнопка вверху справа + +4. Введите название расширения в поле поиска +5. Щелкните :guilabel:`"Вперед"` / :guilabel:`"Go"` +6. Щелкните по значку действий слева от названия расширения: + + :guilabel:`"Импортировать и установить"` / :guilabel:`"Import and Install"` + + Теперь расширение установлено, но не активировано. Чтобы активировать: + +7. Выберете :guilabel:`"Установленные расширения"` / :guilabel:`"Installed Extensions"` сверху. +8. Щелкните по значку :guilabel:`"+"` напротив расширения в строке :guilabel:`"A/D"`. + +.. _uninstall_extension_without_composer: + +Удаление расширения без использования Composer +======================================= + +Если TYPO3 установлен через composer, то необходимо удалять расширения через composer. + +Проверка зависимостей +------------------ + +Сначала выясните, какие другие расширения и функции вашей установки TYPO3 зависят от расширения, которое вы хотите удалить. Узнать о зависимостях можно, обратившись к `Extension Repository `__. Найдите расширение, которое вы хотите удалить, и другие, которые вы установили. Прочитайте в руководстве по каждому расширению разделы 'Dependencies' и 'Reverse dependencies'. + +Проверьте, были ли сделаны ссылки на расширение в каких-либо файлах установки, конфигурации или других файлах TypoScript. Проверьте, не включили ли вы в свой сайт подключаемый модуль из этого расширения. Подумайте о результатах их удаления и, наконец, сделайте это. + +Если вы работаете локально или на тестовом сервере, можно попробовать удалить расширение. Менеджер расширений предупреждает о зависимостях, прописанных в секции ограничений расширения :file:`ext_emconf.php`. Заметим, однако, что вы зависите от того, насколько добросовестно разработчики расширений отмечают все зависимости в этом конфигурационном файле. + +Если вы получаете исключение и из-за этого не можете получить доступ к Менеджеру расширений, то в крайнем случае можно удалить/установить расширения вручную с помощью :file:`PackageStates.php`, см. :ref:`uninstall-extension-manually`. + +.. tip:: + Не удаляйте расширения методом проб и ошибок на рабочих системах, особенно в условиях дефицита времени. + +.. _uninstall-extension-backend: + +Деинсталляция / деактивация расширения через внутренний интерфейс TYPO3 +-------------------------------------------------- + +.. include:: ../Images/AutomaticScreenshots/ExtensionManager/UninstallExtension.rst.txt + + +Войдите во внутренний интерфейс TYPO3 и откройте менеджер расширений ('Ext Manager'). В меню выберите пункт 'Install extensions' ("Установить расширения"). Будет выведен список установленных расширений. + +С левой стороны находится значок, показывающий статус каждого расширения и то, что можно сделать: + +* Значок установки расширения со знаком плюс: Расширение не установлено (щелкните один раз, для установки). +* Значок удаления расширения со знаком минус: Расширение установлено и его можно запускать (щелкните один раз, для удаления). + +Рядом с расширением, которое необходимо удалить, щелкните на значке Extension UnInstall. Через несколько секунд значок изменится на серый значок установки расширения. + + +.. _remove-extension-backend: + +Удаление расширения через внутренний интерфейс TYPO3 +-------------------------------------------------- + +После успешной деинсталляции расширения через Менеджер расширений можно удалить его навсегда, нажав на символ корзины "Удалить" рядом с записью расширения в Менеджере расширений. + +.. _uninstall-extension-manually: + +Деинсталяция расширения вручную +---------------------------------- + +Иногда расширение вызывает проблему, из-за которой внутренний интерфейс TYPO3 не может быть открыт. В этом случае расширение можно удалить вручную. Это не совсем обычная практика, а крайняя мера. + +Начиная с LTS8 сделать это можно, удалив конфигурацию расширений из файла :file:`PackageStates.php`. + +.. rst-class:: bignums + +#. Откройте файл :file:`typo3conf/PackageStates.php` +#. Найдите расширение по ext_key в массиве. + + .. code-block:: php + :caption: typo3conf/PackageStates.php + + 'ext_key' => [ + 'packagePath' => 'typo3conf/ext/ext_key/', + ], + ... + +#. Удалите это вхождение. + +.. _remove-extension-manually: + +Удаление расширения вручную +------------------------------ +Удаление расширений вручную не является обычной практикой и должно выполняться только в крайнем случае. Удалять следует только то расширение, которое было успешно деинсталлировано. Сначала сделайте резервную копию. Затем можно удалить расширение навсегда, удалив его папку в :file:`typo3conf/ext/[extensionname]`. Соответствующие таблицы базы данных можно удалить в :guilabel:`Install Tool -> Important Actions -> Database analyzer -> Compare current database with specification`. + +Дополнительная информация +====================== + +Приведенные ниже сведения не зависят от того, выполняется ли установка с Composer или без него. + +.. _find-out-extension-key-legacy: + +Поиск ключа расширения для расширения +------------------------------------------- + +Опять же, зайдите в `Репозиторий расширений `__ и найдите расширение. + +Ключ расширения указан сверху. Для `расширения news `__ ключом расширения является `news`. + +Ключ расширения можно также увидеть в файловой системе в каталоге :file:`public/typo3conf/ext/`. Имя каталога расширения совпадает с именем ключа расширения. diff --git a/Documentation/Localization.ru_RU/Extensions/Management.rst b/Documentation/Localization.ru_RU/Extensions/Management.rst new file mode 100644 index 00000000..2b368949 --- /dev/null +++ b/Documentation/Localization.ru_RU/Extensions/Management.rst @@ -0,0 +1,123 @@ +.. include:: /Includes.rst.txt + +.. _extensions_management: + +=================== +Управление расширениями +=================== + +Как системные расширения, так и расширения сторонних разработчиков обрабатываются с помощью Composer. Composer устанавливает расширение, а также необходимые зависимости. Composer применяется и для удаления расширений. + +.. _install-extension-with-composer: + +Установка расширений +===================== + +Поиск имени пакета Composer для расширения +----------------------------------------------- + +Зайдите в `Репозиторий расширений `__ и найдите расширение. + +На странице расширения под :guilabel:`"Composer support"` будет указана команда Composer, необходимая для установки данного расширения. + +Например, `расширение news `__ имеет имя пакета `georgringer/news`. + +Обычно имя пакета имеет вид vendor + слэш + ключ расширения. Однако если в ключе расширения имеется символ подчеркивания, то в имени пакета она заменяется на тире. Например: +`Extension Builder `__: + +* **extension key**: `extension_builder` +* **vendor**: `friendsoftypo3` +* **Composer package name**: `friendsoftypo3/extension-builder` + + + +Для установки расширения используйте :bash:`composer require`. +----------------------------------------------------- + +.. code-block:: bash + :caption: /var/www/site/$ + + composer require + +Для установки расширения news: + + +.. code-block:: bash + :caption: /var/www/site/$ + + composer require georgringer/news + +Это добавит требование расширения в инсталляцию :file:`composer.json` и установит расширение. + +Несмотря на то, что расширение устанавливается и активируется автоматически, перед использованием его необходимо настроить: + +Настройка расширения +------------------- + +.. code-block:: bash + :caption: /var/www/site/$ + + ./vendor/bin/typo3 extension:setup + +Команда extension setup берет на себя выполнение дополнительных процедур установки, таких как миграция базы данных и очистка кэша при необходимости. Команда установки расширения не привязана к конкретному расширению, а рассматривает общее состояние и выполняет все необходимые действия. + +Удаление расширений +======================= + +Команда composer `remove` деинсталлирует расширение. + +.. code-block:: bash + :caption: /var/www/site/$ + + composer remove georgringer/news + +Обновленный файл :file:`composer.lock` должен быть зафиксирован в системе контроля версий. + +.. _install_local_extensions_using_composer: + +Установка локальных расширений +=========================== + +Локальные расширения, включая пакеты сайта и пользовательские расширения, также должны устанавливаться с помощью Composer. + +Пользовательские расширения должны размещаться в специальном локальном каталоге: `documentroot/packages`. + +После создания этого каталога обновите установку `composer.json` и добавьте этот каталог в качестве нового репозитория: + + +.. code-block:: bash + :caption: /var/www/site/composer.json + + { + "repositories": [ + { + "type": "path", + "url": "./packages/*/" + }, + ], + } + +Затем можно выполнить команду `composer require` для установки локального расширения `my-local-extension` с поставщиком `vendor`: + + +.. code-block:: bash + :caption: /var/www/site/$ + + composer require vendor/my-local-extension:@dev + +Выполняя эту команду, Composer находит папку `vendor/my-local-extension` и после выполнения команды `composer install` симлинкует ее с папкой `typo3conf/ext/my-local-extension`. Приведенная выше установка определяет, что расширение должно быть помещено composer'ом в папку `:file:packages/my-local-extension`, если оно там еще не находилось. + + +Дополнительная информация +====================== + +.. _find-out-extension-key: + +Определение ключа расширения для расширения +------------------------------------------- + +Для любого установленного расширения ключ расширения можно найти, заглянув в файловую систему в каталог :file:`public/typo3conf/ext/`. Имя каталога расширения совпадает с ключом расширения. + +Перед установкой расширения ключ расширения можно найти на его странице в `TYPO3 Extension Repository (TER) `__. + +Ключ расширения указан сверху. Для `расширения news `__ ключом расширения является `news`. diff --git a/Documentation/Images/AutomaticScreenshots/BackendUsers/BackendUserListing.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/BackendUserListing.png similarity index 100% rename from Documentation/Images/AutomaticScreenshots/BackendUsers/BackendUserListing.png rename to Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/BackendUserListing.png diff --git a/Documentation/Images/AutomaticScreenshots/BackendUsers/BackendUserListing.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/BackendUserListing.rst.txt similarity index 100% rename from Documentation/Images/AutomaticScreenshots/BackendUsers/BackendUserListing.rst.txt rename to Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/BackendUserListing.rst.txt diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/CreateAdministrator.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/CreateAdministrator.png new file mode 100644 index 00000000..e0a6939d Binary files /dev/null and b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/CreateAdministrator.png differ diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/CreateAdministrator.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/CreateAdministrator.rst.txt new file mode 100644 index 00000000..2bc5cfaa --- /dev/null +++ b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/CreateAdministrator.rst.txt @@ -0,0 +1,7 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/BackendUsers/CreateAdministrator.png + :alt: Button to create an administrator + :class: with-shadow + + Create a new administrative user \ No newline at end of file diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/CreateAdministratorForm.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/CreateAdministratorForm.png new file mode 100644 index 00000000..b14fe447 Binary files /dev/null and b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/CreateAdministratorForm.png differ diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/CreateAdministratorForm.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/CreateAdministratorForm.rst.txt new file mode 100644 index 00000000..6fed3eab --- /dev/null +++ b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/CreateAdministratorForm.rst.txt @@ -0,0 +1,7 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/BackendUsers/CreateAdministratorForm.png + :alt: Form to create an administrator + :class: with-shadow + + Fill in the fields for the new administrative user \ No newline at end of file diff --git a/Documentation/Images/AutomaticScreenshots/BackendUsers/CreateNewUserSimpleEditor.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/CreateNewUserSimpleEditor.png similarity index 100% rename from Documentation/Images/AutomaticScreenshots/BackendUsers/CreateNewUserSimpleEditor.png rename to Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/CreateNewUserSimpleEditor.png diff --git a/Documentation/Images/AutomaticScreenshots/BackendUsers/CreateNewUserSimpleEditor.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/CreateNewUserSimpleEditor.rst.txt similarity index 100% rename from Documentation/Images/AutomaticScreenshots/BackendUsers/CreateNewUserSimpleEditor.rst.txt rename to Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/CreateNewUserSimpleEditor.rst.txt diff --git a/Documentation/Images/AutomaticScreenshots/BackendUsers/EditorUnhide.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/EditorUnhide.png similarity index 100% rename from Documentation/Images/AutomaticScreenshots/BackendUsers/EditorUnhide.png rename to Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/EditorUnhide.png diff --git a/Documentation/Images/AutomaticScreenshots/BackendUsers/EditorUnhide.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/EditorUnhide.rst.txt similarity index 100% rename from Documentation/Images/AutomaticScreenshots/BackendUsers/EditorUnhide.rst.txt rename to Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/EditorUnhide.rst.txt diff --git a/Documentation/Images/AutomaticScreenshots/BackendUsers/SettingsLanguage.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/SettingsLanguage.png similarity index 100% rename from Documentation/Images/AutomaticScreenshots/BackendUsers/SettingsLanguage.png rename to Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/SettingsLanguage.png diff --git a/Documentation/Images/AutomaticScreenshots/BackendUsers/SettingsLanguage.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/SettingsLanguage.rst.txt similarity index 100% rename from Documentation/Images/AutomaticScreenshots/BackendUsers/SettingsLanguage.rst.txt rename to Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/SettingsLanguage.rst.txt diff --git a/Documentation/Images/AutomaticScreenshots/BackendUsers/SwitchUserLanguage.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/SwitchUserLanguage.png similarity index 100% rename from Documentation/Images/AutomaticScreenshots/BackendUsers/SwitchUserLanguage.png rename to Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/SwitchUserLanguage.png diff --git a/Documentation/Images/AutomaticScreenshots/BackendUsers/SwitchUserLanguage.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/SwitchUserLanguage.rst.txt similarity index 100% rename from Documentation/Images/AutomaticScreenshots/BackendUsers/SwitchUserLanguage.rst.txt rename to Documentation/Localization.ru_RU/Images/AutomaticScreenshots/BackendUsers/SwitchUserLanguage.rst.txt diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/DebugSettings/ConfigurationPresets.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/DebugSettings/ConfigurationPresets.png new file mode 100644 index 00000000..ac00b6ef Binary files /dev/null and b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/DebugSettings/ConfigurationPresets.png differ diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/DebugSettings/ConfigurationPresets.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/DebugSettings/ConfigurationPresets.rst.txt new file mode 100644 index 00000000..3af6c7a2 --- /dev/null +++ b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/DebugSettings/ConfigurationPresets.rst.txt @@ -0,0 +1,7 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/DebugSettings/ConfigurationPresets.png + :alt: Configuration Presets Card + :class: with-shadow + + Choose a configuration preset \ No newline at end of file diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/DebugSettings/DebugSettings.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/DebugSettings/DebugSettings.png new file mode 100644 index 00000000..8d86aa38 Binary files /dev/null and b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/DebugSettings/DebugSettings.png differ diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/DebugSettings/DebugSettings.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/DebugSettings/DebugSettings.rst.txt new file mode 100644 index 00000000..288a3b6c --- /dev/null +++ b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/DebugSettings/DebugSettings.rst.txt @@ -0,0 +1,7 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/DebugSettings/DebugSettings.png + :alt: Debug Presets + :class: with-shadow + + Choose the debug preset \ No newline at end of file diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/ExtensionManager/UninstallExtension.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/ExtensionManager/UninstallExtension.png new file mode 100644 index 00000000..1201822e Binary files /dev/null and b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/ExtensionManager/UninstallExtension.png differ diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/ExtensionManager/UninstallExtension.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/ExtensionManager/UninstallExtension.rst.txt new file mode 100644 index 00000000..25a26745 --- /dev/null +++ b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/ExtensionManager/UninstallExtension.rst.txt @@ -0,0 +1,6 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/ExtensionManager/UninstallExtension.png + :class: with-shadow + + Select "Deactivate" in Extension Manager \ No newline at end of file diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Frontend/IntroductionPackageHome.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Frontend/IntroductionPackageHome.png new file mode 100644 index 00000000..d1baa790 Binary files /dev/null and b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Frontend/IntroductionPackageHome.png differ diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Frontend/IntroductionPackageHome.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Frontend/IntroductionPackageHome.rst.txt new file mode 100644 index 00000000..144aa940 --- /dev/null +++ b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Frontend/IntroductionPackageHome.rst.txt @@ -0,0 +1,6 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/Frontend/IntroductionPackageHome.png + :class: with-shadow + + TYPO3 Introduction Package Home Page \ No newline at end of file diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/InstallTool/InstallToolPassword.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/InstallTool/InstallToolPassword.png new file mode 100644 index 00000000..514c65f0 Binary files /dev/null and b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/InstallTool/InstallToolPassword.png differ diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/InstallTool/InstallToolPassword.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/InstallTool/InstallToolPassword.rst.txt new file mode 100644 index 00000000..5a61d2d0 --- /dev/null +++ b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/InstallTool/InstallToolPassword.rst.txt @@ -0,0 +1,7 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/InstallTool/InstallToolPassword.png + :alt: The install tool login + :class: with-shadow + + Enter the install tool password \ No newline at end of file diff --git a/Documentation/Images/AutomaticScreenshots/Modules/ManageLanguage.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/ManageLanguage.png similarity index 100% rename from Documentation/Images/AutomaticScreenshots/Modules/ManageLanguage.png rename to Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/ManageLanguage.png diff --git a/Documentation/Images/AutomaticScreenshots/Modules/ManageLanguage.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/ManageLanguage.rst.txt similarity index 100% rename from Documentation/Images/AutomaticScreenshots/Modules/ManageLanguage.rst.txt rename to Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/ManageLanguage.rst.txt diff --git a/Documentation/Images/AutomaticScreenshots/Modules/ManageLanguagePacksAddLanguage.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/ManageLanguagePacksAddLanguage.png similarity index 100% rename from Documentation/Images/AutomaticScreenshots/Modules/ManageLanguagePacksAddLanguage.png rename to Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/ManageLanguagePacksAddLanguage.png diff --git a/Documentation/Images/AutomaticScreenshots/Modules/ManageLanguagePacksAddLanguage.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/ManageLanguagePacksAddLanguage.rst.txt similarity index 100% rename from Documentation/Images/AutomaticScreenshots/Modules/ManageLanguagePacksAddLanguage.rst.txt rename to Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/ManageLanguagePacksAddLanguage.rst.txt diff --git a/Documentation/Images/AutomaticScreenshots/Modules/ManageLanguagePacksAddLanguageAddSuccess.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/ManageLanguagePacksAddLanguageAddSuccess.png similarity index 100% rename from Documentation/Images/AutomaticScreenshots/Modules/ManageLanguagePacksAddLanguageAddSuccess.png rename to Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/ManageLanguagePacksAddLanguageAddSuccess.png diff --git a/Documentation/Images/AutomaticScreenshots/Modules/ManageLanguagePacksAddLanguageAddSuccess.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/ManageLanguagePacksAddLanguageAddSuccess.rst.txt similarity index 100% rename from Documentation/Images/AutomaticScreenshots/Modules/ManageLanguagePacksAddLanguageAddSuccess.rst.txt rename to Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/ManageLanguagePacksAddLanguageAddSuccess.rst.txt diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/SiteManagement.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/SiteManagement.png new file mode 100644 index 00000000..d9457bd0 Binary files /dev/null and b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/SiteManagement.png differ diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/SiteManagement.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/SiteManagement.rst.txt new file mode 100644 index 00000000..54112d9d --- /dev/null +++ b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/SiteManagement.rst.txt @@ -0,0 +1,6 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/Modules/SiteManagement.png + :class: with-shadow + + Site management section of the modules menu \ No newline at end of file diff --git a/Documentation/Images/AutomaticScreenshots/Modules/SiteManagementEdit.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/SiteManagementEdit.png similarity index 100% rename from Documentation/Images/AutomaticScreenshots/Modules/SiteManagementEdit.png rename to Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/SiteManagementEdit.png diff --git a/Documentation/Images/AutomaticScreenshots/Modules/SiteManagementEdit.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/SiteManagementEdit.rst.txt similarity index 100% rename from Documentation/Images/AutomaticScreenshots/Modules/SiteManagementEdit.rst.txt rename to Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/SiteManagementEdit.rst.txt diff --git a/Documentation/Images/AutomaticScreenshots/Modules/SiteManagementLanguages.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/SiteManagementLanguages.png similarity index 100% rename from Documentation/Images/AutomaticScreenshots/Modules/SiteManagementLanguages.png rename to Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/SiteManagementLanguages.png diff --git a/Documentation/Images/AutomaticScreenshots/Modules/SiteManagementLanguages.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/SiteManagementLanguages.rst.txt similarity index 100% rename from Documentation/Images/AutomaticScreenshots/Modules/SiteManagementLanguages.rst.txt rename to Documentation/Localization.ru_RU/Images/AutomaticScreenshots/Modules/SiteManagementLanguages.rst.txt diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/EnableFirstInstall.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/EnableFirstInstall.png new file mode 100644 index 00000000..e73de91b Binary files /dev/null and b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/EnableFirstInstall.png differ diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/EnableFirstInstall.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/EnableFirstInstall.rst.txt new file mode 100644 index 00000000..592d5e98 --- /dev/null +++ b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/EnableFirstInstall.rst.txt @@ -0,0 +1,7 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/QuickInstall/EnableFirstInstall.png + :alt: Success message after download + :class: with-shadow + + Success message after download \ No newline at end of file diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step1SystemEnvironment.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step1SystemEnvironment.png new file mode 100644 index 00000000..71af7e42 Binary files /dev/null and b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step1SystemEnvironment.png differ diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step1SystemEnvironment.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step1SystemEnvironment.rst.txt new file mode 100644 index 00000000..3d1f0c31 --- /dev/null +++ b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step1SystemEnvironment.rst.txt @@ -0,0 +1,6 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/QuickInstall/Step1SystemEnvironment.png + :class: with-shadow + + Install Tool in 1-2-3 mode, first step. \ No newline at end of file diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step2DatabaseConnection.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step2DatabaseConnection.png new file mode 100644 index 00000000..96b2608f Binary files /dev/null and b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step2DatabaseConnection.png differ diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step2DatabaseConnection.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step2DatabaseConnection.rst.txt new file mode 100644 index 00000000..b2815dd7 --- /dev/null +++ b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step2DatabaseConnection.rst.txt @@ -0,0 +1,6 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/QuickInstall/Step2DatabaseConnection.png + :class: with-shadow + + Install Tool in 1-2-3 mode, second step. \ No newline at end of file diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step3ChooseDb.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step3ChooseDb.png new file mode 100644 index 00000000..ea026287 Binary files /dev/null and b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step3ChooseDb.png differ diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step3ChooseDb.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step3ChooseDb.rst.txt new file mode 100644 index 00000000..0cd574c6 --- /dev/null +++ b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step3ChooseDb.rst.txt @@ -0,0 +1,6 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/QuickInstall/Step3ChooseDb.png + :class: with-shadow + + Install Tool in 1-2-3 mode, third step. \ No newline at end of file diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step4AdminUserSitename.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step4AdminUserSitename.png new file mode 100644 index 00000000..59b1703f Binary files /dev/null and b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step4AdminUserSitename.png differ diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step4AdminUserSitename.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step4AdminUserSitename.rst.txt new file mode 100644 index 00000000..f93a5490 --- /dev/null +++ b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step4AdminUserSitename.rst.txt @@ -0,0 +1,6 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/QuickInstall/Step4AdminUserSitename.png + :class: with-shadow + + Install Tool in 1-2-3 mode, forth step. \ No newline at end of file diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step5LastStep.png b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step5LastStep.png new file mode 100644 index 00000000..25e18f65 Binary files /dev/null and b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step5LastStep.png differ diff --git a/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step5LastStep.rst.txt b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step5LastStep.rst.txt new file mode 100644 index 00000000..35dd0c07 --- /dev/null +++ b/Documentation/Localization.ru_RU/Images/AutomaticScreenshots/QuickInstall/Step5LastStep.rst.txt @@ -0,0 +1,6 @@ +.. Automatic screenshot: Remove this line if you want to manually change this file + +.. figure:: /Images/AutomaticScreenshots/QuickInstall/Step5LastStep.png + :class: with-shadow + + Install Tool in 1-2-3 mode, fifth step. \ No newline at end of file diff --git a/Documentation/Localization.ru_RU/Images/Illustrations/backend.png b/Documentation/Localization.ru_RU/Images/Illustrations/backend.png new file mode 100644 index 00000000..b2a0fc15 Binary files /dev/null and b/Documentation/Localization.ru_RU/Images/Illustrations/backend.png differ diff --git a/Documentation/Localization.ru_RU/Images/Illustrations/backend_frontend.png b/Documentation/Localization.ru_RU/Images/Illustrations/backend_frontend.png new file mode 100644 index 00000000..bc358b7f Binary files /dev/null and b/Documentation/Localization.ru_RU/Images/Illustrations/backend_frontend.png differ diff --git a/Documentation/Localization.ru_RU/Images/Illustrations/backend_login.png b/Documentation/Localization.ru_RU/Images/Illustrations/backend_login.png new file mode 100644 index 00000000..0c4f366c Binary files /dev/null and b/Documentation/Localization.ru_RU/Images/Illustrations/backend_login.png differ diff --git a/Documentation/Localization.ru_RU/Images/Illustrations/backend_module.png b/Documentation/Localization.ru_RU/Images/Illustrations/backend_module.png new file mode 100644 index 00000000..676de2cc Binary files /dev/null and b/Documentation/Localization.ru_RU/Images/Illustrations/backend_module.png differ diff --git a/Documentation/Images/Illustrations/extensions.png b/Documentation/Localization.ru_RU/Images/Illustrations/extensions.png similarity index 100% rename from Documentation/Images/Illustrations/extensions.png rename to Documentation/Localization.ru_RU/Images/Illustrations/extensions.png diff --git a/Documentation/Localization.ru_RU/Images/Illustrations/frontend.png b/Documentation/Localization.ru_RU/Images/Illustrations/frontend.png new file mode 100644 index 00000000..e495118c Binary files /dev/null and b/Documentation/Localization.ru_RU/Images/Illustrations/frontend.png differ diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendAccessCreateNewGroup.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessCreateNewGroup.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendAccessCreateNewGroup.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessCreateNewGroup.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendAccessCreateNewUser.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessCreateNewUser.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendAccessCreateNewUser.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessCreateNewUser.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendAccessModule.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessModule.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendAccessModule.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessModule.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendAccessModuleChangeOwner.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessModuleChangeOwner.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendAccessModuleChangeOwner.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessModuleChangeOwner.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendAccessModuleChangeRecursively.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessModuleChangeRecursively.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendAccessModuleChangeRecursively.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessModuleChangeRecursively.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendAccessModuleGroupChanged.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessModuleGroupChanged.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendAccessModuleGroupChanged.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessModuleGroupChanged.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendAccessNewGroupDBMount.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessNewGroupDBMount.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendAccessNewGroupDBMount.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessNewGroupDBMount.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendAccessNewGroupGeneralTab.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessNewGroupGeneralTab.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendAccessNewGroupGeneralTab.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessNewGroupGeneralTab.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendAccessNewUserGeneralTab.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessNewUserGeneralTab.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendAccessNewUserGeneralTab.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessNewUserGeneralTab.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendAccessNewUserMountFromGroups.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessNewUserMountFromGroups.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendAccessNewUserMountFromGroups.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessNewUserMountFromGroups.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendAccessSimulateResourceEditor.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessSimulateResourceEditor.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendAccessSimulateResourceEditor.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAccessSimulateResourceEditor.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendAdvancedEditorUser.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAdvancedEditorUser.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendAdvancedEditorUser.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendAdvancedEditorUser.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditAllowDeny.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditAllowDeny.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditAllowDeny.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditAllowDeny.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditDBMounts.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditDBMounts.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditDBMounts.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditDBMounts.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditExcludeFields.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditExcludeFields.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditExcludeFields.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditExcludeFields.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditExcludeFieldsExpanded.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditExcludeFieldsExpanded.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditExcludeFieldsExpanded.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditExcludeFieldsExpanded.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditFileMounts.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditFileMounts.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditFileMounts.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditFileMounts.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditFilePermissions.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditFilePermissions.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditFilePermissions.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditFilePermissions.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditGeneralTab.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditGeneralTab.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditGeneralTab.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditGeneralTab.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditLanguages.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditLanguages.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditLanguages.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditLanguages.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditModules.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditModules.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditModules.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditModules.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditPageTypes.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditPageTypes.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditPageTypes.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditPageTypes.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditSettings.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditSettings.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditSettings.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditSettings.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditTables.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditTables.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditTables.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendGroupEditTables.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendBackendUserGroupDetail.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendUserGroupDetail.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendBackendUserGroupDetail.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendUserGroupDetail.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendBackendUserGroups.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendUserGroups.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendBackendUserGroups.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendUserGroups.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendBackendUsersList.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendUsersList.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendBackendUsersList.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendUsersList.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendBackendUsersModule.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendUsersModule.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendBackendUsersModule.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendUsersModule.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendBackendUsersSimulate.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendUsersSimulate.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendBackendUsersSimulate.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendUsersSimulate.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendBackendUsersSimulateExit.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendUsersSimulateExit.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendBackendUsersSimulateExit.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendBackendUsersSimulateExit.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendEditorUnhide.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendEditorUnhide.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendEditorUnhide.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendEditorUnhide.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendFileMountList.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendFileMountList.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendFileMountList.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendFileMountList.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendGroupDbMount.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendGroupDbMount.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendGroupDbMount.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendGroupDbMount.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendResourceEditorUser.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendResourceEditorUser.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendResourceEditorUser.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendResourceEditorUser.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/BackendSimpleEditorUser.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendSimpleEditorUser.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/BackendSimpleEditorUser.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/BackendSimpleEditorUser.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/UserManagementCreateNewUser.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/UserManagementCreateNewUser.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/UserManagementCreateNewUser.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/UserManagementCreateNewUser.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/UserManagementCreateNewUserSimpleEditor.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/UserManagementCreateNewUserSimpleEditor.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/UserManagementCreateNewUserSimpleEditor.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/UserManagementCreateNewUserSimpleEditor.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/admin-tools-open.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/admin-tools-open.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/admin-tools-open.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/admin-tools-open.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/admin-tools.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/admin-tools.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/admin-tools.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/admin-tools.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/system.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/system.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/system.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/system.png diff --git a/Documentation/Images/ManualScreenshots/UserManagement/system_open.png b/Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/system_open.png similarity index 100% rename from Documentation/Images/ManualScreenshots/UserManagement/system_open.png rename to Documentation/Localization.ru_RU/Images/ManualScreenshots/UserManagement/system_open.png diff --git a/Documentation/Localization.ru_RU/Includes.rst.txt b/Documentation/Localization.ru_RU/Includes.rst.txt new file mode 100644 index 00000000..cdfcd2ed --- /dev/null +++ b/Documentation/Localization.ru_RU/Includes.rst.txt @@ -0,0 +1,2 @@ +.. this file can be used to include information on the top of each page +.. for example to add a hint for outdated versions diff --git a/Documentation/Localization.ru_RU/Index.rst b/Documentation/Localization.ru_RU/Index.rst new file mode 100644 index 00000000..424cc072 --- /dev/null +++ b/Documentation/Localization.ru_RU/Index.rst @@ -0,0 +1,165 @@ +.. include:: /Includes.rst.txt +.. _start: + +================================ +TYPO3 - Ознакомительное пособие +================================ + +Добро пожаловать ознакомительное пособие. Это первоначальное знакомство с TYPO3, где рассматриваются основные понятия системы, включая внутренний административный интерфейс управления системой – backend. + +В пособии приведена информация о настройке операционной системе хостинга и детальное руководство по установке системы TYPO3. + +---- + +.. container:: row m-0 p-0 + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Концепции ` + + .. container:: card-body + + Глава, предназначенная для новичков, знакомит с некоторыми основными понятиями TYPO3, включая бэкэнд (backend) – внутренний интерфейс администрирования TYPO3. + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Системные требования ` + + .. container:: card-body + + Системные требования к операционной системе хостинга, включая веб-сервер и базу данных, порядок их настройки перед установкой. + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Установка ` + + .. container:: card-body + + Глава, посвященная установке, содержит подробные инструкции по установке TYPO3, а также информацию о том, как развернуть TYPO3 для работающего сайта. + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Настройка ` + + .. container:: card-body + + Настройка, это следующие после установки этапы работы.Например, добавление доменов, настройки дополнительных пользователей и языков. + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Устранение неисправностей ` + + .. container:: card-body + + Поиск и устранение неисправностей, которые могут возникнуть в процессе установки. Глава «Устранение неисправностей» относится как к CMS TYPO3, так и к среду хостинга, включая веб-сервер, базу данных и PHP. + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Управление пользователями внутреннего интерфейса ` + + .. container:: card-body + + Обучение созданию и настройкой пользователей для работы с внутренним административным интерфейсом – backend. + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Работа с расширениями ` + + .. container:: card-body + + Сведения об установке и управлением сторонними расширениями с помощью Composer. + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Introduction Package ` + + .. container:: card-body + + Introduction Package (Ознакомительный пакет) – отличная начальная точка для знакомства и тестирования TYPO3 на примере предварительно настроенного полностью рабочего сайта с огромным количеством примеров шаблонов страниц и их содержимого. + + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Следующие шаги ` + + .. container:: card-body + + Общая картина возможных шагов, которые можно сделать сразу после установки TYPO3, вроде создания шаблонов и добавления содержимого на страницы. + +.. Table of Contents + +.. toctree:: + :hidden: + :titlesonly: + + Concepts/Index + SystemRequirements/Index + Installation/Index + Setup/Index + Troubleshooting/Index + Extensions/Index + UserManagement/Index + IntroductionPackage/Index + NextSteps/Index + +---- + +:Version: + |release| + +:Language: + ru + +:Author: + Участники проекта TYPO3 + +:License: + Документ публикуется под + `Открытой на публикацию лицензией `__. + +:Rendered: + |today| + +.. Meta Menu + +.. toctree:: + :hidden: + + Sitemap + genindex diff --git a/Documentation/Localization.ru_RU/Installation/DeployTYPO3.rst b/Documentation/Localization.ru_RU/Installation/DeployTYPO3.rst new file mode 100644 index 00000000..49fc99b8 --- /dev/null +++ b/Documentation/Localization.ru_RU/Installation/DeployTYPO3.rst @@ -0,0 +1,219 @@ +.. include:: /Includes.rst.txt + +.. index:: deployment, composer, production setup + +.. _deploytypo3: + +=============== +Развертывание системы TYPO3 +=============== + +В данном руководстве описаны шаги, необходимые для ручного развертывания TYPO3, обеспечения безопасности установки и ее готовности к использованию в производственных условиях. Также описывается ряд средств автоматизации, позволяющих упростить процесс развертывания. + +Существует несколько различных способов развертывания TYPO3. Один из наиболее простых вариантов - вручную скопировать файлы и базу данных с локальной машины на живой сервер, при необходимости скорректировав конфигурацию. + +Общие этапы развертывания +========================= + +- Построение локального окружения (установка всего необходимого для работы сайта). +- Выполните команду `composer install --no-dev` для установки без зависимостей от разработки. +- Копирование файлов на рабочий сервер. +- Копирование базы данных на рабочий сервер. +- Очистка кэшей. + +.. note:: + + Команда `composer install` не должна выполняться в реальной среде. В идеале команда `composer` должна выполняться только локально или на выделенной машине развертывания, чтобы можно было провести тестирование перед запуском в реальном режиме. + + Чтобы избежать конфликтов между локальной и серверной версиями PHP, версию PHP сервера можно определить в файле :file:`composer.json` (например, ``{"platform": {"php": "7.4.10"}}``), тогда `composer` всегда будет проверять правильность зависимостей. + +Производственные настройки +========================== + +Для обеспечения безопасной установки TYPO3 на рабочем сервере необходимо задать следующие параметры: + +- :guilabel:`Admin Tools > Settings > Configuration Presets` Для того чтобы не выводить данные отладки на экран, необходимо выбрать предустановку "Live". +- На рабочих серверах следует использовать `HTTPS`, а для :php:`$GLOBALS['TYPO3_CONF_VARS']['BE']['lockSSL']` должно быть установлено значение `true`. +- Обеспечьте применение HSTS (Strict-Transport-Security header) в конфигурации веб-серверов. +- Переменная среды `TYPO3_CONTEXT` должна быть установлена на основной контекст `Production` (можно проверить справа вверху во внутреннем интерфейсе TYPO3 :guilabel:`Application Information`). Она должна использоваться для выбора соответствующего `базового варианта` для целевой системы в Конфигурации сайта. +- Настройте :ref:`TYPO3 logging framework ` на регистрацию сообщений высокой степени серьезности, включая и выше WARNING или ERROR, и продолжайте ротацию файлов журнала, хранящихся в :file:`var/log`. +- Убедитесь в том, что :ref:`разрешения на файлы ` правильно установлены на живой системе. + +Автоматизация процесса развертывания +==================================== + +Типичная установка для развертывания веб-приложений состоит из трех различных частей: + +- Локальная среда (для разработки). +- Среда сборки (для воспроизводимых сборок). Это может быть контролируемая локальная среда или удаленный сервер непрерывной интеграции (например, Gitlab CI или Github Actions). +- Живое (производственное) окружение. + +Чтобы перевести приложение из локальной среды в производственную систему, рекомендуется использовать инструмент развертывания и/или решение непрерывной интеграции. Это гарантирует развертывание лишь кода с контролем версий и воспроизводимость сборок. В идеале развертывание нового релиза должно быть атомарной операцией и не приводить к простою. При возникновении ошибок на любом из этапов развертывания или тестирования большинство средств развертывания инициирует автоматический "откат", предотвращающий выпуск ошибочной сборки. + +Одной из широко используемых стратегий является подход "переключение симлинков": + +При такой стратегии веб-сервер обслуживает файлы с виртуального пути :file:`releases/current/public`, который состоит из симлинка :file:`releases/current`, указывающего на последнюю версию развертывания ("релиз"). Этот симлинк переключается после успешной подготовки нового релиза. В последней версии представлены симлинки на папки, которые должны быть общими для всех релизов (обычно их называют "общие папки" - shared folders). + +Обычно база данных разделяется между релизами, а мастера обновления и обновления схем запускаются автоматически до или вскоре после запуска нового релиза. + +Это примерная структура каталогов установки TYPO3 с "переключением симлинков": + +.. code-block:: none + + ├── shared/ + │ ├── fileadmin/ + │ └── var/ + │ ├── var/charset/ + │ ├── var/lock/ + │ ├── var/log/ + │ └── var/session/ + ├── releases/ + │ ├── current -> ./release1 (symlink to current release) + │ └── release1/ + │ ├── public/ (webserver root, via releases/current/public) + │ │ ├── typo3conf/ + │ │ ├── fileadmin -> ../../../shared/fileadmin/ (symlink) + │ │ └── index.php + │ ├── var/ + │ | ├── var/build/ + │ | ├── var/cache/ + │ | ├── var/charset -> ../../../shared/var/charset/ (symlink) + │ | ├── var/labels/ + │ | ├── var/lock -> ../../../shared/var/lock/ (symlink) + │ | ├── var/log -> ../../../shared/var/log/ (symlink) + │ | └── var/session -> ../../../shared/var/session/ (symlink) + │ ├── vendor/ + │ ├── composer.json + │ └── composer.lock + + +Файлы в директории `shared` являются общими для разных версий сайта. В каталоге `releases` представлена информация о коде TYPO3, который будет меняться от версии к версии. + +При использовании средств развертывания такая структура каталогов обычно создается автоматически. + +В следующем разделе представлены примеры различных средств развертывания и способы их настройки для использования TYPO3: + +.. tabs:: + + .. tab:: TYPO3 Surf + + :doc:`TYPO3 Surf ` это средство развертывания, написанное на языке PHP. + + + .. code-block:: php + :caption: ~/.surf/MyDeployment.php + + setHostname($node->getName()) + ->setOption('username', 'myuser') + ->setOption('phpBinaryPathAndFilename', '/usr/local/bin/php_cli'); + + $application = new \TYPO3\Surf\Application\TYPO3\CMS(); + $application + ->setDeploymentPath('/httpdocs') + ->setOption('baseUrl', 'https://my.node.com/') + ->setOption('webDirectory', 'public') + ->setOption('symlinkDataFolders', ['fileadmin']) + ->setOption('repositoryUrl', 'file://' . dirname(__DIR__)) + ->setOption('keepReleases', 3) + ->setOption('composerCommandPath', 'composer') + ->setOption('rsyncExcludes', [ + '.ddev', + '.git', + $application->getOption('webDirectory') . '/fileadmin', + 'packages/**.sass' + ]) + ->setOption(TYPO3\Surf\Task\TYPO3\CMS\FlushCachesTask::class . '[arguments]', []) + ->addSymlink($application->getOption('webDirectory') . '/config/system/settings.php', '../../../../shared/Configuration/settings.php') + ->addNode($node); + + $deployment + ->addApplication($application) + ->onInitialize( + function () use ($deployment, $application) { + $deployment->getWorkflow() + ->beforeTask(\TYPO3\Surf\Task\TYPO3\CMS\SetUpExtensionsTask::class, \TYPO3\Surf\Task\TYPO3\CMS\CompareDatabaseTask::class, $application) + ->beforeStage('transfer', \TYPO3\Surf\Task\Php\WebOpcacheResetCreateScriptTask::class, $application) + ->afterStage('switch', \TYPO3\Surf\Task\Php\WebOpcacheResetExecuteTask::class, $application) + // CreatePackageStatesTask is done by post-autoload-dump script and can be removed + // https://github.com/TYPO3/TYPO3.CMS.BaseDistribution/blob/9.x/composer.json#L38 + ->removeTask(\TYPO3\Surf\Task\TYPO3\CMS\CreatePackageStatesTask::class, $application) + ->removeTask(\TYPO3\Surf\Task\TYPO3\CMS\CopyConfigurationTask::class, $application); + } + ); + + + .. tab:: Deployer + + `Deployer `__ представляет собой альтернативное средство развертывания написанное на языке PHP. Полное описание того, как запустить deployer для TYPO3 можно найти на сайте https://t3terminal.com/blog/typo3-deploy/ + + .. code-block:: php + + hostname('production.example.org') + ->user('deploy') + ->set('branch', 'main') + ->set('public_urls', ['https://production.example.org']) + ->set('deploy_path', '/home/www/example-project-directory/live'); + + + .. tab:: Magallanes + + Еще одно средство развертывания PHP-приложений, написанных на PHP: https://www.magephp.com + + .. code-block:: yaml + :caption: .mage.yml + + magephp: + log_dir: ./.mage/logs + composer: + path: composer + exclude: + - ./.ddev + - ./.git + - ./.mage + - ./public/fileadmin + - ./public/typo3temp + - ./var + - ./.mage.yml + - ./composer.json + - ./composer.lock + - ./LICENSE + - ./README.md + environments: + main: + user: ssh-user + from: ./ + host_path: /srv/vhosts/target-path/site/mage + releases: 3 + hosts: + - production.example.org + pre-deploy: + - exec: { cmd: "composer install --no-dev --no-progress --optimize-autoloader"} + on-deploy: + - fs/link: { from: "../../../../shared/public/fileadmin", to: "public/fileadmin" } + - fs/link: { from: "../../../../shared/public/typo3temp", to: "public/typo3temp" } + - fs/link: { from: "../../../shared/var", to: "var" } + on-release: + post-release: + - exec: { cmd: './bin/typo3 backend:lock', timeout: 9000 } + - exec: { cmd: './bin/typo3cms database:updateschema *.add,*.change', timeout: 9000 } + - exec: { cmd: './bin/typo3cms cache:flush', timeout: 9000 } + - exec: { cmd: './bin/typo3 upgrade:run', timeout: 9000 } + - exec: { cmd: './bin/typo3 backend:unlock', timeout: 9000 } + post-deploy: diff --git a/Documentation/Localization.ru_RU/Installation/Index.rst b/Documentation/Localization.ru_RU/Installation/Index.rst new file mode 100644 index 00000000..e6a9d6d0 --- /dev/null +++ b/Documentation/Localization.ru_RU/Installation/Index.rst @@ -0,0 +1,96 @@ +.. include:: /Includes.rst.txt + +.. index:: installation + +.. _installation_index: + +========= +Установка +========= + +.. container:: row m-0 p-0 + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Установка TYPO3 ` + + .. container:: card-body + + В руководстве по установке описано все, что необходимо для установки TYPO3. Включая проверочный список перед установкой и подробное описание каждого шага процесса установки. + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Развертывание TYPO3 ` + + .. container:: card-body + + В руководстве по развертыванию описаны некоторые из доступных решений, позволяющих автоматизировать процесс развертывания TYPO3 на удаленном сервере. + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Наладка TYPO3 ` + + .. container:: card-body + + В этой главе представлена информация о настройке и оптимизации инфраструктуры, обеспечивающей работу TYPO3. + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Целостность релизов TYPO3 ` + + .. container:: card-body + + Каждый релиз TYPO3 подписывается электронной подписью команды разработчиков TYPO3. Кроме того, в каждом пакете TYPO3 представлен уникальный хэш файла, который может быть использован для проверки целостности файла при загрузке релиза. В данном руководстве подробно описано, как можно проверить эти подписи и сравнить хэши файлов. + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Установка TYPO3 с использованием DDEV ` + + .. container:: card-body + + Это пошаговое руководство с подробным описанием установки TYPO3 с помощью DDEV, Docker и Composer. + + + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Устаревшее традиционное руководство по установке ` + + .. container:: card-body + + Вы хотите установить TYPO3 классическим способом? Несмотря на то, что этот способ установки больше не рекомендуется, в руководстве по Традиционной установке показано, как можно установить TYPO3 без использования Composer. + +.. toctree:: + :hidden: + :titlesonly: + + Install + DeployTYPO3 + TuneTYPO3 + ReleaseIntegrity + TutorialDdev + LegacyInstallation diff --git a/Documentation/Localization.ru_RU/Installation/Install.rst b/Documentation/Localization.ru_RU/Installation/Install.rst new file mode 100644 index 00000000..88d5b2f2 --- /dev/null +++ b/Documentation/Localization.ru_RU/Installation/Install.rst @@ -0,0 +1,242 @@ +.. include:: /Includes.rst.txt + +.. index:: installation, deployment, requirements + +.. _install: + +================ +Установка TYPO3 +================ + +Руководство по установке TYPO3. Здесь описаны все необходимые шаги +для установки TYPO3 с помощью Composer. + +Подробнее о развертывании TYPO3 в реальной среде читайте в главе :ref:`Развертывание TYPO3 `. + +Проверка перед установкой +========================== + +- Доступ к командной строке (CLI) с возможностью создания каталогов и символических ссылок. +- Доступ к `Composer `__ через CLI (для локальной разработки). +- Доступ к корневой директории веб-сервера. +- База данных с соответствующими полномочиями. + +Выполнить Composer Create-Project +================================= + +Приведенный ниже сценарий устанавливает TYPO3 v12, которая является последней версией CMS. Если вы хотите установить версию TYPO3 с долгосрочной поддержкой (LTS), обратитесь к :ref:`TYPO3 v11 Руководство по установке `. + +На корневом уровне веб-сервера выполните следующую команду: + +.. tabs:: + + .. group-tab:: bash + + .. code-block:: bash + + composer create-project typo3/cms-base-distribution example-project-directory "^12" + + # Use console command to run the install process + # or use the Install Tool GUI (See below) + ./vendor/bin/typo3 setup + + .. group-tab:: powershell + + .. code-block:: powershell + + composer create-project "typo3/cms-base-distribution:^12" example-project-directory + + # Use console command to run the install process + # or use the Install Tool GUI (See below) + ./vendor/bin/typo3 setup + + .. group-tab:: ddev + + .. code-block:: bash + + # Create a directory for your project + mkdir example-project-directory + + # Go into that directory + cd example-project-directory + + # Tell DDEV to create a new project of type "typo3" + # 'docroot' MUST be 'public' PHP 8.1 is required by TYPO3 v12 + ddev config --project-type=typo3 --docroot=public --create-docroot --php-version 8.1 + + # Start the server + ddev start + + # Fetch a basic TYPO3 installation and its' dependencies + ddev composer create "typo3/cms-base-distribution:^12" + + # Depending on your DDEV version the configuration file may have been + # created in an outdated location, you can move it with + mkdir -p config/system/ && mv public/typo3conf/AdditionalConfiguration.php $_/additional.php + + # Use console command to run the install process + # or use the Install Tool GUI (See below) + ddev exec ./vendor/bin/typo3 setup + + +Эта команда получает последнюю версию TYPO3 и помещает ее в +:file:`example-project-directory`. + +После выполнения этой команды, :file:`example-project-directory` будет представлена следующая структура: + +.. code-block:: none + + . + ├── .gitignore + ├── composer.json + ├── composer.lock + ├── LICENSE + ├── public + ├── README.md + ├── var + └── vendor + + +Запуск процесса установки +========================= + +Настройка TYPO3 через консоль +----------------------------- + +.. versionadded:: 12.1 + Начиная с TYPO3 v12.1 в качестве альтернативы существующему веб-инсталлятору с графическим интерфейсом введена новая :ref:`CLI команда ` `setup`. + +Интерактивная / управляемая установка (вопросы/ответы): + +.. tabs:: + + .. group-tab:: bash + + .. code-block:: bash + + ./vendor/bin/typo3 setup + + .. group-tab:: powershell + + .. code-block:: powershell + + ./vendor/bin/typo3 setup + + .. group-tab:: ddev + + .. code-block:: bash + + ddev exec ./vendor/bin/typo3 setup + +Или используйте GUI-инсталлятор в браузере +------------------------------------------ + +Создайте пустой файл с названием `FIRST_INSTALL` в каталоге `/public` directory: + +.. tabs:: + + .. group-tab:: bash + + .. code-block:: bash + + touch example-project-directory/public/FIRST_INSTALL + + .. group-tab:: powershell + + .. code-block:: powershell + + echo $null >> public/FIRST_INSTALL + + .. group-tab:: ddev + + .. code-block:: bash + + ddev exec touch public/FIRST_INSTALL + +.. code-block:: none + . + ├── .gitignore + ├── composer.json + ├── composer.lock + ├── LICENSE + ├── public + ├── FIRST_INSTALL + ├── README.md + ├── var + └── vendor + +Доступ к TYPO3 через браузер +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +После настройки веб-сервера на директорию `public` вашего проекта, доступ к TYPO3 можно получить через веб-браузер. При первом обращении к новому сайту TYPO3 автоматически перенаправляет все запросы на :samp:`/typo3/install.php` для завершения процесса установки. + +.. tip:: + + При доступе к странице по протоколу HTTPS может появиться предупреждение "Ошибка конфиденциальности" или что-то подобное. В локальной среде можно игнорировать это предупреждение, указав браузеру игнорировать подобные этому предупреждения для данного домена. + + Предупреждение связано с тем, что используются самоподписанные сертификаты. + + Если при первом доступе возникает ошибка `trustedHostsPattern`, то возможен также вариант доступа к TYPO3 без (`http://`). + + +Сканирование среды +~~~~~~~~~~~~~~~~~~ + +Теперь TYPO3 просканирует среду хоста. Во время сканирования TYPO3 проверяет хост-систему на наличие следующих параметров: + +- Установлена минимально необходимая версия PHP. +- Загружены необходимые расширения PHP. +- php.ini настроен. +- TYPO3 может создавать и удалять файлы и каталоги в корневом каталоге установки. + +Если проблем не обнаружено, процесс установки можно продолжить. + +В случае невыполнения определенных критериев TYPO3 отобразит список обнаруженных проблем, с указанием решения для каждой из них. + +После внесения изменений TYPO3 может повторно просканировать среду хоста, перезагрузив страницу `https://example-project-site.local/typo3/install.php`. + +.. include:: ../Images/AutomaticScreenshots/QuickInstall/Step1SystemEnvironment.rst.txt + +Выбор базы данных +~~~~~~~~~~~~~~~~~ + +Выберите драйвер подключения к базе данных и введите учетные данные для базы данных. + +.. include:: ../Images/AutomaticScreenshots/QuickInstall/Step2DatabaseConnection.rst.txt + +TYPO3 может подключаться к существующей пустой базе данных или же создать новую. + +Список доступных баз данных зависит от того, какие драйверы баз данных установлены на хостинге. + +Например, если экземпляр TYPO3 предполагается использовать с базой данных MySQL, то необходимо установить расширение PHP 'pdo_mysql'. После его установки станет доступна опция :guilabel:`MySQL Database`. + +.. include:: ../Images/AutomaticScreenshots/QuickInstall/Step3ChooseDb.rst.txt + +Создание Администратора и установка названия сайта +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Для получения доступа к внутреннему интерфейсу TYPO3 необходимо создать учетную запись администратора. + +Можно также указать адрес электронной почты этого пользователя и указать его имя. + +.. include:: ../Images/AutomaticScreenshots/QuickInstall/Step4AdminUserSitename.rst.txt + +.. note:: + Пароль должен соответствовать заданной конфигурации :ref:`политики паролей `. + +Инициализация +----------- + +TYPO3 предлагает два варианта инициализации: создание пустой стартовой страницы или переход непосредственно к внутреннему интерфейсу администратора. Новичкам лучше выбрать первый вариант и позволить TYPO3 создать пустую стартовую страницу. При этом также будет сгенерирован файл конфигурации сайта. + +.. include:: ../Images/AutomaticScreenshots/QuickInstall/Step5LastStep.rst.txt + +Следующие шаги +-------------- + +По окончании установки TYPO3 может быть :ref:`настроена `. + +Использование DDEV +------------------ + +Кроме того, предлагается пошаговое руководство по :ref:`Установке TYPO3 с помощью DDEV `. Учебник также содержит видеоролик. diff --git a/Documentation/Localization.ru_RU/Installation/LegacyInstallation.rst b/Documentation/Localization.ru_RU/Installation/LegacyInstallation.rst new file mode 100644 index 00000000..f316690a --- /dev/null +++ b/Documentation/Localization.ru_RU/Installation/LegacyInstallation.rst @@ -0,0 +1,92 @@ +.. include:: /Includes.rst.txt + +.. index:: legacy installation + +.. _legacyinstallation: + +=================== +Традиционная установка +=================== + +В данном руководстве подробно описано, как можно установить TYPO3 без использования Composer. Этот способ установки в настоящее время считается устаревшим, пользователям настоятельно рекомендуется использовать установку с помощью Composer :ref:`install`. + +Установка на Unix-сервер +=========================== + +#. Загрузите исходный пакет TYPO3 с сайта `https://get.typo3.org/ + `_: + + .. code-block:: bash + :caption: /var/www/site/$ + + wget --content-disposition https://get.typo3.org/11 + + Убедитесь, что пакет находится на один уровень выше корня документа веб-сервера. + +#. Распакуйте :file:`typo3_src-12.4.x.tar.gz`: + + .. code-block:: bash + :caption: /var/www/site/$ + + tar xzf typo3_src-12.4.x.tar.gz + + Обратите внимание, что `x` в извлеченной папке будет заменен на последнюю обновленную версию TYPO3. + + +#. Создайте в корне документа следующие симлинки: + + + .. code-block:: bash + :caption: /var/www/site/$ + + cd public + ln -s ../typo3_src-12.4.x typo3_src + ln -s typo3_src/index.php index.php + ln -s typo3_src/typo3 typo3 + +.. important:: + Обязательно загрузите весь каталог с исходным кодом TYPO3, включая каталог :file:`vendor`, иначе вы упустите важные зависимости. + +#. В результате образуется следующая структура: + + .. code-block:: none + + ├── typo3_src-12.4.x/ + ├── public/ + ├── ── typo3_src -> ../typo3_src-12.4.x/ + ├── ── typo3 -> typo3_src/typo3/ + ├── ── index.php -> typo3_src/index.php + +Установка на сервер Windows +============================== + +#. Загрузите исходный пакет TYPO3 с сайта `https://get.typo3.org/ `_ и распакуйте файл :file:`.zip` на веб-сервере. + + Убедитесь, что пакет находится на один уровень выше корня документа веб-сервера. + + +#. С помощью оболочки создайте в корне документа следующие симлинки: + + .. code-block:: bash + :caption: /var/www/site/$ + + cd public + mklink /d typo3_src ..\typo3_src-12.4.x + mklink /d typo3 typo3_src\typo3 + mklink index.php typo3_src\index.php + +#. В результате образуется следующая структура: + + .. code-block:: none + + ├── typo3_src-12.4.x/ + ├── public/ + ├── ── typo3_src -> ../typo3_src-12.4.x/ + ├── ── typo3 -> typo3_src/typo3/ + ├── ── index.php -> typo3_src/index.php + + +Завершение установки +=========================== + +После извлечения исходного пакета и создания симлинков перейдите на страницу Access TYPO3 через веб-браузер для завершения установки. diff --git a/Documentation/Localization.ru_RU/Installation/ReleaseIntegrity.rst b/Documentation/Localization.ru_RU/Installation/ReleaseIntegrity.rst new file mode 100644 index 00000000..dce496b2 --- /dev/null +++ b/Documentation/Localization.ru_RU/Installation/ReleaseIntegrity.rst @@ -0,0 +1,229 @@ +.. include:: /Includes.rst.txt + +.. _release_integrity: + +======================= +Целостность выпуска TYPO3 +======================= + +Релиз-пакеты TYPO3 (загружаемые tar- и zip-файлы), а также Git-теги подписываются с помощью PGP-подписей в процессе автоматизированного выпуска. Для этих файлов также генерируются хэши SHA2-256, SHA1 и MD5. + +Содержание выпуска +---------------- + +Каждый выпуск TYPO3 поставляется со следующими файлами: + +.. code-block:: bash + :caption: `TYPO3 CMS 11.5.1 `_ релиз в качестве примера + + typo3_src-11.5.1.tar.gz + typo3_src-11.5.1.tar.gz.sig + typo3_src-11.5.1.zip + typo3_src-11.5.1.zip.sig + +* ``*.tar.gz`` и ``*.zip`` файлы - это собственно релизные пакеты, в которых представлен исходный код TYPO3 CMS. +* ``*.sig`` в файлах представлены соответствующие подписи для каждого файла пакета релиза. + +Проверка хэшей файлов +-------------------- + +Хеши файлов используются для проверки того, что загруженный файл был передан и правильно сохранен в локальной системе. В TYPO3 используются криптографические методы хэширования, включая `MD5`_ и `SHA2-256`_. + +Хеши файлов для каждой версии публикуются на сайте get.typo3.org и могут быть найдены на странице соответствующего релиза, например, на https://get.typo3.org/version/11#package-checksums содержит: + +.. code-block:: bash + :caption: TYPO3 v11.5.1 Checksums + :name: Checksums + + SHA256: + 205d1879e05c75093a2c427f7f7cacb297ca841e491450b3577987e259ff6c5b typo3_src-11.5.1.tar.gz + e07b303405d182f4450fda4a7a7acdbe5080c22123d52f74ef5f2fbf78233a49 typo3_src-11.5.1.zip + + SHA1: + aa88171cfb5aa9935b2a989f51e68b6d8eb6e5f0 typo3_src-11.5.1.tar.gz + 3dbe9322015e1d5266d78c6c3ff40846f8a6492f typo3_src-11.5.1.zip + + MD5: + cda2a4494f6673e9251c265c9ef1c345 typo3_src-11.5.1.tar.gz + 252583501d30bb5679305b58ed6e6f94 typo3_src-11.5.1.zip + + +Для проверки хэшей файлов необходимо локально сгенерировать хэши для загружаемых пакетов и сравнить их с опубликованными хэшами на get.typo3.org. Для локальной генерации хэшей необходимо использовать один из следующих инструментов командной строки ``md5sum``, ``ha1sum`` или ``shasum``. + +Следующие команды генерируют хэши для пакетов `.tar.gz` и `.zip`: + +.. code-block:: bash + :caption: ~$ + + shasum -a 256 typo3_src-*.tar.gz typo3_src-*.zip + 205d1879e05c75093a2c427f7f7cacb297ca841e491450b3577987e259ff6c5b typo3_src-11.5.1.tar.gz + e07b303405d182f4450fda4a7a7acdbe5080c22123d52f74ef5f2fbf78233a49 typo3_src-11.5.1.zip + +.. code-block:: bash + :caption: ~$ + + sha1sum -c typo3_src-*.tar.gz typo3_src-*.zip + aa88171cfb5aa9935b2a989f51e68b6d8eb6e5f0 typo3_src-11.5.1.tar.gz + 3dbe9322015e1d5266d78c6c3ff40846f8a6492f typo3_src-11.5.1.zip + +.. code-block:: bash + :caption: ~$ + + md5sum typo3_src-*.tar.gz typo3_src-*.zip + cda2a4494f6673e9251c265c9ef1c345 typo3_src-11.5.1.tar.gz + 252583501d30bb5679305b58ed6e6f94 typo3_src-11.5.1.zip + +Для обеспечения целостности пакета эти хэши должны совпадать с хэшами, опубликованными на get.typo3.org. + +.. _MD5: https://en.wikipedia.org/wiki/MD5 +.. _SHA2-256: https://en.wikipedia.org/wiki/SHA-2 + + +Проверка подписей файлов +------------------------ + +TYPO3 использует `Pretty Good Privacy`_ для подписи пакетов выпуска и тегов выпуска Git. Для проверки этих подписей рекомендуется использовать `The GNU Privacy Guard`_, однако можно также использовать любой инструмент, совместимый с `OpenPGP`_. + +В релизных пакетах используется отделенная бинарная подпись. Это означает, что файл ``typo3_src-11.5.1.tar.gz`` содержит дополнительный файл подписи ``typo3_src-11.5.1.tar.gz.sig``, являющийся отсоединенной подписью. + +.. code-block:: bash + :caption: ~$ + + gpg --verify typo3_src-11.5.1.tar.gz.sig typo3_src-11.5.1.tar.gz + +.. code-block:: none + + gpg: Signature made Tue Oct 12 12:20:19 2021 UTC + gpg: using RSA key E7ED29A70309A0D1AE34DA733304BBDBFA9613D1 + gpg: Can't check signature: No public key + +Предупреждение означает, что открытый ключ ``E7ED29A70309A0D1AE34DA733304BBDBFA9613D1`` еще не доступен в локальной системе и не может быть использован для проверки подписи. Открытый ключ может быть получен на любом сервере ключей - популярным является `pgpkeys.mit.edu`_. + +.. code-block:: bash + :caption: ~$ + + wget -qO- https://get.typo3.org/KEYS | gpg --import + +.. code-block:: none + + gpg: requesting key 59BC94C4 from hkp server pgpkeys.mit.edu + gpg: key 59BC94C4: public key "TYPO3 Release Team (RELEASE) " imported + gpg: key FA9613D1: public key "Benjamin Mack " imported + gpg: key 16490937: public key "Oliver Hader " imported + gpg: no ultimately trusted keys found + gpg: Total number processed: 3 + gpg: imported: 3 (RSA: 3) + +После импорта открытого ключа можно повторить предыдущую команду по проверке подписи файла ``typo3_src-11.5.1.tar.gz``. + +.. code-block:: bash + :caption: ~$ + + gpg --verify typo3_src-11.5.1.tar.gz.sig typo3_src-11.5.1.tar.gz + +.. code-block:: none + + gpg: Signature made Tue Oct 12 12:20:19 2021 UTC + gpg: using RSA key E7ED29A70309A0D1AE34DA733304BBDBFA9613D1 + gpg: Good signature from "Benjamin Mack " [unknown] + gpg: WARNING: This key is not certified with a trusted signature! + gpg: There is no indication that the signature belongs to the owner. + Primary key fingerprint: E7ED 29A7 0309 A0D1 AE34 DA73 3304 BBDB FA96 13D1 + +Появление нового предупреждения вполне ожидаемо, постольку любой мог создать открытый ключ и загрузить его на сервер ключей. Важным моментом здесь является проверка отпечатка ключа ``E7ED 29A7 0309 A0D1 AE34 DA73 3304 BBDB FA96 13D1``, который в данном случае является правильным для пакетов выпуска TYPO3 CMS (список используемых в настоящее время ключей см. ниже или обратитесь непосредственно к файлу https://get.typo3.org/KEYS). + +.. code-block:: bash + :caption: ~$ + + gpg --fingerprint E7ED29A70309A0D1AE34DA733304BBDBFA9613D1 + +.. code-block:: none + + pub rsa4096 2010-06-22 [SC] + E7ED 29A7 0309 A0D1 AE34 DA73 3304 BBDB FA96 13D1 + uid [ unknown] Benjamin Mack + sub rsa4096 2010-06-22 [E] + +.. _Pretty Good Privacy: https://en.wikipedia.org/wiki/Pretty_Good_Privacy +.. _The GNU Privacy Guard: http://www.gnupg.org/ +.. _OpenPGP: http://www.openpgp.org/ +.. _pgpkeys.mit.edu: https://pgpkeys.mit.edu/ + + +Проверка подписи тегов +---------------------- + +Проверка подписей на Git-тегах работает аналогично проверке результатов с помощью инструмента ``gpg``, но с использованием команды ``git tag --verify`` напрямую. + +.. code-block:: bash + :caption: ~$ + + git tag --verify v11.5.1 + + +.. code-block:: none + + object dcba2a7ce93eaef0ad025dc21fdeb85636d7b4f4 + type commit + tag v11.5.1 + tagger Benni Mack 1634041135 +0200 + + Release of TYPO3 11.5.1 + gpg: Signature made Tue Oct 12 14:18:55 2021 CEST + gpg: using RSA key E7ED29A70309A0D1AE34DA733304BBDBFA9613D1 + gpg: Good signature from "Benjamin Mack " + +Команда ``git show`` по имени тега позволяет получить более подробную информацию. + +.. code-block:: bash + :caption: ~$ + + git show v11.5.1 + +.. code-block:: none + + tag v11.5.1 + Tagger: Benni Mack + Date: Tue Oct 12 14:17:52 2021 +0200 + + Release of TYPO3 11.5.1 + -----BEGIN PGP SIGNATURE----- + ... + -----END PGP SIGNATURE----- + + + +Публичные ключи +----------- + +.. note:: + + Начиная с июня 2017 года, релизы TYPO3 подписываются криптографической подписью ``TYPO3 Release Team'' `` с использованием специального открытого ключа. С июля 2017 года релизы подписываются непосредственно отдельными членами команды TYPO3 Release Team, а именно ``Бенни Маком (Benni Mack) `` и ``Оливером Хадером (Oliver Hader) ``. + +Используемые открытые ключи можно загрузить с сайта `get.typo3.org.keys`_ + +* TYPO3 Release Team + + + 4096 bit RSA key + + Key ID `0x9B9CB92E59BC94C4`_ + + Fingerprint ``7AF5 1AAA DED9 D002 4F89 B06B 9B9C B92E 59BC 94C4`` + +* Benni Mack + + + 4096 bit RSA key + + Key ID `0x3304BBDBFA9613D1`_ + + Fingerprint ``E7ED 29A7 0309 A0D1 AE34 DA73 3304 BBDB FA96 13D1`` + +* Oliver Hader + + + 4096 bit RSA key + + Key ID `0xC19FAFD699012A5A`_, subkey of `0xA36E4D1F16490937`_ + + Fingerprint ``0C4E 4936 2CFA CA0B BFCE 5D16 A36E 4D1F 1649 0937`` + +............................... + +.. _0x9B9CB92E59BC94C4: https://pgpkeys.mit.edu/pks/lookup?search=0x9B9CB92E59BC94C4 +.. _0x3304BBDBFA9613D1: https://pgpkeys.mit.edu/pks/lookup?search=0x3304BBDBFA9613D1 +.. _0xC19FAFD699012A5A: https://pgpkeys.mit.edu/pks/lookup?search=0xC19FAFD699012A5A +.. _0xA36E4D1F16490937: https://pgpkeys.mit.edu/pks/lookup?search=0xA36E4D1F16490937 +.. _get.typo3.org.keys: https://get.typo3.org/KEYS diff --git a/Documentation/Localization.ru_RU/Installation/TuneTYPO3.rst b/Documentation/Localization.ru_RU/Installation/TuneTYPO3.rst new file mode 100644 index 00000000..d5d16075 --- /dev/null +++ b/Documentation/Localization.ru_RU/Installation/TuneTYPO3.rst @@ -0,0 +1,76 @@ +.. include:: /Includes.rst.txt + +.. index:: tuning + +.. _tunetypo3: + +============= +Наладка TYPO3 +============= + +В этой главе представлена информация о настройке и оптимизации инфраструктуры, на которой работает TYPO3. + +OPcache +======= + +Рекомендуется включить OPcache на веб-сервере, на котором работает TYPO3. Настройки OPcache по умолчанию обеспечивают значительный прирост производительности, однако есть некоторые коррективы, которые помогут еще больше повысить стабильность и производительность. Кроме того, включение некоторых функций OPcache может привести к снижению производительности. + +Включение OPcache +----------------- + +.. code-block:: ini + :caption: php.ini + + opcache.enable=1 + opcache.revalidate_freq=30 + opcache.revalidate_path=0 + +Доработка OPcache +----------------- + +Ниже приведен список функций OPcache с информацией о том, как они могут влиять на производительность TYPO3. + +.. confval:: opcache.save_comments + + :Default: 1 + :Recommended: 1 + + Установка значения 0 может повысить производительность, но некоторые части TYPO3 (включая Extbase) для правильной работы полагаются на информацию, хранящуюся в комментариях phpDoc. + +.. confval:: opcache.use_cwd + + :Default: 1 + :Recommended: 1 + + Установка значения 0 может вызвать проблемы в некоторых приложениях, поскольку файлы с одинаковыми названиями могут быть смешаны из-за того, что полный путь к файлу не сохраняется в качестве ключа. TYPO3 работает с абсолютными путями, поэтому это не приведет к улучшению производительности. + +.. confval:: opcache.validate_timestamps + + :Default: 1 + :Recommended: 1 + + Хотя установка этого значения в 0 может ускорить работу, вы **должны** убедиться, что opcache очищается при каждом изменении PHP-скриптов, иначе они не будут обновляться в OPcache. Достичь этого можно с помощью правильного конвейера развертывания. Кроме того, некоторые файлы могут быть добавлены в черный список, подробнее об этом см. в разделе `opcache.blacklist_filename`. + +.. confval:: opcache.revalidate_freq + + :Default: 2 + :Recommended: 30 + + Установка этого значения в большую величину может повысить производительность, но при этом возникает та же проблема, что и при установке `validate_timestamps` в 0. + +.. confval:: opcache.revalidate_path + + :Default: 1 + :Recommended: 0 + + Установка этого значения в 0 безопасна для TYPO3. Однако это может стать проблемой, если для загрузки скриптов используются значения относительных путей, а также если один и тот же файл несколько раз встречается в пути включения. + +.. confval:: opcache.max_accelerated_files + + :Default: 10000 + :Recommended: 10000 + + Установки по умолчанию должно быть достаточно для TYPO3, но это зависит от количества дополнительных скриптов, которые должны быть загружены системой. + +Дополнительную информацию об OPcache можно найти в `Официальной документации по PHP `__. + diff --git a/Documentation/Localization.ru_RU/Installation/TutorialDdev.rst b/Documentation/Localization.ru_RU/Installation/TutorialDdev.rst new file mode 100644 index 00000000..6d60d738 --- /dev/null +++ b/Documentation/Localization.ru_RU/Installation/TutorialDdev.rst @@ -0,0 +1,174 @@ +.. include:: /Includes.rst.txt + +.. index:: installation; Tutorial DDEV + +.. _installation-ddev-tutorial: + +========================== +Установка TYPO3 с помощью DDEV +========================== + +Это пошаговое руководство, в котором подробно описана установка TYPO3 с помощью DDEV, Docker и Composer. + +DDEV используется только для локальных разработок. + +Сценарии, используемые в данном руководстве, устанавливают TYPO3 v12.0, являющуюся последней версией CMS. Если необходимо установить версию TYPO3 с долгосрочной поддержкой (LTS), посетите сайт :ref:`TYPO3 v11 Installation instructions `. + +.. youtube:: HW7J3G1SqZw + +Контрольный перечень работ перед установкой +-------------------------- + +#. **Установка Docker** - Посетите сайт `docker.com `__, чтобы загрузить и установить рекомендуемую версию Docker для вашей операционной системы. + +#. **Установка DDEV** - Для установки DDEV следуйте руководству `DDEV installation guide `__. + +Перед установкой TYPO3 на локальной машине необходимо установить DDEV и Docker. Если вам нужна помощь в установке DDEV, поддержку можно получить на сервере `DDEV Discord `__. + +Создание каталога установки +--------------------------------- + +Создайте пустой каталог для установки TYPO3, а затем перейдите в этот каталог: + +.. code-block:: bash + + mkdir t3example + cd t3example + +Создание нового проекта DDEV +------------------------- + +Команда `ddev config` запросит информацию о вашем проекте. TYPO3 находится в списке предварительно сконфигурированных проектов. + +.. code-block:: bash + + ddev config --php-version 8.1 + + # Give the following answers when prompted: + + Project name (t3example): + + Docroot Location (current directory): public + + Create docroot at /home/myuser/projects/t3/t3example/public? [Y/n] (yes): Y + + Project Type [php, typo3, ...] (php): typo3 + +project-type + Должен быть всегда "typo3" + +docroot + Это папка, в которой хранятся все файлы, до которых должен добраться браузер. Эта папка обычно называется :file:`public`. + +create-docroot + Поскольку каталог еще не существует, можно позволить DDEV создать его за вас. + +В качестве альтернативы можно пропустить приглашение, указав все необходимые параметры в одной команде: + +.. code-block:: bash + + ddev config --project-type=typo3 --docroot=public --create-docroot --php-version 8.1 + +Запуск проекта +----------------- + +.. code-block:: bash + + ddev start + +Веб-сервер теперь работает, но TYPO3 не установлен. + +Установка TYPO3 +------------- + +.. code-block:: bash + + ddev composer create "typo3/cms-base-distribution:^12" + +Так как мы только что создали проект и у нас его фактически еще нет, ответьте "да" на вопрос о том, можно ли перезаписывать файлы в этом каталоге. + +Теперь у вас есть **установка TYPO3 на базе Composer**. + +Запустите программу настройки установки Installation Setup Tool +------------------------------- + +Настройка TYPO3 в консоли +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. versionadded:: 12.1 + Начиная с версии TYPO3 12.1 в качестве альтернативы существующему веб-инсталлятору с графическим интерфейсом введена новая команда CLI `setup`. + +Интерактивная / управляемая установка (вопросы/ответы): + +.. code-block:: bash + + ddev exec ./vendor/bin/typo3 setup + +Установка TYPO3 с помощью 1,2,3 Install Tool в браузере +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Создайте файл с названием :file:`FIRST_INSTALL` в корне вашего сайта + +.. code-block:: bash + + ddev exec touch public/FIRST_INSTALL + +Откройте программу установки + +.. code-block:: bash + + ddev launch typo3/install.php + +Перейдите во внутренний интерфейс TYPO3: + +.. code-block:: bash + + ddev launch typo3 + +И войдите в систему, используя только что предоставленные учетные данные. + + +Управление базой данных +--------------------- + +При вызове команды :bash:`ddev config` DDEV автоматически создал для вас базу данных. DDEV также создал файл :file:`config/system/additional.php`, в котором сохранил учетные данные базы данных. + +В процессе установки TYPO3 создала все необходимые таблицы. Если вы хотите взглянуть на базу данных, то можно выполнить следующую команду: + +.. code-block:: bash + + ddev launch -p + +Отправка E-Mail +-------------- + +DDEV создает :файл:`config/system/additional.php` +для имитации отправки писем. Посмотреть отправленные письма можно здесь: + +.. code-block:: bash + + ddev launch -m + +Остановка экземпляра DDEV +------------------------ + +Если необходимо остановить выполнение всех проектов, можно вызвать команду: + +.. code-block:: bash + + ddev poweroff + +Проекты останутся настроенными, а базы данных сохранены. + +Удаление экземпляра DDEV +------------------------ + +Если вы решите удалить только что созданный проект, можно выполнить следующую команду в корневой папке нового проекта: + +.. code-block:: bash + + ddev delete --omit-snapshot + +При этом из проекта будут удалены все контейнеры и удалена база данных. + +После этого можно смело удалять корневую папку проекта. diff --git a/Documentation/Localization.ru_RU/IntroductionPackage/Index.rst b/Documentation/Localization.ru_RU/IntroductionPackage/Index.rst new file mode 100644 index 00000000..88f3db55 --- /dev/null +++ b/Documentation/Localization.ru_RU/IntroductionPackage/Index.rst @@ -0,0 +1,88 @@ +.. include:: /Includes.rst.txt + + +.. _introductionpackage_index: + +==================== +Ознакомительный пакет Introduction Package +==================== + +Если вы впервые используете TYPO3, то перед началом работы над собственным проектом вам, возможно, захочется увидеть работающий пример CMS. + +Официальный ознакомительный пакет `__ демонстрирует многие функции TYPO3 и дает возможность попробовать их в действии. В ознакомительном пакете используется расширение `bootstrap_package `__ для создания нескольких адаптивных HTML-шаблонов, которые вы можете выбрать и опробовать. + +В нем также представлены примеры различных видов содержимого страниц, которые обычно встречаются на сайте, например, абзацы текста, изображения, таблицы и навигационные меню. + +.. _installing-introduction-package-with-composer: +.. _installing-distributions-wit-composer: + +Установка ознакомительного пакета Introduction Package +=================================== + +Для установки ознакомительного пакета можно выполнить следующую команду: + +.. tabs:: + + .. group-tab:: bash + + .. code-block:: bash + + composer require typo3/cms-introduction + + .. group-tab:: powershell + + .. code-block:: powershell + + composer require typo3/cms-introduction + + .. group-tab:: ddev + + .. code-block:: bash + + ddev composer require typo3/cms-introduction + +Эта команда загрузит и активирует расширение. + +Затем выполните: + +.. tabs:: + + .. group-tab:: bash + + .. code-block:: bash + + vendor/bin/typo3 extension:setup + + .. group-tab:: powershell + + .. code-block:: powershell + + vendor/bin/typo3 extension:setup + + .. group-tab:: ddev + + .. code-block:: bash + + ddev typo3 extension:setup + +В результате расширение будет готово к немедленному использованию. + +.. _install-intro-first-steps: + +Первые шаги с Introduction Package +========================================= + +"Introduction Package" создает в дереве страниц несколько предустановленных страниц. Страница верхнего уровня называется "Congratulations". + +.. rst-class:: bignums-xxl + +#. В дереве страниц щелкните на "Congratulations". + + +#. Страница откроется в браузере: + + Щелкните на пиктограмме :guilabel:`"Просмотр веб-страницы"` (с глазом), чтобы просмотреть страницу в браузере. + +.. include:: ../Images/AutomaticScreenshots/Frontend/IntroductionPackageHome.rst.txt + + diff --git a/Documentation/Localization.ru_RU/NextSteps/Index.rst b/Documentation/Localization.ru_RU/NextSteps/Index.rst new file mode 100644 index 00000000..c9975edf --- /dev/null +++ b/Documentation/Localization.ru_RU/NextSteps/Index.rst @@ -0,0 +1,44 @@ +.. include:: /Includes.rst.txt + +.. index:: fluid, templating, site package + +.. _next-steps: + +=========================================== +Дальнейшие шаги и дополнительная литература +=========================================== + +После установки TYPO3 можно приступать к разработке внешнего вида сайта и созданию страниц и содержимого внутри CMS. + +:doc:`Создание структуры сайта и добавление содержимого ` +========================================================================== + +Использование дерева страниц - начните определять структуру сайта с создания страниц. + +Страницы могут существовать в различных формах, а также могут быть вложены одна в другую. + +После создания структуры страниц на них можно добавлять содержимое. + +Разработка внешнего вида сайта +============================== + +В TYPO3 существует две основные темы, посвященные шаблонам, - Fluid и Site packages. + +:ref:`Шаблоны Fluid ` +++++++++++++++++++++++++++++++++++++++++++++++++++++ + +Fluid - это шаблонизатор TYPO3. Fluid является связующим звеном между статическими HTML-шаблонами проекта и содержимым, создаваемым во внутреннем интерфейсе TYPO3. + +:doc:`Пакеты сайта / Site Packages ` ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +Пакеты сайта - это тип расширений, которые служат хранилищем компонентов внешнего интерфейса проекта и любых конфигурационных файлов, позволяющих расширить или изменить поведение установки TYPO3. + +Прежде чем приступить к разработке внешнего вида сайта или "темы", необходимо создать пакет сайта, в котором будут храниться ресурсы внешнего интерфейса, такие как файлы Fluid/HTML, CSS, Javascript. После размещения в Site Package они могут быть загружены в TYPO3 для визуализации сайта в браузере. + +Не забывайте о безопасности +=========================== + +Разработчики TYPO3 очень серьезно относятся к вопросам безопасности. Команда `TYPO3 Security Team `_ управляет всеми инцидентами безопасности. Они рассматривают их и оценивают их последствия. Регулярно публикуются рекомендации по безопасности. + +Дополнительную информацию о безопасности можно найти в разделе :ref:`t3coreapi:security`. diff --git a/Documentation/Localization.ru_RU/Setup/BackendLanguages.rst b/Documentation/Localization.ru_RU/Setup/BackendLanguages.rst new file mode 100644 index 00000000..a17c98c7 --- /dev/null +++ b/Documentation/Localization.ru_RU/Setup/BackendLanguages.rst @@ -0,0 +1,73 @@ +.. include:: /Includes.rst.txt + +.. index:: languages, backend language + +.. _backendlanguages: + +====================================== +Изменение языка внутреннего интерфейса +====================================== + +По умолчанию внутренний интерфейс TYPO3 работает на английском без каких-либо дополнительных языков. + +.. contents:: **Содержание** + :depth: 1 + :local: + + +Установка дополнительного языкового пакета +========================================== + +Дополнительный языковой пакет может быть установлен от имени администратора во внутреннем интерфейсе: + +.. rst-class:: bignums + +1. Перейдите :guilabel:`Инструменты управления > Обслуживание > Manage Languages Packs` / :guilabel:`Admin Tools > Maintenance > Manage Languages Packs` + + .. include:: /Images/AutomaticScreenshots/Modules/ManageLanguage.rst.txt + +2. Выберете :guilabel:`Add Language` и укажите нужный язык: + + .. include:: /Images/AutomaticScreenshots/Modules/ManageLanguagePacksAddLanguage.rst.txt + +3. После установки выбранный язык станет доступным: + + .. include:: /Images/AutomaticScreenshots/Modules/ManageLanguagePacksAddLanguageAddSuccess.rst.txt + +.. note:: + .. versionadded:: 12.1 + + Если файл :file:`config/system/settings.php` защищен от записи, все кнопки отключаются и выводится информационное окно. + + +Установка языка в качестве языка внутреннего интерфейса для себя +================================================================ + +Один из доступных языков внутреннего интерфейса может быть выбран в учетной записи пользователя. Перейдите :guilabel:`Панель инструментов (вверху справа) > Аватар пользователя > Настройки пользователя (User Settings)` и выберете нужный язык в поле :guilabel:`Язык` / :guilabel:`Language`: + +.. include:: /Images/AutomaticScreenshots/BackendUsers/SettingsLanguage.rst.txt + +Сохраните настройки и перезагрузите окно браузера. + +.. note:: + Это изменение относится только к вашей учетной записи. + + +Изменение языка внутреннего интерфейса другого пользователя +=========================================================== + +В статусе администратора вы можете изменить язык внутреннего интерфейса другого пользователя. + +.. rst-class:: bignums + +1. Перейдите :guilabel:`Система > Внутренние пользователи` / :guilabel:`System > Backend Users` + + .. include:: /Images/AutomaticScreenshots/BackendUsers/BackendUserListing.rst.txt + +2. Выберете пользователя + +3. Измените язык + + Выберете нужный язык из установленных в системе в поле :guilabel:`Язык пользовательского интерфейса` / :guilabel:`User Interface Language`. + + .. include:: /Images/AutomaticScreenshots/BackendUsers/SwitchUserLanguage.rst.txt diff --git a/Documentation/Localization.ru_RU/Setup/BackendUsers.rst b/Documentation/Localization.ru_RU/Setup/BackendUsers.rst new file mode 100644 index 00000000..3318e206 --- /dev/null +++ b/Documentation/Localization.ru_RU/Setup/BackendUsers.rst @@ -0,0 +1,27 @@ +.. include:: /Includes.rst.txt + +.. index:: backend users, administrators + +.. _backendusers: + +=================================== +Добавление внутренних пользователей +=================================== + +Для создания дополнительных записей пользователей внутреннего интерфейса перейдите в раздел :guilabel:`System > Backend Users` / :guilabel:`Система > Внутренние пользователи`. + +Здесь выводится список всех текущих пользователей внутреннего интерфейса. + +.. include:: ../Images/AutomaticScreenshots/BackendUsers/BackendUserListing.rst.txt + +При помощи :guilabel:`create new record` / :guilabel:`создать новую запись` можно создать нового пользователя внутреннего интерфейса. + +Необходимо задать логин и пароль. Можно также указать дополнительную информацию, например, имя пользователя и адрес электронной почты. + +Включение переключателя "Админ" / "Admin" предоставляет пользователю полный доступ к внутреннему интерфейсу. + +.. include:: ../Images/AutomaticScreenshots/BackendUsers/CreateNewUserSimpleEditor.rst.txt + +Вновь созданная запись пользователя должна быть "Включена", перед тем как она будет использована для входа во внутренний интерфейс. + +.. include:: ../Images/AutomaticScreenshots/BackendUsers/EditorUnhide.rst.txt diff --git a/Documentation/Localization.ru_RU/Setup/Index.rst b/Documentation/Localization.ru_RU/Setup/Index.rst new file mode 100644 index 00000000..2a6011eb --- /dev/null +++ b/Documentation/Localization.ru_RU/Setup/Index.rst @@ -0,0 +1,55 @@ +.. include:: /Includes.rst.txt + +.. _setup: + +========= +Настройка +========= + +.. container:: row m-0 p-0 + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Создание записи для сайта / Site Record ` + + .. container:: card-body + + После установки TYPO3 перед добавлением содержимого и шаблонов необходимо настроить запись сайта (Site record) по умолчанию. + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Добавление внутренних пользователей ` + + .. container:: card-body + + Создание дополнительных пользователей, получающих доступ к внутреннему интерфейсу TYPO3. + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Изменение языка внутреннего интерфейса` + + .. container:: card-body + + Установка дополнительных языков внутреннего интерфейса в TYPO3, что дает возможность пользователям выбирать альтернативный язык для использования во внутреннем интерфейсе. + + + +.. toctree:: + :hidden: + :titlesonly: + + SiteRecords + BackendUsers + BackendLanguages diff --git a/Documentation/Localization.ru_RU/Setup/SiteRecords.rst b/Documentation/Localization.ru_RU/Setup/SiteRecords.rst new file mode 100644 index 00000000..6a76d463 --- /dev/null +++ b/Documentation/Localization.ru_RU/Setup/SiteRecords.rst @@ -0,0 +1,49 @@ +.. include:: /Includes.rst.txt + +.. index:: site, domain configuration, languages + +.. _siterecords: + +=================================== +Создание Записи сайта / Site Record +=================================== + +Одна установка TYPO3 может содержать несколько сайтов, каждый из которых имеет свое содержание, внешний вид и домен. + +Модуль управления сайтами заведует маршрутизацией и ведением каждого сайта в текущей инсталляции TYPO3, хранит эту информацию в отдельных конфигурационных файлах. + +При установке TYPO3 автоматически создается базовая запись сайта. + +Однако после установки TYPO3 необходима некоторая дополнительная информация. + +- Для записи сайта необходимо задать уникальное внутреннее и внешнее имя. +- Для сайта необходимо задать домен. + +Название сайта и начальная точка (name, title, entry point) +----------------------------------------------------------- + +:guilabel:`Site Management > Sites > Edit Site Record > General` + +:guilabel:`Управление сайтом > Сайты > Настройка сайта > Общее` + +.. include:: ../Images/AutomaticScreenshots/Modules/SiteManagementEdit.rst.txt + +* **ID корневой страницы / Root Page ID*** Указывает на корневую страницу в дереве страниц данного сайта +* **Идентификатор сайта / Site Identifier** Используется для внутренних целей, должен быть уникальным и содержать только алфавитно-цифровые латинские символы (также станет названием каталога данной конфигурации сайта) +* **Название сайта / Website Title** Используется в теге title внешнего интерфейса (сайта) +* **Начальная точка / Entry Point** Здесь мы подключаем полнофункциональный домен нашего сайта - :samp:`https://example.org/` +* **Варианты начальной точки / Variant for the entry point** Используется, например, для настройки домена локального веб-сайта (в контексте разработки) + +Языки / Languages +----------------- + +Языки, доступные для этого сайта Configure the first/default language +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +:guilabel:`Site Management > Languages` + +:guilabel:`Управление сайтом > Языки` + +.. include:: ../Images/AutomaticScreenshots/Modules/SiteManagementLanguages.rst.txt + +После установки TYPO3 можно создать языки для первоначальной конфигурации сайта. При необходимости можно добавить дополнительные языки для сайта. diff --git a/Documentation/Localization.ru_RU/Sitemap.rst b/Documentation/Localization.ru_RU/Sitemap.rst new file mode 100644 index 00000000..09d3c6f5 --- /dev/null +++ b/Documentation/Localization.ru_RU/Sitemap.rst @@ -0,0 +1,9 @@ +:template: sitemap.html + +.. include:: /Includes.rst.txt + +======= +Sitemap +======= + +.. The sitemap.html template will insert here the page tree automatically. diff --git a/Documentation/Localization.ru_RU/SystemRequirements/Apache.rst.txt b/Documentation/Localization.ru_RU/SystemRequirements/Apache.rst.txt new file mode 100644 index 00000000..9c11525f --- /dev/null +++ b/Documentation/Localization.ru_RU/SystemRequirements/Apache.rst.txt @@ -0,0 +1,37 @@ +.. include:: /Includes.rst.txt + +.. _apache: + +При первоначальной установке в корневой каталог TYPO3 копируется файл :file:`.htaccess` с настройками по умолчанию. + +**Запись Virtual Host** + +* `AllowOverride `__ необходимо включить "Indexes" и "FileInfo" в запись виртуального хоста Virtual Host. + +**Модули Apache** + +Необходимы следующие модули Apache. Список составлен на основе того, что используется в стандартном TYPO3 `.htaccess `__. В некоторых случаях это не является "жестким" требованием, но настоятельно рекомендуется по соображениям безопасности или производительности, однако желаемый результат можно получить и другим способом, используя другой модуль. + +mod_alias: + Блокировка доступа к каталогам vcs. + +mod_authz_core: + Блокировка доступа к определенным файлам и каталогам. + +mod_deflate: + Используется для сжатия и повышения производительности. + +mod_expires: + Добавляет HTTP-заголовки для кэширования в браузере и повышения производительности. + +mod_filter: + Используется с mod_deflate. + +mod_headers: + Используется в комбинации с `mod_deflate`. + +mod_rewrite: + Включение человекочитаемые урлы. + +mod_setenvif: + Используется в комбинации с `mod_deflate`. diff --git a/Documentation/Localization.ru_RU/SystemRequirements/Database.rst.txt b/Documentation/Localization.ru_RU/SystemRequirements/Database.rst.txt new file mode 100644 index 00000000..f65f1cc4 --- /dev/null +++ b/Documentation/Localization.ru_RU/SystemRequirements/Database.rst.txt @@ -0,0 +1,19 @@ +.. include:: /Includes.rst.txt + + +.. _database: + +Необходимые права доступа к базе данных +--------------------------------------- + +Пользователю базы данных требуются следующие привилегии доступа к базе данных TYPO3: + +* SELECT, INSERT, UPDATE, DELETE + +* CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES + +Рекомендуется также гарантировать следующие привелегии: + +* CREATE VIEW, SHOW VIEW + +* EXECUTE, CREATE ROUTINE, ALTER ROUTINE diff --git a/Documentation/Localization.ru_RU/SystemRequirements/IIS.rst.txt b/Documentation/Localization.ru_RU/SystemRequirements/IIS.rst.txt new file mode 100644 index 00000000..a97535e8 --- /dev/null +++ b/Documentation/Localization.ru_RU/SystemRequirements/IIS.rst.txt @@ -0,0 +1,10 @@ +.. include:: /Includes.rst.txt + + +.. _iis: + +* При первоначальной установки TYPO3 в корневую папку установки копируется стандартный файл веб-конфигурации IIS. + +* Стандартный файл веб-конфигурации IIS с правилами перезаписи можно найти в :file:`EXT:install/Resources/Private/FolderStructureTemplateFiles/root-web-config` + +* Требуется `URL Rewrite дополнение `__. diff --git a/Documentation/Localization.ru_RU/SystemRequirements/Index.rst b/Documentation/Localization.ru_RU/SystemRequirements/Index.rst new file mode 100644 index 00000000..8fd4606c --- /dev/null +++ b/Documentation/Localization.ru_RU/SystemRequirements/Index.rst @@ -0,0 +1,47 @@ +.. include:: /Includes.rst.txt + +.. index:: system requirements, apache, nginx, database, mysql, sqlite + +.. _system-requirements: + +=================== +Системные требования +=================== + +Для работы TYPO3 требуется веб-сервер под управлением PHP и доступ к базе данных. + +Для локальной разработки понадобится Composer. + +Если нужно, чтобы TYPO3 автоматически выполнял обработку изображений, например, масштабирование или обрезку, необходимо установить на сервере `GraphicsMagick (версия 1.3 или выше) `__ или `ImageMagick (версия 6 или выше) `__ (GraphicsMagick предпочтительнее). + +Актуальную информацию о системных требованиях TYPO3 можно получить на сайте `get.typo3.org +`_. + +.. include:: PHP.rst.txt + +Веб сервер +========== + +.. tabs:: + + .. tab:: Apache + + .. include:: Apache.rst.txt + + .. tab:: NGINX + + .. include:: NGINX.rst.txt + + .. tab:: IIS + + .. include:: IIS.rst.txt + +База данных +=========== + +.. include:: Database.rst.txt + +Composer +======== + +Composer требуется только для **локальных** установок - см. `https://getcomposer.org `_ для получения дополнительной информации. Рекомендуется всегда использовать последнюю доступную версию Composer. Для TYPO3 v12 LTS требуется версия Composer не ниже 2.1.0. diff --git a/Documentation/SystemRequirements/NGINX.rst.txt b/Documentation/Localization.ru_RU/SystemRequirements/NGINX.rst.txt similarity index 87% rename from Documentation/SystemRequirements/NGINX.rst.txt rename to Documentation/Localization.ru_RU/SystemRequirements/NGINX.rst.txt index 42c53ffb..b4bd7635 100644 --- a/Documentation/SystemRequirements/NGINX.rst.txt +++ b/Documentation/Localization.ru_RU/SystemRequirements/NGINX.rst.txt @@ -4,10 +4,9 @@ .. _nginx: -NGINX does not support static configuration files that are stored in a projects root like Apache and IIS would. Instead, NGINX requires a configuration file -to be created within the applications own configuration directory. +NGINX не поддерживает статические конфигурационные файлы, которые хранятся в корне проекта, как это делают Apache и IIS. Вместо этого NGINX требует, чтобы конфигурационный файл был создан в собственном каталоге конфигурации приложения. -Example NGINX configuration file: +Пример файла конфигурации NGINX: .. code-block:: nginx :caption: /etc/nginx/conf.d/nginx.conf diff --git a/Documentation/Localization.ru_RU/SystemRequirements/PHP.rst.txt b/Documentation/Localization.ru_RU/SystemRequirements/PHP.rst.txt new file mode 100644 index 00000000..463965aa --- /dev/null +++ b/Documentation/Localization.ru_RU/SystemRequirements/PHP.rst.txt @@ -0,0 +1,76 @@ +.. include:: /Includes.rst.txt + + +.. _systemrequirements_php: + +PHP +=== + +Настройка +--------- + +В настройках необходимо задать следующие параметры :file:`php.ini` + +.. code-block:: ini + :caption: php.ini + + ; memory_limit >= 256MB + memory_limit=256M + + ; max_execution_time >= 240 seconds + max_execution_time=240 + + ; max_input_vars >= 1500 + max_input_vars=1500 + +Следующие настройки определяют максимальный размер загружаемого файла (и при необходимости должны быть изменены): + +.. code-block:: ini + :caption: php.ini + + ; To allow uploads of a maximum of 10 MB + post_max_size = 10M + upload_max_filesize = 10M + + +Необходимые расширения +---------------------- + +* **pdo** +* **session** +* **xml** +* **filter** +* **SPL** +* **standard** +* **tokenizer** +* **mbstring** +* **intl** + +В зависимости от варианта использования могут потребоваться следующие расширения: + +* **fileinfo** (используется для определения расширений загружаемых файлов); +* **gd** (GDlib/Freetype необходим для создания изображений с текстом (GIFBUILDER), а также используется для масштабирования изображений); +* **zip** (TYPO3 использует zip для извлечения языковых архивов, а также для извлечения и архивирования расширений); +* **zlib** (TYPO3 использует zlib для сжатия на выводе); +* **openssl** (OpenSSL необходим для отправки SMTP-сообщений через зашифрованный канал конечной точки). + +Необходимые расширения для баз данных +------------------------------------- + +.. tabs:: + + .. tab:: MySQL / MariaDB + + * pdo_mysql (рекомендуется) + * ИЛИ mysqli + + Для работы экземпляров MySQL и MariaDB требуется движок InnoDB. + + .. tab:: Postgres + + * pdo_pgsql + * postgresql + + .. tab:: SQLite + + * sqlite diff --git a/Documentation/Localization.ru_RU/Troubleshooting/Database.rst b/Documentation/Localization.ru_RU/Troubleshooting/Database.rst new file mode 100644 index 00000000..39d59499 --- /dev/null +++ b/Documentation/Localization.ru_RU/Troubleshooting/Database.rst @@ -0,0 +1,19 @@ +.. include:: /Includes.rst.txt + +.. index:: database, utf-8 + +.. _troubleshooting_database: + +======== +База данных +======== + +MySQL +===== + +.. _character-sets: + +Набор символов +------------- + +TYPO3 использует кодировку UTF-8, поэтому необходимо убедиться, что ваш экземпляр MySQL также использует UTF-8. При первой установке TYPO3 можно выбрать кодировку UTF-8 при первоначальной настройке базы данных. Для существующей базы данных необходимо установить кодировку UTF-8 для каждой таблицы и столбца. diff --git a/Documentation/Localization.ru_RU/Troubleshooting/Index.rst b/Documentation/Localization.ru_RU/Troubleshooting/Index.rst new file mode 100644 index 00000000..eb19f833 --- /dev/null +++ b/Documentation/Localization.ru_RU/Troubleshooting/Index.rst @@ -0,0 +1,102 @@ +.. include:: /Includes.rst.txt + +.. index:: troubleshooting + +.. _troubleshooting_index: + + +=============== +Поиск и устранение неисправностей +=============== + +.. container:: row m-0 p-0 + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`TYPO3 ` + + .. container:: card-body + + * :ref:`Сброс паролей администраторов внутреннего интерфейса` + + * :ref:`Сброс пароля программы установки Install Tool` + + * :ref:`Включение режима отладки` + + * :ref:`Кэширование` + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Системные модули ` + + .. container:: card-body + + * :ref:`Журнал действий` + + * :ref:`Проверка БД` + + * :ref:`Конфигурация` + + * :ref:`Отчёты` + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`PHP ` + + .. container:: card-body + + * :ref:`Модули PHP` + + * :ref:`PHP кэши, классы расширений` + + * :ref:`Сообщения кэша Opcode` + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`Веб сервер` + + .. container:: card-body + + * :ref:`Apache - включение mod_rewrite` + + * :ref:`Apache - настройка ThreadStackSize (Windows)` + + + .. container:: col-md-6 pl-0 pr-3 py-3 m-0 + + .. container:: card px-0 h-100 + + .. rst-class:: card-header h3 + + .. rubric:: :ref:`База данных ` + + .. container:: card-body + + * :ref:`MySQL - наборы символов (кодировка)` + + +.. toctree:: + :hidden: + :titlesonly: + + TYPO3 + SystemModules + PHP + WebServer + Database diff --git a/Documentation/Localization.ru_RU/Troubleshooting/PHP.rst b/Documentation/Localization.ru_RU/Troubleshooting/PHP.rst new file mode 100644 index 00000000..9cbefa18 --- /dev/null +++ b/Documentation/Localization.ru_RU/Troubleshooting/PHP.rst @@ -0,0 +1,74 @@ +.. include:: /Includes.rst.txt + +.. index:: php requirements, php, windows, opcode cache + +.. _php: + +PHP +=== + +.. _php-modules: + +Отсутствующие модули PHP +------------------- + +Раздел "Системное окружение" / "System Environment" программы установки Install Tool содержит подробную информацию об отсутствующих модулях PHP и других параметрах, которые могут быть настроены неверно. + +Например, должны быть включены PHP-расширения openssl и fileinfo. Для этого необходимо добавить (или раскомментировать) следующие строки в разделе [PHP] файла :file:`php.ini`: + +.. code-block:: none + :caption: php.ini + + extension=fileinfo.so + extension=openssl.so + +На сервере под управлением Windows это файлы расширения: + +.. code-block:: none + :caption: php.ini + + extension=php_fileinfo.dll + extension=php_openssl.dll + + +.. _php-caches-extension-classes-etc: + +Кэши PHP, классы расширений и т. д. +---------------------------------- + +В некоторых ситуациях после обновления могут возникать нелогичные на первый взгляд проблемы: + +- Если расширения переопределяют классы, в которых изменены функции. Решение: Попробуйте отключить все расширения, а затем включать их по очереди до тех пор, пока ошибка не повторится. + +- Если PHP-кэш каким-либо образом не может перекэшировать скрипты: в частности, если изменился родительский класс, переопределенный дочерним классом, который не был обновлен. Решение: Удалите ВСЕ кэшированные PHP-файлы (для PHP-Accelerator удалите :file:`/tmp/phpa_*`) и перезапустите Apache. + + +.. _php-troubleshooting_opcode: + +Сообщения кэша Opcode +--------------------- + +No PHP opcode cache loaded +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +У вас не установлена и не активирована система кэширования opcode. Для повышения производительности сайта необходимо использовать эту систему. Лучшим выбором является OPcache. + +This opcode cache is marked as malfunctioning by the TYPO3 CMS Team. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Сообщение будет показано, если найдена и активирована система кэширования opcode, которая, как известно, имеет "слишком много" ошибок и не будет поддерживаться TYPO3 CMS (никаких исправлений, решений по безопасности или чего-либо еще). В текущих версиях TYPO3 поддерживается только OPcache. + +This opcode cache may work correctly but has medium performance. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Информация об этом появится, если будет найдена и активирована система кэширования opcode, которая имеет некоторые недостатки. Например, мы не можем очистить кэш для одного файла (который мы изменили), а можно сбросить только весь кэш. Это произойдет при: + +- OPcache до версии 7.0.2 (не должно быть в природе). +- APC до версии 3.1.1 и некоторые загадочные комбинации настроек. +- XCache. +- ZendOptimizerPlus. + +This opcode cache should work correctly and has good performance. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Похоже, что все в порядке и работает. Возможно, вы можете подправить что-то еще, но это не входит в круг наших знаний о вашем варианте настроек. diff --git a/Documentation/Localization.ru_RU/Troubleshooting/SystemModules.rst b/Documentation/Localization.ru_RU/Troubleshooting/SystemModules.rst new file mode 100644 index 00000000..2f8daf8f --- /dev/null +++ b/Documentation/Localization.ru_RU/Troubleshooting/SystemModules.rst @@ -0,0 +1,63 @@ +.. include:: /Includes.rst.txt + +.. _system_modules: + +============== +Системные модули +============== + +Следующие системные модули могут помочь при поиске и устранении неисправностей в работе TYPO3. Требуются права администратора. + +.. _system-modules-log: + +Журнал / Log +=== + +Внутренний интерфейс TYPO3 CMS регистрирует ряд действий, выполняемых пользователями внутреннего интерфейса: вход в систему, очистку кэша, записи в базе данных (создание, обновление, удаление), изменение настроек, действия с файлами и ошибки. Для этого существует ряд фильтров, позволяющих отфильтровать эти данные. + +.. _system-modules-dbcheck: + +Проверка БД / DB Check +======== + +.. important:: + + "DB Check" и :ref:`system-modules-configuration` доступны только в том случае, если установлено и активировано системное расширение "lowlevel". + + Для установки этого системного расширения: + + .. code-block:: bash + :caption: ~$ + + composer req typo3/cms-lowlevel + + +The *Database (DB) Check* module provides four functions related to the database and its content. Модуль *Проверка базы данных (БД)* / *Database (DB) Check* предоставляет четыре функции, связанные с базой данных и ее содержимым. + +Статистика записей / Record Statistics + Показывает количество различных записей в базе данных с разбивкой по типам для страниц и элементов содержимого. + +Связи / Relations + Проверяет, являются ли определенные связи пустым или разорванными, обычно используется для проверки наличия ссылок на файлы. + +Поиск / Search + Инструмент для поиска по всей базе данных. Имеет расширенный режим, похожий на визуальный конструктор запросов. + +Проверить и обновить глобальный справочный индекс / Check and update global reference index + В CMS TYPO3 ведется учет связей между всеми записями. При выполнении определенных операций без строгого контекста внутреннего интерфейса эта информация может быть рассинхронизирована. Поэтому полезно регулярно обновлять этот индекс. + + +.. _system-modules-configuration: + +Настройка / Configuration +============= + +Модуль *Настройка* / *Configuration* предназначен для просмотра различных массивов настроек, используемых в CMS. + +.. _system-modules-reports: + +Отчеты / Reports +======= + +The *Reports* module contains information and diagnostic data about your TYPO3 CMS installation. It is recommended that you regularly check the "Status Report" as it will inform you about configuration errors, security issues, etc. +В модуле *Отчеты* / *Reports* представлена информация и диагностические данные об установке TYPO3 CMS. Рекомендуется регулярно проверять "Отчет о состоянии" / "Status Report", так как он информирует Вас об ошибках конфигурации, проблемах безопасности и т.д. diff --git a/Documentation/Localization.ru_RU/Troubleshooting/TYPO3.rst b/Documentation/Localization.ru_RU/Troubleshooting/TYPO3.rst new file mode 100644 index 00000000..cc287e98 --- /dev/null +++ b/Documentation/Localization.ru_RU/Troubleshooting/TYPO3.rst @@ -0,0 +1,153 @@ +.. include:: /Includes.rst.txt + +.. index:: resetting password, new password, new user + +.. _troubleshooting_typo3: + +===== +TYPO3 +===== + +Сброс паролей +=================== + +.. _backend-admin-password: + +Пароль администратора внутреннего интерфейса +------------------------------ + +При необходимости сброса пароля пользователя внутреннего интерфейса войдите в него под другим пользователем и воспользуйтесь инструментом :guilabel:`System > Backend Users` для сброса пароля пользователя. Обратите внимание, что только пользователи внутреннего интерфейса с правами администратора могут получить доступ к инструменту `Backend Users` для внесения этих изменений. + +Если альтернативная учетная запись администратора недоступна или она не имеет соответствующего доступа, то для создания нового административного пользователя можно напрямую обратиться к программе Install Tool, указав следующий адрес: + +.. code-block:: none + + https://example.com/typo3/install.php + +Инструмент установки требует ввода "Пароля установки", который был задан при установке TYPO3. + +.. include:: ../Images/AutomaticScreenshots/InstallTool/InstallToolPassword.rst.txt + +После входа в систему Admin Tool перейдите в раздел :guilabel:`Maintenance > Create Administrative User` и выберите :guilabel:`Create Administrator`. В этом диалоге вы можете создать нового административного пользователя. + +.. include:: ../Images/AutomaticScreenshots/BackendUsers/CreateAdministrator.rst.txt + +.. include:: ../Images/AutomaticScreenshots/BackendUsers/CreateAdministratorForm.rst.txt + +Используйте эту новую учетную запись администратора для входа во внутренний интерфейс TYPO3. В модуле :guilabel:`Внутренние пользователи` / :guilabel:`Backend Users` можно изменить пароли существующих пользователей, включая администраторов. + +.. _install-tool-password: + +Пароль программы установки Install Tool +--------------------- + +Для сброса пароля :guilabel:`Install Tool` требуется доступ на запись в :file:`config/system/settings.php` (в традиционных устаревших установках :file:`typo3conf/system/settings.php`). + +Перед редактированием этого файла обратитесь к разделу: + +.. code-block:: none + + https://example.com/typo3/install.php + + +Введите новый пароль в диалоговое окно. Поскольку новый пароль не верен, будет получен следующий ответ: + +.. code-block:: none + :caption: Example Output + + "Given password does not match the install tool login password. Calculated hash: + $argon2i$v=xyz" + +Скопируйте этот хэш, включая часть :php:`$argon2i` и все завершающие точки. + +Затем отредактируйте файл :`config/system/settings.php` и замените следующую запись массива на новый хэшированный пароль: + +.. code-block:: php + :caption: config/system/settings.php + + 'BE' => [ + 'installToolPassword' => '$argon2i$v=xyz', + ], + +.. note:: + + Если новый пароль не работает, проверьте, не переопределяется ли он в дальнейшем в файле :file:`config/system/settings.php` или в файле :file:`config/system/additional.php`, если таковой существует. Если войти в программу установки по-прежнему не удается, проверьте, нет ли ошибок в журналах при включенной отладке. + +.. _debug-mode: + +Настройки отладки +============== + +При устранении неполадок в разделе :guilabel:`"Settings > Configuration Presets"` инструмента установки, в разделе "Debug settings", можно изменить предустановку "Debug" для отображения ошибок во фронтенде. + +.. include:: ../Images/AutomaticScreenshots/DebugSettings/ConfigurationPresets.rst.txt + +.. include:: ../Images/AutomaticScreenshots/DebugSettings/DebugSettings.rst.txt + +В корневой шаблон сайта также можно добавить следующий параметр TypoScript для отображения дополнительной отладочной информации. Это особенно полезно при отладке ошибок Fluid: + +.. code-block:: typoscript + + config.contentObjectExceptionHandler = 0 + +.. seealso:: + + :ref:`t3coreapi:error-handling-configuration-examples-debug` + +.. important:: + + После завершения отладки обязательно удалите все отладочные Typoscript и верните настройку Отладка / Debug в положение 'Live'. + +Кроме того, для получения дополнительной информации следует проверить следующие протоколы: + +* Файлы журналов веб-сервера для выявления общих проблем (например, :file:`/var/log/apache2` или :file:`/var/log/httpd` в системах на базе Linux). +* Вход в систему администрирования TYPO3 :guilabel:`SYSTEM > Log` через внутренний интерфейс TYPO3. +* Журналы TYPO3, записываемые :ref:`Logging Framework `, располагаются в :file:`var/log` или :file:`typo3temp/var/log` в зависимости от настроек установки. + +.. _troubleshooting-caching: + +Кэширование +======= + +Cached Files in typo3temp/ +-------------------------- + +TYPO3 создает временные "кэшированные" файлы и PHP-скрипты в каталоге :file:`/cache/` (либо :file:`typo3temp/var/cache`, либо :file:`var/cache` в зависимости от установки). В любой момент можно удалить весь каталог :file:`/cache`, при этом структура каталога и все кэши будут перезаписаны при следующем обращении посетителя к сайту. + +Ярлык для удаления этих кэшей можно найти в :guilabel:`Install Tool`, в разделе :guilabel:`Important Actions`. Это может быть полезно в том случае, если файлы кэша повреждены и выполнение системы невозможно. Инструмент установки не будет загружать ни один из этих кэшей или расширений, поэтому его можно использовать независимо от поврежденного состояния кэшей. + +Среди прочих кэшей в разделе :file:`/cache/code/core/` находится: + +.. code-block:: bash + :caption: /cache/code/core/ + + -rw-rw---- 1 www-data www-data 61555 2014-03-26 16:28 ext_localconf_8b0519db6112697cceedb50296df89b0ce04ff70.php + -rw-rw---- 1 www-data www-data 81995 2014-03-26 16:28 ext_tables_c3638687920118a92ab652cbf23a9ca69d4a6469.php + +В этих файлах представлены все файлы :file:`ext\_tables.php` и :file:`ext\_localconf.php` установленных расширений, скомпонованные в порядке их загрузки. Поэтому включение одного из этих файлов равносильно включению потенциально сотен PHP-файлов и должно повысить производительность. + + + +.. _possible-problems-with-the-cached-files: + +Возможные проблемы с кэшируемыми файлами +--------------------------------------- + +.. _changing-the-absolute-path-to-typo3: + +Изменение абсолютного пути к TYPO3 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Если изменить путь установки TYPO3, то могут возникнуть аналогичные ошибки, в том числе "Failed opening ..." или "Unable to access ...". Проблема заключается в том, что абсолютные пути к файлам жестко закодированы внутри кэшированных файлов. + +Решение: очистите кэш с помощью Install Tool: Перейдите в раздел "Важные действия" / "Important Actions" и воспользуйтесь функцией "Очистить все кэши" / "Clear all caches". Затем снова откройте страницу. + + +.. _changing-image-processing-settings: + +Изменение настроек обработки изображений +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +При изменении настроек обработки изображений (в обычном режиме) необходимо учитывать, что в папке :file:`typo3temp/` все еще могут находиться старые изображения, которые препятствуют генерации новых файлов! Это особенно важно знать, если вы впервые пытаетесь настроить обработку изображений. + +Проблема решается очисткой файлов в папке :file:`typo3temp/`. Также не забудьте очистить таблицу базы данных "cache\_pages". diff --git a/Documentation/Localization.ru_RU/Troubleshooting/WebServer.rst b/Documentation/Localization.ru_RU/Troubleshooting/WebServer.rst new file mode 100644 index 00000000..ca2a320a --- /dev/null +++ b/Documentation/Localization.ru_RU/Troubleshooting/WebServer.rst @@ -0,0 +1,52 @@ +.. include:: /Includes.rst.txt + +.. index:: apache + +.. _webserver: + +========== +Веб сервер +========== + +Apache +====== + +Для корректной работы TYPO3 некоторые настройки могут потребовать корректировки Это зависит от операционной системы сервера и версии установленного Apache. + +.. _enable-mod_rewrite: + +Включение mod_rewrite +------------------ + +Если mod_rewrite не включен, обработка URL-адресов будет работать некорректно (в частности, отображение URL-адресов, которые TYPO3 использует для "человекопонятных URL"), и в результате могут возникать ошибки 404 (страница не найдена). + +.. tip:: + + Способ включения модулей Apache зависит от вашей системы. Обратитесь к документации по дистрибутиву вашей операционной системы. + +Например, модули можно включить, отредактировав файл :file:`http.conf`, найдя в нем нужные модули и удалив хэш-символ в начале строки: + +.. code-block:: none + :caption: http.conf + + #LoadModule expires_module modules/mod_expires.so + #LoadModule rewrite_module modules/mod_rewrite.so + + +После внесения любых изменений в конфигурацию Apache необходимо перезапустить службу. + +.. _adjust-threadstacksize-on-windows: + +Настройка размера ThreadStackSize в Windows +--------------------------------- + +Если вы используете TYPO3 под Windows, менеджер расширений может не отображаться. + +Эта проблема вызвана значением параметра ThreadStackSize, который в системах Windows по умолчанию установлен слишком низким. Для решения этой проблемы добавьте следующие строки в конце файла :file:`httpd.conf`: + +.. code-block:: none + :caption: http.conf + + + ThreadStackSize 8388608 + diff --git a/Documentation/Localization.ru_RU/UserManagement/BackendPrivileges/Index.rst b/Documentation/Localization.ru_RU/UserManagement/BackendPrivileges/Index.rst new file mode 100644 index 00000000..dd5b2f4a --- /dev/null +++ b/Documentation/Localization.ru_RU/UserManagement/BackendPrivileges/Index.rst @@ -0,0 +1,54 @@ +.. include:: /Includes.rst.txt + +.. _privileges: + +================== +Привилегии внутреннего интерфейса +================== + +В следующих главах рассматриваются модули, которые будут доступны только пользователям внутреннего интерфейса с определенными привилегиями доступа. + +В дополнение к настройке прав доступа для внутренних пользователей или групп, описанной в :ref:`permissions`, существуют права "суперпользователя", которые могут быть активированы для каждого пользователя. + +Если пользователь внутреннего интерфейса был создан для редактирования во внутреннем интерфейсе, то он, как правило, не должен получать доступ к модулям администратора или системы. + +Пользователю внутреннего интерфейса следует предоставлять только тот доступ, который ему необходим. Это облегчает работу за счет автоматической деактивации модулей и элементов графического интерфейса, к которым пользователь не имеет доступа. Кроме того, пользователь не сможет нанести вред системе, случайно выполнив действия, к которым он не должен был иметь доступа. + +До версии TYPO3 9 существовали только права admin и non admin. Теперь у нас появилась дополнительная привилегия доступа " system maintainer". + + + +.. _admin-user: + +Администратор / Admin +===== + +* Привилегия пользователя admin может быть добавлена путем установки флажка "admin" при создании или изменении пользователя внутреннего интерфейса. +* администраторы имеют доступ к модулю **SYSTEM** (включая модули Access, Backend User, Log и т. д.) + +.. image:: ../../Images/ManualScreenshots/UserManagement/system.png + :class: with-shadow + +.. image:: ../../Images/ManualScreenshots/UserManagement/system_open.png + :class: with-shadow + + + +.. _user-management-system-maintainers: +.. _system-maintainer: + +Системные администраторы / System Maintainers +================== + +The first backend admin created during installation will automatically be a system maintainer as well. To give other users system privileges, you can add them in the :guilabel:`ADMIN TOOLS > Settings > Manage System Maintainers` configuration. Alternatively the website can be set into "Development" mode in the Install Tool. This will give all admin users system maintainer access. +Первый администратор внутреннего интерфейса, созданный при установке, автоматически становится и сопровождающим системы (system maintainer). Чтобы предоставить другим пользователям системные привилегии, можно добавить их в конфигурации :guilabel:`ADMIN TOOLS > Settings > Manage System Maintainers`. В качестве альтернативы можно перевести сайт в режим "Разработка" в инструменте установки. В этом случае все пользователи-администраторы получат права системного сопровождающего (system maintainer). + +.. image:: ../../Images/ManualScreenshots/UserManagement/admin-tools.png + :class: with-shadow + +.. image:: ../../Images/ManualScreenshots/UserManagement/admin-tools-open.png + :class: with-shadow + +System Maintainers - это единственные пользователи, которые могут видеть и иметь доступ к :guilabel:`Admin Tools` и :guilabel:`Extension Manager`. Эти пользователи сохраняются в :file:`config/system/settings.php` как :php:`$GLOBALS['TYPO3_CONF_VARS']['SYS']['systemMaintainers']`. + + diff --git a/Documentation/Localization.ru_RU/UserManagement/BackendUsers/CreateDefaultEditors.rst b/Documentation/Localization.ru_RU/UserManagement/BackendUsers/CreateDefaultEditors.rst new file mode 100644 index 00000000..54ba390a --- /dev/null +++ b/Documentation/Localization.ru_RU/UserManagement/BackendUsers/CreateDefaultEditors.rst @@ -0,0 +1,96 @@ +:orphan: + +.. include:: /Includes.rst.txt + +.. _user-management-create-default-editors: + +==================== +Создание пользователей по умолчанию +==================== + +Создание simple_editor +==================== + +Создание новых пользователей и групп подробно рассматривается в разделе :ref:`creating-a-new-user-for-the-introduction-site`. + +Здесь будут созданы 2 новых пользователя, использующих уже существующие группы ( созданные с помощью " Introduction Package "). + + +.. rst-class:: bignums + +1. Войдите в модуль "Внутренние пользователи" + +2. Щелкните по `+`: "Создать новую запись" / "Create new record" + + .. figure:: ../../Images/ManualScreenshots/UserManagement/UserManagementCreateNewUser.png + :alt: Создание нового пользователя + :class: with-shadow + + Создайте нового внутреннего пользователя + +3. Заполните поля. + + * **Имя пользователя** / **Username:** simple_editor + * **Пароль** / **Password:** *choose some password* + * **Группа** / **Group:** Select "Simple editors" in the "Available Items" + * **Имя** / **Name:** Simple Editor + + .. figure:: ../../Images/ManualScreenshots/UserManagement/UserManagementCreateNewUserSimpleEditor.png + :alt: Заполнение полей данными для нового внутреннего пользователя + :class: with-shadow + +4. Нажмите Сохранить (вверху) + +5. Активация внутреннего пользователя + + .. figure:: ../../Images/ManualScreenshots/UserManagement/BackendEditorUnhide.png + :alt: Активация редактора + :class: with-shadow + +Создан пользователь с уже существующей группой "Simple editors". + +Создание "advanced_editor" +======================== + +Создаем еще одного пользователя "advanced_editor". Используем группу "Advanced Editors". + +Изменить монтирование БД / DB Mount для группы "Simple Editors" +========================================== + +Группа ""Simple Editors"" должна иметь страницу "Content Examples", установленную как "DB Mounts" в разделе "Mounts and Workspaces". + +.. rst-class:: bignums + +1. В верхней части выберите "Группы внутренних пользователей" / "Backend user groups". + +2. Щелкните на группе " Simple editors" (или на карандаше для редактирования). + +3. Выберите вкладку "Точки доступа и рабочие области" / "Mounts and Workspaces" + +4. Проверьте + + Если вы видите страницу "Congratulations" в DB Mounts, то следует продолжить, если вы видите "Content Examples", то вы закончили и можете прервать работу, выбрав вверху "Закрыть". + +5. Щелкните на " Congratulation " и мусорном ведре, чтобы удалить ее. + +6. Щелкните по значку с папкой "Обзор записей" + +7. Выберете страницу "Content Examples" + +8. Сохраните + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendGroupDbMount.png + :class: with-shadow + :alt: Изменение точки доступа к базе данных + + Изменить точку монтирования БД + + +Что мы сейчас сделали? + +Мы изменили монтирование БД со страницы "Congratulations" (изначально установленной) на "Content Examples". Редактор должен видеть и редактировать только страницы из раздела "Content Examples". Результат вы увидите на следующем шаге. + +Далее +==== + +Перейдите к :ref:`simulate-user` diff --git a/Documentation/Localization.ru_RU/UserManagement/BackendUsers/Index.rst b/Documentation/Localization.ru_RU/UserManagement/BackendUsers/Index.rst new file mode 100644 index 00000000..799453e6 --- /dev/null +++ b/Documentation/Localization.ru_RU/UserManagement/BackendUsers/Index.rst @@ -0,0 +1,86 @@ +.. include:: /Includes.rst.txt + +.. _user-management-backend-users: + +============= +Внутренние пользователи +============= + +Управление пользователями внутреннего интерфейса осуществляется с помощью модуля **СИСТЕМА > Внутренние пользователи** / **SYSTEM > Backend users**. + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendUsersModule.png + :alt: модуль Внутренние пользователи + :class: with-shadow + + +Данный модуль позволяет осуществлять поиск и фильтрацию пользователей. Кроме того, их можно редактировать, удалять и отключать. + +.. tip:: + + Подробнее о специальных ролях пользователей внутреннего интерфейса "администратор" / "admin" и "сопровождающий системы" / "system maintainers" см. в разделе :ref:`privileges`. + +Редакторы по умолчанию в пакете Introduction Package +=========================================== + +В Introduction Package для вас будут созданы два редактора и группы по умолчанию: "simple_editor" и "advanced_editor". + +.. hint:: + + В следующих шагах предполагается, что редакторы "simple_editor" и "advanced_editor" существуют. В некоторых версиях " Introduction Package" `они не создаются `__. + + Если эти пользователи не существуют в вашей установке, выполните шаги, описанные в :ref:`user-management-create-default-editors`, и продолжайте. + +.. _simulate-user: + +Имитация пользователя +============= + +.. _user-management-simple-editor: + +"simple\_editor" +---------------- + +Самый простой способ проверить другого пользователя (если один из них является администратором) - это воспользоваться функцией "имитация пользователя" / "simulate user": + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendUsersSimulate.png + :alt: Последний значок позволяет включить имитацию другого пользователя + :class: with-shadow + + +А вот что видит "simple\_editor" при обращении к внутреннему интерфейсу TYPO3 CMS: + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendSimpleEditorUser.png + :alt: Вид внутреннего интерфейса для "simple\_editor" + :class: with-shadow + + +Как видно, этот пользователь имеет доступ только к модулю "Страница" / "Page". Кроме того, его представление дерева страниц также ограничено ветвью, начинающейся со страницы "Примеры содержимого" / "Content examples". + +Чтобы вернуться к учетной записи администратора, щелкните на имени пользователя в верхней панели и нажмите кнопку "Выход из режима имитации" (обратите внимание, что обычно эта кнопка имеет значение "Выход"). + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendUsersSimulateExit.png + :alt: Выход из режима имитации внутреннего пользователя + :class: with-shadow + + +.. _user-management-advanced-editor: + +"advanced\_editor" +------------------ + +Теперь попробуйте проделать то же самое с "advanced\_editor". После переключения пользователя вы должны увидеть следующее: + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAdvancedEditorUser.png + :alt: Внутренний интерфейс для "advanced\_editor" + :class: with-shadow + +Пользователь "advanced\_editor" имеет право использовать больше модулей, чем "simple\_editor", но не имеет доступа к дереву страниц. Возможно, это ошибка пакета Introduction, но это хорошее упражнение для того, чтобы изменить права пользователей в следующих главах. + +.. note:: + + Доступ к записям пользователей можно также получить, используя модуль **ВЕБ > Список** / **WEB > List** и щелкнув на корневом узле (тот, что с логотипом TYPO3 CMS). + + .. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendUsersList.png + :alt: Внутренние пользователи в модуле Список + :class: with-shadow + diff --git a/Documentation/Localization.ru_RU/UserManagement/GroupPermissions/Index.rst b/Documentation/Localization.ru_RU/UserManagement/GroupPermissions/Index.rst new file mode 100644 index 00000000..ddac93a2 --- /dev/null +++ b/Documentation/Localization.ru_RU/UserManagement/GroupPermissions/Index.rst @@ -0,0 +1,179 @@ +.. include:: /Includes.rst.txt + + +.. _permissions: +.. _setting-up-user-permissions: + +=========================== +Настройка прав доступа пользователей +=========================== + +Рассмотрим управление правами пользователей с помощью редактирования группы пользователей "Advanced editors". + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditSettings.png + :alt: Выбор меню настроек + +.. _general: + +Общее / General +======= + +На вкладке "Общие" можно отредактировать название группы и написать краткое описание. Как уже упоминалось, права доступа из подгрупп будут наследоваться текущей группой. + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditGeneralTab.png + :alt: Содержимое вкладки "Общее" при редактировании группы внутренних пользователей + + +.. note:: + + Настройка разрешений – это не только права доступа. + + Кроме того, это может помочь навести порядок во внутреннем интерфейсе, обеспечив пользователям внутреннего интерфейса доступ только к тем модулям, которые им необходимы. + +.. _access-lists: +.. _include-access-lists: + +Списки доступа / Access Lists +============ + +На вкладке "Списки доступа" / "Access Lists" задается большинство разрешений. Все поля подробно описаны ниже. + + +.. _modules: + +Модули / Modules +------- + +Первое поле используется для определения того, к каким модулям должны иметь доступ члены группы. Это напрямую влияет на то, что будет отображаться в меню модулей для пользователей внутреннего интерфейса. + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditModules.png + :alt: Выбор модулей для групп внутренних пользователей + + +.. _tables: +.. _tables-modify: + +Таблицы / Tables +------ + +Второе поле позволяет выбрать таблицы, которые разрешено просматривать членам групп ("Таблицы (просматривать)" / "Tables (listing)"). И следующее поле - то же самое, но для таблиц, которые могут быть изменены ("Таблицы (редактировать)" / "Tables (modify)"). + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditTables.png + :alt: + + +.. _page-types: + +Типы страниц / Page Types +---------- + +Эти поля могут ограничивать доступность типов страниц для членов группы. Пояснения по поводу различных типов страниц можно найти в :ref:`Руководстве для редакторов: `. + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditPageTypes.png + :alt: + + +.. _allowed-excludefields: + +Разрешённые поля-исключения / Allowed Excludefields +--------------------- + +При определении полей таблиц в TYPO3 существует возможность пометить их как "исключенные". Такие поля никогда не будут видны пользователям внутреннего интерфейса (кроме администраторов, разумеется), если им не будет явно предоставлен доступ к ним. Данное поле предназначено для предоставления такого доступа. Оно отображает список всех таблиц и исключенных из них полей. + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditExcludeFields.png + :alt: Список исключенных для показа полей таблиц в состоянии по умолчанию (все таблицы свернуты) + + +Щелкните по названию таблицы, чтобы развернуть список ее полей, и выберите поля, установив флажки. + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditExcludeFieldsExpanded.png + :alt: Тот же список с одной раскрытой таблицей + + +.. _explicitly-allow-deny-field-values: + +Явно разрешить/запретить значения полей / Explicitly Allow or Deny Field Values +------------------------------------- + +Для некоторых полей можно установить более тонкие разрешения на фактические значения, допустимые для этих полей. В частности, это относится к полю "Содержимое страницы: Тип" / "Page content: Type", определяющего тип элемента содержимого, который затем может быть определен членами группы. + +Как и в случае со списком исключенных полей, это поле появляется внутри свернутых групп. Для внесения изменений необходимо развернуть одну группу. + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditAllowDeny.png + :alt: Настройка разрешений для значений типов содержимого на страницах + +Ограничить до языков / Limit to Languages +------------------ + +На многоязычном сайте можно также ограничить доступ пользователей к определенному языку или набору языков. Это можно сделать с помощью последнего поля вкладки "Списки доступа". + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditLanguages.png + :alt: Настройка ограничения на языки + + +.. _mounts: + +Точки доступа и рабочие области / Mounts and Workspaces +===================== + +На следующей вкладке представлены очень важные поля, определяющие, на какие части дерева страниц и файловой системы члены группы могут получить свои права. + +Здесь мы рассмотрим только монтирование. Подробную информацию о рабочих пространствах можно найти в :doc:`руководстве по расширению `. + + +.. _db-mounts: + +Доступ к БД / DB Mounts +--------- + +Монтирования DB (монтирования базы данных) используются для ограничения доступа пользователя только к некоторым частям дерева страниц. Каждое монтирование соответствует странице в дереве. Пользователь будет иметь доступ только к этим страницам и их подстраницам. + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditDBMounts.png + :alt: Выбор точек монтирования БД для групп + +Дополнительно :ref:`Разрешения для страниц `. + +Для того чтобы эти настройки наследовались назначенными пользователями, необходимо активизировать флажок "Монтировать из групп" / "Mount from groups" для параметра "Монтирование БД" / "DB Mounts" в записи `be_users` этого пользователя. Эта запись находится в модуле "Список" на корневой странице и в модуле "Внутренние пользователи" / "Backend User". + +.. _file-mounts: + +Точки доступа к файлам / File Mounts +----------- + +Точки доступа к файлам похожи на подключения к БД, но используются для управления доступом к файлам. Основное отличие заключается в том, что записи подключения файлов должны быть сначала определены администратором. Они располагаются на корневой странице: + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendFileMountList.png + :alt: Список всех доступных точек доступа к файлам + + +Затем их можно выбрать при редактировании группы пользователей внутреннего интерфейса: + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditFileMounts.png + :alt: Выбор из доступных точек доступа к файлам + +.. note:: + + Определение записей точек доступа к файлам также зависит от так называемых файловых хранилищ. Подробнее эта тема раскрывается в главе :ref:`File Abstraction Layer в руководстве TYPO3 Explained Manual `. + +Для того чтобы эти настройки наследовались назначенными пользователями, необходимо активизировать флажок "Монтировать из групп" для параметра "Доступ к файлам" в записи `be_users` определенного пользователя. Эта запись находится в модуле "Список" на корневой странице и в модуле "Внутренние пользователи". + + +.. _file-permissions: + +Разрешения для операций с файлами / Fileoperation Permissions +------------------------- + +Предоставление доступа к файлам - это еще не все. Необходимо разрешить специфические операции над файлами и каталогами. Для этого используется следующее поле. Выберите "Каталог" / "Directory" или "Файлы" / "Files" и расставьте флажки. + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditFilePermissions.png + :alt: Задание специальных разрешений на операции с файлами + + +.. _category-permissions: + +Категория точки монтирования / Category mounts +--------------- + +Можно указать категории, которые пользователь может прикрепить к записи базы данных, выбрав разрешенные категории в поле :guilabel:`Категория точки монтирования` / :guilabel:`Category mount`. Если в поле Категория точки монтирования / category mount не выбрана ни одна категория, то доступны все категории. + +Категории точек монтирования влияют только на то, что могут быть прикреплены к записям с определенными категориями. Все категории видны в модуле Список, если пользователь имеет доступ к папке, в которой хранятся записи `sys_category`. diff --git a/Documentation/Localization.ru_RU/UserManagement/Groups/Index.rst b/Documentation/Localization.ru_RU/UserManagement/Groups/Index.rst new file mode 100644 index 00000000..0cb04df5 --- /dev/null +++ b/Documentation/Localization.ru_RU/UserManagement/Groups/Index.rst @@ -0,0 +1,25 @@ +.. include:: /Includes.rst.txt + + +.. _groups: + +====== +Группы +====== + +Несмотря на возможность изменить права доступа для каждого пользователя, настоятельно рекомендуется использовать группы. Как и для пользователей, существуют "Группы внутренних пользователей" и "Группы пользователей сайта". + +В этой главе представлен небольшой обзор групп пользователей внутреннего интерфейса. В следующей главе рассмотрим, как изменить права доступа пользователей с помощью групп. + +Группы внутренних пользователей можно просмотреть и в модуле **СИСТЕМА > Внутренние пользователи** / **SYSTEM > Backend users**: + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendUserGroups.png + :alt: Просмотр групп в модуле Внутренние пользователи + + +Видны две группы, соответствующие пользователям (" simple" и "advanced"). + +Чтобы узнать, в какой группе состоит каждый пользователь, выберите значок "информация". Откроется всплывающее окно с подробной информацией о группе. Прокрутите страницу вниз, пока не найдете раздел "Ссылки на этот элемент:" / "References to this item:". Здесь отображается список пользователей внутреннего интерфейса, входящих в данную группу. + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendUserGroupDetail.png + :alt: Проверка пользователей на принадлежность к группе diff --git a/Documentation/Localization.ru_RU/UserManagement/Index.rst b/Documentation/Localization.ru_RU/UserManagement/Index.rst new file mode 100644 index 00000000..e6cd11ec --- /dev/null +++ b/Documentation/Localization.ru_RU/UserManagement/Index.rst @@ -0,0 +1,28 @@ +.. include:: /Includes.rst.txt + + +.. _user-management: + +======================= +Управление пользователями внутреннего интерфейса +======================= + +.. important:: + + В этой главе (и последующих) рассматриваются модули, которые будут доступны только пользователям внутреннего интерфейса с правами доступа :ref:`"admin" `. + +Ранее было показано, что в CMS TYPO3 существует строгое разделение на так называемые "внешний интерфейс" / "frontend" и "внутренний интерфейс" / "backend". То же самое относится и к пользователям: есть "внешние пользователи" / "frontend users" - посетители сайта, и "внутренние пользователи" / "backend users" - редакторы и администраторы. + +Работа с пользователями внешнего интерфейса рассматривается в :ref:`Editors Guide `. Здесь же рассматривается работа с пользователями внутреннего интерфейса и настройка групп и прав доступа. + +.. toctree:: + :maxdepth: 5 + :titlesonly: + :glob: + + BackendPrivileges/Index + BackendUsers/Index + Groups/Index + GroupPermissions/Index + PagePermissions/Index + UserSetup/Index diff --git a/Documentation/Localization.ru_RU/UserManagement/PagePermissions/Index.rst b/Documentation/Localization.ru_RU/UserManagement/PagePermissions/Index.rst new file mode 100644 index 00000000..45339d3a --- /dev/null +++ b/Documentation/Localization.ru_RU/UserManagement/PagePermissions/Index.rst @@ -0,0 +1,37 @@ +.. include:: /Includes.rst.txt + + +.. _page-permissions: + +================ +Права доступа к странице +================ + +:ref:`Доступ к БД ` - это еще не вся история о доступе к страницам. Пользователи и группы также должны иметь права на выполнение операций над страницами, таких как просмотр, редактирование или удаление. + +Управление этим осуществляется с помощью модуля **СИСТЕМА > Доступ** / **SYSTEM > Access**: + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessModule.png + :alt: Модуль доступ с владельцами и правами + + +Каждая страница имеет владельца, пользователя, а также принадлежность к группе. Права могут быть назначены владельцу, группе или всем. Это хорошо знакомо пользователям Unix. + +Если нужно изменить разрешение, просто щелкните на соответствующем значке, и состояние разрешения изменится. Чтобы изменить владельца или группу данной страницы, щелкните на имени владельца или группы, после чего появится небольшая форма. + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessModuleChangeOwner.png + :alt: Изменение владельца страницы + + +Также можно рекурсивно изменить владельца, группу и разрешения даже для всего дерева страниц. Давайте перейдем домашнюю страницу, щелкнув на странице "Congratulations" в дереве страниц. Теперь снова щелкните на странице "Congratulations" в модуле *Доступ* / *Access*. Должно появиться следующее: + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessModuleChangeRecursively.png + :alt: Подготовка к рекурсивному изменению группы на всем дереве страниц + + +Выбрав в качестве группы "Все пользователи", а затем "Установить рекурсивно 3 уровня" в раскрывающемся списке "Глубина", мы назначим **все** страницы в дереве страниц группе "Все пользователи". + +Действительно, в этом есть смысл, поскольку группа " All users" является подгруппой как "Simple editors", так и "Advanced editors". Таким образом, обе группы будут иметь одинаковые права на дерево страниц. Однако, поскольку у них разные монтирования БД, они не будут иметь доступа к одному и тому же набору страниц. + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessModuleGroupChanged.png + :alt: Группа изменена для всех страниц diff --git a/Documentation/Localization.ru_RU/UserManagement/UserSetup/Index.rst b/Documentation/Localization.ru_RU/UserManagement/UserSetup/Index.rst new file mode 100644 index 00000000..919c0d99 --- /dev/null +++ b/Documentation/Localization.ru_RU/UserManagement/UserSetup/Index.rst @@ -0,0 +1,84 @@ +.. include:: /Includes.rst.txt + +.. _setup-user: +.. _creating-a-new-user-for-the-introduction-site: + +================= +Настройка пользователя +================= + +Чтобы изучить последние детали настройки пользователя внутреннего интерфейса, а также в качестве упражнения, в этой главе будет рассмотрен процесс создания нового пользователя. Для повышения интереса создадим также новую группу пользователей. + + +.. _step-create-a-new-group: + +Шаг 1: Создание новой группы +========================== + +Создадим новую группу пользователей с помощью модуля *Доступ* / *Access*. + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessCreateNewGroup.png + :alt: Создание новой группы внутренних пользователей из модуля Access + + +Начните с ввода названия ("Resource editors"), опционально - описания и выберите в качестве подгруппы "All users". + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessNewGroupGeneralTab.png + :alt: Ввод общей информации о новой группе + + +Давайте не будем усложнять дальнейшие разрешения. Попробуйте выполнить следующие действия: + +- Для **Модулей** достаточно выбрать "Веб > Страница" / "Web > Page" и "Веб > Просмотр" / "Web > View". +- Для **Tables (listing)** и **Tables (modify)**, выберете "Page" и "Page content". +- Для **Page types**, выберете "Standard". + +и сохраните. + +Перейдите на вкладку "Mounts and workspaces" и выберите страницу "Resources" в качестве DB mount. Для этого в правой части поля мастера начните вводить слово "Res". Появятся предложения, из которых можно выбрать страницу "Resources". + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessNewGroupDBMount.png + :alt: Определение точек доступа к БД, используя мастер подсказок + + +Все остальное проигнорируем. Чтобы вернуться к списку групп, воспользуйтесь действием "Сохранить и закрыть". + + +.. _step-create-the-user: + +Шаг 2: Создание пользователя +======================= + +Аналогично тому, что мы делали ранее, создадим нового пользователя с помощью модуля *Access*. + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessCreateNewUser.png + :alt: Создание нового пользователя внутреннего интерфейса из модуля Access + + +Введите имя пользователя, пароль, членство в группе: + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessNewUserGeneralTab.png + :alt: Настройка основной информации для нового пользователя + + +.. note:: + + Если бы мы создавали нового администратора, то нам нужно было бы просто установить флажок "Admin (!)". Пользователям-администраторам не обязательно принадлежать к какой-либо группе, хотя это может быть полезно для разделения специальных настроек между администраторами. + +Теперь переключитесь на вкладку "Mounts and workspaces" и убедитесь, что установлены параметры "Mount from Groups": + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessNewUserMountFromGroups.png + :alt: Проверка настройки "Монтировать из групп" + + +Таким образом, монтирование БД и файлов берется из группы (групп), в которую входит пользователь, и не определяется на уровне пользователя. + +Сохраните и закройте запись. Проверим результат нашей работы, воспользовавшись рассмотренной ранее функцией симуляции пользователя. + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessSimulateResourceEditor.png + :alt: Давайте смоделируем нашего нового пользователя! + +Вы должны увидеть следующее: + +.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendResourceEditorUser.png + :alt: Внутренний интерфейс, как его видит Resource McEditor diff --git a/Documentation/genindex.rst b/Documentation/Localization.ru_RU/genindex.rst similarity index 100% rename from Documentation/genindex.rst rename to Documentation/Localization.ru_RU/genindex.rst diff --git a/Documentation/Localization.ru_RU/guides.xml b/Documentation/Localization.ru_RU/guides.xml new file mode 100644 index 00000000..3081aa2d --- /dev/null +++ b/Documentation/Localization.ru_RU/guides.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + diff --git a/Documentation/screenshots.json b/Documentation/Localization.ru_RU/screenshots.json similarity index 84% rename from Documentation/screenshots.json rename to Documentation/Localization.ru_RU/screenshots.json index 1749c634..eb238857 100644 --- a/Documentation/screenshots.json +++ b/Documentation/Localization.ru_RU/screenshots.json @@ -25,8 +25,8 @@ "action": "makeScreenshotOfElement", "selector": ".typo3-install-content", "fileName": "EnableFirstInstall", - "altText": "Success message after download", - "captionText": "Success message after download" + "altText": "Сообщение об успешном завершении загрузки", + "captionText": "Сообщение об успешном завершении загрузки" }, { "action": "writeFileToTypo3PublicPath", "filePath": "FIRST_INSTALL" @@ -39,7 +39,7 @@ "action": "makeScreenshotOfElement", "selector": ".typo3-install-content", "fileName": "Step1SystemEnvironment", - "captionText": "Install Tool in 1-2-3 mode, first step." + "captionText": "Инструмент установки / Install Tool в режиме 1-2-3, первый шаг" }, { "action": "click", "link": ".btn-success" @@ -62,7 +62,7 @@ "action": "makeScreenshotOfElement", "selector": ".typo3-install-content", "fileName": "Step2DatabaseConnection", - "captionText": "Install Tool in 1-2-3 mode, second step." + "captionText": "Инструмент установки / Install Tool в режиме 1-2-3, второй шаг" }, { "action": "click", "link": ".btn-success" @@ -77,7 +77,7 @@ "action": "makeScreenshotOfElement", "selector": ".typo3-install-content", "fileName": "Step3ChooseDb", - "captionText": "Install Tool in 1-2-3 mode, third step." + "captionText": "Инструмент установки / Install Tool в режиме 1-2-3, третий шаг" }, { "action": "click", "link": ".btn-success" @@ -104,7 +104,7 @@ "action": "makeScreenshotOfElement", "selector": ".typo3-install-content", "fileName": "Step4AdminUserSitename", - "captionText": "Install Tool in 1-2-3 mode, forth step." + "captionText": "Инструмент установки / Install Tool в режиме 1-2-3, четвертый шаг" }, { "action": "click", "link": ".btn-success" @@ -115,7 +115,7 @@ "action": "makeScreenshotOfElement", "selector": ".typo3-install-content", "fileName": "Step5LastStep", - "captionText": "Install Tool in 1-2-3 mode, fifth step." + "captionText": "Инструмент установки / Install Tool в режиме 1-2-3, пятый шаг" }, { "action": "click", "link": ".btn-success" @@ -179,7 +179,7 @@ }, { "action": "makeScreenshotOfWindow", "fileName": "SettingsLanguage", - "captionText": "Changing the current user's interface language" + "captionText": "Изменение языка интерфейса текущего пользователя" } ], "Modules": [ @@ -211,7 +211,7 @@ }, { "action": "makeScreenshotOfWindow", "fileName": "SiteManagement", - "captionText": "Site management section of the modules menu" + "captionText": "Раздел управления сайтом в меню модулей" }, { "action": "switchToContentFrame" }, { @@ -220,14 +220,14 @@ }, { "action": "makeScreenshotOfElement", "fileName": "SiteManagementEdit", - "captionText": "Site Management: Edit Site" + "captionText": "Управление сайтом: Редактирование сайта" }, { "action": "click", "link": "Languages" }, { "action": "makeScreenshotOfWindow", "fileName": "SiteManagementLanguages", - "captionText": "Site Management: Edit Languages" + "captionText": "Управление сайтом: Редактирование языков" }, { "action": "switchToMainFrame" }, { @@ -276,8 +276,8 @@ }, { "action": "makeScreenshotOfElement", "fileName": "ManageLanguage", - "altText": "Manage language packs", - "captionText": "Open the backend language administration module" + "altText": "Управление языковыми пакетами", + "captionText": "Откройте модуль управления языками внутреннего интерфейса" }, { "action": "clearDrawings" }, { @@ -302,8 +302,8 @@ }, { "action": "makeScreenshotOfWindow", "fileName": "ManageLanguagePacksAddLanguage", - "altText": "Add a language", - "captionText": "Add the desired language" + "altText": "Добавление языка", + "captionText": "Добавление нужного языка" }, { "action": "click", "link": "a[data-iso=af]" @@ -315,7 +315,7 @@ }, { "action": "makeScreenshotOfWindow", "fileName": "ManageLanguagePacksAddLanguageAddSuccess", - "altText": "A language has been added" + "altText": "Добавлен язык" }, { "action": "click", "link": "button.t3js-modal-close" @@ -350,7 +350,7 @@ }, { "action": "makeScreenshotOfWindow", "fileName": "BackendUserListing", - "captionText": "Backend User Listing" + "captionText": "Список пользователей внутреннего интерфейса" }, { "action": "click", "link": "Create new record" @@ -378,7 +378,7 @@ }, { "action": "makeScreenshotOfWindow", "fileName": "CreateNewUserSimpleEditor", - "captionText": "Fill out fields for the new backend user" + "captionText": "Заполнение полей для нового пользователя внутреннего интерфейса" }, { "action": "selectOption", "select": "select[data-relatedfieldname*=\"usergroup\"]", @@ -402,7 +402,7 @@ }, { "action": "makeScreenshotOfWindow", "fileName": "SwitchUserLanguage", - "captionText": "Change interface language for a backend user" + "captionText": "Изменение языка для пользователя внутреннего интерфейса" }, { "action": "clearDrawings" }, { @@ -418,8 +418,8 @@ "action": "makeScreenshotOfElement", "fileName": "EditorUnhide", "selector": "//tr[contains(., 'jlpicard')]", - "altText": "Activate editor in list", - "captionText": "Activate editor" + "altText": "Активация редактора в списке", + "captionText": "Активация редактора" } ], "CreateAdministratorViaMaintenance": [ @@ -477,8 +477,8 @@ "action": "makeScreenshotOfElement", "selector": ".module", "fileName": "CreateAdministrator", - "altText": "Button to create an administrator", - "captionText": "Create a new administrative user" + "altText": "Кнопка для создания администратора", + "captionText": "Создание нового пользователя-администратора" }, { "action": "clearDrawings" }, { @@ -496,8 +496,8 @@ "action": "makeScreenshotOfElement", "selector": ".modal-content", "fileName": "CreateAdministratorForm", - "altText": "Form to create an administrator", - "captionText": "Fill in the fields for the new administrative user" + "altText": "Форма для создания пользователя-администратора", + "captionText": "Заполнение полей для нового пользователя-администратора" } ], "Debug": [ @@ -544,8 +544,8 @@ "action": "makeScreenshotOfElement", "selector": ".module", "fileName": "ConfigurationPresets", - "altText": "Configuration Presets Card", - "captionText": "Choose a configuration preset" + "altText": "Карточка предустановок конфигурации", + "captionText": "Выбор предустановки конфигурации" }, { "action": "clearDrawings" }, { @@ -569,8 +569,8 @@ }, { "action": "makeScreenshotOfWindow", "fileName": "DebugSettings", - "altText": "Debug Presets", - "captionText": "Choose the debug preset" + "altText": "Предустановки отладки", + "captionText": "Выберите предварительную настройку отладки" } ], "InstallToolLogin": [ @@ -596,8 +596,8 @@ }, { "action": "makeScreenshotOfWindow", "fileName": "InstallToolPassword", - "altText": "The install tool login", - "captionText": "Enter the install tool password" + "altText": "Вход в инструмент установки / install tool", + "captionText": "Ввод пароля программы установки / install tool" } ] } diff --git a/Documentation/NextSteps/Index.rst b/Documentation/NextSteps/Index.rst index 353c3f60..82016b8b 100644 --- a/Documentation/NextSteps/Index.rst +++ b/Documentation/NextSteps/Index.rst @@ -8,40 +8,53 @@ Next Steps and Further Reading ============================== -Once TYPO3 is installed, it is now possible to start the process of developing -the site's visual appearance and creating pages and content inside the CMS. +After learning the basics of TYPO3, you're ready to dive into advanced topics and best practices. +This section provides an overview of the next steps to deepen your TYPO3 expertise and ensure +your projects are professional and sustainable. -:doc:`Building The Sites Structure And Adding Content ` -======================================================================== +.. _next-steps-testing: -Using the Page tree - start to define the structure of your site by creating pages. +Testing in TYPO3: Unit and Functional Test +========================================== -Pages can exist in various forms and can also be nested inside one and other. +Testing ensures that changes to your code do not cause unexpected side effects and that your TYPO3 installation remains reliable. +TYPO3 offers robust tools for Unit and Functional Testing. -Once the page structure exists content can now be added to the pages. +See `here `_ for more information. -Developing The Sites Visual Appearance -====================================== +.. _next-steps-codings-guidelines: -There are two main topics that cover templating in TYPO3, Fluid and Site packages. +Coding Guidelines +================= -:ref:`Fluid Templating ` -+++++++++++++++++++++++++++++++++++++++++++++++++++++++ +Following coding guidelines (CGL) ensures your code is consistent, readable and maintaineble. +TYPO3 adheres to strict standards for PHP, TypoScript and JavaScript. -Fluid is TYPO3’s templating engine. Fluid acts as the link between a project's -static HTML templates and the content that is created in TYPO3’s backend. +More information about CGL can be found `here `_. -:doc:`Site Packages ` -++++++++++++++++++++++++++++++++++++++++++ +.. _next-steps-rte-config: -Site packages are a type of extension that act as a storage point for a projects -frontend assets and any configuration files that extend or change -the behaviour of a TYPO3 installation. +Rich Text Editor Configuration +============================== + +The Rich Text Editor (RTE) in TYPO3 enables content creation and editing in the +backend. Custom configurations can improve usability and consistency. +It can be configured using `TypoScript `_ +and `YAML `_. + +You can find more information `here `__. + +.. _next-steps-multilanguage: + +Multilanguage Handling +====================== + +TYPO3 provides powerful tools for multilingual websites. +See here for further information. -Before the development of a sites visual appearance or "theme" can start, a Site -package needs to be created in order to store frontend assets such as -Fluid/HTML,CSS,Javascript files. Once they are located within a Site package they -can then be loaded by TYPO3 to render the frontend. +For more details see :ref:`here `. + +.. _next-steps-security: Keep Security In Mind ===================== @@ -53,3 +66,13 @@ are regularly published. More information about security can be found in the :ref:`t3coreapi:security`. + +.. _next-steps-contributing: + +Contributing +============ + +Giving back to the TYPO3 community is a great way to grow as a developer and +ensure TYPO3 continues to evolve. + +Look here for more information about `contributing `_ diff --git a/Documentation/Prerequisites/Index.rst b/Documentation/Prerequisites/Index.rst new file mode 100644 index 00000000..f8ba2a61 --- /dev/null +++ b/Documentation/Prerequisites/Index.rst @@ -0,0 +1,77 @@ +:navigation-title: Prerequisites +.. include:: /Includes.rst.txt + +.. _prerequisites: + +================================= +Prerequisites to start with TYPO3 +================================= + +Before you start working on this tutorial, you should have DDEV installed on +your computer. + +This TYPO3 tutorial assumes that the reader has some basic knowledge in the following areas: + +* `HTML, CSS and JavaScript `__ +* `Basic Command Line Interface (CLI) Commands `__ + +.. _composer_cheat_sheat: + +Composer cheat sheet +==================== + +Composer is a powerful tool for managing dependencies in PHP projects, including +TYPO3. Here you will find an overview of the four most important commands with a +simple explanation of what they do. + +.. _composer_require: + +composer require +---------------- + +.. code-block:: bash + + composer require vendor/extension-name + +It installs a new package (e.g. a TYPO3 extension) and automatically adds it to your :guilabel:`composer.json`. +Composer determines the appropriate version based on your current configuration. +All required dependencies for the package are also installed. + +.. _composer_remove: + +composer remove +--------------- + +.. code-block:: bash + + composer remove vendor/extension-name + +Uninstalls an existing package from your project. +Removes the entry from :guilabel:`composer.json` and deletes related files from the +:guilabel:`vendor` folder. +Removes unused dependencies that were only required for the removed package. + +.. _composer_install: + +composer install +---------------- + +.. code-block:: bash + + composer install + +It installs exactly the versions specified in the :guilabel:`composer.lock` file. + +.. _composer_update: + +composer update +--------------- + +.. code-block:: bash + + composer update + +It updates all installed packages to their latest version, as allowed by the version constraints in :guilabel:`composer.json`. +The :guilabel:`composer.lock` file, which records the exact package versions, is updated. +Downloads the updated packages to the :guilabel:`vendor` folder. + diff --git a/Documentation/Settings.cfg b/Documentation/Settings.cfg deleted file mode 100644 index 81bf9eb3..00000000 --- a/Documentation/Settings.cfg +++ /dev/null @@ -1,64 +0,0 @@ -# More information about this file: -# https://docs.typo3.org/m/typo3/docs-how-to-document/main/en-us/GeneralConventions/FileStructure.html#settings-cfg - -[general] - -project = Getting Started -version = main (development) -release = main (development) -copyright = since 2012 by the TYPO3 contributors - -[html_theme_options] - -# "Edit on GitHub" button -github_repository = TYPO3-Documentation/TYPO3CMS-Tutorial-GettingStarted -github_branch = main - -# Footer links -project_home = https://docs.typo3.org/m/typo3/tutorial-getting-started/main/en-us/ -project_contact = https://typo3.slack.com/archives/C028JEPJL -project_repository = https://github.com/TYPO3-Documentation/TYPO3CMS-Tutorial-GettingStarted -project_issues = https://github.com/TYPO3-Documentation/TYPO3CMS-Tutorial-GettingStarted/issues -project_discussions = - -use_opensearch = - -[intersphinx_mapping] - - -t3start11 = https://docs.typo3.org/m/typo3/tutorial-getting-started/11.5/en-us/ - -# Official TYPO3 manuals -# h2document = https://docs.typo3.org/m/typo3/docs-how-to-document/main/en-us/ -# t3cheatsheets = https://docs.typo3.org/m/typo3/docs-cheatsheets/main/en-us/ -# t3contribute = https://docs.typo3.org/m/typo3/guide-contributionworkflow/main/en-us/ -t3coreapi = https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ -# t3docteam = https://docs.typo3.org/m/typo3/team-t3docteam/main/en-us/ -t3editors = https://docs.typo3.org/m/typo3/tutorial-editors/main/en-us/ -# t3extexample = https://docs.typo3.org/m/typo3/guide-example-extension-manual/main/en-us/ -# t3home = https://docs.typo3.org/ -# t3install = https://docs.typo3.org/m/typo3/guide-installation/main/en-us/ -# t3l10n = https://docs.typo3.org/m/typo3/guide-frontendlocalization/main/en-us/ -t3sitepackage = https://docs.typo3.org/m/typo3/tutorial-sitepackage/main/en-us/ -# t3start = https://docs.typo3.org/m/typo3/tutorial-getting-started/main/en-us/ -# t3tca = https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ -# t3translate = https://docs.typo3.org/m/typo3/guide-frontendlocalization/main/en-us/ -# t3tsconfig = https://docs.typo3.org/m/typo3/reference-tsconfig/main/en-us/ -# t3tsref = https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/ -# t3ts45 = https://docs.typo3.org/m/typo3/tutorial-typoscript-in-45-minutes/main/en-us/ -# t3viewhelper = https://docs.typo3.org/other/typo3/view-helper-reference/main/en-us/ -# t3upgrade = https://docs.typo3.org/m/typo3/guide-installation/main/en-us/ - -# TYPO3 system extensions -# ext_adminpanel = https://docs.typo3.org/c/typo3/cms-adminpanel/main/en-us/ -# ext_core = https://docs.typo3.org/c/typo3/cms-core/main/en-us/ -# ext_dashboard = https://docs.typo3.org/c/typo3/cms-dashboard/main/en-us/ -# ext_felogin = https://docs.typo3.org/c/typo3/cms-felogin/main/en-us/ -# ext_form = https://docs.typo3.org/c/typo3/cms-form/main/en-us/ -# ext_fsc = https://docs.typo3.org/c/typo3/cms-fluid-styled-content/main/en-us/ -# ext_indexed_search = https://docs.typo3.org/c/typo3/cms-indexed-search/main/en-us/ -# ext_rte_ckeditor = https://docs.typo3.org/c/typo3/cms-rte-ckeditor/main/en-us/ -# ext_scheduler = https://docs.typo3.org/c/typo3/cms-scheduler/main/en-us/ -# ext_seo = https://docs.typo3.org/c/typo3/cms-seo/main/en-us/ -ext_workspaces = https://docs.typo3.org/c/typo3/cms-workspaces/main/en-us/ -ext_surf = https://docs.typo3.org/other/typo3/surf/main/en-us/ diff --git a/Documentation/Setup/BackendLanguages.rst b/Documentation/Setup/BackendLanguages.rst deleted file mode 100644 index af5ea778..00000000 --- a/Documentation/Setup/BackendLanguages.rst +++ /dev/null @@ -1,77 +0,0 @@ -.. include:: /Includes.rst.txt - -.. index:: languages, backend language - -.. _backendlanguages: - -============================= -Changing the backend language -============================= - -By default, TYPO3's backend is set to English with no additional languages -available. - -.. contents:: **Table of Contents** - :depth: 1 - :local: - - -Install an additional language pack -=================================== - -An additional language pack can be installed as an administrator in the backend: - -.. rst-class:: bignums - -1. Go to :guilabel:`Admin Tools > Maintenance > Manage Languages Packs` - - .. include:: /Images/AutomaticScreenshots/Modules/ManageLanguage.rst.txt - -2. Select :guilabel:`Add Language` and activate the new language: - - .. include:: /Images/AutomaticScreenshots/Modules/ManageLanguagePacksAddLanguage.rst.txt - -3. The selected language is now available: - - .. include:: /Images/AutomaticScreenshots/Modules/ManageLanguagePacksAddLanguageAddSuccess.rst.txt - -.. note:: - .. versionadded:: 12.1 - - If the :file:`config/system/settings.php` file is write-protected, all - buttons are disabled and an info box is rendered. - - -Set the language as backend language for yourself -================================================= - -One of the available backend languages can be selected in your user account. -Go to :guilabel:`Toolbar (top right) > User Avatar > User Settings` and select -the new language from the field :guilabel:`Language`: - -.. include:: /Images/AutomaticScreenshots/BackendUsers/SettingsLanguage.rst.txt - -Save the settings and reload the browser content. - -.. note:: - This change only applies to your account. - - -Change the backend language of another user -=========================================== - -As an administrator you can change the backend language of another user. - -.. rst-class:: bignums - -1. Go to :guilabel:`System > Backend Users` - - .. include:: /Images/AutomaticScreenshots/BackendUsers/BackendUserListing.rst.txt - -2. Select the user - -3. Change the language - - Select the new language from the field :guilabel:`User Interface Language`. - - .. include:: /Images/AutomaticScreenshots/BackendUsers/SwitchUserLanguage.rst.txt diff --git a/Documentation/Setup/BackendUsers.rst b/Documentation/Setup/BackendUsers.rst deleted file mode 100644 index efbb985c..00000000 --- a/Documentation/Setup/BackendUsers.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. include:: /Includes.rst.txt - -.. index:: backend users, administrators - -.. _backendusers: - -==================== -Adding Backend Users -==================== - -To create additional backend user records, navigate to :guilabel:`System > Backend Users`. - -Here a list of all current backend users will be displayed. - -.. include:: ../Images/AutomaticScreenshots/BackendUsers/BackendUserListing.rst.txt - -With :guilabel:`create new record` a new backend user can be created. - -A username and password need to be set. Additional information can also be provided such as the user's name and email address. - -Enabling the "Admin" toggle grants the user full access to the backend. - -.. include:: ../Images/AutomaticScreenshots/BackendUsers/CreateNewUserSimpleEditor.rst.txt - -This user record has to be "Enabled" before it can be used to log in to the backend. - -.. include:: ../Images/AutomaticScreenshots/BackendUsers/EditorUnhide.rst.txt diff --git a/Documentation/Setup/Index.rst b/Documentation/Setup/Index.rst deleted file mode 100644 index 756b8d3f..00000000 --- a/Documentation/Setup/Index.rst +++ /dev/null @@ -1,55 +0,0 @@ -.. include:: /Includes.rst.txt - -.. _setup: - -===== -Setup -===== - -.. container:: row m-0 p-0 - - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 - - .. container:: card px-0 h-100 - - .. rst-class:: card-header h3 - - .. rubric:: :ref:`Creating A Site Record` - - .. container:: card-body - - Once TYPO3 is installed, the default Site record needs to be configured before content and templates can be added. - - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 - - .. container:: card px-0 h-100 - - .. rst-class:: card-header h3 - - .. rubric:: :ref:`Adding Backend Users ` - - .. container:: card-body - - Create additional backend users that will have access to TYPO3's backend interface. - - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 - - .. container:: card px-0 h-100 - - .. rst-class:: card-header h3 - - .. rubric:: :ref:`Changing The Backend Language` - - .. container:: card-body - - Setup additional backend languages in TYPO3 allowing users to select an alternative language to use in the backend. - - - -.. toctree:: - :hidden: - :titlesonly: - - SiteRecords.rst - BackendUsers.rst - BackendLanguages.rst diff --git a/Documentation/Setup/SiteRecords.rst b/Documentation/Setup/SiteRecords.rst deleted file mode 100644 index 98f58c21..00000000 --- a/Documentation/Setup/SiteRecords.rst +++ /dev/null @@ -1,45 +0,0 @@ -.. include:: /Includes.rst.txt - -.. index:: site, domain configuration, languages - -.. _siterecords: - -====================== -Creating A Site Record -====================== - -A single installation of TYPO3 can host multiple websites each with its own content, appearance and domain. - -The Site Management Module handles the routing and management for every site in an installation of TYPO3 and stores this information inside individual configuration files. - -During installation, TYPO3 automatically creates a basic site record. - -However, some additional information is required once TYPO3 is installed. - -- A unique internal and external name needs to be set for the site record. -- A domain needs to be set for the site. - -Site name, title and entry point --------------------------------- - -:guilabel:`Site Management > Sites > Edit Site Record > General` - -.. include:: ../Images/AutomaticScreenshots/Modules/SiteManagementEdit.rst.txt - -* **Root Page ID*** Points to the root page of the page tree for this site -* **Site Identifier** Used internally, make this unique and only use alphanumeric characters (will also be the directory name of this site configuration) -* **Website Title** Visible in the front end title tag -* **Entry Point** Here we attach the fully qualified domain of our web site - :samp:`https://example.org/` -* **Variant for the entry point** Used to configure for example the local web site domain (in development context) - -Languages ---------- - -Configure the first/default language -++++++++++++++++++++++++++++++++++++ - -:guilabel:`Site Management > Languages` - -.. include:: ../Images/AutomaticScreenshots/Modules/SiteManagementLanguages.rst.txt - -After TYPO3 is installed, you can create languages for your first site configuration. You can add additional languages for the site if you need to. diff --git a/Documentation/SystemRequirements/Apache.rst.txt b/Documentation/SystemRequirements/Apache.rst.txt deleted file mode 100644 index c99d30d1..00000000 --- a/Documentation/SystemRequirements/Apache.rst.txt +++ /dev/null @@ -1,42 +0,0 @@ -.. include:: /Includes.rst.txt - -.. _apache: - -During the initial installation, TYPO3's default :file:`.htaccess` file is copied to the installation root folder. - -**Virtual Host Record** - -* `AllowOverride `__ needs to include "Indexes" and "FileInfo" in the Virtual Host record. - -**Apache Modules** - -The following Apache modules are required. The list is based on what is used in -the default TYPO3 -`.htaccess `__. -In some cases, it is not a "hard" requirement, but is strongly recommended for -security or performance reasons, but you can also handle the desired outcome -in a different way with a different module. - -mod_alias: - Block access to vcs directories - -mod_authz_core: - Block access to specific files and directories - -mod_deflate: - Used for compression and performance. - -mod_expires: - Adds HTTP headers for browser caching and performance. - -mod_filter: - Used with mod_deflate. - -mod_headers: - Used in combination with `mod_deflate`. - -mod_rewrite: - Enable human readable urls. - -mod_setenvif: - Also used with `mod_deflate`. diff --git a/Documentation/SystemRequirements/Database.rst.txt b/Documentation/SystemRequirements/Database.rst.txt deleted file mode 100644 index a24d6bae..00000000 --- a/Documentation/SystemRequirements/Database.rst.txt +++ /dev/null @@ -1,20 +0,0 @@ -.. include:: /Includes.rst.txt - - -.. _database: - -Required Database Privileges ----------------------------- - -The database user requires the following privileges on the TYPO3 -database: - -* SELECT, INSERT, UPDATE, DELETE - -* CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES - -It is recommended to also grant the following privileges: - -* CREATE VIEW, SHOW VIEW - -* EXECUTE, CREATE ROUTINE, ALTER ROUTINE diff --git a/Documentation/SystemRequirements/IIS.rst.txt b/Documentation/SystemRequirements/IIS.rst.txt deleted file mode 100644 index d59eaa87..00000000 --- a/Documentation/SystemRequirements/IIS.rst.txt +++ /dev/null @@ -1,12 +0,0 @@ -.. include:: /Includes.rst.txt - - -.. _iis: - -* During the initial installation of TYPO3, the default IIS web config file is - copied to the installation root folder. - -* Default IIS web config file with rewrite rules can be found in - :file:`EXT:install/Resources/Private/FolderStructureTemplateFiles/root-web-config` - -* The `URL Rewrite plugin `__ is required. diff --git a/Documentation/SystemRequirements/Index.rst b/Documentation/SystemRequirements/Index.rst deleted file mode 100644 index e0590386..00000000 --- a/Documentation/SystemRequirements/Index.rst +++ /dev/null @@ -1,46 +0,0 @@ -.. include:: /Includes.rst.txt - -.. index:: system requirements, apache, nginx, database, mysql, sqlite - -.. _system-requirements: - -=================== -System Requirements -=================== - -TYPO3 requires a web server running PHP and access to a database. - -Composer is also required for local development. - -For up-to-date information about TYPO3's system requirements visit `get.typo3.org -`_. - -.. include:: PHP.rst.txt - -Web Server -========== - -.. tabs:: - - .. tab:: Apache - - .. include:: Apache.rst.txt - - .. tab:: NGINX - - .. include:: NGINX.rst.txt - - .. tab:: IIS - - .. include:: IIS.rst.txt - -Database -======== - -.. include:: Database.rst.txt - -Composer -======== - -Composer is only required for **local** installations - see `https://getcomposer.org `_ for further -information. It is recommended to always use the latest available Composer version. TYPO3 v11 LTS requires at least Composer version 2.1.0. diff --git a/Documentation/SystemRequirements/PHP.rst.txt b/Documentation/SystemRequirements/PHP.rst.txt deleted file mode 100644 index 0dbc50c5..00000000 --- a/Documentation/SystemRequirements/PHP.rst.txt +++ /dev/null @@ -1,79 +0,0 @@ -.. include:: /Includes.rst.txt - - -.. _systemrequirements_php: - -PHP -=== - -Configure ---------- - -The following settings need to be set in the installations :file:`php.ini` - -.. code-block:: ini - :caption: php.ini - - ; memory_limit >= 256MB - memory_limit=256M - - ; max_execution_time >= 240 seconds - max_execution_time=240 - - ; max_input_vars >= 1500 - max_input_vars=1500 - -The following settings control the maximum upload file size (and should be -adapted if necessary): - -.. code-block:: ini - :caption: php.ini - - ; To allow uploads of a maximum of 10 MB - post_max_size = 10M - upload_max_filesize = 10M - - -Required Extensions -------------------- - -* **pdo** -* **json** -* **pcre >= 8.38** -* **session** -* **xml** -* **filter** -* **SPL** -* **standard** -* **tokenizer** -* **mbstring** -* **intl** - -Depending on the use case, the following extensions may also be required: - -* **fileinfo** (used to detect file extensions of uploaded files) -* **gd** (GDlib/Freetype is required for building images with text (GIFBUILDER) and is also be used to scale images) -* **zip** (TYPO3 uses zip to extract language archives as well as extracting and archiving extensions) -* **zlib** (TYPO3 uses zlib for output compression) -* **openssl** (OpenSSL is required for sending SMTP mails over an encrypted channel endpoint) - -Required Database Extensions ----------------------------- - -.. tabs:: - - .. tab:: MySQL / MariaDB - - * pdo_mysql (recommended) - * OR mysqli - - The InnoDB engine is required for MySQL and MariaDB instances. - - .. tab:: Postgres - - * pdo_pgsql - * postgresql - - .. tab:: SQLite - - * sqlite diff --git a/Documentation/Troubleshooting/BackendLogin.rst b/Documentation/Troubleshooting/BackendLogin.rst new file mode 100644 index 00000000..db223738 --- /dev/null +++ b/Documentation/Troubleshooting/BackendLogin.rst @@ -0,0 +1,105 @@ +:navigation-title: Backend login +.. include:: /Includes.rst.txt + +.. _troubleshooting-backend-login: + +=================================================== +Troubleshooting common TYPO3 backend login problems +=================================================== + +The following errors can happen during backend login: + +.. contents:: + +.. tip:: + `Creating a TYPO3 backend administrator `_ + is a solution if you lost the password or user name of your administrator account. + +.. _troubleshooting-login-reload: + +Login page reloads without error +================================ + +* Try deleting all browser cookies and caches or use a different browser / + device. There might be an outdated cookie that prevents log-in. +* Clear all TYPO3 caches via console command or install tool. +* Delete folder :path:`var/cache` to remove possible corrupted cache data. +* Check the cookies configuration in TYPO3: Ensure that cookie-related + settings (:confval:`sessionTimeout `, + :confval:`cookieDomain `) + are correct and not causing session issues. + +.. _troubleshooting-login-invalid: + +"Invalid Credentials" error +=========================== + +* Check if the username and password are correct. +* Try to `Create a new backend administrator `_ + and use that one. + +.. _troubleshooting-login-white-screen: + +White screen before or after login +================================== + +Many older TYPO3 files contain a line like the following that needs to be replaced: + +.. code-block:: diff + + -defined('TYPO3_MODE') or die(); + +defined('TYPO3') or die(); + +The PHP constant `TYPO3_MODE` was removed with TYPO3 v12 but it is still +widespread in older code examples and extensions. This can also happen if you +installed a TYPO3 extension that is not compatible with newer TYPO3 versions. + +If you have this line in your own code, replace it. If you find it in the above +code in a third party extension, check if a newer version is available. If you +do not find one you can try to reach out to the extension author or patch it +yourself. + +.. _troubleshooting-login-access-denied: + +Access denied before or after login +=================================== + +* If the line above contains "Access denied." or a similar string that string will + be output and the login page contains nothing else: + + .. code-block:: diff + + -defined('TYPO3_MODE') or die('Access denied.'); + +defined('TYPO3') or die('Access denied.'); + + The solution is the same like for :ref:`troubleshooting-login-white-screen`. +* Check file permissions on the TYPO3 files. +* Check the `.htaccess` or Nginx configurations + +.. _troubleshooting-login-account-locked: + +"Account locked" message +======================== + +* Wait the required time +* Or delete the folder :path:`var/cache` + +.. _troubleshooting-login-page-not-found: + +"Page Not Found" or 404 Error +============================= + +* Check file permissions on the TYPO3 files. +* Check the `.htaccess` or Nginx configurations + +.. _troubleshooting-login-broken: + +Broken login form or missing elements +===================================== + +* Try deleting all browser cookies and caches or use a different browser / + device. There might be an outdated cookie that prevents log-in. +* Clear all TYPO3 caches via console command or install tool. +* Was there a warning during `composer install`? The :path:`_assets` folder + might not have been properly symlinked during installation. +* Check the browser console for errors. diff --git a/Documentation/Troubleshooting/Database.rst b/Documentation/Troubleshooting/Database.rst deleted file mode 100644 index f0043a90..00000000 --- a/Documentation/Troubleshooting/Database.rst +++ /dev/null @@ -1,23 +0,0 @@ -.. include:: /Includes.rst.txt - -.. index:: database, utf-8 - -.. _troubleshooting_database: - -======== -Database -======== - -MySQL -===== - -.. _character-sets: - -Character Set -------------- - -TYPO3 uses UTF-8 encoding, you will need to ensure that your -instance of MySQL also uses UTF-8. When installing TYPO3 for -the first time, you can select UTF-8 encoding when you create -the database for the first time. For an existing database, you -will have to set each table and column to use UTF-8. diff --git a/Documentation/Troubleshooting/Index.rst b/Documentation/Troubleshooting/Index.rst index 317ce5e4..a4cbcc74 100644 --- a/Documentation/Troubleshooting/Index.rst +++ b/Documentation/Troubleshooting/Index.rst @@ -1,102 +1,31 @@ -.. include:: /Includes.rst.txt +.. include:: /Includes.rst.txt -.. index:: troubleshooting - -.. _troubleshooting_index: +.. index:: troubleshooting +.. _troubleshooting-index: =============== Troubleshooting =============== -.. container:: row m-0 p-0 - - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 - - .. container:: card px-0 h-100 - - .. rst-class:: card-header h3 - - .. rubric:: :ref:`TYPO3 ` - - .. container:: card-body - - * :ref:`Reset Backend Administrative User Passwords` - - * :ref:`Reset The Install Tool Password` - - * :ref:`Enabling Debug Mode` - - * :ref:`Caching` - - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 - - .. container:: card px-0 h-100 - - .. rst-class:: card-header h3 - - .. rubric:: :ref:`System Modules ` - - .. container:: card-body - - * :ref:`Log` - - * :ref:`DB Check` - - * :ref:`Configuration` - - * :ref:`Reports` - - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 - - .. container:: card px-0 h-100 - - .. rst-class:: card-header h3 - - .. rubric:: :ref:`PHP ` - - .. container:: card-body - - * :ref:`PHP Modules` - - * :ref:`PHP Caches, Extension Classes` - - * :ref:`Opcode cache messages` - - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 - - .. container:: card px-0 h-100 - - .. rst-class:: card-header h3 - - .. rubric:: :ref:`Web server` - - .. container:: card-body - - * :ref:`Apache - enable mod_rewrite` - - * :ref:`Apache - adjust ThreadStackSize (Windows)` - - - .. container:: col-md-6 pl-0 pr-3 py-3 m-0 - - .. container:: card px-0 h-100 - - .. rst-class:: card-header h3 +.. card-grid:: + :columns: 1 + :columns-md: 2 + :gap: 4 + :class: pb-4 + :card-height: 100 - .. rubric:: :ref:`Database ` + .. card:: :ref:`Backend login ` - .. container:: card-body + Have a look at common problems during backend login. - * :ref:`MySQL - character sets` + .. card:: :ref:`Server and administration ` + Troubleshooting server and administration related topics. -.. toctree:: - :hidden: - :titlesonly: +.. toctree:: + :hidden: + :titlesonly: - TYPO3.rst - SystemModules.rst - PHP.rst - WebServer.rst - Database.rst + BackendLogin + WebServer diff --git a/Documentation/Troubleshooting/PHP.rst b/Documentation/Troubleshooting/PHP.rst deleted file mode 100644 index 81f9aac2..00000000 --- a/Documentation/Troubleshooting/PHP.rst +++ /dev/null @@ -1,93 +0,0 @@ -.. include:: /Includes.rst.txt - -.. index:: php requirements, php, windows, opcode cache - -.. _php: - -PHP -=== - -.. _php-modules: - -Missing PHP Modules -------------------- - -The "System Environment" section of the Install Tool provides detailed -information about any missing PHP modules and any other settings that -may not be configured correctly. - -For example, the PHP extensions openssl and fileinfo must be enabled. This can -be achieved by adding (or uncommenting) the following lines in the [PHP] -section of your :file:`php.ini` file: - -.. code-block:: none - :caption: php.ini - - extension=fileinfo.so - extension=openssl.so - -On a Windows-based server, these are the extension files: - -.. code-block:: none - :caption: php.ini - - extension=php_fileinfo.dll - extension=php_openssl.dll - - -.. _php-caches-extension-classes-etc: - -PHP Caches, Extension Classes etc. ----------------------------------- - -There are some situations which can cause what appear to be -illogical problems after an upgrade: - -- If extensions override classes in which functions have changed. - Solution: Try disabling all extensions and then enable them one by - one until the error recurs. - -- If a PHP cache somehow fails to re-cache scripts: in particular, if a - change happened to a parent class overridden by a child class which was not updated. - Solution: Remove ALL cached PHP files (for PHP-Accelerator, remove :file:`/tmp/phpa_*`) - and restart Apache. - - -.. _php-troubleshooting_opcode: - -Opcode cache messages ---------------------- - -No PHP opcode cache loaded -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -You do not have an opcode cache system installed or activated. If you -want better performance for your website, then you should use one. The -best choice is OPcache. - -This opcode cache is marked as malfunctioning by the TYPO3 CMS Team. -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -This will be shown if an opcode cache system is found and activated, -which is known to have "too many" errors and won't be supported by TYPO3 -CMS (no bugfixes, security fixes or anything else). In current TYPO3 -versions only OPcache is supported - -This opcode cache may work correctly but has medium performance. -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -This will be shown if an opcode cache system is found and activated, -which has some nitpicks. For example we cannot clear the cache for one -file (which we changed) but only can reset the complete cache itself. -This will happen with: - -- OPcache before 7.0.2 (Shouldn't be out in the wild.) -- APC before 3.1.1 and some mysterious configuration combinations. -- XCache -- ZendOptimizerPlus - -This opcode cache should work correctly and has good performance. -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Well it seems that all is ok and working. Maybe you can tweak something -more but this is out of our knowledge of your user scenario. diff --git a/Documentation/Troubleshooting/SystemModules.rst b/Documentation/Troubleshooting/SystemModules.rst deleted file mode 100644 index 5c2bc18c..00000000 --- a/Documentation/Troubleshooting/SystemModules.rst +++ /dev/null @@ -1,78 +0,0 @@ -.. include:: /Includes.rst.txt - -.. _system_modules: - -============== -System Modules -============== - -The following system modules can help when trying to troubleshoot issues with -TYPO3. Administrative rights are required. - -.. _system-modules-log: - -Log -=== - -The TYPO3 CMS backend logs a number of actions performed by backend users: -login, cache clearing, database entries (creation, update, deletion), -settings changes, file actions and errors. A number of filters are -available to help filter this data. - -.. _system-modules-dbcheck: - -DB Check -======== - -.. important:: - - "DB Check and :ref:`system-modules-configuration` are only available - if the system extension "lowlevel" is installed and activated. - - To install this system extension: - - .. code-block:: bash - :caption: ~$ - - composer req typo3/cms-lowlevel - - -The *Database (DB) Check* module provides four functions related -to the database and its content. - -Record Statistics - Shows a count of the various records in the database, - broken down by type for pages and content elements. - -Relations - Checks if certain relations are empty or broken, typically - used to check if files are being referenced. - -Search - A tool to search through the whole database. It offers an - advanced mode which is similar to a visual query builder. - -Check and update global reference index - TYPO3 CMS keeps a record of relations between all records. - This may get out of sync when certain operations are performed - without the strict context of the backend. It is therefore - useful to update this index regularly. - - -.. _system-modules-configuration: - -Configuration -============= - -The *Configuration* module can be used to view the various -configuration arrays used by the CMS. - -.. _system-modules-reports: - -Reports -======= - -The *Reports* module contains information and diagnostic data -about your TYPO3 CMS installation. It is recommended that you -regularly check the "Status Report" as it will inform you -about configuration errors, security issues, etc. diff --git a/Documentation/Troubleshooting/TYPO3.rst b/Documentation/Troubleshooting/TYPO3.rst deleted file mode 100644 index 6e24477a..00000000 --- a/Documentation/Troubleshooting/TYPO3.rst +++ /dev/null @@ -1,200 +0,0 @@ -.. include:: /Includes.rst.txt - -.. index:: resetting password, new password, new user - -.. _troubleshooting_typo3: - -===== -TYPO3 -===== - -Resetting Passwords -=================== - -.. _backend-admin-password: - -Backend Administrator Password ------------------------------- - -When the password for a backend user needs to be reset, log into the backend with an -alternative user and use the :guilabel:`System > Backend Users` tool to reset -the users password. Note that only backend users with administrative rights can -access the `Backend Users` tool to make this change. - -If an alternative administrator account is not available or it doesn't have the -appropriate access, the Install Tool can be accessed directly -using the following address to create a new administrative user: - -.. code-block:: none - - https://example.com/typo3/install.php - -The Install Tool requires the "Installation Password" that would have been set -when TYPO3 was installed. - -.. include:: ../Images/AutomaticScreenshots/InstallTool/InstallToolPassword.rst.txt - -Once logged in to the Admin Tool go to :guilabel:`Maintenance > Create Administrative User` -and select :guilabel:`Create Administrator`. In this dialogue you -can create a new administrative user. - -.. include:: ../Images/AutomaticScreenshots/BackendUsers/CreateAdministrator.rst.txt - -.. include:: ../Images/AutomaticScreenshots/BackendUsers/CreateAdministratorForm.rst.txt - -Use this new administrator account to log into the TYPO3 backend. In the module -:guilabel:`Backend Users` you can change the passwords of existing users, -including administrators. - -.. _install-tool-password: - -Install Tool Password ---------------------- - -Write access to :file:`config/system/settings.php` (in legacy installations -:file:`typo3conf/system/settings.php`) is required to reset the -:guilabel:`Install Tool` password. - -Before editing this file, visit: - -.. code-block:: none - - https://example.com/typo3/install.php - - -Enter the new password into the dialogue box. As the new password is not correct, -the following response will be returned: - -.. code-block:: none - :caption: Example Output - - "Given password does not match the install tool login password. Calculated hash: - $argon2i$v=xyz" - -Copy this hash including the :php:`$argon2i` part and any trailing dots. - -Then edit :file:`config/system/settings.php` and replace the following -array entry with the new hashed password: - -.. code-block:: php - :caption: config/system/settings.php - - 'BE' => [ - 'installToolPassword' => '$argon2i$v=xyz', - ], - -.. note:: - - If the new install tool password does not work, check if it gets overridden - later in the file :file:`config/system/settings.php` or in the - file :file:`config/system/additional.php` - if one exists. If you can still not log into the install tool check if - there are errors in the logs when debugging is enabled. - -.. _debug-mode: - -Debug Settings -============== - -During troubleshooting, in the :guilabel:`"Settings > Configuration Presets"` -section of the Install Tool, under "Debug settings", the "Debug" preset can be -change to show errors in the frontend. - -.. include:: ../Images/AutomaticScreenshots/DebugSettings/ConfigurationPresets.rst.txt - -.. include:: ../Images/AutomaticScreenshots/DebugSettings/DebugSettings.rst.txt - -The following TypoScript setting can also be added the the root template for -the site to show additional debug information. -This is particularly useful when debugging Fluid errors: - -.. code-block:: typoscript - - config.contentObjectExceptionHandler = 0 - -.. seealso:: - - :ref:`t3coreapi:error-handling-configuration-examples-debug` - -.. important:: - - Once debugging has been completed, make sure to remove any debug Typoscript and - set Debug setting back to 'Live'. - -Additionally, the following logs should be checked for additional information: - -* Webserver log files for general problems (e.g. :file:`/var/log/apache2` or :file:`/var/log/httpd` on - Linux based systems) -* TYPO3 Administration log in :guilabel:`SYSTEM > Log` via TYPO3's backend. -* TYPO3 logs written by the :ref:`Logging Framework ` located in :file:`var/log` - or :file:`typo3temp/var/log` depending on the installation setup. - -.. _troubleshooting-caching: - -Caching -======= - -Cached Files in typo3temp/ --------------------------- - -TYPO3 generates temporary "cached" files and PHP scripts in :file:`/cache/` -(either :file:`typo3temp/var/cache` or :file:`var/cache` depending on the installation). -You can remove the entire :file:`/cache` directory at any time; the directory -structure and all the caches will be re-written on the next time a visitor -accesses the site. - -A shortcut to remove these caches can be found in the :guilabel:`Install Tool`, -under :guilabel:`Important Actions`. This might be useful in the event your -cache files become damaged and your system is not running correctly. The -Install Tool won't load any of these caches or any extension, so it -should be safe to use regardless of the corrupt state of the Caches. - -Amongst other caches, under :file:`/cache/code/core/` -you will find: - -.. code-block:: bash - :caption: /cache/code/core/ - - -rw-rw---- 1 www-data www-data 61555 2014-03-26 16:28 ext_localconf_8b0519db6112697cceedb50296df89b0ce04ff70.php - -rw-rw---- 1 www-data www-data 81995 2014-03-26 16:28 ext_tables_c3638687920118a92ab652cbf23a9ca69d4a6469.php - -These files contain all :file:`ext\_tables.php` and -:file:`ext\_localconf.php` files of the installed extensions -concatenated in the order they are loaded. Therefore including one of -these files would be the same as including potentially hundreds of PHP -files and should improve performance. - - - -.. _possible-problems-with-the-cached-files: - -Possible Problems With the Cached Files ---------------------------------------- - -.. _changing-the-absolute-path-to-typo3: - -Changing the absolute path to TYPO3 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If you change the path of the TYPO3 installation, you might receive similar -errors that include "Failed opening ..." or "Unable to access ...". The -problem is that absolute file paths are hard-coded inside the cached -files. - -Fix: Clean the cache using the Install Tool: Go to "Important Actions" -and use the "Clear all caches" function. Then hit the page again. - - -.. _changing-image-processing-settings: - -Changing Image Processing Settings -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -When you change the settings for Image Processing (in normal mode), -you must take into account that old images may still be in the -:file:`typo3temp/` folder and that they prevent new files from being -generated! This is especially important to know, if you are trying to -set up image processing for the very first time. - -The problem is solved by clearing the files in the :file:`typo3temp/` -folder. Also make sure to clear the database table "cache\_pages". diff --git a/Documentation/Troubleshooting/WebServer.rst b/Documentation/Troubleshooting/WebServer.rst index 3f01ba7f..c6591cfb 100644 --- a/Documentation/Troubleshooting/WebServer.rst +++ b/Documentation/Troubleshooting/WebServer.rst @@ -1,61 +1,50 @@ -.. include:: /Includes.rst.txt +:navigation-title: Server & administration +.. include:: /Includes.rst.txt -.. index:: apache +.. _troubleshooting-webserver: -.. _webserver: +======================================================== +Troubleshooting Server and administration related topics +======================================================== -========== -Web Server -========== +You can find detailed information on the following topics in TYPO3 Explained: -Apache -====== +.. card-grid:: + :columns: 1 + :columns-md: 2 + :gap: 4 + :class: pb-4 + :card-height: 100 -Some settings may require adjustment for TYPO3 to operate correctly This will vary depending on the host -operating system and the version of Apache that is installed. + .. card:: :ref:`TYPO3 ` -.. _enable-mod_rewrite: + * `Creating a TYPO3 backend administrator `_ + * :ref:`Reset The Install Tool Password ` + * :ref:`Enabling Debug Mode ` + * :ref:`Caching ` -Enable mod_rewrite ------------------- -If mod_rewrite is not enabled, the URL handling will not work -properly (specifically the mapping of the URLs TYPO3 uses internally -for "speaking URLs") and you might receive 404 (page not found) errors. + .. card:: :ref:`System Modules ` -.. tip:: + * :ref:`Log ` + * :ref:`DB Check ` + * :ref:`Configuration ` + * :ref:`Reports ` - How Apache modules are enabled, depends on your system. Check the - documentation for your operating system distribution. -For example, the modules can be -enabled by editing your :file:`http.conf` file, locating the required modules -and removing the preceding hash symbol: + .. card:: :ref:`PHP ` -.. code-block:: none - :caption: http.conf + * :ref:`PHP Modules ` + * :ref:`PHP Caches, Extension Classes ` + * :ref:`Opcode cache messages ` - #LoadModule expires_module modules/mod_expires.so - #LoadModule rewrite_module modules/mod_rewrite.so + .. card:: :ref:`Web server ` -After making any changes to the Apache configuration, the service must be restarted. + * :ref:`Apache - enable mod_rewrite ` + * :ref:`Apache - adjust ThreadStackSize (Windows) ` -.. _adjust-threadstacksize-on-windows: -Adjust ThreadStackSize on Windows ---------------------------------- + .. card:: :ref:`Database ` -If you are running TYPO3 on Windows, the extension manager might not -render. - -This problem is caused by the value of ThreadStackSize, which on -Windows systems by default is set too low. To fix this, add the -following lines at the end of your :file:`httpd.conf` file: - -.. code-block:: none - :caption: http.conf - - - ThreadStackSize 8388608 - + * :ref:`MySQL - character sets ` diff --git a/Documentation/UserManagement/BackendPrivileges/Index.rst b/Documentation/UserManagement/BackendPrivileges/Index.rst deleted file mode 100644 index a22b808c..00000000 --- a/Documentation/UserManagement/BackendPrivileges/Index.rst +++ /dev/null @@ -1,72 +0,0 @@ -.. include:: /Includes.rst.txt - -.. _privileges: - -================== -Backend Privileges -================== - -The following chapters cover modules that will only be available for backend -users with specific access privileges. - -In addition to configuring access -rights for backend users or groups as described in :ref:`permissions`, there -are "superuser" rights which can be activated for each user. - -If a backend user has been created for editing in the backend, he or she should -usually not get access to admin or system modules. - -You should only give a backend user -as much access as is needed. This makes the job easier by automatically deactivating -modules and GUI elements the user does not have access to. It also makes it -impossible for a user to damage the system by accidentally doing things he or she -should not have been able to do in the first place. - -Before TYPO3 version 9 there was only admin and non admin. Now we have the -additional access privilege "system maintainer". - - - -.. _admin-user: - -Admin -===== - -* admin user privilege can be added by clicking the "admin" checkbox when - creating or changing a backend user -* admins have access to the **SYSTEM** module (including Access, Backend User, - Log etc. modules) - -.. image:: ../../Images/ManualScreenshots/UserManagement/system.png - :class: with-shadow - -.. image:: ../../Images/ManualScreenshots/UserManagement/system_open.png - :class: with-shadow - - - -.. _user-management-system-maintainers: -.. _system-maintainer: - -System Maintainers -================== - -The first backend admin created during installation will automatically be a system -maintainer as well. To give other users system privileges, you -can add them in the :guilabel:`ADMIN TOOLS > Settings > Manage System Maintainers` -configuration. -Alternatively the website can be set into "Development" mode in the Install -Tool. This will give all admin users system maintainer access. - -.. image:: ../../Images/ManualScreenshots/UserManagement/admin-tools.png - :class: with-shadow - -.. image:: ../../Images/ManualScreenshots/UserManagement/admin-tools-open.png - :class: with-shadow - -System Maintainers are the only users who are able to see and access the -:guilabel:`Admin Tools` and the :guilabel:`Extension Manager`. These users are -persisted within the :file:`config/system/settings.php` as -:php:`$GLOBALS['TYPO3_CONF_VARS']['SYS']['systemMaintainers']`. - - diff --git a/Documentation/UserManagement/BackendUsers/CreateDefaultEditors.rst b/Documentation/UserManagement/BackendUsers/CreateDefaultEditors.rst deleted file mode 100644 index e84b6fb0..00000000 --- a/Documentation/UserManagement/BackendUsers/CreateDefaultEditors.rst +++ /dev/null @@ -1,105 +0,0 @@ -:orphan: - -.. include:: /Includes.rst.txt - -.. _user-management-create-default-editors: - -==================== -Create Default Users -==================== - -Create simple_editor -==================== - -Creating a new user and group is handled extensively in -:ref:`creating-a-new-user-for-the-introduction-site`. - -Here, you will create 2 new users, using the already -existing groups (created by the "Introduction Package"). - - -.. rst-class:: bignums - -1. Enter the "Backend users" module - -2. Click on the `+`: "Create new record" - - .. figure:: ../../Images/ManualScreenshots/UserManagement/UserManagementCreateNewUser.png - :alt: Create a new editor - :class: with-shadow - - Create a new backend user - -3. Fill out some fields. - - * **Username:** simple_editor - * **Password:** *choose some password* - * **Group:** Select "Simple editors" in the "Available Items" - * **Name:** Simple Editor - - .. figure:: ../../Images/ManualScreenshots/UserManagement/UserManagementCreateNewUserSimpleEditor.png - :alt: Fill out fields for the new backend user - :class: with-shadow - -4. Press save (top) - -5. Activate the backend user - - .. figure:: ../../Images/ManualScreenshots/UserManagement/BackendEditorUnhide.png - :alt: Activate editor - :class: with-shadow - -You have created a user with the already existing group -"Simple editors". - -Create "advanced_editor" -======================== - -Now, create another user "advanced_editor". Use the group "Advanced Editors". - -Change DB Mount for Group "Simple Editors" -========================================== - -The group "Simple Editors" should have the page "Content Examples" set as -"DB Mounts" under "Mounts and Workspaces". - -.. rst-class:: bignums - -1. Select "Backend user groups" in the top - -2. Click on the group "Simple editors" (or the edit pencil) - -3. Select the tab "Mounts and Workspaces" - -4. Check - - If you see the page "Congratulations" in DB Mounts, you should continue, - if you see "Content Examples", you are done and can abort by selecting - "Close" in the top. - -5. Click on "Congratulation" and the garbage pail to remove this. - -6. Click on the file icon "Browse for records" - -7. Select the page "Content Examples" - -8. Click Save - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendGroupDbMount.png - :class: with-shadow - :alt: Change DB Mount - - Change DB Mount - - -What did we just do? - -We changed the DB mount from "Congratulations" -(which was the start page) to "Content Examples". The editor should -only see and edit the pages starting with "Content Examples". You will -see the result in the next step. - -Next -==== - -Continue with :ref:`simulate-user` \ No newline at end of file diff --git a/Documentation/UserManagement/BackendUsers/Index.rst b/Documentation/UserManagement/BackendUsers/Index.rst deleted file mode 100644 index 21ad3cf4..00000000 --- a/Documentation/UserManagement/BackendUsers/Index.rst +++ /dev/null @@ -1,106 +0,0 @@ -.. include:: /Includes.rst.txt - -.. _user-management-backend-users: - -============= -Backend Users -============= - -You can manage backend users using the **SYSTEM > Backend users** -module. - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendUsersModule.png - :alt: The Backend Users module - :class: with-shadow - - -This module makes it possible to search and filter users. They -can also be edited, deleted and disabled. - -.. tip:: - - See section :ref:`privileges` for more information on - special backend user roles "admin" and "system maintainers". - -Default Editors in the Introduction Package -=========================================== - -The Introduction Package will create two default editors and -groups for you: "simple_editor" and "advanced_editor". - -.. hint:: - - The following steps assume that the editors "simple_editor" - and "advanced_editor" exist. In some versions of the - "Introduction Package", `they will not get created - `__. - - If these users do not exist in your installation, please - follow the steps in :ref:`user-management-create-default-editors` - before you continue. - -.. _simulate-user: - -Simulate User -============= - -.. _user-management-simple-editor: - -"simple\_editor" ----------------- - -The simplest way to check out another user (when one is an -administrator) is to use the "simulate user" feature: - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendUsersSimulate.png - :alt: The last action icon lets us simulate another user - :class: with-shadow - - -And here is what "simple\_editor" sees when accessing the -TYPO3 CMS backend: - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendSimpleEditorUser.png - :alt: The backend view for the "simple\_editor" - :class: with-shadow - - -As you can see, this user only has access to the "Page" module. -Furthermore its view of the page tree is also limited to the -branch starting with the "Content examples" page. - -To switch back to the admin account, click on the user's name -in the top bar and click the "Exit" button (note that this button -normally reads "Logout"). - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendUsersSimulateExit.png - :alt: Exiting the backend user simulation - :class: with-shadow - - -.. _user-management-advanced-editor: - -"advanced\_editor" ------------------- - -Now try doing the same with the "advanced\_editor". You should -see the following after switching user: - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAdvancedEditorUser.png - :alt: The backend view for the "advanced\_editor" - :class: with-shadow - -The "advanced\_editor" is allowed to use more modules than -"simple\_editor" but doesn't have any access to the page tree. -This is probably a bug of the Introduction Package, but it makes -for a good exercise for changing user rights in the next chapters. - -.. note:: - - User records can also be accessed using the **WEB > List** module - and clicking on the root node (the one with the TYPO3 CMS logo). - - .. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendUsersList.png - :alt: Viewing backend users in the List module - :class: with-shadow - diff --git a/Documentation/UserManagement/GroupPermissions/Index.rst b/Documentation/UserManagement/GroupPermissions/Index.rst deleted file mode 100644 index 84fdb992..00000000 --- a/Documentation/UserManagement/GroupPermissions/Index.rst +++ /dev/null @@ -1,232 +0,0 @@ -.. include:: /Includes.rst.txt - - -.. _permissions: -.. _setting-up-user-permissions: - -=========================== -Setting up User Permissions -=========================== - -We will look into managing user permissions by editing the -"Advanced editors" user group. - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditSettings.png - :alt: Choosing the settings menu - -.. _general: - -General -======= - -On the "General" tab you can edit the group's title and write a -short description. As mentioned before, permissions from sub-groups -will be inherited by the current group. - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditGeneralTab.png - :alt: Content of the "General" tab when editing a backend user group - - -.. note:: - - Setting permissions is not just about access rights. - - It can also help to declutter the backend, ensuring that - backend users only see and have access to the modules they require. - -.. _access-lists: -.. _include-access-lists: - -Access Lists -============ - -The "Access Lists" tab is where most permissions are defined. -All fields are detailed below. - - -.. _modules: - -Modules -------- - -The first field is used to define which modules members of the group -should have access to. This will directly influence what appears -in the module menu for backend users. - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditModules.png - :alt: Choosing modules for the backend user group - - -.. _tables: -.. _tables-modify: - -Tables ------- - -The second field allows you to select the tables that the members of the -groups are allowed to see ("Tables (listing)"). And the next field is -the same but for the tables that can be modified ("Tables (modify)"). - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditTables.png - :alt: - - -.. _page-types: - -Page Types ----------- - -These fields can restrict which page types are available to members -of the group. Explanations about the various page types are -found in the :ref:`Editors Guide: `. - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditPageTypes.png - :alt: - - -.. _allowed-excludefields: - -Allowed Excludefields ---------------------- - -When defining table fields in TYPO3, it is possible to mark them -as "excluded". Such fields will never be visible to backend users -(except administrators, of course) unless they are explicitly given -access to them. This field is about granting such access. It displays -a list of all tables and their excluded fields. - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditExcludeFields.png - :alt: The list of excluded fields in its default state (all tables collapsed) - - -Click on a table name to expand the list of its fields and make -a selection of fields by checking some boxes. - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditExcludeFieldsExpanded.png - :alt: The same list with one table expanded - - -.. _explicitly-allow-deny-field-values: - -Explicitly Allow or Deny Field Values -------------------------------------- - -For some fields, it is possible to set fine-grained permissions -on the actual values allowed for those fields. This is in particular -the case for the "Page content: Type" field, which defines the type -of content element that can then be defined by the members of the -group. - -As with the list of excluded fields, this fields first appears -with groups collapsed. You need to expand one group to start -making changes. - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditAllowDeny.png - :alt: Setting permissions for values of the content type field - -.. note:: - - You can change the behavior in the install tool by setting - :ref:`[BE][explicitADmode]` - to :php:`explicitDeny`. - -Limit to Languages ------------------- - -In a multilingual web site, it is also possible to restrict users -to a specific language or set of languages. This can be achieved using the last field -of the "Access Lists" tab. - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditLanguages.png - :alt: Setting permissions for languages - - -.. _mounts: - -Mounts and Workspaces -===================== - -The next tab contains very important fields which define -which parts of the page tree and the file system the members of -the group may exert their rights over. - -We will cover only mounts here. Detailed information about -workspaces can be found in the :doc:`related extension manual `. - - -.. _db-mounts: - -DB Mounts ---------- - -DB mounts (database mounts) are used to restrict a user's access to -only some parts of the page tree. Each mount corresponds to a page in -the tree. The user will have access only to those pages and their sub- -pages. - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditDBMounts.png - :alt: Choosing DB mounts for the group - -See also :ref:`Pages permissions `. - -In order to inherit these settings in assigned users, activate the checkbox -"Mount from groups" for the "DB Mounts" in the `be_users` record of this -user. This record can be found in the "List" module on the root page and in the -"Backend User" module. - -.. _file-mounts: - -File Mounts ------------ - -File mounts are similar to DB mounts but instead are used for manage access to files. -The main difference is that file mount records must be defined by the administrator first. -These are located in the root node: - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendFileMountList.png - :alt: List of all available file mounts - - -They can then be selected when editing a backend user group: - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditFileMounts.png - :alt: Selecting allowed file mounts - -.. note:: - - The definition of file mount records also depends on so-call - file storages. This topic is covered in more detail in the - :ref:`File Abstraction Layer chapter in the TYPO3 Explained Manual `. - -In order to inherit these settings in assigned users, activate the checkbox -"Mount from groups" for the "File Mounts" in the `be_users` record of this -user. This record can be found in the "List" module on the root page and in the -"Backend User" module. - - -.. _file-permissions: - -Fileoperation Permissions -------------------------- - -Giving access to File mounts is not the whole story. Specific operations -on files and directories must be allowed. This is what the next field -does. Choose either "Directory" or "Files" and start checking boxes. - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendGroupEditFilePermissions.png - :alt: Giving specific file operation permissions - - -.. _category-permissions: - -Category mounts ---------------- - -It is possible to limit the categories that a user can attach to a database -record by choosing the allowed categories in the field -:guilabel:`Category mount`. If no category is selected in the category mount, -all categories are available. - -The category mounts only affect which categories can be attached to records. In -the list module all categories can be seen if the user has access to the folder -where the `sys_category` records are stored. diff --git a/Documentation/UserManagement/Groups/Index.rst b/Documentation/UserManagement/Groups/Index.rst deleted file mode 100644 index bea848d4..00000000 --- a/Documentation/UserManagement/Groups/Index.rst +++ /dev/null @@ -1,35 +0,0 @@ -.. include:: /Includes.rst.txt - - -.. _groups: - -====== -Groups -====== - -While it is possible to change permissions on a per user basis, -it is strongly recommended you use Groups instead. Just as for users, -there are "Backend user groups" and "Frontend user groups". - -This chapter provides a quick overview of backend user groups. -In the next chapter we will look at changing user permissions using -groups. - -Backend groups can also be viewed using **SYSTEM > Backend users** -module: - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendUserGroups.png - :alt: Viewing groups in the Backend Users module - - -We can see two groups that correspond to our users -("simple" and "advanced"). - -To find out what group each user is a member of, select the -"information" action icon. A pop-up will open with detailed -information about the group. Scroll down until you find the -"References to this item:" section. This shows the list of backend -users who are part of this group. - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendBackendUserGroupDetail.png - :alt: Checking out which users are part of the group diff --git a/Documentation/UserManagement/Index.rst b/Documentation/UserManagement/Index.rst deleted file mode 100644 index 6d71bd02..00000000 --- a/Documentation/UserManagement/Index.rst +++ /dev/null @@ -1,34 +0,0 @@ -.. include:: /Includes.rst.txt - - -.. _user-management: - -======================= -Backend User Management -======================= - -.. important:: - - This chapter (and the following) cover modules that will only be available for backend users - with :ref:`"admin" ` access privileges. - -We saw earlier that TYPO3 CMS enforces a strict separation of -so-called "frontend" and "backend". The same is true for users: -there are "frontend users", who are web site visitors, and -"backend users", who are editors and administrators. - -Working with frontend users is discussed in the :ref:`Editors Guide `. -We will now look at backend users and how to set up groups and -permissions. - -.. toctree:: - :maxdepth: 5 - :titlesonly: - :glob: - - BackendPrivileges/Index - BackendUsers/Index - Groups/Index - GroupPermissions/Index - PagePermissions/Index - UserSetup/Index diff --git a/Documentation/UserManagement/PagePermissions/Index.rst b/Documentation/UserManagement/PagePermissions/Index.rst deleted file mode 100644 index 3b7ace44..00000000 --- a/Documentation/UserManagement/PagePermissions/Index.rst +++ /dev/null @@ -1,53 +0,0 @@ -.. include:: /Includes.rst.txt - - -.. _page-permissions: - -================ -Page Permissions -================ - -:ref:`DB mounts ` are not the whole story about access to pages. -Users and groups also need to have rights to perform operations on the -pages like viewing, editing or deleting. - -This is managed using the **SYSTEM > Access** module: - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessModule.png - :alt: The Access module with ownerships and permissions - - -Every page has an owner, who is a user, and also a group -membership. Rights can be assigned to the owner, to the group -or to everyone. This will be familiar to Unix users. - -To change a permission, simply click on the related icon and it -will switch state. To change the owner or the group of a given -page, click on the owner's or group's name and a small form appears. - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessModuleChangeOwner.png - :alt: Changing a page's owner - - -It is also possible to change owner, group and permissions -recursively, even for the whole page tree. Let's place ourselves -on the home page by clicking on the "Congratulations" page in the -page tree. Now click again on the "Congratulations" page in the -*Access* module. You should see the following: - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessModuleChangeRecursively.png - :alt: Preparing for recursively changing the group on the whole page tree - - -By choosing "All users" as group and then "Set recursively 3 levels" -in the "Depth" dropdown, we will assign **all** the pages in the -page tree to the "All users" group. - -Actually this makes a lot of sense, since the "All users" group -is a sub-group of both "Simple editors" and "Advanced editors". -This way both groups will have the same permissions on the -page tree. However since they have different DB mounts, they -will not have access to the same set of pages. - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessModuleGroupChanged.png - :alt: The group has changed for all pages diff --git a/Documentation/UserManagement/UserSetup/Index.rst b/Documentation/UserManagement/UserSetup/Index.rst deleted file mode 100644 index 9bf6e4a8..00000000 --- a/Documentation/UserManagement/UserSetup/Index.rst +++ /dev/null @@ -1,101 +0,0 @@ -.. include:: /Includes.rst.txt - -.. _setup-user: -.. _creating-a-new-user-for-the-introduction-site: - -================= -Setting up a User -================= - -To explore the last details of setting up a backend user -- and as an exercise - this chapter will guide you -through the process of creating a new user. To make it more -interesting, we will also create a new user group. - - -.. _step-create-a-new-group: - -Step 1: Create a New Group -========================== - -Let's create a new user group using the *Access* module. - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessCreateNewGroup.png - :alt: Creating a new backend group from the Access module - - -Start by entering the name ("Resource editors"), optionally -a description and choose "All users" as sub-group. - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessNewGroupGeneralTab.png - :alt: Entering the general information about the new group - - -Let's keep things simple for the further permissions. Try to do -the following: - -- for **Modules**, just choose "Web > Page" and "Web > View" -- for **Tables (listing)** and **Tables (modify)**, choose "Page" - and "Page content" -- for **Page types**, select "Standard" - -and save. - -Move to the "Mounts and workspaces" tab and select the "Resources" -page as DB mount. To achieve that easily start typing "Res" in -the wizard at the right-hand side of the field. It will display -suggestions, from which you can select the "Resources" page. - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessNewGroupDBMount.png - :alt: Defining DB mounts using the suggest wizard - - -Let's ignore all the rest. Use the "Save and close" action -to get back to the group list. - - -.. _step-create-the-user: - -Step 2: Create the User -======================= - -Similarly to what we have done before, let's create a new -user using the *Access* module. - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessCreateNewUser.png - :alt: Creating a new backend user from the Access module - - -Enter the username, password, group membership: - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessNewUserGeneralTab.png - :alt: Setting the base information for the new user - - -.. note:: - - If we were creating a new administrator, we would just need - to check the "Admin (!)" box. Admin users don't need to belong - to any group, although this can still be useful to share - special settings among administrators. - -Now switch to the "Mounts and workspaces" tab -to ensure that the "Mount from Groups" settings are set: - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessNewUserMountFromGroups.png - :alt: Checking the "Mount from groups" setting - - -This makes it so that the DB and File mounts are taken from -the group(s) the user belongs to and are not defined at user-level. - -Save and close the record. We will check the result of our work -by using the simulate user feature we saw earlier. - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendAccessSimulateResourceEditor.png - :alt: Let's simulate our new user! - -You should see the following: - -.. figure:: ../../Images/ManualScreenshots/UserManagement/BackendResourceEditorUser.png - :alt: The backend as seen by Resource McEditor diff --git a/Documentation/guides.xml b/Documentation/guides.xml new file mode 100644 index 00000000..e6ddc2cb --- /dev/null +++ b/Documentation/guides.xml @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..21fe33a2 --- /dev/null +++ b/Makefile @@ -0,0 +1,45 @@ +.PHONY: help +help: ## Displays this list of targets with descriptions + @echo "The following commands are available:\n" + @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[32m%-30s\033[0m %s\n", $$1, $$2}' + +.PHONY: docs +docs: ## Generate projects documentation (from "Documentation" directory) + mkdir -p Documentation-GENERATED-temp + + docker run --rm --pull always -v "$(shell pwd)":/project -t ghcr.io/typo3-documentation/render-guides:latest --config=Documentation + +.PHONY: test-docs +test-docs: ## Test the documentation rendering + mkdir -p Documentation-GENERATED-temp + + docker run --rm --pull always -v "$(shell pwd)":/project -t ghcr.io/typo3-documentation/render-guides:latest --config=Documentation --no-progress --fail-on-log + +.PHONY: test-lint +test-lint: ## Regenerate code snippets + Build/Scripts/runTests.sh -s lint + +.PHONY: test-cgl +test-cgl: ## Regenerate code snippets + Build/Scripts/runTests.sh -s cgl + +.PHONY: test-yaml +test-yaml: ## Regenerate code snippets + Build/Scripts/runTests.sh -s yamlLint + +.PHONY: composerUpdate +composerUpdate: ## Update all dependencies (the composer.lock is not committed) + Build/Scripts/runTests.sh -s composerUpdate + +.PHONY: install +install: composerUpdate## Update all dependencies (the composer.lock is not committed) + +.PHONY: test +test: test-docs test-lint test-cgl test-yaml## Test the documentation rendering + +.PHONY: fix-cgl +fix-cgl: ## Fix cgl + Build/Scripts/runTests.sh -s cgl + +.PHONY: Fix all +fix: fix-cgl## Test the documentation rendering diff --git a/composer.json b/composer.json index b7ecdb8f..984a1bc2 100644 --- a/composer.json +++ b/composer.json @@ -4,6 +4,61 @@ "description": "The official tutorial to discover the main features and concepts of TYPO3 CMS. It is based on the Introduction Package.", "license": "OPL-1.0", "require": { - "typo3/cms-core": "^11.0" + "typo3/cms-core": "^12.4" + }, + "require-dev": { + "ergebnis/composer-normalize": "~2.44.0", + "friendsofphp/php-cs-fixer": "^3.46", + "typo3/cms-adminpanel": "^12.4", + "typo3/cms-backend": "^12.4", + "typo3/cms-belog": "^12.4", + "typo3/cms-beuser": "^12.4", + "typo3/cms-dashboard": "^12.4", + "typo3/cms-extbase": "^12.4", + "typo3/cms-extensionmanager": "^12.4", + "typo3/cms-felogin": "^12.4", + "typo3/cms-filelist": "^12.4", + "typo3/cms-filemetadata": "^12.4", + "typo3/cms-fluid": "^12.4", + "typo3/cms-fluid-styled-content": "^12.4", + "typo3/cms-form": "^12.4", + "typo3/cms-frontend": "^12.4", + "typo3/cms-impexp": "^12.4", + "typo3/cms-indexed-search": "^12.4", + "typo3/cms-info": "^12.4", + "typo3/cms-install": "^12.4", + "typo3/cms-linkvalidator": "^12.4", + "typo3/cms-lowlevel": "^12.4", + "typo3/cms-opendocs": "^12.4", + "typo3/cms-recycler": "^12.4", + "typo3/cms-redirects": "^12.4", + "typo3/cms-reports": "^12.4", + "typo3/cms-rte-ckeditor": "^12.4", + "typo3/cms-scheduler": "^12.4", + "typo3/cms-seo": "^12.4", + "typo3/cms-setup": "^12.4", + "typo3/cms-styleguide": "^12.4", + "typo3/cms-sys-note": "^12.4", + "typo3/cms-tstemplate": "^12.4", + "typo3/cms-viewpage": "^12.4", + "typo3/cms-workspaces": "^12.4" + }, + "minimum-stability": "dev", + "prefer-stable": true, + "config": { + "allow-plugins": { + "ergebnis/composer-normalize": true, + "typo3/class-alias-loader": true, + "typo3/cms-composer-installers": true + }, + "bin-dir": ".Build/bin", + "sort-packages": true, + "vendor-dir": ".Build/vendor" + }, + "extra": { + "typo3/cms": { + "extension-key": "t3docs-tutorial-gettingstarted", + "web-dir": ".Build/web" + } } }