Merge branch 'phpbb:master' into patch-4
70
.github/workflows/check_merge_to_master.yml
vendored
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
name: Check merge to master
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request_target:
|
||||||
|
types: [ opened, synchronize, reopened ]
|
||||||
|
branches:
|
||||||
|
- 3.3.x
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
merge-check:
|
||||||
|
if: github.event_name == 'pull_request_target' && github.event.pull_request.base.ref == '3.3.x'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout the repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0 # Ensure full history is fetched
|
||||||
|
|
||||||
|
- name: Set up Git user
|
||||||
|
run: |
|
||||||
|
git config --global user.name "github-actions"
|
||||||
|
git config --global user.email "github-actions@github.com"
|
||||||
|
|
||||||
|
- name: Fetch all branches
|
||||||
|
run: git fetch origin
|
||||||
|
|
||||||
|
- name: Simulate merging PR into 3.3.x
|
||||||
|
id: simulate_merge
|
||||||
|
run: |
|
||||||
|
git checkout 3.3.x
|
||||||
|
git fetch origin pull/${{ github.event.pull_request.number }}/head
|
||||||
|
git merge --no-ff FETCH_HEAD || exit 1
|
||||||
|
|
||||||
|
- name: Attempt to merge updated 3.3.x into master
|
||||||
|
id: merge_master
|
||||||
|
run: |
|
||||||
|
git checkout master
|
||||||
|
if git merge --no-ff 3.3.x --no-commit; then
|
||||||
|
echo "mergeable=true" >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
echo "mergeable=false" >> $GITHUB_OUTPUT
|
||||||
|
git merge --abort
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Find Comment
|
||||||
|
uses: peter-evans/find-comment@v3
|
||||||
|
id: fc
|
||||||
|
with:
|
||||||
|
issue-number: ${{ github.event.pull_request.number }}
|
||||||
|
comment-author: 'github-actions[bot]'
|
||||||
|
body-includes: The attempt to merge branch `3.3.x` into `master` has completed
|
||||||
|
|
||||||
|
- name: Post comment on PR
|
||||||
|
if: always() # Ensure this step always runs, regardless of merge result
|
||||||
|
uses: peter-evans/create-or-update-comment@v4
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
issue-number: ${{ github.event.pull_request.number }}
|
||||||
|
comment-id: ${{ steps.fc.outputs.comment-id }}
|
||||||
|
edit-mode: replace
|
||||||
|
body: |
|
||||||
|
The attempt to merge branch `3.3.x` into `master` has completed after considering the changes in this PR.
|
||||||
|
|
||||||
|
- Merge result: ${{ steps.merge_master.outputs.mergeable == 'true' && 'Success ✅' || 'Conflict ❌' }}
|
||||||
|
|
||||||
|
${{ steps.merge_master.outputs.mergeable == 'true' && 'This PR is ready to be merged.' || 'A separate PR will be needed to merge `3.3.x` into `master`.' }}
|
||||||
|
|
||||||
|
- name: Mark job as succeeded
|
||||||
|
if: always()
|
||||||
|
run: echo "Merge check completed. Ignoring the result to avoid failed status."
|
60
.github/workflows/merge_3.3.x_to_master.yml
vendored
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
name: Merge 3.3.x into master
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- 3.3.x
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
merge-branch:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/create-github-app-token@v1
|
||||||
|
id: app-token
|
||||||
|
with:
|
||||||
|
app-id: ${{ vars.MERGE_MASTER_APP_ID }}
|
||||||
|
private-key: ${{ secrets.MERGE_MASTER_SECRET }}
|
||||||
|
|
||||||
|
- name: Checkout the repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0 # Fetch full history for proper merging
|
||||||
|
ref: 3.3.x # Checkout the 3.3.x branch
|
||||||
|
token: ${{ steps.app-token.outputs.token }}
|
||||||
|
|
||||||
|
- name: Fetch the latest commit information
|
||||||
|
id: get-commit-info
|
||||||
|
run: |
|
||||||
|
# Get the latest commit SHA and its author details
|
||||||
|
COMMIT_SHA=$(git rev-parse HEAD)
|
||||||
|
COMMIT_AUTHOR_NAME=$(git log -1 --pretty=format:'%an' $COMMIT_SHA)
|
||||||
|
COMMIT_AUTHOR_EMAIL=$(git log -1 --pretty=format:'%ae' $COMMIT_SHA)
|
||||||
|
|
||||||
|
# Save them as output for later steps
|
||||||
|
echo "commit_sha=$COMMIT_SHA" >> $GITHUB_ENV
|
||||||
|
echo "commit_author_name=$COMMIT_AUTHOR_NAME" >> $GITHUB_ENV
|
||||||
|
echo "commit_author_email=$COMMIT_AUTHOR_EMAIL" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Set up Git with the pull request author's info
|
||||||
|
run: |
|
||||||
|
git config --global user.name "${{ env.commit_author_name }}"
|
||||||
|
git config --global user.email "${{ env.commit_author_email }}"
|
||||||
|
|
||||||
|
- name: Fetch all branches
|
||||||
|
run: git fetch --all
|
||||||
|
|
||||||
|
- name: Merge 3.3.x into master
|
||||||
|
run: |
|
||||||
|
git checkout master
|
||||||
|
if git merge --no-ff 3.3.x; then
|
||||||
|
echo "merge_failed=false" >> $GITHUB_ENV
|
||||||
|
else
|
||||||
|
echo "merge_failed=true" >> $GITHUB_ENV
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Push changes to master if merge was successful
|
||||||
|
if: env.merge_failed == 'false'
|
||||||
|
run: git push origin master
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
18
.github/workflows/tests.yml
vendored
|
@ -137,6 +137,10 @@ jobs:
|
||||||
db: "mysql:5.7"
|
db: "mysql:5.7"
|
||||||
- php: '8.3'
|
- php: '8.3'
|
||||||
db: "mariadb:10.2"
|
db: "mariadb:10.2"
|
||||||
|
- php: '8.4'
|
||||||
|
db: "mysql:8.0"
|
||||||
|
- php: '8.4'
|
||||||
|
db: "mariadb:10.3"
|
||||||
|
|
||||||
name: PHP ${{ matrix.php }} - ${{ matrix.db_alias != '' && matrix.db_alias || matrix.db }}
|
name: PHP ${{ matrix.php }} - ${{ matrix.db_alias != '' && matrix.db_alias || matrix.db }}
|
||||||
|
|
||||||
|
@ -272,6 +276,8 @@ jobs:
|
||||||
db: "postgres:9.5"
|
db: "postgres:9.5"
|
||||||
- php: '8.3'
|
- php: '8.3'
|
||||||
db: "postgres:9.5"
|
db: "postgres:9.5"
|
||||||
|
- php: '8.4'
|
||||||
|
db: "postgres:9.5"
|
||||||
|
|
||||||
name: PHP ${{ matrix.php }} - ${{ matrix.db }}
|
name: PHP ${{ matrix.php }} - ${{ matrix.db }}
|
||||||
|
|
||||||
|
@ -364,7 +370,7 @@ jobs:
|
||||||
|
|
||||||
# Other database types, namely sqlite3 and mssql
|
# Other database types, namely sqlite3 and mssql
|
||||||
other-tests:
|
other-tests:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-20.04
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
|
@ -374,17 +380,17 @@ jobs:
|
||||||
db: "mcr.microsoft.com/mssql/server:2017-latest"
|
db: "mcr.microsoft.com/mssql/server:2017-latest"
|
||||||
db_alias: 'MSSQL 2017'
|
db_alias: 'MSSQL 2017'
|
||||||
- php: '8.1'
|
- php: '8.1'
|
||||||
db: "mcr.microsoft.com/mssql/server:2019-latest"
|
db: "mcr.microsoft.com/mssql/server:2019-CU27-ubuntu-20.04"
|
||||||
db_alias: 'MSSQL 2019'
|
db_alias: 'MSSQL 2019'
|
||||||
- php: '8.1'
|
- php: '8.1'
|
||||||
db: "mcr.microsoft.com/mssql/server:2022-latest"
|
db: "mcr.microsoft.com/mssql/server:2022-CU13-ubuntu-22.04"
|
||||||
db_alias: 'MSSQL 2022'
|
db_alias: 'MSSQL 2022'
|
||||||
|
|
||||||
name: PHP ${{ matrix.php }} - ${{ matrix.db_alias != '' && matrix.db_alias || matrix.db }}
|
name: PHP ${{ matrix.php }} - ${{ matrix.db_alias != '' && matrix.db_alias || matrix.db }}
|
||||||
|
|
||||||
services:
|
services:
|
||||||
mssql:
|
mssql:
|
||||||
image: ${{ matrix.db != 'mcr.microsoft.com/mssql/server:2017-latest' && matrix.db != 'mcr.microsoft.com/mssql/server:2019-latest' && matrix.db != 'mcr.microsoft.com/mssql/server:2022-latest' && 'mcr.microsoft.com/mssql/server:2017-latest' || matrix.db }}
|
image: ${{ matrix.db != 'mcr.microsoft.com/mssql/server:2017-latest' && matrix.db != 'mcr.microsoft.com/mssql/server:2019-CU27-ubuntu-20.04' && matrix.db != 'mcr.microsoft.com/mssql/server:2022-CU13-ubuntu-22.04' && 'mcr.microsoft.com/mssql/server:2017-latest' || matrix.db }}
|
||||||
env:
|
env:
|
||||||
SA_PASSWORD: "Pssw0rd_12"
|
SA_PASSWORD: "Pssw0rd_12"
|
||||||
ACCEPT_EULA: "y"
|
ACCEPT_EULA: "y"
|
||||||
|
@ -416,7 +422,7 @@ jobs:
|
||||||
env:
|
env:
|
||||||
MATRIX_DB: ${{ matrix.db }}
|
MATRIX_DB: ${{ matrix.db }}
|
||||||
run: |
|
run: |
|
||||||
if [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2017-latest' ] || [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2019-latest' ] || [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2022-latest' ]
|
if [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2017-latest' ] || [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2019-CU27-ubuntu-20.04' ] || [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2022-CU13-ubuntu-22.04' ]
|
||||||
then
|
then
|
||||||
db='mssql'
|
db='mssql'
|
||||||
else
|
else
|
||||||
|
@ -480,7 +486,7 @@ jobs:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
type: ['unit', 'functional']
|
type: ['unit', 'functional']
|
||||||
php: ['8.1', '8.2']
|
php: ['8.1', '8.2', '8.3']
|
||||||
db: ['postgres']
|
db: ['postgres']
|
||||||
|
|
||||||
name: Windows - ${{ matrix.type }} - PHP ${{ matrix.php }} - ${{ matrix.db }}
|
name: Windows - ${{ matrix.type }} - PHP ${{ matrix.php }} - ${{ matrix.db }}
|
||||||
|
|
|
@ -42,8 +42,8 @@ We have unit and functional tests in order to prevent regressions. You can view
|
||||||
|
|
||||||
Branch | Description | GitHub Actions |
|
Branch | Description | GitHub Actions |
|
||||||
------- | ----------- | -------------- |
|
------- | ----------- | -------------- |
|
||||||
**master** | Latest development version |  |
|
**master** | Latest development version |  |
|
||||||
**3.3.x** | Development of version 3.3.x |  |
|
**3.3.x** | Development of version 3.3.x |  |
|
||||||
|
|
||||||
## 📜 License
|
## 📜 License
|
||||||
|
|
||||||
|
|
6
Vagrantfile
vendored
|
@ -11,15 +11,15 @@ aliasesPath = "vagrant/aliases"
|
||||||
require File.expand_path(confDir + '/scripts/homestead.rb')
|
require File.expand_path(confDir + '/scripts/homestead.rb')
|
||||||
|
|
||||||
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
||||||
if File.exists? aliasesPath then
|
if File.exist? aliasesPath then
|
||||||
config.vm.provision "file", source: aliasesPath, destination: "~/.bash_aliases"
|
config.vm.provision "file", source: aliasesPath, destination: "~/.bash_aliases"
|
||||||
end
|
end
|
||||||
|
|
||||||
if File.exists? homesteadYamlPath then
|
if File.exist? homesteadYamlPath then
|
||||||
Homestead.configure(config, YAML::load(File.read(homesteadYamlPath)))
|
Homestead.configure(config, YAML::load(File.read(homesteadYamlPath)))
|
||||||
end
|
end
|
||||||
|
|
||||||
if File.exists? afterScriptPath then
|
if File.exist? afterScriptPath then
|
||||||
config.vm.provision "shell", path: afterScriptPath
|
config.vm.provision "shell", path: afterScriptPath
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
<project name="phpBB" description="The phpBB forum software" default="all" basedir="../">
|
<project name="phpBB" description="The phpBB forum software" default="all" basedir="../">
|
||||||
<!-- a few settings for the build -->
|
<!-- a few settings for the build -->
|
||||||
<property name="newversion" value="4.0.0-a1-dev" />
|
<property name="newversion" value="4.0.0-a1-dev" />
|
||||||
<property name="prevversion" value="3.3.12" />
|
<property name="prevversion" value="3.3.14" />
|
||||||
<property name="olderversions" value="3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.7-pl1, 3.1.8, 3.1.9, 3.1.10, 3.1.11, 3.1.12, 3.2.0, 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6, 3.2.7, 3.2.8, 3.2.9, 3.2.10, 3.2.11, 3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.3.5, 3.3.6, 3.3.7, 3.3.8, 3.3.9, 3.3.10, 3.3.11" />
|
<property name="olderversions" value="3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.7-pl1, 3.1.8, 3.1.9, 3.1.10, 3.1.11, 3.1.12, 3.2.0, 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6, 3.2.7, 3.2.8, 3.2.9, 3.2.10, 3.2.11, 3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.3.5, 3.3.6, 3.3.7, 3.3.8, 3.3.9, 3.3.10, 3.3.11, 3.3.12, 3.3.13" />
|
||||||
<!-- no configuration should be needed beyond this point -->
|
<!-- no configuration should be needed beyond this point -->
|
||||||
|
|
||||||
<property name="oldversions" value="${olderversions}, ${prevversion}" />
|
<property name="oldversions" value="${olderversions}, ${prevversion}" />
|
||||||
|
@ -181,6 +181,7 @@
|
||||||
|
|
||||||
<!-- create an empty config.php file (not for diffs) -->
|
<!-- create an empty config.php file (not for diffs) -->
|
||||||
<touch file="build/new_version/phpBB3/config.php" />
|
<touch file="build/new_version/phpBB3/config.php" />
|
||||||
|
<copy file="build/new_version/phpBB3/vendor-ext/.htaccess" tofile="build/new_version/phpBB3/vendor/.htaccess" />
|
||||||
|
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
|
328
package-lock.json
generated
|
@ -595,10 +595,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/body-parser": {
|
"node_modules/body-parser": {
|
||||||
"version": "1.20.2",
|
"version": "1.20.3",
|
||||||
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
|
||||||
"integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
|
"integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bytes": "3.1.2",
|
"bytes": "3.1.2",
|
||||||
"content-type": "~1.0.5",
|
"content-type": "~1.0.5",
|
||||||
|
@ -608,7 +609,7 @@
|
||||||
"http-errors": "2.0.0",
|
"http-errors": "2.0.0",
|
||||||
"iconv-lite": "0.4.24",
|
"iconv-lite": "0.4.24",
|
||||||
"on-finished": "2.4.1",
|
"on-finished": "2.4.1",
|
||||||
"qs": "6.11.0",
|
"qs": "6.13.0",
|
||||||
"raw-body": "2.5.2",
|
"raw-body": "2.5.2",
|
||||||
"type-is": "~1.6.18",
|
"type-is": "~1.6.18",
|
||||||
"unpipe": "1.0.0"
|
"unpipe": "1.0.0"
|
||||||
|
@ -623,6 +624,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ms": "2.0.0"
|
"ms": "2.0.0"
|
||||||
}
|
}
|
||||||
|
@ -631,7 +633,8 @@
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||||
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
|
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/boolbase": {
|
"node_modules/boolbase": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
|
@ -650,12 +653,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/braces": {
|
"node_modules/braces": {
|
||||||
"version": "3.0.2",
|
"version": "3.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
|
||||||
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
|
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"fill-range": "^7.0.1"
|
"fill-range": "^7.1.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
|
@ -725,6 +729,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
|
||||||
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
|
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.8"
|
"node": ">= 0.8"
|
||||||
}
|
}
|
||||||
|
@ -734,6 +739,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
|
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
|
||||||
"integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
|
"integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"es-define-property": "^1.0.0",
|
"es-define-property": "^1.0.0",
|
||||||
"es-errors": "^1.3.0",
|
"es-errors": "^1.3.0",
|
||||||
|
@ -1027,15 +1033,17 @@
|
||||||
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
|
||||||
"integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
|
"integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/cookie": {
|
"node_modules/cookie": {
|
||||||
"version": "0.6.0",
|
"version": "0.7.1",
|
||||||
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
|
||||||
"integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
|
"integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
|
@ -1316,6 +1324,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
|
||||||
"integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
|
"integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"es-define-property": "^1.0.0",
|
"es-define-property": "^1.0.0",
|
||||||
"es-errors": "^1.3.0",
|
"es-errors": "^1.3.0",
|
||||||
|
@ -1333,6 +1342,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
|
||||||
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
|
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.8"
|
"node": ">= 0.8"
|
||||||
}
|
}
|
||||||
|
@ -1342,6 +1352,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
|
||||||
"integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
|
"integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.8",
|
"node": ">= 0.8",
|
||||||
"npm": "1.2.8000 || >= 1.4.16"
|
"npm": "1.2.8000 || >= 1.4.16"
|
||||||
|
@ -1461,7 +1472,8 @@
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
||||||
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
|
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/electron-to-chromium": {
|
"node_modules/electron-to-chromium": {
|
||||||
"version": "1.4.111",
|
"version": "1.4.111",
|
||||||
|
@ -1476,10 +1488,11 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/encodeurl": {
|
"node_modules/encodeurl": {
|
||||||
"version": "1.0.2",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
|
||||||
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
|
"integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.8"
|
"node": ">= 0.8"
|
||||||
}
|
}
|
||||||
|
@ -1516,6 +1529,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
|
||||||
"integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
|
"integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"get-intrinsic": "^1.2.4"
|
"get-intrinsic": "^1.2.4"
|
||||||
},
|
},
|
||||||
|
@ -1528,6 +1542,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
|
||||||
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
|
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.4"
|
"node": ">= 0.4"
|
||||||
}
|
}
|
||||||
|
@ -1545,7 +1560,8 @@
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
|
||||||
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
|
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/escape-string-regexp": {
|
"node_modules/escape-string-regexp": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
|
@ -1739,6 +1755,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
|
||||||
"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
|
"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
|
@ -1768,37 +1785,38 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/express": {
|
"node_modules/express": {
|
||||||
"version": "4.19.2",
|
"version": "4.21.1",
|
||||||
"resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
|
"resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz",
|
||||||
"integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
|
"integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"accepts": "~1.3.8",
|
"accepts": "~1.3.8",
|
||||||
"array-flatten": "1.1.1",
|
"array-flatten": "1.1.1",
|
||||||
"body-parser": "1.20.2",
|
"body-parser": "1.20.3",
|
||||||
"content-disposition": "0.5.4",
|
"content-disposition": "0.5.4",
|
||||||
"content-type": "~1.0.4",
|
"content-type": "~1.0.4",
|
||||||
"cookie": "0.6.0",
|
"cookie": "0.7.1",
|
||||||
"cookie-signature": "1.0.6",
|
"cookie-signature": "1.0.6",
|
||||||
"debug": "2.6.9",
|
"debug": "2.6.9",
|
||||||
"depd": "2.0.0",
|
"depd": "2.0.0",
|
||||||
"encodeurl": "~1.0.2",
|
"encodeurl": "~2.0.0",
|
||||||
"escape-html": "~1.0.3",
|
"escape-html": "~1.0.3",
|
||||||
"etag": "~1.8.1",
|
"etag": "~1.8.1",
|
||||||
"finalhandler": "1.2.0",
|
"finalhandler": "1.3.1",
|
||||||
"fresh": "0.5.2",
|
"fresh": "0.5.2",
|
||||||
"http-errors": "2.0.0",
|
"http-errors": "2.0.0",
|
||||||
"merge-descriptors": "1.0.1",
|
"merge-descriptors": "1.0.3",
|
||||||
"methods": "~1.1.2",
|
"methods": "~1.1.2",
|
||||||
"on-finished": "2.4.1",
|
"on-finished": "2.4.1",
|
||||||
"parseurl": "~1.3.3",
|
"parseurl": "~1.3.3",
|
||||||
"path-to-regexp": "0.1.7",
|
"path-to-regexp": "0.1.10",
|
||||||
"proxy-addr": "~2.0.7",
|
"proxy-addr": "~2.0.7",
|
||||||
"qs": "6.11.0",
|
"qs": "6.13.0",
|
||||||
"range-parser": "~1.2.1",
|
"range-parser": "~1.2.1",
|
||||||
"safe-buffer": "5.2.1",
|
"safe-buffer": "5.2.1",
|
||||||
"send": "0.18.0",
|
"send": "0.19.0",
|
||||||
"serve-static": "1.15.0",
|
"serve-static": "1.16.2",
|
||||||
"setprototypeof": "1.2.0",
|
"setprototypeof": "1.2.0",
|
||||||
"statuses": "2.0.1",
|
"statuses": "2.0.1",
|
||||||
"type-is": "~1.6.18",
|
"type-is": "~1.6.18",
|
||||||
|
@ -1958,10 +1976,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/fill-range": {
|
"node_modules/fill-range": {
|
||||||
"version": "7.0.1",
|
"version": "7.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
||||||
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
|
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"to-regex-range": "^5.0.1"
|
"to-regex-range": "^5.0.1"
|
||||||
},
|
},
|
||||||
|
@ -1970,13 +1989,14 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/finalhandler": {
|
"node_modules/finalhandler": {
|
||||||
"version": "1.2.0",
|
"version": "1.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
|
||||||
"integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
|
"integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"debug": "2.6.9",
|
"debug": "2.6.9",
|
||||||
"encodeurl": "~1.0.2",
|
"encodeurl": "~2.0.0",
|
||||||
"escape-html": "~1.0.3",
|
"escape-html": "~1.0.3",
|
||||||
"on-finished": "2.4.1",
|
"on-finished": "2.4.1",
|
||||||
"parseurl": "~1.3.3",
|
"parseurl": "~1.3.3",
|
||||||
|
@ -1992,6 +2012,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ms": "2.0.0"
|
"ms": "2.0.0"
|
||||||
}
|
}
|
||||||
|
@ -2000,7 +2021,8 @@
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||||
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
|
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/find-up": {
|
"node_modules/find-up": {
|
||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
|
@ -2122,6 +2144,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
|
||||||
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
|
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
|
@ -2188,6 +2211,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
|
||||||
"integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
|
"integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"es-errors": "^1.3.0",
|
"es-errors": "^1.3.0",
|
||||||
"function-bind": "^1.1.2",
|
"function-bind": "^1.1.2",
|
||||||
|
@ -2338,6 +2362,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
|
||||||
"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
|
"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"get-intrinsic": "^1.1.3"
|
"get-intrinsic": "^1.1.3"
|
||||||
},
|
},
|
||||||
|
@ -2509,6 +2534,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
|
||||||
"integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
|
"integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"es-define-property": "^1.0.0"
|
"es-define-property": "^1.0.0"
|
||||||
},
|
},
|
||||||
|
@ -2521,6 +2547,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
|
||||||
"integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
|
"integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.4"
|
"node": ">= 0.4"
|
||||||
},
|
},
|
||||||
|
@ -2533,6 +2560,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
|
||||||
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
|
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.4"
|
"node": ">= 0.4"
|
||||||
},
|
},
|
||||||
|
@ -2545,6 +2573,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
|
||||||
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
|
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"function-bind": "^1.1.2"
|
"function-bind": "^1.1.2"
|
||||||
},
|
},
|
||||||
|
@ -2605,6 +2634,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
|
||||||
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
|
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"depd": "2.0.0",
|
"depd": "2.0.0",
|
||||||
"inherits": "2.0.4",
|
"inherits": "2.0.4",
|
||||||
|
@ -2621,6 +2651,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
|
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
|
||||||
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
|
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"safer-buffer": ">= 2.1.2 < 3"
|
"safer-buffer": ">= 2.1.2 < 3"
|
||||||
},
|
},
|
||||||
|
@ -2851,6 +2882,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
||||||
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.12.0"
|
"node": ">=0.12.0"
|
||||||
}
|
}
|
||||||
|
@ -3226,6 +3258,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
||||||
"integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
|
"integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
|
@ -3269,10 +3302,14 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/merge-descriptors": {
|
"node_modules/merge-descriptors": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
|
||||||
"integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
|
"integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"node_modules/merge2": {
|
"node_modules/merge2": {
|
||||||
"version": "1.4.1",
|
"version": "1.4.1",
|
||||||
|
@ -3293,12 +3330,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/micromatch": {
|
"node_modules/micromatch": {
|
||||||
"version": "4.0.5",
|
"version": "4.0.8",
|
||||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
|
||||||
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
|
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"braces": "^3.0.2",
|
"braces": "^3.0.3",
|
||||||
"picomatch": "^2.3.1"
|
"picomatch": "^2.3.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
@ -3310,6 +3348,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
|
||||||
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
|
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"bin": {
|
"bin": {
|
||||||
"mime": "cli.js"
|
"mime": "cli.js"
|
||||||
},
|
},
|
||||||
|
@ -3587,10 +3626,14 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/object-inspect": {
|
"node_modules/object-inspect": {
|
||||||
"version": "1.13.1",
|
"version": "1.13.2",
|
||||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
|
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
|
||||||
"integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
|
"integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"url": "https://github.com/sponsors/ljharb"
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
}
|
}
|
||||||
|
@ -3627,6 +3670,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
|
||||||
"integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
|
"integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ee-first": "1.1.1"
|
"ee-first": "1.1.1"
|
||||||
},
|
},
|
||||||
|
@ -3763,6 +3807,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
|
||||||
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
|
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.8"
|
"node": ">= 0.8"
|
||||||
}
|
}
|
||||||
|
@ -3822,10 +3867,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/path-to-regexp": {
|
"node_modules/path-to-regexp": {
|
||||||
"version": "0.1.7",
|
"version": "0.1.10",
|
||||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz",
|
||||||
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
|
"integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/path-type": {
|
"node_modules/path-type": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
|
@ -4443,12 +4489,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/qs": {
|
"node_modules/qs": {
|
||||||
"version": "6.11.0",
|
"version": "6.13.0",
|
||||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
|
"resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
|
||||||
"integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
|
"integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "BSD-3-Clause",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"side-channel": "^1.0.4"
|
"side-channel": "^1.0.6"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.6"
|
"node": ">=0.6"
|
||||||
|
@ -4497,6 +4544,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
|
||||||
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
|
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
|
@ -4506,6 +4554,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
|
||||||
"integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
|
"integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bytes": "3.1.2",
|
"bytes": "3.1.2",
|
||||||
"http-errors": "2.0.0",
|
"http-errors": "2.0.0",
|
||||||
|
@ -4854,10 +4903,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/send": {
|
"node_modules/send": {
|
||||||
"version": "0.18.0",
|
"version": "0.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
|
"resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
|
||||||
"integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
|
"integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"debug": "2.6.9",
|
"debug": "2.6.9",
|
||||||
"depd": "2.0.0",
|
"depd": "2.0.0",
|
||||||
|
@ -4882,6 +4932,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ms": "2.0.0"
|
"ms": "2.0.0"
|
||||||
}
|
}
|
||||||
|
@ -4890,24 +4941,37 @@
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||||
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
|
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/send/node_modules/encodeurl": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.8"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"node_modules/send/node_modules/ms": {
|
"node_modules/send/node_modules/ms": {
|
||||||
"version": "2.1.3",
|
"version": "2.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||||
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/serve-static": {
|
"node_modules/serve-static": {
|
||||||
"version": "1.15.0",
|
"version": "1.16.2",
|
||||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
|
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
|
||||||
"integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
|
"integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"encodeurl": "~1.0.2",
|
"encodeurl": "~2.0.0",
|
||||||
"escape-html": "~1.0.3",
|
"escape-html": "~1.0.3",
|
||||||
"parseurl": "~1.3.3",
|
"parseurl": "~1.3.3",
|
||||||
"send": "0.18.0"
|
"send": "0.19.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.8.0"
|
"node": ">= 0.8.0"
|
||||||
|
@ -4918,6 +4982,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
|
||||||
"integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
|
"integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"define-data-property": "^1.1.4",
|
"define-data-property": "^1.1.4",
|
||||||
"es-errors": "^1.3.0",
|
"es-errors": "^1.3.0",
|
||||||
|
@ -4934,7 +4999,8 @@
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
|
||||||
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
|
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
"node_modules/shebang-command": {
|
"node_modules/shebang-command": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
|
@ -4962,6 +5028,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
|
||||||
"integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
|
"integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"call-bind": "^1.0.7",
|
"call-bind": "^1.0.7",
|
||||||
"es-errors": "^1.3.0",
|
"es-errors": "^1.3.0",
|
||||||
|
@ -5086,6 +5153,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
|
||||||
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
|
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.8"
|
"node": ">= 0.8"
|
||||||
}
|
}
|
||||||
|
@ -5519,6 +5587,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||||
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"is-number": "^7.0.0"
|
"is-number": "^7.0.0"
|
||||||
},
|
},
|
||||||
|
@ -5543,6 +5612,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
|
||||||
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
|
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.6"
|
"node": ">=0.6"
|
||||||
}
|
}
|
||||||
|
@ -5585,6 +5655,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
|
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
|
||||||
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
|
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"media-typer": "0.3.0",
|
"media-typer": "0.3.0",
|
||||||
"mime-types": "~2.1.24"
|
"mime-types": "~2.1.24"
|
||||||
|
@ -5640,6 +5711,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
||||||
"integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
|
"integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.8"
|
"node": ">= 0.8"
|
||||||
}
|
}
|
||||||
|
@ -6389,9 +6461,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"body-parser": {
|
"body-parser": {
|
||||||
"version": "1.20.2",
|
"version": "1.20.3",
|
||||||
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
|
||||||
"integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
|
"integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"bytes": "3.1.2",
|
"bytes": "3.1.2",
|
||||||
|
@ -6402,7 +6474,7 @@
|
||||||
"http-errors": "2.0.0",
|
"http-errors": "2.0.0",
|
||||||
"iconv-lite": "0.4.24",
|
"iconv-lite": "0.4.24",
|
||||||
"on-finished": "2.4.1",
|
"on-finished": "2.4.1",
|
||||||
"qs": "6.11.0",
|
"qs": "6.13.0",
|
||||||
"raw-body": "2.5.2",
|
"raw-body": "2.5.2",
|
||||||
"type-is": "~1.6.18",
|
"type-is": "~1.6.18",
|
||||||
"unpipe": "1.0.0"
|
"unpipe": "1.0.0"
|
||||||
|
@ -6442,12 +6514,12 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"braces": {
|
"braces": {
|
||||||
"version": "3.0.2",
|
"version": "3.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
|
||||||
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
|
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"fill-range": "^7.0.1"
|
"fill-range": "^7.1.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"browserslist": {
|
"browserslist": {
|
||||||
|
@ -6709,9 +6781,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"cookie": {
|
"cookie": {
|
||||||
"version": "0.6.0",
|
"version": "0.7.1",
|
||||||
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
|
||||||
"integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
|
"integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"cookie-signature": {
|
"cookie-signature": {
|
||||||
|
@ -7033,9 +7105,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"encodeurl": {
|
"encodeurl": {
|
||||||
"version": "1.0.2",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
|
||||||
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
|
"integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"end-of-stream": {
|
"end-of-stream": {
|
||||||
|
@ -7246,37 +7318,37 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"express": {
|
"express": {
|
||||||
"version": "4.19.2",
|
"version": "4.21.1",
|
||||||
"resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
|
"resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz",
|
||||||
"integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
|
"integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"accepts": "~1.3.8",
|
"accepts": "~1.3.8",
|
||||||
"array-flatten": "1.1.1",
|
"array-flatten": "1.1.1",
|
||||||
"body-parser": "1.20.2",
|
"body-parser": "1.20.3",
|
||||||
"content-disposition": "0.5.4",
|
"content-disposition": "0.5.4",
|
||||||
"content-type": "~1.0.4",
|
"content-type": "~1.0.4",
|
||||||
"cookie": "0.6.0",
|
"cookie": "0.7.1",
|
||||||
"cookie-signature": "1.0.6",
|
"cookie-signature": "1.0.6",
|
||||||
"debug": "2.6.9",
|
"debug": "2.6.9",
|
||||||
"depd": "2.0.0",
|
"depd": "2.0.0",
|
||||||
"encodeurl": "~1.0.2",
|
"encodeurl": "~2.0.0",
|
||||||
"escape-html": "~1.0.3",
|
"escape-html": "~1.0.3",
|
||||||
"etag": "~1.8.1",
|
"etag": "~1.8.1",
|
||||||
"finalhandler": "1.2.0",
|
"finalhandler": "1.3.1",
|
||||||
"fresh": "0.5.2",
|
"fresh": "0.5.2",
|
||||||
"http-errors": "2.0.0",
|
"http-errors": "2.0.0",
|
||||||
"merge-descriptors": "1.0.1",
|
"merge-descriptors": "1.0.3",
|
||||||
"methods": "~1.1.2",
|
"methods": "~1.1.2",
|
||||||
"on-finished": "2.4.1",
|
"on-finished": "2.4.1",
|
||||||
"parseurl": "~1.3.3",
|
"parseurl": "~1.3.3",
|
||||||
"path-to-regexp": "0.1.7",
|
"path-to-regexp": "0.1.10",
|
||||||
"proxy-addr": "~2.0.7",
|
"proxy-addr": "~2.0.7",
|
||||||
"qs": "6.11.0",
|
"qs": "6.13.0",
|
||||||
"range-parser": "~1.2.1",
|
"range-parser": "~1.2.1",
|
||||||
"safe-buffer": "5.2.1",
|
"safe-buffer": "5.2.1",
|
||||||
"send": "0.18.0",
|
"send": "0.19.0",
|
||||||
"serve-static": "1.15.0",
|
"serve-static": "1.16.2",
|
||||||
"setprototypeof": "1.2.0",
|
"setprototypeof": "1.2.0",
|
||||||
"statuses": "2.0.1",
|
"statuses": "2.0.1",
|
||||||
"type-is": "~1.6.18",
|
"type-is": "~1.6.18",
|
||||||
|
@ -7408,22 +7480,22 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fill-range": {
|
"fill-range": {
|
||||||
"version": "7.0.1",
|
"version": "7.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
||||||
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
|
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"to-regex-range": "^5.0.1"
|
"to-regex-range": "^5.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"finalhandler": {
|
"finalhandler": {
|
||||||
"version": "1.2.0",
|
"version": "1.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
|
||||||
"integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
|
"integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"debug": "2.6.9",
|
"debug": "2.6.9",
|
||||||
"encodeurl": "~1.0.2",
|
"encodeurl": "~2.0.0",
|
||||||
"escape-html": "~1.0.3",
|
"escape-html": "~1.0.3",
|
||||||
"on-finished": "2.4.1",
|
"on-finished": "2.4.1",
|
||||||
"parseurl": "~1.3.3",
|
"parseurl": "~1.3.3",
|
||||||
|
@ -8402,9 +8474,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"merge-descriptors": {
|
"merge-descriptors": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
|
||||||
"integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
|
"integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"merge2": {
|
"merge2": {
|
||||||
|
@ -8420,12 +8492,12 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"micromatch": {
|
"micromatch": {
|
||||||
"version": "4.0.5",
|
"version": "4.0.8",
|
||||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
|
||||||
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
|
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"braces": "^3.0.2",
|
"braces": "^3.0.3",
|
||||||
"picomatch": "^2.3.1"
|
"picomatch": "^2.3.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -8637,9 +8709,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"object-inspect": {
|
"object-inspect": {
|
||||||
"version": "1.13.1",
|
"version": "1.13.2",
|
||||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
|
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
|
||||||
"integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
|
"integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"object.defaults": {
|
"object.defaults": {
|
||||||
|
@ -8809,9 +8881,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"path-to-regexp": {
|
"path-to-regexp": {
|
||||||
"version": "0.1.7",
|
"version": "0.1.10",
|
||||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz",
|
||||||
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
|
"integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"path-type": {
|
"path-type": {
|
||||||
|
@ -9201,12 +9273,12 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"qs": {
|
"qs": {
|
||||||
"version": "6.11.0",
|
"version": "6.13.0",
|
||||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
|
"resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
|
||||||
"integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
|
"integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"side-channel": "^1.0.4"
|
"side-channel": "^1.0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"queue-microtask": {
|
"queue-microtask": {
|
||||||
|
@ -9493,9 +9565,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"send": {
|
"send": {
|
||||||
"version": "0.18.0",
|
"version": "0.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
|
"resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
|
||||||
"integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
|
"integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"debug": "2.6.9",
|
"debug": "2.6.9",
|
||||||
|
@ -9530,6 +9602,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"encodeurl": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"ms": {
|
"ms": {
|
||||||
"version": "2.1.3",
|
"version": "2.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||||
|
@ -9539,15 +9617,15 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"serve-static": {
|
"serve-static": {
|
||||||
"version": "1.15.0",
|
"version": "1.16.2",
|
||||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
|
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
|
||||||
"integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
|
"integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"encodeurl": "~1.0.2",
|
"encodeurl": "~2.0.0",
|
||||||
"escape-html": "~1.0.3",
|
"escape-html": "~1.0.3",
|
||||||
"parseurl": "~1.3.3",
|
"parseurl": "~1.3.3",
|
||||||
"send": "0.18.0"
|
"send": "0.19.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"set-function-length": {
|
"set-function-length": {
|
||||||
|
|
|
@ -1,79 +1,85 @@
|
||||||
<!-- INCLUDE overall_header.html -->
|
{% include 'overall_header.html' %}
|
||||||
|
|
||||||
<a id="maincontent"></a>
|
<a id="maincontent"></a>
|
||||||
|
|
||||||
<h1>{L_ACP_VC_SETTINGS}</h1>
|
<h1>{{ lang('ACP_VC_SETTINGS') }}</h1>
|
||||||
|
|
||||||
<p>{L_ACP_VC_SETTINGS_EXPLAIN}</p>
|
<p>{{ lang('ACP_VC_SETTINGS_EXPLAIN') }}</p>
|
||||||
|
|
||||||
<p>{L_ACP_VC_EXT_GET_MORE}</p>
|
<p>{{ lang('ACP_VC_EXT_GET_MORE') }}</p>
|
||||||
|
|
||||||
<!-- IF ERROR_MSG -->
|
{% if ERRORS %}
|
||||||
<div class="errorbox">
|
<div class="errorbox">
|
||||||
<h3>{L_WARNING}</h3>
|
<h3>{{ lang('WARNING') }}</h3>
|
||||||
<p>{ERROR_MSG}</p>
|
<p>{{ ERRORS|join('<br>') }}</p>
|
||||||
</div>
|
</div>
|
||||||
<!-- ENDIF -->
|
{% endif %}
|
||||||
|
|
||||||
<form id="acp_captcha" method="post" action="{U_ACTION}">
|
<form id="acp_captcha" method="post" action="{{ U_ACTION }}">
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{L_GENERAL_OPTIONS}</legend>
|
<legend>{{ lang('GENERAL_OPTIONS') }}</legend>
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="enable_confirm">{L_VISUAL_CONFIRM_REG}{L_COLON}</label><br /><span>{L_VISUAL_CONFIRM_REG_EXPLAIN}</span></dt>
|
<dt><label for="enable_confirm">{{ lang('VISUAL_CONFIRM_REG') ~ lang('COLON') }}</label><br /><span>{{ lang('VISUAL_CONFIRM_REG_EXPLAIN') }}</span></dt>
|
||||||
<dd><label><input type="radio" class="radio" id="enable_confirm" name="enable_confirm" value="1"<!-- IF REG_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_ENABLED}</label>
|
<dd>
|
||||||
<label><input type="radio" class="radio" name="enable_confirm" value="0"<!-- IF not REG_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_DISABLED}</label></dd>
|
<label><input type="radio" class="radio" id="enable_confirm" name="enable_confirm" value="1"{% if REG_ENABLE %} checked="checked"{% endif %}/> {{ lang('ENABLED') }}</label>
|
||||||
|
<label><input type="radio" class="radio" name="enable_confirm" value="0"{% if not REG_ENABLE %} checked="checked"{% endif %}/> {{ lang('DISABLED') }}</label>
|
||||||
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="max_reg_attempts">{L_REG_LIMIT}{L_COLON}</label><br /><span>{L_REG_LIMIT_EXPLAIN}</span></dt>
|
<dt><label for="max_reg_attempts">{{ lang('REG_LIMIT') ~ lang('COLON') }}</label><br /><span>{{ lang('REG_LIMIT_EXPLAIN') }}</span></dt>
|
||||||
<dd><input id="max_reg_attempts" type="number" min="0" max="9999" name="max_reg_attempts" value="{REG_LIMIT}" /></dd>
|
<dd><input id="max_reg_attempts" type="number" min="0" max="9999" name="max_reg_attempts" value="{{ REG_LIMIT }}" /></dd>
|
||||||
</dl>
|
</dl>
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="max_login_attempts">{L_MAX_LOGIN_ATTEMPTS}{L_COLON}</label><br /><span>{L_MAX_LOGIN_ATTEMPTS_EXPLAIN}</span></dt>
|
<dt><label for="max_login_attempts">{{ lang('MAX_LOGIN_ATTEMPTS') ~ lang('COLON') }}</label><br /><span>{{ lang('MAX_LOGIN_ATTEMPTS_EXPLAIN') }}</span></dt>
|
||||||
<dd><input id="max_login_attempts" type="number" min="0" max="9999" name="max_login_attempts" value="{MAX_LOGIN_ATTEMPTS}" /></dd>
|
<dd><input id="max_login_attempts" type="number" min="0" max="9999" name="max_login_attempts" value="{{ MAX_LOGIN_ATTEMPTS }}" /></dd>
|
||||||
</dl>
|
</dl>
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="enable_post_confirm">{L_VISUAL_CONFIRM_POST}{L_COLON}</label><br /><span>{L_VISUAL_CONFIRM_POST_EXPLAIN}</span></dt>
|
<dt><label for="enable_post_confirm">{{ lang('VISUAL_CONFIRM_POST') ~ lang('COLON') }}</label><br /><span>{{ lang('VISUAL_CONFIRM_POST_EXPLAIN') }}</span></dt>
|
||||||
<dd><label><input type="radio" class="radio" id="enable_post_confirm" name="enable_post_confirm" value="1"<!-- IF POST_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_ENABLED}</label>
|
<dd>
|
||||||
<label><input type="radio" class="radio" name="enable_post_confirm" value="0"<!-- IF not POST_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_DISABLED}</label></dd>
|
<label><input type="radio" class="radio" id="enable_post_confirm" name="enable_post_confirm" value="1"{% if POST_ENABLE %} checked="checked"{% endif %}/> {{ lang('ENABLED') }}</label>
|
||||||
|
<label><input type="radio" class="radio" name="enable_post_confirm" value="0"{% if not POST_ENABLE %} checked="checked"{% endif %}/> {{ lang('DISABLED') }}</label>
|
||||||
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="confirm_refresh">{L_VISUAL_CONFIRM_REFRESH}{L_COLON}</label><br /><span>{L_VISUAL_CONFIRM_REFRESH_EXPLAIN}</span></dt>
|
<dt><label for="confirm_refresh">{{ lang('VISUAL_CONFIRM_REFRESH') ~ lang('COLON') }}</label><br /><span>{{ lang('VISUAL_CONFIRM_REFRESH_EXPLAIN') }}</span></dt>
|
||||||
<dd><label><input type="radio" class="radio" id="confirm_refresh" name="confirm_refresh" value="1"<!-- IF CONFIRM_REFRESH --> checked="checked"<!-- ENDIF --> /> {L_ENABLED}</label>
|
<dd>
|
||||||
<label><input type="radio" class="radio" name="confirm_refresh" value="0"<!-- IF not CONFIRM_REFRESH --> checked="checked"<!-- ENDIF --> /> {L_DISABLED}</label></dd>
|
<label><input type="radio" class="radio" id="confirm_refresh" name="confirm_refresh" value="1"{% if CONFIRM_REFRESH %} checked="checked"{% endif %}/> {{ lang('ENABLED') }}</label>
|
||||||
|
<label><input type="radio" class="radio" name="confirm_refresh" value="0"{% if not CONFIRM_REFRESH %} checked="checked"{% endif %}/> {{ lang('DISABLED') }}</label>
|
||||||
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{L_AVAILABLE_CAPTCHAS}</legend>
|
<legend>{{ lang('AVAILABLE_CAPTCHAS') }}</legend>
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="captcha_select">{L_CAPTCHA_SELECT}{L_COLON}</label><br /><span>{L_CAPTCHA_SELECT_EXPLAIN}</span></dt>
|
<dt><label for="captcha_select">{{ lang('CAPTCHA_SELECT') ~ lang('COLON') }}</label><br><span>{{ lang('CAPTCHA_SELECT_EXPLAIN') }}</span></dt>
|
||||||
<dd><select id="captcha_select" name="select_captcha" onchange="(document.getElementById('acp_captcha')).submit()" >{CAPTCHA_SELECT}</select></dd>
|
<dd>{{ FormsSelect(CAPTCHA_SELECT | merge({id: 'captcha_select', onchange: "(document.getElementById('acp_captcha')).submit()"})) }}</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<!-- IF S_CAPTCHA_HAS_CONFIG -->
|
{% if S_CAPTCHA_HAS_CONFIG %}
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="configure">{L_CAPTCHA_CONFIGURE}{L_COLON}</label><br /><span>{L_CAPTCHA_CONFIGURE_EXPLAIN}</span></dt>
|
<dt><label for="configure">{{ lang('CAPTCHA_CONFIGURE') ~ lang('COLON') }}</label><br /><span>{{ lang('CAPTCHA_CONFIGURE_EXPLAIN') }}</span></dt>
|
||||||
<dd><input class="button2" type="submit" id="configure" name="configure" value="{L_CONFIGURE}" /></dd>
|
<dd><input class="button2" type="submit" id="configure" name="configure" value="{{ lang('CONFIGURE') }}" /></dd>
|
||||||
</dl>
|
</dl>
|
||||||
<!-- ENDIF -->
|
{% endif %}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<!-- IF CAPTCHA_PREVIEW_TPL -->
|
{% if CAPTCHA_PREVIEW_TPL %}
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{L_PREVIEW}</legend>
|
<legend>{{ lang('PREVIEW') }}</legend>
|
||||||
<!-- INCLUDE {CAPTCHA_PREVIEW_TPL} -->
|
{% include CAPTCHA_PREVIEW_TPL %}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<!-- ENDIF -->
|
{% endif %}
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
<legend>{{ lang('ACP_SUBMIT_CHANGES') }}</legend>
|
||||||
<p class="submit-buttons">
|
<p class="submit-buttons">
|
||||||
<input class="button1" type="submit" id="main_submit" name="main_submit" value="{L_SUBMIT}" />
|
<input class="button1" type="submit" id="main_submit" name="main_submit" value="{{ lang('SUBMIT') }}" />
|
||||||
<input class="button2" type="reset" id="form_reset" name="reset" value="{L_RESET}" />
|
<input class="button2" type="reset" id="form_reset" name="reset" value="{{ lang('RESET') }}" />
|
||||||
</p>
|
</p>
|
||||||
{S_FORM_TOKEN}
|
{{ S_FORM_TOKEN }}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<!-- INCLUDE overall_footer.html -->
|
{% include 'overall_footer.html' %}
|
||||||
|
|
|
@ -42,82 +42,94 @@
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<!-- IF .enabled -->
|
{% for list in ['enabled', 'disabled', 'not_installed'] %}
|
||||||
<tr>
|
{% set blockname = attribute(loops, list) %}
|
||||||
<td class="row3" colspan="4"><strong>{L_EXTENSIONS_ENABLED}</strong><!-- EVENT acp_ext_list_enabled_title_after --></td>
|
{% if blockname|length %}
|
||||||
</tr>
|
<tr>
|
||||||
<!-- BEGIN enabled -->
|
<td class="row3" colspan="4"><strong>{{ lang('EXTENSIONS_' ~ list|upper) }}</strong>
|
||||||
<tr class="ext_enabled row-highlight">
|
{% if list == 'enabled' %}
|
||||||
<td><strong title="{enabled.NAME}">{enabled.META_DISPLAY_NAME}</strong><!-- EVENT acp_ext_list_enabled_name_after --></td>
|
{% EVENT acp_ext_list_enabled_title_after %}
|
||||||
<td style="text-align: center;">
|
{% elseif list == 'disabled' %}
|
||||||
<!-- IF enabled.S_VERSIONCHECK -->
|
{% EVENT acp_ext_list_disabled_title_after %}
|
||||||
<strong class="<!-- IF enabled.S_UP_TO_DATE -->current-ext<!-- ELSE -->outdated-ext<!-- ENDIF -->">{enabled.META_VERSION}</strong>
|
{% elseif list == 'not_installed' %}
|
||||||
<!-- IF not enabled.S_UP_TO_DATE -->{{ Icon('font', 'circle-exclamation', '', true, 'fas outdated-ext') }}<!-- ENDIF -->
|
{% EVENT acp_ext_list_not_installed_title_after %}
|
||||||
<!-- ELSE -->
|
{% endif %}
|
||||||
{enabled.META_VERSION}
|
</td>
|
||||||
<!-- ENDIF -->
|
</tr>
|
||||||
</td>
|
{% for data in blockname %}
|
||||||
<td style="text-align: center;"><a href="{enabled.U_DETAILS}">{L_DETAILS}</a></td>
|
<tr class="ext_{{ list }} row-highlight">
|
||||||
<td style="text-align: center;">
|
<td><strong title="{{ data.NAME }}">{{ data.META_DISPLAY_NAME }}</strong>
|
||||||
<!-- BEGIN actions -->
|
{% if list == 'enabled' %}
|
||||||
<a href="{enabled.actions.U_ACTION}"<!-- IF enabled.actions.ACTION == 'REMOVE' --> style="color: #bc2a4d;"<!-- ENDIF --><!-- IF enabled.actions.L_ACTION_EXPLAIN --> title="{enabled.actions.L_ACTION_EXPLAIN}"<!-- ENDIF -->>{enabled.actions.L_ACTION}</a>
|
{% EVENT acp_ext_list_enabled_name_after %}
|
||||||
<!-- IF not enabled.actions.S_LAST_ROW --> | <!-- ENDIF -->
|
{% elseif list == 'disabled' %}
|
||||||
<!-- END actions -->
|
{% EVENT acp_ext_list_disabled_name_after %}
|
||||||
</td>
|
{% elseif list == 'not_installed' %}
|
||||||
</tr>
|
{% EVENT acp_ext_list_not_installed_name_after %}
|
||||||
<!-- END enabled -->
|
{% endif %}
|
||||||
<!-- ENDIF -->
|
</td>
|
||||||
|
<td style="text-align: center;">
|
||||||
<!-- IF .disabled -->
|
{% if data.S_VERSIONCHECK %}
|
||||||
<tr>
|
<strong class="{% if data.S_UP_TO_DATE %}current-ext{% else %}outdated-ext{% endif %}">{{ data.META_VERSION }}</strong>
|
||||||
<td class="row3" colspan="4"><strong>{L_EXTENSIONS_DISABLED}</strong><!-- EVENT acp_ext_list_disabled_title_after --></td>
|
{% if not data.S_UP_TO_DATE %}{{ Icon('font', 'circle-exclamation', '', true, 'fas outdated-ext') }}{% endif %}
|
||||||
</tr>
|
{% else %}
|
||||||
<!-- BEGIN disabled -->
|
{{ data.META_VERSION }}
|
||||||
<tr class="ext_disabled row-highlight">
|
{% endif %}
|
||||||
<td><strong title="{disabled.NAME}">{disabled.META_DISPLAY_NAME}</strong><!-- EVENT acp_ext_list_disabled_name_after --></td>
|
</td>
|
||||||
<td style="text-align: center;">
|
<td style="text-align: center;">
|
||||||
<!-- IF disabled.S_VERSIONCHECK -->
|
{% if data.U_DETAILS %}<a href="{{ data.U_DETAILS }}">{{ lang ('DETAILS') }}</a>{% endif %}
|
||||||
<strong class="<!-- IF disabled.S_UP_TO_DATE -->current-ext<!-- ELSE -->outdated-ext<!-- ENDIF -->">{disabled.META_VERSION}</strong>
|
</td>
|
||||||
<!-- IF not disabled.S_UP_TO_DATE -->{{ Icon('font', 'circle-exclamation', '', true, 'fas outdated-ext') }}<!-- ENDIF -->
|
<td style="text-align: center;">
|
||||||
<!-- ELSE -->
|
{% for actions in data.actions %}
|
||||||
{disabled.META_VERSION}
|
<a href="{{ actions.U_ACTION }}"{% if actions.L_ACTION_EXPLAIN %} title="{{ actions.L_ACTION_EXPLAIN }}"{% endif %}>{{ actions.L_ACTION }}</a>
|
||||||
<!-- ENDIF -->
|
{% if not actions.S_LAST_ROW %} | {% endif %}
|
||||||
</td>
|
{% endfor %}
|
||||||
<td style="text-align: center;">
|
</td>
|
||||||
<!-- IF disabled.U_DETAILS --><a href="{disabled.U_DETAILS}">{L_DETAILS}</a><!-- ENDIF -->
|
</tr>
|
||||||
</td>
|
{% endfor %}
|
||||||
<td style="text-align: center;">
|
{% endif %}
|
||||||
<!-- BEGIN actions -->
|
{% endfor %}
|
||||||
<a href="{disabled.actions.U_ACTION}"<!-- IF disabled.actions.ACTION == 'REMOVE' --> style="color: #bc2a4d;"<!-- ENDIF --><!-- IF disabled.actions.L_ACTION_EXPLAIN --> title="{disabled.actions.L_ACTION_EXPLAIN}"<!-- ENDIF -->>{disabled.actions.L_ACTION}</a>
|
|
||||||
<!-- IF not disabled.actions.S_LAST_ROW --> | <!-- ENDIF -->
|
|
||||||
<!-- END actions -->
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<!-- END disabled -->
|
|
||||||
<!-- ENDIF -->
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<table class="table1">
|
<table class="table1">
|
||||||
<tr>
|
<tbody>
|
||||||
<th>{L_EXTENSION_INSTALL_HEADLINE}</th>
|
<tr>
|
||||||
</tr>
|
<th>{L_EXTENSION_INSTALLING_HEADLINE}</th>
|
||||||
<tr>
|
</tr>
|
||||||
<td class="row3">{L_EXTENSION_INSTALL_EXPLAIN}</td>
|
<tr>
|
||||||
</tr>
|
<td class="row3">
|
||||||
<tr>
|
<ol>
|
||||||
<th>{L_EXTENSION_UPDATE_HEADLINE}</th>
|
{% for step in lang_raw('EXTENSION_INSTALLING_EXPLAIN') %}
|
||||||
</tr>
|
<li>{{ step }}</li>
|
||||||
<tr>
|
{% endfor %}
|
||||||
<td class="row3">{L_EXTENSION_UPDATE_EXPLAIN}</td>
|
</ol>
|
||||||
</tr>
|
</td>
|
||||||
<tr>
|
</tr>
|
||||||
<th>{L_EXTENSION_REMOVE_HEADLINE}</th>
|
<tr>
|
||||||
</tr>
|
<th>{L_EXTENSION_UPDATING_HEADLINE}</th>
|
||||||
<tr>
|
</tr>
|
||||||
<td class="row3">{L_EXTENSION_REMOVE_EXPLAIN}</td>
|
<tr>
|
||||||
</tr>
|
<td class="row3">
|
||||||
</tbody>
|
<ol>
|
||||||
|
{% for step in lang_raw('EXTENSION_UPDATING_EXPLAIN') %}
|
||||||
|
<li>{{ step }}</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ol>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>{L_EXTENSION_REMOVING_HEADLINE}</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="row3">
|
||||||
|
<ol>
|
||||||
|
{% for step in lang_raw('EXTENSION_REMOVING_EXPLAIN') %}
|
||||||
|
<li>{{ step }}</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ol>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<!-- INCLUDE overall_footer.html -->
|
<!-- INCLUDE overall_footer.html -->
|
||||||
|
|
|
@ -181,7 +181,14 @@
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="forum_style">{L_FORUM_STYLE}{L_COLON}</label></dt>
|
<dt><label for="forum_style">{L_FORUM_STYLE}{L_COLON}</label></dt>
|
||||||
<dd><select id="forum_style" name="forum_style"><option value="0">{L_DEFAULT_STYLE}</option>{S_STYLES_OPTIONS}</select></dd>
|
<dd>
|
||||||
|
<select id="forum_style" name="forum_style">
|
||||||
|
<option value="0">{{ lang('DEFAULT_STYLE') }}</option>
|
||||||
|
{% for style in S_STYLES_OPTIONS %}
|
||||||
|
<option value="{{ style.value }}"{% if style.selected %} selected="selected"{% endif %}>{{ style.label }}</option>
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<!-- EVENT acp_forums_main_settings_append -->
|
<!-- EVENT acp_forums_main_settings_append -->
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
<!-- INCLUDE overall_header.html -->
|
|
||||||
|
|
||||||
<h1>{L_COPY_PERMISSIONS}</h1>
|
|
||||||
|
|
||||||
<p>{L_COPY_PERMISSIONS_EXPLAIN}</p>
|
|
||||||
<p>{L_ACL_LINK}</p>
|
|
||||||
|
|
||||||
<form id="confirm" method="post" action="{S_COPY_ACTION}">
|
|
||||||
|
|
||||||
<fieldset>
|
|
||||||
<dl>
|
|
||||||
<dt><label for="forum_perm_from">{L_COPY_PERMISSIONS}{L_COLON}</label><br /><span>{L_COPY_PERMISSIONS_EXPLAIN}</span></dt>
|
|
||||||
<dd><select id="forum_perm_from" name="forum_perm_from"><option value="0">{L_NO_PERMISSIONS}</option>{S_FORUM_OPTIONS}</select></dd>
|
|
||||||
</dl>
|
|
||||||
<div style="text-align: center;">{S_FORM_TOKEN}{S_HIDDEN_FIELDS}
|
|
||||||
<input type="submit" name="update" value="{L_CONTINUE}" class="button2" />
|
|
||||||
</div>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<!-- INCLUDE overall_footer.html -->
|
|
|
@ -105,7 +105,7 @@
|
||||||
<!-- BEGIN items -->
|
<!-- BEGIN items -->
|
||||||
<tr>
|
<tr>
|
||||||
|
|
||||||
<td style="text-align: center;"><img src="{items.IMG_SRC}" alt="{items.TEXT_ALT}" title="{items.TEXT_ALT}" style="max-width: 160px;"><input type="hidden" name="image[{items.IMG}]" value="1" /></td>
|
<td style="text-align: center;"><img src="{items.IMG_SRC}" alt="{items.TEXT_ALT}" title="{items.TEXT_ALT}" style="max-width: 160px;"{% if items.WIDTH && items.HEIGHT %} width="{{ items.WIDTH }}" height="{{ items.HEIGHT }}"{% endif %}><input type="hidden" name="image[{items.IMG}]" value="1" /></td>
|
||||||
<td style="vertical-align: top;">[{items.IMG}]</td>
|
<td style="vertical-align: top;">[{items.IMG}]</td>
|
||||||
<!-- IF S_SMILIES -->
|
<!-- IF S_SMILIES -->
|
||||||
<td><input class="text post" type="text" name="code[{items.IMG}]" value="{items.CODE}" size="10" maxlength="50" /></td>
|
<td><input class="text post" type="text" name="code[{items.IMG}]" value="{items.CODE}" size="10" maxlength="50" /></td>
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
<!-- IF S_LINKS_ALLOWED -->
|
<!-- IF S_LINKS_ALLOWED -->
|
||||||
<input type="button" class="button2" accesskey="w" name="addbbcode16" value="URL" style="text-decoration: underline; width: 40px" onclick="bbstyle(16)" title="{L_BBCODE_W_HELP}" />
|
<input type="button" class="button2" accesskey="w" name="addbbcode16" value="URL" style="text-decoration: underline; width: 40px" onclick="bbstyle(16)" title="{L_BBCODE_W_HELP}" />
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
<select name="addbbcode20" onchange="bbfontstyle('[size=' + this.form.addbbcode20.options[this.form.addbbcode20.selectedIndex].value + ']', '[/size]');this.form.addbbcode20.selectedIndex = 2;" title="{L_BBCODE_F_HELP}">
|
<select name="addbbcode18" onchange="bbfontstyle('[size=' + this.form.addbbcode18.options[this.form.addbbcode18.selectedIndex].value + ']', '[/size]');this.form.addbbcode18.selectedIndex = 2;" title="{L_BBCODE_F_HELP}">
|
||||||
<option value="50">{L_FONT_TINY}</option>
|
<option value="50">{L_FONT_TINY}</option>
|
||||||
<option value="85">{L_FONT_SMALL}</option>
|
<option value="85">{L_FONT_SMALL}</option>
|
||||||
<option value="100" selected="selected">{L_FONT_NORMAL}</option>
|
<option value="100" selected="selected">{L_FONT_NORMAL}</option>
|
||||||
|
|
|
@ -18,11 +18,13 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th colspan="3">{L_QUESTIONS}</th>
|
<th colspan="3">{L_QUESTIONS}</th>
|
||||||
</tr>
|
</tr>
|
||||||
|
{% if questions %}
|
||||||
<tr class="row3">
|
<tr class="row3">
|
||||||
<td style="text-align: center;">{L_QUESTION_TEXT}</td>
|
<td style="text-align: center;">{L_QUESTION_TEXT}</td>
|
||||||
<td style="width: 5%; text-align: center;">{L_QUESTION_LANG}</td>
|
<td style="width: 5%; text-align: center;">{L_QUESTION_LANG}</td>
|
||||||
<td style="vertical-align: top; width: 50px; text-align: center; white-space: nowrap;">{L_ACTION}</td>
|
<td style="vertical-align: top; width: 50px; text-align: center; white-space: nowrap;">{L_ACTION}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
{% endif %}
|
||||||
</thead>
|
</thead>
|
||||||
|
|
||||||
<tbody>
|
<tbody>
|
||||||
|
@ -33,6 +35,10 @@
|
||||||
<td style="text-align: center;">{{ question.QUESTION_LANG }}</td>
|
<td style="text-align: center;">{{ question.QUESTION_LANG }}</td>
|
||||||
<td style="text-align: center;"><a href="{{ question.U_EDIT }}">{{ ICON_EDIT }}</a> <a href="{{ question.U_DELETE }}">{{ ICON_DELETE }}</a></td>
|
<td style="text-align: center;"><a href="{{ question.U_EDIT }}">{{ ICON_EDIT }}</a> <a href="{{ question.U_DELETE }}">{{ ICON_DELETE }}</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
{% else %}
|
||||||
|
<tr>
|
||||||
|
<td class="row3 centered-text" colspan="3">{{ lang('QA_NO_QUESTIONS') }}</td>
|
||||||
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
||||||
|
|
64
phpBB/adm/style/captcha_turnstile_acp.html
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
{% include('overall_header.html') %}
|
||||||
|
|
||||||
|
<a id="maincontent"></a>
|
||||||
|
|
||||||
|
<h1>{{ lang('ACP_VC_SETTINGS') }}</h1>
|
||||||
|
|
||||||
|
<p>{{ lang('ACP_VC_SETTINGS_EXPLAIN') }}</p>
|
||||||
|
|
||||||
|
<form id="acp_captcha" method="post" action="{{ U_ACTION }}">
|
||||||
|
<fieldset>
|
||||||
|
<legend>{{ lang('GENERAL_OPTIONS') }}</legend>
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
<label for="captcha_turnstile_sitekey">{{ lang('CAPTCHA_TURNSTILE_SITEKEY') ~ lang('COLON') }}</label><br>
|
||||||
|
<span>{{ lang('CAPTCHA_TURNSTILE_SITEKEY_EXPLAIN') }}</span>
|
||||||
|
</dt>
|
||||||
|
<dd><input id="captcha_turnstile_sitekey" name="captcha_turnstile_sitekey" value="{{ CAPTCHA_TURNSTILE_SITEKEY }}" size="50" type="text" /></dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
<label for="captcha_turnstile_secret">{{ lang('CAPTCHA_TURNSTILE_SECRET') ~ lang('COLON') }}</label><br>
|
||||||
|
<span>{{ lang('CAPTCHA_TURNSTILE_SECRET_EXPLAIN') }}</span>
|
||||||
|
</dt>
|
||||||
|
<dd><input id="captcha_turnstile_secret" name="captcha_turnstile_secret" value="{{ CAPTCHA_TURNSTILE_SECRET }}" size="50" type="text" /></dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
<label>{{ lang('CAPTCHA_TURNSTILE_THEME') ~ lang('COLON') }}</label>
|
||||||
|
<br><span>{{ lang('CAPTCHA_TURNSTILE_THEME_EXPLAIN') }}</span>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
{% for theme in CAPTCHA_TURNSTILE_THEMES %}
|
||||||
|
<label>
|
||||||
|
<input class="radio" name="captcha_turnstile_theme" type="radio" value="{{ theme }}"{{ theme == CAPTCHA_TURNSTILE_THEME ? ' checked' }}>
|
||||||
|
<span>{{ lang('CAPTCHA_TURNSTILE_THEME_' ~ theme|upper) }}</span>
|
||||||
|
</label>
|
||||||
|
{% endfor %}
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset>
|
||||||
|
<legend>{{ lang('PREVIEW') }}</legend>
|
||||||
|
{% if PREVIEW %}
|
||||||
|
<div class="successbox">
|
||||||
|
<h3>{{ lang('WARNING') }}</h3>
|
||||||
|
<p>{{ lang('CAPTCHA_PREVIEW_MSG') }}</p>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% include(CAPTCHA_PREVIEW) %}
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<legend>{{ lang('ACP_SUBMIT_CHANGES') }}</legend>
|
||||||
|
<p class="submit-buttons">
|
||||||
|
<input class="button1" type="submit" id="submit" name="submit" value="{{ lang('SUBMIT') }}" />
|
||||||
|
<input class="button2" type="reset" id="reset" name="reset" value="{{ lang('RESET') }}" />
|
||||||
|
</p>
|
||||||
|
<input type="hidden" name="select_captcha" value="{{ CAPTCHA_NAME }}" />
|
||||||
|
<input type="hidden" name="configure" value="1" />
|
||||||
|
{{ S_FORM_TOKEN }}
|
||||||
|
</fieldset>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
{% include('overall_footer.html') %}
|
23
phpBB/adm/style/captcha_turnstile_acp_demo.html
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
<dl>
|
||||||
|
<dt><div id="captcha_turnstile" data-language="{{ lang('TURNSTILE_LANG') }}"{% if TURNSTILE_THEME %} data-theme="{{ TURNSTILE_THEME }}"{% endif %}></div></dt>
|
||||||
|
</dl>
|
||||||
|
{% INCLUDEJS U_TURNSTILE_SCRIPT %}
|
||||||
|
<script>
|
||||||
|
function domReady(callBack) {
|
||||||
|
if (document.readyState === 'loading') {
|
||||||
|
document.addEventListener('DOMContentLoaded', callBack);
|
||||||
|
} else {
|
||||||
|
callBack();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
domReady(() => {
|
||||||
|
/* global turnstile */
|
||||||
|
console.debug('_turnstileCb called');
|
||||||
|
|
||||||
|
turnstile.render('#captcha_turnstile', {
|
||||||
|
sitekey: '1x00000000000000000000AA',
|
||||||
|
theme: 'light',
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
|
@ -605,6 +605,8 @@
|
||||||
function interceptFormSubmit($form) {
|
function interceptFormSubmit($form) {
|
||||||
if (!$form.length) {
|
if (!$form.length) {
|
||||||
return;
|
return;
|
||||||
|
} else if ($form.find('input[name="admin_name"]').length > 0) {
|
||||||
|
setAdminTimezone($form);
|
||||||
}
|
}
|
||||||
|
|
||||||
$form.find(':submit').bind('click', function (event) {
|
$form.find(':submit').bind('click', function (event) {
|
||||||
|
@ -612,4 +614,20 @@
|
||||||
submitForm($form, $(this));
|
submitForm($form, $(this));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set admin timezone in form
|
||||||
|
*
|
||||||
|
* @param $form
|
||||||
|
*/
|
||||||
|
function setAdminTimezone($form) {
|
||||||
|
// Set admin timezone if it does not exist yet
|
||||||
|
if ($form.find('input[name="admin_timezone"]').length === 0) {
|
||||||
|
const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
||||||
|
|
||||||
|
// Add timezone as form entry
|
||||||
|
const timezoneEntry = $('<input type="hidden" name="admin_timezone" value="' + timeZone + '">');
|
||||||
|
$form.append(timezoneEntry);
|
||||||
|
}
|
||||||
|
}
|
||||||
})(jQuery); // Avoid conflicts with other libraries
|
})(jQuery); // Avoid conflicts with other libraries
|
||||||
|
|
|
@ -51,7 +51,7 @@ function PhpbbWebpush() {
|
||||||
|
|
||||||
// Service workers are only supported in secure context
|
// Service workers are only supported in secure context
|
||||||
if (window.isSecureContext !== true) {
|
if (window.isSecureContext !== true) {
|
||||||
subscribeButton.disabled = true;
|
setDisabledState();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,13 +66,33 @@ function PhpbbWebpush() {
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
console.info(error);
|
console.info(error);
|
||||||
// Service worker could not be registered
|
// Service worker could not be registered
|
||||||
subscribeButton.disabled = true;
|
setDisabledState();
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
subscribeButton.disabled = true;
|
setDisabledState();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disable subscribing buttons, update subscribe button text and hide dropdown toggle
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function setDisabledState() {
|
||||||
|
subscribeButton.disabled = true;
|
||||||
|
|
||||||
|
const notificationList = document.getElementById('notification-menu');
|
||||||
|
const subscribeToggle = notificationList.querySelector('.webpush-subscribe');
|
||||||
|
|
||||||
|
if (subscribeToggle) {
|
||||||
|
subscribeToggle.style.display = 'none';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (subscribeButton.type === 'submit' || subscribeButton.classList.contains('button')) {
|
||||||
|
subscribeButton.value = subscribeButton.getAttribute('data-disabled-msg');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update button state depending on notifications state
|
* Update button state depending on notifications state
|
||||||
*
|
*
|
||||||
|
@ -150,6 +170,7 @@ function PhpbbWebpush() {
|
||||||
// Prevent the user from clicking the subscribe button multiple times.
|
// Prevent the user from clicking the subscribe button multiple times.
|
||||||
const result = await Notification.requestPermission();
|
const result = await Notification.requestPermission();
|
||||||
if (result === 'denied') {
|
if (result === 'denied') {
|
||||||
|
phpbb.alert(subscribeButton.getAttribute('data-l-err'), subscribeButton.getAttribute('data-l-msg'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@
|
||||||
"symfony/routing": "^6.3",
|
"symfony/routing": "^6.3",
|
||||||
"symfony/twig-bridge": "^6.3",
|
"symfony/twig-bridge": "^6.3",
|
||||||
"symfony/yaml": "^6.3",
|
"symfony/yaml": "^6.3",
|
||||||
"twig/twig": "3.8.0"
|
"twig/twig": "^3.14"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"laravel/homestead": "~14.4",
|
"laravel/homestead": "~14.4",
|
||||||
|
@ -73,9 +73,6 @@
|
||||||
"vimeo/psalm": "^5.18.0",
|
"vimeo/psalm": "^5.18.0",
|
||||||
"psalm/plugin-symfony": "^v5.1.0"
|
"psalm/plugin-symfony": "^v5.1.0"
|
||||||
},
|
},
|
||||||
"suggest": {
|
|
||||||
"ext-mbstring": "Better performance in search"
|
|
||||||
},
|
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "4.0.x-dev"
|
"dev-master": "4.0.x-dev"
|
||||||
|
|
1072
phpBB/composer.lock
generated
|
@ -157,6 +157,15 @@ services:
|
||||||
- '%core.php_ext%'
|
- '%core.php_ext%'
|
||||||
- '%tables.log%'
|
- '%tables.log%'
|
||||||
|
|
||||||
|
manifest.controller:
|
||||||
|
class: phpbb\manifest
|
||||||
|
arguments:
|
||||||
|
- '@config'
|
||||||
|
- '@language'
|
||||||
|
- '@path_helper'
|
||||||
|
- '@event_dispatcher'
|
||||||
|
- '@user'
|
||||||
|
|
||||||
path_helper:
|
path_helper:
|
||||||
class: phpbb\path_helper
|
class: phpbb\path_helper
|
||||||
arguments:
|
arguments:
|
||||||
|
|
|
@ -19,7 +19,11 @@ services:
|
||||||
shared: false
|
shared: false
|
||||||
arguments:
|
arguments:
|
||||||
- '@config'
|
- '@config'
|
||||||
|
- '@dbal.conn'
|
||||||
|
- '@language'
|
||||||
|
- '@request'
|
||||||
- '@template'
|
- '@template'
|
||||||
|
- '@user'
|
||||||
- '%core.root_path%'
|
- '%core.root_path%'
|
||||||
- '%core.php_ext%'
|
- '%core.php_ext%'
|
||||||
calls:
|
calls:
|
||||||
|
@ -54,3 +58,19 @@ services:
|
||||||
- ['set_name', ['core.captcha.plugins.recaptcha_v3']]
|
- ['set_name', ['core.captcha.plugins.recaptcha_v3']]
|
||||||
tags:
|
tags:
|
||||||
- { name: captcha.plugins }
|
- { name: captcha.plugins }
|
||||||
|
|
||||||
|
core.captcha.plugins.turnstile:
|
||||||
|
class: phpbb\captcha\plugins\turnstile
|
||||||
|
shared: false
|
||||||
|
arguments:
|
||||||
|
- '@config'
|
||||||
|
- '@dbal.conn'
|
||||||
|
- '@language'
|
||||||
|
- '@log'
|
||||||
|
- '@request'
|
||||||
|
- '@template'
|
||||||
|
- '@user'
|
||||||
|
calls:
|
||||||
|
- ['set_name', ['core.captcha.plugins.turnstile']]
|
||||||
|
tags:
|
||||||
|
- { name: captcha.plugins }
|
||||||
|
|
|
@ -359,6 +359,22 @@ services:
|
||||||
tags:
|
tags:
|
||||||
- { name: console.command }
|
- { name: console.command }
|
||||||
|
|
||||||
|
console.command.user.delete_id:
|
||||||
|
class: phpbb\console\command\user\delete_id
|
||||||
|
arguments:
|
||||||
|
- '@dbal.conn'
|
||||||
|
- '@language'
|
||||||
|
- '@log'
|
||||||
|
- '@user'
|
||||||
|
- '@user_loader'
|
||||||
|
- '%tables.bots%'
|
||||||
|
- '%tables.user_group%'
|
||||||
|
- '%tables.users%'
|
||||||
|
- '%core.root_path%'
|
||||||
|
- '%core.php_ext%'
|
||||||
|
tags:
|
||||||
|
- { name: console.command }
|
||||||
|
|
||||||
console.command.user.reclean:
|
console.command.user.reclean:
|
||||||
class: phpbb\console\command\user\reclean
|
class: phpbb\console\command\user\reclean
|
||||||
arguments:
|
arguments:
|
||||||
|
|
|
@ -70,8 +70,6 @@ services:
|
||||||
shared: false
|
shared: false
|
||||||
arguments:
|
arguments:
|
||||||
- '@filesystem'
|
- '@filesystem'
|
||||||
- '@upload_imagesize'
|
|
||||||
- '@mimetype.guesser'
|
|
||||||
- '%core.root_path%'
|
- '%core.root_path%'
|
||||||
tags:
|
tags:
|
||||||
- { name: storage.adapter }
|
- { name: storage.adapter }
|
||||||
|
@ -90,6 +88,7 @@ services:
|
||||||
- '@cache'
|
- '@cache'
|
||||||
- '@config'
|
- '@config'
|
||||||
- '@dbal.conn'
|
- '@dbal.conn'
|
||||||
|
- '@mimetype.extension_guesser'
|
||||||
- '@storage.avatar'
|
- '@storage.avatar'
|
||||||
- '@symfony_request'
|
- '@symfony_request'
|
||||||
|
|
||||||
|
@ -102,6 +101,7 @@ services:
|
||||||
- '@content.visibility'
|
- '@content.visibility'
|
||||||
- '@dbal.conn'
|
- '@dbal.conn'
|
||||||
- '@event_dispatcher'
|
- '@event_dispatcher'
|
||||||
|
- '@mimetype.extension_guesser'
|
||||||
- '@language'
|
- '@language'
|
||||||
- '@request'
|
- '@request'
|
||||||
- '@storage.attachment'
|
- '@storage.attachment'
|
||||||
|
|
|
@ -1,4 +1,15 @@
|
||||||
services:
|
services:
|
||||||
|
phpbb.ucp.controller.delete_cookies:
|
||||||
|
class: phpbb\ucp\controller\delete_cookies
|
||||||
|
arguments:
|
||||||
|
- '@config'
|
||||||
|
- '@dispatcher'
|
||||||
|
- '@language'
|
||||||
|
- '@request'
|
||||||
|
- '@user'
|
||||||
|
- '%core.root_path%'
|
||||||
|
- '%core.php_ext%'
|
||||||
|
|
||||||
phpbb.ucp.controller.reset_password:
|
phpbb.ucp.controller.reset_password:
|
||||||
class: phpbb\ucp\controller\reset_password
|
class: phpbb\ucp\controller\reset_password
|
||||||
arguments:
|
arguments:
|
||||||
|
@ -23,8 +34,11 @@ services:
|
||||||
- '@controller.helper'
|
- '@controller.helper'
|
||||||
- '@dbal.conn'
|
- '@dbal.conn'
|
||||||
- '@form_helper'
|
- '@form_helper'
|
||||||
|
- '@language'
|
||||||
|
- '@notification_manager'
|
||||||
- '@path_helper'
|
- '@path_helper'
|
||||||
- '@request'
|
- '@request'
|
||||||
|
- '@user_loader'
|
||||||
- '@user'
|
- '@user'
|
||||||
- '@template.twig.environment'
|
- '@template.twig.environment'
|
||||||
- '%tables.notification_push%'
|
- '%tables.notification_push%'
|
||||||
|
|
|
@ -24,6 +24,10 @@ phpbb_help_routing:
|
||||||
resource: help.yml
|
resource: help.yml
|
||||||
prefix: /help
|
prefix: /help
|
||||||
|
|
||||||
|
phpbb_manifest_controller:
|
||||||
|
path: /manifest
|
||||||
|
defaults: { _controller: manifest.controller:handle }
|
||||||
|
|
||||||
phpbb_mention_controller:
|
phpbb_mention_controller:
|
||||||
path: /mention
|
path: /mention
|
||||||
methods: [GET, POST]
|
methods: [GET, POST]
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
phpbb_ucp_delete_cookies_controller:
|
||||||
|
path: /delete_cookies
|
||||||
|
defaults: { _controller: phpbb.ucp.controller.delete_cookies:handle }
|
||||||
|
|
||||||
phpbb_ucp_reset_password_controller:
|
phpbb_ucp_reset_password_controller:
|
||||||
path: /reset_password
|
path: /reset_password
|
||||||
defaults: { _controller: phpbb.ucp.controller.reset_password:reset }
|
defaults: { _controller: phpbb.ucp.controller.reset_password:reset }
|
||||||
|
|
|
@ -50,6 +50,10 @@
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="#changelog">Changelog</a>
|
<li><a href="#changelog">Changelog</a>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li><a href="#v3314rc1">Changes since 3.3.14-RC1</a></li>
|
||||||
|
<li><a href="#v3313">Changes since 3.3.13</a></li>
|
||||||
|
<li><a href="#v3313rc1">Changes since 3.3.13-RC1</a></li>
|
||||||
|
<li><a href="#v3312">Changes since 3.3.12</a></li>
|
||||||
<li><a href="#v3312rc1">Changes since 3.3.12-RC1</a></li>
|
<li><a href="#v3312rc1">Changes since 3.3.12-RC1</a></li>
|
||||||
<li><a href="#v3311">Changes since 3.3.11</a></li>
|
<li><a href="#v3311">Changes since 3.3.11</a></li>
|
||||||
<li><a href="#v3310">Changes since 3.3.10</a></li>
|
<li><a href="#v3310">Changes since 3.3.10</a></li>
|
||||||
|
@ -169,6 +173,97 @@
|
||||||
<div class="inner">
|
<div class="inner">
|
||||||
|
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
<a name="v3314rc1"></a><h3>Changes since 3.3.14-RC1</h3>
|
||||||
|
<h4>Improvement</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17421">PHPBB-17421</a>] - Rename section for not installed extensions to not installed</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<a name="v3313"></a><h3>Changes since 3.3.13</h3>
|
||||||
|
<h4>Bug</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17181">PHPBB-17181</a>] - If statement to highlight Reported PMS on the view message page doesn't work.</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17383">PHPBB-17383</a>] - HELO/EHLO error while using gethostbyaddr()</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17384">PHPBB-17384</a>] - Passing E_USER_ERROR to trigger_error() is deprecated in PHP 8.4</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17385">PHPBB-17385</a>] - Version check without SSL flag for CDB extensions fails</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17386">PHPBB-17386</a>] - Incorrect trace result while tracing user-based permissions</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17387">PHPBB-17387</a>] - PHP warnings in search results</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17390">PHPBB-17390</a>] - Missing buttons for approval of new messages</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17391">PHPBB-17391</a>] - PHP warnings on attempt to create user group having name already in use</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17398">PHPBB-17398</a>] - Ajax error on deleting cookies</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17405">PHPBB-17405</a>] - Function phpbb_gmgetdate() returns incorrect result for edge cases</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17410">PHPBB-17410</a>] - UCP tabs do not work when testing out another user's permissions</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Improvement</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-16852">PHPBB-16852</a>] - Addition of a new PHP event concerning bump topics</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17359">PHPBB-17359</a>] - Distinct disabled and not installed extensions in the list</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17376">PHPBB-17376</a>] - Link reference to quote post is a poor accessibility experience</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17382">PHPBB-17382</a>] - Incorrect grammar on FAQ page regarding searching for members</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17388">PHPBB-17388</a>] - Add php event to bump_topic_allowed function</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17394">PHPBB-17394</a>] - Check mergeability of PR on GitHub Actions</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17396">PHPBB-17396</a>] - Automatically handle merges of 3.3.x into master</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17397">PHPBB-17397</a>] - Add event for forum_data query in viewforum</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17402">PHPBB-17402</a>] - Add possibility to force reparsing BBCode via CLI</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17407">PHPBB-17407</a>] - Limit mergeability check to single comment</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17411">PHPBB-17411</a>] - Add core event to search.php</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<a name="v3313rc1"></a><h3>Changes since 3.3.13-RC1</h3>
|
||||||
|
<h4>Bug</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17377">PHPBB-17377</a>] - MSSQL builds on GitHub actions broken</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<a name="v3312"></a><h3>Changes since 3.3.12</h3>
|
||||||
|
<h4>Bug</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-13916">PHPBB-13916</a>] - Cancelling save draft removes previous notify setting on posting page</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-14454">PHPBB-14454</a>] - Accessing ACP modules while testing user permissions returns a General Error</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-15043">PHPBB-15043</a>] - Searching no longer working in 3.2.0</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-15576">PHPBB-15576</a>] - PM subject truncated to shorter length than maxlength</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-16213">PHPBB-16213</a>] - vendor and phpbb folders should have .htaccess files</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-16907">PHPBB-16907</a>] - "phpbb" value in "hiddenSegments" blocks client requests for extensions in IIS</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17109">PHPBB-17109</a>] - Users without the "Can use signature" permission should not see checkboxes for signature</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17175">PHPBB-17175</a>] - Breadcrumbs show wrong forum and topic when using 'email topic'</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17301">PHPBB-17301</a>] - Wrong length parameter for fread in phpbb/cache/driver/file.php can lead to unusable forum</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17327">PHPBB-17327</a>] - Fix linting issue in console user add command</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17332">PHPBB-17332</a>] - New permission copied from existing permission ignores permission set options</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17337">PHPBB-17337</a>] - Transaction begin is missing from mysqli driver </li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17338">PHPBB-17338</a>] - Incorrect members list sorting by user_last_visit</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17351">PHPBB-17351</a>] - phpBB2 password hashes incorrectly handled during rehash cron</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17352">PHPBB-17352</a>] - Long rank titles push other profile details below</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17353">PHPBB-17353</a>] - Gravatar avatar src is not image src</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17356">PHPBB-17356</a>] - Errors hidden by at are being displayed in PHP 8 or newer</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17358">PHPBB-17358</a>] - Redis cache never expires with the TTL of 0</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17362">PHPBB-17362</a>] - Missing declaration of property in extension manager</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17365">PHPBB-17365</a>] - Enforce the search word limit on queries containing operators without white space</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17366">PHPBB-17366</a>] - Captcha disappears on error message from registration & posting</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17369">PHPBB-17369</a>] - Permanently deleting soft-deleted topics returns incorrect forum in redirect link</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17370">PHPBB-17370</a>] - Deleting Cookies on FAQ/other pages</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17374">PHPBB-17374</a>] - ACP - Maintenance - Logs: Deleting Error / Bug</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17375">PHPBB-17375</a>] - User lastvisit gets updated too often in session garbage collection</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Improvement</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-16553">PHPBB-16553</a>] - Disapproving a reported post causes a "Module not accessible" error</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17308">PHPBB-17308</a>] - Rename tracker project key to PHPBB-</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17315">PHPBB-17315</a>] - Add new template events to group</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17316">PHPBB-17316</a>] - Add template events to ucp_groups_manage</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17317">PHPBB-17317</a>] - Update button text and make it more readable</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17325">PHPBB-17325</a>] - Show explicit message for "Re-Check version" if installed version is still up to date</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17340">PHPBB-17340</a>] - Update composer to 2.7.7</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17342">PHPBB-17342</a>] - Add PHP 8.4-dev tests to GitHub Actions</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17347">PHPBB-17347</a>] - Support deleting users by ID via console</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17350">PHPBB-17350</a>] - Add user IP address to log when installing extensions on fresh installs</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17355">PHPBB-17355</a>] - Update gravatar hash to sha256</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Task</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-13933">PHPBB-13933</a>] - Update tokens' definitions in acp_bbcodes</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-16890">PHPBB-16890</a>] - Edit the config sample files and web.config to deny access to the "config" directory</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<a name="v3312rc1"></a><h3>Changes since 3.3.12-RC1</h3>
|
<a name="v3312rc1"></a><h3>Changes since 3.3.12-RC1</h3>
|
||||||
<h4>Bug</h4>
|
<h4>Bug</h4>
|
||||||
<ul>
|
<ul>
|
||||||
|
|
|
@ -106,5 +106,4 @@ MIT licensed:
|
||||||
Symfony2 (c) 2004-2011 Fabien Potencier, https://symfony.com/
|
Symfony2 (c) 2004-2011 Fabien Potencier, https://symfony.com/
|
||||||
Cookie Consent (c) 2015 Silktide Ltd, https://cookieconsent.insites.com
|
Cookie Consent (c) 2015 Silktide Ltd, https://cookieconsent.insites.com
|
||||||
|
|
||||||
Emoji by:
|
HiDPI smilies by rednoah: https://github.com/rednoah/phpBB-smilies
|
||||||
Twemoji (c) 2018 Twitter, Inc, https://twemoji.twitter.com/
|
|
||||||
|
|
|
@ -94,6 +94,20 @@ acp_ext_list_enabled_title_after
|
||||||
* Since: 3.1.11-RC1
|
* Since: 3.1.11-RC1
|
||||||
* Purpose: Add text after enabled extensions section title.
|
* Purpose: Add text after enabled extensions section title.
|
||||||
|
|
||||||
|
acp_ext_list_not_installed_name_after
|
||||||
|
===
|
||||||
|
* Location: adm/style/acp_ext_list.html
|
||||||
|
* Since: 3.3.14-RC1
|
||||||
|
* Changed: 3.3.14 Renamed from acp_ext_list_available_name_after
|
||||||
|
* Purpose: Add content after the name of not installed extensions in the list
|
||||||
|
|
||||||
|
acp_ext_list_not_installed_title_after
|
||||||
|
===
|
||||||
|
* Location: adm/style/acp_ext_list.html
|
||||||
|
* Since: 3.3.14-RC1
|
||||||
|
* Changed: 3.3.14 Renamed from acp_ext_list_available_title_after
|
||||||
|
* Purpose: Add text after not installed extensions section title.
|
||||||
|
|
||||||
acp_forums_custom_settings
|
acp_forums_custom_settings
|
||||||
===
|
===
|
||||||
* Location: adm/style/acp_forums.html
|
* Location: adm/style/acp_forums.html
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# Sample lighttpd configuration file for phpBB.
|
# Sample lighttpd configuration file for phpBB.
|
||||||
# Global settings have been removed, copy them
|
# Global settings have been removed, copy them
|
||||||
# from your system's lighttpd.conf.
|
# from your system's lighttpd.conf.
|
||||||
# Tested with lighttpd 1.4.35
|
# Tested with lighttpd 1.4.36
|
||||||
|
|
||||||
# Load moules
|
# Load moules
|
||||||
server.modules += (
|
server.modules += (
|
||||||
|
@ -28,7 +28,7 @@ $HTTP["host"] == "www.myforums.com" {
|
||||||
accesslog.filename = "/var/log/lighttpd/access-www.myforums.com.log"
|
accesslog.filename = "/var/log/lighttpd/access-www.myforums.com.log"
|
||||||
|
|
||||||
# Deny access to internal phpbb files.
|
# Deny access to internal phpbb files.
|
||||||
$HTTP["url"] =~ "^/(config\.php|common\.php|cache|files|images/avatars/upload|includes|phpbb|store|vendor)" {
|
$HTTP["url"] =~ "^/(config|common\.php|cache|files|images/avatars/upload|includes|phpbb|store|vendor|vendor-ext)" {
|
||||||
url.access-deny = ( "" )
|
url.access-deny = ( "" )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,7 +47,8 @@ $HTTP["host"] == "www.myforums.com" {
|
||||||
# by default accessed at /app.php/my/controller, but can also be accessed at
|
# by default accessed at /app.php/my/controller, but can also be accessed at
|
||||||
# /my/controller
|
# /my/controller
|
||||||
url.rewrite-if-not-file = (
|
url.rewrite-if-not-file = (
|
||||||
"^/(.*)$" => "/app.php/$1"
|
"^/install/(.*)$" => "/install/app.php/$1",
|
||||||
|
"^/(.*)$" => "/app.php/$1"
|
||||||
)
|
)
|
||||||
|
|
||||||
fastcgi.server = ( ".php" =>
|
fastcgi.server = ( ".php" =>
|
||||||
|
|
|
@ -55,7 +55,7 @@ server {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Deny access to internal phpbb files.
|
# Deny access to internal phpbb files.
|
||||||
location ~ /(config\.php|common\.php|cache|files|images/avatars/upload|includes|(?<!ext/)phpbb(?!\w+)|store|vendor) {
|
location ~ /(config|common\.php|cache|files|images/avatars/upload|includes|(?<!ext/)phpbb(?!\w+)|store|vendor|vendor-ext) {
|
||||||
deny all;
|
deny all;
|
||||||
# deny was ignored before 0.8.40 for connections over IPv6.
|
# deny was ignored before 0.8.40 for connections over IPv6.
|
||||||
# Use internal directive to prohibit access on older versions.
|
# Use internal directive to prohibit access on older versions.
|
||||||
|
@ -92,4 +92,10 @@ server {
|
||||||
deny all;
|
deny all;
|
||||||
internal;
|
internal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Deny access to apache configuration files.
|
||||||
|
location ~ /\.htaccess|/\.htpasswd|/\.htgroups {
|
||||||
|
deny all;
|
||||||
|
internal;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
36
phpBB/images/icons/misc/fire.svg
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg id="Ebene_2" data-name="Ebene 2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 73.75 92.51">
|
||||||
|
<defs>
|
||||||
|
<style>
|
||||||
|
.cls-1 {
|
||||||
|
fill: #d3575d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-1, .cls-2 {
|
||||||
|
stroke-width: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-2 {
|
||||||
|
fill: url(#Neues_Verlaufsfeld_1);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<linearGradient id="Neues_Verlaufsfeld_1" data-name="Neues Verlaufsfeld 1" x1="36.87" y1="2" x2="36.87" y2="90.51" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop offset="0" stop-color="#fdf4dc"/>
|
||||||
|
<stop offset=".03" stop-color="#fdf1d3"/>
|
||||||
|
<stop offset=".11" stop-color="#fdebc1"/>
|
||||||
|
<stop offset=".19" stop-color="#fde8b5"/>
|
||||||
|
<stop offset=".28" stop-color="#fee7b2"/>
|
||||||
|
<stop offset=".67" stop-color="#fed36d"/>
|
||||||
|
<stop offset=".89" stop-color="#ffc232"/>
|
||||||
|
<stop offset="1" stop-color="#e5832c"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g id="Layer_1" data-name="Layer 1">
|
||||||
|
<g id="Fire">
|
||||||
|
<g>
|
||||||
|
<path class="cls-2" d="m31.52,2.02c-.34.31,4.05,4.97,4.5,11.33.46,6.46-5.95,9.98-15.32,19-9.54,9.18-9.98,10.45-14.01,17.17-2.05,3.42-4.96,8.42-4.67,15.17.31,7.07,3.96,11.98,5.83,14.5,5.99,8.07,14.53,11.79,15,11.17.42-.56-4.79-3.78-7.65-11.17-4.2-10.82,3.07-21.76,4.04-23.17,4.04-5.88,8.57-10.24,9.45-9.5.68.58-2.19,3.41-2.83,8.5-.68,5.32,1.22,12.05,5,13.33,2.64.9,3.79-1.68,8.5-2.17,4.55-.47,10.46,1.22,12.83,5,3.59,5.73-6.73,17.99-4.83,19.23,1.93,1.27,14.39-10,19.33-19.4,2.62-4.98,6.94-13.2,4.17-21.17-2.13-6.14-6.61-6.8-7.67-13.33-1.04-6.42,2.45-10.91,1.17-11.67-1.41-.83-7.37,3.52-9.17,9.83-1.74,6.12,1.75,9.51-.83,13-2.04,2.76-6.43,3.67-10,2.67-2.94-.83-6.33-3.24-6.83-6.5-.47-3.05,1.96-4.5,5.5-11.17,2-3.76,3.26-6.15,3.67-8.5,1.86-10.9-14.59-22.7-15.17-22.17Z"/>
|
||||||
|
<path class="cls-1" d="m47.74,92.51c-.67,0-1.16-.21-1.48-.42-2.23-1.46-.85-4.16,1.05-7.9,1.91-3.73,4.79-9.38,3.18-11.95-1.92-3.05-7.06-4.47-10.94-4.07-1.89.19-3.06.77-4.18,1.33-1.41.69-3,1.48-5.17.75-4.92-1.67-7.12-9.34-6.34-15.48.09-.72.22-1.4.38-2.04-1.05,1.25-2.2,2.73-3.36,4.42-1.29,1.88-7.54,11.74-3.82,21.31,1.8,4.64,4.63,7.53,6.15,9.09,1.07,1.09,2.4,2.45,1.23,4-.24.32-.8.87-1.82.87h0c-2.23,0-10.48-4.11-16.38-12.04-1.91-2.57-5.89-7.93-6.23-15.61-.33-7.48,2.98-12.99,4.95-16.28l.81-1.35c3.35-5.62,4.48-7.52,13.53-16.23,2.28-2.2,4.39-4.07,6.25-5.72,6.06-5.39,8.73-7.93,8.46-11.69-.29-4.09-2.5-7.54-3.56-9.19-.69-1.07-1.63-2.54-.29-3.76h0c1.15-1.05,2.54-.29,2.99-.05,3.95,2.16,17.34,13.19,15.49,24.02-.46,2.67-1.82,5.23-3.87,9.1-1.36,2.56-2.54,4.34-3.49,5.78-1.5,2.27-1.97,3.04-1.8,4.14.35,2.28,3.04,4.22,5.4,4.88,2.99.84,6.43,0,7.85-1.93.8-1.08.67-2.13.33-4.22-.34-2.12-.77-4.75.19-8.13,1.64-5.79,6.23-9.93,8.97-11.03,1.23-.49,2.28-.49,3.14.02,1.89,1.12,1.25,3.21.69,5.06-.6,1.99-1.43,4.72-.9,8.01.48,3,1.76,4.45,3.37,6.29,1.46,1.66,3.11,3.54,4.21,6.7,3.05,8.79-1.54,17.53-4.28,22.75-4.5,8.56-15.46,19.32-19.79,20.44-.34.09-.65.12-.93.12Zm-6.85-28.41c4.83,0,10.43,1.93,12.99,6.01,2.82,4.49-.55,11.08-3.01,15.89-.13.25-.26.52-.4.79,4.1-3.19,11.05-10.26,14.44-16.72,2.44-4.65,6.53-12.43,4.05-19.58-.84-2.42-2.1-3.86-3.44-5.38-1.71-1.95-3.65-4.16-4.32-8.29-.59-3.66.11-6.69.75-8.88-1.71,1.42-3.92,4-4.85,7.28-.72,2.52-.4,4.5-.09,6.4.38,2.34.77,4.76-1.06,7.24-2.74,3.71-8.19,4.52-12.15,3.4-3.53-.99-7.63-3.96-8.27-8.12-.41-2.68.78-4.47,2.42-6.96.9-1.36,2.02-3.06,3.29-5.45,1.94-3.65,3.11-5.86,3.46-7.9.91-5.36-3.52-11.18-7.6-15.15.45,1.37.79,2.89.9,4.51.42,5.89-3.65,9.5-9.8,14.97-1.83,1.63-3.91,3.47-6.13,5.62-8.67,8.34-9.64,9.98-12.87,15.4l-.81,1.36c-1.85,3.09-4.66,7.77-4.38,14.05.28,6.45,3.64,10.97,5.44,13.39,1.88,2.52,3.97,4.56,5.94,6.14-.74-1.23-1.45-2.64-2.07-4.22-4.44-11.45,2.77-22.85,4.26-25.02.28-.41,6.86-9.94,10.48-10.43.71-.09,1.39.09,1.91.53,1.5,1.27.59,3.03-.08,4.31-.69,1.33-1.73,3.33-2.06,5.97-.61,4.81,1.2,10.35,3.66,11.19.54.19.86.07,2.11-.54,1.24-.61,2.93-1.45,5.54-1.72.56-.06,1.15-.09,1.74-.09Z"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.9 KiB |
31
phpBB/images/icons/misc/heart.svg
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg id="Ebene_2" data-name="Ebene 2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 83.59 73.05">
|
||||||
|
<defs>
|
||||||
|
<style>
|
||||||
|
.cls-1 {
|
||||||
|
fill: none;
|
||||||
|
stroke: #c40007;
|
||||||
|
stroke-linecap: round;
|
||||||
|
stroke-linejoin: round;
|
||||||
|
stroke-width: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-2 {
|
||||||
|
fill: url(#Unbenannter_Verlauf_41);
|
||||||
|
stroke-width: 0px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<linearGradient id="Unbenannter_Verlauf_41" data-name="Unbenannter Verlauf 41" x1="41.8" y1="2" x2="41.8" y2="71.05" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop offset="0" stop-color="#fff"/>
|
||||||
|
<stop offset="1" stop-color="#ecedf0"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g id="Layer_1" data-name="Layer 1">
|
||||||
|
<g id="heart">
|
||||||
|
<g>
|
||||||
|
<path class="cls-2" d="m41.8,71.05c14.96-14.08,38.34-25.92,39.79-49.33-4.09-27.63-30.48-22.93-39.79-6h0C32.48-1.22,6.09-5.92,2,21.72c1.45,23.4,24.84,35.25,39.8,49.33"/>
|
||||||
|
<path class="cls-1" d="m41.8,71.05c14.96-14.08,38.34-25.92,39.79-49.33-4.09-27.63-30.48-22.93-39.79-6h0C32.48-1.22,6.09-5.92,2,21.72c1.45,23.4,24.84,35.25,39.8,49.33"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
30
phpBB/images/icons/misc/radioactive.svg
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg id="Ebene_2" data-name="Ebene 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 83.37 83.37">
|
||||||
|
<defs>
|
||||||
|
<style>
|
||||||
|
.cls-1 {
|
||||||
|
fill: #196db5;
|
||||||
|
stroke-linecap: round;
|
||||||
|
stroke-linejoin: round;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-1, .cls-2 {
|
||||||
|
stroke: #196db5;
|
||||||
|
stroke-width: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-2 {
|
||||||
|
fill: #ecedf0;
|
||||||
|
stroke-miterlimit: 10;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<g id="Layer_1" data-name="Layer 1">
|
||||||
|
<g id="radioactive">
|
||||||
|
<circle class="cls-2" cx="41.69" cy="41.69" r="39.69"/>
|
||||||
|
<path class="cls-1" d="m37.09,32.64l-6.37-14.01h0c-1.8.93-3.47,2.08-4.98,3.4-5.36,4.68-8.75,11.56-8.75,19.23,0,0,14.54,0,14.54,0,0-2.4.89-4.59,2.37-6.26.88-.99,1.96-1.8,3.18-2.36"/>
|
||||||
|
<path class="cls-1" d="m46.95,50.36l8.55,12.8h0c-1.74,1.04-3.6,1.85-5.52,2.44-6.8,2.09-14.43,1.34-20.95-2.71,0,0,7.67-12.35,7.67-12.35,2.04,1.27,4.37,1.66,6.57,1.29,1.31-.22,2.57-.72,3.68-1.46"/>
|
||||||
|
<path class="cls-1" d="m46.28,32.64l6.37-14.01h0c1.8.93,3.47,2.08,4.98,3.4,5.36,4.68,8.75,11.56,8.75,19.23,0,0-14.54,0-14.54,0,0-2.4-.89-4.59-2.37-6.26-.88-.99-1.96-1.8-3.18-2.36"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
19
phpBB/images/icons/misc/star.svg
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg id="Ebene_2" data-name="Ebene 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 86.66 83.37">
|
||||||
|
<defs>
|
||||||
|
<style>
|
||||||
|
.cls-1 {
|
||||||
|
fill: #ecedf0;
|
||||||
|
stroke: #196db5;
|
||||||
|
stroke-linecap: round;
|
||||||
|
stroke-linejoin: round;
|
||||||
|
stroke-width: 4px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<g id="Layer_1" data-name="Layer 1">
|
||||||
|
<g id="star">
|
||||||
|
<polygon class="cls-1" points="43.33 61.61 17.13 81.37 26.28 48.78 2 28.28 30.83 28.28 43.33 2 55.82 28.28 84.66 28.28 60.38 48.78 69.52 81.37 43.33 61.61"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 587 B |
76
phpBB/images/icons/misc/thinking.svg
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg id="Ebene_2" data-name="Ebene 2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 92.62 89.11">
|
||||||
|
<defs>
|
||||||
|
<style>
|
||||||
|
.cls-1 {
|
||||||
|
fill: url(#Unbenannter_Verlauf_13-7);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-1, .cls-2, .cls-3, .cls-4, .cls-5, .cls-6, .cls-7, .cls-8 {
|
||||||
|
stroke: #605a4f;
|
||||||
|
stroke-linecap: round;
|
||||||
|
stroke-linejoin: round;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-1, .cls-4 {
|
||||||
|
stroke-width: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-2 {
|
||||||
|
fill: url(#Unbenannter_Verlauf_13-4);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-2, .cls-3, .cls-5, .cls-6, .cls-8 {
|
||||||
|
stroke-width: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-3 {
|
||||||
|
fill: url(#Unbenannter_Verlauf_13-6);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-4 {
|
||||||
|
fill: url(#Unbenannter_Verlauf_13-8);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-5 {
|
||||||
|
fill: url(#Unbenannter_Verlauf_13-3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-6 {
|
||||||
|
fill: url(#Unbenannter_Verlauf_13-2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-7 {
|
||||||
|
fill: url(#Unbenannter_Verlauf_13);
|
||||||
|
stroke-width: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-8 {
|
||||||
|
fill: url(#Unbenannter_Verlauf_13-5);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<linearGradient id="Unbenannter_Verlauf_13" data-name="Unbenannter Verlauf 13" x1="46.31" y1="22.65" x2="46.31" y2="76.67" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop offset="0" stop-color="#ffb607"/>
|
||||||
|
<stop offset="1" stop-color="#fdda99"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="Unbenannter_Verlauf_13-2" data-name="Unbenannter Verlauf 13" x1="46.48" y1="1" x2="46.48" y2="15.17" gradientTransform="translate(38.05 54.23) scale(1 -1)" xlink:href="#Unbenannter_Verlauf_13"/>
|
||||||
|
<linearGradient id="Unbenannter_Verlauf_13-3" data-name="Unbenannter Verlauf 13" x1="46.48" y1="1" x2="46.48" y2="15.17" xlink:href="#Unbenannter_Verlauf_13"/>
|
||||||
|
<linearGradient id="Unbenannter_Verlauf_13-4" data-name="Unbenannter Verlauf 13" x1="46.48" y1="1" x2="46.48" y2="15.17" gradientTransform="translate(-38.4 54.57) scale(1 -1)" xlink:href="#Unbenannter_Verlauf_13"/>
|
||||||
|
<linearGradient id="Unbenannter_Verlauf_13-5" data-name="Unbenannter Verlauf 13" x1="46.48" y1="1" x2="46.48" y2="15.17" gradientTransform="translate(-27.58 11.58)" xlink:href="#Unbenannter_Verlauf_13"/>
|
||||||
|
<linearGradient id="Unbenannter_Verlauf_13-6" data-name="Unbenannter Verlauf 13" x1="46.48" y1="1" x2="46.48" y2="15.17" gradientTransform="translate(27.24 27.76) scale(1 -1)" xlink:href="#Unbenannter_Verlauf_13"/>
|
||||||
|
<linearGradient id="Unbenannter_Verlauf_13-7" data-name="Unbenannter Verlauf 13" x1="52.5" y1="76.15" x2="40.76" y2="87.45" xlink:href="#Unbenannter_Verlauf_13"/>
|
||||||
|
<linearGradient id="Unbenannter_Verlauf_13-8" data-name="Unbenannter Verlauf 13" x1="51.08" y1="82.31" x2="41.55" y2="91.49" xlink:href="#Unbenannter_Verlauf_13"/>
|
||||||
|
</defs>
|
||||||
|
<g id="Layer_1" data-name="Layer 1">
|
||||||
|
<g id="thinking">
|
||||||
|
<path class="cls-7" d="m30.32,64.76c6.94,5.25,5.92,11.91,5.92,11.91h10.07s10.07,0,10.07,0c0,0-1.02-6.66,5.92-11.91l-.73.63c1.86-1.53,3.49-3.33,4.83-5.34,2.53-3.81,4-8.39,4-13.3,0-13.31-10.79-24.09-24.09-24.09-13.31,0-24.09,10.79-24.09,24.09,0,4.92,1.47,9.49,4,13.3,1.34,2.01,2.97,3.82,4.83,5.34"/>
|
||||||
|
<rect class="cls-6" x="81.7" y="39.05" width="5.67" height="14.17" transform="translate(38.4 130.68) rotate(-90)"/>
|
||||||
|
<rect class="cls-5" x="43.65" y="1" width="5.67" height="14.17"/>
|
||||||
|
<rect class="cls-2" x="5.25" y="39.4" width="5.67" height="14.17" transform="translate(54.57 38.4) rotate(90)"/>
|
||||||
|
<rect class="cls-8" x="16.07" y="12.58" width="5.67" height="14.17" transform="translate(-8.38 19.64) rotate(-46.07)"/>
|
||||||
|
<rect class="cls-3" x="70.89" y="12.58" width="5.67" height="14.17" transform="translate(110.7 86.41) rotate(-133.93)"/>
|
||||||
|
<rect class="cls-1" x="36" y="81.09" width="21.26" height="1.42"/>
|
||||||
|
<rect class="cls-4" x="37.81" y="86.19" width="17.01" height="1.42"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.8 KiB |
32
phpBB/images/icons/smile/alert.svg
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg id="Ebene_2" data-name="Ebene 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 79.24 80.84">
|
||||||
|
<defs>
|
||||||
|
<style>
|
||||||
|
.cls-1, .cls-2 {
|
||||||
|
stroke: #196db5;
|
||||||
|
stroke-linecap: round;
|
||||||
|
stroke-linejoin: round;
|
||||||
|
stroke-width: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-1, .cls-3 {
|
||||||
|
fill: #196db5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-2 {
|
||||||
|
fill: #ecedf0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-3 {
|
||||||
|
stroke-width: 0px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<g id="Layer_1" data-name="Layer 1">
|
||||||
|
<g id="alert">
|
||||||
|
<polygon class="cls-2" points="39.62 78.84 77.24 78.84 39.62 2 2 78.84 39.62 78.84"/>
|
||||||
|
<rect class="cls-1" x="37.32" y="31.89" width="4.25" height="24.09"/>
|
||||||
|
<circle class="cls-3" cx="39.45" cy="66.48" r="4.96"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 791 B |
36
phpBB/images/icons/smile/info.svg
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg id="Ebene_2" data-name="Ebene 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 83.37 83.37">
|
||||||
|
<defs>
|
||||||
|
<style>
|
||||||
|
.cls-1 {
|
||||||
|
stroke-linecap: round;
|
||||||
|
stroke-linejoin: round;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-1, .cls-2 {
|
||||||
|
stroke: #196db5;
|
||||||
|
stroke-width: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-1, .cls-3 {
|
||||||
|
fill: #196db5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-2 {
|
||||||
|
fill: #ecedf0;
|
||||||
|
stroke-miterlimit: 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-3 {
|
||||||
|
stroke-width: 0px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<g id="Layer_1" data-name="Layer 1">
|
||||||
|
<g id="info">
|
||||||
|
<circle class="cls-2" cx="41.69" cy="41.69" r="39.69"/>
|
||||||
|
<rect class="cls-1" x="39.56" y="39.81" width="4.25" height="24.09"/>
|
||||||
|
<circle class="cls-3" cx="41.69" cy="23.69" r="4.96"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 815 B |
39
phpBB/images/icons/smile/mrgreen.svg
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg id="Ebene_2" data-name="Ebene 2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 89.46 92.29">
|
||||||
|
<defs>
|
||||||
|
<style>
|
||||||
|
.cls-1 {
|
||||||
|
fill: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-1, .cls-2, .cls-3 {
|
||||||
|
stroke: #000;
|
||||||
|
stroke-linecap: round;
|
||||||
|
stroke-linejoin: round;
|
||||||
|
stroke-width: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-2 {
|
||||||
|
fill: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-3 {
|
||||||
|
fill: url(#Unbenannter_Verlauf_24);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<linearGradient id="Unbenannter_Verlauf_24" data-name="Unbenannter Verlauf 24" x1="13.66" y1="15.07" x2="75.8" y2="77.22" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop offset="0" stop-color="#9af17d"/>
|
||||||
|
<stop offset="1" stop-color="#559435"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g id="Layer_1" data-name="Layer 1">
|
||||||
|
<g id="mrgreen">
|
||||||
|
<ellipse class="cls-3" cx="44.73" cy="46.15" rx="43.23" ry="44.65"/>
|
||||||
|
<path class="cls-2" d="m19.52,30.72s5.5-9.42,10.5-9.42,11.69,9.42,11.69,9.42"/>
|
||||||
|
<path class="cls-2" d="m69.64,30.72s-5.5-9.42-10.5-9.42-11.69,9.42-11.69,9.42"/>
|
||||||
|
<path class="cls-1" d="m11.52,41.47h68.33s-5.36,19.13-8.33,24.83-11,18.17-25.83,18.17-22.62-11.76-25.33-16.5c-3.67-6.42-8.83-26.5-8.83-26.5"/>
|
||||||
|
<line class="cls-2" x1="56.97" y1="81.63" x2="56.97" y2="41.47"/>
|
||||||
|
<line class="cls-2" x1="32.18" y1="80.24" x2="32.18" y2="41.97"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.4 KiB |
35
phpBB/images/icons/smile/question.svg
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg id="Ebene_2" data-name="Ebene 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 83.37 83.37">
|
||||||
|
<defs>
|
||||||
|
<style>
|
||||||
|
.cls-1 {
|
||||||
|
fill: #ecedf0;
|
||||||
|
stroke-miterlimit: 10;
|
||||||
|
stroke-width: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-1, .cls-2 {
|
||||||
|
stroke: #196db5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-3 {
|
||||||
|
fill: #196db5;
|
||||||
|
stroke-width: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-2 {
|
||||||
|
fill: none;
|
||||||
|
stroke-linecap: round;
|
||||||
|
stroke-linejoin: round;
|
||||||
|
stroke-width: 8px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<g id="Layer_1" data-name="Layer 1">
|
||||||
|
<g id="question">
|
||||||
|
<circle class="cls-1" cx="41.69" cy="41.69" r="39.69"/>
|
||||||
|
<path class="cls-2" d="m26.85,28.87c1.72-6.67,7.87-11.2,14.5-10.83,6.9.38,12.73,5.97,13.17,12.5.31,4.65-2.16,9.14-5.83,11.67-2.85,1.96-5.77,2.28-7.17,2.33v6.17"/>
|
||||||
|
<circle class="cls-3" cx="41.69" cy="63.17" r="4.96"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 927 B |
62
phpBB/images/icons/smile/redface.svg
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg id="Ebene_2" data-name="Ebene 2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 88.04 87.12">
|
||||||
|
<defs>
|
||||||
|
<style>
|
||||||
|
.cls-1, .cls-2 {
|
||||||
|
stroke-width: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-3, .cls-4 {
|
||||||
|
fill: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-3, .cls-4, .cls-5 {
|
||||||
|
stroke: #000;
|
||||||
|
stroke-width: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-3, .cls-5 {
|
||||||
|
stroke-miterlimit: 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-2 {
|
||||||
|
fill: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-4 {
|
||||||
|
stroke-linecap: round;
|
||||||
|
stroke-linejoin: round;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<!-- Define the linear (start) gradient -->
|
||||||
|
<linearGradient id="linearGradient" x1="1.5" y1="43.56" x2="86.54" y2="43.56" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop offset="0" stop-color="#ffa49f" id="linearStart" />
|
||||||
|
<stop offset="1" stop-color="#fd5756" id="linearEnd" />
|
||||||
|
</linearGradient>
|
||||||
|
|
||||||
|
<!-- Define the radial gradient -->
|
||||||
|
<radialGradient id="radialGradient" cx="44.02" cy="43.56" fx="44.02" fy="43.56" r="42.29" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop offset="0" stop-color="#fdf504" id="radialStart" />
|
||||||
|
<stop offset="0.71" stop-color="#f8c00c" />
|
||||||
|
<stop offset="1" stop-color="#f8bd0c" id="radialEnd" />
|
||||||
|
</radialGradient>
|
||||||
|
</defs>
|
||||||
|
<g id="Layer_1" data-name="Layer 1">
|
||||||
|
<g id="redface">
|
||||||
|
<!-- <ellipse class="cls-5" cx="44.02" cy="43.56" rx="42.52" ry="42.06"/> -->
|
||||||
|
<!-- Ellipse with linear gradient -->
|
||||||
|
<ellipse class="cls-5" cx="44.02" cy="43.56" rx="42.52" ry="42.06" fill="url(#linearGradient)" opacity="1"/>
|
||||||
|
|
||||||
|
<!-- Ellipse with radial gradient, positioned exactly over the first -->
|
||||||
|
<ellipse class="cls-5" cx="44.02" cy="43.56" rx="42.52" ry="42.06" fill="url(#radialGradient)" opacity="0">
|
||||||
|
<animate attributeName="opacity" values="0;1;1;0" keyTimes="0;0.3;0.7;1" dur="2s" repeatCount="indefinite" />
|
||||||
|
</ellipse>
|
||||||
|
<path class="cls-2" d="m44.02,43.13h18.85c1.56,0,2.82-1.26,2.82-2.82v-8.65s-.37-3.6-2.08-6.08q-3.25-4.71-6.41-5.94c-2.5-.97-13.17-.98-13.17-.98,0,0-10.68.01-13.17.98q-3.17,1.23-6.41,5.94c-1.47,2.13-1.95,5.1-2.06,5.89-.02.13-.02.24-.02.37v8.48c0,1.56,1.26,2.82,2.82,2.82h18.85Z"/>
|
||||||
|
<ellipse class="cls-1" cx="38.06" cy="34.43" rx="4.96" ry="6.57"/>
|
||||||
|
<ellipse class="cls-1" cx="49.98" cy="34.43" rx="4.96" ry="6.57"/>
|
||||||
|
<path class="cls-4" d="m20.35,27.15s3.16-7.94,9.17-9.33"/>
|
||||||
|
<path class="cls-4" d="m67.69,27.15s-3.16-7.94-9.17-9.33"/>
|
||||||
|
<path class="cls-3" d="m56.52,68.49c7.91,0,13.33.12,13.33-12.09"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.5 KiB |
1
phpBB/images/smilies/icon_arrow.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.52 48.19"><defs><style>.cls-1{fill:url(#linear-gradient);}</style><linearGradient id="linear-gradient" x1="8.84" y1="4.55" x2="34.6" y2="41.34" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient></defs><path class="cls-1" d="M41.5,21.09c0,12.88-9.06,26.32-20.24,26.32S1,34,1,21.09,10.08.78,21.26.78,41.5,8.22,41.5,21.09Z"/><path d="M21.26,48.16c-12,0-21-14.29-21-27.07C.27,8.69,8.9,0,21.26,0s21,8.66,21,21.06C42.25,33.87,33.27,48.16,21.26,48.16Zm0-46.63C9.6,1.53,1.77,9.39,1.77,21.09c0,12.07,8.33,25.57,19.49,25.57s19.49-13.5,19.49-25.57C40.75,9.39,32.92,1.53,21.26,1.53Z"/><polyline points="18.24 34.01 24.21 28.32 11.25 28.32 11.25 19.79 24.21 19.79 18.24 14.13 25.42 14.13 35.53 24.09 25.46 34.01 18.24 34.01"/></svg>
|
After Width: | Height: | Size: 927 B |
1
phpBB/images/smilies/icon_cool.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.52 48.19"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:#fff;}</style><linearGradient id="linear-gradient" x1="8.84" y1="4.55" x2="34.6" y2="41.34" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient></defs><path class="cls-1" d="M41.5,21.09c0,12.88-9.06,26.32-20.24,26.32S1,34,1,21.09,10.08.78,21.26.78,41.5,8.22,41.5,21.09Z"/><path d="M21.26,48.16c-12,0-21-14.29-21-27.07C.27,8.69,8.9,0,21.26,0s21,8.66,21,21.06C42.25,33.87,33.27,48.16,21.26,48.16Zm0-46.63C9.6,1.53,1.77,9.39,1.77,21.09c0,12.07,8.33,25.57,19.49,25.57s19.49-13.5,19.49-25.57C40.75,9.39,32.92,1.53,21.26,1.53Z"/><path d="M11.31,32.91c6.18,5.18,13.72,5.21,19.9,0-4.08,7.87-15.8,7.84-19.9,0Z"/><path d="M5,18.65c0,11,16,12.71,14.28,0Z"/><path class="cls-2" d="M19.05,22.9a1.64,1.64,0,1,1-1.64-1.64A1.64,1.64,0,0,1,19.05,22.9Z"/><path d="M23.1,18.65c0,11,16,12.71,14.28,0Z"/><path class="cls-2" d="M37.14,22.9a1.64,1.64,0,1,1-1.64-1.64A1.63,1.63,0,0,1,37.14,22.9Z"/></svg>
|
After Width: | Height: | Size: 1.1 KiB |
1
phpBB/images/smilies/icon_cry.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.52 48.19"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:#fff;}.cls-3{fill:#5c92bd;}</style><linearGradient id="linear-gradient" x1="8.84" y1="4.55" x2="34.6" y2="41.34" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient></defs><path class="cls-1" d="M41.5,21.09c0,12.88-9.06,26.32-20.24,26.32S1,34,1,21.09,10.08.78,21.26.78,41.5,8.22,41.5,21.09Z"/><path d="M21.26,48.16c-12,0-21-14.29-21-27.07C.27,8.69,8.9,0,21.26,0s21,8.66,21,21.06C42.25,33.87,33.27,48.16,21.26,48.16Zm0-46.63C9.6,1.53,1.77,9.39,1.77,21.09c0,12.07,8.33,25.57,19.49,25.57s19.49-13.5,19.49-25.57C40.75,9.39,32.92,1.53,21.26,1.53Z"/><path d="M10.67,39.31c4.1-7.85,15.82-7.87,19.89,0-6.18-5.22-13.72-5.19-19.89,0Z"/><path class="cls-2" d="M19.23,27.71V24.06c0-4-2.95-7.28-6.58-7.28h0C9,16.78,6.07,20,6.07,24.06v3.65"/><path d="M20,27.71h-1.5V24.06c0-3.6-2.62-6.53-5.83-6.53s-5.83,2.93-5.83,6.53v3.65H5.32V24.06c0-4.43,3.29-8,7.33-8s7.33,3.6,7.33,8Z"/><rect x="11.15" y="22.24" width="3" height="4.22"/><rect class="cls-3" x="5.54" y="26.22" width="13.38" height="1.5"/><path d="M20,27.71h-1.5V24.06c0-3.6-2.62-6.53-5.83-6.53s-5.83,2.93-5.83,6.53v3.65H5.32V24.06c0-4.43,3.29-8,7.33-8s7.33,3.6,7.33,8Z"/><path class="cls-2" d="M37,27.71V24.06c0-4-2.94-7.28-6.58-7.28h0c-3.63,0-6.58,3.26-6.58,7.28v3.65"/><path d="M37.73,27.71h-1.5V24.06c0-3.6-2.61-6.53-5.83-6.53s-5.83,2.93-5.83,6.53v3.65h-1.5V24.06c0-4.43,3.29-8,7.33-8s7.33,3.6,7.33,8Z"/><rect x="28.9" y="22.24" width="3" height="4.22"/><rect class="cls-3" x="23.29" y="26.22" width="13.38" height="1.5"/><path d="M37.73,27.71h-1.5V24.06c0-3.6-2.61-6.53-5.83-6.53s-5.83,2.93-5.83,6.53v3.65h-1.5V24.06c0-4.43,3.29-8,7.33-8s7.33,3.6,7.33,8Z"/></svg>
|
After Width: | Height: | Size: 1.8 KiB |
1
phpBB/images/smilies/icon_e_biggrin.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.52 48.19"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:#fff;}</style><linearGradient id="linear-gradient" x1="8.84" y1="4.55" x2="34.6" y2="41.34" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient></defs><path class="cls-1" d="M41.5,21.09c0,12.88-9.06,26.32-20.24,26.32S1,34,1,21.09,10.08.78,21.26.78,41.5,8.22,41.5,21.09Z"/><path d="M21.26,48.16c-12,0-21-14.29-21-27.07C.27,8.69,8.9,0,21.26,0s21,8.66,21,21.06C42.25,33.87,33.27,48.16,21.26,48.16Zm0-46.63C9.6,1.53,1.77,9.39,1.77,21.09c0,12.07,8.33,25.57,19.49,25.57s19.49-13.5,19.49-25.57C40.75,9.39,32.92,1.53,21.26,1.53Z"/><path d="M5.41,19.89c.39-7.56,12.59-6.59,13.91,0l-.19.06c-1.79-4-7-4.72-10.4-2.54A9.54,9.54,0,0,0,5.6,20l-.19-.06Z"/><path d="M36.92,20c-3.43-4.29-10.75-5.62-13.53,0l-.19-.06c1.08-4.77,7.71-6.86,11.65-4.17a5.14,5.14,0,0,1,2.26,4.17l-.19.06Z"/><path class="cls-2" d="M5.5,27.21c4.2,20.91,27.76,20.68,31.52,0Z"/><path d="M21.38,43.56c-6.19,0-14.21-4.23-16.61-16.2l-.19-.9H37.92l-.16.89C36,37.12,29.6,43.48,21.5,43.56ZM6.43,28c2.43,10.39,9.48,14.1,15,14.1h.11C26.91,42,33.89,38.27,36.11,28Z"/></svg>
|
After Width: | Height: | Size: 1.3 KiB |
1
phpBB/images/smilies/icon_e_confused.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.52 48.19"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:#fff;}</style><linearGradient id="linear-gradient" x1="8.84" y1="4.55" x2="34.6" y2="41.34" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient></defs><path class="cls-1" d="M41.5,21.09c0,12.88-9.06,26.32-20.24,26.32S1,34,1,21.09,10.08.78,21.26.78,41.5,8.22,41.5,21.09Z"/><path d="M21.26,48.16c-12,0-21-14.29-21-27.07C.27,8.69,8.9,0,21.26,0s21,8.66,21,21.06C42.25,33.87,33.27,48.16,21.26,48.16Zm0-46.63C9.6,1.53,1.77,9.39,1.77,21.09c0,12.07,8.33,25.57,19.49,25.57s19.49-13.5,19.49-25.57C40.75,9.39,32.92,1.53,21.26,1.53Z"/><circle class="cls-2" cx="10.64" cy="19.69" r="7.35"/><path d="M10.64,27.79a8.1,8.1,0,1,1,8.1-8.1A8.1,8.1,0,0,1,10.64,27.79Zm0-14.7a6.6,6.6,0,1,0,6.6,6.6A6.61,6.61,0,0,0,10.64,13.09Z"/><path d="M18.26,21.52a2.6,2.6,0,1,1-2.6-2.6A2.6,2.6,0,0,1,18.26,21.52Z"/><circle class="cls-2" cx="31.61" cy="19.69" r="7.35"/><path d="M31.61,27.79a8.1,8.1,0,1,1,8.1-8.1A8.1,8.1,0,0,1,31.61,27.79Zm0-14.7a6.6,6.6,0,1,0,6.6,6.6A6.61,6.61,0,0,0,31.61,13.09Z"/><path d="M39.23,21.52a2.6,2.6,0,1,1-2.6-2.6A2.6,2.6,0,0,1,39.23,21.52Z"/><path d="M27.41,40.2a11.18,11.18,0,0,1-5.28-2c-2.56-1.52-4.08-2-5.23-1.6S15,38.12,14.11,40.1l-1.38-.58c1-2.44,2.21-3.81,3.7-4.3,1.88-.62,3.95.25,6.46,1.74,1.84,1.09,3.91,2.13,5.4,1.59a4,4,0,0,0,2.1-2.71l1.42.49c-.68,2-1.66,3.14-3,3.63A4.16,4.16,0,0,1,27.41,40.2Z"/></svg>
|
After Width: | Height: | Size: 1.5 KiB |
1
phpBB/images/smilies/icon_e_geek.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48.19 48.19"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:#cee657;}</style><linearGradient id="linear-gradient" x1="11.67" y1="4.55" x2="37.43" y2="41.34" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient></defs><path class="cls-1" d="M44.33,21.09c0,12.88-9.06,26.32-20.24,26.32S3.85,34,3.85,21.09,12.92.78,24.09.78,44.33,8.22,44.33,21.09Z"/><path d="M24.09,48.16c-12,0-21-14.29-21-27.07C3.1,8.69,11.74,0,24.09,0s21,8.66,21,21.06C45.08,33.87,36.11,48.16,24.09,48.16Zm0-46.63C12.44,1.53,4.6,9.39,4.6,21.09c0,12.07,8.34,25.57,19.49,25.57s19.49-13.5,19.49-25.57C43.58,9.39,35.75,1.53,24.09,1.53Z"/><rect class="cls-2" x="0.85" y="15.53" width="23.24" height="14.28" rx="2.64"/><path d="M21.1,30.66H3.84A3.85,3.85,0,0,1,0,26.81V18.52a3.84,3.84,0,0,1,3.84-3.84H21.1a3.84,3.84,0,0,1,3.84,3.84v8.29A3.85,3.85,0,0,1,21.1,30.66ZM3.84,16.38A2.14,2.14,0,0,0,1.7,18.52v8.29A2.15,2.15,0,0,0,3.84,29H21.1a2.16,2.16,0,0,0,2.15-2.15V18.52a2.15,2.15,0,0,0-2.15-2.14Z"/><rect class="cls-2" x="24.09" y="15.53" width="23.24" height="14.28" rx="2.64"/><path d="M44.34,30.66H27.09a3.85,3.85,0,0,1-3.84-3.85V18.52a3.84,3.84,0,0,1,3.84-3.84H44.34a3.85,3.85,0,0,1,3.85,3.84v8.29A3.86,3.86,0,0,1,44.34,30.66ZM27.09,16.38a2.15,2.15,0,0,0-2.15,2.14v8.29A2.16,2.16,0,0,0,27.09,29H44.34a2.15,2.15,0,0,0,2.15-2.15V18.52a2.14,2.14,0,0,0-2.15-2.14Z"/><path d="M18.17,22.67a3,3,0,1,1-3-3A3,3,0,0,1,18.17,22.67Z"/><path d="M36,22.67a3,3,0,1,1-3-3A3,3,0,0,1,36,22.67Z"/><path d="M19.07,36.71c1.54-.1,3.33,0,4.83,0s3.28-.1,4.84,0a6.85,6.85,0,0,1-9.67,0Z"/></svg>
|
After Width: | Height: | Size: 1.7 KiB |
1
phpBB/images/smilies/icon_e_sad.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.52 48.19"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:#fff;}</style><linearGradient id="linear-gradient" x1="8.84" y1="4.55" x2="34.6" y2="41.34" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient></defs><path class="cls-1" d="M41.5,21.09c0,12.88-9.06,26.32-20.24,26.32S1,34,1,21.09,10.08.78,21.26.78,41.5,8.22,41.5,21.09Z"/><path d="M21.26,48.16c-12,0-21-14.29-21-27.07C.27,8.69,8.9,0,21.26,0s21,8.66,21,21.06C42.25,33.87,33.27,48.16,21.26,48.16Zm0-46.63C9.6,1.53,1.77,9.39,1.77,21.09c0,12.07,8.33,25.57,19.49,25.57s19.49-13.5,19.49-25.57C40.75,9.39,32.92,1.53,21.26,1.53Z"/><path d="M10.67,39.31c4.1-7.85,15.82-7.87,19.89,0-6.18-5.22-13.72-5.19-19.89,0Z"/><path class="cls-2" d="M19.23,27.71V24.06c0-4-2.95-7.28-6.58-7.28h0C9,16.78,6.07,20,6.07,24.06v3.65"/><path d="M20,27.71h-1.5V24.06c0-3.6-2.62-6.53-5.83-6.53s-5.83,2.93-5.83,6.53v3.65H5.32V24.06c0-4.43,3.29-8,7.33-8s7.33,3.6,7.33,8Z"/><rect x="11.15" y="22.24" width="3" height="5.47"/><path class="cls-2" d="M37,27.71V24.06c0-4-2.94-7.28-6.58-7.28h0c-3.63,0-6.58,3.26-6.58,7.28v3.65"/><path d="M37.73,27.71h-1.5V24.06c0-3.6-2.61-6.53-5.83-6.53s-5.83,2.93-5.83,6.53v3.65h-1.5V24.06c0-4.43,3.29-8,7.33-8s7.33,3.6,7.33,8Z"/><rect x="28.9" y="22.24" width="3" height="5.47"/></svg>
|
After Width: | Height: | Size: 1.4 KiB |
1
phpBB/images/smilies/icon_e_smile.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.52 48.19"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:#fff;}</style><linearGradient id="linear-gradient" x1="8.84" y1="4.55" x2="34.6" y2="41.34" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient></defs><path class="cls-1" d="M41.5,21.09c0,12.88-9.06,26.32-20.24,26.32S1,34,1,21.09,10.08.78,21.26.78,41.5,8.22,41.5,21.09Z"/><path d="M21.26,48.16c-12,0-21-14.29-21-27.07C.27,8.69,8.9,0,21.26,0s21,8.66,21,21.06C42.25,33.87,33.27,48.16,21.26,48.16Zm0-46.63C9.6,1.53,1.77,9.39,1.77,21.09c0,12.07,8.33,25.57,19.49,25.57s19.49-13.5,19.49-25.57C40.75,9.39,32.92,1.53,21.26,1.53Z"/><path d="M16,20.87a3.45,3.45,0,1,1-3.45-3.44A3.45,3.45,0,0,1,16,20.87Z"/><path d="M33.46,20.87A3.45,3.45,0,1,1,30,17.43,3.45,3.45,0,0,1,33.46,20.87Z"/><path class="cls-2" d="M8.18,32.28c5.56,12.36,21,12.43,26.16,0A237.8,237.8,0,0,1,8.18,32.28Z"/><path d="M21.43,42.32c-5.9,0-11.22-3.71-13.94-9.73L7,31.46l1.23.07a236.35,236.35,0,0,0,26.08,0l1.19-.07L35,32.57c-2.5,6-7.51,9.67-13.4,9.75Zm-12-9.23C12,38,16.63,40.92,21.61,40.82s9.15-2.93,11.54-7.73A234.78,234.78,0,0,1,9.42,33.09Z"/><path d="M7.22,16.43C7.9,12.93,11.85,10,15.47,11a1,1,0,0,1,.74,1.22c-.43,1.32-2.24.56-3.23.75a7.2,7.2,0,0,0-5.76,3.51Z"/><path d="M35.3,16.43a7.2,7.2,0,0,0-5.76-3.51c-1-.18-3.13.61-3.26-1a1,1,0,0,1,.77-1c3.62-.95,7.57,2,8.25,5.48Z"/></svg>
|
After Width: | Height: | Size: 1.5 KiB |
1
phpBB/images/smilies/icon_e_surprised.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.52 48.19"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:#fff;}</style><linearGradient id="linear-gradient" x1="8.84" y1="4.55" x2="34.6" y2="41.34" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient></defs><path class="cls-1" d="M41.5,21.09c0,12.88-9.06,26.32-20.24,26.32S1,34,1,21.09,10.08.78,21.26.78,41.5,8.22,41.5,21.09Z"/><path d="M21.26,48.16c-12,0-21-14.29-21-27.07C.27,8.69,8.9,0,21.26,0s21,8.66,21,21.06C42.25,33.87,33.27,48.16,21.26,48.16Zm0-46.63C9.6,1.53,1.77,9.39,1.77,21.09c0,12.07,8.33,25.57,19.49,25.57s19.49-13.5,19.49-25.57C40.75,9.39,32.92,1.53,21.26,1.53Z"/><path class="cls-2" d="M19.23,21.05V17.39c0-4-2.95-7.27-6.58-7.27h0c-3.64,0-6.58,3.25-6.58,7.27v3.66"/><path d="M20,21.05h-1.5V17.39c0-3.6-2.62-6.52-5.83-6.52s-5.83,2.92-5.83,6.52v3.66H5.32V17.39c0-4.42,3.29-8,7.33-8S20,13,20,17.39Z"/><rect x="11.15" y="15.58" width="3" height="5.47"/><path class="cls-2" d="M37,21.05V17.39c0-4-2.94-7.27-6.58-7.27h0c-3.63,0-6.58,3.25-6.58,7.27v3.66"/><path d="M37.73,21.05h-1.5V17.39c0-3.6-2.61-6.52-5.83-6.52s-5.83,2.92-5.83,6.52v3.66h-1.5V17.39c0-4.42,3.29-8,7.33-8s7.33,3.6,7.33,8Z"/><rect x="28.9" y="15.58" width="3" height="5.47"/><rect x="17.65" y="27.95" width="8.25" height="11.79"/><rect class="cls-2" x="17.65" y="27.95" width="8.25" height="1.44"/><rect x="17.65" y="27.46" width="8.25" height="0.49"/></svg>
|
After Width: | Height: | Size: 1.5 KiB |
1
phpBB/images/smilies/icon_e_ugeek.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48.19 51.02"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:url(#linear-gradient-2);}.cls-3{fill:url(#linear-gradient-3);}.cls-4{fill:#3a3a3a;}</style><linearGradient id="linear-gradient" x1="11.67" y1="4.51" x2="37.43" y2="41.3" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient><linearGradient id="linear-gradient-2" x1="3.62" y1="28.36" x2="19.48" y2="12.5" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#a1d78d"/><stop offset="0.18" stop-color="#a3da90"/><stop offset="0.31" stop-color="#abe399"/><stop offset="0.43" stop-color="#b7f2a9"/><stop offset="0.49" stop-color="#c1ffb6"/><stop offset="0.5" stop-color="#befbb2"/><stop offset="0.56" stop-color="#b1eba1"/><stop offset="0.63" stop-color="#a8df96"/><stop offset="0.73" stop-color="#a2d98f"/><stop offset="1" stop-color="#a1d78d"/></linearGradient><linearGradient id="linear-gradient-3" x1="27.79" y1="29.28" x2="45.49" y2="11.57" xlink:href="#linear-gradient-2"/></defs><path class="cls-1" d="M44.33,21.06c0,12.88-9.06,26.31-20.24,26.31S3.85,33.94,3.85,21.06,12.92.75,24.09.75,44.33,8.19,44.33,21.06Z"/><path d="M24.09,48.12c-12,0-21-14.28-21-27.06C3.1,8.66,11.74,0,24.09,0s21,8.66,21,21.06C45.08,33.84,36.11,48.12,24.09,48.12Zm0-46.62C12.44,1.5,4.6,9.36,4.6,21.06c0,12.07,8.34,25.56,19.49,25.56S43.58,33.13,43.58,21.06C43.58,9.36,35.75,1.5,24.09,1.5Z"/><path class="cls-2" d="M.85,13.42H17.79a6.3,6.3,0,0,1,6.3,6.3V23a6.3,6.3,0,0,1-6.3,6.3H7.15A6.3,6.3,0,0,1,.85,23V13.42A0,0,0,0,1,.85,13.42Z"/><path d="M17,30.13H8a8,8,0,0,1-8-8V12.57H17a8,8,0,0,1,8,8v1.57A8,8,0,0,1,17,30.13ZM1.7,14.27v7.87A6.29,6.29,0,0,0,8,28.43h9a6.29,6.29,0,0,0,6.29-6.29V20.57A6.3,6.3,0,0,0,17,14.27Z"/><path class="cls-3" d="M30.4,13.42H47.34a0,0,0,0,1,0,0V23a6.3,6.3,0,0,1-6.3,6.3H30.4a6.3,6.3,0,0,1-6.3-6.3V19.72A6.3,6.3,0,0,1,30.4,13.42Z"/><path d="M40.19,30.13H31.24a8,8,0,0,1-8-8V20.57a8,8,0,0,1,8-8h17v9.57A8,8,0,0,1,40.19,30.13ZM31.24,14.27a6.31,6.31,0,0,0-6.3,6.3v1.57a6.3,6.3,0,0,0,6.3,6.29h9a6.3,6.3,0,0,0,6.3-6.29V14.27Z"/><rect x="10.65" y="20.19" width="7.05" height="2.68" rx="1.18"/><rect x="30.48" y="20.19" width="7.05" height="2.68" rx="1.18"/><path d="M27.28,35.8H20.91a1.54,1.54,0,0,1-1.55-1.55h0a1.54,1.54,0,0,1,1.55-1.55h6.37a1.54,1.54,0,0,1,1.55,1.55h0A1.54,1.54,0,0,1,27.28,35.8Z"/><path class="cls-4" d="M28.36,42a1.76,1.76,0,0,0-1.75-1.57h-5A1.75,1.75,0,0,0,19.83,42l-.16,1.46L22,49.9A1.67,1.67,0,0,0,23.57,51h1.05a1.67,1.67,0,0,0,1.59-1.12l2.31-6.44Z"/></svg>
|
After Width: | Height: | Size: 2.6 KiB |
1
phpBB/images/smilies/icon_e_wink.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.52 48.19"><defs><style>.cls-1{fill:url(#linear-gradient);}</style><linearGradient id="linear-gradient" x1="8.84" y1="4.55" x2="34.6" y2="41.34" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient></defs><path class="cls-1" d="M41.5,21.09c0,12.88-9.06,26.32-20.24,26.32S1,34,1,21.09,10.08.78,21.26.78,41.5,8.22,41.5,21.09Z"/><path d="M21.26,48.16c-12,0-21-14.29-21-27.07C.27,8.69,8.9,0,21.26,0s21,8.66,21,21.06C42.25,33.87,33.27,48.16,21.26,48.16Zm0-46.63C9.6,1.53,1.77,9.39,1.77,21.09c0,12.07,8.33,25.57,19.49,25.57s19.49-13.5,19.49-25.57C40.75,9.39,32.92,1.53,21.26,1.53Z"/><path d="M16.86,22.47a3.79,3.79,0,1,1-3.78-3.79A3.78,3.78,0,0,1,16.86,22.47Z"/><path d="M27.49,18.68h3.4A2.34,2.34,0,0,1,33.23,21v.45a0,0,0,0,1,0,0H25.15a0,0,0,0,1,0,0V21A2.34,2.34,0,0,1,27.49,18.68Z"/><path d="M18.12,37.69c4.83.79,9.75-.6,12.53-4.83-.82,5.61-8.13,8-12.53,4.83Z"/><path d="M7.65,15.4c.69-3.5,4.64-6.43,8.26-5.47a1,1,0,0,1,.73,1.22c-.42,1.31-2.23.55-3.23.75C11,11.88,9,13.46,7.65,15.4Z"/></svg>
|
After Width: | Height: | Size: 1.2 KiB |
1
phpBB/images/smilies/icon_eek.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.52 48.19"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:#fff;}</style><linearGradient id="linear-gradient" x1="8.84" y1="4.55" x2="34.6" y2="41.34" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient></defs><path class="cls-1" d="M41.5,21.09c0,12.88-9.06,26.32-20.24,26.32S1,34,1,21.09,10.08.78,21.26.78,41.5,8.22,41.5,21.09Z"/><path d="M21.26,48.16c-12,0-21-14.29-21-27.07C.27,8.69,8.9,0,21.26,0s21,8.66,21,21.06C42.25,33.87,33.27,48.16,21.26,48.16Zm0-46.63C9.6,1.53,1.77,9.39,1.77,21.09c0,12.07,8.33,25.57,19.49,25.57s19.49-13.5,19.49-25.57C40.75,9.39,32.92,1.53,21.26,1.53Z"/><circle class="cls-2" cx="9.96" cy="20.75" r="8.4" transform="translate(-12.49 25.85) rotate(-77.17)"/><path d="M10,29.9a9.15,9.15,0,1,1,9.14-9.15A9.15,9.15,0,0,1,10,29.9Zm0-16.79a7.65,7.65,0,1,0,7.64,7.64A7.65,7.65,0,0,0,10,13.11Z"/><path d="M12,20.75A2.08,2.08,0,1,1,10,18.67,2.08,2.08,0,0,1,12,20.75Z"/><circle class="cls-2" cx="32.56" cy="20.75" r="8.4" transform="translate(-5.42 13.8) rotate(-22.14)"/><path d="M32.56,29.9a9.15,9.15,0,1,1,9.15-9.15A9.15,9.15,0,0,1,32.56,29.9Zm0-16.79a7.65,7.65,0,1,0,7.65,7.64A7.65,7.65,0,0,0,32.56,13.11Z"/><circle cx="32.56" cy="20.75" r="2.08"/><rect x="16.52" y="36.47" width="9.47" height="2.77" rx="1.08"/></svg>
|
After Width: | Height: | Size: 1.4 KiB |
1
phpBB/images/smilies/icon_evil.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.52 48.19"><defs><style>.cls-1{fill:red;}.cls-2{fill:url(#linear-gradient);}</style><linearGradient id="linear-gradient" x1="9.23" y1="5.16" x2="34.18" y2="40.8" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient></defs><path class="cls-1" d="M33,7.55A15.59,15.59,0,0,0,39.82,2c1.44,4.57.89,9.26-.73,14C37.52,12.39,35.59,9.4,33,7.55Z"/><path d="M39.17,18.06l-.77-1.77c-1.69-3.88-3.61-6.54-5.87-8.13l-1.09-.77,1.23-.53A15.05,15.05,0,0,0,39.2,1.55L40.07.28l.46,1.46c1.36,4.31,1.12,9-.73,14.49ZM34.38,7.71A19.8,19.8,0,0,1,39,13.92a21.12,21.12,0,0,0,.54-10.28A16.29,16.29,0,0,1,34.38,7.71Z"/><path class="cls-1" d="M9.56,7.55A15.59,15.59,0,0,1,2.7,2c-1.44,4.57-.89,9.26.73,14C5,12.39,6.93,9.4,9.56,7.55Z"/><path d="M3.34,18.06l-.62-1.83C.87,10.79.63,6.05,2,1.74L2.45.28l.87,1.27A15.05,15.05,0,0,0,9.85,6.86l1.23.53L10,8.16c-2.26,1.59-4.18,4.25-5.87,8.13ZM3,3.64a21,21,0,0,0,.54,10.28A19.8,19.8,0,0,1,8.14,7.71,16.29,16.29,0,0,1,3,3.64Z"/><path class="cls-2" d="M40.87,21.19c0,12.47-8.78,25.49-19.61,25.49S1.65,33.66,1.65,21.19,10.43,1.51,21.26,1.51,40.87,8.71,40.87,21.19Z"/><path d="M21.26,47.41C9.62,47.41.92,33.56.92,21.19.92,9.17,9.29.78,21.26.78S41.6,9.17,41.6,21.19C41.6,33.56,32.9,47.41,21.26,47.41Zm0-45.17C10,2.24,2.38,9.85,2.38,21.19,2.38,32.88,10.45,46,21.26,46S40.14,32.88,40.14,21.19C40.14,9.85,32.55,2.24,21.26,2.24Z"/><path d="M9.47,38.08c4.86-9.3,18.75-9.33,23.58,0-7.32-6.19-16.26-6.15-23.58,0Z"/><path class="cls-1" d="M32.85,26.88a4.77,4.77,0,1,1,1.07-6.67A4.77,4.77,0,0,1,32.85,26.88Z"/><path d="M32.85,26.87a4.78,4.78,0,0,1-6.67-1.06,4.93,4.93,0,0,1-.64-1.25,4.17,4.17,0,0,0,.46.82,3.93,3.93,0,1,0,.88-5.48,3.76,3.76,0,0,0-1.5,2.23,4.69,4.69,0,0,1,1.87-3,4.77,4.77,0,1,1,5.6,7.72Z"/><path d="M25.19,20.82l10.35-10-7.19,12.5a2,2,0,1,1-3.16-2.46Z"/><path class="cls-1" d="M9.67,26.88A4.77,4.77,0,1,0,8.6,20.21,4.77,4.77,0,0,0,9.67,26.88Z"/><path d="M9.67,26.87a4.77,4.77,0,0,0,6.66-1.06A5,5,0,0,0,17,24.56a4.17,4.17,0,0,1-.46.82,3.93,3.93,0,1,1-.88-5.48,3.76,3.76,0,0,1,1.5,2.23,4.69,4.69,0,0,0-1.87-3,4.77,4.77,0,1,0-5.6,7.72Z"/><path d="M17.33,20.82,7,10.78l7.19,12.5a2,2,0,1,0,3.16-2.46Z"/><path d="M31.91,26.54a4.11,4.11,0,0,1-5.86-1,4.89,4.89,0,0,1-.56-1.15A3.44,3.44,0,0,0,30.71,26a3.68,3.68,0,0,0,.77-5,3.36,3.36,0,0,0-4.82-.79,3.47,3.47,0,0,0-1.32,2A4.28,4.28,0,0,1,27,19.49a4.09,4.09,0,0,1,5.86,1A4.47,4.47,0,0,1,31.91,26.54Z"/><path d="M10.61,26.54a4.09,4.09,0,0,0,5.85-1A4.37,4.37,0,0,0,17,24.42a3.19,3.19,0,0,1-.4.75A3.37,3.37,0,0,1,11.8,26,3.69,3.69,0,0,1,11,21a3.35,3.35,0,0,1,4.81-.79,3.47,3.47,0,0,1,1.32,2,4.28,4.28,0,0,0-1.65-2.72,4.08,4.08,0,0,0-5.85,1A4.47,4.47,0,0,0,10.61,26.54Z"/></svg>
|
After Width: | Height: | Size: 2.8 KiB |
1
phpBB/images/smilies/icon_exclaim.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.52 48.19"><defs><style>.cls-1{fill:url(#linear-gradient);}</style><linearGradient id="linear-gradient" x1="8.84" y1="4.55" x2="34.6" y2="41.34" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient></defs><path class="cls-1" d="M41.5,21.09c0,12.88-9.06,26.32-20.24,26.32S1,34,1,21.09,10.08.78,21.26.78,41.5,8.22,41.5,21.09Z"/><path d="M21.26,48.16c-12,0-21-14.29-21-27.07C.27,8.69,8.9,0,21.26,0s21,8.66,21,21.06C42.25,33.87,33.27,48.16,21.26,48.16Zm0-46.63C9.6,1.53,1.77,9.39,1.77,21.09c0,12.07,8.33,25.57,19.49,25.57s19.49-13.5,19.49-25.57C40.75,9.39,32.92,1.53,21.26,1.53Z"/><path d="M21.26,32a3.49,3.49,0,1,0,3.49,3.49A3.49,3.49,0,0,0,21.26,32Z"/><path d="M25.39,11.66a.57.57,0,0,0,0-.13,4.14,4.14,0,0,0-8.24,0s0,0,0,0,0,.22,0,.34v7.37a9,9,0,0,0,.95,4.1L19.84,27a1.6,1.6,0,0,0,2.85,0l1.79-3.58a9.13,9.13,0,0,0,.94-4.09V11.94A2.4,2.4,0,0,0,25.39,11.66Z"/></svg>
|
After Width: | Height: | Size: 1 KiB |
1
phpBB/images/smilies/icon_idea.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.52 48.19"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:#fff;}</style><linearGradient id="linear-gradient" x1="8.84" y1="4.55" x2="34.6" y2="41.34" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient></defs><path class="cls-1" d="M41.5,21.09c0,12.88-9.06,26.32-20.24,26.32S1,34,1,21.09,10.08.78,21.26.78,41.5,8.22,41.5,21.09Z"/><path d="M21.26,48.16c-12,0-21-14.29-21-27.07C.27,8.69,8.9,0,21.26,0s21,8.66,21,21.06C42.25,33.87,33.27,48.16,21.26,48.16Zm0-46.63C9.6,1.53,1.77,9.39,1.77,21.09c0,12.07,8.33,25.57,19.49,25.57s19.49-13.5,19.49-25.57C40.75,9.39,32.92,1.53,21.26,1.53Z"/><circle class="cls-2" cx="21.26" cy="21.39" r="10.09"/><path d="M21.26,32.49a11.1,11.1,0,1,1,11.09-11.1A11.1,11.1,0,0,1,21.26,32.49Zm0-20.19a9.1,9.1,0,1,0,9.09,9.09A9.1,9.1,0,0,0,21.26,12.3Z"/><rect x="19.44" y="18.17" width="3.63" height="24.87" rx="0.92"/><path d="M16.43,29.2V39.5a1,1,0,0,0,.48.88L19.58,42h3.36l2.66-1.66a1,1,0,0,0,.49-.88V29.2Z"/></svg>
|
After Width: | Height: | Size: 1.1 KiB |
1
phpBB/images/smilies/icon_lol.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.52 48.19"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:red;}</style><linearGradient id="linear-gradient" x1="8.84" y1="4.55" x2="34.6" y2="41.34" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient></defs><path class="cls-1" d="M41.5,21.09c0,12.88-9.06,26.32-20.24,26.32S1,34,1,21.09,10.08.78,21.26.78,41.5,8.22,41.5,21.09Z"/><path d="M21.26,48.16c-12,0-21-14.29-21-27.07C.27,8.69,8.9,0,21.26,0s21,8.66,21,21.06C42.25,33.87,33.27,48.16,21.26,48.16Zm0-46.63C9.6,1.53,1.77,9.39,1.77,21.09c0,12.07,8.33,25.57,19.49,25.57s19.49-13.5,19.49-25.57C40.75,9.39,32.92,1.53,21.26,1.53Z"/><path d="M19,20.56a.72.72,0,0,1-.75-.72v-.05a4.41,4.41,0,0,0-4.54-4.26,4.41,4.41,0,0,0-4.54,4.26.77.77,0,0,1-.75.77.73.73,0,0,1-.75-.72,5.92,5.92,0,0,1,6-5.81,5.91,5.91,0,0,1,6,5.76A.77.77,0,0,1,19,20.56Z"/><path d="M34.14,20.56a.72.72,0,0,1-.75-.72v-.05a4.55,4.55,0,0,0-9.08,0,.77.77,0,0,1-.75.77.73.73,0,0,1-.75-.72,6,6,0,0,1,12.08-.05A.77.77,0,0,1,34.14,20.56Z"/><path d="M21,42.07h0A12.64,12.64,0,0,1,8.38,29.43v-1.7H33.66v1.7A12.64,12.64,0,0,1,21,42.07Z"/><path class="cls-2" d="M21.63,35.56H20.42a4.78,4.78,0,0,0-4.78,4.78h0c3.61,2.4,7.2,2.21,10.77,0h0A4.78,4.78,0,0,0,21.63,35.56Z"/><path d="M21,42.82A13.41,13.41,0,0,1,7.63,29.43V27.72h1.5v1.71a11.89,11.89,0,1,0,23.78,0V27.72h1.5v1.71A13.4,13.4,0,0,1,21,42.82Z"/></svg>
|
After Width: | Height: | Size: 1.5 KiB |
1
phpBB/images/smilies/icon_mad.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.52 48.19"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:#fff;}</style><linearGradient id="linear-gradient" x1="8.84" y1="4.55" x2="34.6" y2="41.34" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient></defs><path class="cls-1" d="M41.5,21.09c0,12.88-9.06,26.32-20.24,26.32S1,34,1,21.09,10.08.78,21.26.78,41.5,8.22,41.5,21.09Z"/><path d="M21.26,48.16c-12,0-21-14.29-21-27.07C.27,8.69,8.9,0,21.26,0s21,8.66,21,21.06C42.25,33.87,33.27,48.16,21.26,48.16Zm0-46.63C9.6,1.53,1.77,9.39,1.77,21.09c0,12.07,8.33,25.57,19.49,25.57s19.49-13.5,19.49-25.57C40.75,9.39,32.92,1.53,21.26,1.53Z"/><path class="cls-2" d="M10.74,37.94a7.18,7.18,0,0,1,7.18-7.07H24.6a7.19,7.19,0,0,1,7.18,7.07Z"/><path d="M24.6,31.62A6.44,6.44,0,0,1,31,37.19H11.54a6.44,6.44,0,0,1,6.38-5.57H24.6m0-1.5H17.92A7.93,7.93,0,0,0,10,38.05v.64H32.53v-.64a7.93,7.93,0,0,0-7.93-7.93Z"/><path d="M26.4,27.22c-2.3-4.66,4.18-8.79,7.35-4.61l0,.19c-3.72-.95-6.26.79-7.11,4.47l-.19-.05Z"/><path d="M15.93,27.27c-.86-3.69-3.39-5.42-7.11-4.47l-.05-.19c2-3,7-1.79,7.68,1.64a4.11,4.11,0,0,1-.33,3l-.19.05Z"/><path d="M26,18.28a6,6,0,0,1,1.11-3,8.13,8.13,0,0,1,2.27-1.83c1.55-1.19,3.18-2.29,4.85-3.33a.16.16,0,0,1,.21.05,33.88,33.88,0,0,1-3.37,5,8.28,8.28,0,0,1-1.85,2.25,6,6,0,0,1-3,1.08.19.19,0,0,1-.21-.21Z"/><path d="M16.28,18.49a6,6,0,0,1-3-1.08,8.28,8.28,0,0,1-1.85-2.25q-1.8-2.33-3.37-4.83a.16.16,0,0,1,0-.21,34,34,0,0,1,5,3.33,8.13,8.13,0,0,1,2.27,1.83,6,6,0,0,1,1.11,3,.19.19,0,0,1-.21.21Z"/></svg>
|
After Width: | Height: | Size: 1.6 KiB |
1
phpBB/images/smilies/icon_mrgreen.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.52 48.19"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:#fff;}</style><linearGradient id="linear-gradient" x1="8.84" y1="4.55" x2="34.6" y2="41.34" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#8bffb1"/><stop offset="1" stop-color="#3a794b"/></linearGradient></defs><path class="cls-1" d="M41.5,21.09c0,12.88-9.06,26.32-20.24,26.32S1,34,1,21.09,10.08.78,21.26.78,41.5,8.22,41.5,21.09Z"/><path d="M21.26,48.16c-12,0-21-14.29-21-27.07C.27,8.69,8.9,0,21.26,0s21,8.66,21,21.06C42.25,33.87,33.27,48.16,21.26,48.16Zm0-46.63C9.6,1.53,1.77,9.39,1.77,21.09c0,12.07,8.33,25.57,19.49,25.57s19.49-13.5,19.49-25.57C40.75,9.39,32.92,1.53,21.26,1.53Z"/><path d="M5.41,19.89c.39-7.56,12.59-6.59,13.91,0l-.19.06c-1.79-4-7-4.72-10.4-2.54A9.54,9.54,0,0,0,5.6,20l-.19-.06Z"/><path d="M36.92,20c-3.43-4.29-10.75-5.62-13.53,0l-.19-.06c1.08-4.77,7.71-6.86,11.65-4.17a5.14,5.14,0,0,1,2.26,4.17l-.19.06Z"/><path class="cls-2" d="M6.19,27.56c4,20,26.54,19.77,30.14,0Z"/><path d="M21.37,43.47c-6,0-13.83-4.11-16.16-15.72L5,26.56H37.53l-.22,1.17c-1.72,9.49-7.93,15.66-15.81,15.74ZM7.44,28.56c2.36,9.51,8.87,12.91,13.93,12.91h.11c5,0,11.46-3.49,13.62-12.91Z"/><rect x="14.58" y="27.88" width="2" height="13.1"/><rect x="25.94" y="27.88" width="2" height="13.1"/></svg>
|
After Width: | Height: | Size: 1.4 KiB |
1
phpBB/images/smilies/icon_neutral.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.52 48.19"><defs><style>.cls-1{fill:url(#linear-gradient);}</style><linearGradient id="linear-gradient" x1="8.84" y1="4.55" x2="34.6" y2="41.34" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient></defs><path class="cls-1" d="M41.5,21.09c0,12.88-9.06,26.32-20.24,26.32S1,34,1,21.09,10.08.78,21.26.78,41.5,8.22,41.5,21.09Z"/><path d="M21.26,48.16c-12,0-21-14.29-21-27.07C.27,8.69,8.9,0,21.26,0s21,8.66,21,21.06C42.25,33.87,33.27,48.16,21.26,48.16Zm0-46.63C9.6,1.53,1.77,9.39,1.77,21.09c0,12.07,8.33,25.57,19.49,25.57s19.49-13.5,19.49-25.57C40.75,9.39,32.92,1.53,21.26,1.53Z"/><path d="M28.88,36.44H13.44A1.43,1.43,0,0,1,12,35h0a1.43,1.43,0,0,1,1.43-1.43H28.88A1.43,1.43,0,0,1,30.31,35h0A1.43,1.43,0,0,1,28.88,36.44Z"/><path d="M30.64,22.41a2.84,2.84,0,1,1-2.83-2.84A2.83,2.83,0,0,1,30.64,22.41Z"/><path d="M17.55,22.41a2.84,2.84,0,1,1-2.83-2.84A2.83,2.83,0,0,1,17.55,22.41Z"/><path d="M29.49,15H25.87a2,2,0,0,0-1.95,2h7.51A1.94,1.94,0,0,0,29.49,15Z"/><path d="M9.3,19.7h0a.75.75,0,0,1,0-1.06l4.09-4.06a.75.75,0,0,1,1.06,0h0a.75.75,0,0,1,0,1.06l-4.1,4A.75.75,0,0,1,9.3,19.7Z"/></svg>
|
After Width: | Height: | Size: 1.3 KiB |
1
phpBB/images/smilies/icon_question.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 41.98 48.12"><defs><style>.cls-1{fill:url(#linear-gradient);}</style><linearGradient id="linear-gradient" x1="8.57" y1="4.51" x2="34.33" y2="41.3" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient></defs><path class="cls-1" d="M41.23,21.06c0,12.88-9.06,26.31-20.24,26.31S.75,33.94.75,21.06,9.81.75,21,.75,41.23,8.19,41.23,21.06Z"/><path d="M21,48.12C9,48.12,0,33.84,0,21.06,0,8.66,8.63,0,21,0S42,8.66,42,21.06C42,33.84,33,48.12,21,48.12ZM21,1.5C9.33,1.5,1.5,9.36,1.5,21.06,1.5,33.13,9.83,46.62,21,46.62S40.48,33.13,40.48,21.06C40.48,9.36,32.65,1.5,21,1.5Z"/><path d="M21.21,29.42A1.25,1.25,0,0,1,20,28.17c0-1.89,0-4.25,2.5-6.13l1-.71c2.21-1.58,3.25-2.44,2.77-4.47-.55-2.36-3-3.35-5.15-3.29s-4.47,1.18-4.86,3.52a1.25,1.25,0,0,1-2.47-.42c.64-3.73,4.1-5.5,7.25-5.6s6.79,1.48,7.67,5.22-1.59,5.52-3.75,7.07c-.31.22-.62.44-.93.68-1.43,1.07-1.5,2.21-1.5,4.13A1.24,1.24,0,0,1,21.21,29.42Z"/><ellipse cx="21.21" cy="33.94" rx="2.04" ry="1.93"/></svg>
|
After Width: | Height: | Size: 1.1 KiB |
1
phpBB/images/smilies/icon_razz.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.52 48.19"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:red;}</style><linearGradient id="linear-gradient" x1="8.84" y1="4.55" x2="34.6" y2="41.34" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient></defs><path class="cls-1" d="M41.5,21.09c0,12.88-9.06,26.32-20.24,26.32S1,34,1,21.09,10.08.78,21.26.78,41.5,8.22,41.5,21.09Z"/><path d="M21.26,48.16c-12,0-21-14.29-21-27.07C.27,8.69,8.9,0,21.26,0s21,8.66,21,21.06C42.25,33.87,33.27,48.16,21.26,48.16Zm0-46.63C9.6,1.53,1.77,9.39,1.77,21.09c0,12.07,8.33,25.57,19.49,25.57s19.49-13.5,19.49-25.57C40.75,9.39,32.92,1.53,21.26,1.53Z"/><path d="M16,20.5a3.27,3.27,0,0,1-3.45,3.07A3.27,3.27,0,0,1,9.06,20.5a3.27,3.27,0,0,1,3.44-3.07A3.28,3.28,0,0,1,16,20.5Z"/><path d="M33.46,20.5A3.27,3.27,0,0,1,30,23.57a3.27,3.27,0,0,1-3.45-3.07A3.28,3.28,0,0,1,30,17.43,3.27,3.27,0,0,1,33.46,20.5Z"/><path d="M27.05,8.78c3.51,1.05,7,3.28,8.58,6.63a12.18,12.18,0,0,0-9.08-3.88,1.41,1.41,0,1,1,.5-2.75Z"/><path d="M16,11.53a12.17,12.17,0,0,0-9.08,3.88c1.58-3.36,5.08-5.59,8.6-6.63A1.41,1.41,0,1,1,16,11.53Z"/><path class="cls-2" d="M8.88,33.58c5.27,11.16,19.87,11.22,24.76,0Z"/><path d="M21.42,42.72A14.71,14.71,0,0,1,8.2,33.9l-.5-1.07H34.78l-.45,1.05c-2.38,5.45-7.13,8.76-12.7,8.84Zm-11.3-8.39a13,13,0,0,0,11.49,6.89,12.35,12.35,0,0,0,10.84-6.89Z"/><path d="M21.44,42.72C15.16,42.72,9.5,38,6.64,30.43A.75.75,0,1,1,8,29.9C10.7,37,15.89,41.31,21.58,41.22S32,36.92,34.47,29.92a.75.75,0,0,1,1-.46.74.74,0,0,1,.46.95c-2.66,7.63-8,12.23-14.29,12.31Z"/><path d="M34.27,33H8.48a.75.75,0,0,1,0-1.5H34.27a.75.75,0,1,1,0,1.5Z"/></svg>
|
After Width: | Height: | Size: 1.7 KiB |
1
phpBB/images/smilies/icon_redface.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.52 48.19"><defs><style>.cls-1{fill:url(#linear-gradient);}</style><linearGradient id="linear-gradient" x1="8.84" y1="4.55" x2="34.6" y2="41.34" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffc984"/><stop offset="1" stop-color="#ff4900"/></linearGradient></defs><path class="cls-1" d="M41.5,21.09c0,12.88-9.06,26.32-20.24,26.32S1,34,1,21.09,10.08.78,21.26.78,41.5,8.22,41.5,21.09Z"/><path d="M21.26,48.16c-12,0-21-14.29-21-27.07C.27,8.69,8.9,0,21.26,0s21,8.66,21,21.06C42.25,33.87,33.27,48.16,21.26,48.16Zm0-46.63C9.6,1.53,1.77,9.39,1.77,21.09c0,12.07,8.33,25.57,19.49,25.57s19.49-13.5,19.49-25.57C40.75,9.39,32.92,1.53,21.26,1.53Z"/><path d="M24.64,36.47H17.88a1.57,1.57,0,0,1-1.57-1.57h0a1.57,1.57,0,0,1,1.57-1.57h6.76a1.57,1.57,0,0,1,1.57,1.57h0A1.57,1.57,0,0,1,24.64,36.47Z"/><path d="M8.75,19.68h0a.75.75,0,0,1,0-1.06l4.38-4.34a.75.75,0,0,1,1.06,0h0a.75.75,0,0,1,0,1.06L9.81,19.69A.75.75,0,0,1,8.75,19.68Z"/><path d="M16.83,21.85c0,1.66-1,3-2.26,3s-2.27-1.34-2.27-3,1-3,2.27-3S16.83,20.19,16.83,21.85Z"/><path d="M33.77,19.68h0a.75.75,0,0,0,0-1.06l-4.38-4.34a.75.75,0,0,0-1.06,0h0a.75.75,0,0,0,0,1.06l4.39,4.34A.75.75,0,0,0,33.77,19.68Z"/><path d="M25.69,21.85c0,1.66,1,3,2.26,3s2.27-1.34,2.27-3-1-3-2.27-3S25.69,20.19,25.69,21.85Z"/></svg>
|
After Width: | Height: | Size: 1.4 KiB |
1
phpBB/images/smilies/icon_rolleyes.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.52 48.19"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:#fff;}</style><linearGradient id="linear-gradient" x1="8.84" y1="4.55" x2="34.6" y2="41.34" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient></defs><path class="cls-1" d="M41.5,21.09c0,12.88-9.06,26.32-20.24,26.32S1,34,1,21.09,10.08.78,21.26.78,41.5,8.22,41.5,21.09Z"/><path d="M21.26,48.16c-12,0-21-14.29-21-27.07C.27,8.69,8.9,0,21.26,0s21,8.66,21,21.06C42.25,33.87,33.27,48.16,21.26,48.16Zm0-46.63C9.6,1.53,1.77,9.39,1.77,21.09c0,12.07,8.33,25.57,19.49,25.57s19.49-13.5,19.49-25.57C40.75,9.39,32.92,1.53,21.26,1.53Z"/><circle class="cls-2" cx="13.49" cy="20.66" r="7.71" transform="translate(-10.66 15.59) rotate(-45)"/><path d="M13.49,29.05a8.4,8.4,0,1,1,8.39-8.39A8.4,8.4,0,0,1,13.49,29.05Zm0-15.41a7,7,0,1,0,7,7A7,7,0,0,0,13.49,13.64Z"/><path d="M17.59,16.56a4.1,4.1,0,1,1-4.1-4.1A4.11,4.11,0,0,1,17.59,16.56Z"/><circle class="cls-2" cx="29.03" cy="20.66" r="7.71" transform="translate(3.98 46) rotate(-80.76)"/><path d="M29,29.05a8.4,8.4,0,1,1,8.4-8.39A8.39,8.39,0,0,1,29,29.05Zm0-15.41a7,7,0,1,0,7,7A7,7,0,0,0,29,13.64Z"/><path d="M33.13,16.56a4.1,4.1,0,1,1-4.1-4.1A4.1,4.1,0,0,1,33.13,16.56Z"/><path d="M21.37,38.08H21L16.56,38a1.5,1.5,0,1,1,.07-3l4.47.11a10.07,10.07,0,0,0,6-1.73l.86-.57a1.5,1.5,0,1,1,1.67,2.49l-.87.57A13.15,13.15,0,0,1,21.37,38.08Z"/></svg>
|
After Width: | Height: | Size: 1.5 KiB |
1
phpBB/images/smilies/icon_twisted.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.52 48.19"><defs><style>.cls-1{fill:red;}.cls-2{fill:url(#linear-gradient);}.cls-3{fill:#fff;}.cls-4{fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:1.5px;}</style><linearGradient id="linear-gradient" x1="9.23" y1="5.16" x2="34.18" y2="40.8" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffff2e"/><stop offset="1" stop-color="#ff913d"/></linearGradient></defs><path class="cls-1" d="M33,7.55A15.59,15.59,0,0,0,39.82,2c1.44,4.57.89,9.26-.73,14C37.52,12.39,35.59,9.4,33,7.55Z"/><path d="M39.17,18.06l-.77-1.77c-1.69-3.88-3.61-6.54-5.87-8.13l-1.09-.77,1.23-.53A15.05,15.05,0,0,0,39.2,1.55L40.07.28l.46,1.46c1.36,4.31,1.12,9-.73,14.49ZM34.38,7.71A19.8,19.8,0,0,1,39,13.92a21.12,21.12,0,0,0,.54-10.28A16.29,16.29,0,0,1,34.38,7.71Z"/><path class="cls-1" d="M9.56,7.55A15.59,15.59,0,0,1,2.7,2c-1.44,4.57-.89,9.26.73,14C5,12.39,6.93,9.4,9.56,7.55Z"/><path d="M3.34,18.06l-.62-1.83C.87,10.79.63,6.05,2,1.74L2.45.28l.87,1.27A15.05,15.05,0,0,0,9.85,6.86l1.23.53L10,8.16c-2.26,1.59-4.18,4.25-5.87,8.13ZM3,3.64a21,21,0,0,0,.54,10.28A19.8,19.8,0,0,1,8.14,7.71,16.29,16.29,0,0,1,3,3.64Z"/><path class="cls-2" d="M40.87,21.19c0,12.47-8.78,25.49-19.61,25.49S1.65,33.66,1.65,21.19,10.43,1.51,21.26,1.51,40.87,8.71,40.87,21.19Z"/><path d="M21.26,47.41C9.62,47.41.92,33.56.92,21.19.92,9.17,9.29.78,21.26.78S41.6,9.17,41.6,21.19C41.6,33.56,32.9,47.41,21.26,47.41Zm0-45.17C10,2.24,2.38,9.85,2.38,21.19,2.38,32.88,10.45,46,21.26,46S40.14,32.88,40.14,21.19C40.14,9.85,32.55,2.24,21.26,2.24Z"/><path class="cls-1" d="M32.85,26.88a4.77,4.77,0,1,1,1.07-6.67A4.77,4.77,0,0,1,32.85,26.88Z"/><path d="M32.85,26.87a4.78,4.78,0,0,1-6.67-1.06,4.93,4.93,0,0,1-.64-1.25,4.17,4.17,0,0,0,.46.82,3.93,3.93,0,1,0,.88-5.48,3.76,3.76,0,0,0-1.5,2.23,4.69,4.69,0,0,1,1.87-3,4.77,4.77,0,1,1,5.6,7.72Z"/><path d="M25.19,20.82l10.35-10-7.19,12.5a2,2,0,1,1-3.16-2.46Z"/><path class="cls-1" d="M9.67,26.88A4.77,4.77,0,1,0,8.6,20.21,4.77,4.77,0,0,0,9.67,26.88Z"/><path d="M9.67,26.87a4.77,4.77,0,0,0,6.66-1.06A5,5,0,0,0,17,24.56a4.17,4.17,0,0,1-.46.82,3.93,3.93,0,1,1-.88-5.48,3.76,3.76,0,0,1,1.5,2.23,4.69,4.69,0,0,0-1.87-3,4.77,4.77,0,1,0-5.6,7.72Z"/><path d="M17.33,20.82,7,10.78l7.19,12.5a2,2,0,1,0,3.16-2.46Z"/><path d="M31.91,26.54a4.11,4.11,0,0,1-5.86-1,4.89,4.89,0,0,1-.56-1.15A3.44,3.44,0,0,0,30.71,26a3.68,3.68,0,0,0,.77-5,3.36,3.36,0,0,0-4.82-.79,3.47,3.47,0,0,0-1.32,2A4.28,4.28,0,0,1,27,19.49a4.09,4.09,0,0,1,5.86,1A4.47,4.47,0,0,1,31.91,26.54Z"/><path d="M10.61,26.54a4.09,4.09,0,0,0,5.85-1A4.37,4.37,0,0,0,17,24.42a3.19,3.19,0,0,1-.4.75A3.37,3.37,0,0,1,11.8,26,3.69,3.69,0,0,1,11,21a3.35,3.35,0,0,1,4.81-.79,3.47,3.47,0,0,1,1.32,2,4.28,4.28,0,0,0-1.65-2.72,4.08,4.08,0,0,0-5.85,1A4.47,4.47,0,0,0,10.61,26.54Z"/><path class="cls-3" d="M26,39.85H16.48a6.1,6.1,0,0,1-6.1-6.11H32.14A6.11,6.11,0,0,1,26,39.85Z"/><path class="cls-4" d="M34.09,31.71v0c0,4.66-5.74,8.44-12.83,8.44h0c-7.09,0-12.83-3.78-12.83-8.44v0"/><polygon points="32.61 35.21 9.96 35.21 8.84 33.21 33.44 33.21 32.61 35.21"/></svg>
|
After Width: | Height: | Size: 3 KiB |
|
@ -173,8 +173,6 @@ class acp_attachments
|
||||||
|
|
||||||
'img_max_width' => array('lang' => 'MAX_IMAGE_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
|
'img_max_width' => array('lang' => 'MAX_IMAGE_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
|
||||||
'img_max_height' => array('lang' => 'MAX_IMAGE_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
|
'img_max_height' => array('lang' => 'MAX_IMAGE_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
|
||||||
'img_link_width' => array('lang' => 'IMAGE_LINK_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
|
|
||||||
'img_link_height' => array('lang' => 'IMAGE_LINK_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
|
|
||||||
|
|
||||||
'allow_attachments' => array('lang' => 'ALLOW_ATTACHMENTS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
'allow_attachments' => array('lang' => 'ALLOW_ATTACHMENTS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
||||||
'allow_pm_attach' => array('lang' => 'ALLOW_PM_ATTACHMENTS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
'allow_pm_attach' => array('lang' => 'ALLOW_PM_ATTACHMENTS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
||||||
|
@ -197,7 +195,6 @@ class acp_attachments
|
||||||
'img_max' => array('lang' => 'MAX_IMAGE_SIZE', 'validate' => 'int:0:9999', 'type' => 'dimension:0:9999', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
|
'img_max' => array('lang' => 'MAX_IMAGE_SIZE', 'validate' => 'int:0:9999', 'type' => 'dimension:0:9999', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
|
||||||
'img_strip_metadata' => array('lang' => 'IMAGE_STRIP_METADATA', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
'img_strip_metadata' => array('lang' => 'IMAGE_STRIP_METADATA', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
||||||
'img_quality' => array('lang' => 'IMAGE_QUALITY', 'validate' => 'int:50:90', 'type' => 'number:50:90', 'explain' => true, 'append' => ' %'),
|
'img_quality' => array('lang' => 'IMAGE_QUALITY', 'validate' => 'int:50:90', 'type' => 'number:50:90', 'explain' => true, 'append' => ' %'),
|
||||||
'img_link' => array('lang' => 'IMAGE_LINK_SIZE', 'validate' => 'int:0:9999', 'type' => 'dimension:0:9999', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -110,6 +110,7 @@ class acp_bbcodes
|
||||||
);
|
);
|
||||||
|
|
||||||
$bbcode_tokens = array('TEXT', 'SIMPLETEXT', 'INTTEXT', 'IDENTIFIER', 'NUMBER', 'EMAIL', 'URL', 'LOCAL_URL', 'RELATIVE_URL', 'COLOR');
|
$bbcode_tokens = array('TEXT', 'SIMPLETEXT', 'INTTEXT', 'IDENTIFIER', 'NUMBER', 'EMAIL', 'URL', 'LOCAL_URL', 'RELATIVE_URL', 'COLOR');
|
||||||
|
$bbcode_tokens = array_merge($bbcode_tokens, ['ALNUM', 'CHOICE', 'FLOAT', 'HASHMAP', 'INT', 'IP', 'IPPORT', 'IPV4', 'IPV6', 'MAP', 'RANGE', 'REGEXP', 'TIMESTAMP', 'UINT']);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Modify custom bbcode template data before we display the add/edit form
|
* Modify custom bbcode template data before we display the add/edit form
|
||||||
|
|
|
@ -78,6 +78,7 @@ class acp_board
|
||||||
'site_home_url' => array('lang' => 'SITE_HOME_URL', 'validate' => 'url', 'type' => 'url:40:255', 'explain' => true),
|
'site_home_url' => array('lang' => 'SITE_HOME_URL', 'validate' => 'url', 'type' => 'url:40:255', 'explain' => true),
|
||||||
'site_home_text' => array('lang' => 'SITE_HOME_TEXT', 'validate' => 'string', 'type' => 'text:40:255', 'explain' => true),
|
'site_home_text' => array('lang' => 'SITE_HOME_TEXT', 'validate' => 'string', 'type' => 'text:40:255', 'explain' => true),
|
||||||
'board_index_text' => array('lang' => 'BOARD_INDEX_TEXT', 'validate' => 'string', 'type' => 'text:40:255', 'explain' => true),
|
'board_index_text' => array('lang' => 'BOARD_INDEX_TEXT', 'validate' => 'string', 'type' => 'text:40:255', 'explain' => true),
|
||||||
|
'sitename_short' => array('lang' => 'SITE_NAME_SHORT', 'validate' => 'string', 'type' => 'text:40:12', 'explain' => true),
|
||||||
'board_disable' => array('lang' => 'DISABLE_BOARD', 'validate' => 'bool', 'type' => 'custom', 'method' => 'board_disable', 'explain' => true),
|
'board_disable' => array('lang' => 'DISABLE_BOARD', 'validate' => 'bool', 'type' => 'custom', 'method' => 'board_disable', 'explain' => true),
|
||||||
'board_disable_msg' => false,
|
'board_disable_msg' => false,
|
||||||
'board_disable_access' => array('lang' => 'DISABLE_BOARD_ACCESS', 'validate' => 'int', 'type' => 'select', 'method' => 'board_disable_access', 'explain' => true),
|
'board_disable_access' => array('lang' => 'DISABLE_BOARD_ACCESS', 'validate' => 'int', 'type' => 'select', 'method' => 'board_disable_access', 'explain' => true),
|
||||||
|
@ -259,8 +260,6 @@ class acp_board
|
||||||
'max_sig_urls' => array('lang' => 'MAX_SIG_URLS', 'validate' => 'int:0:9999', 'type' => 'number:0:9999', 'explain' => true),
|
'max_sig_urls' => array('lang' => 'MAX_SIG_URLS', 'validate' => 'int:0:9999', 'type' => 'number:0:9999', 'explain' => true),
|
||||||
'max_sig_font_size' => array('lang' => 'MAX_SIG_FONT_SIZE', 'validate' => 'int:0:9999', 'type' => 'number:0:9999', 'explain' => true, 'append' => ' %'),
|
'max_sig_font_size' => array('lang' => 'MAX_SIG_FONT_SIZE', 'validate' => 'int:0:9999', 'type' => 'number:0:9999', 'explain' => true, 'append' => ' %'),
|
||||||
'max_sig_smilies' => array('lang' => 'MAX_SIG_SMILIES', 'validate' => 'int:0:9999', 'type' => 'number:0:9999', 'explain' => true),
|
'max_sig_smilies' => array('lang' => 'MAX_SIG_SMILIES', 'validate' => 'int:0:9999', 'type' => 'number:0:9999', 'explain' => true),
|
||||||
'max_sig_img_width' => array('lang' => 'MAX_SIG_IMG_WIDTH', 'validate' => 'int:0:9999', 'type' => 'number:0:9999', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
|
|
||||||
'max_sig_img_height' => array('lang' => 'MAX_SIG_IMG_HEIGHT', 'validate' => 'int:0:9999', 'type' => 'number:0:9999', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
|
|
||||||
|
|
||||||
'legend3' => 'ACP_SUBMIT_CHANGES',
|
'legend3' => 'ACP_SUBMIT_CHANGES',
|
||||||
)
|
)
|
||||||
|
@ -392,7 +391,7 @@ class acp_board
|
||||||
'title' => 'ACP_AUTH_SETTINGS',
|
'title' => 'ACP_AUTH_SETTINGS',
|
||||||
'vars' => array(
|
'vars' => array(
|
||||||
'legend1' => 'ACP_AUTH_SETTINGS',
|
'legend1' => 'ACP_AUTH_SETTINGS',
|
||||||
'auth_method' => array('lang' => 'AUTH_METHOD', 'validate' => 'string', 'type' => 'select:1:toggable', 'method' => 'select_auth_method', 'explain' => false),
|
'auth_method' => array('lang' => 'AUTH_METHOD', 'validate' => 'string', 'type' => 'select:1:toggleable', 'method' => 'select_auth_method', 'explain' => false),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
@ -403,7 +402,7 @@ class acp_board
|
||||||
'vars' => array(
|
'vars' => array(
|
||||||
'legend1' => 'ACP_SERVER_SETTINGS',
|
'legend1' => 'ACP_SERVER_SETTINGS',
|
||||||
'gzip_compress' => array('lang' => 'ENABLE_GZIP', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
'gzip_compress' => array('lang' => 'ENABLE_GZIP', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
||||||
'use_system_cron' => array('lang' => 'USE_SYSTEM_CRON', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
'use_system_cron' => array('lang' => 'USE_SYSTEM_CRON', 'validate' => 'bool', 'type' => 'radio:enabled_disabled', 'explain' => true),
|
||||||
|
|
||||||
'legend2' => 'PATH_SETTINGS',
|
'legend2' => 'PATH_SETTINGS',
|
||||||
'enable_mod_rewrite' => array('lang' => 'MOD_REWRITE_ENABLE', 'validate' => 'bool', 'type' => 'custom', 'method' => 'enable_mod_rewrite', 'explain' => true),
|
'enable_mod_rewrite' => array('lang' => 'MOD_REWRITE_ENABLE', 'validate' => 'bool', 'type' => 'custom', 'method' => 'enable_mod_rewrite', 'explain' => true),
|
||||||
|
@ -593,6 +592,7 @@ class acp_board
|
||||||
// Array of emoji-enabled configurations
|
// Array of emoji-enabled configurations
|
||||||
$config_name_ary = [
|
$config_name_ary = [
|
||||||
'sitename',
|
'sitename',
|
||||||
|
'sitename_short',
|
||||||
'site_desc',
|
'site_desc',
|
||||||
'site_home_text',
|
'site_home_text',
|
||||||
'board_index_text',
|
'board_index_text',
|
||||||
|
|
|
@ -95,7 +95,7 @@ class acp_captcha
|
||||||
add_form_key($form_key);
|
add_form_key($form_key);
|
||||||
|
|
||||||
$submit = $request->variable('main_submit', false);
|
$submit = $request->variable('main_submit', false);
|
||||||
$error = $cfg_array = array();
|
$errors = $cfg_array = array();
|
||||||
|
|
||||||
if ($submit)
|
if ($submit)
|
||||||
{
|
{
|
||||||
|
@ -103,13 +103,13 @@ class acp_captcha
|
||||||
{
|
{
|
||||||
$cfg_array[$config_var] = $request->variable($config_var, $options['default']);
|
$cfg_array[$config_var] = $request->variable($config_var, $options['default']);
|
||||||
}
|
}
|
||||||
validate_config_vars($config_vars, $cfg_array, $error);
|
validate_config_vars($config_vars, $cfg_array, $errors);
|
||||||
|
|
||||||
if (!check_form_key($form_key))
|
if (!check_form_key($form_key))
|
||||||
{
|
{
|
||||||
$error[] = $user->lang['FORM_INVALID'];
|
$errors[] = $user->lang['FORM_INVALID'];
|
||||||
}
|
}
|
||||||
if ($error)
|
if ($errors)
|
||||||
{
|
{
|
||||||
$submit = false;
|
$submit = false;
|
||||||
}
|
}
|
||||||
|
@ -128,11 +128,9 @@ class acp_captcha
|
||||||
if (isset($captchas['available'][$selected]))
|
if (isset($captchas['available'][$selected]))
|
||||||
{
|
{
|
||||||
$old_captcha = $factory->get_instance($config['captcha_plugin']);
|
$old_captcha = $factory->get_instance($config['captcha_plugin']);
|
||||||
$old_captcha->uninstall();
|
$old_captcha->garbage_collect();
|
||||||
|
|
||||||
$config->set('captcha_plugin', $selected);
|
$config->set('captcha_plugin', $selected);
|
||||||
$new_captcha = $factory->get_instance($config['captcha_plugin']);
|
|
||||||
$new_captcha->install();
|
|
||||||
|
|
||||||
$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_CONFIG_VISUAL');
|
$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_CONFIG_VISUAL');
|
||||||
}
|
}
|
||||||
|
@ -145,17 +143,24 @@ class acp_captcha
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$captcha_select = '';
|
$captcha_options = [];
|
||||||
foreach ($captchas['available'] as $value => $title)
|
foreach ($captchas['available'] as $value => $title)
|
||||||
{
|
{
|
||||||
$current = ($selected !== false && $value == $selected) ? ' selected="selected"' : '';
|
$captcha_options[] = [
|
||||||
$captcha_select .= '<option value="' . $value . '"' . $current . '>' . $user->lang($title) . '</option>';
|
'value' => $value,
|
||||||
|
'label' => $user->lang($title),
|
||||||
|
'selected' => $selected !== false && $value == $selected,
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($captchas['unavailable'] as $value => $title)
|
foreach ($captchas['unavailable'] as $value => $title)
|
||||||
{
|
{
|
||||||
$current = ($selected !== false && $value == $selected) ? ' selected="selected"' : '';
|
$captcha_options[] = [
|
||||||
$captcha_select .= '<option value="' . $value . '"' . $current . ' class="disabled-option">' . $user->lang($title) . '</option>';
|
'value' => $value,
|
||||||
|
'label' => $user->lang($title),
|
||||||
|
'selected' => $selected !== false && $value == $selected,
|
||||||
|
'class' => 'disabled-option',
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
$demo_captcha = $factory->get_instance($selected);
|
$demo_captcha = $factory->get_instance($selected);
|
||||||
|
@ -168,8 +173,12 @@ class acp_captcha
|
||||||
$template->assign_vars(array(
|
$template->assign_vars(array(
|
||||||
'CAPTCHA_PREVIEW_TPL' => $demo_captcha->get_demo_template($id),
|
'CAPTCHA_PREVIEW_TPL' => $demo_captcha->get_demo_template($id),
|
||||||
'S_CAPTCHA_HAS_CONFIG' => $demo_captcha->has_config(),
|
'S_CAPTCHA_HAS_CONFIG' => $demo_captcha->has_config(),
|
||||||
'CAPTCHA_SELECT' => $captcha_select,
|
'CAPTCHA_SELECT' => [
|
||||||
'ERROR_MSG' => implode('<br />', $error),
|
'tag' => 'select',
|
||||||
|
'name' => 'select_captcha',
|
||||||
|
'options' => $captcha_options,
|
||||||
|
],
|
||||||
|
'ERRORS' => $errors,
|
||||||
|
|
||||||
'U_ACTION' => $this->u_action,
|
'U_ACTION' => $this->u_action,
|
||||||
));
|
));
|
||||||
|
|
|
@ -972,7 +972,7 @@ class acp_extensions
|
||||||
catch (exception_interface $e)
|
catch (exception_interface $e)
|
||||||
{
|
{
|
||||||
$message = call_user_func_array(array($this->user, 'lang'), array_merge(array($e->getMessage()), $e->get_parameters()));
|
$message = call_user_func_array(array($this->user, 'lang'), array_merge(array($e->getMessage()), $e->get_parameters()));
|
||||||
$this->template->assign_block_vars('disabled', array(
|
$this->template->assign_block_vars('not_installed', array(
|
||||||
'META_DISPLAY_NAME' => $this->user->lang('EXTENSION_INVALID_LIST', $name, $message),
|
'META_DISPLAY_NAME' => $this->user->lang('EXTENSION_INVALID_LIST', $name, $message),
|
||||||
'S_VERSIONCHECK' => false,
|
'S_VERSIONCHECK' => false,
|
||||||
));
|
));
|
||||||
|
@ -986,9 +986,9 @@ class acp_extensions
|
||||||
$block_vars['NAME'] = $name;
|
$block_vars['NAME'] = $name;
|
||||||
$block_vars['U_DETAILS'] = $this->u_action . '&action=details&ext_name=' . urlencode($name);
|
$block_vars['U_DETAILS'] = $this->u_action . '&action=details&ext_name=' . urlencode($name);
|
||||||
|
|
||||||
$this->template->assign_block_vars('disabled', $block_vars);
|
$this->template->assign_block_vars('not_installed', $block_vars);
|
||||||
|
|
||||||
$this->output_actions('disabled', array(
|
$this->output_actions('not_installed', array(
|
||||||
'ENABLE' => $this->u_action . '&action=enable_pre&ext_name=' . urlencode($name),
|
'ENABLE' => $this->u_action . '&action=enable_pre&ext_name=' . urlencode($name),
|
||||||
'REMOVE' => $this->u_catalog_action . '&action=remove&extension=' . urlencode($block_vars['META_NAME']),
|
'REMOVE' => $this->u_catalog_action . '&action=remove&extension=' . urlencode($block_vars['META_NAME']),
|
||||||
));
|
));
|
||||||
|
|
|
@ -213,13 +213,7 @@ class acp_forums
|
||||||
phpbb_cache_moderators($db, $phpbb_container->get('dbal.tools'), $cache, $auth);
|
phpbb_cache_moderators($db, $phpbb_container->get('dbal.tools'), $cache, $auth);
|
||||||
$copied_permissions = true;
|
$copied_permissions = true;
|
||||||
}
|
}
|
||||||
/* Commented out because of questionable UI workflow - re-visit for 3.0.7
|
|
||||||
else if (!$this->parent_id && $action != 'edit' && $auth->acl_get('a_fauth') && $auth->acl_get('a_authusers') && $auth->acl_get('a_authgroups') && $auth->acl_get('a_mauth'))
|
|
||||||
{
|
|
||||||
$this->copy_permission_page($forum_data);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
$auth->acl_clear_prefetch();
|
$auth->acl_clear_prefetch();
|
||||||
|
|
||||||
$acl_url = '&mode=setting_forum_local&forum_id[]=' . $forum_data['forum_id'];
|
$acl_url = '&mode=setting_forum_local&forum_id[]=' . $forum_data['forum_id'];
|
||||||
|
|
|
@ -396,7 +396,7 @@ class acp_groups
|
||||||
$allow_desc_urls = $request->variable('desc_parse_urls', false);
|
$allow_desc_urls = $request->variable('desc_parse_urls', false);
|
||||||
$allow_desc_smilies = $request->variable('desc_parse_smilies', false);
|
$allow_desc_smilies = $request->variable('desc_parse_smilies', false);
|
||||||
|
|
||||||
$submit_ary = array(
|
$submit_ary = [
|
||||||
'colour' => $request->variable('group_colour', ''),
|
'colour' => $request->variable('group_colour', ''),
|
||||||
'rank' => $request->variable('group_rank', 0),
|
'rank' => $request->variable('group_rank', 0),
|
||||||
'receive_pm' => isset($_REQUEST['group_receive_pm']) ? 1 : 0,
|
'receive_pm' => isset($_REQUEST['group_receive_pm']) ? 1 : 0,
|
||||||
|
@ -406,7 +406,13 @@ class acp_groups
|
||||||
'max_recipients' => $request->variable('group_max_recipients', 0),
|
'max_recipients' => $request->variable('group_max_recipients', 0),
|
||||||
'founder_manage' => 0,
|
'founder_manage' => 0,
|
||||||
'skip_auth' => $request->variable('group_skip_auth', 0),
|
'skip_auth' => $request->variable('group_skip_auth', 0),
|
||||||
);
|
|
||||||
|
// Initialize avatar data
|
||||||
|
'avatar' => $avatar_data['avatar'] ?? '',
|
||||||
|
'avatar_type' => $avatar_data['avatar_type'] ?? '',
|
||||||
|
'avatar_height' => $avatar_data['avatar_height'] ?? 0,
|
||||||
|
'avatar_width' => $avatar_data['avatar_width'] ?? 0,
|
||||||
|
];
|
||||||
|
|
||||||
if ($user->data['user_type'] == USER_FOUNDER)
|
if ($user->data['user_type'] == USER_FOUNDER)
|
||||||
{
|
{
|
||||||
|
|
|
@ -50,7 +50,7 @@ class acp_logs
|
||||||
$pagination = $phpbb_container->get('pagination');
|
$pagination = $phpbb_container->get('pagination');
|
||||||
|
|
||||||
// Delete entries if requested and able
|
// Delete entries if requested and able
|
||||||
if (($deletemark || $deleteall) && $auth->acl_get('a_clearlogs'))
|
if (($deleteall || ($deletemark && count($marked))) && $auth->acl_get('a_clearlogs'))
|
||||||
{
|
{
|
||||||
if (confirm_box(true))
|
if (confirm_box(true))
|
||||||
{
|
{
|
||||||
|
|
|
@ -1094,7 +1094,7 @@ class acp_users
|
||||||
$s_action_options .= '<option value="' . $value . '">' . $user->lang['USER_ADMIN_' . $lang] . '</option>';
|
$s_action_options .= '<option value="' . $value . '">' . $user->lang['USER_ADMIN_' . $lang] . '</option>';
|
||||||
}
|
}
|
||||||
|
|
||||||
$last_active = (!empty($user_row['session_time'])) ? $user_row['session_time'] : $user_row['user_last_active'];
|
$last_active = $user_row['user_last_active'] ?: ($user_row['session_time'] ?? 0);
|
||||||
|
|
||||||
$inactive_reason = '';
|
$inactive_reason = '';
|
||||||
if ($user_row['user_type'] == USER_INACTIVE)
|
if ($user_row['user_type'] == USER_INACTIVE)
|
||||||
|
|
|
@ -651,38 +651,4 @@ class bbcode
|
||||||
|
|
||||||
return $code;
|
return $code;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Function to perform custom bbcode second pass by extensions
|
|
||||||
* can be used to assign bbcode pattern replacement
|
|
||||||
* Example: '#\[list=([^\[]+):$uid\]#e' => "\$this->bbcode_second_pass_by_extension('\$1')"
|
|
||||||
*
|
|
||||||
* Accepts variable number of parameters
|
|
||||||
*
|
|
||||||
* @return bool Second pass result
|
|
||||||
*
|
|
||||||
* @deprecated 3.2.10 (To be removed 4.0.0)
|
|
||||||
*/
|
|
||||||
function bbcode_second_pass_by_extension()
|
|
||||||
{
|
|
||||||
global $phpbb_dispatcher;
|
|
||||||
|
|
||||||
$return = false;
|
|
||||||
$params_array = func_get_args();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Event to perform bbcode second pass with
|
|
||||||
* the custom validating methods provided by extensions
|
|
||||||
*
|
|
||||||
* @event core.bbcode_second_pass_by_extension
|
|
||||||
* @var array params_array Array with the function parameters
|
|
||||||
* @var mixed return Second pass result to return
|
|
||||||
*
|
|
||||||
* @since 3.1.5-RC1
|
|
||||||
*/
|
|
||||||
$vars = array('params_array', 'return');
|
|
||||||
extract($phpbb_dispatcher->trigger_event('core.bbcode_second_pass_by_extension', compact($vars)));
|
|
||||||
|
|
||||||
return $return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,8 +49,6 @@ function register_compatibility_globals()
|
||||||
|
|
||||||
/* @var $request \phpbb\request\request_interface */
|
/* @var $request \phpbb\request\request_interface */
|
||||||
$request = $phpbb_container->get('request');
|
$request = $phpbb_container->get('request');
|
||||||
// Inject request instance, so only this instance is used with request_var
|
|
||||||
request_var('', 0, false, false, $request);
|
|
||||||
|
|
||||||
/* @var $user \phpbb\user */
|
/* @var $user \phpbb\user */
|
||||||
$user = $phpbb_container->get('user');
|
$user = $phpbb_container->get('user');
|
||||||
|
@ -67,8 +65,6 @@ function register_compatibility_globals()
|
||||||
// Grab global variables, re-cache if necessary
|
// Grab global variables, re-cache if necessary
|
||||||
/* @var $config phpbb\config\db */
|
/* @var $config phpbb\config\db */
|
||||||
$config = $phpbb_container->get('config');
|
$config = $phpbb_container->get('config');
|
||||||
set_config('', '', false, $config);
|
|
||||||
set_config_count('', 0, false, $config);
|
|
||||||
|
|
||||||
/* @var $phpbb_log \phpbb\log\log_interface */
|
/* @var $phpbb_log \phpbb\log\log_interface */
|
||||||
$phpbb_log = $phpbb_container->get('log');
|
$phpbb_log = $phpbb_container->get('log');
|
||||||
|
|
|
@ -152,9 +152,13 @@ define('FULL_FOLDER_DELETE', -2);
|
||||||
define('FULL_FOLDER_HOLD', -1);
|
define('FULL_FOLDER_HOLD', -1);
|
||||||
|
|
||||||
// Confirm types
|
// Confirm types
|
||||||
|
/** @deprecated 4.0.0-a1 Replaced by \phpbb\captcha\plugins\confirm_type::REGISTRATION, to be removed in 5.0.0-a1 */
|
||||||
define('CONFIRM_REG', 1);
|
define('CONFIRM_REG', 1);
|
||||||
|
/** @deprecated 4.0.0-a1 Replaced by \phpbb\captcha\plugins\confirm_type::LOGIN, to be removed in 5.0.0-a1 */
|
||||||
define('CONFIRM_LOGIN', 2);
|
define('CONFIRM_LOGIN', 2);
|
||||||
|
/** @deprecated 4.0.0-a1 Replaced by \phpbb\captcha\plugins\confirm_type::POST, to be removed in 5.0.0-a1 */
|
||||||
define('CONFIRM_POST', 3);
|
define('CONFIRM_POST', 3);
|
||||||
|
/** @deprecated 4.0.0-a1 Replaced by \phpbb\captcha\plugins\confirm_type::REPORT, to be removed in 5.0.0-a1 */
|
||||||
define('CONFIRM_REPORT', 4);
|
define('CONFIRM_REPORT', 4);
|
||||||
|
|
||||||
// Categories - Attachments
|
// Categories - Attachments
|
||||||
|
@ -174,7 +178,7 @@ define('BBCODE_UID_LEN', 8);
|
||||||
|
|
||||||
// Number of core BBCodes
|
// Number of core BBCodes
|
||||||
define('NUM_CORE_BBCODES', 12);
|
define('NUM_CORE_BBCODES', 12);
|
||||||
define('NUM_PREDEFINED_BBCODES', 22);
|
define('NUM_PREDEFINED_BBCODES', 20);
|
||||||
|
|
||||||
// BBCode IDs
|
// BBCode IDs
|
||||||
define('BBCODE_ID_QUOTE', 0);
|
define('BBCODE_ID_QUOTE', 0);
|
||||||
|
|
|
@ -107,9 +107,17 @@ function phpbb_gmgetdate($time = false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// getdate() interprets timestamps in local time.
|
// getdate() interprets timestamps in local time.
|
||||||
// What follows uses the fact that getdate() and
|
// So use UTC timezone temporarily to get UTC date info array.
|
||||||
// date('Z') balance each other out.
|
$current_timezone = date_default_timezone_get();
|
||||||
return getdate($time - date('Z'));
|
|
||||||
|
// Set UTC timezone and get respective date info
|
||||||
|
date_default_timezone_set('UTC');
|
||||||
|
$date_info = getdate($time);
|
||||||
|
|
||||||
|
// Restore timezone back
|
||||||
|
date_default_timezone_set($current_timezone);
|
||||||
|
|
||||||
|
return $date_info;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2931,8 +2939,16 @@ function msg_handler($errno, $msg_text, $errfile, $errline): bool
|
||||||
global $phpbb_root_path, $msg_title, $msg_long_text, $phpbb_log;
|
global $phpbb_root_path, $msg_title, $msg_long_text, $phpbb_log;
|
||||||
global $phpbb_container;
|
global $phpbb_container;
|
||||||
|
|
||||||
|
// https://www.php.net/manual/en/language.operators.errorcontrol.php
|
||||||
|
// error_reporting() return a different error code inside the error handler after php 8.0
|
||||||
|
$suppresed = E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR | E_RECOVERABLE_ERROR | E_PARSE;
|
||||||
|
if (PHP_VERSION_ID < 80000)
|
||||||
|
{
|
||||||
|
$suppresed = 0;
|
||||||
|
}
|
||||||
|
|
||||||
// Do not display notices if we suppress them via @
|
// Do not display notices if we suppress them via @
|
||||||
if (error_reporting() == 0 && $errno != E_USER_ERROR && $errno != E_USER_WARNING && $errno != E_USER_NOTICE)
|
if (error_reporting() == $suppresed && $errno != E_USER_ERROR && $errno != E_USER_WARNING && $errno != E_USER_NOTICE)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -3847,7 +3863,7 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
|
||||||
'U_SEARCH_UNANSWERED' => append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=unanswered'),
|
'U_SEARCH_UNANSWERED' => append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=unanswered'),
|
||||||
'U_SEARCH_UNREAD' => append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=unreadposts'),
|
'U_SEARCH_UNREAD' => append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=unreadposts'),
|
||||||
'U_SEARCH_ACTIVE_TOPICS'=> append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=active_topics'),
|
'U_SEARCH_ACTIVE_TOPICS'=> append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=active_topics'),
|
||||||
'U_DELETE_COOKIES' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=delete_cookies'),
|
'U_DELETE_COOKIES' => $controller_helper->route('phpbb_ucp_delete_cookies_controller'),
|
||||||
'U_CONTACT_US' => ($config['contact_admin_form_enable'] && $config['email_enable']) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=contactadmin') : '',
|
'U_CONTACT_US' => ($config['contact_admin_form_enable'] && $config['email_enable']) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=contactadmin') : '',
|
||||||
'U_TEAM' => (!$auth->acl_get('u_viewprofile')) ? '' : append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=team'),
|
'U_TEAM' => (!$auth->acl_get('u_viewprofile')) ? '' : append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=team'),
|
||||||
'U_TERMS_USE' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=terms'),
|
'U_TERMS_USE' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=terms'),
|
||||||
|
@ -3855,6 +3871,7 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
|
||||||
'UA_PRIVACY' => addslashes(append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=privacy')),
|
'UA_PRIVACY' => addslashes(append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=privacy')),
|
||||||
'U_RESTORE_PERMISSIONS' => ($user->data['user_perm_from'] && $auth->acl_get('a_switchperm')) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=restore_perm') : '',
|
'U_RESTORE_PERMISSIONS' => ($user->data['user_perm_from'] && $auth->acl_get('a_switchperm')) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=restore_perm') : '',
|
||||||
'U_FEED' => $controller_helper->route('phpbb_feed_index'),
|
'U_FEED' => $controller_helper->route('phpbb_feed_index'),
|
||||||
|
'U_MANIFEST' => $controller_helper->route('phpbb_manifest_controller'),
|
||||||
|
|
||||||
'S_ALLOW_MENTIONS' => ($config['allow_mentions'] && $auth->acl_get('u_mention') && (empty($forum_id) || $auth->acl_get('f_mention', $forum_id))) ? true : false,
|
'S_ALLOW_MENTIONS' => ($config['allow_mentions'] && $auth->acl_get('u_mention') && (empty($forum_id) || $auth->acl_get('f_mention', $forum_id))) ? true : false,
|
||||||
'S_MENTION_NAMES_LIMIT' => $config['mention_names_limit'],
|
'S_MENTION_NAMES_LIMIT' => $config['mention_names_limit'],
|
||||||
|
@ -4023,7 +4040,9 @@ function phpbb_generate_debug_output(\phpbb\db\driver\driver_interface $db, \php
|
||||||
|
|
||||||
if ($auth->acl_get('a_'))
|
if ($auth->acl_get('a_'))
|
||||||
{
|
{
|
||||||
$debug_info[] = '<a href="' . build_url() . '&explain=1">SQL Explain</a>';
|
$page_url = build_url();
|
||||||
|
$page_url .= ((!str_contains($page_url, '?')) ? '?' : '&') . 'explain=1';
|
||||||
|
$debug_info[] = '<a href="' . $page_url . '">SQL Explain</a>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -203,8 +203,8 @@ function adm_page_footer($copyright_html = true)
|
||||||
*/
|
*/
|
||||||
function adm_back_link($u_action)
|
function adm_back_link($u_action)
|
||||||
{
|
{
|
||||||
global $user;
|
global $language;
|
||||||
return '<br /><br /><a href="' . $u_action . '">« ' . $user->lang['BACK_TO_PREV'] . '</a>';
|
return '<br /><br /><a href="' . $u_action . '">« ' . $language->lang('BACK_TO_PREV') . '</a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -19,835 +19,6 @@ if (!defined('IN_PHPBB'))
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Hash the password
|
|
||||||
*
|
|
||||||
* @deprecated 3.1.0-a2 (To be removed: 4.0.0)
|
|
||||||
*
|
|
||||||
* @param string $password Password to be hashed
|
|
||||||
*
|
|
||||||
* @return string|bool Password hash or false if something went wrong during hashing
|
|
||||||
*/
|
|
||||||
function phpbb_hash($password)
|
|
||||||
{
|
|
||||||
global $phpbb_container;
|
|
||||||
|
|
||||||
/* @var $passwords_manager \phpbb\passwords\manager */
|
|
||||||
$passwords_manager = $phpbb_container->get('passwords.manager');
|
|
||||||
return $passwords_manager->hash($password);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check for correct password
|
|
||||||
*
|
|
||||||
* @deprecated 3.1.0-a2 (To be removed: 4.0.0)
|
|
||||||
*
|
|
||||||
* @param string $password The password in plain text
|
|
||||||
* @param string $hash The stored password hash
|
|
||||||
*
|
|
||||||
* @return bool Returns true if the password is correct, false if not.
|
|
||||||
*/
|
|
||||||
function phpbb_check_hash($password, $hash)
|
|
||||||
{
|
|
||||||
global $phpbb_container;
|
|
||||||
|
|
||||||
/* @var $passwords_manager \phpbb\passwords\manager */
|
|
||||||
$passwords_manager = $phpbb_container->get('passwords.manager');
|
|
||||||
return $passwords_manager->check($password, $hash);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Eliminates useless . and .. components from specified path.
|
|
||||||
*
|
|
||||||
* Deprecated, use storage helper class instead
|
|
||||||
*
|
|
||||||
* @param string $path Path to clean
|
|
||||||
* @return string Cleaned path
|
|
||||||
*
|
|
||||||
* @deprecated 3.1.0 (To be removed: 4.0.0)
|
|
||||||
*/
|
|
||||||
function phpbb_clean_path($path)
|
|
||||||
{
|
|
||||||
return \phpbb\filesystem\helper::clean_path($path);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Pick a timezone
|
|
||||||
*
|
|
||||||
* @param string $default A timezone to select
|
|
||||||
* @param boolean $truncate Shall we truncate the options text
|
|
||||||
*
|
|
||||||
* @return string Returns the options for timezone selector only
|
|
||||||
*
|
|
||||||
* @deprecated 3.1.0 (To be removed: 4.0.0)
|
|
||||||
*/
|
|
||||||
function tz_select($default = '', $truncate = false)
|
|
||||||
{
|
|
||||||
global $user;
|
|
||||||
|
|
||||||
return phpbb_timezone_select($user, $default, $truncate);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Cache moderators. Called whenever permissions are changed
|
|
||||||
* via admin_permissions. Changes of usernames and group names
|
|
||||||
* must be carried through for the moderators table.
|
|
||||||
*
|
|
||||||
* @deprecated 3.1.0 (To be removed: 4.0.0)
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function cache_moderators()
|
|
||||||
{
|
|
||||||
global $db, $cache, $auth, $phpbb_container;
|
|
||||||
phpbb_cache_moderators($db, $phpbb_container->get('dbal.tools'), $cache, $auth);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Removes moderators and administrators from foe lists.
|
|
||||||
*
|
|
||||||
* @deprecated 3.1.0 (To be removed: 4.0.0)
|
|
||||||
* @param array|bool $group_id If an array, remove all members of this group from foe lists, or false to ignore
|
|
||||||
* @param array|bool $user_id If an array, remove this user from foe lists, or false to ignore
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function update_foes($group_id = false, $user_id = false)
|
|
||||||
{
|
|
||||||
global $db, $auth;
|
|
||||||
return phpbb_update_foes($db, $auth, $group_id, $user_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get user rank title and image
|
|
||||||
*
|
|
||||||
* @param int $user_rank the current stored users rank id
|
|
||||||
* @param int $user_posts the users number of posts
|
|
||||||
* @param string &$rank_title the rank title will be stored here after execution
|
|
||||||
* @param string &$rank_img the rank image as full img tag is stored here after execution
|
|
||||||
* @param string &$rank_img_src the rank image source is stored here after execution
|
|
||||||
*
|
|
||||||
* @deprecated 3.1.0-RC5 (To be removed: 4.0.0)
|
|
||||||
*
|
|
||||||
* Note: since we do not want to break backwards-compatibility, this function will only properly assign ranks to guests if you call it for them with user_posts == false
|
|
||||||
*/
|
|
||||||
function get_user_rank($user_rank, $user_posts, &$rank_title, &$rank_img, &$rank_img_src)
|
|
||||||
{
|
|
||||||
global $phpbb_root_path, $phpEx;
|
|
||||||
if (!function_exists('phpbb_get_user_rank'))
|
|
||||||
{
|
|
||||||
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
|
|
||||||
}
|
|
||||||
|
|
||||||
$rank_data = phpbb_get_user_rank(array('user_rank' => $user_rank), $user_posts);
|
|
||||||
$rank_title = $rank_data['title'];
|
|
||||||
$rank_img = $rank_data['img'];
|
|
||||||
$rank_img_src = $rank_data['img_src'];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieve contents from remotely stored file
|
|
||||||
*
|
|
||||||
* @deprecated 3.1.2 Use file_downloader instead
|
|
||||||
*/
|
|
||||||
function get_remote_file($host, $directory, $filename, &$errstr, &$errno, $port = 80, $timeout = 6)
|
|
||||||
{
|
|
||||||
global $phpbb_container;
|
|
||||||
|
|
||||||
// Get file downloader and assign $errstr and $errno
|
|
||||||
/* @var $file_downloader \phpbb\file_downloader */
|
|
||||||
$file_downloader = $phpbb_container->get('file_downloader');
|
|
||||||
|
|
||||||
$file_data = $file_downloader->get($host, $directory, $filename, $port, $timeout);
|
|
||||||
$errstr = $file_downloader->get_error_string();
|
|
||||||
$errno = $file_downloader->get_error_number();
|
|
||||||
|
|
||||||
return $file_data;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add log entry
|
|
||||||
*
|
|
||||||
* string $mode The mode defines which log_type is used and from which log the entry is retrieved
|
|
||||||
* int $forum_id Mode 'mod' ONLY: forum id of the related item, NOT INCLUDED otherwise
|
|
||||||
* int $topic_id Mode 'mod' ONLY: topic id of the related item, NOT INCLUDED otherwise
|
|
||||||
* int $reportee_id Mode 'user' ONLY: user id of the reportee, NOT INCLUDED otherwise
|
|
||||||
* string $log_operation Name of the operation
|
|
||||||
* array $additional_data More arguments can be added, depending on the log_type
|
|
||||||
*
|
|
||||||
* @return int|bool Returns the log_id, if the entry was added to the database, false otherwise.
|
|
||||||
*
|
|
||||||
* @deprecated 3.1.0 (To be removed: 4.0.0)
|
|
||||||
*/
|
|
||||||
function add_log()
|
|
||||||
{
|
|
||||||
global $phpbb_log, $user;
|
|
||||||
|
|
||||||
$args = func_get_args();
|
|
||||||
$mode = array_shift($args);
|
|
||||||
|
|
||||||
// This looks kind of dirty, but add_log has some additional data before the log_operation
|
|
||||||
$additional_data = array();
|
|
||||||
switch ($mode)
|
|
||||||
{
|
|
||||||
case 'admin':
|
|
||||||
case 'critical':
|
|
||||||
break;
|
|
||||||
case 'mod':
|
|
||||||
$additional_data['forum_id'] = array_shift($args);
|
|
||||||
$additional_data['topic_id'] = array_shift($args);
|
|
||||||
break;
|
|
||||||
case 'user':
|
|
||||||
$additional_data['reportee_id'] = array_shift($args);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
$log_operation = array_shift($args);
|
|
||||||
$additional_data = array_merge($additional_data, $args);
|
|
||||||
|
|
||||||
$user_id = (empty($user->data)) ? ANONYMOUS : $user->data['user_id'];
|
|
||||||
$user_ip = (empty($user->ip)) ? '' : $user->ip;
|
|
||||||
|
|
||||||
return $phpbb_log->add($mode, $user_id, $user_ip, $log_operation, time(), $additional_data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets a configuration option's value.
|
|
||||||
*
|
|
||||||
* Please note that this function does not update the is_dynamic value for
|
|
||||||
* an already existing config option.
|
|
||||||
*
|
|
||||||
* @param string $config_name The configuration option's name
|
|
||||||
* @param string $config_value New configuration value
|
|
||||||
* @param bool $is_dynamic Whether this variable should be cached (false) or
|
|
||||||
* if it changes too frequently (true) to be
|
|
||||||
* efficiently cached.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @deprecated 3.1.0 (To be removed: 4.0.0)
|
|
||||||
*/
|
|
||||||
function set_config($config_name, $config_value, $is_dynamic = false, \phpbb\config\config $set_config = null)
|
|
||||||
{
|
|
||||||
static $config = null;
|
|
||||||
|
|
||||||
if ($set_config !== null)
|
|
||||||
{
|
|
||||||
$config = $set_config;
|
|
||||||
|
|
||||||
if (empty($config_name))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$config->set($config_name, $config_value, !$is_dynamic);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Increments an integer config value directly in the database.
|
|
||||||
*
|
|
||||||
* @param string $config_name The configuration option's name
|
|
||||||
* @param int $increment Amount to increment by
|
|
||||||
* @param bool $is_dynamic Whether this variable should be cached (false) or
|
|
||||||
* if it changes too frequently (true) to be
|
|
||||||
* efficiently cached.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @deprecated 3.1.0 (To be removed: 4.0.0)
|
|
||||||
*/
|
|
||||||
function set_config_count($config_name, $increment, $is_dynamic = false, \phpbb\config\config $set_config = null)
|
|
||||||
{
|
|
||||||
static $config = null;
|
|
||||||
if ($set_config !== null)
|
|
||||||
{
|
|
||||||
$config = $set_config;
|
|
||||||
if (empty($config_name))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$config->increment($config_name, $increment, !$is_dynamic);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Wrapper function of \phpbb\request\request::variable which exists for backwards compatability.
|
|
||||||
* See {@link \phpbb\request\request_interface::variable \phpbb\request\request_interface::variable} for
|
|
||||||
* documentation of this function's use.
|
|
||||||
*
|
|
||||||
* @deprecated 3.1.0 (To be removed: 4.0.0)
|
|
||||||
* @param mixed $var_name The form variable's name from which data shall be retrieved.
|
|
||||||
* If the value is an array this may be an array of indizes which will give
|
|
||||||
* direct access to a value at any depth. E.g. if the value of "var" is array(1 => "a")
|
|
||||||
* then specifying array("var", 1) as the name will return "a".
|
|
||||||
* If you pass an instance of {@link \phpbb\request\request_interface phpbb_request_interface}
|
|
||||||
* as this parameter it will overwrite the current request class instance. If you do
|
|
||||||
* not do so, it will create its own instance (but leave superglobals enabled).
|
|
||||||
* @param mixed $default A default value that is returned if the variable was not set.
|
|
||||||
* This function will always return a value of the same type as the default.
|
|
||||||
* @param bool $multibyte If $default is a string this paramater has to be true if the variable may contain any UTF-8 characters
|
|
||||||
* Default is false, causing all bytes outside the ASCII range (0-127) to be replaced with question marks
|
|
||||||
* @param bool $cookie This param is mapped to \phpbb\request\request_interface::COOKIE as the last param for
|
|
||||||
* \phpbb\request\request_interface::variable for backwards compatability reasons.
|
|
||||||
* @param \phpbb\request\request_interface|null|false $request
|
|
||||||
* If an instance of \phpbb\request\request_interface is given the instance is stored in
|
|
||||||
* a static variable and used for all further calls where this parameters is null. Until
|
|
||||||
* the function is called with an instance it automatically creates a new \phpbb\request\request
|
|
||||||
* instance on every call. By passing false this per-call instantiation can be restored
|
|
||||||
* after having passed in a \phpbb\request\request_interface instance.
|
|
||||||
*
|
|
||||||
* @return mixed The value of $_REQUEST[$var_name] run through {@link set_var set_var} to ensure that the type is the
|
|
||||||
* the same as that of $default. If the variable is not set $default is returned.
|
|
||||||
*/
|
|
||||||
function request_var($var_name, $default, $multibyte = false, $cookie = false, $request = null)
|
|
||||||
{
|
|
||||||
// This is all just an ugly hack to add "Dependency Injection" to a function
|
|
||||||
// the only real code is the function call which maps this function to a method.
|
|
||||||
static $static_request = null;
|
|
||||||
if ($request instanceof \phpbb\request\request_interface)
|
|
||||||
{
|
|
||||||
$static_request = $request;
|
|
||||||
if (empty($var_name))
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if ($request === false)
|
|
||||||
{
|
|
||||||
$static_request = null;
|
|
||||||
if (empty($var_name))
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$tmp_request = $static_request;
|
|
||||||
// no request class set, create a temporary one ourselves to keep backwards compatibility
|
|
||||||
if ($tmp_request === null)
|
|
||||||
{
|
|
||||||
// false param: enable super globals, so the created request class does not
|
|
||||||
// make super globals inaccessible everywhere outside this function.
|
|
||||||
$tmp_request = new \phpbb\request\request(new \phpbb\request\type_cast_helper(), false);
|
|
||||||
}
|
|
||||||
return $tmp_request->variable($var_name, $default, $multibyte, ($cookie) ? \phpbb\request\request_interface::COOKIE : \phpbb\request\request_interface::REQUEST);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get tables of a database
|
|
||||||
*
|
|
||||||
* @deprecated 3.1.0 (To be removed: 4.0.0)
|
|
||||||
*/
|
|
||||||
function get_tables($db)
|
|
||||||
{
|
|
||||||
throw new BadFunctionCallException('function removed from phpBB core, use db_tools service instead.');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Global function for chmodding directories and files for internal use
|
|
||||||
*
|
|
||||||
* This function determines owner and group whom the file belongs to and user and group of PHP and then set safest possible file permissions.
|
|
||||||
* The function determines owner and group from common.php file and sets the same to the provided file.
|
|
||||||
* The function uses bit fields to build the permissions.
|
|
||||||
* The function sets the appropiate execute bit on directories.
|
|
||||||
*
|
|
||||||
* Supported constants representing bit fields are:
|
|
||||||
*
|
|
||||||
* CHMOD_ALL - all permissions (7)
|
|
||||||
* CHMOD_READ - read permission (4)
|
|
||||||
* CHMOD_WRITE - write permission (2)
|
|
||||||
* CHMOD_EXECUTE - execute permission (1)
|
|
||||||
*
|
|
||||||
* NOTE: The function uses POSIX extension and fileowner()/filegroup() functions. If any of them is disabled, this function tries to build proper permissions, by calling is_readable() and is_writable() functions.
|
|
||||||
*
|
|
||||||
* @param string $filename The file/directory to be chmodded
|
|
||||||
* @param int $perms Permissions to set
|
|
||||||
*
|
|
||||||
* @return bool true on success, otherwise false
|
|
||||||
*
|
|
||||||
* @deprecated 3.2.0-dev use \phpbb\filesystem\filesystem::phpbb_chmod() instead
|
|
||||||
*/
|
|
||||||
function phpbb_chmod($filename, $perms = CHMOD_READ)
|
|
||||||
{
|
|
||||||
global $phpbb_filesystem;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
$phpbb_filesystem->phpbb_chmod($filename, $perms);
|
|
||||||
}
|
|
||||||
catch (\phpbb\filesystem\exception\filesystem_exception $e)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Test if a file/directory is writable
|
|
||||||
*
|
|
||||||
* This function calls the native is_writable() when not running under
|
|
||||||
* Windows and it is not disabled.
|
|
||||||
*
|
|
||||||
* @param string $file Path to perform write test on
|
|
||||||
* @return bool True when the path is writable, otherwise false.
|
|
||||||
*
|
|
||||||
* @deprecated 3.2.0-dev use \phpbb\filesystem\filesystem::is_writable() instead
|
|
||||||
*/
|
|
||||||
function phpbb_is_writable($file)
|
|
||||||
{
|
|
||||||
global $phpbb_filesystem;
|
|
||||||
|
|
||||||
return $phpbb_filesystem->is_writable($file);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if a path ($path) is absolute or relative
|
|
||||||
*
|
|
||||||
* @param string $path Path to check absoluteness of
|
|
||||||
* @return boolean
|
|
||||||
*
|
|
||||||
* @deprecated 3.2.0-dev use \phpbb\filesystem\helper::is_absolute_path() instead
|
|
||||||
*/
|
|
||||||
function phpbb_is_absolute($path)
|
|
||||||
{
|
|
||||||
return \phpbb\filesystem\helper::is_absolute_path($path);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A wrapper for realpath
|
|
||||||
*
|
|
||||||
* @deprecated 3.2.0-dev use \phpbb\filesystem\helper::realpath() instead
|
|
||||||
*/
|
|
||||||
function phpbb_realpath($path)
|
|
||||||
{
|
|
||||||
return \phpbb\filesystem\helper::realpath($path);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Determine which plural form we should use.
|
|
||||||
* For some languages this is not as simple as for English.
|
|
||||||
*
|
|
||||||
* @param int $rule ID of the plural rule we want to use, see https://area51.phpbb.com/docs/dev/3.3.x/language/plurals.html
|
|
||||||
* @param int|float $number The number we want to get the plural case for. Float numbers are floored.
|
|
||||||
* @return int The plural-case we need to use for the number plural-rule combination
|
|
||||||
*
|
|
||||||
* @deprecated 3.2.0-dev (To be removed: 4.0.0)
|
|
||||||
*/
|
|
||||||
function phpbb_get_plural_form($rule, $number)
|
|
||||||
{
|
|
||||||
global $phpbb_container;
|
|
||||||
|
|
||||||
/** @var \phpbb\language\language $language */
|
|
||||||
$language = $phpbb_container->get('language');
|
|
||||||
return $language->get_plural_form($number, $rule);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return bool Always true
|
|
||||||
* @deprecated 3.2.0-dev
|
|
||||||
*/
|
|
||||||
function phpbb_pcre_utf8_support()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Casts a variable to the given type.
|
|
||||||
*
|
|
||||||
* @deprecated 3.1 (To be removed 4.0.0)
|
|
||||||
*/
|
|
||||||
function set_var(&$result, $var, $type, $multibyte = false)
|
|
||||||
{
|
|
||||||
// no need for dependency injection here, if you have the object, call the method yourself!
|
|
||||||
$type_cast_helper = new \phpbb\request\type_cast_helper();
|
|
||||||
$type_cast_helper->set_var($result, $var, $type, $multibyte);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Delete Attachments
|
|
||||||
*
|
|
||||||
* @deprecated 3.2.0-a1 (To be removed: 4.0.0)
|
|
||||||
*
|
|
||||||
* @param string $mode can be: post|message|topic|attach|user
|
|
||||||
* @param mixed $ids can be: post_ids, message_ids, topic_ids, attach_ids, user_ids
|
|
||||||
* @param bool $resync set this to false if you are deleting posts or topics
|
|
||||||
*/
|
|
||||||
function delete_attachments($mode, $ids, $resync = true)
|
|
||||||
{
|
|
||||||
global $phpbb_container;
|
|
||||||
|
|
||||||
/** @var \phpbb\attachment\manager $attachment_manager */
|
|
||||||
$attachment_manager = $phpbb_container->get('attachment.manager');
|
|
||||||
$num_deleted = $attachment_manager->delete($mode, $ids, $resync);
|
|
||||||
|
|
||||||
unset($attachment_manager);
|
|
||||||
|
|
||||||
return $num_deleted;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Delete attached file
|
|
||||||
*
|
|
||||||
* @deprecated 3.2.0-a1 (To be removed: 4.0.0)
|
|
||||||
*/
|
|
||||||
function phpbb_unlink($filename, $mode = 'file', $entry_removed = false)
|
|
||||||
{
|
|
||||||
global $phpbb_container;
|
|
||||||
|
|
||||||
/** @var \phpbb\attachment\manager $attachment_manager */
|
|
||||||
$attachment_manager = $phpbb_container->get('attachment.manager');
|
|
||||||
$unlink = $attachment_manager->unlink($filename, $mode, $entry_removed);
|
|
||||||
unset($attachment_manager);
|
|
||||||
|
|
||||||
return $unlink;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display reasons
|
|
||||||
*
|
|
||||||
* @deprecated 3.2.0-dev (To be removed: 4.0.0)
|
|
||||||
*/
|
|
||||||
function display_reasons($reason_id = 0)
|
|
||||||
{
|
|
||||||
global $phpbb_container;
|
|
||||||
|
|
||||||
$phpbb_container->get('phpbb.report.report_reason_list_provider')->display_reasons($reason_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Upload Attachment - filedata is generated here
|
|
||||||
* Uses upload class
|
|
||||||
*
|
|
||||||
* @deprecated 3.2.0-a1 (To be removed: 4.0.0)
|
|
||||||
*
|
|
||||||
* @param string $form_name The form name of the file upload input
|
|
||||||
* @param int $forum_id The id of the forum
|
|
||||||
* @param bool $local Whether the file is local or not
|
|
||||||
* @param string $local_storage The path to the local file
|
|
||||||
* @param bool $is_message Whether it is a PM or not
|
|
||||||
* @param array $local_filedata A filespec object created for the local file
|
|
||||||
*
|
|
||||||
* @return array File data array
|
|
||||||
*/
|
|
||||||
function upload_attachment($form_name, $forum_id, $local = false, $local_storage = '', $is_message = false, $local_filedata = false)
|
|
||||||
{
|
|
||||||
global $phpbb_container;
|
|
||||||
|
|
||||||
/** @var \phpbb\attachment\manager $attachment_manager */
|
|
||||||
$attachment_manager = $phpbb_container->get('attachment.manager');
|
|
||||||
$file = $attachment_manager->upload($form_name, $forum_id, $local, $local_storage, $is_message, $local_filedata);
|
|
||||||
unset($attachment_manager);
|
|
||||||
|
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Wrapper for php's checkdnsrr function.
|
|
||||||
*
|
|
||||||
* @param string $host Fully-Qualified Domain Name
|
|
||||||
* @param string $type Resource record type to lookup
|
|
||||||
* Supported types are: MX (default), A, AAAA, NS, TXT, CNAME
|
|
||||||
* Other types may work or may not work
|
|
||||||
*
|
|
||||||
* @return bool|null true if entry found,
|
|
||||||
* false if entry not found,
|
|
||||||
* null if this function is not supported by this environment
|
|
||||||
*
|
|
||||||
* Since null can also be returned, you probably want to compare the result
|
|
||||||
* with === true or === false,
|
|
||||||
*
|
|
||||||
* @deprecated 3.3.0-b2 (To be removed: 4.0.0)
|
|
||||||
*/
|
|
||||||
function phpbb_checkdnsrr($host, $type = 'MX')
|
|
||||||
{
|
|
||||||
return checkdnsrr($host, $type);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Wrapper for inet_ntop()
|
|
||||||
*
|
|
||||||
* Converts a packed internet address to a human readable representation
|
|
||||||
* inet_ntop() is supported by PHP since 5.1.0, since 5.3.0 also on Windows.
|
|
||||||
*
|
|
||||||
* @param string $in_addr A 32bit IPv4, or 128bit IPv6 address.
|
|
||||||
*
|
|
||||||
* @return mixed false on failure,
|
|
||||||
* string otherwise
|
|
||||||
*
|
|
||||||
* @deprecated 3.3.0-b2 (To be removed: 4.0.0)
|
|
||||||
*/
|
|
||||||
function phpbb_inet_ntop($in_addr)
|
|
||||||
{
|
|
||||||
return inet_ntop($in_addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Wrapper for inet_pton()
|
|
||||||
*
|
|
||||||
* Converts a human readable IP address to its packed in_addr representation
|
|
||||||
* inet_pton() is supported by PHP since 5.1.0, since 5.3.0 also on Windows.
|
|
||||||
*
|
|
||||||
* @param string $address A human readable IPv4 or IPv6 address.
|
|
||||||
*
|
|
||||||
* @return false|string false if address is invalid,
|
|
||||||
* in_addr representation of the given address otherwise (string)
|
|
||||||
*
|
|
||||||
* @deprecated 3.3.0-b2 (To be removed: 4.0.0)
|
|
||||||
*/
|
|
||||||
function phpbb_inet_pton($address)
|
|
||||||
{
|
|
||||||
return inet_pton($address);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Hashes an email address to a big integer
|
|
||||||
*
|
|
||||||
* @param string $email Email address
|
|
||||||
*
|
|
||||||
* @return string Unsigned Big Integer
|
|
||||||
*
|
|
||||||
* @deprecated 3.3.0-b2 (To be removed: 4.0.0)
|
|
||||||
*/
|
|
||||||
function phpbb_email_hash($email)
|
|
||||||
{
|
|
||||||
return sprintf('%u', crc32(strtolower($email))) . strlen($email);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Load the autoloaders added by the extensions.
|
|
||||||
*
|
|
||||||
* @param string $phpbb_root_path Path to the phpbb root directory.
|
|
||||||
*/
|
|
||||||
function phpbb_load_extensions_autoloaders($phpbb_root_path)
|
|
||||||
{
|
|
||||||
$iterator = new \phpbb\finder\recursive_path_iterator(
|
|
||||||
$phpbb_root_path . 'ext/',
|
|
||||||
\RecursiveIteratorIterator::SELF_FIRST,
|
|
||||||
\FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS
|
|
||||||
);
|
|
||||||
$iterator->setMaxDepth(2);
|
|
||||||
|
|
||||||
foreach ($iterator as $file_info)
|
|
||||||
{
|
|
||||||
if ($file_info->getFilename() === 'vendor' && $iterator->getDepth() === 2)
|
|
||||||
{
|
|
||||||
$filename = $file_info->getRealPath() . '/autoload.php';
|
|
||||||
if (file_exists($filename))
|
|
||||||
{
|
|
||||||
require $filename;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Login using http authenticate.
|
|
||||||
*
|
|
||||||
* @param array $param Parameter array, see $param_defaults array.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @deprecated 3.2.10 (To be removed 4.0.0)
|
|
||||||
*/
|
|
||||||
function phpbb_http_login($param)
|
|
||||||
{
|
|
||||||
global $auth, $user, $request;
|
|
||||||
global $config;
|
|
||||||
|
|
||||||
$param_defaults = array(
|
|
||||||
'auth_message' => '',
|
|
||||||
|
|
||||||
'autologin' => false,
|
|
||||||
'viewonline' => true,
|
|
||||||
'admin' => false,
|
|
||||||
);
|
|
||||||
|
|
||||||
// Overwrite default values with passed values
|
|
||||||
$param = array_merge($param_defaults, $param);
|
|
||||||
|
|
||||||
// User is already logged in
|
|
||||||
// We will not overwrite his session
|
|
||||||
if (!empty($user->data['is_registered']))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// $_SERVER keys to check
|
|
||||||
$username_keys = array(
|
|
||||||
'PHP_AUTH_USER',
|
|
||||||
'Authorization',
|
|
||||||
'REMOTE_USER', 'REDIRECT_REMOTE_USER',
|
|
||||||
'HTTP_AUTHORIZATION', 'REDIRECT_HTTP_AUTHORIZATION',
|
|
||||||
'REMOTE_AUTHORIZATION', 'REDIRECT_REMOTE_AUTHORIZATION',
|
|
||||||
'AUTH_USER',
|
|
||||||
);
|
|
||||||
|
|
||||||
$password_keys = array(
|
|
||||||
'PHP_AUTH_PW',
|
|
||||||
'REMOTE_PASSWORD',
|
|
||||||
'AUTH_PASSWORD',
|
|
||||||
);
|
|
||||||
|
|
||||||
$username = null;
|
|
||||||
foreach ($username_keys as $k)
|
|
||||||
{
|
|
||||||
if ($request->is_set($k, \phpbb\request\request_interface::SERVER))
|
|
||||||
{
|
|
||||||
$username = html_entity_decode($request->server($k), ENT_COMPAT);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$password = null;
|
|
||||||
foreach ($password_keys as $k)
|
|
||||||
{
|
|
||||||
if ($request->is_set($k, \phpbb\request\request_interface::SERVER))
|
|
||||||
{
|
|
||||||
$password = html_entity_decode($request->server($k), ENT_COMPAT);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Decode encoded information (IIS, CGI, FastCGI etc.)
|
|
||||||
if (!is_null($username) && is_null($password) && strpos($username, 'Basic ') === 0)
|
|
||||||
{
|
|
||||||
list($username, $password) = explode(':', base64_decode(substr($username, 6)), 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!is_null($username) && !is_null($password))
|
|
||||||
{
|
|
||||||
set_var($username, $username, 'string', true);
|
|
||||||
set_var($password, $password, 'string', true);
|
|
||||||
|
|
||||||
$auth_result = $auth->login($username, $password, $param['autologin'], $param['viewonline'], $param['admin']);
|
|
||||||
|
|
||||||
if ($auth_result['status'] == LOGIN_SUCCESS)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else if ($auth_result['status'] == LOGIN_ERROR_ATTEMPTS)
|
|
||||||
{
|
|
||||||
send_status_line(401, 'Unauthorized');
|
|
||||||
|
|
||||||
trigger_error('NOT_AUTHORISED');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Prepend sitename to auth_message
|
|
||||||
$param['auth_message'] = ($param['auth_message'] === '') ? $config['sitename'] : $config['sitename'] . ' - ' . $param['auth_message'];
|
|
||||||
|
|
||||||
// We should probably filter out non-ASCII characters - RFC2616
|
|
||||||
$param['auth_message'] = preg_replace('/[\x80-\xFF]/', '?', $param['auth_message']);
|
|
||||||
|
|
||||||
header('WWW-Authenticate: Basic realm="' . $param['auth_message'] . '"');
|
|
||||||
send_status_line(401, 'Unauthorized');
|
|
||||||
|
|
||||||
trigger_error('NOT_AUTHORISED');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Converts query string (GET) parameters in request into hidden fields.
|
|
||||||
*
|
|
||||||
* Useful for forwarding GET parameters when submitting forms with GET method.
|
|
||||||
*
|
|
||||||
* It is possible to omit some of the GET parameters, which is useful if
|
|
||||||
* they are specified in the form being submitted.
|
|
||||||
*
|
|
||||||
* sid is always omitted.
|
|
||||||
*
|
|
||||||
* @param \phpbb\request\request $request Request object
|
|
||||||
* @param array $exclude A list of variable names that should not be forwarded
|
|
||||||
* @return string HTML with hidden fields
|
|
||||||
*
|
|
||||||
* @deprecated 3.2.10 (To be removed 4.0.0)
|
|
||||||
*/
|
|
||||||
function phpbb_build_hidden_fields_for_query_params($request, $exclude = null)
|
|
||||||
{
|
|
||||||
$names = $request->variable_names(\phpbb\request\request_interface::GET);
|
|
||||||
$hidden = '';
|
|
||||||
foreach ($names as $name)
|
|
||||||
{
|
|
||||||
// Sessions are dealt with elsewhere, omit sid always
|
|
||||||
if ($name == 'sid')
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Omit any additional parameters requested
|
|
||||||
if (!empty($exclude) && in_array($name, $exclude))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$escaped_name = phpbb_quoteattr($name);
|
|
||||||
|
|
||||||
// Note: we might retrieve the variable from POST or cookies
|
|
||||||
// here. To avoid exposing cookies, skip variables that are
|
|
||||||
// overwritten somewhere other than GET entirely.
|
|
||||||
$value = $request->variable($name, '', true);
|
|
||||||
$get_value = $request->variable($name, '', true, \phpbb\request\request_interface::GET);
|
|
||||||
if ($value === $get_value)
|
|
||||||
{
|
|
||||||
$escaped_value = phpbb_quoteattr($value);
|
|
||||||
$hidden .= "<input type='hidden' name=$escaped_name value=$escaped_value />";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Delete all PM(s) for a given user and delete the ones without references
|
|
||||||
*
|
|
||||||
* @param int $user_id ID of the user whose private messages we want to delete
|
|
||||||
*
|
|
||||||
* @return boolean False if there were no pms found, true otherwise.
|
|
||||||
*
|
|
||||||
* @deprecated 3.2.10 (To be removed 4.0.0)
|
|
||||||
*/
|
|
||||||
function phpbb_delete_user_pms($user_id)
|
|
||||||
{
|
|
||||||
$user_id = (int) $user_id;
|
|
||||||
|
|
||||||
if (!$user_id)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return phpbb_delete_users_pms(array($user_id));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Casts a numeric string $input to an appropriate numeric type (i.e. integer or float)
|
|
||||||
*
|
|
||||||
* @param string $input A numeric string.
|
|
||||||
*
|
|
||||||
* @return int|float Integer $input if $input fits integer,
|
|
||||||
* float $input otherwise.
|
|
||||||
*
|
|
||||||
* @deprecated 3.2.10 (To be removed 4.0.0)
|
|
||||||
*/
|
|
||||||
function phpbb_to_numeric($input)
|
|
||||||
{
|
|
||||||
return ($input > PHP_INT_MAX) ? (float) $input : (int) $input;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check and display the SQL report if requested.
|
|
||||||
*
|
|
||||||
* @param \phpbb\request\request_interface $request Request object
|
|
||||||
* @param \phpbb\auth\auth $auth Auth object
|
|
||||||
* @param \phpbb\db\driver\driver_interface $db Database connection
|
|
||||||
*
|
|
||||||
* @deprecated 3.3.1 (To be removed: 4.0.0-a1); use controller helper's display_sql_report()
|
|
||||||
*/
|
|
||||||
function phpbb_check_and_display_sql_report(\phpbb\request\request_interface $request, \phpbb\auth\auth $auth, \phpbb\db\driver\driver_interface $db)
|
|
||||||
{
|
|
||||||
global $phpbb_container;
|
|
||||||
|
|
||||||
/** @var \phpbb\controller\helper $controller_helper */
|
|
||||||
$controller_helper = $phpbb_container->get('controller.helper');
|
|
||||||
|
|
||||||
$controller_helper->display_sql_report();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parse cfg file
|
* Parse cfg file
|
||||||
* @param string $filename
|
* @param string $filename
|
||||||
|
@ -909,27 +80,3 @@ function parse_cfg_file($filename, $lines = false)
|
||||||
|
|
||||||
return $parsed_items;
|
return $parsed_items;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Wraps an url into a simple html page. Used to display attachments in IE.
|
|
||||||
* this is a workaround for now; might be moved to template system later
|
|
||||||
* direct any complaints to 1 Microsoft Way, Redmond
|
|
||||||
*
|
|
||||||
* @deprecated: 3.3.0-dev (To be removed: 4.0.0)
|
|
||||||
*/
|
|
||||||
function wrap_img_in_html($src, $title)
|
|
||||||
{
|
|
||||||
echo '<!DOCTYPE html>';
|
|
||||||
echo '<html>';
|
|
||||||
echo '<head>';
|
|
||||||
echo '<meta charset="utf-8">';
|
|
||||||
echo '<meta http-equiv="X-UA-Compatible" content="IE=edge">';
|
|
||||||
echo '<title>' . $title . '</title>';
|
|
||||||
echo '</head>';
|
|
||||||
echo '<body>';
|
|
||||||
echo '<div>';
|
|
||||||
echo '<img src="' . $src . '" alt="' . $title . '" />';
|
|
||||||
echo '</div>';
|
|
||||||
echo '</body>';
|
|
||||||
echo '</html>';
|
|
||||||
}
|
|
||||||
|
|
|
@ -288,7 +288,27 @@ function make_jumpbox($action, $forum_id = false, $select_all = false, $acl_list
|
||||||
*/
|
*/
|
||||||
function bump_topic_allowed($forum_id, $topic_bumped, $last_post_time, $topic_poster, $last_topic_poster)
|
function bump_topic_allowed($forum_id, $topic_bumped, $last_post_time, $topic_poster, $last_topic_poster)
|
||||||
{
|
{
|
||||||
global $config, $auth, $user;
|
global $config, $auth, $user, $phpbb_dispatcher;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Event to run code before the topic bump checks
|
||||||
|
*
|
||||||
|
* @event core.bump_topic_allowed_before
|
||||||
|
* @var int forum_id ID of the forum
|
||||||
|
* @var int topic_bumped Flag indicating if the topic was already bumped (0/1)
|
||||||
|
* @var int last_post_time The time of the topic last post
|
||||||
|
* @var int topic_poster User ID of the topic author
|
||||||
|
* @var int last_topic_poster User ID of the topic last post author
|
||||||
|
* @since 3.3.14-RC1
|
||||||
|
*/
|
||||||
|
$vars = [
|
||||||
|
'forum_id',
|
||||||
|
'topic_bumped',
|
||||||
|
'last_post_time',
|
||||||
|
'topic_poster',
|
||||||
|
'last_topic_poster',
|
||||||
|
];
|
||||||
|
extract($phpbb_dispatcher->trigger_event('core.bump_topic_allowed_before', compact($vars)));
|
||||||
|
|
||||||
// Check permission and make sure the last post was not already bumped
|
// Check permission and make sure the last post was not already bumped
|
||||||
if (!$auth->acl_get('f_bump', $forum_id) || $topic_bumped)
|
if (!$auth->acl_get('f_bump', $forum_id) || $topic_bumped)
|
||||||
|
@ -311,6 +331,28 @@ function bump_topic_allowed($forum_id, $topic_bumped, $last_post_time, $topic_po
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Event to run code after the topic bump checks
|
||||||
|
*
|
||||||
|
* @event core.bump_topic_allowed_after
|
||||||
|
* @var int forum_id ID of the forum
|
||||||
|
* @var int topic_bumped Flag indicating if the topic was already bumped (0/1)
|
||||||
|
* @var int last_post_time The time of the topic last post
|
||||||
|
* @var int topic_poster User ID of the topic author
|
||||||
|
* @var int last_topic_poster User ID of the topic last post author
|
||||||
|
* @var int bump_time Bump time range
|
||||||
|
* @since 3.3.14-RC1
|
||||||
|
*/
|
||||||
|
$vars = [
|
||||||
|
'forum_id',
|
||||||
|
'topic_bumped',
|
||||||
|
'last_post_time',
|
||||||
|
'topic_poster',
|
||||||
|
'last_topic_poster',
|
||||||
|
'bump_time',
|
||||||
|
];
|
||||||
|
extract($phpbb_dispatcher->trigger_event('core.bump_topic_allowed_after', compact($vars)));
|
||||||
|
|
||||||
// A bump time of 0 will completely disable the bump feature... not intended but might be useful.
|
// A bump time of 0 will completely disable the bump feature... not intended but might be useful.
|
||||||
return $bump_time;
|
return $bump_time;
|
||||||
}
|
}
|
||||||
|
@ -324,121 +366,95 @@ function bump_topic_allowed($forum_id, $topic_bumped, $last_post_time, $topic_po
|
||||||
*
|
*
|
||||||
* @return string Context of the specified words separated by "..."
|
* @return string Context of the specified words separated by "..."
|
||||||
*/
|
*/
|
||||||
function get_context(string $text, array $words, int $length = 400)
|
function get_context(string $text, array $words, int $length = 400): string
|
||||||
{
|
{
|
||||||
// first replace all whitespaces with single spaces
|
if ($length <= 0)
|
||||||
$text = preg_replace('/ +/', ' ', strtr($text, "\t\n\r\x0C ", ' '));
|
|
||||||
|
|
||||||
// we need to turn the entities back into their original form, to not cut the message in between them
|
|
||||||
$entities = array('<', '>', '[', ']', '.', ':', ':');
|
|
||||||
$characters = array('<', '>', '[', ']', '.', ':', ':');
|
|
||||||
$text = str_replace($entities, $characters, $text);
|
|
||||||
|
|
||||||
$word_indizes = array();
|
|
||||||
if (count($words))
|
|
||||||
{
|
{
|
||||||
$match = '';
|
return $text;
|
||||||
// find the starting indizes of all words
|
|
||||||
foreach ($words as $word)
|
|
||||||
{
|
|
||||||
if ($word)
|
|
||||||
{
|
|
||||||
if (preg_match('#(?:[^\w]|^)(' . $word . ')(?:[^\w]|$)#i', $text, $match))
|
|
||||||
{
|
|
||||||
if (empty($match[1]))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$pos = utf8_strpos($text, $match[1]);
|
|
||||||
if ($pos !== false)
|
|
||||||
{
|
|
||||||
$word_indizes[] = $pos;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
unset($match);
|
|
||||||
|
|
||||||
if (count($word_indizes))
|
|
||||||
{
|
|
||||||
$word_indizes = array_unique($word_indizes);
|
|
||||||
sort($word_indizes);
|
|
||||||
|
|
||||||
$wordnum = count($word_indizes);
|
|
||||||
// number of characters on the right and left side of each word
|
|
||||||
$sequence_length = (int) ($length / (2 * $wordnum)) - 2;
|
|
||||||
$final_text = '';
|
|
||||||
$word = $j = 0;
|
|
||||||
$final_text_index = -1;
|
|
||||||
|
|
||||||
// cycle through every character in the original text
|
|
||||||
for ($i = $word_indizes[$word], $n = utf8_strlen($text); $i < $n; $i++)
|
|
||||||
{
|
|
||||||
// if the current position is the start of one of the words then append $sequence_length characters to the final text
|
|
||||||
if (isset($word_indizes[$word]) && ($i == $word_indizes[$word]))
|
|
||||||
{
|
|
||||||
if ($final_text_index < $i - $sequence_length - 1)
|
|
||||||
{
|
|
||||||
$final_text .= '... ' . preg_replace('#^([^ ]*)#', '', utf8_substr($text, $i - $sequence_length, $sequence_length));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// if the final text is already nearer to the current word than $sequence_length we only append the text
|
|
||||||
// from its current index on and distribute the unused length to all other sequenes
|
|
||||||
$sequence_length += (int) (($final_text_index - $i + $sequence_length + 1) / (2 * $wordnum));
|
|
||||||
$final_text .= utf8_substr($text, $final_text_index + 1, $i - $final_text_index - 1);
|
|
||||||
}
|
|
||||||
$final_text_index = $i - 1;
|
|
||||||
|
|
||||||
// add the following characters to the final text (see below)
|
|
||||||
$word++;
|
|
||||||
$j = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($j > 0)
|
|
||||||
{
|
|
||||||
// add the character to the final text and increment the sequence counter
|
|
||||||
$final_text .= utf8_substr($text, $i, 1);
|
|
||||||
$final_text_index++;
|
|
||||||
$j++;
|
|
||||||
|
|
||||||
// if this is a whitespace then check whether we are done with this sequence
|
|
||||||
if (utf8_substr($text, $i, 1) == ' ')
|
|
||||||
{
|
|
||||||
// only check whether we have to exit the context generation completely if we haven't already reached the end anyway
|
|
||||||
if ($i + 4 < $n)
|
|
||||||
{
|
|
||||||
if (($j > $sequence_length && $word >= $wordnum) || utf8_strlen($final_text) > $length)
|
|
||||||
{
|
|
||||||
$final_text .= ' ...';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// make sure the text really reaches the end
|
|
||||||
$j -= 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
// stop context generation and wait for the next word
|
|
||||||
if ($j > $sequence_length)
|
|
||||||
{
|
|
||||||
$j = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return str_replace($characters, $entities, $final_text);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!count($words) || !count($word_indizes))
|
// We need to turn the entities back into their original form, to not cut the message in between them
|
||||||
|
$text = htmlspecialchars_decode($text);
|
||||||
|
|
||||||
|
// Replace all spaces/invisible characters with single spaces
|
||||||
|
$text = preg_replace("/[\p{Z}\h\v]+/u", ' ', $text);
|
||||||
|
|
||||||
|
$text_length = utf8_strlen($text);
|
||||||
|
|
||||||
|
// Get first occurrence of each word
|
||||||
|
$word_indexes = [];
|
||||||
|
foreach ($words as $word)
|
||||||
{
|
{
|
||||||
return str_replace($characters, $entities, ((utf8_strlen($text) >= $length + 3) ? utf8_substr($text, 0, $length) . '...' : $text));
|
$pos = utf8_stripos($text, $word);
|
||||||
|
|
||||||
|
if ($pos !== false)
|
||||||
|
{
|
||||||
|
$word_indexes[$pos] = $word;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!empty($word_indexes))
|
||||||
|
{
|
||||||
|
ksort($word_indexes);
|
||||||
|
|
||||||
|
// Size of the fragment of text per word
|
||||||
|
$num_indexes = count($word_indexes);
|
||||||
|
$characters_per_word = (int) ($length / $num_indexes) + 2; // 2 to leave one character of margin at the sides to don't cut words
|
||||||
|
|
||||||
|
// Get text fragment indexes
|
||||||
|
$fragments = [];
|
||||||
|
foreach ($word_indexes as $index => $word)
|
||||||
|
{
|
||||||
|
$word_length = utf8_strlen($word);
|
||||||
|
$start = max(0, min($text_length - 1 - $characters_per_word, (int) ($index + ($word_length / 2) - ($characters_per_word / 2))));
|
||||||
|
$end = $start + $characters_per_word;
|
||||||
|
|
||||||
|
// Check if we can merge this fragment into the previous fragment
|
||||||
|
if (!empty($fragments))
|
||||||
|
{
|
||||||
|
[$prev_start, $prev_end] = end($fragments);
|
||||||
|
|
||||||
|
if ($prev_end + $characters_per_word >= $index + $word_length)
|
||||||
|
{
|
||||||
|
array_pop($fragments);
|
||||||
|
$start = $prev_start;
|
||||||
|
$end = $prev_end + $characters_per_word;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$fragments[] = [$start, $end];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// There is no coincidences, so we just create a fragment with the first $length characters
|
||||||
|
$fragments[] = [0, $length];
|
||||||
|
$end = $length;
|
||||||
}
|
}
|
||||||
|
|
||||||
return '';
|
$output = [];
|
||||||
|
foreach ($fragments as [$start, $end])
|
||||||
|
{
|
||||||
|
$fragment = utf8_substr($text, $start, $end - $start + 1);
|
||||||
|
|
||||||
|
$fragment_start = 0;
|
||||||
|
$fragment_end = $end - $start + 1;
|
||||||
|
|
||||||
|
// Find the first valid alphanumeric character in the fragment to don't cut words
|
||||||
|
if ($start > 0 && preg_match('/[^\p{L}\p{N}][\p{L}\p{N}]/u', $fragment, $matches, PREG_OFFSET_CAPTURE))
|
||||||
|
{
|
||||||
|
$fragment_start = utf8_strlen(substr($fragment, 0, (int) $matches[0][1])) + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find the last valid alphanumeric character in the fragment to don't cut words
|
||||||
|
if ($end < $text_length - 1 && preg_match_all('/[\p{L}\p{N}][^\p{L}\p{N}]/u', $fragment, $matches, PREG_OFFSET_CAPTURE))
|
||||||
|
{
|
||||||
|
$fragment_end = utf8_strlen(substr($fragment, 0, end($matches[0])[1]));
|
||||||
|
}
|
||||||
|
|
||||||
|
$output[] = utf8_substr($fragment, $fragment_start, $fragment_end - $fragment_start + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ($fragments[0][0] !== 0 ? '... ' : '') . utf8_htmlspecialchars(implode(' ... ', $output)) . ($end < $text_length - 1 ? ' ...' : '');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1260,19 +1276,7 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count_a
|
||||||
{
|
{
|
||||||
if ($config['img_display_inlined'])
|
if ($config['img_display_inlined'])
|
||||||
{
|
{
|
||||||
if ($config['img_link_width'] || $config['img_link_height'])
|
$display_cat = attachment_category::IMAGE;
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
$file_info = $storage_attachment->file_info($filename);
|
|
||||||
|
|
||||||
$display_cat = ($file_info->image_width <= $config['img_link_width'] && $file_info->image_height <= $config['img_link_height']) ? attachment_category::IMAGE : attachment_category::NONE;
|
|
||||||
}
|
|
||||||
catch (\Exception $e)
|
|
||||||
{
|
|
||||||
$display_cat = attachment_category::NONE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -1595,7 +1595,7 @@ function phpbb_show_profile($data, $user_notes_enabled = false, $warn_user_enabl
|
||||||
|
|
||||||
if ($data['user_allow_viewonline'] || $auth->acl_get('u_viewonline'))
|
if ($data['user_allow_viewonline'] || $auth->acl_get('u_viewonline'))
|
||||||
{
|
{
|
||||||
$last_active = (!empty($data['session_time'])) ? $data['session_time'] : $data['user_last_active'];
|
$last_active = $data['user_last_active'] ?: ($data['session_time'] ?? 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -1417,22 +1417,22 @@ class smtp_class
|
||||||
global $user;
|
global $user;
|
||||||
|
|
||||||
// Here we try to determine the *real* hostname (reverse DNS entry preferrably)
|
// Here we try to determine the *real* hostname (reverse DNS entry preferrably)
|
||||||
$local_host = $user->host;
|
if (function_exists('php_uname') && !empty($local_host = php_uname('n')))
|
||||||
|
|
||||||
if (function_exists('php_uname'))
|
|
||||||
{
|
{
|
||||||
$local_host = php_uname('n');
|
|
||||||
|
|
||||||
// Able to resolve name to IP
|
// Able to resolve name to IP
|
||||||
if (($addr = @gethostbyname($local_host)) !== $local_host)
|
if (($addr = @gethostbyname($local_host)) !== $local_host)
|
||||||
{
|
{
|
||||||
// Able to resolve IP back to name
|
// Able to resolve IP back to name
|
||||||
if (($name = @gethostbyaddr($addr)) !== $addr)
|
if (!empty($name = @gethostbyaddr($addr)) && $name !== $addr)
|
||||||
{
|
{
|
||||||
$local_host = $name;
|
$local_host = $name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$local_host = $user->host;
|
||||||
|
}
|
||||||
|
|
||||||
// If we are authenticating through pop-before-smtp, we
|
// If we are authenticating through pop-before-smtp, we
|
||||||
// have to login ones before we get authenticated
|
// have to login ones before we get authenticated
|
||||||
|
|
|
@ -480,7 +480,7 @@ class p_master
|
||||||
*/
|
*/
|
||||||
function set_active($id = false, $mode = false)
|
function set_active($id = false, $mode = false)
|
||||||
{
|
{
|
||||||
global $request;
|
global $auth, $request, $user;
|
||||||
|
|
||||||
$icat = false;
|
$icat = false;
|
||||||
$this->active_module = false;
|
$this->active_module = false;
|
||||||
|
@ -502,6 +502,14 @@ class p_master
|
||||||
$id = $this->p_class . '_' . $id;
|
$id = $this->p_class . '_' . $id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fallback to acp main page for special test permission mode
|
||||||
|
if ($this->p_class === 'acp' && $user->data['user_perm_from'] && $auth->acl_get('a_switchperm'))
|
||||||
|
{
|
||||||
|
$id = '';
|
||||||
|
$mode = '';
|
||||||
|
$icat = false;
|
||||||
|
}
|
||||||
|
|
||||||
$category = false;
|
$category = false;
|
||||||
foreach ($this->module_ary as $row_id => $item_ary)
|
foreach ($this->module_ary as $row_id => $item_ary)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1691,7 +1691,7 @@ function submit_pm($mode, $subject, &$data_ary, $put_in_outbox = true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// First of all make sure the subject are having the correct length.
|
// First of all make sure the subject are having the correct length.
|
||||||
$subject = truncate_string($subject);
|
$subject = truncate_string($subject, $mode === 'post' ? 120 : 124);
|
||||||
|
|
||||||
$db->sql_transaction('begin');
|
$db->sql_transaction('begin');
|
||||||
|
|
||||||
|
|
|
@ -284,6 +284,7 @@ class mcp_queue
|
||||||
$post_data = array(
|
$post_data = array(
|
||||||
'S_MCP_QUEUE' => true,
|
'S_MCP_QUEUE' => true,
|
||||||
'U_APPROVE_ACTION' => append_sid("{$phpbb_root_path}mcp.$phpEx", "i=queue&p=$post_id"),
|
'U_APPROVE_ACTION' => append_sid("{$phpbb_root_path}mcp.$phpEx", "i=queue&p=$post_id"),
|
||||||
|
'S_CAN_APPROVE' => $auth->acl_get('m_approve', $post_info['forum_id']),
|
||||||
'S_CAN_DELETE_POST' => $auth->acl_get('m_delete', $post_info['forum_id']),
|
'S_CAN_DELETE_POST' => $auth->acl_get('m_delete', $post_info['forum_id']),
|
||||||
'S_CAN_VIEWIP' => $auth->acl_get('m_info', $post_info['forum_id']),
|
'S_CAN_VIEWIP' => $auth->acl_get('m_info', $post_info['forum_id']),
|
||||||
'S_POST_REPORTED' => $post_info['post_reported'],
|
'S_POST_REPORTED' => $post_info['post_reported'],
|
||||||
|
|
|
@ -1179,8 +1179,6 @@ class parse_message extends bbcode_firstpass
|
||||||
// Set some config values
|
// Set some config values
|
||||||
$parser->set_vars(array(
|
$parser->set_vars(array(
|
||||||
'max_font_size' => $config['max_' . $this->mode . '_font_size'],
|
'max_font_size' => $config['max_' . $this->mode . '_font_size'],
|
||||||
'max_img_height' => $config['max_' . $this->mode . '_img_height'],
|
|
||||||
'max_img_width' => $config['max_' . $this->mode . '_img_width'],
|
|
||||||
'max_smilies' => $config['max_' . $this->mode . '_smilies'],
|
'max_smilies' => $config['max_' . $this->mode . '_smilies'],
|
||||||
'max_urls' => $config['max_' . $this->mode . '_urls']
|
'max_urls' => $config['max_' . $this->mode . '_urls']
|
||||||
));
|
));
|
||||||
|
|
|
@ -361,8 +361,6 @@ class phpbb_questionnaire_phpbb_data_provider
|
||||||
'hot_threshold' => true,
|
'hot_threshold' => true,
|
||||||
'img_create_thumbnail' => true,
|
'img_create_thumbnail' => true,
|
||||||
'img_display_inlined' => true,
|
'img_display_inlined' => true,
|
||||||
'img_link_height' => true,
|
|
||||||
'img_link_width' => true,
|
|
||||||
'img_max_height' => true,
|
'img_max_height' => true,
|
||||||
'img_max_thumb_width' => true,
|
'img_max_thumb_width' => true,
|
||||||
'img_max_width' => true,
|
'img_max_width' => true,
|
||||||
|
@ -406,8 +404,6 @@ class phpbb_questionnaire_phpbb_data_provider
|
||||||
'max_reg_attempts' => true,
|
'max_reg_attempts' => true,
|
||||||
'max_sig_chars' => true,
|
'max_sig_chars' => true,
|
||||||
'max_sig_font_size' => true,
|
'max_sig_font_size' => true,
|
||||||
'max_sig_img_height' => true,
|
|
||||||
'max_sig_img_width' => true,
|
|
||||||
'max_sig_smilies' => true,
|
'max_sig_smilies' => true,
|
||||||
'max_sig_urls' => true,
|
'max_sig_urls' => true,
|
||||||
'min_name_chars' => true,
|
'min_name_chars' => true,
|
||||||
|
|
|
@ -235,8 +235,10 @@ class ucp_register
|
||||||
// The CAPTCHA kicks in here. We can't help that the information gets lost on language change.
|
// The CAPTCHA kicks in here. We can't help that the information gets lost on language change.
|
||||||
if ($config['enable_confirm'])
|
if ($config['enable_confirm'])
|
||||||
{
|
{
|
||||||
$captcha = $phpbb_container->get('captcha.factory')->get_instance($config['captcha_plugin']);
|
/** @var \phpbb\captcha\factory $captcha_factory */
|
||||||
$captcha->init(CONFIRM_REG);
|
$captcha_factory = $phpbb_container->get('captcha.factory');
|
||||||
|
$captcha = $captcha_factory->get_instance($config['captcha_plugin']);
|
||||||
|
$captcha->init(\phpbb\captcha\plugins\confirm_type::REGISTRATION);
|
||||||
}
|
}
|
||||||
|
|
||||||
$timezone = $config['board_timezone'];
|
$timezone = $config['board_timezone'];
|
||||||
|
@ -291,10 +293,9 @@ class ucp_register
|
||||||
|
|
||||||
if ($config['enable_confirm'])
|
if ($config['enable_confirm'])
|
||||||
{
|
{
|
||||||
$vc_response = $captcha->validate($data);
|
if ($captcha->validate() !== true)
|
||||||
if ($vc_response !== false)
|
|
||||||
{
|
{
|
||||||
$error[] = $vc_response;
|
$error[] = $captcha->get_error();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($config['max_reg_attempts'] && $captcha->get_attempt_count() > $config['max_reg_attempts'])
|
if ($config['max_reg_attempts'] && $captcha->get_attempt_count() > $config['max_reg_attempts'])
|
||||||
|
@ -426,7 +427,7 @@ class ucp_register
|
||||||
}
|
}
|
||||||
|
|
||||||
// Okay, captcha, your job is done.
|
// Okay, captcha, your job is done.
|
||||||
if ($config['enable_confirm'] && isset($captcha))
|
if ($config['enable_confirm'])
|
||||||
{
|
{
|
||||||
$captcha->reset();
|
$captcha->reset();
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,6 +72,22 @@ function utf8_strpos($str, $needle, $offset = null)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UTF-8 aware alternative to stripos
|
||||||
|
* @ignore
|
||||||
|
*/
|
||||||
|
function utf8_stripos($str, $needle, $offset = null)
|
||||||
|
{
|
||||||
|
if (is_null($offset))
|
||||||
|
{
|
||||||
|
return mb_stripos($str, $needle);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return mb_stripos($str, $needle, $offset);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* UTF-8 aware alternative to strtolower
|
* UTF-8 aware alternative to strtolower
|
||||||
* @ignore
|
* @ignore
|
||||||
|
|
|
@ -1420,9 +1420,9 @@ function phpbb_attachment_extension_group_name()
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
$extension_groups_updated = array();
|
$extension_groups_updated = array();
|
||||||
while ($lang_dir = $db->sql_fetchfield('lang_dir'))
|
while ($row = $db->sql_fetchrow($result))
|
||||||
{
|
{
|
||||||
$lang_dir = basename($lang_dir);
|
$lang_dir = basename($row['lang_dir']);
|
||||||
$lang_file = $phpbb_root_path . 'language/' . $lang_dir . '/acp/attachments.' . $phpEx;
|
$lang_file = $phpbb_root_path . 'language/' . $lang_dir . '/acp/attachments.' . $phpEx;
|
||||||
|
|
||||||
if (!file_exists($lang_file))
|
if (!file_exists($lang_file))
|
||||||
|
@ -1676,8 +1676,6 @@ function phpbb_import_attach_config()
|
||||||
$config->set('img_display_inlined', $attach_config['img_display_inlined']);
|
$config->set('img_display_inlined', $attach_config['img_display_inlined']);
|
||||||
$config->set('img_max_width', $attach_config['img_max_width']);
|
$config->set('img_max_width', $attach_config['img_max_width']);
|
||||||
$config->set('img_max_height', $attach_config['img_max_height']);
|
$config->set('img_max_height', $attach_config['img_max_height']);
|
||||||
$config->set('img_link_width', $attach_config['img_link_width']);
|
|
||||||
$config->set('img_link_height', $attach_config['img_link_height']);
|
|
||||||
$config->set('img_create_thumbnail', $attach_config['img_create_thumbnail']);
|
$config->set('img_create_thumbnail', $attach_config['img_create_thumbnail']);
|
||||||
$config->set('img_max_thumb_width', 400);
|
$config->set('img_max_thumb_width', 400);
|
||||||
$config->set('img_min_thumb_filesize', $attach_config['img_min_thumb_filesize']);
|
$config->set('img_min_thumb_filesize', $attach_config['img_min_thumb_filesize']);
|
||||||
|
|
|
@ -77,6 +77,9 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('captcha_gd_wave',
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('captcha_gd_x_grid', '25');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('captcha_gd_x_grid', '25');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('captcha_gd_y_grid', '25');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('captcha_gd_y_grid', '25');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('captcha_plugin', 'core.captcha.plugins.incomplete');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('captcha_plugin', 'core.captcha.plugins.incomplete');
|
||||||
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('captcha_turnstile_sitekey', '');
|
||||||
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('captcha_turnstile_secret', '');
|
||||||
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('captcha_turnstile_theme', 'light');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('check_attachment_content', '1');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('check_attachment_content', '1');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('check_dnsbl', '0');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('check_dnsbl', '0');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('chg_passforce', '0');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('chg_passforce', '0');
|
||||||
|
@ -155,8 +158,6 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('hot_threshold', '2
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('icons_path', 'images/icons');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('icons_path', 'images/icons');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('img_create_thumbnail', '0');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('img_create_thumbnail', '0');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('img_display_inlined', '1');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('img_display_inlined', '1');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('img_link_height', '0');
|
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('img_link_width', '0');
|
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('img_max_height', '0');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('img_max_height', '0');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('img_max_thumb_width', '400');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('img_max_thumb_width', '400');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('img_max_width', '0');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('img_max_width', '0');
|
||||||
|
@ -227,8 +228,6 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_quote_depth',
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_reg_attempts', '5');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_reg_attempts', '5');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_sig_chars', '255');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_sig_chars', '255');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_sig_font_size', '200');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_sig_font_size', '200');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_sig_img_height', '0');
|
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_sig_img_width', '0');
|
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_sig_smilies', '0');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_sig_smilies', '0');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_sig_urls', '5');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_sig_urls', '5');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('mention_batch_size', '50');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('mention_batch_size', '50');
|
||||||
|
@ -284,6 +283,7 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('site_desc', '{L_CO
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('site_home_text', '');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('site_home_text', '');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('site_home_url', '');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('site_home_url', '');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('sitename', '{L_CONFIG_SITENAME}');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('sitename', '{L_CONFIG_SITENAME}');
|
||||||
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('sitename_short', '');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('smilies_path', 'images/smilies');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('smilies_path', 'images/smilies');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('smilies_per_page', '50');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('smilies_per_page', '50');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('smtp_allow_self_signed', '0');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('smtp_allow_self_signed', '0');
|
||||||
|
@ -712,60 +712,60 @@ INSERT INTO phpbb_posts (topic_id, forum_id, poster_id, icon_id, post_time, post
|
||||||
INSERT INTO phpbb_topics_posted (user_id, topic_id, topic_posted) VALUES (2, 1, 1);
|
INSERT INTO phpbb_topics_posted (user_id, topic_id, topic_posted) VALUES (2, 1, 1);
|
||||||
|
|
||||||
# -- Smilies
|
# -- Smilies
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':D', 'icon_e_biggrin.gif', '{L_SMILIES_VERY_HAPPY}', 15, 17, 1);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':D', 'icon_e_biggrin.svg', '{L_SMILIES_VERY_HAPPY}', 15, 17, 1);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':-D', 'icon_e_biggrin.gif', '{L_SMILIES_VERY_HAPPY}', 15, 17, 2);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':-D', 'icon_e_biggrin.svg', '{L_SMILIES_VERY_HAPPY}', 15, 17, 2);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':grin:', 'icon_e_biggrin.gif', '{L_SMILIES_VERY_HAPPY}', 15, 17, 3);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':grin:', 'icon_e_biggrin.svg', '{L_SMILIES_VERY_HAPPY}', 15, 17, 3);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':)', 'icon_e_smile.gif', '{L_SMILIES_SMILE}', 15, 17, 4);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':)', 'icon_e_smile.svg', '{L_SMILIES_SMILE}', 15, 17, 4);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':-)', 'icon_e_smile.gif', '{L_SMILIES_SMILE}', 15, 17, 5);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':-)', 'icon_e_smile.svg', '{L_SMILIES_SMILE}', 15, 17, 5);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':smile:', 'icon_e_smile.gif', '{L_SMILIES_SMILE}', 15, 17, 6);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':smile:', 'icon_e_smile.svg', '{L_SMILIES_SMILE}', 15, 17, 6);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (';)', 'icon_e_wink.gif', '{L_SMILIES_WINK}', 15, 17, 7);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (';)', 'icon_e_wink.svg', '{L_SMILIES_WINK}', 15, 17, 7);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (';-)', 'icon_e_wink.gif', '{L_SMILIES_WINK}', 15, 17, 8);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (';-)', 'icon_e_wink.svg', '{L_SMILIES_WINK}', 15, 17, 8);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':wink:', 'icon_e_wink.gif', '{L_SMILIES_WINK}', 15, 17, 9);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':wink:', 'icon_e_wink.svg', '{L_SMILIES_WINK}', 15, 17, 9);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':(', 'icon_e_sad.gif', '{L_SMILIES_SAD}', 15, 17, 10);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':(', 'icon_e_sad.svg', '{L_SMILIES_SAD}', 15, 17, 10);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':-(', 'icon_e_sad.gif', '{L_SMILIES_SAD}', 15, 17, 11);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':-(', 'icon_e_sad.svg', '{L_SMILIES_SAD}', 15, 17, 11);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':sad:', 'icon_e_sad.gif', '{L_SMILIES_SAD}', 15, 17, 12);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':sad:', 'icon_e_sad.svg', '{L_SMILIES_SAD}', 15, 17, 12);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':o', 'icon_e_surprised.gif', '{L_SMILIES_SURPRISED}', 15, 17, 13);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':o', 'icon_e_surprised.svg', '{L_SMILIES_SURPRISED}', 15, 17, 13);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':-o', 'icon_e_surprised.gif', '{L_SMILIES_SURPRISED}', 15, 17, 14);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':-o', 'icon_e_surprised.svg', '{L_SMILIES_SURPRISED}', 15, 17, 14);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':eek:', 'icon_e_surprised.gif', '{L_SMILIES_SURPRISED}', 15, 17, 15);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':eek:', 'icon_e_surprised.svg', '{L_SMILIES_SURPRISED}', 15, 17, 15);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':shock:', 'icon_eek.gif', '{L_SMILIES_SHOCKED}', 15, 17, 16);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':shock:', 'icon_eek.svg', '{L_SMILIES_SHOCKED}', 15, 17, 16);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':?', 'icon_e_confused.gif', '{L_SMILIES_CONFUSED}', 15, 17, 17);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':?', 'icon_e_confused.svg', '{L_SMILIES_CONFUSED}', 15, 17, 17);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':-?', 'icon_e_confused.gif', '{L_SMILIES_CONFUSED}', 15, 17, 18);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':-?', 'icon_e_confused.svg', '{L_SMILIES_CONFUSED}', 15, 17, 18);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':???:', 'icon_e_confused.gif', '{L_SMILIES_CONFUSED}', 15, 17, 19);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':???:', 'icon_e_confused.svg', '{L_SMILIES_CONFUSED}', 15, 17, 19);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES ('8-)', 'icon_cool.gif', '{L_SMILIES_COOL}', 15, 17, 20);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES ('8-)', 'icon_cool.svg', '{L_SMILIES_COOL}', 15, 17, 20);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':cool:', 'icon_cool.gif', '{L_SMILIES_COOL}', 15, 17, 21);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':cool:', 'icon_cool.svg', '{L_SMILIES_COOL}', 15, 17, 21);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':lol:', 'icon_lol.gif', '{L_SMILIES_LAUGHING}', 15, 17, 22);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':lol:', 'icon_lol.svg', '{L_SMILIES_LAUGHING}', 15, 17, 22);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':x', 'icon_mad.gif', '{L_SMILIES_MAD}', 15, 17, 23);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':x', 'icon_mad.svg', '{L_SMILIES_MAD}', 15, 17, 23);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':-x', 'icon_mad.gif', '{L_SMILIES_MAD}', 15, 17, 24);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':-x', 'icon_mad.svg', '{L_SMILIES_MAD}', 15, 17, 24);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':mad:', 'icon_mad.gif', '{L_SMILIES_MAD}', 15, 17, 25);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':mad:', 'icon_mad.svg', '{L_SMILIES_MAD}', 15, 17, 25);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':P', 'icon_razz.gif', '{L_SMILIES_RAZZ}', 15, 17, 26);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':P', 'icon_razz.svg', '{L_SMILIES_RAZZ}', 15, 17, 26);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':-P', 'icon_razz.gif', '{L_SMILIES_RAZZ}', 15, 17, 27);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':-P', 'icon_razz.svg', '{L_SMILIES_RAZZ}', 15, 17, 27);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':razz:', 'icon_razz.gif', '{L_SMILIES_RAZZ}', 15, 17, 28);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':razz:', 'icon_razz.svg', '{L_SMILIES_RAZZ}', 15, 17, 28);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':oops:', 'icon_redface.gif', '{L_SMILIES_EMARRASSED}', 15, 17, 29);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':oops:', 'icon_redface.svg', '{L_SMILIES_EMARRASSED}', 15, 17, 29);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':cry:', 'icon_cry.gif', '{L_SMILIES_CRYING}', 15, 17, 30);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':cry:', 'icon_cry.svg', '{L_SMILIES_CRYING}', 15, 17, 30);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':evil:', 'icon_evil.gif', '{L_SMILIES_EVIL}', 15, 17, 31);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':evil:', 'icon_evil.svg', '{L_SMILIES_EVIL}', 15, 17, 31);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':twisted:', 'icon_twisted.gif', '{L_SMILIES_TWISTED_EVIL}', 15, 17, 32);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':twisted:', 'icon_twisted.svg', '{L_SMILIES_TWISTED_EVIL}', 15, 17, 32);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':roll:', 'icon_rolleyes.gif', '{L_SMILIES_ROLLING_EYES}', 15, 17, 33);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':roll:', 'icon_rolleyes.svg', '{L_SMILIES_ROLLING_EYES}', 15, 17, 33);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':!:', 'icon_exclaim.gif', '{L_SMILIES_EXCLAMATION}', 15, 17, 34);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':!:', 'icon_exclaim.svg', '{L_SMILIES_EXCLAMATION}', 15, 17, 34);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':?:', 'icon_question.gif', '{L_SMILIES_QUESTION}', 15, 17, 35);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':?:', 'icon_question.svg', '{L_SMILIES_QUESTION}', 15, 17, 35);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':idea:', 'icon_idea.gif', '{L_SMILIES_IDEA}', 15, 17, 36);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':idea:', 'icon_idea.svg', '{L_SMILIES_IDEA}', 15, 17, 36);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':arrow:', 'icon_arrow.gif', '{L_SMILIES_ARROW}', 15, 17, 37);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':arrow:', 'icon_arrow.svg', '{L_SMILIES_ARROW}', 15, 17, 37);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':|', 'icon_neutral.gif', '{L_SMILIES_NEUTRAL}', 15, 17, 38);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':|', 'icon_neutral.svg', '{L_SMILIES_NEUTRAL}', 15, 17, 38);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':-|', 'icon_neutral.gif', '{L_SMILIES_NEUTRAL}', 15, 17, 39);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':-|', 'icon_neutral.svg', '{L_SMILIES_NEUTRAL}', 15, 17, 39);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':mrgreen:', 'icon_mrgreen.gif', '{L_SMILIES_MR_GREEN}', 15, 17, 40);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':mrgreen:', 'icon_mrgreen.svg', '{L_SMILIES_MR_GREEN}', 15, 17, 40);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':geek:', 'icon_e_geek.gif', '{L_SMILIES_GEEK}', 17, 17, 41);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':geek:', 'icon_e_geek.svg', '{L_SMILIES_GEEK}', 17, 17, 41);
|
||||||
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':ugeek:', 'icon_e_ugeek.gif', '{L_SMILIES_UBER_GEEK}', 17, 18, 42);
|
INSERT INTO phpbb_smilies (code, smiley_url, emotion, smiley_width, smiley_height, smiley_order) VALUES (':ugeek:', 'icon_e_ugeek.svg', '{L_SMILIES_UBER_GEEK}', 17, 18, 42);
|
||||||
|
|
||||||
# -- icons
|
# -- icons
|
||||||
INSERT INTO phpbb_icons (icons_url, icons_width, icons_height, icons_order, display_on_posting) VALUES ('misc/fire.gif', 16, 16, 1, 1);
|
INSERT INTO phpbb_icons (icons_url, icons_width, icons_height, icons_order, display_on_posting) VALUES ('misc/fire.svg', 16, 16, 1, 1);
|
||||||
INSERT INTO phpbb_icons (icons_url, icons_width, icons_height, icons_order, display_on_posting) VALUES ('smile/redface.gif', 16, 16, 9, 1);
|
INSERT INTO phpbb_icons (icons_url, icons_width, icons_height, icons_order, display_on_posting) VALUES ('smile/redface.svg', 16, 16, 9, 1);
|
||||||
INSERT INTO phpbb_icons (icons_url, icons_width, icons_height, icons_order, display_on_posting) VALUES ('smile/mrgreen.gif', 16, 16, 10, 1);
|
INSERT INTO phpbb_icons (icons_url, icons_width, icons_height, icons_order, display_on_posting) VALUES ('smile/mrgreen.svg', 16, 16, 10, 1);
|
||||||
INSERT INTO phpbb_icons (icons_url, icons_width, icons_height, icons_order, display_on_posting) VALUES ('misc/heart.gif', 16, 16, 4, 1);
|
INSERT INTO phpbb_icons (icons_url, icons_width, icons_height, icons_order, display_on_posting) VALUES ('misc/heart.svg', 16, 16, 4, 1);
|
||||||
INSERT INTO phpbb_icons (icons_url, icons_width, icons_height, icons_order, display_on_posting) VALUES ('misc/star.gif', 16, 16, 2, 1);
|
INSERT INTO phpbb_icons (icons_url, icons_width, icons_height, icons_order, display_on_posting) VALUES ('misc/star.svg', 16, 16, 2, 1);
|
||||||
INSERT INTO phpbb_icons (icons_url, icons_width, icons_height, icons_order, display_on_posting) VALUES ('misc/radioactive.gif', 16, 16, 3, 1);
|
INSERT INTO phpbb_icons (icons_url, icons_width, icons_height, icons_order, display_on_posting) VALUES ('misc/radioactive.svg', 16, 16, 3, 1);
|
||||||
INSERT INTO phpbb_icons (icons_url, icons_width, icons_height, icons_order, display_on_posting) VALUES ('misc/thinking.gif', 16, 16, 5, 1);
|
INSERT INTO phpbb_icons (icons_url, icons_width, icons_height, icons_order, display_on_posting) VALUES ('misc/thinking.svg', 16, 16, 5, 1);
|
||||||
INSERT INTO phpbb_icons (icons_url, icons_width, icons_height, icons_order, display_on_posting) VALUES ('smile/info.gif', 16, 16, 8, 1);
|
INSERT INTO phpbb_icons (icons_url, icons_width, icons_height, icons_order, display_on_posting) VALUES ('smile/info.svg', 16, 16, 8, 1);
|
||||||
INSERT INTO phpbb_icons (icons_url, icons_width, icons_height, icons_order, display_on_posting) VALUES ('smile/question.gif', 16, 16, 6, 1);
|
INSERT INTO phpbb_icons (icons_url, icons_width, icons_height, icons_order, display_on_posting) VALUES ('smile/question.svg', 16, 16, 6, 1);
|
||||||
INSERT INTO phpbb_icons (icons_url, icons_width, icons_height, icons_order, display_on_posting) VALUES ('smile/alert.gif', 16, 16, 7, 1);
|
INSERT INTO phpbb_icons (icons_url, icons_width, icons_height, icons_order, display_on_posting) VALUES ('smile/alert.svg', 16, 16, 7, 1);
|
||||||
|
|
||||||
# -- reasons
|
# -- reasons
|
||||||
INSERT INTO phpbb_reports_reasons (reason_title, reason_description, reason_order) VALUES ('warez', '{L_REPORT_WAREZ}', 1);
|
INSERT INTO phpbb_reports_reasons (reason_title, reason_description, reason_order) VALUES ('warez', '{L_REPORT_WAREZ}', 1);
|
||||||
|
|
|
@ -51,7 +51,15 @@ function installer_msg_handler($errno, $msg_text, $errfile, $errline): bool
|
||||||
{
|
{
|
||||||
global $phpbb_installer_container, $msg_long_text;
|
global $phpbb_installer_container, $msg_long_text;
|
||||||
|
|
||||||
if (error_reporting() == 0)
|
// Acording to https://www.php.net/manual/en/language.operators.errorcontrol.php
|
||||||
|
// error_reporting() return a different error code inside the error handler after php 8.0
|
||||||
|
$suppresed = E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR | E_RECOVERABLE_ERROR | E_PARSE;
|
||||||
|
if (PHP_VERSION_ID < 80000)
|
||||||
|
{
|
||||||
|
$suppresed = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (error_reporting() == $suppresed)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -111,8 +111,6 @@ $lang = array_merge($lang, array(
|
||||||
'GO_TO_EXTENSIONS' => 'Go to extension management screen',
|
'GO_TO_EXTENSIONS' => 'Go to extension management screen',
|
||||||
'GROUP_NAME' => 'Group name',
|
'GROUP_NAME' => 'Group name',
|
||||||
|
|
||||||
'IMAGE_LINK_SIZE' => 'Image link dimensions',
|
|
||||||
'IMAGE_LINK_SIZE_EXPLAIN' => 'Display image attachment as an inline text link if image is larger than this. To disable this behaviour, set the values to 0px by 0px.',
|
|
||||||
'IMAGE_QUALITY' => 'Quality of uploaded image attachments (JPEG only)',
|
'IMAGE_QUALITY' => 'Quality of uploaded image attachments (JPEG only)',
|
||||||
'IMAGE_QUALITY_EXPLAIN' => 'Specify value between 50% (smaller file size) and 90% (higher quality). Quality higher than 90% increases filesize and is disabled. Setting only applies if maximum image dimensions are set to a value other than 0px by 0px.',
|
'IMAGE_QUALITY_EXPLAIN' => 'Specify value between 50% (smaller file size) and 90% (higher quality). Quality higher than 90% increases filesize and is disabled. Setting only applies if maximum image dimensions are set to a value other than 0px by 0px.',
|
||||||
'IMAGE_STRIP_METADATA' => 'Strip image metadata (JPEG only)',
|
'IMAGE_STRIP_METADATA' => 'Strip image metadata (JPEG only)',
|
||||||
|
|
|
@ -69,6 +69,8 @@ $lang = array_merge($lang, array(
|
||||||
'SITE_HOME_URL' => 'Main website URL',
|
'SITE_HOME_URL' => 'Main website URL',
|
||||||
'SITE_HOME_URL_EXPLAIN' => 'If specified, a link to this URL will be prepended to your board’s breadcrumbs and the board logo will link to this URL instead of the forum index. An absolute URL is required, e.g. <samp>http://www.phpbb.com</samp>.',
|
'SITE_HOME_URL_EXPLAIN' => 'If specified, a link to this URL will be prepended to your board’s breadcrumbs and the board logo will link to this URL instead of the forum index. An absolute URL is required, e.g. <samp>http://www.phpbb.com</samp>.',
|
||||||
'SITE_NAME' => 'Site name',
|
'SITE_NAME' => 'Site name',
|
||||||
|
'SITE_NAME_SHORT' => 'Short site name',
|
||||||
|
'SITE_NAME_SHORT_EXPLAIN' => 'Short name will be used if your site is added to a mobile device’s home screen. It can not exceed 12 characters (Emoji is supported).',
|
||||||
'SYSTEM_TIMEZONE' => 'Guest timezone',
|
'SYSTEM_TIMEZONE' => 'Guest timezone',
|
||||||
'SYSTEM_TIMEZONE_EXPLAIN' => 'Timezone to use for displaying times to users who are not logged in (guests, bots). Logged in users set their timezone during registration and can change it in their user control panel.',
|
'SYSTEM_TIMEZONE_EXPLAIN' => 'Timezone to use for displaying times to users who are not logged in (guests, bots). Logged in users set their timezone during registration and can change it in their user control panel.',
|
||||||
'WARNINGS_EXPIRE' => 'Warning duration',
|
'WARNINGS_EXPIRE' => 'Warning duration',
|
||||||
|
@ -206,10 +208,6 @@ $lang = array_merge($lang, array(
|
||||||
|
|
||||||
'MAX_SIG_FONT_SIZE' => 'Maximum signature font size',
|
'MAX_SIG_FONT_SIZE' => 'Maximum signature font size',
|
||||||
'MAX_SIG_FONT_SIZE_EXPLAIN' => 'Maximum font size allowed in user signatures. Set to 0 for unlimited size.',
|
'MAX_SIG_FONT_SIZE_EXPLAIN' => 'Maximum font size allowed in user signatures. Set to 0 for unlimited size.',
|
||||||
'MAX_SIG_IMG_HEIGHT' => 'Maximum signature image height',
|
|
||||||
'MAX_SIG_IMG_HEIGHT_EXPLAIN' => 'Maximum height of an image file in user signatures. Set to 0 for unlimited height.',
|
|
||||||
'MAX_SIG_IMG_WIDTH' => 'Maximum signature image width',
|
|
||||||
'MAX_SIG_IMG_WIDTH_EXPLAIN' => 'Maximum width of an image file in user signatures. Set to 0 for unlimited width.',
|
|
||||||
'MAX_SIG_LENGTH' => 'Maximum signature length',
|
'MAX_SIG_LENGTH' => 'Maximum signature length',
|
||||||
'MAX_SIG_LENGTH_EXPLAIN' => 'Maximum number of characters in user signatures.',
|
'MAX_SIG_LENGTH_EXPLAIN' => 'Maximum number of characters in user signatures.',
|
||||||
'MAX_SIG_SMILIES' => 'Maximum smilies per signature',
|
'MAX_SIG_SMILIES' => 'Maximum smilies per signature',
|
||||||
|
@ -472,8 +470,8 @@ $lang = array_merge($lang, array(
|
||||||
'SMILIES_PATH_EXPLAIN' => 'Path under your phpBB root directory, e.g. <samp>images/smilies</samp>.',
|
'SMILIES_PATH_EXPLAIN' => 'Path under your phpBB root directory, e.g. <samp>images/smilies</samp>.',
|
||||||
'UPLOAD_ICONS_PATH' => 'Extension group icons storage path',
|
'UPLOAD_ICONS_PATH' => 'Extension group icons storage path',
|
||||||
'UPLOAD_ICONS_PATH_EXPLAIN' => 'Path under your phpBB root directory, e.g. <samp>images/upload_icons</samp>.',
|
'UPLOAD_ICONS_PATH_EXPLAIN' => 'Path under your phpBB root directory, e.g. <samp>images/upload_icons</samp>.',
|
||||||
'USE_SYSTEM_CRON' => 'Run periodic tasks from system cron',
|
'USE_SYSTEM_CRON' => 'Run periodic tasks from operating system cron',
|
||||||
'USE_SYSTEM_CRON_EXPLAIN' => 'When off, phpBB will arrange for periodic tasks to be run automatically. When on, phpBB will not schedule any periodic tasks by itself; a system administrator must arrange for <code>bin/phpbbcli.php cron:run</code> to be run by the system cron facility at regular intervals (e.g. every 5 minutes).',
|
'USE_SYSTEM_CRON_EXPLAIN' => 'When disabled, phpBB will arrange for periodic tasks to be run automatically. When enabled, phpBB will not schedule any periodic tasks by itself; a system administrator must arrange for <code>bin/phpbbcli.php cron:run</code> to be run by the operating system cron facility at regular intervals (e.g. every 5 minutes).',
|
||||||
));
|
));
|
||||||
|
|
||||||
// Security Settings
|
// Security Settings
|
||||||
|
|
|
@ -36,14 +36,15 @@ if (empty($lang) || !is_array($lang))
|
||||||
|
|
||||||
$lang = array_merge($lang, array(
|
$lang = array_merge($lang, array(
|
||||||
|
|
||||||
'EXTENSION_ALREADY_INSTALLED' => 'The “%s” extension has already been installed.',
|
'EXTENSIONS_ALREADY_INSTALLED' => 'The “%s” extension has already been installed.',
|
||||||
'EXTENSION_ALREADY_INSTALLED_MANUALLY' => 'The “%s” extension has already been installed manually.',
|
'EXTENSIONS_ALREADY_INSTALLED_MANUALLY' => 'The “%s” extension has already been installed manually.',
|
||||||
'EXTENSION_ALREADY_MANAGED' => 'The “%s” extension is already managed.',
|
'EXTENSIONS_ALREADY_MANAGED' => 'The “%s” extension is already managed.',
|
||||||
'EXTENSION_CANNOT_MANAGE_FILESYSTEM_ERROR' => 'The “%s” extension cannot be managed because the existing files could not be removed from the filesystem.',
|
'EXTENSIONS_CANNOT_MANAGE_FILESYSTEM_ERROR' => 'The “%s” extension cannot be managed because the existing files could not be removed from the filesystem.',
|
||||||
'EXTENSION_CANNOT_MANAGE_INSTALL_ERROR' => 'The “%s” extension could not be installed. The prior installation of this extension has been restored.',
|
'EXTENSIONS_CANNOT_MANAGE_INSTALL_ERROR' => 'The “%s” extension could not be installed. The prior installation of this extension has been restored.',
|
||||||
'EXTENSION_MANAGED_WITH_CLEAN_ERROR' => 'The “%1$s” extension has been installed but an error occurred and the old files could not be removed. You might want to delete the “%2$s” files manually.',
|
'EXTENSIONS_MANAGED_WITH_CLEAN_ERROR' => 'The “%1$s” extension has been installed but an error occurred and the old files could not be removed. You might want to delete the “%2$s” files manually.',
|
||||||
'EXTENSION_MANAGED_WITH_ENABLE_ERROR' => 'The “%s” extension has been installed but an error occurred while enabling it.',
|
'EXTENSIONS_MANAGED_WITH_ENABLE_ERROR' => 'The “%s” extension has been installed but an error occurred while enabling it.',
|
||||||
'EXTENSION_NOT_INSTALLED' => 'The “%s” extension is not installed.',
|
'EXTENSIONS_NOT_INSTALLED' => 'The “%s” extension is not installed.',
|
||||||
|
'EXTENSIONS_NOT_MANAGED' => 'The “%s” extension is not being managed.',
|
||||||
|
|
||||||
'ENABLING_EXTENSIONS' => 'Enabling extensions',
|
'ENABLING_EXTENSIONS' => 'Enabling extensions',
|
||||||
'DISABLING_EXTENSIONS' => 'Disabling extensions',
|
'DISABLING_EXTENSIONS' => 'Disabling extensions',
|
||||||
|
@ -62,8 +63,9 @@ $lang = array_merge($lang, array(
|
||||||
|
|
||||||
'DETAILS' => 'Details',
|
'DETAILS' => 'Details',
|
||||||
|
|
||||||
'EXTENSIONS_DISABLED' => 'Disabled Extensions',
|
'EXTENSIONS_NOT_INSTALLED' => 'Not installed Extensions',
|
||||||
'EXTENSIONS_ENABLED' => 'Enabled Extensions',
|
'EXTENSIONS_DISABLED' => 'Disabled Extensions',
|
||||||
|
'EXTENSIONS_ENABLED' => 'Enabled Extensions',
|
||||||
|
|
||||||
'EXTENSION_DELETE_DATA' => 'Delete data',
|
'EXTENSION_DELETE_DATA' => 'Delete data',
|
||||||
'EXTENSION_DISABLE' => 'Disable',
|
'EXTENSION_DISABLE' => 'Disable',
|
||||||
|
@ -74,6 +76,8 @@ $lang = array_merge($lang, array(
|
||||||
'EXTENSION_DELETE_DATA_EXPLAIN' => 'Deleting an extension’s data removes all of its data and settings. The extension files are retained so it can be enabled again.',
|
'EXTENSION_DELETE_DATA_EXPLAIN' => 'Deleting an extension’s data removes all of its data and settings. The extension files are retained so it can be enabled again.',
|
||||||
'EXTENSION_DISABLE_EXPLAIN' => 'Disabling an extension retains its files, data and settings but removes any functionality added by the extension.',
|
'EXTENSION_DISABLE_EXPLAIN' => 'Disabling an extension retains its files, data and settings but removes any functionality added by the extension.',
|
||||||
'EXTENSION_ENABLE_EXPLAIN' => 'Enabling an extension allows you to use it on your board.',
|
'EXTENSION_ENABLE_EXPLAIN' => 'Enabling an extension allows you to use it on your board.',
|
||||||
|
'EXTENSION_REMOVE_EXPLAIN' => 'Removing an extension removes all of its files, data and settings.',
|
||||||
|
'EXTENSION_UPDATE_EXPLAIN' => 'Updating an extension will install the latest version compatible with your board, removing old files and replacing them with new ones, and updating the database if necessary.',
|
||||||
|
|
||||||
'EXTENSION_DELETE_DATA_IN_PROGRESS' => 'The extension’s data is currently being deleted. Please do not leave or refresh this page until it is completed.',
|
'EXTENSION_DELETE_DATA_IN_PROGRESS' => 'The extension’s data is currently being deleted. Please do not leave or refresh this page until it is completed.',
|
||||||
'EXTENSION_DISABLE_IN_PROGRESS' => 'The extension is currently being disabled. Please do not leave or refresh this page until it is completed.',
|
'EXTENSION_DISABLE_IN_PROGRESS' => 'The extension is currently being disabled. Please do not leave or refresh this page until it is completed.',
|
||||||
|
@ -86,25 +90,25 @@ $lang = array_merge($lang, array(
|
||||||
'EXTENSION_NAME' => 'Extension Name',
|
'EXTENSION_NAME' => 'Extension Name',
|
||||||
'EXTENSION_ACTIONS' => 'Actions',
|
'EXTENSION_ACTIONS' => 'Actions',
|
||||||
'EXTENSION_OPTIONS' => 'Options',
|
'EXTENSION_OPTIONS' => 'Options',
|
||||||
'EXTENSION_INSTALL_HEADLINE'=> 'Installing an extension',
|
'EXTENSION_INSTALLING_HEADLINE' => 'Installing an extension',
|
||||||
'EXTENSION_INSTALL_EXPLAIN' => '<ol>
|
'EXTENSION_INSTALLING_EXPLAIN' => [
|
||||||
<li>Download an extension from phpBB’s extensions database</li>
|
0 => 'Download an extension from phpBB’s extensions database',
|
||||||
<li>Unzip the extension and upload it to the <samp>ext/</samp> directory of your phpBB board</li>
|
1 => 'Unzip the extension and upload it to the <samp>ext/</samp> directory of your phpBB board',
|
||||||
<li>Enable the extension, here in the Extensions manager</li>
|
2 => 'Enable the extension, here in the Extensions manager',
|
||||||
</ol>',
|
],
|
||||||
'EXTENSION_UPDATE_HEADLINE' => 'Updating an extension',
|
'EXTENSION_REMOVING_HEADLINE' => 'Deleting an extension from your board',
|
||||||
'EXTENSION_UPDATE_EXPLAIN' => '<ol>
|
'EXTENSION_REMOVING_EXPLAIN' => [
|
||||||
<li>Disable the extension</li>
|
0 => 'Disable the extension',
|
||||||
<li>Delete the extension’s files from the filesystem</li>
|
1 => 'Delete the extension’s data',
|
||||||
<li>Upload the new files</li>
|
2 => 'Delete the extension‘s files from the filesystem',
|
||||||
<li>Enable the extension</li>
|
],
|
||||||
</ol>',
|
'EXTENSION_UPDATING_HEADLINE' => 'Updating an extension',
|
||||||
'EXTENSION_REMOVE_HEADLINE' => 'Completely removing an extension from your board',
|
'EXTENSION_UPDATING_EXPLAIN' => [
|
||||||
'EXTENSION_REMOVE_EXPLAIN' => '<ol>
|
0 => 'Disable the extension',
|
||||||
<li>Disable the extension</li>
|
1 => 'Delete the extension’s files from the filesystem',
|
||||||
<li>Delete the extension’s data</li>
|
2 => 'Upload the new files',
|
||||||
<li>Delete the extension’s files from the filesystem</li>
|
3 => 'Enable the extension',
|
||||||
</ol>',
|
],
|
||||||
|
|
||||||
'EXTENSION_DELETE_DATA_CONFIRM' => 'Are you sure that you wish to delete the data associated with “%s”?<br /><br />This removes all of its data and settings and cannot be undone!',
|
'EXTENSION_DELETE_DATA_CONFIRM' => 'Are you sure that you wish to delete the data associated with “%s”?<br /><br />This removes all of its data and settings and cannot be undone!',
|
||||||
'EXTENSION_DISABLE_CONFIRM' => 'Are you sure that you wish to disable the “%s” extension?',
|
'EXTENSION_DISABLE_CONFIRM' => 'Are you sure that you wish to disable the “%s” extension?',
|
||||||
|
|
|
@ -88,6 +88,20 @@ $lang = array_merge($lang, array(
|
||||||
'LOCAL_URL' => 'A local URL. The URL must be relative to the topic page and cannot contain a server name or protocol, as links are prefixed with “%s”',
|
'LOCAL_URL' => 'A local URL. The URL must be relative to the topic page and cannot contain a server name or protocol, as links are prefixed with “%s”',
|
||||||
'RELATIVE_URL' => 'A relative URL. You can use this to match parts of a URL, but be careful: a full URL is a valid relative URL. When you want to use relative URLs of your board, use the LOCAL_URL token.',
|
'RELATIVE_URL' => 'A relative URL. You can use this to match parts of a URL, but be careful: a full URL is a valid relative URL. When you want to use relative URLs of your board, use the LOCAL_URL token.',
|
||||||
'COLOR' => 'A HTML colour, can be either in the numeric form <samp>#FF1234</samp> or a <a href="http://www.w3.org/TR/CSS21/syndata.html#value-def-color">CSS colour keyword</a> such as <samp>fuchsia</samp> or <samp>InactiveBorder</samp>',
|
'COLOR' => 'A HTML colour, can be either in the numeric form <samp>#FF1234</samp> or a <a href="http://www.w3.org/TR/CSS21/syndata.html#value-def-color">CSS colour keyword</a> such as <samp>fuchsia</samp> or <samp>InactiveBorder</samp>',
|
||||||
|
'ALNUM' => 'Characters from the latin alphabet (A-Z) and numbers.',
|
||||||
|
'CHOICE' => 'A choice of specified values, e.g. <samp>{CHOICE=spades,hearts,diamonds,clubs}</samp>. The values are treated as case-insensitive by default and can be treated case-sensitive by specifying the <samp>caseSensitive</samp> option: <samp>{CHOICE=Spades,Hearts,Diamonds,Clubs;caseSensitive}</samp>',
|
||||||
|
'FLOAT' => 'A decimal value, e.g. <samp>0.5</samp>.',
|
||||||
|
'HASHMAP' => 'Maps strings to their replacement in the form <samp>{HASHMAP=string1:replacement1,string2:replacement2}</samp>. Case-sensitive. Preserves unknown values by default.',
|
||||||
|
'INT' => 'An integer value, e.g. <samp>2</samp>.',
|
||||||
|
'IP' => 'A valid IPv4 or IPv6 address.',
|
||||||
|
'IPPORT' => 'A valid IPv4 or IPv6 address with port number.',
|
||||||
|
'IPV4' => 'A valid IPv4 address.',
|
||||||
|
'IPV6' => 'A valid IPv6 address.',
|
||||||
|
'MAP' => 'Maps strings to their replacement in the form <samp>{MAP=string1:replacement1,string2:replacement2}</samp>. Case-insensitive. Preserves unknown values by default.',
|
||||||
|
'RANGE' => 'Accepts an integer in the given range, e.g. <samp>{RANGE=-10,42}</samp>.',
|
||||||
|
'REGEXP' => 'Validates its value against a given regexp, e.g. <samp>{REGEXP=/^foo\w+bar$/}</samp>.',
|
||||||
|
'TIMESTAMP' => 'A timestamp such as <samp>1h30m10s</samp> which will be converted to a number of seconds. Also accepts a number.',
|
||||||
|
'UINT' => 'An unsigned integer value. Same as <samp>{INT}</samp>, but rejects values less than 0.',
|
||||||
),
|
),
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|
|
@ -61,4 +61,5 @@ $lang = array_merge($lang, array(
|
||||||
|
|
||||||
'QA_ERROR_MSG' => 'Please fill in all fields and enter at least one answer.',
|
'QA_ERROR_MSG' => 'Please fill in all fields and enter at least one answer.',
|
||||||
'QA_LAST_QUESTION' => 'You cannot delete all questions while the plugin is active.',
|
'QA_LAST_QUESTION' => 'You cannot delete all questions while the plugin is active.',
|
||||||
|
'QA_NO_QUESTIONS' => 'There are no questions yet.',
|
||||||
));
|
));
|
||||||
|
|
53
phpBB/language/en/captcha_turnstile.php
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* This file is part of the phpBB Forum Software package.
|
||||||
|
*
|
||||||
|
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||||
|
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||||
|
*
|
||||||
|
* For full copyright and license information, please see
|
||||||
|
* the docs/CREDITS.txt file.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DO NOT CHANGE
|
||||||
|
*/
|
||||||
|
if (!defined('IN_PHPBB'))
|
||||||
|
{
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty($lang) || !is_array($lang))
|
||||||
|
{
|
||||||
|
$lang = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
// DEVELOPERS PLEASE NOTE
|
||||||
|
//
|
||||||
|
// All language files should use UTF-8 as their encoding and the files must not contain a BOM.
|
||||||
|
//
|
||||||
|
// Placeholders can now contain order information, e.g. instead of
|
||||||
|
// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows
|
||||||
|
// translators to re-order the output of data while ensuring it remains correct
|
||||||
|
//
|
||||||
|
// You do not need this where single placeholders are used, e.g. 'Message %d' is fine
|
||||||
|
// equally where a string contains only two placeholders which are used to wrap text
|
||||||
|
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
|
||||||
|
|
||||||
|
$lang = array_merge($lang, [
|
||||||
|
'CAPTCHA_TURNSTILE' => 'Turnstile',
|
||||||
|
'CAPTCHA_TURNSTILE_INCORRECT' => 'The solution you provided was incorrect',
|
||||||
|
'CAPTCHA_TURNSTILE_NOSCRIPT' => 'Please enable JavaScript in your browser to load the challenge.',
|
||||||
|
'CAPTCHA_TURNSTILE_NOT_AVAILABLE' => 'In order to use Turnstile you must create a <a href="https://www.cloudflare.com/products/turnstile/">Cloudflare account</a>.',
|
||||||
|
'CAPTCHA_TURNSTILE_SECRET' => 'Secret key',
|
||||||
|
'CAPTCHA_TURNSTILE_SECRET_EXPLAIN' => 'Your Turnstile secret key. The secret key can be retrieved from your <a href="https://dash.cloudflare.com/?to=/:account/turnstile">Cloudflare dashboard</a>.',
|
||||||
|
'CAPTCHA_TURNSTILE_SITEKEY' => 'Sitekey',
|
||||||
|
'CAPTCHA_TURNSTILE_SITEKEY_EXPLAIN' => 'Your Turnstile sitekey. The sitekey can be retrieved from your <a href="https://dash.cloudflare.com/?to=/:account/turnstile">Cloudflare dashboard</a>.',
|
||||||
|
'CAPTCHA_TURNSTILE_THEME' => 'Widget theme',
|
||||||
|
'CAPTCHA_TURNSTILE_THEME_EXPLAIN' => 'The theme of the CAPTCHA widget. By default, <samp>light</samp> will be used. Other possibilities are <samp>dark</samp> and <samp>auto</samp>, which respects the user’s preference.',
|
||||||
|
'CAPTCHA_TURNSTILE_THEME_AUTO' => 'Auto',
|
||||||
|
'CAPTCHA_TURNSTILE_THEME_DARK' => 'Dark',
|
||||||
|
'CAPTCHA_TURNSTILE_THEME_LIGHT' => 'Light',
|
||||||
|
]);
|