64 Commits

Author SHA1 Message Date
Marc Alexander
4996846126 Remove not needed file and update composer files 2023-03-19 09:58:15 +01:00
Marc Alexander
b5e680ef0f Move portal_weather.png to styles/all folder 2023-03-15 17:26:22 +01:00
Marc Alexander
140ac8761d Improve handling and language vars for module images 2023-03-15 17:16:47 +01:00
Marc Alexander
b634c3cad8 Fix display of list markers in side modules 2023-03-01 20:44:19 +01:00
Marc Alexander
dadf57fd55 Extend explanation of module reset and link to recommended fa icons 2023-02-28 21:07:10 +01:00
Marc Alexander
eaa878645b Link to wiki in readme 2023-02-28 21:01:22 +01:00
Marc Alexander
b76bdcab13 Change icons to use for modules 2023-02-28 20:54:14 +01:00
Marc Alexander
2d7eeae515 Add ext.php for enable check and bp icon 2023-02-28 20:52:35 +01:00
Marc Alexander
9a89bf3a1b Remove note about additional icons in custom styles 2023-02-28 20:52:04 +01:00
Marc Alexander
1b4006b9a3 Clean up whitespace 2023-02-28 20:51:47 +01:00
Marc Alexander
1c88afc176 Clean up language files 2023-02-20 21:13:10 +01:00
Marc Alexander
6854ff7407 Update build.xml to exlude not wanted directories/files 2023-02-20 21:07:29 +01:00
Marc Alexander
e0c9908a2b Update README 2023-02-20 21:04:53 +01:00
Marc Alexander
9ccf4b81e9 Improve module icons and update language for icons 2023-02-20 20:51:58 +01:00
Marc Alexander
ecc95254f1 Fix shifting of clock bottom parts during animation 2023-02-19 11:05:32 +01:00
Marc Alexander
812dfa0298 Add Kirk to list of developers and update fields 2023-02-14 20:53:20 +01:00
Marc Alexander
3002126d44 Add missing b3p-icon classes to html files 2023-02-14 20:49:16 +01:00
Marc Alexander
68cf9864c6 Add support for module icons in center column 2023-02-13 20:49:53 +01:00
Marc Alexander
286bd55424 Some more cleanup and add PHP 8.2 support 2023-02-13 20:39:50 +01:00
Marc Alexander
552ceb2e49 Tweak stylesheet settings and usee newer media syntax 2023-02-13 20:35:43 +01:00
Marc Alexander
807e06f8a6 Use twig syntax in modules html files 2023-02-13 20:34:16 +01:00
Marc Alexander
46a9e89db2 Update modules code with small fixes and improvements 2023-02-13 20:24:54 +01:00
Marc Alexander
ccd7e27410 Update language files, add de_x_sie, and clean up files 2023-02-13 20:15:34 +01:00
Marc Alexander
e34de96b5d Add include to random member module 2023-02-13 19:53:33 +01:00
Marc Alexander
2069837ffc Change ACP to use twig syntax 2023-02-13 19:43:31 +01:00
Marc Alexander
44358e503a Resolve warnings in PHPUnit tests due to deprecation 2023-02-13 17:11:32 +01:00
Marc Alexander
446b76dbbb Add missing data to users fixture 2023-02-08 20:20:27 +01:00
Marc Alexander
e7419198dd Ensure that global user is set in birthday list test 2023-02-07 21:35:04 +01:00
Marc Alexander
46e7d5c334 Change block_config and portal_config to twig style & update copyright 2023-02-07 21:00:56 +01:00
Marc Alexander
791fc8920b Change events to use twig syntax & be compatible with phpBB 3.3.9+ 2023-02-07 20:57:49 +01:00
Marc Alexander
6711688b73 Update composer dependencies, supported versions, and version check 2023-02-07 20:55:21 +01:00
Marc Alexander
9d9e0960c5 Start using Ubuntu 20.04 runners 2023-02-07 20:39:58 +01:00
Marc Alexander
68b243f4ff Update copyright blocks 2023-02-07 20:36:48 +01:00
Marc Alexander
0643475b20 Merge pull request #717 from marc1706/ticket/701
Add fontawesome support
2021-09-05 14:23:21 +02:00
Marc Alexander
71c66c4cdd [ticket/701] Add missing variables for fontawesome with portal on all pages
B3P-701
2021-09-05 10:16:10 +02:00
Marc Alexander
61f943a895 Merge pull request #719 from marc1706/ticket/718
[ticket/718] Use 3.3.x in phing builds
2021-09-04 18:07:07 +02:00
Marc Alexander
d2fba40472 [ticket/718] Use 3.3.x in phing builds
B3P-718
2021-09-04 17:39:57 +02:00
Marc Alexander
38ad62d4b7 [ticket/701] Some more clean up
B3P-701
2021-09-04 17:32:43 +02:00
Marc Alexander
5f77867c36 [ticket/701] Remove non-default style
B3P-701
2021-09-04 17:24:40 +02:00
Marc Alexander
2044fc8e72 [ticket/701] Update migrations file
B3P-701
2021-09-04 17:24:16 +02:00
Marc Alexander
8fdc620197 [ticket/701] Rename migrations file to v230_fa.php
B3P-701
2021-09-04 17:21:34 +02:00
Marc Alexander
38a8b4410f [ticket/701] Replace spaces with tabs
B3P-701
2021-09-04 17:15:35 +02:00
Marc Alexander
9f374290ad [ticket/701] Fix tests and move declarations to services file
B3P-701
2021-09-04 17:15:12 +02:00
Marc Alexander
bca0afa86d [ticket/701] Replaces spaces with tabs
B3P-701
2021-09-04 16:27:41 +02:00
MarkusWME
d0a74065c0 Add Font Awesome functionality 2021-09-04 12:17:53 +02:00
MarkusWME
158e3e6954 Update styles 2021-09-04 12:17:34 +02:00
MarkusWME
478766994b Add Mobbern3.1 support 2021-09-04 12:17:33 +02:00
Marc Alexander
46da9a8b47 Merge pull request #716 from marc1706/ticket/715
[ticket/715] Resolv build issues with GitHub Actions
2021-09-04 11:52:29 +02:00
Marc Alexander
6306d6a18b [ticket/715] Make expected error type depend on PHP version
B3P-715
2021-09-04 11:27:09 +02:00
Marc Alexander
ed54e3ef0c [ticket/715] Resolve issues with portal and tests on PHP 8.0
B3P-715
2021-09-04 11:09:52 +02:00
Marc Alexander
9eb415b79c [ticket/715] Remove epv from composer dependencies
B3P-715
2021-08-29 11:18:42 +02:00
Marc Alexander
d02e6c36c1 [ticket/715] Stop executable check and remove travis files
B3P-715
2021-08-29 11:10:55 +02:00
Marc Alexander
11326bce1a [ticket/715] Fix code sniffer and mssql complaints
B3P-715
2021-08-29 11:07:11 +02:00
Marc Alexander
d24316d809 [ticket/715] Resolve some more test issues
B3P-715
2021-08-29 09:39:57 +02:00
Marc Alexander
d8bb1c64a4 [ticket/715] Resolve code sniffer complaints
B3P-715
2021-08-28 08:36:22 +02:00
Marc Alexander
2c89b28a53 [ticket/715] Create composer.json on platform PHP 7.1
B3P-715
2021-08-28 08:29:40 +02:00
Marc Alexander
99ad0f4f16 [ticket/715] Update composer to 1.10.22
B3P-715
2021-08-28 08:29:01 +02:00
Marc Alexander
ec021a72ca Merge pull request #693 from marc1706/ticket/690
[ticket/690] Apply Kirk's changes and fix pagination
2021-08-27 22:37:30 +02:00
Marc Alexander
5f838e48a1 [ticket/690] Fix issues with composer.json entries
B3P-690
2021-08-27 22:35:57 +02:00
Marc Alexander
e31522f310 [ticket/690] Add github actions workflows file
B3P-690
2021-08-27 22:35:50 +02:00
Marc Alexander
abf8a7bfcf [ticket/690] Make tests compatible with latest version of phpunit & phpBB
B3P-690
2021-08-27 22:35:42 +02:00
Marc Alexander
7ee3bd1727 [ticket/690] Adjust setUp() declaration and classes
B3P-690
2021-08-27 22:35:34 +02:00
Marc Alexander
5b62c517e5 [ticket/690] Update text shortener and other dependencies
B3P-690
2021-08-27 22:35:19 +02:00
Marc Alexander
ea527c580c [ticket/690] Add Kirk's changes from 3.3.x version
B3P-690
2021-08-27 21:20:47 +02:00
272 changed files with 5922 additions and 3505 deletions

414
.github/workflows/tests.yml vendored Normal file
View File

@@ -0,0 +1,414 @@
name: Tests
env:
EXTNAME: board3/portal # Your extension vendor/package name
SNIFF: 1 # Run code sniffer on your code? 1 or 0
IMAGE_ICC: 0 # Run icc profile sniffer on your images? 1 or 0
EPV: 1 # Run EPV (Extension Pre Validator) on your code? 1 or 0
EXECUTABLE_FILES: 0 # Run check for executable files? 1 or 0
PHPBB_BRANCH: 3.3.x # The phpBB branch to run tests on
on:
push:
branches: # Run tests when commits are pushed to these branches in your repo
- master
pull_request: # Run tests when pull requests are made on these branches in your repo
branches:
- master
jobs:
# START Basic Checks Job (EPV, code sniffer, images check, etc.)
basic-checks:
runs-on: ubuntu-20.04
strategy:
matrix:
include:
- php: '7.1'
db: "none"
NOTESTS: 1
name: PHP ${{ matrix.php }} - ${{ matrix.db }}
steps:
- name: Checkout phpBB
uses: actions/checkout@v2
with:
repository: phpbb/phpbb
ref: ${{ env.PHPBB_BRANCH }}
path: phpBB3
- name: Checkout extension
uses: actions/checkout@v2
with:
path: phpBB3/phpBB/ext/${{ env.EXTNAME }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, mysqli, sqlite, pdo_sqlite, intl, gd, exif, iconv, sqlsrv, pdo_sqlsrv, ldap
coverage: none
- name: Setup environment for phpBB
env:
DB: ${{ matrix.db }}
PHP_VERSION: ${{ matrix.php }}
NOTESTS: '1'
run: .github/setup-phpbb.sh $DB $PHP_VERSION $NOTESTS
working-directory: ./phpBB3
- name: Setup EPV
if: ${{ env.EPV != 0 }}
run: composer require phpbb/epv:dev-master --dev --no-interaction --ignore-platform-reqs
working-directory: ./phpBB3/phpBB
- name: Run code sniffer
if: ${{ env.SNIFF != 0 }}
env:
NOTESTS: '1'
run: .github/ext-sniff.sh $EXTNAME $NOTESTS
working-directory: ./phpBB3
- name: Check image ICC profiles
if: ${{ env.IMAGE_ICC != 0 }}
run: .github/check-image-icc-profiles.sh
working-directory: ./phpBB3
- name: Check executable files
if: ${{ env.EXECUTABLE_FILES != 0 }}
run: .github/ext-check-executable-files.sh ./ $EXTNAME
working-directory: ./phpBB3
- name: Run EPV
if: ${{ env.EPV != 0 }}
run: phpBB/vendor/bin/EPV.php run --dir="phpBB/ext/$EXTNAME/"
working-directory: ./phpBB3
# END Basic Checks Job
# START MySQL and MariaDB Job
mysql-tests:
runs-on: ubuntu-20.04
strategy:
matrix:
include:
- php: '7.1'
db: "mariadb:10.1"
- php: '7.1'
db: "mariadb:10.2"
- php: '7.1'
db: "mariadb:10.3"
- php: '7.1'
db: "mariadb:10.4"
- php: '7.1'
db: "mariadb:10.5"
- php: '7.1'
db: "mysql:5.6"
db_alias: "MyISAM Tests"
MYISAM: 1
- php: '7.1'
db: "mysql:5.6"
- php: '7.1'
db: "mysql:5.7"
- php: '7.2'
db: "mysql:5.7"
- php: '7.3'
db: "mysql:5.7"
- php: '7.4'
db: "mysql:5.7"
- php: '7.4'
db: "mysql:8.0"
- php: '8.0'
db: "mysql:5.7"
- php: '8.1'
db: "mysql:5.7"
name: PHP ${{ matrix.php }} - ${{ matrix.db_alias != '' && matrix.db_alias || matrix.db }}
services:
mysql:
image: ${{ matrix.db }}
env:
MYSQL_ALLOW_EMPTY_PASSWORD: yes
MYSQL_DATABASE: phpbb_tests
ports:
- 3306:3306
options: >-
--health-cmd="mysqladmin ping"
--health-interval=10s
--health-timeout=5s
--health-retries=3
redis:
image: redis
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 6379:6379
steps:
- name: Checkout phpBB
uses: actions/checkout@v2
with:
repository: phpbb/phpbb
ref: ${{ env.PHPBB_BRANCH }}
path: phpBB3
- name: Checkout extension
uses: actions/checkout@v2
with:
path: phpBB3/phpBB/ext/${{ env.EXTNAME }}
- id: database-type
env:
MATRIX_DB: ${{ matrix.db }}
run: |
db=$(echo "${MATRIX_DB%%:*}")
echo "::set-output name=db::$db"
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, mysqli, sqlite, pdo_sqlite, intl, gd, exif, iconv, sqlsrv, pdo_sqlsrv, ldap
coverage: none
- name: Setup environment for phpBB
env:
DB: ${{steps.database-type.outputs.db}}
PHP_VERSION: ${{ matrix.php }}
NOTESTS: '0'
run: .github/setup-phpbb.sh $DB $PHP_VERSION ${NOTESTS:-0}
working-directory: ./phpBB3
- name: Setup Extension composer dependencies
run: composer install
working-directory: phpBB3/phpBB/ext/${{ env.EXTNAME }}
- name: Setup database
env:
DB: ${{steps.database-type.outputs.db}}
MYISAM: ${{ matrix.MYISAM != 1 && '0' || '1' }}
run: .github/setup-database.sh $DB $MYISAM
working-directory: ./phpBB3
- name: Setup PHPUnit files
run: mkdir -p phpBB/ext/$EXTNAME/.github && cp .github/phpunit* $_
working-directory: ./phpBB3
- name: Run unit tests
env:
DB: ${{steps.database-type.outputs.db}}
run: phpBB/vendor/bin/phpunit --configuration phpBB/ext/$EXTNAME/.github/phpunit-$DB-github.xml --bootstrap ./tests/bootstrap.php
working-directory: ./phpBB3
# END MySQL and MariaDB Job
# START PostgreSQL Job
postgres-tests:
runs-on: ubuntu-20.04
strategy:
matrix:
include:
- php: '7.1'
db: "postgres:9.5"
- php: '7.1'
db: "postgres:9.6"
- php: '7.1'
db: "postgres:10"
- php: '7.1'
db: "postgres:11"
- php: '7.1'
db: "postgres:12"
- php: '7.1'
db: "postgres:13"
name: PHP ${{ matrix.php }} - ${{ matrix.db }}
services:
postgres:
image: ${{ matrix.db != 'postgres:9.5' && matrix.db != 'postgres:9.6' && matrix.db != 'postgres:10' && matrix.db != 'postgres:11' && matrix.db != 'postgres:12' && matrix.db != 'postgres:13' && 'postgres:10' || matrix.db }}
env:
POSTGRES_HOST: localhost
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
- 5432:5432
options: >-
-v /var/run/postgresql:/var/run/postgresql
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
redis:
image: redis
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 6379:6379
steps:
- name: Checkout phpBB
uses: actions/checkout@v2
with:
repository: phpbb/phpbb
ref: ${{ env.PHPBB_BRANCH }}
path: phpBB3
- name: Checkout extension
uses: actions/checkout@v2
with:
path: phpBB3/phpBB/ext/${{ env.EXTNAME }}
- id: database-type
env:
MATRIX_DB: ${{ matrix.db }}
run: |
db=$(echo "${MATRIX_DB%%:*}")
echo "::set-output name=db::$db"
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, mysqli, sqlite, pdo_sqlite, intl, gd, exif, iconv, sqlsrv, pdo_sqlsrv, ldap
coverage: none
- name: Setup environment for phpBB
env:
DB: ${{steps.database-type.outputs.db}}
PHP_VERSION: ${{ matrix.php }}
NOTESTS: '0'
run: .github/setup-phpbb.sh $DB $PHP_VERSION ${NOTESTS:-0}
working-directory: ./phpBB3
- name: Setup Extension composer dependencies
run: composer install
working-directory: phpBB3/phpBB/ext/${{ env.EXTNAME }}
- name: Setup database
env:
DB: ${{steps.database-type.outputs.db}}
MYISAM: '0'
run: .github/setup-database.sh $DB $MYISAM
working-directory: ./phpBB3
- name: Setup PHPUnit files
run: mkdir -p phpBB/ext/$EXTNAME/.github && cp .github/phpunit* $_
working-directory: ./phpBB3
- name: Run unit tests
env:
DB: ${{steps.database-type.outputs.db}}
run: phpBB/vendor/bin/phpunit --configuration phpBB/ext/$EXTNAME/.github/phpunit-$DB-github.xml --bootstrap ./tests/bootstrap.php
working-directory: ./phpBB3
# END PostgreSQL Job
# START Other Tests Job (SQLite 3 and mssql)
other-tests:
runs-on: ubuntu-20.04
strategy:
matrix:
include:
- php: '7.1'
db: "sqlite3"
- php: '7.2'
db: "mcr.microsoft.com/mssql/server:2017-latest"
db_alias: 'MSSQL 2017'
- php: '7.2'
db: "mcr.microsoft.com/mssql/server:2019-latest"
db_alias: 'MSSQL 2019'
name: PHP ${{ matrix.php }} - ${{ matrix.db_alias != '' && matrix.db_alias || matrix.db }}
services:
mssql:
image: ${{ matrix.db != 'mcr.microsoft.com/mssql/server:2017-latest' && matrix.db != 'mcr.microsoft.com/mssql/server:2019-latest' && 'mcr.microsoft.com/mssql/server:2017-latest' || matrix.db }}
env:
SA_PASSWORD: "Pssw0rd_12"
ACCEPT_EULA: "y"
ports:
- 1433:1433
options: >-
--health-cmd="/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'Pssw0rd_12' -Q \"Use [master]; CREATE DATABASE [phpbb_tests] COLLATE Latin1_General_CI_AS\" || exit 1"
--health-interval 10s
--health-timeout 5s
--health-retries 5
--health-start-period 10s
redis:
image: redis
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 6379:6379
steps:
- name: Checkout phpBB
uses: actions/checkout@v2
with:
repository: phpbb/phpbb
ref: ${{ env.PHPBB_BRANCH }}
path: phpBB3
- name: Checkout extension
uses: actions/checkout@v2
with:
path: phpBB3/phpBB/ext/${{ env.EXTNAME }}
- id: database-type
env:
MATRIX_DB: ${{ matrix.db }}
run: |
if [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2017-latest' ] || [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2019-latest' ]
then
db='mssql'
else
db=$(echo "${MATRIX_DB%%:*}")
fi
echo "::set-output name=db::$db"
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, mysqli, sqlite, pdo_sqlite, intl, gd, exif, iconv, sqlsrv, pdo_sqlsrv, ldap
coverage: none
- name: Setup environment for phpBB
env:
DB: ${{steps.database-type.outputs.db}}
PHP_VERSION: ${{ matrix.php }}
NOTESTS: '0'
run: .github/setup-phpbb.sh $DB $PHP_VERSION ${NOTESTS:-0}
working-directory: ./phpBB3
- name: Setup Extension composer dependencies
run: composer install
working-directory: phpBB3/phpBB/ext/${{ env.EXTNAME }}
- name: Setup database
env:
DB: ${{steps.database-type.outputs.db}}
MYISAM: '0'
run: .github/setup-database.sh $DB $MYISAM
working-directory: ./phpBB3
- name: Setup PHPUnit files
run: mkdir -p phpBB/ext/$EXTNAME/.github && cp .github/phpunit* $_
working-directory: ./phpBB3
- name: Run unit tests
env:
DB: ${{steps.database-type.outputs.db}}
run: phpBB/vendor/bin/phpunit --configuration phpBB/ext/$EXTNAME/.github/phpunit-$DB-github.xml --bootstrap ./tests/bootstrap.php
working-directory: ./phpBB3
# END Other Tests Job

View File

@@ -1,80 +0,0 @@
language: php
sudo: required
dist: precise
matrix:
include:
- php: 5.4
env: DB=none;NOTESTS=1
- php: 5.4
env: DB=mysqli # MyISAM
- php: 5.4
env: DB=mysql
- php: 5.4
env: DB=mariadb
- php: 5.4
env: DB=postgres
- php: 5.4
env: DB=sqlite3
- php: 5.4
env: DB=mysqli;SLOWTESTS=1
- php: 5.5
env: DB=mysqli
- php: 5.6
env: DB=mysqli
- php: 7.0
env: DB=mysqli
- php: 7.1
env: DB=mysqli
- php: nightly
env: DB=mysqli
- php: hhvm
env: DB=mysqli
allow_failures:
- php: hhvm
- php: nightly
fast_finish: true
env:
global:
- EXTNAME="board3/portal"
- SNIFF="1" # Should we run code sniffer on your code?
- IMAGE_ICC="0" # Should we run icc profile sniffer on your images?
- COVERAGE="1" # Should we send coverage?
- EPV="1" # Should we run EPV (Extension Pre Validator) on your code?
- SPELLCHECK="1" # Should the php files be checked for obvious spelling errors?
- PHPBB_BRANCH="3.2.x"
branches:
except:
- 2.0.x
- develop-1_0_X
install:
- php composer.phar install --dev --no-interaction --prefer-source
- travis/prepare-phpbb.sh $EXTNAME $PHPBB_BRANCH
- cd ../../phpBB3
- travis/prepare-extension.sh $EXTNAME $PHPBB_BRANCH
- travis/setup-phpbb.sh $DB $TRAVIS_PHP_VERSION
- sh -c "if [ '$COVERAGE' != '0' ]; then ../board3/Board3-Portal/travis/prepare-coverage.sh $DB $TRAVIS_PHP_VERSION; fi"
before_script:
- travis/setup-database.sh $DB $TRAVIS_PHP_VERSION
- mkdir build/logs
- chmod +wx build/logs
script:
- sh -c "if [ '$SNIFF' != '0' ]; then travis/ext-sniff.sh $DB $TRAVIS_PHP_VERSION $EXTNAME $NOTESTS; fi"
- sh -c "if [ '$IMAGE_ICC' != '0' ]; then travis/check-image-icc-profiles.sh $DB $TRAVIS_PHP_VERSION $NOTESTS; fi"
- sh -c "if [ '$NOTESTS' != '1' ]; then ../board3/Board3-Portal/travis/run-testsuite.sh $DB $TRAVIS_PHP_VERSION; fi"
- sh -c "if [ '$EPV' != '0' ]; then ../board3/Board3-Portal/travis/run-epv.sh $DB $TRAVIS_PHP_VERSION $EXTNAME; fi"
after_script:
- sh -c "if [ '$COVERAGE' != '0' ]; then ../board3/Board3-Portal/travis/send-coverage.sh $DB $TRAVIS_PHP_VERSION; fi"
notifications:
email:
recipients:
- admin@m-a-styles.de
on_success: change
on_failure: change

View File

@@ -1,23 +1,24 @@
#Board3 Portal 2.1.x
# Board3 Portal 2.3.x
Board Portal 2.1.x is a second generation portal for phpBB 3.1.x. It adds a portal with several blocks to your forum.
Board Portal 2.3.x is a second generation portal for phpBB 3.3.x. It adds a portal with several blocks to your forum.
You can change the settings, move the blocks, add new blocks and more in the ACP.
##How to use
## How to use
You can download the current development version of Board3 Portal 2.1.x here or download the current release at [www.board3.de](http://www.board3.de/ "Board3 • Portal").
Board3 Portal 2.1.x can be installed via the phpBB 3.1 ACP.
You can download the current development version of Board3 Portal 2.3.x here or download the current release at [www.board3.de](https://www.board3.de/ "Board3 • Portal").
Board3 Portal 2.3.x can be installed via the phpBB 3.3 ACP.
##Support
## Support
Support for Board3 Portal can be found at [www.board3.de](http://www.board3.de/ "Board3 • Portal") or on [www.phpbb.com](http://www.phpbb.com/community/viewtopic.php?f=70&t=2131824/ "phpBB • Board3 Portal").
The extension is currently under heavy development and not supported until further notice.
Support for Board3 Portal can be found at [www.board3.de](https://www.board3.de/ "Board3 • Portal") or on [www.phpbb.com](https://www.phpbb.com/customise/db/mod/board3_portal/support/ "phpBB • Board3 Portal").
## Wiki
A wiki with some basic information can be found here: https://github.com/board3/Board3-Portal/wiki
## AUTOMATED TESTING
We are starting to have unit and functional tests in order to prevent regressions. You can check our travis build below.
2.1.x - [![Build Status](https://travis-ci.org/board3/Board3-Portal.svg?branch=2.1.x)](https://travis-ci.org/board3/Board3-Portal)
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/board3/Board3-Portal/badges/quality-score.png?b=2.1.x)](https://scrutinizer-ci.com/g/board3/Board3-Portal/?branch=2.1.x)
[![Code Coverage](https://scrutinizer-ci.com/g/board3/Board3-Portal/badges/coverage.png?b=2.1.x)](https://scrutinizer-ci.com/g/board3/Board3-Portal/?branch=2.1.x)
We are starting to have unit and functional tests in order to prevent regressions. You can check our GitHub Actions builds below.
master - [![Tests](https://github.com/board3/Board3-Portal/actions/workflows/tests.yml/badge.svg)](https://github.com/board3/Board3-Portal/actions/workflows/tests.yml)

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
@@ -12,7 +12,7 @@ namespace board3\portal\acp;
class portal_module
{
public $u_action;
public $new_config = array();
public $new_config = [];
/** @var \board3\portal\modules\module_interface */
protected $c_class;
@@ -101,12 +101,15 @@ class portal_module
'board3_display_jumpbox' => array('lang' => 'PORTAL_DISPLAY_JUMPBOX', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
'legend2' => 'ACP_PORTAL_COLUMN_WIDTH_SETTINGS',
'board3_left_column_width' => array('lang' => 'PORTAL_LEFT_COLUMN_WIDTH', 'validate' => 'int', 'type' => 'text:3:3', 'explain' => true),
'board3_right_column_width' => array('lang' => 'PORTAL_RIGHT_COLUMN_WIDTH', 'validate' => 'int', 'type' => 'text:3:3', 'explain' => true),
'board3_left_column_width' => ['lang' => 'PORTAL_LEFT_COLUMN_WIDTH', 'validate' => 'int', 'type' => 'number:150:400', 'explain' => true, 'append' => ' ' . $this->user->lang('PIXEL')],
'board3_right_column_width' => ['lang' => 'PORTAL_RIGHT_COLUMN_WIDTH', 'validate' => 'int', 'type' => 'number:150:400', 'explain' => true, 'append' => ' ' . $this->user->lang('PIXEL')],
'legend3' => 'ACP_PORTAL_SHOW_ALL',
'board3_show_all_pages' => array('lang' => 'ACP_PORTAL_SHOW_ALL', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
'board3_show_all_side' => array('lang' => 'PORTAL_SHOW_ALL_SIDE', 'validate' => 'bool', 'type' => 'custom', 'method' => array('board3.portal.modules_helper', 'display_left_right'), 'submit' => array('board3.portal.modules_helper', 'store_left_right'), 'explain' => true),
'legend4' => 'ACP_FA',
'board3_fa_styles' => array('lang' => 'ACP_FA', 'validate' => 'string', 'type' => 'custom', 'method' => array('board3.portal.modules_helper', 'display_fa_styles'), 'submit' => array('board3.portal.modules_helper', 'store_fa_styles'), 'explain' => true),
)
);
@@ -125,7 +128,7 @@ class portal_module
if (!($this->c_class = $this->portal_helper->get_module($module_data['module_classname'])))
{
continue;
break;
}
// Load module language
@@ -139,8 +142,10 @@ class portal_module
'MODULE_IMAGE_WIDTH' => $module_data['module_image_width'],
'MODULE_IMAGE_HEIGHT' => $module_data['module_image_height'],
'MODULE_IMAGE_SRC' => ($module_data['module_image_src']) ? $this->root_path . 'styles/all/theme/images/portal/' . $module_data['module_image_src'] : '',
'MODULE_FA' => $module_data['module_fa_icon'],
'MODULE_FA_SIZE' => $module_data['module_fa_size'],
'MODULE_ENABLED' => ($module_data['module_status']) ? true : false,
'MODULE_SHOW_IMAGE' => (in_array($this->portal_columns->number_to_string($module_data['module_column']), array('center', 'top', 'bottom'))) ? false : true,
'MODULE_SHOW_IMAGE' => (in_array($this->portal_columns->number_to_string($module_data['module_column']), array(''))) ? false : true,
));
if ($module_data['module_classname'] != '\board3\portal\modules\custom')
@@ -148,7 +153,7 @@ class portal_module
$groups_ary = explode(',', $module_data['module_group_ids']);
// get group info from database and assign the block vars
$sql = 'SELECT group_id, group_name
$sql = 'SELECT group_id, group_name
FROM ' . GROUPS_TABLE . '
ORDER BY group_id ASC';
$result = $this->db->sql_query($sql);
@@ -270,8 +275,10 @@ class portal_module
$sql_ary = array(
'module_image_src' => $this->request->variable('module_image', ''),
'module_image_width' => $this->request->variable('module_img_width', 0),
'module_image_height' => $this->request->variable('module_img_height', 0),
'module_image_width' => $this->request->variable('module_img_width', 16),
'module_image_height' => $this->request->variable('module_img_height', 16),
'module_fa_icon' => $this->request->variable('module_fa', ''),
'module_fa_size' => $this->request->variable('module_fa_size', 16),
'module_group_ids' => $module_permission,
'module_status' => $this->request->variable('module_status', self::B3_MODULE_ENABLED),
);
@@ -318,7 +325,7 @@ class portal_module
$this->page_title = $display_vars['title'];
$this->template->assign_vars(array(
'L_TITLE' => $this->user->lang[$display_vars['title']],
'L_TITLE' => $this->user->lang($display_vars['title']),
'L_TITLE_EXPLAIN' => (isset($this->user->lang[$display_vars['title'] . '_EXP'])) ? $this->user->lang[$display_vars['title'] . '_EXP'] : '',
'S_ERROR' => (sizeof($error)) ? true : false,
@@ -445,7 +452,7 @@ class portal_module
if (!($this->c_class = $this->portal_helper->get_module($module_classname)))
{
continue;
break;
}
// Do not add modules that shouldn't be added
@@ -668,7 +675,7 @@ class portal_module
$this->template->assign_block_vars('modules_' . $template_column, array(
'MODULE_NAME' => (isset($this->user->lang[$row['module_name']])) ? $this->user->lang[$row['module_name']] : $row['module_name'],
'MODULE_IMAGE' => ($row['module_image_src']) ? '<img src="' . $this->root_path . 'styles/all/theme/images/portal/' . $row['module_image_src'] . '" alt="' . $row['module_name'] . '" />' : '',
'MODULE_IMAGE' => ($row['module_image_src']) ? '<img src="' . $this->root_path . 'styles/all/theme/images/portal/' . $row['module_image_src'] . '" alt="' . $this->user->lang['MODULE_IMAGE'] . '" />' : '',
'MODULE_ENABLED' => ($row['module_status']) ? true : false,
'U_DELETE' => $this->modules_manager->get_module_link('modules', $row['module_id']) . '&amp;action=delete&amp;module_classname=' . $row['module_classname'],

View File

@@ -18,8 +18,8 @@ function helpline(help)
/**
* Fix a bug involving the TextRange object. From
* http://www.frostjedi.com/terra/scripts/demo/caretBug.html
*/
function initInsertions()
*/
function initInsertions()
{
var doc;
@@ -27,7 +27,7 @@ function initInsertions()
{
doc = document;
}
else
else
{
doc = opener.document;
}
@@ -45,12 +45,12 @@ function initInsertions()
* bbstyle
*/
function bbstyle(bbnumber)
{
{
if (bbnumber != -1)
{
bbfontstyle(bbtags[bbnumber], bbtags[bbnumber+1]);
}
else
}
else
{
insert_text('[*]');
document.getElementById(text_name).focus();
@@ -92,7 +92,7 @@ function bbfontstyle(bbopen, bbclose)
//The new position for the cursor after adding the bbcode
var caret_pos = getCaretPosition(textarea).start;
var new_pos = caret_pos + bbopen.length;
var new_pos = caret_pos + bbopen.length;
// Open tag
insert_text(bbopen + bbclose);
@@ -103,7 +103,7 @@ function bbfontstyle(bbopen, bbclose)
{
textarea.selectionStart = new_pos;
textarea.selectionEnd = new_pos;
}
}
// IE
else if (document.selection)
{
@@ -124,15 +124,15 @@ function insert_text(text, spaces, popup)
{
var textarea;
if (!popup)
if (!popup)
{
textarea = document.getElementById(text_name);
}
else
}
else
{
textarea = opener.document.getElementById(text_name);
}
if (spaces)
if (spaces)
{
text = ' ' + text + ' ';
}
@@ -148,7 +148,7 @@ function insert_text(text, spaces, popup)
}
else if (textarea.createTextRange && textarea.caretPos)
{
if (baseHeight != textarea.caretPos.boundingHeight)
if (baseHeight != textarea.caretPos.boundingHeight)
{
textarea.focus();
storeCaret(textarea);
@@ -161,7 +161,7 @@ function insert_text(text, spaces, popup)
{
textarea.value = textarea.value + text;
}
if (!popup)
if (!popup)
{
textarea.focus();
}
@@ -283,7 +283,7 @@ function split_lines(text)
j++;
}
}
while(splitAt != -1)
while (splitAt != -1)
}
}
return splitLines;
@@ -298,7 +298,7 @@ function mozWrap(txtarea, open, close)
var selEnd = txtarea.selectionEnd;
var scrollTop = txtarea.scrollTop;
if (selEnd == 1 || selEnd == 2)
if (selEnd == 1 || selEnd == 2)
{
selEnd = selLength;
}
@@ -424,7 +424,7 @@ function getCaretPosition(txtarea)
// calculate selection start point by moving beginning of range_all to beginning of range
var sel_start;
for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++)
{
{
range_all.moveStart('character', 1);
}
@@ -432,7 +432,7 @@ function getCaretPosition(txtarea)
// we ignore the end value for IE, this is already dirty enough and we don't need it
caretPos.start = txtarea.sel_start;
caretPos.end = txtarea.sel_start;
caretPos.end = txtarea.sel_start;
}
return caretPos;

View File

@@ -1,198 +1,206 @@
<!-- INCLUDE overall_header.html -->
{% INCLUDE 'overall_header.html' %}
<a name="maincontent"></a>
<h1>{L_TITLE}</h1>
<h1>{{ lang('TITLE') }}</h1>
<p>{L_TITLE_EXPLAIN}</p>
<p>{{ lang('TITLE_EXPLAIN') }}</p>
<!-- IF S_ERROR -->
{% if S_ERROR %}
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{ERROR_MSG}</p>
<h3>{{ lang('WARNING') }}</h3>
<p>{{ ERROR_MSG }}</p>
</div>
<!-- ENDIF -->
{% endif %}
<!-- IF S_EDIT -->
<form id="acp_portal_links" method="post" action="{B3P_U_ACTION}">
{% if S_EDIT %}
<form id="acp_portal_links" method="post" action="{{ B3P_U_ACTION }}">
<fieldset>
<legend>{L_ACP_PORTAL_EVENTS}</legend>
<legend>{{ lang('ACP_PORTAL_EVENTS') }}</legend>
<dl>
<dt><label for="event_title">{L_EVENT_TITLE}{L_COLON}</label></dt>
<dd><input name="event_title" type="text" id="event_title" value="{EVENT_TITLE}" maxlength="255" /></dd>
<dt><label for="event_title">{{ lang('EVENT_TITLE') }}{{ lang('COLON') }}</label></dt>
<dd><input name="event_title" type="text" id="event_title" value="{{ EVENT_TITLE }}" maxlength="255" /></dd>
</dl>
<dl>
<dt><label for="event_desc">{L_EVENT_DESC}{L_COLON}</label></dt>
<dd><textarea id="event_desc" rows="6" cols="6" name="event_desc">{EVENT_DESC}</textarea></dd>
<dt><label for="event_desc">{{ lang('EVENT_DESC') }}{{ lang('COLON') }}</label></dt>
<dd><textarea id="event_desc" rows="6" cols="6" name="event_desc">{{ EVENT_DESC }}</textarea></dd>
</dl>
<dl>
<dt>
<label for="event_start_date">{L_ACP_PORTAL_EVENT_START_DATE}{L_COLON}</label><br />
<span>{L_ACP_PORTAL_EVENT_START_DATE_EXP}</span>
<label for="event_start_date">{{ lang('ACP_PORTAL_EVENT_START_DATE') }}{{ lang('COLON') }}</label><br />
<span>{{ lang('ACP_PORTAL_EVENT_START_DATE_EXP') }}</span>
</dt>
<dd><input name="event_start_date" type="text" id="event_start_date" value="{EVENT_START_DATE}" maxlength="255" /></dd>
<dd><input name="event_start_date" type="text" id="event_start_date" value="{{ EVENT_START_DATE }}" maxlength="255" /></dd>
</dl>
<dl>
<dt><label for="event_all_day">{L_EVENT_ALL_DAY}{L_COLON}</label></dt>
<dt><label for="event_all_day">{{ lang('EVENT_ALL_DAY') }}{{ lang('COLON') }}</label></dt>
<dd>
<label><input onchange="phpbb.toggleDisplay('end', -1)" type="radio" class="radio" name="event_all_day" value="1" id="event_all_day"<!-- IF EVENT_ALL_DAY --> checked="checked"<!-- ENDIF --> />{L_YES}</label>
<label><input onchange="phpbb.toggleDisplay('end', 1)" type="radio" class="radio" name="event_all_day" value="0"<!-- IF not EVENT_ALL_DAY --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input onchange="phpbb.toggleDisplay('end', -1)" type="radio" class="radio" name="event_all_day" value="1" id="event_all_day"{% if EVENT_ALL_DAY %} checked="checked"{% endif %} />{{ lang('YES') }}</label>
<label><input onchange="phpbb.toggleDisplay('end', 1)" type="radio" class="radio" name="event_all_day" value="0"{% if not EVENT_ALL_DAY %} checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<div id="end"<!-- IF EVENT_ALL_DAY -->style="display: none;"<!-- ENDIF -->>
<div id="end"{% if EVENT_ALL_DAY %}style="display: none;"{% endif %}>
<dl>
<dt>
<label for="event_end_date">{L_ACP_PORTAL_EVENT_END_DATE}{L_COLON}</label><br />
<span>{L_ACP_PORTAL_EVENT_END_DATE_EXP}</span>
<label for="event_end_date">{{ lang('ACP_PORTAL_EVENT_END_DATE') }}{{ lang('COLON') }}</label><br />
<span>{{ lang('ACP_PORTAL_EVENT_END_DATE_EXP') }}</span>
</dt>
<dd><input name="event_end_date" type="text" id="event_end_date" value="{EVENT_END_DATE}" maxlength="255" /></dd>
<dd><input name="event_end_date" type="text" id="event_end_date" value="{{ EVENT_END_DATE }}" maxlength="255" /></dd>
</dl>
</div>
<dl>
<dt>
<label for="event_url">{L_EVENT_LINK}{L_COLON}</label><br />
<span>{L_EVENT_LINK_EXP}</span>
<label for="event_url">{{ lang('EVENT_LINK') }}{{ lang('COLON') }}</label><br />
<span>{{ lang('EVENT_LINK_EXP') }}</span>
</dt>
<dd><input name="event_url" type="text" id="event_url" value="{EVENT_URL}" maxlength="255" /></dd>
<dd><input name="event_url" type="text" id="event_url" value="{{ EVENT_URL }}" maxlength="255" /></dd>
</dl>
<dl>
<dt>
<label for="permission-setting-calendar">{L_ACP_PORTAL_CALENDAR_PERMISSION}{L_COLON}</label><br />
<span>{L_ACP_PORTAL_CALENDAR_PERMISSION_EXP}</span>
<label for="permission-setting-calendar">{{ lang('ACP_PORTAL_CALENDAR_PERMISSION') }}{{ lang('COLON') }}</label><br />
<span>{{ lang('ACP_PORTAL_CALENDAR_PERMISSION_EXP') }}</span>
</dt>
<dd>
<select id="permission-setting-calendar" size="10" multiple="multiple" name="permission-setting-calendar[]">
<!-- BEGIN permission_setting_calendar -->
<option value="{permission_setting_calendar.GROUP_ID}"<!-- IF permission_setting_calendar.SELECTED -->selected="selected"<!-- ENDIF -->>{permission_setting_calendar.GROUP_NAME}</option>
<!-- END permission_setting_calendar -->
{% for permission_setting_calendar in loops.permission_setting_calendar %}
<option value="{{ permission_setting_calendar.GROUP_ID }}"{% if permission_setting_calendar.SELECTED %}selected="selected"{% endif %}>{{ permission_setting_calendar.GROUP_NAME }}</option>
{% endfor %}
</select>
</dd>
</dl>
<p class="submit-buttons">
<input type="hidden" name="action" value="save" />
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
{S_FORM_TOKEN}
<input class="button1" type="submit" id="submit" name="submit" value="{{ lang('SUBMIT') }}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{{ lang('RESET') }}" />
{{ S_FORM_TOKEN }}
</p>
</fieldset>
</form>
<!-- ELSE -->
<form id="acp_portal_calendar" method="post" action="{B3P_U_ACTION}">
<!-- IF SHOW_MODULE_OPTIONS -->
{% else %}
<form id="acp_portal_calendar" method="post" action="{{ B3P_U_ACTION }}">
{% if SHOW_MODULE_OPTIONS %}
<fieldset>
<legend>{L_MODULE_OPTIONS}</legend>
<legend>{{ lang('MODULE_OPTIONS') }}</legend>
<dl>
<dt><label for="module_name">{L_MODULE_NAME}{L_COLON}</label><br /><span>{L_MODULE_NAME_EXP}</span></dt>
<dd><input id="module_name" type="text" value="{MODULE_NAME}" name="module_name" maxlength="255" size="64" /></dd>
<dt><label for="module_name">{{ lang('MODULE_NAME') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_NAME_EXP') }}</span></dt>
<dd><input id="module_name" type="text" value="{{ MODULE_NAME }}" name="module_name" maxlength="255" size="64" /></dd>
</dl>
<!-- IF MODULE_SHOW_IMAGE -->
{% if MODULE_SHOW_IMAGE %}
<dl>
<dt><label for="module_image">{L_MODULE_IMAGE}{L_COLON}</label><br /><span>{L_MODULE_IMAGE_EXP}</span></dt>
<dd><input id="module_image" type="text" value="{MODULE_IMAGE}" name="module_image" maxlength="255" size="64" /></dd>
<!-- IF MODULE_IMAGE_SRC --><dd><img src="{MODULE_IMAGE_SRC}" alt="{L_MODULE_IMAGE}" /></dd><!-- ENDIF -->
<dt><label for="module_image">{{ lang('MODULE_IMAGE') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_IMAGE_EXP') }}</span></dt>
<dd><input id="module_image" type="text" value="{{ MODULE_IMAGE }}" name="module_image" maxlength="255" size="64" /></dd>
{% if MODULE_IMAGE_SRC %}<dd><img src="{{ MODULE_IMAGE_SRC }}" alt="{{ lang('MODULE_IMAGE') }}" /></dd>{% endif %}
</dl>
<!-- IF MODULE_IMAGE_SRC -->
{% if MODULE_IMAGE_SRC %}
<dl>
<dt><label for="module_img_width">{L_MODULE_IMAGE_WIDTH}{L_COLON}</label><br /><span>{L_MODULE_IMAGE_WIDTH_EXP}</span></dt>
<dd><input id="module_img_width" type="text" value="{MODULE_IMAGE_WIDTH}" name="module_img_width" maxlength="3" size="3" />px</dd>
<dt><label for="module_img_width">{{ lang('MODULE_IMAGE_WIDTH') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_IMAGE_WIDTH_EXP') }}</span></dt>
<dd><input id="module_img_width" type="number" value="{{ MODULE_IMAGE_WIDTH }}" name="module_img_width" min="0" />&nbsp;{{ lang('PIXEL') }}</dd>
</dl>
<dl>
<dt><label for="module_img_height">{L_MODULE_IMAGE_HEIGHT}{L_COLON}</label><br /><span>{L_MODULE_IMAGE_HEIGHT_EXP}</span></dt>
<dd><input id="module_img_height" type="text" value="{MODULE_IMAGE_HEIGHT}" name="module_img_height" maxlength="3" size="3" />px</dd>
<dt><label for="module_img_height">{{ lang('MODULE_IMAGE_HEIGHT') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_IMAGE_HEIGHT_EXP') }}</span></dt>
<dd><input id="module_img_height" type="number" value="{{ MODULE_IMAGE_HEIGHT }}" name="module_img_height" min="0" />&nbsp;{{ lang('PIXEL') }}</dd>
</dl>
<!-- ENDIF -->
<!-- ENDIF -->
{% endif %}
<dl>
<dt><label for="module_reset">{L_MODULE_RESET}{L_COLON}</label><br /><span style="color: #BC2A4D;">{L_MODULE_RESET_EXP}</span></dt>
<dt><label for="module_fa">{{ lang('MODULE_FA') }}{{ lang('COLON') }}</label><br/><span>{{ lang('MODULE_FA_EXP') }}</span></dt>
<dd><input id="module_fa" type="text" value="{{ MODULE_FA }}" name="module_fa" maxlength="255" size="64"/></dd>
</dl>
<dl>
<dt><label for="module_fa_size">{{ lang('MODULE_FA_SIZE') }}{{ lang('COLON') }}</label><br/><span>{{ lang('MODULE_FA_SIZE_EXP') }}</span></dt>
<dd><input id="module_fa_size" type="number" value="{{ MODULE_FA_SIZE }}" name="module_fa_size" min="0"/>&nbsp;{{ lang('PIXEL') }}</dd>
</dl>
{% endif %}
<dl>
<dt><label for="module_reset">{{ lang('MODULE_RESET') }}{{ lang('COLON') }}</label><br /><span style="color: #BC2A4D;">{{ lang('MODULE_RESET_EXP') }}</span></dt>
<dd><input id="module_reset" type="checkbox" value="1" name="module_reset" /></dd>
</dl>
<dl>
<dt><label for="module_status">{L_MODULE_STATUS}{L_COLON}</label></dt>
<dt><label for="module_status">{{ lang('MODULE_STATUS') }}{{ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" class="radio" name="module_status" value="1" id="module_status"<!-- IF MODULE_ENABLED --> checked="checked"<!-- ENDIF --> />{L_YES}</label>
<label><input type="radio" class="radio" name="module_status" value="0"<!-- IF not MODULE_ENABLED --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" class="radio" name="module_status" value="1" id="module_status"{% if MODULE_ENABLED %} checked="checked"{% endif %} />{{ lang('YES') }}</label>
<label><input type="radio" class="radio" name="module_status" value="0"{% if not MODULE_ENABLED %} checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<!-- IF .permission_setting -->
{% if loops.permission_setting|length %}
<dl>
<dt><label for="permission-setting">{L_MODULE_PERMISSIONS}{L_COLON}</label><br /><span>{L_MODULE_PERMISSIONS_EXP}</span></dt>
<dt><label for="permission-setting">{{ lang('MODULE_PERMISSIONS') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_PERMISSIONS_EXP') }}</span></dt>
<dd>
<select id="permission-setting" size="10" multiple="multiple" name="permission-setting[]">
<!-- BEGIN permission_setting -->
<option value="{permission_setting.GROUP_ID}"<!-- IF permission_setting.SELECTED -->selected="selected"<!-- ENDIF -->>{permission_setting.GROUP_NAME}</option>
<!-- END permission_setting -->
{% for permission_setting in loops.permission_setting %}
<option value="{{ permission_setting.GROUP_ID }}"{% if permission_setting.SELECTED %}selected="selected"{% endif %}>{{ permission_setting.GROUP_NAME }}</option>
{% endfor %}
</select>
</dd>
</dl>
<!-- ENDIF -->
{% endif %}
</fieldset>
<!-- ENDIF -->
<!-- BEGIN options -->
<!-- IF options.S_LEGEND -->
<!-- IF not options.S_FIRST_ROW -->
{% endif %}
{% for options in loops.options %}
{% if options.S_LEGEND %}
{% if not options.S_FIRST_ROW %}
</fieldset>
<!-- ENDIF -->
{% endif %}
<fieldset>
<legend>{options.LEGEND}</legend>
<!-- ELSE -->
<legend>{{ options.LEGEND }}</legend>
{% else %}
<dl>
<dt><label for="{options.KEY}">{options.TITLE}{L_COLON}</label><!-- IF options.S_EXPLAIN --><br /><span>{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
<dd>{options.CONTENT}</dd>
<dt><label for="{{ options.KEY }}">{{ options.TITLE }}{{ lang('COLON') }}</label>{% if options.S_EXPLAIN %}<br /><span>{{ options.TITLE_EXPLAIN }}</span>{% endif %}</dt>
<dd>{{ options.CONTENT }}</dd>
</dl>
<!-- ENDIF -->
<!-- END options -->
{% endif %}
{% endfor %}
</fieldset>
<fieldset>
<legend>{L_ACP_PORTAL_EVENTS}</legend>
<legend>{{ lang('ACP_PORTAL_EVENTS') }}</legend>
<fieldset class="tabulated">
<p class="quick">
<input class="button2" name="add" type="submit" value="{L_ADD_EVENT}" />
<input class="button2" name="add" type="submit" value="{{ lang('ADD_EVENT') }}" />
</p>
<table style="cellspacing: 1;">
<thead>
<tr>
<th>{L_EVENT_TITLE}</th>
<th>{L_EVENT_DESC}</th>
<th>{L_EVENT_TIME}</th>
<th>{L_EVENT_LINK}</th>
<th>{L_ACTION}</th>
<th>{{ lang('EVENT_TITLE') }}</th>
<th>{{ lang('EVENT_DESC') }}</th>
<th>{{ lang('EVENT_TIME') }}</th>
<th>{{ lang('EVENT_LINK') }}</th>
<th>{{ lang('ACTION') }}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN events -->
<!-- IF events.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="text-align: center;">{events.EVENT_TITLE}</td>
<td style="text-align: center;">{events.EVENT_DESC}</td>
<td style="text-align: center;"><!-- IF events.EVENT_END -->{L_EVENT_START}{L_COLON}&nbsp;{events.EVENT_START}&nbsp;&#124;&nbsp;{L_EVENT_END}{L_COLON}&nbsp;{events.EVENT_END}<!-- ELSE -->{L_EVENT_TIME}{L_COLON}&nbsp;{events.EVENT_START}<!-- IF events.EVENT_ALL_DAY -->&nbsp;&#124;&nbsp;{L_EVENT_ALL_DAY}<!-- ENDIF --><!-- ENDIF --></td>
<td style="text-align: center;"><a href="{events.EVENT_URL}" alt="{events.EVENT_TITLE}">{events.EVENT_URL_RAW}</td>
{% for events in loops.events %}
{% if events.S_ROW_COUNT is even %}<tr class="row1">{% else %}<tr class="row2">{% endif %}
<td style="text-align: center;">{{ events.EVENT_TITLE }}</td>
<td style="text-align: center;">{{ events.EVENT_DESC }}</td>
<td style="text-align: center;">{% if events.EVENT_END %}{{ lang('EVENT_START') }}{{ lang('COLON') }}&nbsp;{{ events.EVENT_START }}&nbsp;&#124;&nbsp;{{ lang('EVENT_END') }}{{ lang('COLON') }}&nbsp;{{ events.EVENT_END }}{% else %}{{ lang('EVENT_TIME') }}{{ lang('COLON') }}&nbsp;{{ events.EVENT_START }}{% if events.EVENT_ALL_DAY %}&nbsp;&#124;&nbsp;{{ lang('EVENT_ALL_DAY') }}{% endif %}{% endif %}</td>
<td style="text-align: center;"><a href="{{ events.EVENT_URL }}" alt="{{ events.EVENT_TITLE }}">{{ events.EVENT_URL_RAW }}</td>
<td style="text-align: center;">
<a href="{events.U_EDIT}">{ICON_EDIT}</a> <a href="{events.U_DELETE}">{ICON_DELETE}</a>
<a href="{{ events.U_EDIT }}">{{ ICON_EDIT }}</a> <a href="{{ events.U_DELETE }}">{{ ICON_DELETE }}</a>
</td>
</tr>
<!-- BEGINELSE -->
{% else %}
<tr class="row1">
<td style="text-align: center;" colspan="5">{L_NO_EVENTS}</td>
<td style="text-align: center;" colspan="5">{{ lang('NO_EVENTS') }}</td>
</tr>
<!-- END events -->
{% endfor %}
</tbody>
</table>
<p class="submit-buttons">
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
<input class="button1" type="submit" id="submit" name="submit" value="{{ lang('SUBMIT') }}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{{ lang('RESET') }}" />
</p>
{S_FORM_TOKEN}
{{ S_FORM_TOKEN }}
</fieldset>
</fieldset>
</form>
<!-- ENDIF -->
{% endif %}
<!-- INCLUDE overall_footer.html -->
{% INCLUDE 'overall_footer.html' %}

View File

@@ -1,101 +1,109 @@
<!-- INCLUDE overall_header.html -->
{% INCLUDE 'overall_header.html' %}
<a name="maincontent"></a>
<h1>{L_TITLE}</h1>
<h1>{{ lang('TITLE') }}</h1>
<p>{L_TITLE_EXPLAIN}</p>
<p>{{ lang('TITLE_EXPLAIN') }}</p>
<!-- IF S_ERROR -->
{% if S_ERROR %}
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{ERROR_MSG}</p>
<h3>{{ lang('WARNING') }}</h3>
<p>{{ ERROR_MSG }}</p>
</div>
<!-- ENDIF -->
{% endif %}
<form id="acp_portal_config" method="post" action="{B3P_U_ACTION}">
<!-- IF SHOW_MODULE_OPTIONS -->
<form id="acp_portal_config" method="post" action="{{ B3P_U_ACTION }}">
{% if SHOW_MODULE_OPTIONS %}
<fieldset>
<legend>{L_MODULE_OPTIONS}</legend>
<!-- IF MODULE_NAME -->
<legend>{{ lang('MODULE_OPTIONS') }}</legend>
{% if MODULE_NAME %}
<dl>
<dt><label for="module_name">{L_MODULE_NAME}{L_COLON}</label><br /><span>{L_MODULE_NAME_EXP}</span></dt>
<dd><input id="module_name" type="text" value="{MODULE_NAME}" name="module_name" maxlength="255" size="64" /></dd>
<dt><label for="module_name">{{ lang('MODULE_NAME') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_NAME_EXP') }}</span></dt>
<dd><input id="module_name" type="text" value="{{ MODULE_NAME }}" name="module_name" maxlength="255" size="64" /></dd>
</dl>
<!-- ENDIF -->
<!-- IF MODULE_SHOW_IMAGE -->
{% endif %}
{% if MODULE_SHOW_IMAGE %}
<dl>
<dt><label for="module_image">{L_MODULE_IMAGE}{L_COLON}</label><br /><span>{L_MODULE_IMAGE_EXP}</span></dt>
<dd><input id="module_image" type="text" value="{MODULE_IMAGE}" name="module_image" maxlength="255" size="64" /></dd>
<!-- IF MODULE_IMAGE_SRC --><dd><img src="{MODULE_IMAGE_SRC}" alt="{L_MODULE_IMAGE}" /></dd><!-- ENDIF -->
<dt><label for="module_image">{{ lang('MODULE_IMAGE') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_IMAGE_EXP') }}</span></dt>
<dd><input id="module_image" type="text" value="{{ MODULE_IMAGE }}" name="module_image" maxlength="255" size="64" /></dd>
{% if MODULE_IMAGE_SRC %}<dd><img src="{{ MODULE_IMAGE_SRC }}" alt="{{ lang('MODULE_IMAGE') }}" /></dd>{% endif %}
</dl>
<!-- IF MODULE_IMAGE_SRC -->
{% if MODULE_IMAGE_SRC %}
<dl>
<dt><label for="module_img_width">{L_MODULE_IMAGE_WIDTH}{L_COLON}</label><br /><span>{L_MODULE_IMAGE_WIDTH_EXP}</span></dt>
<dd><input id="module_img_width" type="text" value="{MODULE_IMAGE_WIDTH}" name="module_img_width" maxlength="3" size="3" />px</dd>
<dt><label for="module_img_width">{{ lang('MODULE_IMAGE_WIDTH') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_IMAGE_WIDTH_EXP') }}</span></dt>
<dd><input id="module_img_width" type="number" value="{{ MODULE_IMAGE_WIDTH }}" name="module_img_width" min="0" />&nbsp;{{ lang('PIXEL') }}</dd>
</dl>
<dl>
<dt><label for="module_img_height">{L_MODULE_IMAGE_HEIGHT}{L_COLON}</label><br /><span>{L_MODULE_IMAGE_HEIGHT_EXP}</span></dt>
<dd><input id="module_img_height" type="text" value="{MODULE_IMAGE_HEIGHT}" name="module_img_height" maxlength="3" size="3" />px</dd>
<dt><label for="module_img_height">{{ lang('MODULE_IMAGE_HEIGHT') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_IMAGE_HEIGHT_EXP') }}</span></dt>
<dd><input id="module_img_height" type="number" value="{{ MODULE_IMAGE_HEIGHT }}" name="module_img_height" min="0" />&nbsp;{{ lang('PIXEL') }}</dd>
</dl>
<!-- ENDIF -->
<!-- ENDIF -->
{% endif %}
<dl>
<dt><label for="module_reset">{L_MODULE_RESET}{L_COLON}</label><br /><span style="color: #BC2A4D;">{L_MODULE_RESET_EXP}</span></dt>
<dt><label for="module_fa">{{ lang('MODULE_FA') }}{{ lang('COLON') }}</label><br/><span>{{ lang('MODULE_FA_EXP') }}</span></dt>
<dd><input id="module_fa" type="text" value="{{ MODULE_FA }}" name="module_fa" maxlength="255" size="64"/></dd>
</dl>
<dl>
<dt><label for="module_fa_size">{{ lang('MODULE_FA_SIZE') }}{{ lang('COLON') }}</label><br/><span>{{ lang('MODULE_FA_SIZE_EXP') }}</span></dt>
<dd><input id="module_fa_size" type="number" value="{{ MODULE_FA_SIZE }}" name="module_fa_size" min="0"/>&nbsp;{{ lang('PIXEL') }}</dd>
</dl>
{% endif %}
<dl>
<dt><label for="module_reset">{{ lang('MODULE_RESET') }}{{ lang('COLON') }}</label><br /><span style="color: #BC2A4D;">{{ lang('MODULE_RESET_EXP') }}</span></dt>
<dd><input id="module_reset" type="checkbox" value="1" name="module_reset" /></dd>
</dl>
<dl>
<dt><label for="module_status">{L_MODULE_STATUS}{L_COLON}</label></dt>
<dt><label for="module_status">{{ lang('MODULE_STATUS') }}{{ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" class="radio" name="module_status" value="1" id="module_status"<!-- IF MODULE_ENABLED --> checked="checked"<!-- ENDIF --> />{L_YES}</label>
<label><input type="radio" class="radio" name="module_status" value="0"<!-- IF not MODULE_ENABLED --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" class="radio" name="module_status" value="1" id="module_status"{% if MODULE_ENABLED %} checked="checked"{% endif %} />{{ lang('YES') }}</label>
<label><input type="radio" class="radio" name="module_status" value="0"{% if not MODULE_ENABLED %} checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<!-- IF .permission_setting -->
{% if loops.permission_setting|length %}
<dl>
<dt><label for="permission-setting">{L_MODULE_PERMISSIONS}{L_COLON}</label><br /><span>{L_MODULE_PERMISSIONS_EXP}</span></dt>
<dt><label for="permission-setting">{{ lang('MODULE_PERMISSIONS') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_PERMISSIONS_EXP') }}</span></dt>
<dd>
<select id="permission-setting" size="10" multiple="multiple" name="permission-setting[]">
<!-- BEGIN permission_setting -->
<option value="{permission_setting.GROUP_ID}"<!-- IF permission_setting.SELECTED -->selected="selected"<!-- ENDIF -->>{permission_setting.GROUP_NAME}</option>
<!-- END permission_setting -->
{% for permission_setting in loops.permission_setting %}
<option value="{{ permission_setting.GROUP_ID }}"{% if permission_setting.SELECTED %}selected="selected"{% endif %}>{{ permission_setting.GROUP_NAME }}</option>
{% endfor %}
</select>
</dd>
</dl>
<!-- ENDIF -->
{% endif %}
</fieldset>
<!-- ENDIF -->
<!-- BEGIN options -->
<!-- IF options.S_LEGEND -->
<!-- IF not options.S_FIRST_ROW -->
{% endif %}
{% for options in loops.options %}
{% if options.S_LEGEND %}
{% if not options.S_FIRST_ROW %}
</fieldset>
<!-- ENDIF -->
{% endif %}
<fieldset>
<legend>{options.LEGEND}</legend>
<!-- ELSE -->
<legend>{{ options.LEGEND }}</legend>
{% else %}
<dl>
<dt><label for="{options.KEY}">{options.TITLE}{L_COLON}</label><!-- IF options.S_EXPLAIN --><br /><span>{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
<dd>{options.CONTENT}</dd>
<dt><label for="{{ options.KEY }}">{{ options.TITLE }}{{ lang('COLON') }}</label>{% if options.S_EXPLAIN %}<br /><span>{{ options.TITLE_EXPLAIN }}</span>{% endif %}</dt>
<dd>{{ options.CONTENT }}</dd>
</dl>
<!-- ENDIF -->
<!-- BEGINELSE -->
{% endif %}
{% else %}
<fieldset>
<!-- END options -->
{% endfor %}
<!-- IF S_AUTH -->
<!-- BEGIN auth_tpl -->
{auth_tpl.TPL}
<!-- END auth_tpl -->
<!-- ENDIF -->
{% if S_AUTH %}
{% for auth_tpl in loops.auth_tpl %}
{{ auth_tpl.TPL }}
{% endfor %}
{% endif %}
<p class="submit-buttons">
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
<input class="button1" type="submit" id="submit" name="submit" value="{{ lang('SUBMIT') }}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{{ lang('RESET') }}" />
</p>
{S_FORM_TOKEN}
{{ S_FORM_TOKEN }}
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->
{% INCLUDE 'overall_footer.html' %}

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
{% INCLUDE 'overall_header.html' %}
<!-- INCLUDEJS portal/acp_editor.js -->
{% INCLUDEJS 'portal/acp_editor.js' %}
<script type="text/javascript">
// <![CDATA[
/**
@@ -29,28 +29,28 @@ var upload = false;
// Define the bbCode tags
var bbcode = new Array();
var bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[flash=]', '[/flash]','[size=]','[/size]'<!-- BEGIN custom_tags -->, {custom_tags.BBCODE_NAME}<!-- END custom_tags -->);
var bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[flash=]', '[/flash]','[size=]','[/size]'{% for custom_tags in loops.custom_tags %}, {{ custom_tags.BBCODE_NAME }}{% endfor %});
var imageTag = false;
// Helpline messages
var help_line = {
b: '{LA_BBCODE_B_HELP}',
i: '{LA_BBCODE_I_HELP}',
u: '{LA_BBCODE_U_HELP}',
q: '{LA_BBCODE_Q_HELP}',
c: '{LA_BBCODE_C_HELP}',
l: '{LA_BBCODE_L_HELP}',
o: '{LA_BBCODE_O_HELP}',
p: '{LA_BBCODE_P_HELP}',
w: '{LA_BBCODE_W_HELP}',
a: '{LA_BBCODE_A_HELP}',
s: '{LA_BBCODE_S_HELP}',
f: '{LA_BBCODE_F_HELP}',
e: '{LA_BBCODE_E_HELP}',
d: '{LA_BBCODE_D_HELP}'
<!-- BEGIN custom_tags -->
,cb_{custom_tags.BBCODE_ID}: '{custom_tags.A_BBCODE_HELPLINE}'
<!-- END custom_tags -->
b: '{{ lang('BBCODE_B_HELP')|escape('js') }}',
i: '{{ lang('BBCODE_I_HELP')|escape('js') }}',
u: '{{ lang('BBCODE_U_HELP')|escape('js') }}',
q: '{{ lang('BBCODE_Q_HELP')|escape('js') }}',
c: '{{ lang('BBCODE_C_HELP')|escape('js') }}',
l: '{{ lang('BBCODE_L_HELP')|escape('js') }}',
o: '{{ lang('BBCODE_O_HELP')|escape('js') }}',
p: '{{ lang('BBCODE_P_HELP')|escape('js') }}',
w: '{{ lang('BBCODE_W_HELP')|escape('js') }}',
a: '{{ lang('BBCODE_A_HELP')|escape('js') }}',
s: '{{ lang('BBCODE_S_HELP')|escape('js') }}',
f: '{{ lang('BBCODE_F_HELP')|escape('js') }}',
e: '{{ lang('BBCODE_E_HELP')|escape('js') }}',
d: '{{ lang('BBCODE_D_HELP')|escape('js') }}'
{% for custom_tags in loops.custom_tags %}
,cb_{{ custom_tags.BBCODE_ID }}: '{{ custom_tags.A_BBCODE_HELPLINE }}'
{% endfor %}
}
function change_palette()
@@ -60,11 +60,11 @@ function change_palette()
if (e.style.display == 'block')
{
document.getElementById('bbpalette').value = '{LA_FONT_COLOR_HIDE}';
document.getElementById('bbpalette').value = '{{ lang('FONT_COLOR_HIDE')|escape('js') }}';
}
else
{
document.getElementById('bbpalette').value = '{LA_FONT_COLOR}';
document.getElementById('bbpalette').value = '{{ lang('FONT_COLOR')|escape('js') }}';
}
}
@@ -73,84 +73,92 @@ function change_palette()
<a name="maincontent"></a>
<h1>{L_TITLE}</h1>
<h1>{{ lang('TITLE') }}</h1>
<p>{L_TITLE_EXPLAIN}</p>
<p>{{ lang('TITLE_EXPLAIN') }}</p>
<!-- IF S_ERROR -->
{% if S_ERROR %}
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{ERROR_MSG}</p>
<h3>{{ lang('WARNING') }}</h3>
<p>{{ ERROR_MSG }}</p>
</div>
<!-- ENDIF -->
<form id="acp_portal_config" method="post" action="{B3P_U_ACTION}">
<!-- IF SHOW_MODULE_OPTIONS -->
{% endif %}
<form id="acp_portal_config" method="post" action="{{ B3P_U_ACTION }}">
{% if SHOW_MODULE_OPTIONS %}
<fieldset>
<legend>{L_MODULE_OPTIONS}</legend>
<legend>{{ lang('MODULE_OPTIONS') }}</legend>
<dl>
<dt><label for="module_name">{L_MODULE_NAME}{L_COLON}</label><br /><span>{L_MODULE_NAME_EXP}</span></dt>
<dd><input id="module_name" type="text" value="{MODULE_NAME}" name="module_name" maxlength="255" size="64" /></dd>
<dt><label for="module_name">{{ lang('MODULE_NAME') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_NAME_EXP') }}</span></dt>
<dd><input id="module_name" type="text" value="{{ MODULE_NAME }}" name="module_name" maxlength="255" size="64" /></dd>
</dl>
<!-- IF MODULE_SHOW_IMAGE -->
{% if MODULE_SHOW_IMAGE %}
<dl>
<dt><label for="module_image">{L_MODULE_IMAGE}{L_COLON}</label><br /><span>{L_MODULE_IMAGE_EXP}</span></dt>
<dd><input id="module_image" type="text" value="{MODULE_IMAGE}" name="module_image" maxlength="255" size="64" /></dd>
<!-- IF MODULE_IMAGE_SRC --><dd><img src="{MODULE_IMAGE_SRC}" alt="{L_MODULE_IMAGE}" /></dd><!-- ENDIF -->
<dt><label for="module_image">{{ lang('MODULE_IMAGE') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_IMAGE_EXP') }}</span></dt>
<dd><input id="module_image" type="text" value="{{ MODULE_IMAGE }}" name="module_image" maxlength="255" size="64" /></dd>
{% if MODULE_IMAGE_SRC %}<dd><img src="{{ MODULE_IMAGE_SRC }}" alt="{{ lang('MODULE_IMAGE') }}" /></dd>{% endif %}
</dl>
<!-- IF MODULE_IMAGE_SRC -->
{% if MODULE_IMAGE_SRC %}
<dl>
<dt><label for="module_img_width">{L_MODULE_IMAGE_WIDTH}{L_COLON}</label><br /><span>{L_MODULE_IMAGE_WIDTH_EXP}</span></dt>
<dd><input id="module_img_width" type="text" value="{MODULE_IMAGE_WIDTH}" name="module_img_width" maxlength="3" size="3" />px</dd>
<dt><label for="module_img_width">{{ lang('MODULE_IMAGE_WIDTH') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_IMAGE_WIDTH_EXP') }}</span></dt>
<dd><input id="module_img_width" type="number" value="{{ MODULE_IMAGE_WIDTH }}" name="module_img_width" min="0" />&nbsp;{{ lang('PIXEL') }}</dd>
</dl>
<dl>
<dt><label for="module_img_height">{L_MODULE_IMAGE_HEIGHT}{L_COLON}</label><br /><span>{L_MODULE_IMAGE_HEIGHT_EXP}</span></dt>
<dd><input id="module_img_height" type="text" value="{MODULE_IMAGE_HEIGHT}" name="module_img_height" maxlength="3" size="3" />px</dd>
<dt><label for="module_img_height">{{ lang('MODULE_IMAGE_HEIGHT') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_IMAGE_HEIGHT_EXP') }}</span></dt>
<dd><input id="module_img_height" type="number" value="{{ MODULE_IMAGE_HEIGHT }}" name="module_img_height" min="0" />&nbsp;{{ lang('PIXEL') }}</dd>
</dl>
<!-- ENDIF -->
<!-- ENDIF -->
{% endif %}
<dl>
<dt><label for="module_reset">{L_MODULE_RESET}{L_COLON}</label><br /><span style="color: #BC2A4D;">{L_MODULE_RESET_EXP}</span></dt>
<dt><label for="module_fa">{{ lang('MODULE_FA') }}{{ lang('COLON') }}</label><br/><span>{{ lang('MODULE_FA_EXP') }}</span></dt>
<dd><input id="module_fa" type="text" value="{{ MODULE_FA }}" name="module_fa" maxlength="255" size="64"/></dd>
</dl>
<dl>
<dt><label for="module_fa_size">{{ lang('MODULE_FA_SIZE') }}{{ lang('COLON') }}</label><br/><span>{{ lang('MODULE_FA_SIZE_EXP') }}</span></dt>
<dd><input id="module_fa_size" type="number" value="{{ MODULE_FA_SIZE }}" name="module_fa_size" min="0"/>&nbsp;{{ lang('PIXEL') }}</dd>
</dl>
{% endif %}
<dl>
<dt><label for="module_reset">{{ lang('MODULE_RESET') }}{{ lang('COLON') }}</label><br /><span style="color: #BC2A4D;">{{ lang('MODULE_RESET_EXP') }}</span></dt>
<dd><input id="module_reset" type="checkbox" value="1" name="module_reset" /></dd>
</dl>
<dl>
<dt><label for="module_status">{L_MODULE_STATUS}{L_COLON}</label></dt>
<dt><label for="module_status">{{ lang('MODULE_STATUS') }}{{ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" class="radio" name="module_status" value="1" id="module_status"<!-- IF MODULE_ENABLED --> checked="checked"<!-- ENDIF --> />{L_YES}</label>
<label><input type="radio" class="radio" name="module_status" value="0"<!-- IF not MODULE_ENABLED --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" class="radio" name="module_status" value="1" id="module_status"{% if MODULE_ENABLED %} checked="checked"{% endif %} />{{ lang('YES') }}</label>
<label><input type="radio" class="radio" name="module_status" value="0"{% if not MODULE_ENABLED %} checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<!-- IF .permission_setting -->
{% if loops.permission_setting|length %}
<dl>
<dt><label for="permission-setting">{L_ACP_PORTAL_CUSTOM_PERMISSION}{L_COLON}</label><br /><span>{L_ACP_PORTAL_CUSTOM_PERMISSION_EXP}</span></dt>
<dt><label for="permission-setting">{{ lang('ACP_PORTAL_CUSTOM_PERMISSION') }}{{ lang('COLON') }}</label><br /><span>{{ lang('ACP_PORTAL_CUSTOM_PERMISSION_EXP') }}</span></dt>
<dd>
<select id="permission-setting" size="10" multiple="multiple" name="permission-setting[]">
<!-- BEGIN permission_setting -->
<option value="{permission_setting.GROUP_ID}"<!-- IF permission_setting.SELECTED -->selected="selected"<!-- ENDIF -->>{permission_setting.GROUP_NAME}</option>
<!-- END permission_setting -->
{% for permission_setting in loops.permission_setting %}
<option value="{{ permission_setting.GROUP_ID }}"{% if permission_setting.SELECTED %}selected="selected"{% endif %}>{{ permission_setting.GROUP_NAME }}</option>
{% endfor %}
</select>
</dd>
</dl>
<!-- ENDIF -->
{% endif %}
</fieldset>
<!-- ENDIF -->
<!-- IF S_PREVIEW -->
{% endif %}
{% if S_PREVIEW %}
<fieldset>
<legend>{L_ACP_PORTAL_CUSTOM_PREVIEW}</legend>
<legend>{{ lang('ACP_PORTAL_CUSTOM_PREVIEW') }}</legend>
<dl>
<dt style="border: none; width: 100%;">
{PREVIEW_TEXT}
{{ PREVIEW_TEXT }}
</dt>
</dl>
</fieldset>
<!-- ENDIF -->
{% endif %}
<fieldset>
<legend>{L_PORTAL_CUSTOM}</legend>
<dl id="bbcode-buttons"<!-- IF not CUSTOM_USE_BBCODE --> style="display: none;"<!-- ENDIF -->>
<legend>{{ lang('PORTAL_CUSTOM') }}</legend>
<dl id="bbcode-buttons"{% if not CUSTOM_USE_BBCODE %} style="display: none;"{% endif %}>
<dt></dt>
<dd>
<div id="colour_palette" style="display: none;">
<dl style="clear: left;">
<dt style="border: none;"><label>{L_FONT_COLOR}{L_COLON}</label></dt>
<dt style="border: none;"><label>{{ lang('FONT_COLOR') }}{{ lang('COLON') }}</label></dt>
<dd></dd>
</dl>
<dl style="clear: left;">
@@ -159,73 +167,73 @@ function change_palette()
</dl>
</div>
<div id="format-buttons">
<input type="button" class="button2" accesskey="b" name="addbbcode0" value=" B " style="font-weight:bold; width: 30px" onclick="bbstyle(0)" title="{L_BBCODE_B_HELP}" />
<input type="button" class="button2" accesskey="i" name="addbbcode2" value=" i " style="font-style:italic; width: 30px" onclick="bbstyle(2)" title="{L_BBCODE_I_HELP}" />
<input type="button" class="button2" accesskey="u" name="addbbcode4" value=" u " style="text-decoration: underline; width: 30px" onclick="bbstyle(4)" title="{L_BBCODE_U_HELP}" />
<!-- IF S_BBCODE_QUOTE -->
<input type="button" class="button2" accesskey="q" name="addbbcode6" value="Quote" style="width: 50px" onclick="bbstyle(6)" title="{L_BBCODE_Q_HELP}" />
<!-- ENDIF -->
<input type="button" class="button2" accesskey="c" name="addbbcode8" value="Code" style="width: 40px" onclick="bbstyle(8)" title="{L_BBCODE_C_HELP}" />
<input type="button" class="button2" accesskey="l" name="addbbcode10" value="List" style="width: 40px" onclick="bbstyle(10)" title="{L_BBCODE_L_HELP}" />
<input type="button" class="button2" accesskey="o" name="addbbcode12" value="List=" style="width: 40px" onclick="bbstyle(12)" title="{L_BBCODE_O_HELP}" />
<input type="button" class="button2" accesskey="t" name="addlitsitem" value="[*]" style="width: 40px" onclick="bbstyle(-1)" title="{L_BBCODE_LISTITEM_HELP}" />
<!-- IF S_BBCODE_IMG -->
<input type="button" class="button2" accesskey="p" name="addbbcode14" value="Img" style="width: 40px" onclick="bbstyle(14)" title="{L_BBCODE_P_HELP}" />
<!-- ENDIF -->
<!-- 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}" />
<!-- ENDIF -->
<!-- IF S_BBCODE_FLASH -->
<input type="button" class="button2" accesskey="d" name="addbbcode18" value="Flash" onclick="bbstyle(18)" title="{L_BBCODE_D_HELP}" />
<!-- 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}">
<option value="50">{L_FONT_TINY}</option>
<option value="85">{L_FONT_SMALL}</option>
<option value="100" selected="selected">{L_FONT_NORMAL}</option>
<!-- IF not MAX_FONT_SIZE or MAX_FONT_SIZE >= 150 -->
<option value="150">{L_FONT_LARGE}</option>
<!-- IF not MAX_FONT_SIZE or MAX_FONT_SIZE >= 200 -->
<option value="200">{L_FONT_HUGE}</option>
<!-- ENDIF -->
<!-- ENDIF -->
<input type="button" class="button2" accesskey="b" name="addbbcode0" value=" B " style="font-weight:bold; width: 30px" onclick="bbstyle(0)" title="{{ lang('BBCODE_B_HELP') }}" />
<input type="button" class="button2" accesskey="i" name="addbbcode2" value=" i " style="font-style:italic; width: 30px" onclick="bbstyle(2)" title="{{ lang('BBCODE_I_HELP') }}" />
<input type="button" class="button2" accesskey="u" name="addbbcode4" value=" u " style="text-decoration: underline; width: 30px" onclick="bbstyle(4)" title="{{ lang('BBCODE_U_HELP') }}" />
{% if S_BBCODE_QUOTE %}
<input type="button" class="button2" accesskey="q" name="addbbcode6" value="Quote" style="width: 50px" onclick="bbstyle(6)" title="{{ lang('BBCODE_Q_HELP') }}" />
{% endif %}
<input type="button" class="button2" accesskey="c" name="addbbcode8" value="Code" style="width: 40px" onclick="bbstyle(8)" title="{{ lang('BBCODE_C_HELP') }}" />
<input type="button" class="button2" accesskey="l" name="addbbcode10" value="List" style="width: 40px" onclick="bbstyle(10)" title="{{ lang('BBCODE_L_HELP') }}" />
<input type="button" class="button2" accesskey="o" name="addbbcode12" value="List=" style="width: 40px" onclick="bbstyle(12)" title="{{ lang('BBCODE_O_HELP') }}" />
<input type="button" class="button2" accesskey="t" name="addlitsitem" value="[*]" style="width: 40px" onclick="bbstyle(-1)" title="{{ lang('BBCODE_LISTITEM_HELP') }}" />
{% if S_BBCODE_IMG %}
<input type="button" class="button2" accesskey="p" name="addbbcode14" value="Img" style="width: 40px" onclick="bbstyle(14)" title="{{ lang('BBCODE_P_HELP') }}" />
{% endif %}
{% 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="{{ lang('BBCODE_W_HELP') }}" />
{% endif %}
{% if S_BBCODE_FLASH %}
<input type="button" class="button2" accesskey="d" name="addbbcode18" value="Flash" onclick="bbstyle(18)" title="{{ lang('BBCODE_D_HELP') }}" />
{% endif %}
<select name="addbbcode20" onchange="bbfontstyle('[size=' + this.form.addbbcode20.options[this.form.addbbcode20.selectedIndex].value + ']', '[/size]');this.form.addbbcode20.selectedIndex = 2;" title="{{ lang('BBCODE_F_HELP') }}">
<option value="50">{{ lang('FONT_TINY') }}</option>
<option value="85">{{ lang('FONT_SMALL') }}</option>
<option value="100" selected="selected">{{ lang('FONT_NORMAL') }}</option>
{% if not MAX_FONT_SIZE or MAX_FONT_SIZE >= 150 %}
<option value="150">{{ lang('FONT_LARGE') }}</option>
{% if not MAX_FONT_SIZE or MAX_FONT_SIZE >= 200 %}
<option value="200">{{ lang('FONT_HUGE') }}</option>
{% endif %}
{% endif %}
</select>
<input type="button" class="button2" name="bbpalette" id="bbpalette" value="{L_FONT_COLOR}" onclick="change_palette();" title="{L_BBCODE_S_HELP}" />
<!-- BEGIN custom_tags -->
<input type="button" class="button2" name="addbbcode{custom_tags.BBCODE_ID}" value="{custom_tags.BBCODE_TAG}" onclick="bbstyle({custom_tags.BBCODE_ID})" title="{custom_tags.BBCODE_HELPLINE}" />
<!-- END custom_tags -->
<input type="button" class="button2" name="bbpalette" id="bbpalette" value="{{ lang('FONT_COLOR') }}" onclick="change_palette();" title="{{ lang('BBCODE_S_HELP') }}" />
{% for custom_tags in loops.custom_tags %}
<input type="button" class="button2" name="addbbcode{{ custom_tags.BBCODE_ID }}" value="{{ custom_tags.BBCODE_TAG }}" onclick="bbstyle({{ custom_tags.BBCODE_ID }})" title="{{ custom_tags.BBCODE_HELPLINE }}" />
{% endfor %}
</div>
</dd>
</dl>
<dl>
<dt>
<label for="custom_code">{L_ACP_PORTAL_CUSTOM_CODE}{L_COLON}</label><br />
<span>{L_ACP_PORTAL_CUSTOM_CODE_EXP}</span>
<label for="custom_code">{{ lang('ACP_PORTAL_CUSTOM_CODE') }}{{ lang('COLON') }}</label><br />
<span>{{ lang('ACP_PORTAL_CUSTOM_CODE_EXP') }}</span>
</dt>
<dd><textarea name="custom_code" id="custom_code" cols="6" rows="12">{CUSTOM_CODE}</textarea></dd>
<dd><textarea name="custom_code" id="custom_code" cols="6" rows="12">{{ CUSTOM_CODE }}</textarea></dd>
</dl>
<dl>
<dt>
<label for="custom_use_bbcode">{L_ACP_PORTAL_CUSTOM_BBCODE}</label><br />
<span>{L_ACP_PORTAL_CUSTOM_BBCODE_EXP}</span>
<label for="custom_use_bbcode">{{ lang('ACP_PORTAL_CUSTOM_BBCODE') }}</label><br />
<span>{{ lang('ACP_PORTAL_CUSTOM_BBCODE_EXP') }}</span>
</dt>
<dd>
<label><input onchange="phpbb.toggleDisplay('bbcode-buttons', 1)" class="radio" type="radio" value="1" name="custom_use_bbcode" id="custom_use_bbcode"<!-- IF CUSTOM_USE_BBCODE --> checked="checked"<!-- ENDIF --> />{L_YES}</label>
<label><input onchange="phpbb.toggleDisplay('bbcode-buttons', -1)" class="radio" type="radio" value="0" name="custom_use_bbcode"<!-- IF not CUSTOM_USE_BBCODE --> checked="checked"<!-- ENDIF --> />{L_NO}</label>
<label><input onchange="phpbb.toggleDisplay('bbcode-buttons', 1)" class="radio" type="radio" value="1" name="custom_use_bbcode" id="custom_use_bbcode"{% if CUSTOM_USE_BBCODE %} checked="checked"{% endif %} />{{ lang('YES') }}</label>
<label><input onchange="phpbb.toggleDisplay('bbcode-buttons', -1)" class="radio" type="radio" value="0" name="custom_use_bbcode"{% if not CUSTOM_USE_BBCODE %} checked="checked"{% endif %} />{{ lang('NO') }}</label>
</dd>
</dl>
<!-- IF S_AUTH -->
<!-- BEGIN auth_tpl -->
{auth_tpl.TPL}
<!-- END auth_tpl -->
<!-- ENDIF -->
{% if S_AUTH %}
{% for auth_tpl in loops.auth_tpl %}
{{ auth_tpl.TPL }}
{% endfor %}
{% endif %}
<p class="submit-buttons">
<input class="button2" type="submit" id="preview" name="preview" value="{L_PREVIEW}" />&nbsp;
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
<input class="button2" type="submit" id="preview" name="preview" value="{{ lang('PREVIEW') }}" />&nbsp;
<input class="button1" type="submit" id="submit" name="submit" value="{{ lang('SUBMIT') }}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{{ lang('RESET') }}" />
</p>
{S_FORM_TOKEN}
{{ S_FORM_TOKEN }}
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->
{% INCLUDE 'overall_footer.html' %}

View File

@@ -1,179 +1,187 @@
<!-- INCLUDE overall_header.html -->
{% INCLUDE 'overall_header.html' %}
<a name="maincontent"></a>
<h1>{L_TITLE}</h1>
<h1>{{ lang('TITLE') }}</h1>
<p>{L_TITLE_EXPLAIN}</p>
<p>{{ lang('TITLE_EXPLAIN') }}</p>
<!-- IF S_ERROR -->
{% if S_ERROR %}
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{ERROR_MSG}</p>
<h3>{{ lang('WARNING') }}</h3>
<p>{{ ERROR_MSG }}</p>
</div>
<!-- ENDIF -->
{% endif %}
<!-- IF S_EDIT -->
<form id="acp_portal_links" method="post" action="{B3P_U_ACTION}">
{% if S_EDIT %}
<form id="acp_portal_links" method="post" action="{{ B3P_U_ACTION }}">
<fieldset>
<legend>{L_ACP_PORTAL_LINKS}</legend>
<legend>{{ lang('ACP_PORTAL_LINKS') }}</legend>
<dl>
<dt><label for="link_title">{L_ACP_PORTAL_LINK_TITLE}{L_COLON}</label></dt>
<dd><input name="link_title" type="text" id="link_title" value="{LINK_TITLE}" maxlength="255" /></dd>
<dt><label for="link_title">{{ lang('ACP_PORTAL_LINK_TITLE') }}{{ lang('COLON') }}</label></dt>
<dd><input name="link_title" type="text" id="link_title" value="{{ LINK_TITLE }}" maxlength="255" /></dd>
</dl>
<dl>
<dt>
<label for="link_type">{L_ACP_PORTAL_LINK_TYPE}{L_COLON}</label><br />
<span>{L_ACP_PORTAL_LINK_TYPE_EXP}</span>
<label for="link_type">{{ lang('ACP_PORTAL_LINK_TYPE') }}{{ lang('COLON') }}</label><br />
<span>{{ lang('ACP_PORTAL_LINK_TYPE_EXP') }}</span>
</dt>
<dd>
<label><input type="radio" class="radio" name="link_type" value="1" id="link_type"<!-- IF S_LINK_IS_INT --> checked="checked"<!-- ENDIF --> />{L_ACP_PORTAL_LINK_INT}</label>
<label><input type="radio" class="radio" name="link_type" value="2"<!-- IF not S_LINK_IS_INT --> checked="checked"<!-- ENDIF --> /> {L_ACP_PORTAL_LINK_EXT}</label>
<label><input type="radio" class="radio" name="link_type" value="1" id="link_type"{% if S_LINK_IS_INT %} checked="checked"{% endif %} />{{ lang('ACP_PORTAL_LINK_INT') }}</label>
<label><input type="radio" class="radio" name="link_type" value="2"{% if not S_LINK_IS_INT %} checked="checked"{% endif %} /> {{ lang('ACP_PORTAL_LINK_EXT') }}</label>
</dd>
</dl>
<dl>
<dt>
<label for="link_url">{L_ACP_PORTAL_LINK_URL}{L_COLON}</label><br />
<span>{L_ACP_PORTAL_LINK_URL_EXP}</span>
<label for="link_url">{{ lang('ACP_PORTAL_LINK_URL') }}{{ lang('COLON') }}</label><br />
<span>{{ lang('ACP_PORTAL_LINK_URL_EXP') }}</span>
</dt>
<dd><input name="link_url" type="text" id="link_url" value="{LINK_URL}" maxlength="255" /></dd>
<dd><input name="link_url" type="text" id="link_url" value="{{ LINK_URL }}" maxlength="255" /></dd>
</dl>
<dl>
<dt>
<label for="permission-setting-link">{L_ACP_PORTAL_LINK_PERMISSION}{L_COLON}</label><br />
<span>{L_ACP_PORTAL_LINK_PERMISSION_EXP}</span>
<label for="permission-setting-link">{{ lang('ACP_PORTAL_LINK_PERMISSION') }}{{ lang('COLON') }}</label><br />
<span>{{ lang('ACP_PORTAL_LINK_PERMISSION_EXP') }}</span>
</dt>
<dd>
<select id="permission-setting-link" size="10" multiple="multiple" name="permission-setting-link[]">
<!-- BEGIN permission_setting_link -->
<option value="{permission_setting_link.GROUP_ID}"<!-- IF permission_setting_link.SELECTED -->selected="selected"<!-- ENDIF -->>{permission_setting_link.GROUP_NAME}</option>
<!-- END permission_setting_link -->
{% for permission_setting_link in loops.permission_setting_link %}
<option value="{{ permission_setting_link.GROUP_ID }}"{% if permission_setting_link.SELECTED %}selected="selected"{% endif %}>{{ permission_setting_link.GROUP_NAME }}</option>
{% endfor %}
</select>
</dd>
</dl>
<p class="submit-buttons">
<input type="hidden" name="action" value="save" />
<!-- IF LINK_ID !== '' --><input type="hidden" name="id" value="{LINK_ID}" /><!-- ENDIF -->
{% if LINK_ID !== '' %}<input type="hidden" name="id" value="{{ LINK_ID }}" />{% endif %}
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
{S_FORM_TOKEN}
<input class="button1" type="submit" id="submit" name="submit" value="{{ lang('SUBMIT') }}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{{ lang('RESET') }}" />
{{ S_FORM_TOKEN }}
</p>
</fieldset>
</form>
<!-- ELSE -->
<form id="acp_portal_links" method="post" action="{B3P_U_ACTION}">
<!-- IF SHOW_MODULE_OPTIONS -->
{% else %}
<form id="acp_portal_links" method="post" action="{{ B3P_U_ACTION }}">
{% if SHOW_MODULE_OPTIONS %}
<fieldset>
<legend>{L_MODULE_OPTIONS}</legend>
<legend>{{ lang('MODULE_OPTIONS') }}</legend>
<dl>
<dt><label for="module_name">{L_MODULE_NAME}{L_COLON}</label><br /><span>{L_MODULE_NAME_EXP}</span></dt>
<dd><input id="module_name" type="text" value="{MODULE_NAME}" name="module_name" maxlength="255" size="64" /></dd>
<dt><label for="module_name">{{ lang('MODULE_NAME') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_NAME_EXP') }}</span></dt>
<dd><input id="module_name" type="text" value="{{ MODULE_NAME }}" name="module_name" maxlength="255" size="64" /></dd>
</dl>
<!-- IF MODULE_SHOW_IMAGE -->
{% if MODULE_SHOW_IMAGE %}
<dl>
<dt><label for="module_image">{L_MODULE_IMAGE}{L_COLON}</label><br /><span>{L_MODULE_IMAGE_EXP}</span></dt>
<dd><input id="module_image" type="text" value="{MODULE_IMAGE}" name="module_image" maxlength="255" size="64" /></dd>
<!-- IF MODULE_IMAGE_SRC --><dd><img src="{MODULE_IMAGE_SRC}" alt="{L_MODULE_IMAGE}" /></dd><!-- ENDIF -->
<dt><label for="module_image">{{ lang('MODULE_IMAGE') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_IMAGE_EXP') }}</span></dt>
<dd><input id="module_image" type="text" value="{{ MODULE_IMAGE }}" name="module_image" maxlength="255" size="64" /></dd>
{% if MODULE_IMAGE_SRC %}<dd><img src="{{ MODULE_IMAGE_SRC }}" alt="{{ lang('MODULE_IMAGE') }}" /></dd>{% endif %}
</dl>
<!-- IF MODULE_IMAGE_SRC -->
{% if MODULE_IMAGE_SRC %}
<dl>
<dt><label for="module_img_width">{L_MODULE_IMAGE_WIDTH}{L_COLON}</label><br /><span>{L_MODULE_IMAGE_WIDTH_EXP}</span></dt>
<dd><input id="module_img_width" type="text" value="{MODULE_IMAGE_WIDTH}" name="module_img_width" maxlength="3" size="3" />px</dd>
<dt><label for="module_img_width">{{ lang('MODULE_IMAGE_WIDTH') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_IMAGE_WIDTH_EXP') }}</span></dt>
<dd><input id="module_img_width" type="number" value="{{ MODULE_IMAGE_WIDTH }}" name="module_img_width" min="0" />&nbsp;{{ lang('PIXEL') }}</dd>
</dl>
<dl>
<dt><label for="module_img_height">{L_MODULE_IMAGE_HEIGHT}{L_COLON}</label><br /><span>{L_MODULE_IMAGE_HEIGHT_EXP}</span></dt>
<dd><input id="module_img_height" type="text" value="{MODULE_IMAGE_HEIGHT}" name="module_img_height" maxlength="3" size="3" />px</dd>
<dt><label for="module_img_height">{{ lang('MODULE_IMAGE_HEIGHT') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_IMAGE_HEIGHT_EXP') }}</span></dt>
<dd><input id="module_img_height" type="number" value="{{ MODULE_IMAGE_HEIGHT }}" name="module_img_height" min="0" />&nbsp;{{ lang('PIXEL') }}</dd>
</dl>
<!-- ENDIF -->
<!-- ENDIF -->
{% endif %}
<dl>
<dt><label for="module_reset">{L_MODULE_RESET}{L_COLON}</label><br /><span style="color: #BC2A4D;">{L_MODULE_RESET_EXP}</span></dt>
<dt><label for="module_fa">{{ lang('MODULE_FA') }}{{ lang('COLON') }}</label><br/><span>{{ lang('MODULE_FA_EXP') }}</span></dt>
<dd><input id="module_fa" type="text" value="{{ MODULE_FA }}" name="module_fa" maxlength="255" size="64"/></dd>
</dl>
<dl>
<dt><label for="module_fa_size">{{ lang('MODULE_FA_SIZE') }}{{ lang('COLON') }}</label><br/><span>{{ lang('MODULE_FA_SIZE_EXP') }}</span></dt>
<dd><input id="module_fa_size" type="number" value="{{ MODULE_FA_SIZE }}" name="module_fa_size" min="0"/>&nbsp;{{ lang('PIXEL') }}</dd>
</dl>
{% endif %}
<dl>
<dt><label for="module_reset">{{ lang('MODULE_RESET') }}{{ lang('COLON') }}</label><br /><span style="color: #BC2A4D;">{{ lang('MODULE_RESET_EXP') }}</span></dt>
<dd><input id="module_reset" type="checkbox" value="1" name="module_reset" /></dd>
</dl>
<dl>
<dt><label for="module_status">{L_MODULE_STATUS}{L_COLON}</label></dt>
<dt><label for="module_status">{{ lang('MODULE_STATUS') }}{{ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" class="radio" name="module_status" value="1" id="module_status"<!-- IF MODULE_ENABLED --> checked="checked"<!-- ENDIF --> />{L_YES}</label>
<label><input type="radio" class="radio" name="module_status" value="0"<!-- IF not MODULE_ENABLED --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" class="radio" name="module_status" value="1" id="module_status"{% if MODULE_ENABLED %} checked="checked"{% endif %} />{{ lang('YES') }}</label>
<label><input type="radio" class="radio" name="module_status" value="0"{% if not MODULE_ENABLED %} checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<!-- IF .permission_setting -->
{% if loops.permission_setting|length %}
<dl>
<dt><label for="permission-setting">{L_MODULE_PERMISSIONS}{L_COLON}</label><br /><span>{L_MODULE_PERMISSIONS_EXP}</span></dt>
<dt><label for="permission-setting">{{ lang('MODULE_PERMISSIONS') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_PERMISSIONS_EXP') }}</span></dt>
<dd>
<select id="permission-setting" size="10" multiple="multiple" name="permission-setting[]">
<!-- BEGIN permission_setting -->
<option value="{permission_setting.GROUP_ID}"<!-- IF permission_setting.SELECTED -->selected="selected"<!-- ENDIF -->>{permission_setting.GROUP_NAME}</option>
<!-- END permission_setting -->
{% for permission_setting in loops.permission_setting %}
<option value="{{ permission_setting.GROUP_ID }}"{% if permission_setting.SELECTED %}selected="selected"{% endif %}>{{ permission_setting.GROUP_NAME }}</option>
{% endfor %}
</select>
</dd>
</dl>
<!-- ENDIF -->
{% endif %}
</fieldset>
<!-- ENDIF -->
<!-- BEGIN options -->
<!-- IF options.S_LEGEND -->
<!-- IF not options.S_FIRST_ROW -->
{% endif %}
{% for options in loops.options %}
{% if options.S_LEGEND %}
{% if not options.S_FIRST_ROW %}
</fieldset>
<!-- ENDIF -->
{% endif %}
<fieldset>
<legend>{options.LEGEND}</legend>
<!-- ELSE -->
<legend>{{ options.LEGEND }}</legend>
{% else %}
<dl>
<dt><label for="{options.KEY}">{options.TITLE}{L_COLON}</label><!-- IF options.S_EXPLAIN --><br /><span>{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
<dd>{options.CONTENT}</dd>
<dt><label for="{{ options.KEY }}">{{ options.TITLE }}{{ lang('COLON') }}</label>{% if options.S_EXPLAIN %}<br /><span>{{ options.TITLE_EXPLAIN }}</span>{% endif %}</dt>
<dd>{{ options.CONTENT }}</dd>
</dl>
<!-- ENDIF -->
<!-- BEGINELSE -->
{% endif %}
{% else %}
<fieldset>
<!-- END options -->
{% endfor %}
<fieldset class="tabulated">
<legend>{L_ACP_PORTAL_LINKS}</legend>
<legend>{{ lang('ACP_PORTAL_LINKS') }}</legend>
<p class="quick">
<input class="button2" name="add" type="submit" value="{L_ACP_PORTAL_LINK_ADD}" />
<input class="button2" name="add" type="submit" value="{{ lang('ACP_PORTAL_LINK_ADD') }}" />
</p>
<table style="cellspacing: 1;">
<thead>
<tr>
<th>{L_ACP_PORTAL_LINK_TITLE}</th>
<th>{L_ACP_PORTAL_LINK_URL}</th>
<th>{L_ACTION}</th>
<th>{{ lang('ACP_PORTAL_LINK_TITLE') }}</th>
<th>{{ lang('ACP_PORTAL_LINK_URL') }}</th>
<th>{{ lang('ACTION') }}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN links -->
<!-- IF links.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="text-align: center;"<!-- IF links.S_LINK_IS_CAT --> class="row3" colspan="2"<!-- ENDIF -->>{links.LINK_TITLE}</td>
<!-- IF not links.S_LINK_IS_CAT --><td style="text-align: center;">{links.LINK_URL}</td><!-- ENDIF -->
{% for links in loops.links %}
{% if links.S_ROW_COUNT is even %}<tr class="row1">{% else %}<tr class="row2">{% endif %}
<td style="text-align: center;"{% if links.S_LINK_IS_CAT %} class="row3" colspan="2"{% endif %}>{{ links.LINK_TITLE }}</td>
{% if not links.S_LINK_IS_CAT %}<td style="text-align: center;">{{ links.LINK_URL }}</td>{% endif %}
<td style="text-align: center;">
<!-- IF links.S_FIRST_ROW -->{ICON_MOVE_UP_DISABLED}<!-- ELSE --><a href="{links.U_MOVE_UP}">{ICON_MOVE_UP}</a><!-- ENDIF -->&nbsp;
<!-- IF links.S_LAST_ROW -->{ICON_MOVE_DOWN_DISABLED}<!-- ELSE --><a href="{links.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a><!-- ENDIF -->&nbsp;
<a href="{links.U_EDIT}">{ICON_EDIT}</a> <a href="{links.U_DELETE}">{ICON_DELETE}</a>
{% if links.S_FIRST_ROW %}{{ ICON_MOVE_UP_DISABLED }}{% else %}<a href="{{ links.U_MOVE_UP }}">{{ ICON_MOVE_UP }}</a>{% endif %}&nbsp;
{% if links.S_LAST_ROW %}{{ ICON_MOVE_DOWN_DISABLED }}{% else %}<a href="{{ links.U_MOVE_DOWN }}">{{ ICON_MOVE_DOWN }}</a>{% endif %}&nbsp;
<a href="{{ links.U_EDIT }}">{{ ICON_EDIT }}</a> <a href="{{ links.U_DELETE }}">{{ ICON_DELETE }}</a>
</td>
</tr>
<!-- BEGINELSE -->
{% else %}
<tr class="row1">
<td style="text-align: center;" colspan="3">{L_LINKS_NO_LINKS}</td>
<td style="text-align: center;" colspan="3">{{ lang('LINKS_NO_LINKS') }}</td>
</tr>
<!-- END links -->
{% endfor %}
</tbody>
</table>
<p class="submit-buttons">
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
<input class="button1" type="submit" id="submit" name="submit" value="{{ lang('SUBMIT') }}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{{ lang('RESET') }}" />
</p>
{S_FORM_TOKEN}
{{ S_FORM_TOKEN }}
</fieldset>
</fieldset>
</form>
<!-- ENDIF -->
{% endif %}
<!-- INCLUDE overall_footer.html -->
{% INCLUDE 'overall_footer.html' %}

View File

@@ -1,186 +1,194 @@
<!-- INCLUDE overall_header.html -->
{% INCLUDE 'overall_header.html' %}
<a name="maincontent"></a>
<h1>{L_TITLE}</h1>
<h1>{{ lang('TITLE') }}</h1>
<p>{L_TITLE_EXPLAIN}</p>
<p>{{ lang('TITLE_EXPLAIN') }}</p>
<!-- IF S_ERROR -->
{% if S_ERROR %}
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{ERROR_MSG}</p>
<h3>{{ lang('WARNING') }}</h3>
<p>{{ ERROR_MSG }}</p>
</div>
<!-- ENDIF -->
{% endif %}
<!-- IF S_EDIT -->
<form id="acp_portal_links" method="post" action="{B3P_U_ACTION}">
{% if S_EDIT %}
<form id="acp_portal_links" method="post" action="{{ B3P_U_ACTION }}">
<fieldset>
<legend>{L_ACP_PORTAL_MENU_LINK_SETTINGS}</legend>
<legend>{{ lang('ACP_PORTAL_MENU_LINK_SETTINGS') }}</legend>
<dl>
<dt><label for="link_title">{L_ACP_PORTAL_MENU_TITLE}{L_COLON}</label></dt>
<dd><input name="link_title" type="text" id="link_title" value="{LINK_TITLE}" maxlength="255" /></dd>
<dt><label for="link_title">{{ lang('ACP_PORTAL_MENU_TITLE') }}{{ lang('COLON') }}</label></dt>
<dd><input name="link_title" type="text" id="link_title" value="{{ LINK_TITLE }}" maxlength="255" /></dd>
</dl>
<dl>
<dt><label for="link_is_cat">{L_ACP_PORTAL_MENU_IS_CAT}{L_COLON}</label></dt>
<dd><label><input onchange="phpbb.toggleDisplay('url', -1)" type="radio" class="radio" name="link_is_cat" value="1" id="link_is_cat"<!-- IF S_LINK_IS_CAT --> checked="checked"<!-- ENDIF --> />{L_YES}</label>
<label><input onchange="phpbb.toggleDisplay('url', 1)" type="radio" class="radio" name="link_is_cat" value="0"<!-- IF not S_LINK_IS_CAT --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
<dt><label for="link_is_cat">{{ lang('ACP_PORTAL_MENU_IS_CAT') }}{{ lang('COLON') }}</label></dt>
<dd><label><input onchange="phpbb.toggleDisplay('url', -1)" type="radio" class="radio" name="link_is_cat" value="1" id="link_is_cat"{% if S_LINK_IS_CAT %} checked="checked"{% endif %} />{{ lang('YES') }}</label>
<label><input onchange="phpbb.toggleDisplay('url', 1)" type="radio" class="radio" name="link_is_cat" value="0"{% if not S_LINK_IS_CAT %} checked="checked"{% endif %} /> {{ lang('NO') }}</label></dd>
</dl>
<div id="url"<!-- IF S_LINK_IS_CAT --> style="display: none;"<!-- ENDIF -->>
<div id="url"{% if S_LINK_IS_CAT %} style="display: none;"{% endif %}>
<dl>
<dt>
<label for="link_type">{L_ACP_PORTAL_MENU_TYPE}{L_COLON}</label><br />
<span>{L_ACP_PORTAL_MENU_TYPE_EXP}</span>
<label for="link_type">{{ lang('ACP_PORTAL_MENU_TYPE') }}{{ lang('COLON') }}</label><br />
<span>{{ lang('ACP_PORTAL_MENU_TYPE_EXP') }}</span>
</dt>
<dd>
<label><input type="radio" class="radio" name="link_type" value="1" id="link_type"<!-- IF S_LINK_IS_INT --> checked="checked"<!-- ENDIF --> />{L_ACP_PORTAL_MENU_INT}</label>
<label><input type="radio" class="radio" name="link_type" value="2"<!-- IF not S_LINK_IS_INT --> checked="checked"<!-- ENDIF --> /> {L_ACP_PORTAL_MENU_EXT}</label>
<label><input type="radio" class="radio" name="link_type" value="1" id="link_type"{% if S_LINK_IS_INT %} checked="checked"{% endif %} />{{ lang('ACP_PORTAL_MENU_INT') }}</label>
<label><input type="radio" class="radio" name="link_type" value="2"{% if not S_LINK_IS_INT %} checked="checked"{% endif %} /> {{ lang('ACP_PORTAL_MENU_EXT') }}</label>
</dd>
</dl>
<dl>
<dt>
<label for="link_url">{L_ACP_PORTAL_MENU_URL}{L_COLON}</label><br />
<span>{L_ACP_PORTAL_MENU_URL_EXP}</span>
<label for="link_url">{{ lang('ACP_PORTAL_MENU_URL') }}{{ lang('COLON') }}</label><br />
<span>{{ lang('ACP_PORTAL_MENU_URL_EXP') }}</span>
</dt>
<dd><input name="link_url" type="text" id="link_url" value="{LINK_URL}" maxlength="255" /></dd>
<dd><input name="link_url" type="text" id="link_url" value="{{ LINK_URL }}" maxlength="255" /></dd>
</dl>
<dl>
<dt>
<label for="permission-setting-menu">{L_ACP_PORTAL_MENU_PERMISSION}{L_COLON}</label><br />
<span>{L_ACP_PORTAL_MENU_PERMISSION_EXP}</span>
<label for="permission-setting-menu">{{ lang('ACP_PORTAL_MENU_PERMISSION') }}{{ lang('COLON') }}</label><br />
<span>{{ lang('ACP_PORTAL_MENU_PERMISSION_EXP') }}</span>
</dt>
<dd>
<select id="permission-setting-menu" size="10" multiple="multiple" name="permission-setting-menu[]">
<!-- BEGIN permission_setting_menu -->
<option value="{permission_setting_menu.GROUP_ID}"<!-- IF permission_setting_menu.SELECTED -->selected="selected"<!-- ENDIF -->>{permission_setting_menu.GROUP_NAME}</option>
<!-- END permission_setting_menu -->
{% for permission_setting_menu in loops.permission_setting_menu %}
<option value="{{ permission_setting_menu.GROUP_ID }}"{% if permission_setting_menu.SELECTED %}selected="selected"{% endif %}>{{ permission_setting_menu.GROUP_NAME }}</option>
{% endfor %}
</select>
</dd>
</dl>
</div>
<p class="submit-buttons">
<input type="hidden" name="action" value="save" />
<!-- IF LINK_ID !== '' --><input type="hidden" name="id" value="{LINK_ID}" /><!-- ENDIF -->
{% if LINK_ID !== '' %}<input type="hidden" name="id" value="{{ LINK_ID }}" />{% endif %}
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
{S_FORM_TOKEN}
<input class="button1" type="submit" id="submit" name="submit" value="{{ lang('SUBMIT') }}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{{ lang('RESET') }}" />
{{ S_FORM_TOKEN }}
</p>
</fieldset>
</form>
<!-- ELSE -->
<form id="acp_portal_links" method="post" action="{B3P_U_ACTION}">
<!-- IF SHOW_MODULE_OPTIONS -->
{% else %}
<form id="acp_portal_links" method="post" action="{{ B3P_U_ACTION }}">
{% if SHOW_MODULE_OPTIONS %}
<fieldset>
<legend>{L_MODULE_OPTIONS}</legend>
<legend>{{ lang('MODULE_OPTIONS') }}</legend>
<dl>
<dt><label for="module_name">{L_MODULE_NAME}{L_COLON}</label><br /><span>{L_MODULE_NAME_EXP}</span></dt>
<dd><input id="module_name" type="text" value="{MODULE_NAME}" name="module_name" maxlength="255" size="64" /></dd>
<dt><label for="module_name">{{ lang('MODULE_NAME') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_NAME_EXP') }}</span></dt>
<dd><input id="module_name" type="text" value="{{ MODULE_NAME }}" name="module_name" maxlength="255" size="64" /></dd>
</dl>
<!-- IF MODULE_SHOW_IMAGE -->
{% if MODULE_SHOW_IMAGE %}
<dl>
<dt><label for="module_image">{L_MODULE_IMAGE}{L_COLON}</label><br /><span>{L_MODULE_IMAGE_EXP}</span></dt>
<dd><input id="module_image" type="text" value="{MODULE_IMAGE}" name="module_image" maxlength="255" size="64" /></dd>
<!-- IF MODULE_IMAGE_SRC --><dd><img src="{MODULE_IMAGE_SRC}" alt="{L_MODULE_IMAGE}" /></dd><!-- ENDIF -->
<dt><label for="module_image">{{ lang('MODULE_IMAGE') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_IMAGE_EXP') }}</span></dt>
<dd><input id="module_image" type="text" value="{{ MODULE_IMAGE }}" name="module_image" maxlength="255" size="64" /></dd>
{% if MODULE_IMAGE_SRC %}<dd><img src="{{ MODULE_IMAGE_SRC }}" alt="{{ lang('MODULE_IMAGE') }}" /></dd>{% endif %}
</dl>
<!-- IF MODULE_IMAGE_SRC -->
{% if MODULE_IMAGE_SRC %}
<dl>
<dt><label for="module_img_width">{L_MODULE_IMAGE_WIDTH}{L_COLON}</label><br /><span>{L_MODULE_IMAGE_WIDTH_EXP}</span></dt>
<dd><input id="module_img_width" type="text" value="{MODULE_IMAGE_WIDTH}" name="module_img_width" maxlength="3" size="3" />px</dd>
<dt><label for="module_img_width">{{ lang('MODULE_IMAGE_WIDTH') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_IMAGE_WIDTH_EXP') }}</span></dt>
<dd><input id="module_img_width" type="number" value="{{ MODULE_IMAGE_WIDTH }}" name="module_img_width" min="0" />&nbsp;{{ lang('PIXEL') }}</dd>
</dl>
<dl>
<dt><label for="module_img_height">{L_MODULE_IMAGE_HEIGHT}{L_COLON}</label><br /><span>{L_MODULE_IMAGE_HEIGHT_EXP}</span></dt>
<dd><input id="module_img_height" type="text" value="{MODULE_IMAGE_HEIGHT}" name="module_img_height" maxlength="3" size="3" />px</dd>
<dt><label for="module_img_height">{{ lang('MODULE_IMAGE_HEIGHT') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_IMAGE_HEIGHT_EXP') }}</span></dt>
<dd><input id="module_img_height" type="number" value="{{ MODULE_IMAGE_HEIGHT }}" name="module_img_height" min="0" />&nbsp;{{ lang('PIXEL') }}</dd>
</dl>
<!-- ENDIF -->
<!-- ENDIF -->
{% endif %}
<dl>
<dt><label for="module_reset">{L_MODULE_RESET}{L_COLON}</label><br /><span style="color: #BC2A4D;">{L_MODULE_RESET_EXP}</span></dt>
<dt><label for="module_fa">{{ lang('MODULE_FA') }}{{ lang('COLON') }}</label><br/><span>{{ lang('MODULE_FA_EXP') }}</span></dt>
<dd><input id="module_fa" type="text" value="{{ MODULE_FA }}" name="module_fa" maxlength="255" size="64"/></dd>
</dl>
<dl>
<dt><label for="module_fa_size">{{ lang('MODULE_FA_SIZE') }}{{ lang('COLON') }}</label><br/><span>{{ lang('MODULE_FA_SIZE_EXP') }}</span></dt>
<dd><input id="module_fa_size" type="number" value="{{ MODULE_FA_SIZE }}" name="module_fa_size" min="0"/>&nbsp;{{ lang('PIXEL') }}</dd>
</dl>
{% endif %}
<dl>
<dt><label for="module_reset">{{ lang('MODULE_RESET') }}{{ lang('COLON') }}</label><br /><span style="color: #BC2A4D;">{{ lang('MODULE_RESET_EXP') }}</span></dt>
<dd><input id="module_reset" type="checkbox" value="1" name="module_reset" /></dd>
</dl>
<dl>
<dt><label for="module_status">{L_MODULE_STATUS}{L_COLON}</label></dt>
<dt><label for="module_status">{{ lang('MODULE_STATUS') }}{{ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" class="radio" name="module_status" value="1" id="module_status"<!-- IF MODULE_ENABLED --> checked="checked"<!-- ENDIF --> />{L_YES}</label>
<label><input type="radio" class="radio" name="module_status" value="0"<!-- IF not MODULE_ENABLED --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" class="radio" name="module_status" value="1" id="module_status"{% if MODULE_ENABLED %} checked="checked"{% endif %} />{{ lang('YES') }}</label>
<label><input type="radio" class="radio" name="module_status" value="0"{% if not MODULE_ENABLED %} checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<!-- IF .permission_setting -->
{% if loops.permission_setting|length %}
<dl>
<dt><label for="permission-setting">{L_MODULE_PERMISSIONS}{L_COLON}</label><br /><span>{L_MODULE_PERMISSIONS_EXP}</span></dt>
<dt><label for="permission-setting">{{ lang('MODULE_PERMISSIONS') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_PERMISSIONS_EXP') }}</span></dt>
<dd>
<select id="permission-setting" size="10" multiple="multiple" name="permission-setting[]">
<!-- BEGIN permission_setting -->
<option value="{permission_setting.GROUP_ID}"<!-- IF permission_setting.SELECTED -->selected="selected"<!-- ENDIF -->>{permission_setting.GROUP_NAME}</option>
<!-- END permission_setting -->
{% for permission_setting in loops.permission_setting %}
<option value="{{ permission_setting.GROUP_ID }}"{% if permission_setting.SELECTED %}selected="selected"{% endif %}>{{ permission_setting.GROUP_NAME }}</option>
{% endfor %}
</select>
</dd>
</dl>
<!-- ENDIF -->
{% endif %}
</fieldset>
<!-- ENDIF -->
<!-- BEGIN options -->
<!-- IF options.S_LEGEND -->
<!-- IF not options.S_FIRST_ROW -->
{% endif %}
{% for options in loops.options %}
{% if options.S_LEGEND %}
{% if not options.S_FIRST_ROW %}
</fieldset>
<!-- ENDIF -->
{% endif %}
<fieldset>
<legend>{options.LEGEND}</legend>
<!-- ELSE -->
<legend>{{ options.LEGEND }}</legend>
{% else %}
<dl>
<dt><label for="{options.KEY}">{options.TITLE}{L_COLON}</label><!-- IF options.S_EXPLAIN --><br /><span>{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
<dd>{options.CONTENT}</dd>
<dt><label for="{{ options.KEY }}">{{ options.TITLE }}{{ lang('COLON') }}</label>{% if options.S_EXPLAIN %}<br /><span>{{ options.TITLE_EXPLAIN }}</span>{% endif %}</dt>
<dd>{{ options.CONTENT }}</dd>
</dl>
<!-- ENDIF -->
<!-- BEGINELSE -->
{% endif %}
{% else %}
<fieldset>
<!-- END options -->
{% endfor %}
<fieldset class="tabulated">
<legend>{L_ACP_PORTAL_LINKS}</legend>
<legend>{{ lang('ACP_PORTAL_LINKS') }}</legend>
<p class="quick">
<input class="button2" name="add" type="submit" value="{L_ACP_PORTAL_MENU_ADD}" />
<input class="button2" name="add" type="submit" value="{{ lang('ACP_PORTAL_MENU_ADD') }}" />
</p>
<table style="cellspacing: 1;">
<thead>
<tr>
<th>{L_ACP_PORTAL_MENU_TITLE}</th>
<th>{L_ACP_PORTAL_MENU_URL}</th>
<th>{L_ACTION}</th>
<th>{{ lang('ACP_PORTAL_MENU_TITLE') }}</th>
<th>{{ lang('ACP_PORTAL_MENU_URL') }}</th>
<th>{{ lang('ACTION') }}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN links -->
<!-- IF links.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="text-align: center;"<!-- IF links.S_LINK_IS_CAT --> class="row3" colspan="2"<!-- ENDIF -->>{links.LINK_TITLE}</td>
<!-- IF not links.S_LINK_IS_CAT --><td style="text-align: center;">{links.LINK_URL}</td><!-- ENDIF -->
{% for links in loops.links %}
{% if links.S_ROW_COUNT is even %}<tr class="row1">{% else %}<tr class="row2">{% endif %}
<td style="text-align: center;"{% if links.S_LINK_IS_CAT %} class="row3" colspan="2"{% endif %}>{{ links.LINK_TITLE }}</td>
{% if not links.S_LINK_IS_CAT %}<td style="text-align: center;">{{ links.LINK_URL }}</td>{% endif %}
<td style="text-align: center;">
<!-- IF links.S_FIRST_ROW -->{ICON_MOVE_UP_DISABLED}<!-- ELSE --><a href="{links.U_MOVE_UP}">{ICON_MOVE_UP}</a><!-- ENDIF -->&nbsp;
<!-- IF links.S_LAST_ROW -->{ICON_MOVE_DOWN_DISABLED}<!-- ELSE --><a href="{links.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a><!-- ENDIF -->&nbsp;
<a href="{links.U_EDIT}">{ICON_EDIT}</a> <a href="{links.U_DELETE}">{ICON_DELETE}</a>
{% if links.S_FIRST_ROW %}{{ ICON_MOVE_UP_DISABLED }}{% else %}<a href="{{ links.U_MOVE_UP }}">{{ ICON_MOVE_UP }}</a>{% endif %}&nbsp;
{% if links.S_LAST_ROW %}{{ ICON_MOVE_DOWN_DISABLED }}{% else %}<a href="{{ links.U_MOVE_DOWN }}">{{ ICON_MOVE_DOWN }}</a>{% endif %}&nbsp;
<a href="{{ links.U_EDIT }}">{{ ICON_EDIT }}</a> <a href="{{ links.U_DELETE }}">{{ ICON_DELETE }}</a>
</td>
</tr>
<!-- BEGINELSE -->
{% else %}
<tr class="row1">
<td style="text-align: center;" colspan="3">{L_MENU_NO_LINKS}</td>
<td style="text-align: center;" colspan="3">{{ lang('MENU_NO_LINKS') }}</td>
</tr>
<!-- END links -->
{% endfor %}
</tbody>
</table>
<p class="submit-buttons">
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
<input class="button1" type="submit" id="submit" name="submit" value="{{ lang('SUBMIT') }}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{{ lang('RESET') }}" />
</p>
{S_FORM_TOKEN}
{{ S_FORM_TOKEN }}
</fieldset>
</fieldset>
</form>
<!-- ENDIF -->
{% endif %}
<!-- INCLUDE overall_footer.html -->
{% INCLUDE 'overall_footer.html' %}

View File

@@ -1,78 +1,78 @@
<!-- IF S_AJAX_REQUEST -->
<form id="acp_portal_modules" method="post" action="{U_ACTION}">
{% if S_AJAX_REQUEST %}
<form id="acp_portal_modules" method="post" action="{{ U_ACTION }}">
<fieldset>
<dl>
<dt><label for="module_classname" style="display: inline;">{L_CHOOSE_MODULE}{L_COLON}</label><br /><span>{L_CHOOSE_MODULE_EXP}</span></dt>
<dd><select name="module_classname" id="module_classname">{S_MODULE_NAMES}</select></dd>
<dt><label for="module_classname" style="display: inline;">{{ lang('CHOOSE_MODULE') }}{{ lang('COLON') }}</label><br /><span>{{ lang('CHOOSE_MODULE_EXP') }}</span></dt>
<dd><select name="module_classname" id="module_classname">{{ S_MODULE_NAMES }}</select></dd>
</dl>
<p class="submit-buttons">
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
{S_FORM_TOKEN}{S_HIDDEN_FIELDS}
<input class="button1" type="submit" id="submit" name="submit" value="{{ lang('SUBMIT') }}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{{ lang('RESET') }}" />
{{ S_FORM_TOKEN }}{{ S_HIDDEN_FIELDS }}
</p>
</fieldset>
</form>
<!-- ELSE -->
<!-- INCLUDECSS portal/b3p_admin.css -->
<!-- INCLUDE overall_header.html -->
{% else %}
{% INCLUDECSS 'portal/b3p_admin.css' %}
{% INCLUDE 'overall_header.html' %}
<a name="maincontent"></a>
<!-- IF S_EDIT -->
{% if S_EDIT %}
<h1>{L_ACP_PORTAL_MODULES}</h1>
<p>{L_ACP_PORTAL_MODULES_EXP}</p>
<h1>{{ lang('ACP_PORTAL_MODULES') }}</h1>
<p>{{ lang('ACP_PORTAL_MODULES_EXP') }}</p>
<form id="acp_portal_modules" method="post" action="{B3P_U_ACTION}">
<form id="acp_portal_modules" method="post" action="{{ B3P_U_ACTION }}">
<fieldset>
<dl>
<dt><label for="module_classname">{L_CHOOSE_MODULE}{L_COLON}</label><br /><span>{L_CHOOSE_MODULE_EXP}</span></dt>
<dd><select name="module_classname" id="module_classname">{S_MODULE_NAMES}</select></dd>
<dt><label for="module_classname">{{ lang('CHOOSE_MODULE') }}{{ lang('COLON') }}</label><br /><span>{{ lang('CHOOSE_MODULE_EXP') }}</span></dt>
<dd><select name="module_classname" id="module_classname">{{ S_MODULE_NAMES }}</select></dd>
</dl>
<p class="submit-buttons">
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
{S_FORM_TOKEN}{S_HIDDEN_FIELDS}
<input class="button1" type="submit" id="submit" name="submit" value="{{ lang('SUBMIT') }}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{{ lang('RESET') }}" />
{{ S_FORM_TOKEN }}{{ S_HIDDEN_FIELDS }}
</p>
</fieldset>
</form>
<!-- ELSE -->
{% else %}
<h1>{L_ACP_PORTAL_MODULES}</h1>
<p>{L_ACP_PORTAL_MODULES_EXP}</p>
<h1>{{ lang('ACP_PORTAL_MODULES') }}</h1>
<p>{{ lang('ACP_PORTAL_MODULES_EXP') }}</p>
<form id="acp_portal_modules" method="post" action="{B3P_U_ACTION}" data-ajax="true">
<form id="acp_portal_modules" method="post" action="{{ B3P_U_ACTION }}" data-ajax="true">
<fieldset class="tabulated">
<legend>{L_ACP_PORTAL_MODULES}</legend>
<legend>{{ lang('ACP_PORTAL_MODULES') }}</legend>
<table class="portal-modules-overview">
<tr>
<th style="text-align: center;">{L_MODULE_POS_TOP}</th>
<th style="text-align: center;">{{ lang('MODULE_POS_TOP') }}</th>
</tr>
<!-- BEGIN modules_top -->
<!-- IF not modules_top.MODULE_ENABLED --><tr class="row3"><!-- ELSEIF modules_top.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
{% for modules_top in loops.modules_top %}
{% if not modules_top.MODULE_ENABLED %}<tr class="row3">{% elseif modules_top.S_ROW_COUNT is even %}<tr class="row1">{% else %}<tr class="row2">{% endif %}
<td>
{modules_top.MODULE_IMAGE} {modules_top.MODULE_NAME}<br />
{{ modules_top.MODULE_IMAGE }} {{ modules_top.MODULE_NAME }}<br />
<br />
<span<!-- IF not modules_top.S_FIRST_ROW --> style="display: none;"<!-- ENDIF -->>{ICON_MOVE_UP_DISABLED}&nbsp;</span>
<span<!-- IF modules_top.S_FIRST_ROW --> style="display: none;"<!-- ENDIF -->><a href="{modules_top.U_MOVE_UP}" data-ajax="b3p_move_module_up">{ICON_MOVE_UP}</a>&nbsp;</span>
<span<!-- IF not modules_top.S_LAST_ROW --> style="display: none;"<!-- ENDIF -->>{ICON_MOVE_DOWN_DISABLED}&nbsp;</span>
<span<!-- IF modules_top.S_LAST_ROW --> style="display: none;"<!-- ENDIF -->><a href="{modules_top.U_MOVE_DOWN}" data-ajax="b3p_move_module_down">{ICON_MOVE_DOWN}</a>&nbsp;</span>
<a href="{modules_top.U_EDIT}">{ICON_EDIT}</a> <a href="{modules_top.U_DELETE}" data-ajax="b3p_delete_module">{ICON_DELETE}</a>
<span{% if not modules_top.S_FIRST_ROW %} style="display: none;"{% endif %}>{{ ICON_MOVE_UP_DISABLED }}&nbsp;</span>
<span{% if modules_top.S_FIRST_ROW %} style="display: none;"{% endif %}><a href="{{ modules_top.U_MOVE_UP }}" data-ajax="b3p_move_module_up">{{ ICON_MOVE_UP }}</a>&nbsp;</span>
<span{% if not modules_top.S_LAST_ROW %} style="display: none;"{% endif %}>{{ ICON_MOVE_DOWN_DISABLED }}&nbsp;</span>
<span{% if modules_top.S_LAST_ROW %} style="display: none;"{% endif %}><a href="{{ modules_top.U_MOVE_DOWN }}" data-ajax="b3p_move_module_down">{{ ICON_MOVE_DOWN }}</a>&nbsp;</span>
<a href="{{ modules_top.U_EDIT }}">{{ ICON_EDIT }}</a> <a href="{{ modules_top.U_DELETE }}" data-ajax="b3p_delete_module">{{ ICON_DELETE }}</a>
</td>
</tr>
<!-- BEGINELSE -->
{% else %}
<tr>
<td class="row1" style="text-align: center;">{L_NO_MODULES}</td>
<td class="row1" style="text-align: center;">{{ lang('NO_MODULES') }}</td>
</tr>
<!-- END modules_top -->
{% endfor %}
</table>
<p class="quick">
<input class="button2" name="add[top]" type="submit" value="{L_ADD_MODULE}" />
<input class="button2" name="add[top]" type="submit" value="{{ lang('ADD_MODULE') }}" />
</p>
<table style="background-color: transparent; border: none; padding: 0px; margin: 0px;">
@@ -80,88 +80,88 @@
<td style="width: 20%; font-size: 100%; line-height: 100%; padding: 0px; margin: 0px;">
<table class="portal-modules-overview">
<tr>
<th>{L_MODULE_POS_LEFT}</th>
<th>{{ lang('MODULE_POS_LEFT') }}</th>
</tr>
<!-- BEGIN modules_left -->
<!-- IF not modules_left.MODULE_ENABLED --><tr class="row3"><!-- ELSEIF modules_left.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
{% for modules_left in loops.modules_left %}
{% if not modules_left.MODULE_ENABLED %}<tr class="row3">{% elseif modules_left.S_ROW_COUNT is even %}<tr class="row1">{% else %}<tr class="row2">{% endif %}
<td>
{modules_left.MODULE_IMAGE} {modules_left.MODULE_NAME}<br />
{{ modules_left.MODULE_IMAGE }} {{ modules_left.MODULE_NAME }}<br />
<br />
<span<!-- IF not modules_left.S_FIRST_ROW --> style="display: none;"<!-- ENDIF -->>{ICON_MOVE_UP_DISABLED}&nbsp;</span>
<span<!-- IF modules_left.S_FIRST_ROW --> style="display: none;"<!-- ENDIF -->><a href="{modules_left.U_MOVE_UP}" data-ajax="b3p_move_module_up">{ICON_MOVE_UP}</a>&nbsp;</span>
<!-- IF modules_left.U_MOVE_RIGHT --><a href="{modules_left.U_MOVE_RIGHT}"><!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{ICON_MOVE_LEFT}<!-- ELSE -->{ICON_MOVE_RIGHT}<!-- ENDIF --></a><!-- ELSE --><!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{ICON_MOVE_LEFT_DISABLED}<!-- ELSE -->{ICON_MOVE_RIGHT_DISABLED}<!-- ENDIF --><!-- ENDIF -->&nbsp;
<a href="{modules_left.U_EDIT}">{ICON_EDIT}</a> <a href="{modules_left.U_DELETE}" data-ajax="b3p_delete_module">{ICON_DELETE}</a><br />
<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{ICON_MOVE_RIGHT_DISABLED}<!-- ELSE -->{ICON_MOVE_LEFT_DISABLED}<!-- ENDIF -->&nbsp;
<span<!-- IF not modules_left.S_LAST_ROW --> style="display: none;"<!-- ENDIF -->>{ICON_MOVE_DOWN_DISABLED}&nbsp;</span>
<span<!-- IF modules_left.S_LAST_ROW --> style="display: none;"<!-- ENDIF -->><a href="{modules_left.U_MOVE_DOWN}" data-ajax="b3p_move_module_down">{ICON_MOVE_DOWN}</a></span>
<span{% if not modules_left.S_FIRST_ROW %} style="display: none;"{% endif %}>{{ ICON_MOVE_UP_DISABLED }}&nbsp;</span>
<span{% if modules_left.S_FIRST_ROW %} style="display: none;"{% endif %}><a href="{{ modules_left.U_MOVE_UP }}" data-ajax="b3p_move_module_up">{{ ICON_MOVE_UP }}</a>&nbsp;</span>
{% if modules_left.U_MOVE_RIGHT %}<a href="{{ modules_left.U_MOVE_RIGHT }}">{% if S_CONTENT_DIRECTION eq 'rtl' %}{{ ICON_MOVE_LEFT }}{% else %}{{ ICON_MOVE_RIGHT }}{% endif %}</a>{% else %}{% if S_CONTENT_DIRECTION eq 'rtl' %}{{ ICON_MOVE_LEFT_DISABLED }}{% else %}{{ ICON_MOVE_RIGHT_DISABLED }}{% endif %}{% endif %}&nbsp;
<a href="{{ modules_left.U_EDIT }}">{{ ICON_EDIT }}</a> <a href="{{ modules_left.U_DELETE }}" data-ajax="b3p_delete_module">{{ ICON_DELETE }}</a><br />
{% if S_CONTENT_DIRECTION eq 'rtl' %}{{ ICON_MOVE_RIGHT_DISABLED }}{% else %}{{ ICON_MOVE_LEFT_DISABLED }}{% endif %}&nbsp;
<span{% if not modules_left.S_LAST_ROW %} style="display: none;"{% endif %}>{{ ICON_MOVE_DOWN_DISABLED }}&nbsp;</span>
<span{% if modules_left.S_LAST_ROW %} style="display: none;"{% endif %}><a href="{{ modules_left.U_MOVE_DOWN }}" data-ajax="b3p_move_module_down">{{ ICON_MOVE_DOWN }}</a></span>
</td>
</tr>
<!-- BEGINELSE -->
{% else %}
<tr>
<td class="row1" style="text-align: center;">{L_NO_MODULES}</td>
<td class="row1" style="text-align: center;">{{ lang('NO_MODULES') }}</td>
</tr>
<!-- END modules_left -->
{% endfor %}
</table>
<p class="quick">
<input class="button2" name="add[left]" type="submit" value="{L_ADD_MODULE}" />
<input class="button2" name="add[left]" type="submit" value="{{ lang('ADD_MODULE') }}" />
</p>
</td>
<td style="font-size: 100%; line-height: 100%; padding: 0 12px;">
<table class="portal-modules-overview">
<tr>
<th style="text-align: center;">{L_MODULE_POS_CENTER}</th>
<th style="text-align: center;">{{ lang('MODULE_POS_CENTER') }}</th>
</tr>
<!-- BEGIN modules_center -->
<!-- IF not modules_center.MODULE_ENABLED --><tr class="row3"><!-- ELSEIF modules_center.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
{% for modules_center in loops.modules_center %}
{% if not modules_center.MODULE_ENABLED %}<tr class="row3">{% elseif modules_center.S_ROW_COUNT is even %}<tr class="row1">{% else %}<tr class="row2">{% endif %}
<td>
{modules_center.MODULE_IMAGE} {modules_center.MODULE_NAME}<br />
{{ modules_center.MODULE_IMAGE }} {{ modules_center.MODULE_NAME }}<br />
<br />
<span<!-- IF not modules_center.S_FIRST_ROW --> style="display: none;"<!-- ENDIF -->>{ICON_MOVE_UP_DISABLED}&nbsp;</span>
<span<!-- IF modules_center.S_FIRST_ROW --> style="display: none;"<!-- ENDIF -->><a href="{modules_center.U_MOVE_UP}" data-ajax="b3p_move_module_up">{ICON_MOVE_UP}</a>&nbsp;</span>
<!-- IF modules_center.U_MOVE_RIGHT --><a href="{modules_center.U_MOVE_RIGHT}">{ICON_MOVE_RIGHT}</a><!-- ELSE -->{ICON_MOVE_RIGHT_DISABLED}<!-- ENDIF -->&nbsp;
<a href="{modules_center.U_EDIT}">{ICON_EDIT}</a> <a href="{modules_center.U_DELETE}" data-ajax="b3p_delete_module">{ICON_DELETE}</a><br />
<!-- IF modules_center.U_MOVE_LEFT --><a href="{modules_center.U_MOVE_LEFT}">{ICON_MOVE_LEFT}</a><!-- ELSE -->{ICON_MOVE_LEFT_DISABLED}<!-- ENDIF -->&nbsp;
<span<!-- IF not modules_center.S_LAST_ROW --> style="display: none;"<!-- ENDIF -->>{ICON_MOVE_DOWN_DISABLED}&nbsp;</span>
<span<!-- IF modules_center.S_LAST_ROW --> style="display: none;"<!-- ENDIF -->><a href="{modules_center.U_MOVE_DOWN}" data-ajax="b3p_move_module_down">{ICON_MOVE_DOWN}</a></span>
<span{% if not modules_center.S_FIRST_ROW %} style="display: none;"{% endif %}>{{ ICON_MOVE_UP_DISABLED }}&nbsp;</span>
<span{% if modules_center.S_FIRST_ROW %} style="display: none;"{% endif %}><a href="{{ modules_center.U_MOVE_UP }}" data-ajax="b3p_move_module_up">{{ ICON_MOVE_UP }}</a>&nbsp;</span>
{% if modules_center.U_MOVE_RIGHT %}<a href="{{ modules_center.U_MOVE_RIGHT }}">{{ ICON_MOVE_RIGHT }}</a>{% else %}{{ ICON_MOVE_RIGHT_DISABLED }}{% endif %}&nbsp;
<a href="{{ modules_center.U_EDIT }}">{{ ICON_EDIT }}</a> <a href="{{ modules_center.U_DELETE }}" data-ajax="b3p_delete_module">{{ ICON_DELETE }}</a><br />
{% if modules_center.U_MOVE_LEFT %}<a href="{{ modules_center.U_MOVE_LEFT }}">{{ ICON_MOVE_LEFT }}</a>{% else %}{{ ICON_MOVE_LEFT_DISABLED }}{% endif %}&nbsp;
<span{% if not modules_center.S_LAST_ROW %} style="display: none;"{% endif %}>{{ ICON_MOVE_DOWN_DISABLED }}&nbsp;</span>
<span{% if modules_center.S_LAST_ROW %} style="display: none;"{% endif %}><a href="{{ modules_center.U_MOVE_DOWN }}" data-ajax="b3p_move_module_down">{{ ICON_MOVE_DOWN }}</a></span>
</td>
</tr>
<!-- BEGINELSE -->
{% else %}
<tr>
<td class="row1" style="text-align: center;">{L_NO_MODULES}</td>
<td class="row1" style="text-align: center;">{{ lang('NO_MODULES') }}</td>
</tr>
<!-- END modules_center -->
{% endfor %}
</table>
<p class="quick">
<input class="button2" name="add[center]" type="submit" value="{L_ADD_MODULE}" />
<input class="button2" name="add[center]" type="submit" value="{{ lang('ADD_MODULE') }}" />
</p>
</td>
<td style="width: 20%; font-size: 100%; line-height: 100%; padding: 0px;">
<table class="portal-modules-overview">
<tr>
<th>{L_MODULE_POS_RIGHT}</th>
<th>{{ lang('MODULE_POS_RIGHT') }}</th>
</tr>
<!-- BEGIN modules_right -->
<!-- IF not modules_right.MODULE_ENABLED --><tr class="row3"><!-- ELSEIF modules_right.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
{% for modules_right in loops.modules_right %}
{% if not modules_right.MODULE_ENABLED %}<tr class="row3">{% elseif modules_right.S_ROW_COUNT is even %}<tr class="row1">{% else %}<tr class="row2">{% endif %}
<td>
{modules_right.MODULE_IMAGE} {modules_right.MODULE_NAME}<br />
{{ modules_right.MODULE_IMAGE }} {{ modules_right.MODULE_NAME }}<br />
<br />
<span<!-- IF not modules_right.S_FIRST_ROW --> style="display: none;"<!-- ENDIF -->>{ICON_MOVE_UP_DISABLED}&nbsp;</span>
<span<!-- IF modules_right.S_FIRST_ROW --> style="display: none;"<!-- ENDIF -->><a href="{modules_right.U_MOVE_UP}" data-ajax="b3p_move_module_up">{ICON_MOVE_UP}</a>&nbsp;</span>
<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{ICON_MOVE_LEFT_DISABLED}<!-- ELSE -->{ICON_MOVE_RIGHT_DISABLED}<!-- ENDIF -->&nbsp;
<a href="{modules_right.U_EDIT}">{ICON_EDIT}</a> <a href="{modules_right.U_DELETE}" data-ajax="b3p_delete_module">{ICON_DELETE}</a><br />
<!-- IF modules_right.U_MOVE_LEFT --><a href="{modules_right.U_MOVE_LEFT}"><!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{ICON_MOVE_RIGHT}<!-- ELSE -->{ICON_MOVE_LEFT}<!-- ENDIF --></a><!-- ELSE --><!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{ICON_MOVE_RIGHT_DISABLED}<!-- ELSE -->{ICON_MOVE_LEFT_DISABLED}<!-- ENDIF --><!-- ENDIF -->&nbsp;
<span<!-- IF not modules_right.S_LAST_ROW --> style="display: none;"<!-- ENDIF -->>{ICON_MOVE_DOWN_DISABLED}&nbsp;</span>
<span<!-- IF modules_right.S_LAST_ROW --> style="display: none;"<!-- ENDIF -->><a href="{modules_right.U_MOVE_DOWN}" data-ajax="b3p_move_module_down">{ICON_MOVE_DOWN}</a></span>
<span{% if not modules_right.S_FIRST_ROW %} style="display: none;"{% endif %}>{{ ICON_MOVE_UP_DISABLED }}&nbsp;</span>
<span{% if modules_right.S_FIRST_ROW %} style="display: none;"{% endif %}><a href="{{ modules_right.U_MOVE_UP }}" data-ajax="b3p_move_module_up">{{ ICON_MOVE_UP }}</a>&nbsp;</span>
{% if S_CONTENT_DIRECTION eq 'rtl' %}{{ ICON_MOVE_LEFT_DISABLED }}{% else %}{{ ICON_MOVE_RIGHT_DISABLED }}{% endif %}&nbsp;
<a href="{{ modules_right.U_EDIT }}">{{ ICON_EDIT }}</a> <a href="{{ modules_right.U_DELETE }}" data-ajax="b3p_delete_module">{{ ICON_DELETE }}</a><br />
{% if modules_right.U_MOVE_LEFT %}<a href="{{ modules_right.U_MOVE_LEFT }}">{% if S_CONTENT_DIRECTION eq 'rtl' %}{{ ICON_MOVE_RIGHT }}{% else %}{{ ICON_MOVE_LEFT }}{% endif %}</a>{% else %}{% if S_CONTENT_DIRECTION eq 'rtl' %}{{ ICON_MOVE_RIGHT_DISABLED }}{% else %}{{ ICON_MOVE_LEFT_DISABLED }}{% endif %}{% endif %}&nbsp;
<span{% if not modules_right.S_LAST_ROW %} style="display: none;"{% endif %}>{{ ICON_MOVE_DOWN_DISABLED }}&nbsp;</span>
<span{% if modules_right.S_LAST_ROW %} style="display: none;"{% endif %}><a href="{{ modules_right.U_MOVE_DOWN }}" data-ajax="b3p_move_module_down">{{ ICON_MOVE_DOWN }}</a></span>
</td>
</tr>
<!-- BEGINELSE -->
{% else %}
<tr>
<td class="row1" style="text-align: center;">{L_NO_MODULES}</td>
<td class="row1" style="text-align: center;">{{ lang('NO_MODULES') }}</td>
</tr>
<!-- END modules_right -->
{% endfor %}
</table>
<p class="quick">
<input class="button2" name="add[right]" type="submit" value="{L_ADD_MODULE}" />
<input class="button2" name="add[right]" type="submit" value="{{ lang('ADD_MODULE') }}" />
</p>
</td>
</tr>
@@ -170,37 +170,37 @@
<table class="portal-modules-overview">
<tr>
<th style="text-align: center;">{L_MODULE_POS_BOTTOM}</th>
<th style="text-align: center;">{{ lang('MODULE_POS_BOTTOM') }}</th>
</tr>
<!-- BEGIN modules_bottom -->
<!-- IF not modules_bottom.MODULE_ENABLED --><tr class="row3"><!-- ELSEIF modules_bottom.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
{% for modules_bottom in loops.modules_bottom %}
{% if not modules_bottom.MODULE_ENABLED %}<tr class="row3">{% elseif modules_bottom.S_ROW_COUNT is even %}<tr class="row1">{% else %}<tr class="row2">{% endif %}
<td>
{modules_bottom.MODULE_IMAGE} {modules_bottom.MODULE_NAME}<br />
{{ modules_bottom.MODULE_IMAGE }} {{ modules_bottom.MODULE_NAME }}<br />
<br />
<span<!-- IF not modules_bottom.S_FIRST_ROW --> style="display: none;"<!-- ENDIF -->>{ICON_MOVE_UP_DISABLED}&nbsp;</span>
<span<!-- IF modules_bottom.S_FIRST_ROW --> style="display: none;"<!-- ENDIF -->><a href="{modules_bottom.U_MOVE_UP}" data-ajax="b3p_move_module_up">{ICON_MOVE_UP}</a>&nbsp;</span>
<span<!-- IF not modules_bottom.S_LAST_ROW --> style="display: none;"<!-- ENDIF -->>{ICON_MOVE_DOWN_DISABLED}&nbsp;</span>
<span<!-- IF modules_bottom.S_LAST_ROW --> style="display: none;"<!-- ENDIF -->><a href="{modules_bottom.U_MOVE_DOWN}" data-ajax="b3p_move_module_down">{ICON_MOVE_DOWN}</a>&nbsp;</span>
<a href="{modules_bottom.U_EDIT}">{ICON_EDIT}</a> <a href="{modules_bottom.U_DELETE}" data-ajax="b3p_delete_module">{ICON_DELETE}</a>
<span{% if not modules_bottom.S_FIRST_ROW %} style="display: none;"{% endif %}>{{ ICON_MOVE_UP_DISABLED }}&nbsp;</span>
<span{% if modules_bottom.S_FIRST_ROW %} style="display: none;"{% endif %}><a href="{{ modules_bottom.U_MOVE_UP }}" data-ajax="b3p_move_module_up">{{ ICON_MOVE_UP }}</a>&nbsp;</span>
<span{% if not modules_bottom.S_LAST_ROW %} style="display: none;"{% endif %}>{{ ICON_MOVE_DOWN_DISABLED }}&nbsp;</span>
<span{% if modules_bottom.S_LAST_ROW %} style="display: none;"{% endif %}><a href="{{ modules_bottom.U_MOVE_DOWN }}" data-ajax="b3p_move_module_down">{{ ICON_MOVE_DOWN }}</a>&nbsp;</span>
<a href="{{ modules_bottom.U_EDIT }}">{{ ICON_EDIT }}</a> <a href="{{ modules_bottom.U_DELETE }}" data-ajax="b3p_delete_module">{{ ICON_DELETE }}</a>
</td>
</tr>
<!-- BEGINELSE -->
{% else %}
<tr>
<td class="row1" style="text-align: center;">{L_NO_MODULES}</td>
<td class="row1" style="text-align: center;">{{ lang('NO_MODULES') }}</td>
</tr>
<!-- END modules_bottom -->
{% endfor %}
</table>
<p class="quick">
<input class="button2" name="add[bottom]" type="submit" value="{L_ADD_MODULE}" />
<input class="button2" name="add[bottom]" type="submit" value="{{ lang('ADD_MODULE') }}" />
</p>
{S_FORM_TOKEN}
{{ S_FORM_TOKEN }}
</fieldset>
</form>
<!-- ENDIF -->
{% endif %}
<!-- INCLUDEJS portal/ajax.js -->
{% INCLUDEJS 'portal/ajax.js' %}
<!-- INCLUDE overall_footer.html -->
<!-- ENDIF -->
{% INCLUDE 'overall_footer.html' %}
{% endif %}

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
{% INCLUDE 'overall_header.html' %}
<!-- INCLUDEJS portal/acp_editor.js -->
{% INCLUDEJS 'portal/acp_editor.js' %}
<script type="text/javascript">
// <![CDATA[
/**
@@ -29,28 +29,28 @@ var upload = false;
// Define the bbCode tags
var bbcode = new Array();
var bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[flash=]', '[/flash]','[size=]','[/size]'<!-- BEGIN custom_tags -->, {custom_tags.BBCODE_NAME}<!-- END custom_tags -->);
var bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[flash=]', '[/flash]','[size=]','[/size]'{% for custom_tags in loops.custom_tags %}, {{ custom_tags.BBCODE_NAME }}{% endfor %});
var imageTag = false;
// Helpline messages
var help_line = {
b: '{LA_BBCODE_B_HELP}',
i: '{LA_BBCODE_I_HELP}',
u: '{LA_BBCODE_U_HELP}',
q: '{LA_BBCODE_Q_HELP}',
c: '{LA_BBCODE_C_HELP}',
l: '{LA_BBCODE_L_HELP}',
o: '{LA_BBCODE_O_HELP}',
p: '{LA_BBCODE_P_HELP}',
w: '{LA_BBCODE_W_HELP}',
a: '{LA_BBCODE_A_HELP}',
s: '{LA_BBCODE_S_HELP}',
f: '{LA_BBCODE_F_HELP}',
e: '{LA_BBCODE_E_HELP}',
d: '{LA_BBCODE_D_HELP}'
<!-- BEGIN custom_tags -->
,cb_{custom_tags.BBCODE_ID}: '{custom_tags.A_BBCODE_HELPLINE}'
<!-- END custom_tags -->
b: '{{ lang('BBCODE_B_HELP')|escape('js') }}',
i: '{{ lang('BBCODE_I_HELP')|escape('js') }}',
u: '{{ lang('BBCODE_U_HELP')|escape('js') }}',
q: '{{ lang('BBCODE_Q_HELP')|escape('js') }}',
c: '{{ lang('BBCODE_C_HELP')|escape('js') }}',
l: '{{ lang('BBCODE_L_HELP')|escape('js') }}',
o: '{{ lang('BBCODE_O_HELP')|escape('js') }}',
p: '{{ lang('BBCODE_P_HELP')|escape('js') }}',
w: '{{ lang('BBCODE_W_HELP')|escape('js') }}',
a: '{{ lang('BBCODE_A_HELP')|escape('js') }}',
s: '{{ lang('BBCODE_S_HELP')|escape('js') }}',
f: '{{ lang('BBCODE_F_HELP')|escape('js') }}',
e: '{{ lang('BBCODE_E_HELP')|escape('js') }}',
d: '{{ lang('BBCODE_D_HELP')|escape('js') }}'
{% for custom_tags in loops.custom_tags %}
,cb_{{ custom_tags.BBCODE_ID }}: '{{ custom_tags.A_BBCODE_HELPLINE }}'
{% endfor %}
}
function change_palette()
@@ -60,11 +60,11 @@ function change_palette()
if (e.style.display == 'block')
{
document.getElementById('bbpalette').value = '{LA_FONT_COLOR_HIDE}';
document.getElementById('bbpalette').value = '{{ lang('FONT_COLOR_HIDE')|escape('js') }}';
}
else
{
document.getElementById('bbpalette').value = '{LA_FONT_COLOR}';
document.getElementById('bbpalette').value = '{{ lang('FONT_COLOR')|escape('js') }}';
}
}
@@ -73,83 +73,91 @@ function change_palette()
<a name="maincontent"></a>
<h1>{L_TITLE}</h1>
<h1>{{ lang('TITLE') }}</h1>
<p>{L_TITLE_EXPLAIN}</p>
<p>{{ lang('TITLE_EXPLAIN') }}</p>
<!-- IF S_ERROR -->
{% if S_ERROR %}
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{ERROR_MSG}</p>
<h3>{{ lang('WARNING') }}</h3>
<p>{{ ERROR_MSG }}</p>
</div>
<!-- ENDIF -->
<form id="acp_portal_config" method="post" action="{B3P_U_ACTION}">
<!-- IF SHOW_MODULE_OPTIONS -->
{% endif %}
<form id="acp_portal_config" method="post" action="{{ B3P_U_ACTION }}">
{% if SHOW_MODULE_OPTIONS %}
<fieldset>
<legend>{L_MODULE_OPTIONS}</legend>
<legend>{{ lang('MODULE_OPTIONS') }}</legend>
<dl>
<dt><label for="module_name">{L_MODULE_NAME}{L_COLON}</label><br /><span>{L_MODULE_NAME_EXP}</span></dt>
<dd><input id="module_name" type="text" value="{MODULE_NAME}" name="module_name" maxlength="255" size="64" /></dd>
<dt><label for="module_name">{{ lang('MODULE_NAME') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_NAME_EXP') }}</span></dt>
<dd><input id="module_name" type="text" value="{{ MODULE_NAME }}" name="module_name" maxlength="255" size="64" /></dd>
</dl>
<!-- IF MODULE_SHOW_IMAGE -->
{% if MODULE_SHOW_IMAGE %}
<dl>
<dt><label for="module_image">{L_MODULE_IMAGE}{L_COLON}</label><br /><span>{L_MODULE_IMAGE_EXP}</span></dt>
<dd><input id="module_image" type="text" value="{MODULE_IMAGE}" name="module_image" maxlength="255" size="64" /></dd>
<!-- IF MODULE_IMAGE_SRC --><dd><img src="{MODULE_IMAGE_SRC}" alt="{L_MODULE_IMAGE}" /></dd><!-- ENDIF -->
<dt><label for="module_image">{{ lang('MODULE_IMAGE') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_IMAGE_EXP') }}</span></dt>
<dd><input id="module_image" type="text" value="{{ MODULE_IMAGE }}" name="module_image" maxlength="255" size="64" /></dd>
{% if MODULE_IMAGE_SRC %}<dd><img src="{{ MODULE_IMAGE_SRC }}" alt="{{ lang('MODULE_IMAGE') }}" /></dd>{% endif %}
</dl>
<!-- IF MODULE_IMAGE_SRC -->
{% if MODULE_IMAGE_SRC %}
<dl>
<dt><label for="module_img_width">{L_MODULE_IMAGE_WIDTH}{L_COLON}</label><br /><span>{L_MODULE_IMAGE_WIDTH_EXP}</span></dt>
<dd><input id="module_img_width" type="text" value="{MODULE_IMAGE_WIDTH}" name="module_img_width" maxlength="3" size="3" />px</dd>
<dt><label for="module_img_width">{{ lang('MODULE_IMAGE_WIDTH') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_IMAGE_WIDTH_EXP') }}</span></dt>
<dd><input id="module_img_width" type="number" value="{{ MODULE_IMAGE_WIDTH }}" name="module_img_width" min="0" />&nbsp;{{ lang('PIXEL') }}</dd>
</dl>
<dl>
<dt><label for="module_img_height">{L_MODULE_IMAGE_HEIGHT}{L_COLON}</label><br /><span>{L_MODULE_IMAGE_HEIGHT_EXP}</span></dt>
<dd><input id="module_img_height" type="text" value="{MODULE_IMAGE_HEIGHT}" name="module_img_height" maxlength="3" size="3" />px</dd>
<dt><label for="module_img_height">{{ lang('MODULE_IMAGE_HEIGHT') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_IMAGE_HEIGHT_EXP') }}</span></dt>
<dd><input id="module_img_height" type="number" value="{{ MODULE_IMAGE_HEIGHT }}" name="module_img_height" min="0" />&nbsp;{{ lang('PIXEL') }}</dd>
</dl>
<!-- ENDIF -->
<!-- ENDIF -->
{% endif %}
<dl>
<dt><label for="module_reset">{L_MODULE_RESET}{L_COLON}</label><br /><span style="color: #BC2A4D;">{L_MODULE_RESET_EXP}</span></dt>
<dt><label for="module_fa">{{ lang('MODULE_FA') }}{{ lang('COLON') }}</label><br/><span>{{ lang('MODULE_FA_EXP') }}</span></dt>
<dd><input id="module_fa" type="text" value="{{ MODULE_FA }}" name="module_fa" maxlength="255" size="64"/></dd>
</dl>
<dl>
<dt><label for="module_fa_size">{{ lang('MODULE_FA_SIZE') }}{{ lang('COLON') }}</label><br/><span>{{ lang('MODULE_FA_SIZE_EXP') }}</span></dt>
<dd><input id="module_fa_size" type="number" value="{{ MODULE_FA_SIZE }}" name="module_fa_size" min="0"/>&nbsp;{{ lang('PIXEL') }}</dd>
</dl>
{% endif %}
<dl>
<dt><label for="module_reset">{{ lang('MODULE_RESET') }}{{ lang('COLON') }}</label><br /><span style="color: #BC2A4D;">{{ lang('MODULE_RESET_EXP') }}</span></dt>
<dd><input id="module_reset" type="checkbox" value="1" name="module_reset" /></dd>
</dl>
<dl>
<dt><label for="module_status">{L_MODULE_STATUS}{L_COLON}</label></dt>
<dt><label for="module_status">{{ lang('MODULE_STATUS') }}{{ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" class="radio" name="module_status" value="1" id="module_status"<!-- IF MODULE_ENABLED --> checked="checked"<!-- ENDIF --> />{L_YES}</label>
<label><input type="radio" class="radio" name="module_status" value="0"<!-- IF not MODULE_ENABLED --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" class="radio" name="module_status" value="1" id="module_status"{% if MODULE_ENABLED %} checked="checked"{% endif %} />{{ lang('YES') }}</label>
<label><input type="radio" class="radio" name="module_status" value="0"{% if not MODULE_ENABLED %} checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<!-- IF .permission_setting -->
{% if loops.permission_setting|length %}
<dl>
<dt><label for="permission-setting">{L_MODULE_PERMISSIONS}{L_COLON}</label><br /><span>{L_MODULE_PERMISSIONS_EXP}</span></dt>
<dt><label for="permission-setting">{{ lang('MODULE_PERMISSIONS') }}{{ lang('COLON') }}</label><br /><span>{{ lang('MODULE_PERMISSIONS_EXP') }}</span></dt>
<dd>
<select id="permission-setting" size="10" multiple="multiple" name="permission-setting[]">
<!-- BEGIN permission_setting -->
<option value="{permission_setting.GROUP_ID}"<!-- IF permission_setting.SELECTED -->selected="selected"<!-- ENDIF -->>{permission_setting.GROUP_NAME}</option>
<!-- END permission_setting -->
{% for permission_setting in loops.permission_setting %}
<option value="{{ permission_setting.GROUP_ID }}"{% if permission_setting.SELECTED %}selected="selected"{% endif %}>{{ permission_setting.GROUP_NAME }}</option>
{% endfor %}
</select>
</dd>
</dl>
<!-- ENDIF -->
{% endif %}
</fieldset>
<!-- ENDIF -->
<!-- IF S_PREVIEW -->
{% endif %}
{% if S_PREVIEW %}
<fieldset>
<legend>{L_ACP_PORTAL_WELCOME_PREVIEW}</legend>
<legend>{{ lang('ACP_PORTAL_WELCOME_PREVIEW') }}</legend>
<dl>
<dt style="border: none; width: 100%;">
{PREVIEW_TEXT}
{{ PREVIEW_TEXT }}
</dt>
</dl>
</fieldset>
<!-- ENDIF -->
{% endif %}
<fieldset>
<legend>{L_PORTAL_WELCOME}</legend>
<legend>{{ lang('PORTAL_WELCOME') }}</legend>
<dl><dt style="display: none;"></dt>
<dd>
<div id="colour_palette" style="display: none;">
<dl style="clear: left;">
<dt style="border: none;"><label>{L_FONT_COLOR}{L_COLON}</label></dt>
<dt style="border: none;"><label>{{ lang('FONT_COLOR') }}{{ lang('COLON') }}</label></dt>
<dd></dd>
</dl>
<dl style="clear: left;">
@@ -158,63 +166,63 @@ function change_palette()
</dl>
</div>
<div id="format-buttons">
<input type="button" class="button2" accesskey="b" name="addbbcode0" value=" B " style="font-weight:bold; width: 30px" onclick="bbstyle(0)" title="{L_BBCODE_B_HELP}" />
<input type="button" class="button2" accesskey="i" name="addbbcode2" value=" i " style="font-style:italic; width: 30px" onclick="bbstyle(2)" title="{L_BBCODE_I_HELP}" />
<input type="button" class="button2" accesskey="u" name="addbbcode4" value=" u " style="text-decoration: underline; width: 30px" onclick="bbstyle(4)" title="{L_BBCODE_U_HELP}" />
<!-- IF S_BBCODE_QUOTE -->
<input type="button" class="button2" accesskey="q" name="addbbcode6" value="Quote" style="width: 50px" onclick="bbstyle(6)" title="{L_BBCODE_Q_HELP}" />
<!-- ENDIF -->
<input type="button" class="button2" accesskey="c" name="addbbcode8" value="Code" style="width: 40px" onclick="bbstyle(8)" title="{L_BBCODE_C_HELP}" />
<input type="button" class="button2" accesskey="l" name="addbbcode10" value="List" style="width: 40px" onclick="bbstyle(10)" title="{L_BBCODE_L_HELP}" />
<input type="button" class="button2" accesskey="o" name="addbbcode12" value="List=" style="width: 40px" onclick="bbstyle(12)" title="{L_BBCODE_O_HELP}" />
<input type="button" class="button2" accesskey="t" name="addlitsitem" value="[*]" style="width: 40px" onclick="bbstyle(-1)" title="{L_BBCODE_LISTITEM_HELP}" />
<!-- IF S_BBCODE_IMG -->
<input type="button" class="button2" accesskey="p" name="addbbcode14" value="Img" style="width: 40px" onclick="bbstyle(14)" title="{L_BBCODE_P_HELP}" />
<!-- ENDIF -->
<!-- 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}" />
<!-- ENDIF -->
<!-- IF S_BBCODE_FLASH -->
<input type="button" class="button2" accesskey="d" name="addbbcode18" value="Flash" onclick="bbstyle(18)" title="{L_BBCODE_D_HELP}" />
<!-- 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}">
<option value="50">{L_FONT_TINY}</option>
<option value="85">{L_FONT_SMALL}</option>
<option value="100" selected="selected">{L_FONT_NORMAL}</option>
<!-- IF not MAX_FONT_SIZE or MAX_FONT_SIZE >= 150 -->
<option value="150">{L_FONT_LARGE}</option>
<!-- IF not MAX_FONT_SIZE or MAX_FONT_SIZE >= 200 -->
<option value="200">{L_FONT_HUGE}</option>
<!-- ENDIF -->
<!-- ENDIF -->
<input type="button" class="button2" accesskey="b" name="addbbcode0" value=" B " style="font-weight:bold; width: 30px" onclick="bbstyle(0)" title="{{ lang('BBCODE_B_HELP') }}" />
<input type="button" class="button2" accesskey="i" name="addbbcode2" value=" i " style="font-style:italic; width: 30px" onclick="bbstyle(2)" title="{{ lang('BBCODE_I_HELP') }}" />
<input type="button" class="button2" accesskey="u" name="addbbcode4" value=" u " style="text-decoration: underline; width: 30px" onclick="bbstyle(4)" title="{{ lang('BBCODE_U_HELP') }}" />
{% if S_BBCODE_QUOTE %}
<input type="button" class="button2" accesskey="q" name="addbbcode6" value="Quote" style="width: 50px" onclick="bbstyle(6)" title="{{ lang('BBCODE_Q_HELP') }}" />
{% endif %}
<input type="button" class="button2" accesskey="c" name="addbbcode8" value="Code" style="width: 40px" onclick="bbstyle(8)" title="{{ lang('BBCODE_C_HELP') }}" />
<input type="button" class="button2" accesskey="l" name="addbbcode10" value="List" style="width: 40px" onclick="bbstyle(10)" title="{{ lang('BBCODE_L_HELP') }}" />
<input type="button" class="button2" accesskey="o" name="addbbcode12" value="List=" style="width: 40px" onclick="bbstyle(12)" title="{{ lang('BBCODE_O_HELP') }}" />
<input type="button" class="button2" accesskey="t" name="addlitsitem" value="[*]" style="width: 40px" onclick="bbstyle(-1)" title="{{ lang('BBCODE_LISTITEM_HELP') }}" />
{% if S_BBCODE_IMG %}
<input type="button" class="button2" accesskey="p" name="addbbcode14" value="Img" style="width: 40px" onclick="bbstyle(14)" title="{{ lang('BBCODE_P_HELP') }}" />
{% endif %}
{% 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="{{ lang('BBCODE_W_HELP') }}" />
{% endif %}
{% if S_BBCODE_FLASH %}
<input type="button" class="button2" accesskey="d" name="addbbcode18" value="Flash" onclick="bbstyle(18)" title="{{ lang('BBCODE_D_HELP') }}" />
{% endif %}
<select name="addbbcode20" onchange="bbfontstyle('[size=' + this.form.addbbcode20.options[this.form.addbbcode20.selectedIndex].value + ']', '[/size]');this.form.addbbcode20.selectedIndex = 2;" title="{{ lang('BBCODE_F_HELP') }}">
<option value="50">{{ lang('FONT_TINY') }}</option>
<option value="85">{{ lang('FONT_SMALL') }}</option>
<option value="100" selected="selected">{{ lang('FONT_NORMAL') }}</option>
{% if not MAX_FONT_SIZE or MAX_FONT_SIZE >= 150 %}
<option value="150">{{ lang('FONT_LARGE') }}</option>
{% if not MAX_FONT_SIZE or MAX_FONT_SIZE >= 200 %}
<option value="200">{{ lang('FONT_HUGE') }}</option>
{% endif %}
{% endif %}
</select>
<input type="button" class="button2" name="bbpalette" id="bbpalette" value="{L_FONT_COLOR}" onclick="change_palette();" title="{L_BBCODE_S_HELP}" />
<!-- BEGIN custom_tags -->
<input type="button" class="button2" name="addbbcode{custom_tags.BBCODE_ID}" value="{custom_tags.BBCODE_TAG}" onclick="bbstyle({custom_tags.BBCODE_ID})" title="{custom_tags.BBCODE_HELPLINE}" />
<!-- END custom_tags -->
<input type="button" class="button2" name="bbpalette" id="bbpalette" value="{{ lang('FONT_COLOR') }}" onclick="change_palette();" title="{{ lang('BBCODE_S_HELP') }}" />
{% for custom_tags in loops.custom_tags %}
<input type="button" class="button2" name="addbbcode{{ custom_tags.BBCODE_ID }}" value="{{ custom_tags.BBCODE_TAG }}" onclick="bbstyle({{ custom_tags.BBCODE_ID }})" title="{{ custom_tags.BBCODE_HELPLINE }}" />
{% endfor %}
</div>
</dd>
</dl>
<dl>
<dt>
<label for="welcome_message">{L_ACP_PORTAL_WELCOME_MESSAGE}{L_COLON}</label><br />
<span>{L_ACP_PORTAL_WELCOME_MESSAGE_EXP}</span>
<label for="welcome_message">{{ lang('ACP_PORTAL_WELCOME_MESSAGE') }}{{ lang('COLON') }}</label><br />
<span>{{ lang('ACP_PORTAL_WELCOME_MESSAGE_EXP') }}</span>
</dt>
<dd><textarea name="welcome_message" id="welcome_message" cols="6" rows="12">{WELCOME_MESSAGE}</textarea></dd>
<dd><textarea name="welcome_message" id="welcome_message" cols="6" rows="12">{{ WELCOME_MESSAGE }}</textarea></dd>
</dl>
<!-- IF S_AUTH -->
<!-- BEGIN auth_tpl -->
{auth_tpl.TPL}
<!-- END auth_tpl -->
<!-- ENDIF -->
{% if S_AUTH %}
{% for auth_tpl in loops.auth_tpl %}
{{ auth_tpl.TPL }}
{% endfor %}
{% endif %}
<p class="submit-buttons">
<input class="button2" type="submit" id="preview" name="preview" value="{L_PREVIEW}" />&nbsp;
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
<input class="button2" type="submit" id="preview" name="preview" value="{{ lang('PREVIEW') }}" />&nbsp;
<input class="button1" type="submit" id="submit" name="submit" value="{{ lang('SUBMIT') }}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{{ lang('RESET') }}" />
</p>
{S_FORM_TOKEN}
{{ S_FORM_TOKEN }}
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->
{% INCLUDE 'overall_footer.html' %}

229
build.xml
View File

@@ -14,24 +14,23 @@
${dir}/ is the folder of your extension, e.g. ext/nickvergessen/newspage/
-->
<delete dir="${dir}/tests" />
<delete dir="${dir}/.github" />
<delete dir="${dir}/travis" />
<delete dir="${dir}/vendor/nickvergessen/phpbb-tool-trimmessage/src/Nickvergessen/TrimMessage/Tests" />
<delete dir="${dir}/vendor/nickvergessen/phpbb-tool-trimmessage/tests" />
<delete dir="${dir}/vendor/marc1706/phpbb-text-shortener/.github" />
<delete dir="${dir}/language/ar" />
<delete dir="${dir}/language/es" />
<delete dir="${dir}/language/fr" />
<delete dir="${dir}/language/it" />
<delete dir="${dir}/language/nl" />
<delete file="${dir}/.gitignore" />
<delete file="${dir}/.gitattributes" />
<delete file="${dir}/.travis.yml" />
<delete file="${dir}/build.xml" />
<delete file="${dir}/composer.lock" />
<delete file="${dir}/composer.phar" />
<delete file="${dir}/phpunit.xml.dist" />
<delete file="${dir}/README.md" />
<delete file="${dir}/vendor/nickvergessen/phpbb-tool-trimmessage/composer.lock" />
<delete file="${dir}/vendor/nickvergessen/phpbb-tool-trimmessage/composer.phar" />
<delete file="${dir}/vendor/nickvergessen/phpbb-tool-trimmessage/phpunit.xml" />
<delete file="${dir}/vendor/nickvergessen/phpbb-tool-trimmessage/README.md" />
<delete file="${dir}/vendor/nickvergessen/phpbb-tool-trimmessage/.gitignore" />
<delete file="${dir}/vendor/nickvergessen/phpbb-tool-trimmessage/.travis.yml" />
</target>
<!--
@@ -39,12 +38,12 @@
-->
<property name="version" value="HEAD" override="true" />
<property name="package.version" value="HEAD" />
<property name="package.version" value="HEAD" />
<property name="build-directory" value="build" override="true" />
<property name="package-directory" value="${build-directory}/package/${vendor-name}/${extension-name}" />
<property name="phpbb-root" value="${build-directory}/../../../../../" />
<property name="clover-path" value="${build-directory}/logs/clover.xml" />
<property name="coverage-html-path" value="${build-directory}/coverage" />
<property name="clover-path" value="${build-directory}/logs/clover.xml" />
<property name="coverage-html-path" value="${build-directory}/coverage" />
<!-- These are the main targets which you will probably want to use -->
<target name="all" depends="prepare-structure,package" />
@@ -54,7 +53,7 @@
-->
<target name="clean">
<delete dir="${build-directory}" />
<mkdir dir="${build-directory}" />
<mkdir dir="${build-directory}" />
</target>
<target name="composer">
@@ -63,115 +62,115 @@
passthru="true" />
</target>
<target name="prepare-tests" depends="clean,composer">
<if>
<available property="phpbb-is-available" file="${phpbb-root}/phpBB/vendor/bin/phpunit" type="file" />
<then>
<echo msg="phpBB is already set up." />
</then>
<else>
<!-- Move Board3 Portal and set up phpBB -->
<exec command="CURRENT_BUILD_REV=$(git rev-parse --abbrev-ref HEAD)" passthru="true" />
<exec command="echo $GIT_BRANCH" passthru="true" />
<exec command="git clone -v --progress https://github.com/phpbb/phpbb.git phpbb" passthru="true" />
<exec dir="${build-directory}/../phpbb" command="git checkout 3.2.x" passthru="true" />
<exec dir="${build-directory}/../phpbb/phpBB" command="php ../composer.phar install" passthru="true" />
<mkdir dir="phpbb/phpBB/ext/board3" />
<exec dir="${build-directory}/../phpbb/phpBB/ext/board3" command="git clone https://github.com/board3/Board3-Portal.git portal" passthru="true" />
<exec dir="${build-directory}/../phpbb/phpBB/ext/board3/portal" command="git checkout $GIT_BRANCH" passthru="true" />
<exec dir="${build-directory}/../phpbb/phpBB/ext/board3/portal" command="php composer.phar install" passthru="true" />
<property name="phpbb-root" value="${build-directory}/../phpbb" override="true" />
<property name="clover-path" value="../build/logs/clover.xml" override="true" />
<property name="coverage-html-path" value="../build/coverage" override="true" />
<exec dir="${build-directory}/../phpbb" command="cp ../../test_config_22x.php tests/test_config.php" passthru="true" />
<exec dir="${build-directory}/../phpbb" command="chmod 777 phpBB/cache" passthru="true" />
<exec dir="${build-directory}/../phpbb" command="mkdir phpBB/cache/test" passthru="true" />
<exec dir="${build-directory}/../phpbb" command="chmod 777 phpBB/cache/test" passthru="true" />
<exec dir="${build-directory}/../phpbb" command="chmod 777 phpBB/files" passthru="true" />
<exec dir="${build-directory}/../phpbb" command="chmod 777 phpBB/store" passthru="true" />
<exec dir="${build-directory}/../phpbb" command="chmod 777 phpBB/images/avatars/upload" passthru="true" />
</else>
</if>
<if>
<equals arg1="$JENKINS_URL" arg2="" />
<then>
<echo msg="JENKINS_URL is not set" />
</then>
<else>
<exec dir="${build-directory}/../phpbb/phpBB/ext/board3/portal" command="wget https://phar.phpunit.de/phploc.phar" passthru="true" />
<if>
<available property="logs-dir-available" file="${build-directory}/logs" type="dir" />
<then>
<echo msg="Logs dir already set up." />
</then>
<else>
<mkdir dir="${build-directory}/logs" />
<exec dir="${build-directory}/logs" command="touch phploc.csv" />
</else>
</if>
<exec dir="${build-directory}/../phpbb/phpBB/ext/board3" command="php portal/phploc.phar --exclude=vendor --exclude=travis --log-csv ../../../../build/logs/phploc.csv portal/" passthru="true" />
<exec dir="${build-directory}/../phpbb/phpBB/ext/board3/portal" command="rm phploc.phar" passthru="true" />
</else>
</if>
<if>
<equals arg1="$BUILD_NUMBER" arg2="" />
<then>
<echo msg="BUILD_NUMBER is not available" />
</then>
<else>
<property environment="env" />
<echo>Build number is ${env.BUILD_NUMBER}</echo>
<property name="package.version" value="${env.BUILD_NUMBER}" override="true" />
</else>
</if>
</target>
<target name="prepare-tests" depends="clean,composer">
<if>
<available property="phpbb-is-available" file="${phpbb-root}/phpBB/vendor/bin/phpunit" type="file" />
<then>
<echo msg="phpBB is already set up." />
</then>
<else>
<!-- Move Board3 Portal and set up phpBB -->
<exec command="CURRENT_BUILD_REV=$(git rev-parse --abbrev-ref HEAD)" passthru="true" />
<exec command="echo $GIT_BRANCH" passthru="true" />
<exec command="git clone -v --progress https://github.com/phpbb/phpbb.git phpbb" passthru="true" />
<exec dir="${build-directory}/../phpbb" command="git checkout 3.3.x" passthru="true" />
<exec dir="${build-directory}/../phpbb/phpBB" command="php ../composer.phar install" passthru="true" />
<mkdir dir="phpbb/phpBB/ext/board3" />
<exec dir="${build-directory}/../phpbb/phpBB/ext/board3" command="git clone https://github.com/board3/Board3-Portal.git portal" passthru="true" />
<exec dir="${build-directory}/../phpbb/phpBB/ext/board3/portal" command="git checkout $GIT_BRANCH" passthru="true" />
<exec dir="${build-directory}/../phpbb/phpBB/ext/board3/portal" command="php composer.phar install" passthru="true" />
<property name="phpbb-root" value="${build-directory}/../phpbb" override="true" />
<property name="clover-path" value="../build/logs/clover.xml" override="true" />
<property name="coverage-html-path" value="../build/coverage" override="true" />
<exec dir="${build-directory}/../phpbb" command="cp ../../test_config_22x.php tests/test_config.php" passthru="true" />
<exec dir="${build-directory}/../phpbb" command="chmod 777 phpBB/cache" passthru="true" />
<exec dir="${build-directory}/../phpbb" command="mkdir phpBB/cache/test" passthru="true" />
<exec dir="${build-directory}/../phpbb" command="chmod 777 phpBB/cache/test" passthru="true" />
<exec dir="${build-directory}/../phpbb" command="chmod 777 phpBB/files" passthru="true" />
<exec dir="${build-directory}/../phpbb" command="chmod 777 phpBB/store" passthru="true" />
<exec dir="${build-directory}/../phpbb" command="chmod 777 phpBB/images/avatars/upload" passthru="true" />
</else>
</if>
<if>
<equals arg1="$JENKINS_URL" arg2="" />
<then>
<echo msg="JENKINS_URL is not set" />
</then>
<else>
<exec dir="${build-directory}/../phpbb/phpBB/ext/board3/portal" command="wget https://phar.phpunit.de/phploc.phar" passthru="true" />
<if>
<available property="logs-dir-available" file="${build-directory}/logs" type="dir" />
<then>
<echo msg="Logs dir already set up." />
</then>
<else>
<mkdir dir="${build-directory}/logs" />
<exec dir="${build-directory}/logs" command="touch phploc.csv" />
</else>
</if>
<exec dir="${build-directory}/../phpbb/phpBB/ext/board3" command="php portal/phploc.phar --exclude=vendor --exclude=travis --log-csv ../../../../build/logs/phploc.csv portal/" passthru="true" />
<exec dir="${build-directory}/../phpbb/phpBB/ext/board3/portal" command="rm phploc.phar" passthru="true" />
</else>
</if>
<if>
<equals arg1="$BUILD_NUMBER" arg2="" />
<then>
<echo msg="BUILD_NUMBER is not available" />
</then>
<else>
<property environment="env" />
<echo>Build number is ${env.BUILD_NUMBER}</echo>
<property name="package.version" value="${env.BUILD_NUMBER}" override="true" />
</else>
</if>
</target>
<target name="test" depends="clean,composer,prepare-tests">
<if>
<available property="phpunit-available" file="phpbb/phpBB/vendor/bin/phpunit" type="file" />
<then>
<exec dir="${phpbb-root}"
command="phpBB/vendor/bin/phpunit
<if>
<available property="phpunit-available" file="phpbb/phpBB/vendor/bin/phpunit" type="file" />
<then>
<exec dir="${phpbb-root}"
command="phpBB/vendor/bin/phpunit
-c phpBB/ext/${vendor-name}/${extension-name}/ --coverage-clover=${clover-path} --coverage-html=${coverage-html-path}"
passthru="true" returnProperty="test.pass" />
<if>
<not>
<equals arg1="${test.pass}" arg2="0"/>
</not>
<then>
<fail msg="PHPUnit tests failed."/>
</then>
</if>
</then>
<else>
<echo msg="PHPUnit couldn't be found." />
</else>
</if>
passthru="true" returnProperty="test.pass" />
<if>
<not>
<equals arg1="${test.pass}" arg2="0"/>
</not>
<then>
<fail msg="PHPUnit tests failed."/>
</then>
</if>
</then>
<else>
<echo msg="PHPUnit couldn't be found." />
</else>
</if>
</target>
<target name="test-slow" depends="clean,composer">
<if>
<available property="phpunit-available" file="phpbb/phpBB/vendor/bin/phpunit" type="file" />
<then>
<exec dir="${phpbb-root}"
command="phpBB/vendor/bin/phpunit
-c phpBB/ext/${vendor-name}/${extension-name}/
--group slow"
passthru="true" />
<if>
<not>
<equals arg1="${test.pass}" arg2="0"/>
</not>
<then>
<fail msg="PHPUnit slow tests failed."/>
</then>
</if>
</then>
<else>
<echo msg="PHPUnit couldn't be found." />
</else>
</if>
<if>
<available property="phpunit-available" file="phpbb/phpBB/vendor/bin/phpunit" type="file" />
<then>
<exec dir="${phpbb-root}"
command="phpBB/vendor/bin/phpunit
-c phpBB/ext/${vendor-name}/${extension-name}/
--group slow"
passthru="true" />
<if>
<not>
<equals arg1="${test.pass}" arg2="0"/>
</not>
<then>
<fail msg="PHPUnit slow tests failed."/>
</then>
</if>
</then>
<else>
<echo msg="PHPUnit couldn't be found." />
</else>
</if>
</target>
<!--

View File

@@ -2,38 +2,46 @@
"name": "board3/portal",
"type": "phpbb-extension",
"description": "Adds a portal with several blocks to your forum. You can change the settings, move the blocks, add new blocks and more in the ACP.",
"homepage": "http://www.board3.de",
"version": "2.1.0",
"time": "2015-08-04 12:49:14",
"license": "GPL-2.0",
"homepage": "https://www.board3.de",
"version": "2.3.0",
"time": "2023-03-19 09:58:18",
"license": "GPL-2.0-only",
"authors": [{
"name": "Marc Alexander",
"email": "admin@m-a-styles.de",
"homepage": "http://www.m-a-styles.de",
"role": "Lead Developer"
},
"homepage": "https://www.m-a-styles.de",
"role": "Developer"
},
{
"name": "Joas Schilling",
"email": "nickvergessen@gmx.de",
"homepage": "http://mods.flying-bits.org",
"homepage": "https://www.schilljs.com/",
"role": "Former Developer"
},
{
"name": "Kirk",
"homepage": "https://reyno41.bplaced.net/phpbb/",
"role": "Developer"
}],
}
],
"require": {
"php": ">=5.3.9",
"marc1706/phpbb-text-shortener": "^0.1.0"
},
"require-dev": {
"phpbb/epv": "dev-master"
"php": ">=7.1.0,<8.3.0",
"marc1706/phpbb-text-shortener": "^0.3.0"
},
"extra": {
"display-name": "Board3 Portal",
"soft-require": {
"phpbb/phpbb": ">=3.1.5,<3.2.*@dev"
"phpbb/phpbb": ">=3.2.6,<3.4@dev"
},
"version-check": {
"host": "board3.de",
"directory": "/updatecheck",
"filename": "board3_portal.json"
"filename": "board3_portal.json",
"ssl": "true"
}
},
"config": {
"allow-plugins": {
"composer/installers": true
}
}
}

435
composer.lock generated
View File

@@ -1,32 +1,31 @@
{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"hash": "f79966a0c35657dc6831652d3a8b0f6e",
"content-hash": "eec8e152b8e3363ee143a27bf2481202",
"content-hash": "a9605bea31820bc73c4bd7d142cbba7c",
"packages": [
{
"name": "marc1706/phpbb-text-shortener",
"version": "v0.1.1",
"version": "v0.3.0",
"source": {
"type": "git",
"url": "https://github.com/marc1706/phpbb-text-shortener.git",
"reference": "3200fcfaf22f91d31cffcba475475e90bbe1d3bf"
"reference": "9f0e4a7ae1a203cc73697f95a4d3bd3f3ff14d69"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/marc1706/phpbb-text-shortener/zipball/3200fcfaf22f91d31cffcba475475e90bbe1d3bf",
"reference": "3200fcfaf22f91d31cffcba475475e90bbe1d3bf",
"url": "https://api.github.com/repos/marc1706/phpbb-text-shortener/zipball/9f0e4a7ae1a203cc73697f95a4d3bd3f3ff14d69",
"reference": "9f0e4a7ae1a203cc73697f95a4d3bd3f3ff14d69",
"shasum": ""
},
"require": {
"php": ">=5.4.0"
"php": ">=7.1.3"
},
"require-dev": {
"phpunit/phpunit": "4.*",
"symfony/yaml": "~2.8"
"phpunit/phpunit": "^7.0",
"symfony/yaml": "~3.4"
},
"type": "library",
"autoload": {
@@ -59,418 +58,22 @@
"post",
"shortening"
],
"time": "2017-02-11 17:30:06"
}
],
"packages-dev": [
{
"name": "gitonomy/gitlib",
"version": "v0.1.7",
"source": {
"type": "git",
"url": "https://github.com/gitonomy/gitlib.git",
"reference": "7a46107cfb8552b312101e0d5906e95d54d7ddc6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/gitonomy/gitlib/zipball/7a46107cfb8552b312101e0d5906e95d54d7ddc6",
"reference": "7a46107cfb8552b312101e0d5906e95d54d7ddc6",
"shasum": ""
},
"require": {
"symfony/process": "~2.4"
},
"require-dev": {
"psr/log": "~1"
},
"suggest": {
"psr/log": "Add some log"
},
"type": "library",
"autoload": {
"psr-0": {
"Gitonomy\\Git": [
"src/",
"tests/"
]
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Alexandre Salomé",
"email": "alexandre.salome@gmail.com",
"homepage": "http://alexandre-salome.fr"
},
{
"name": "Julien DIDIER",
"email": "genzo.wm@gmail.com",
"homepage": "http://www.jdidier.net"
}
],
"description": "Library for accessing git",
"homepage": "http://gitonomy.com",
"time": "2014-07-13 19:02:31"
},
{
"name": "nikic/php-parser",
"version": "v0.9.5",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
"reference": "ef70767475434bdb3615b43c327e2cae17ef12eb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/ef70767475434bdb3615b43c327e2cae17ef12eb",
"reference": "ef70767475434bdb3615b43c327e2cae17ef12eb",
"shasum": ""
},
"require": {
"ext-tokenizer": "*",
"php": ">=5.2"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "0.9-dev"
}
},
"autoload": {
"psr-0": {
"PHPParser": "lib/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Nikita Popov"
}
],
"description": "A PHP parser written in PHP",
"keywords": [
"parser",
"php"
],
"time": "2014-07-23 18:24:17"
},
{
"name": "phpbb/epv",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/phpbb/epv.git",
"reference": "75df9936ffbb8f05a1351cf622cf6f41c7d2d9f2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpbb/epv/zipball/87c89df9560431910fa9027a8129a9efac362ba4",
"reference": "75df9936ffbb8f05a1351cf622cf6f41c7d2d9f2",
"shasum": ""
},
"require": {
"gitonomy/gitlib": "0.1.*@dev",
"nikic/php-parser": "0.9.*@dev",
"php": ">=5.3.3",
"sensiolabs/ansi-to-html": "~1.1",
"symfony/console": ">=2.3.0",
"symfony/finder": ">=2.3.0",
"symfony/yaml": ">=2.3.0|>=2.4.0|>=2.5.0"
},
"require-dev": {
"phpunit/phpunit": "4.4.*",
"phpunit/phpunit-mock-objects": "2.3.*"
},
"bin": [
"src/EPV.php"
],
"type": "library",
"autoload": {
"psr-4": {
"Phpbb\\Epv\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"GPL-2.0"
],
"authors": [
{
"name": "Paul Sohier",
"email": "paul@phpbb.com"
}
],
"description": "A extension validator for phpBB extensions. Extensions are required to pass the validator when submitted to the extension database.",
"time": "2015-02-12 12:13:06"
},
{
"name": "sensiolabs/ansi-to-html",
"version": "v1.1.0",
"source": {
"type": "git",
"url": "https://github.com/sensiolabs/ansi-to-html.git",
"reference": "92d2ef7ffba5418be060d8ba8adaf7223d741f93"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sensiolabs/ansi-to-html/zipball/92d2ef7ffba5418be060d8ba8adaf7223d741f93",
"reference": "92d2ef7ffba5418be060d8ba8adaf7223d741f93",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"suggest": {
"twig/twig": "Provides nice templating features"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.1-dev"
}
},
"autoload": {
"psr-0": {
"SensioLabs\\AnsiConverter": "."
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "A library to convert a text with ANSI codes to HTML",
"time": "2014-08-01 14:02:39"
},
{
"name": "symfony/console",
"version": "v2.6.5",
"target-dir": "Symfony/Component/Console",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "53f86497ccd01677e22435cfb7262599450a90d1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/53f86497ccd01677e22435cfb7262599450a90d1",
"reference": "53f86497ccd01677e22435cfb7262599450a90d1",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"psr/log": "~1.0",
"symfony/event-dispatcher": "~2.1",
"symfony/phpunit-bridge": "~2.7",
"symfony/process": "~2.1"
},
"suggest": {
"psr/log": "For using the console logger",
"symfony/event-dispatcher": "",
"symfony/process": ""
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.6-dev"
}
},
"autoload": {
"psr-0": {
"Symfony\\Component\\Console\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Symfony Console Component",
"homepage": "http://symfony.com",
"time": "2015-03-13 17:37:22"
},
{
"name": "symfony/finder",
"version": "v2.6.5",
"target-dir": "Symfony/Component/Finder",
"source": {
"type": "git",
"url": "https://github.com/symfony/Finder.git",
"reference": "bebc7479c566fa4f14b9bcef9e32e719eabec74e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Finder/zipball/bebc7479c566fa4f14b9bcef9e32e719eabec74e",
"reference": "bebc7479c566fa4f14b9bcef9e32e719eabec74e",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"symfony/phpunit-bridge": "~2.7"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.6-dev"
}
},
"autoload": {
"psr-0": {
"Symfony\\Component\\Finder\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Symfony Finder Component",
"homepage": "http://symfony.com",
"time": "2015-03-12 10:28:44"
},
{
"name": "symfony/process",
"version": "v2.6.5",
"target-dir": "Symfony/Component/Process",
"source": {
"type": "git",
"url": "https://github.com/symfony/Process.git",
"reference": "4d717f34f3d1d6ab30fbe79f7132960a27f4a0dc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Process/zipball/4d717f34f3d1d6ab30fbe79f7132960a27f4a0dc",
"reference": "4d717f34f3d1d6ab30fbe79f7132960a27f4a0dc",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"symfony/phpunit-bridge": "~2.7"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.6-dev"
}
},
"autoload": {
"psr-0": {
"Symfony\\Component\\Process\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Symfony Process Component",
"homepage": "http://symfony.com",
"time": "2015-03-12 10:28:44"
},
{
"name": "symfony/yaml",
"version": "v2.6.5",
"target-dir": "Symfony/Component/Yaml",
"source": {
"type": "git",
"url": "https://github.com/symfony/Yaml.git",
"reference": "0cd8e72071e46e15fc072270ae39ea1b66b10a9d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Yaml/zipball/0cd8e72071e46e15fc072270ae39ea1b66b10a9d",
"reference": "0cd8e72071e46e15fc072270ae39ea1b66b10a9d",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"symfony/phpunit-bridge": "~2.7"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.6-dev"
}
},
"autoload": {
"psr-0": {
"Symfony\\Component\\Yaml\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Symfony Yaml Component",
"homepage": "http://symfony.com",
"time": "2015-03-12 10:28:44"
"support": {
"issues": "https://github.com/marc1706/phpbb-text-shortener/issues",
"source": "https://github.com/marc1706/phpbb-text-shortener/tree/v0.3.0"
},
"time": "2023-02-07T19:46:11+00:00"
}
],
"packages-dev": [],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": {
"phpbb/epv": 20
},
"stability-flags": [],
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
"php": ">=5.3.9"
"php": ">=7.1.0,<8.3.0"
},
"platform-dev": []
"platform-dev": [],
"plugin-api-version": "1.1.0"
}

Binary file not shown.

View File

@@ -223,6 +223,8 @@ services:
- '@dbal.conn'
- '@template'
- '@user'
- '%core.root_path%'
- '%core.php_ext%'
tags:
- { name: board3.portal.module }

View File

@@ -1,6 +1,7 @@
board3_portal_controller:
path: /portal
defaults: { _controller: board3.portal.main:handle }
defaults:
_controller: 'board3.portal.main:handle'
# This is currently not supported yet
# board3_portal_pages_controller:
@@ -10,4 +11,5 @@ board3_portal_controller:
# Redirect to portal by default
board3_portal_redirect_controller:
path: /
defaults: { _controller: board3.portal.main:handle }
defaults:
_controller: 'board3.portal.main:handle'

View File

@@ -2,9 +2,8 @@ imports:
- { resource: modules.yml }
parameters:
board3.portal.config.table: %core.table_prefix%portal_config
board3.portal.modules.table: %core.table_prefix%portal_modules
board3.portal.config.table: '%core.table_prefix%portal_config'
board3.portal.modules.table: '%core.table_prefix%portal_modules'
services:
board3.portal.main:
class: board3\portal\controller\main
@@ -52,7 +51,9 @@ services:
- '@auth'
- '@config'
- '@controller.helper'
- '@dbal.conn'
- '@request'
- '%tables.styles%'
board3.portal.columns:
class: board3\portal\portal\columns

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
@@ -230,6 +230,9 @@ class helper
*/
public function assign_module_vars($row, $template_module)
{
$fa_styles = json_decode($this->config['board3_portal_fa_styles']);
$use_fa = !empty($fa_styles) && in_array($this->user->style['style_name'], $fa_styles);
if (is_array($template_module))
{
$this->template->assign_block_vars('modules_' . $this->portal_columns->number_to_string($row['module_column']), array(
@@ -240,6 +243,9 @@ class helper
'MODULE_ID' => $row['module_id'],
'IMAGE_WIDTH' => $row['module_image_width'],
'IMAGE_HEIGHT' => $row['module_image_height'],
'FA_ICON' => isset($row['module_fa_icon']) ? utf8_htmlspecialchars($row['module_fa_icon']) : '',
'FA_SIZE' => $row['module_fa_size'] ?? '',
'FA_ENABLED' => $use_fa,
));
}
else
@@ -251,6 +257,9 @@ class helper
'IMAGE_HEIGHT' => $row['module_image_height'],
'MODULE_ID' => $row['module_id'],
'TITLE' => (isset($this->user->lang[$row['module_name']])) ? $this->user->lang[$row['module_name']] : utf8_normalize_nfc($row['module_name']),
'FA_ICON' => isset($row['module_fa_icon']) ? utf8_htmlspecialchars($row['module_fa_icon']) : '',
'FA_SIZE' => $row['module_fa_size'] ?? '',
'FA_ENABLED' => $use_fa,
));
}
}
@@ -266,7 +275,7 @@ class helper
$this->check_permission();
// Load language file
$this->user->add_lang_ext('board3/portal', 'portal');
$this->language->add_lang('portal', 'board3/portal');
// Obtain portal config
obtain_portal_config();

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
@@ -117,8 +117,11 @@ class main
$this->includes_path = $phpbb_root_path . 'ext/board3/portal/includes/';
$this->root_path = $phpbb_root_path . 'ext/board3/portal/';
$portal_root_path = $this->root_path;
define('PORTAL_MODULES_TABLE', $modules_table);
define('PORTAL_CONFIG_TABLE', $config_table);
if (!defined('PORTAL_MODULES_TABLE'))
{
define('PORTAL_MODULES_TABLE', $modules_table);
define('PORTAL_CONFIG_TABLE', $config_table);
}
if (!function_exists('obtain_portal_config'))
{

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1
* @copyright (c) 2014 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
@@ -66,7 +66,7 @@ class listener implements EventSubscriberInterface
*
* @return array
*/
static public function getSubscribedEvents()
public static function getSubscribedEvents()
{
return array(
'core.user_setup' => 'load_portal_language',
@@ -112,13 +112,18 @@ class listener implements EventSubscriberInterface
*
* @return null
*/
public function add_portal_link()
public function add_portal_link($event)
{
if (!$this->has_portal_access())
{
return;
}
if ($this->config['board3_show_all_pages'])
{
$event['display_online_list'] = true;
}
if (strpos($this->controller_helper->get_current_url(), '/portal') === false)
{
$portal_link = $this->controller_helper->route('board3_portal_controller');

63
ext.php Normal file
View File

@@ -0,0 +1,63 @@
<?php
/**
*
* @package Board3 Portal v2.3
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
namespace board3\portal;
class ext extends \phpbb\extension\base
{
/**
* Check whether the extension can be enabled.
* Provides meaningful(s) error message(s) and the back-link on failure.
* CLI and 3.2/3.3 compatible.
*
* @return bool
*/
public function is_enableable()
{
$phpbb_min_ver = '3.2.6';
$phpbb_below_ver = '3.4.0-dev';
$php_min_ver = '7.1.0';
$php_below_ver = '8.3.0-dev';
if (phpbb_version_compare(PHPBB_VERSION, '3.2.0-dev', '<'))
{
$lang = $this->container->get('user');
$lang->add_lang_ext('board3/portal', 'b3p_enable_error');
}
else
{
$lang = $this->container->get('language');
$lang->add_lang('b3p_enable_error', 'board3/portal');
}
$error_message = [$lang->lang('ERROR_B3P_EXTENSION_NOT_ENABLEABLE', $lang->lang('BOARD3_PORTAL'))];
if ((phpbb_version_compare(PHPBB_VERSION, $phpbb_min_ver, '<') || phpbb_version_compare(PHPBB_VERSION, $phpbb_below_ver, '>=')))
{
$error_message[] = $lang->lang('ERROR_B3P_MSG_PHPBB_WRONG_VERSION', $phpbb_min_ver, $phpbb_below_ver);
}
if ((phpbb_version_compare(PHP_VERSION, $php_min_ver, '<') || phpbb_version_compare(PHP_VERSION, $php_below_ver, '>=')))
{
$error_message[] = $lang->lang('ERROR_B3P_MSG_PHP_WRONG_VERSION', $php_min_ver, $php_below_ver);
}
if (phpbb_version_compare(PHPBB_VERSION, '3.3.0-dev', '<') && count($error_message) > 1)
{
$error_message = implode('<br>', $error_message);
trigger_error($error_message . $this->get_adm_back_link(), E_USER_WARNING);
}
return (count($error_message) > 1) ? $error_message : true;
}
private function get_adm_back_link()
{
return adm_back_link(append_sid('index.' . $this->container->getParameter('core.php_ext'), 'i=acp_extensions&amp;mode=main'));
}
}

View File

@@ -2,15 +2,15 @@
// @codingStandardsIgnoreFile
/**
*
* @package Board3 Portal v2.1
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* @ignore
*/
* @ignore
*/
if (!defined('IN_PHPBB'))
{
exit;
@@ -70,10 +70,10 @@ function set_portal_config($config_name, $config_value)
}
/**
* Get portal modules
*
* @return array Portal modules array
*/
* Get portal modules
*
* @return array Portal modules array
*/
function obtain_portal_modules()
{
global $db;
@@ -93,21 +93,6 @@ function obtain_portal_modules()
return $portal_modules;
}
/**
* Fetch post for news & announce
*
* @deprecated 2.1.0-b1 (To be removed: 2.2.0)
*/
function phpbb_fetch_posts($module_id, $forum_from, $permissions, $number_of_posts, $text_length, $time, $type, $start = 0, $invert = false)
{
global $phpbb_container;
$fetch_posts = $phpbb_container->get('board3.portal.fetch_posts');
$fetch_posts->set_module_id($module_id);
return $fetch_posts->get_posts($forum_from, $permissions, $number_of_posts, $text_length, $time, $type, $start, $invert);
}
/**
* Censor title, return short title
*
@@ -173,7 +158,7 @@ function generate_portal_pagination($base_url, $num_items, $per_page, $start_ite
$on_page = floor($start_item / $per_page) + 1;
$url_delim = (strpos($base_url, '?') === false) ? '?' : '&amp;';
$page_string = ($on_page == 1) ? '<ul><li class="active"><span>1</span></li>' : '<ul><li><a href="' . $base_url . $anker .'" role="button">1</a></li>';
$page_string = ($on_page == 1) ? '<ul><li class="active"><span>1</span></li>' : '<ul><li><a class="button" href="' . $base_url . $anker .'" role="button">1</a></li>';
if ($total_pages > 5)
{
@@ -185,7 +170,7 @@ function generate_portal_pagination($base_url, $num_items, $per_page, $start_ite
for ($i = $start_cnt + 1; $i < $end_cnt; ++$i)
{
$page_string .= ($i == $on_page) ? '<li class="active"><span>' . $i . '</span></li>' : '<li><a href="' . $base_url . "{$url_delim}" . $pagination_type . '=' . (($i - 1) * $per_page) . $anker . '" role="button">' . $i . '</a></li>';
$page_string .= ($i == $on_page) ? '<li class="active"><span>' . $i . '</span></li>' : '<li><a class="button" href="' . $base_url . "{$url_delim}" . $pagination_type . '=' . (($i - 1) * $per_page) . $anker . '" role="button">' . $i . '</a></li>';
if ($i < $end_cnt - 1)
{
$page_string .= $seperator;
@@ -201,25 +186,25 @@ function generate_portal_pagination($base_url, $num_items, $per_page, $start_ite
for ($i = 2; $i < $total_pages; ++$i)
{
$page_string .= ($i == $on_page) ? '<li class="active"><span>' . $i . '</span></li>' : '<li><a href="' . $base_url . "{$url_delim}" . $pagination_type . '=' . (($i - 1) * $per_page) . $anker . '" role="button">' . $i . '</a></li>';
$page_string .= ($i == $on_page) ? '<li class="active"><span>' . $i . '</span></li>' : '<li><a class="button" href="' . $base_url . "{$url_delim}" . $pagination_type . '=' . (($i - 1) * $per_page) . $anker . '" role="button">' . $i . '</a></li>';
if ($i < $total_pages)
{
$page_string .= $seperator;
}
}
}
$page_string .= ($on_page == $total_pages) ? '<li class="active"><span>' . $total_pages . '</span></li></ul>' : '<li><a href="' . $base_url . "{$url_delim}" . $pagination_type . '=' . (($total_pages - 1) * $per_page) . $anker . '" role="button">' . $total_pages . '</a></li></ul>';
$page_string .= ($on_page == $total_pages) ? '<li class="active"><span>' . $total_pages . '</span></li></ul>' : '<li><a class="button" href="' . $base_url . "{$url_delim}" . $pagination_type . '=' . (($total_pages - 1) * $per_page) . $anker . '" role="button">' . $total_pages . '</a></li></ul>';
if ($add_prevnext_text)
{
if ($on_page != 1)
{
$page_string = '<a href="' . $base_url . "{$url_delim}" . $pagination_type . '=' . (($on_page - 2) * $per_page) . $anker . '" role="button">' . $user->lang['PREVIOUS'] . '</a>&nbsp;&nbsp;' . $page_string;
$page_string = '<a class="button" href="' . $base_url . "{$url_delim}" . $pagination_type . '=' . (($on_page - 2) * $per_page) . $anker . '" role="button">' . $user->lang['PREVIOUS'] . '</a>&nbsp;&nbsp;' . $page_string;
}
if ($on_page != $total_pages)
{
$page_string .= '&nbsp;&nbsp;<a href="' . $base_url . "{$url_delim}" . $pagination_type . '=' . ($on_page * $per_page) . $anker . '" role="button">' . $user->lang['NEXT'] . '</a>';
$page_string .= '&nbsp;&nbsp;<a class="button" href="' . $base_url . "{$url_delim}" . $pagination_type . '=' . ($on_page * $per_page) . $anker . '" role="button">' . $user->lang['NEXT'] . '</a>';
}
}
@@ -390,7 +375,7 @@ function check_file_src($value, $key, $module_id, $force_error = true)
// We check if the chosen file is present in the styles/all/ folder
if (!file_exists($portal_root_path . 'styles/all/theme/images/portal/' . $value))
{
$error .= $user->lang['B3P_FILE_NOT_FOUND'] . ': styles/all/theme/images/portal/' . $value . '<br />';
$error .= $user->lang('B3P_FILE_NOT_FOUND') . ': styles/all/theme/images/portal/' . $value . '<br />';
}
if (!empty($error))

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1
* @copyright (c) 2014 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1
* @copyright (c) 2014 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
@@ -25,6 +25,9 @@ class modules_helper
*/
protected $config;
/** @var \phpbb\db\driver\driver_interface */
protected $db;
/** @var \phpbb\controller\helper Controller helper */
protected $controller_helper;
@@ -34,6 +37,9 @@ class modules_helper
*/
protected $request;
/** @var string Styles table */
protected $styles_table;
/**
* Constructor
* NOTE: The parameters of this method must match in order and type with
@@ -41,14 +47,18 @@ class modules_helper
* @param \phpbb\auth\auth $auth Auth object
* @param \phpbb\config\config $config phpBB config
* @param \phpbb\controller\helper $controller_helper Controller helper
* @param \phpbb\db\driver\driver_interface $db Dbal connection
* @param \phpbb\request\request $request phpBB request
* @param string $styles_table Styles table
*/
public function __construct($auth, $config, $controller_helper, $request)
public function __construct($auth, $config, $controller_helper, $db, $request, string $styles_table)
{
$this->auth = $auth;
$this->config = $config;
$this->controller_helper = $controller_helper;
$this->db = $db;
$this->request = $request;
$this->styles_table = $styles_table;
}
/**
@@ -188,4 +198,44 @@ class modules_helper
$this->config->set($key, $value);
}
/**
* Show available styles
*
* @return string Select with available styles
*/
public function display_fa_styles(): string
{
$portal_fa_styles = json_decode($this->config->offsetGet('board3_portal_fa_styles'));
if (!$portal_fa_styles)
{
$portal_fa_styles = [];
}
$options = '';
$query = 'SELECT style_name
FROM ' . $this->styles_table;
$result = $this->db->sql_query($query);
while ($row = $this->db->sql_fetchrow($result))
{
$options .= '<option value="' . $row['style_name'] . '"';
if (in_array($row['style_name'], $portal_fa_styles))
{
$options .= ' selected';
}
$options .= '>' . $row['style_name'] . '</option>';
}
$this->db->sql_freeresult($result);
return '<select id="board3_fa_styles" name="board3_fa_styles[]" multiple>' . $options . '</select>';
}
/**
* Save styles that have been set as Font Awesome styles
*
* @param string $key Key of the parameter
*/
public function store_fa_styles(string $key): void
{
$style_array = $this->request->variable($key, ['']);
$this->config->set('board3_portal_fa_styles', json_encode($style_array));
}
}

View File

@@ -38,7 +38,6 @@ $lang = array_merge($lang, array(
// ACP
'ACP_PORTAL_CUSTOM_SETTINGS' => 'إعدادات الموديل الخاص',
'ACP_PORTAL_CUSTOM_SETTINGS_EXP' => 'من هنا تستطيع تخصيص الموديل الخاص',
'ACP_PORTAL_CUSTOM_CODE_SHORT' => 'الكود البرمجي الذي أدخلته غير كافي. يجب زيادة الكود.',
'ACP_PORTAL_CUSTOM_PREVIEW' => 'استعراض',
'ACP_PORTAL_CUSTOM_CODE' => 'المحتوى ',
'ACP_PORTAL_CUSTOM_CODE_EXP' => 'أدخل الكود الذي سيظهر في هذا الموديل ( المسموح به هو HTML أو BBCode ).',

View File

@@ -37,7 +37,6 @@ $lang = array_merge($lang, array(
// ACP
'ACP_PORTAL_WELCOME_SETTINGS' => 'إعدادات رسالة الترحيب',
'ACP_PORTAL_WELCOME_MESSAGE_SHORT' => 'الرسالة التي أدخلتها قصيرة جداً.',
'ACP_PORTAL_WELCOME_PREVIEW' => 'استعراض رسالة الترحيب',
'ACP_PORTAL_WELCOME_MESSAGE' => 'رسالة الترحيب ',
'ACP_PORTAL_WELCOME_MESSAGE_EXP' => 'من هنا تستطيع تغيير رسالة الترحيب. أكواد BBCode / الصور / الروابط مسموح بها.',

View File

@@ -0,0 +1,40 @@
<?php
/**
*
* @package Board3 Portal v2.3
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'BOARD3_PORTAL' => 'Board3 Portal',
'ERROR_B3P_EXTENSION_NOT_ENABLEABLE' => 'Die Erweiterung „%s“ kann nicht aktiviert werden. Bitte prüfe die Voraussetzungen, die für die Erweiterung notwendig sind.',
'ERROR_B3P_MSG_PHPBB_WRONG_VERSION' => 'Minimum phpBB %1$s aber kleiner als %2$s',
'ERROR_B3P_MSG_PHP_WRONG_VERSION' => 'Minimum PHP %1$s aber kleiner als %2$s',
]);

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Announcements
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Announcements
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Attachments
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Attachments
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Birthday List
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Birthday List
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Calendar
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Calendar
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Clock
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Clock
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Custom
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Custom
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
@@ -37,7 +37,7 @@ $lang = array_merge($lang, array(
// ACP
'ACP_PORTAL_CUSTOM_SETTINGS' => 'Custom Block Settings',
'ACP_PORTAL_CUSTOM_SETTINGS_EXP' => 'Einstellungen für den eigenen Block',
'ACP_PORTAL_CUSTOM_CODE_SHORT' => 'Der eingegebene Code ist nicht lang genug.',
'TOO_FEW_CHARS' => 'Der eingegebene Code ist nicht lang genug.',
'ACP_PORTAL_CUSTOM_PREVIEW' => 'Vorschau',
'ACP_PORTAL_CUSTOM_CODE' => 'Code für den eigenen Block',
'ACP_PORTAL_CUSTOM_CODE_EXP' => 'Ändere den Code für deinen eigenen Block (HTML oder BBCode).',

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Donation
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Donation
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Forumlist
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Forumlist
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
@@ -33,4 +33,5 @@ if (empty($lang) || !is_array($lang))
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array(
'PORTAL_FORUMLIST' => 'Forumliste',
'PORTAL_FORUMLIST_EXP' => '<span style="color: #BC2A4D;">In diesem Modul kann auf der Portal Seite kein Modul Bild oder Font Awesome Icon angezeigt werden!</span>',
));

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Friends
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Friends
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Latest Bots
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Latest Bots
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Latest Members
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Latest Members
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Leaders
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Leaders
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Link Us
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Link Us
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
@@ -33,5 +33,7 @@ if (empty($lang) || !is_array($lang))
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array(
'LINK_US' => 'Link zu uns ',
'LINK_US_TXT' => 'Benutze bitte diesen Link um <strong>%s</strong> bei dir zu verlinken:',
'LINK_US_HTML' => 'HTML',
'LINK_US_BBCODE' => 'BBCode',
'LINK_US_TXT' => 'Benutze bitte diesen Link um <em><strong>"%s"</strong></em> bei dir zu verlinken:',
));

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Links
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Links
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
@@ -48,7 +48,7 @@ $lang = array_merge($lang, array(
'ACP_PORTAL_LINK_URL_EXP' => 'Externe Links:<br />Alle Links sollten mit einem http:// eingegeben werden.<br /><br />Interne Links:<br />Gebe nur die PHP Datei als Link URL ein, z.B. index.php?style=4.',
'ACP_PORTAL_LINK_PERMISSION' => 'Link Berechtigungen',
'ACP_PORTAL_LINK_PERMISSION_EXP'=> 'Wähle die Gruppen aus die berechtigt sein sollen den Link zu sehen. Falls alle Benutzer den Link sehen sollen, dann wähle nichts aus.<br />Wähle mehrere Gruppen aus/ab indem du <samp>STRG</samp> gedrückt hältst und klickst.',
'ACP_PORTAL_LINKS_NEW_WINDOW' => 'Öffne externe Verknüpfungen in einem neuen Fenster',
'ACP_PORTAL_LINKS_NEW_WINDOW' => 'Öffne externe Verknüpfungen in einem neuen Fenster/Tab',
// Errors
'NO_LINK_TITLE' => 'Du musst einen Titel für diesen Link angeben.',

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Main Menu
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Main Menu
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - News
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - News
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Poll
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Poll
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Random Member
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Random Member
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Recent Module
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Recent Module
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Search
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Search
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
@@ -38,5 +38,5 @@ $lang = array_merge($lang, array(
'PORTAL_SEARCH_POSTS' => 'Beiträge',
'PORTAL_SEARCH_AUTHOR' => 'Autor',
'PORTAL_SEARCH_ENGINE' => 'Suchmaschinen',
'PORTAL_SEARCH_ADV' => 'erweiterte Suche',
'PORTAL_SEARCH_ADV' => 'Erweiterte Suche',
));

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Statistics
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Statistics
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Stylechanger
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Stylechanger
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Topposters
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Topposters
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - User Menu
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - User Menu
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Welcome
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Welcome
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
@@ -36,7 +36,7 @@ $lang = array_merge($lang, array(
// ACP
'ACP_PORTAL_WELCOME_SETTINGS' => 'Einstellungen für die Willkommens-Nachricht',
'ACP_PORTAL_WELCOME_MESSAGE_SHORT' => 'Die eingegebene Nachricht ist nicht lang genug.',
'TOO_FEW_CHARS' => 'Die eingegebene Nachricht ist nicht lang genug.',
'ACP_PORTAL_WELCOME_PREVIEW' => 'Willkommens-Nachricht Vorschau',
'ACP_PORTAL_WELCOME_MESSAGE' => 'Willkommens-Nachricht',
'ACP_PORTAL_WELCOME_MESSAGE_EXP' => 'Du kannst die Willkommens-Nachricht in der Textbox verändern. BBCode, Bilder und Links sind erlaubt.',

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Who is online
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Who is online
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1
* @copyright (c) 2015 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
@@ -37,4 +37,5 @@ $lang = array_merge($lang, array(
'PORTAL' => 'Portal',
'VIEWING_PORTAL' => 'Betrachtet das Portal',
'BACK' => 'Zurück',
'B3P_WRONG_METHOD_CALL' => 'Falscher Aufruf der Methode %s',
));

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1
* @copyright (c) 2014 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
@@ -51,6 +51,7 @@ $lang = array_merge($lang, array(
'MOVE_RIGHT' => 'Nach rechts',
'MOVE_LEFT' => 'Nach links',
'B3P_FILE_NOT_FOUND' => 'Die angegebene Datei konnte nicht gefunden werden',
'UNABLE_TO_ADD_MODULE' => 'Es ist nicht möglich den Block in die gewählte Spalte hinzuzufügen.',
'UNABLE_TO_MOVE' => 'Es ist nicht möglich den Block in die gewählte Spalte zu verschieben.',
'UNABLE_TO_MOVE_ROW' => 'Es ist nicht möglich den Block in die gewählte Reihe zu verschieben.',
'DELETE_MODULE_CONFIRM' => 'Bist du sicher, dass du das Modul "%1$s" löschen möchtest?',
@@ -62,15 +63,15 @@ $lang = array_merge($lang, array(
'MODULE_NAME' => 'Modul Name',
'MODULE_NAME_EXP' => 'Gebe den Namen ein der für das Modul in der Modul Konfiguration angezeigt werden soll.',
'MODULE_IMAGE' => 'Modul Bild',
'MODULE_IMAGE_EXP' => 'Gebe den Dateinamen des Modul Bildes ein. Das Bild muss sich in allen styles/{Dein Style}/theme/images/portal/ Ordnern befinden.',
'MODULE_IMAGE_EXP' => 'Gebe den Dateinamen des Modul Bildes ein. Das Bild muss sich im Verzeichnis styles/all/theme/images/portal/ befinden.',
'MODULE_PERMISSIONS' => 'Modul Berechtigungen',
'MODULE_PERMISSIONS_EXP' => 'Wähle die Gruppen aus, die berechtigt sein sollen, das Modul zu sehen. Sollen alle Benutzer das Modul sehen können, wähle nichts aus.<br />An- / abwählen mehrerer Gruppen indem man <samp>Strg</samp> gedrückt hält und klickt.',
'MODULE_IMAGE_WIDTH' => 'Modul Bild Breite',
'MODULE_IMAGE_WIDTH_EXP' => 'Gebe die breite des Modul Bildes in Pixeln ein',
'MODULE_IMAGE_WIDTH_EXP' => 'Gebe die breite des Modul Bildes in Pixeln ein.<br>Wenn kein Modul Bild gewünscht, gebe <strong>0</strong> als Wert ein.',
'MODULE_IMAGE_HEIGHT' => 'Modul Bild Höhe',
'MODULE_IMAGE_HEIGHT_EXP' => 'Gebe die Höhe des Modul Bildes in Pixeln ein',
'MODULE_IMAGE_HEIGHT_EXP' => 'Gebe die Höhe des Modul Bildes in Pixeln ein.',
'MODULE_RESET' => 'Modul Einstellungen zurücksetzen',
'MODULE_RESET_EXP' => 'Dies wird alle Einstellungen des Moduls auf die Standardeinstellungen zurücksetzen!',
'MODULE_RESET_EXP' => 'Dies wird alle Einstellungen des Moduls auf die Standardeinstellungen zurücksetzen!<br>Aus technischen Gründen muss nach dem Zurücksetzen auf die Standardeinstellungen, das FA Icon erneut eingeben werden!<br>Passende Icons können der <a href="https://github.com/board3/Board3-Portal/wiki#empfohlene-fa-icons--recommended-fa-icons" target="_blank" rel="noopener noreferrer"><strong>Liste empfohlener FA-Icons</strong></a> entnommen werden.',
'MODULE_STATUS' => 'Aktiviere Modul',
'MODULE_ADD_ONCE' => 'Diese Modul kann nur ein Mal hinzugefügt werden.',
'MODULE_IMAGE_ERROR' => 'Während dem Prüfen des Modul Bildes sind ein oder mehrere Fehler aufgetreten:',
@@ -94,7 +95,7 @@ $lang = array_merge($lang, array(
'PORTAL_RIGHT_COLUMN_WIDTH' => 'Breite der rechten Spalte',
'PORTAL_RIGHT_COLUMN_WIDTH_EXP' => 'Ändere hier die Breite der rechten Spalte in Pixel, empfohlener Wert 180',
'PORTAL_DISPLAY_JUMPBOX' => 'Zeige Jumpbox',
'PORTAL_DISPLAY_JUMPBOX_EXP' => 'Die Jumpbox auf dem Portal anzeigen. Die Jumpbox wird nur angezeigt, wenn sie gleichzeitig in den Board-Funktionalitäten aktiviert ist.',
'PORTAL_DISPLAY_JUMPBOX_EXP' => 'Die Jumpbox auf dem Portal anzeigen. Die Jumpbox wird nur angezeigt, wenn sie gleichzeitig unter Server-Konfiguration/Serverlast aktiviert ist.',
'PORTAL_SHOW_ALL_SIDE' => 'Spalte die auf allen Seiten angezeigt werden soll',
'PORTAL_SHOW_ALL_SIDE_EXP' => 'Wähle welche Spalte auf allen seiten des Portals angezeigt werden soll.',
'PORTAL_SHOW_ALL_LEFT' => 'Links',
@@ -106,4 +107,12 @@ $lang = array_merge($lang, array(
// Install
'PORTAL_BASIC_INSTALL' => 'Füge Basismodule hinzu',
'PORTAL_BASIC_UNINSTALL' => 'Entferne Module von Datenbank',
// Font Awesome
'ACP_FA' => 'Font Awesome Styles',
'ACP_FA_EXP' => 'Hier kannst du einstellen welche Styles Font Awesome Icons nutzen sollen.',
'MODULE_FA' => 'Font Awesome Icon',
'MODULE_FA_EXP' => 'Hier kannst du ein <a href="https://fontawesome.com/v4.7.0/icons/" target="_blank" rel="noopener noreferrer"><strong>Font Awesome</strong></a> Icon einstellen. Dieses wird verwendet wenn der Style Font Awesome verwendet.',
'MODULE_FA_SIZE' => 'Font Awesome Icongröße',
'MODULE_FA_SIZE_EXP' => 'Hier kannst du die Größe des Font Awesome Icons einstellen (in Pixel).',
));

View File

@@ -0,0 +1,40 @@
<?php
/**
*
* @package Board3 Portal v2.3
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'BOARD3_PORTAL' => 'Board3 Portal',
'ERROR_B3P_EXTENSION_NOT_ENABLEABLE' => 'Die Erweiterung „%s“ kann nicht aktiviert werden. Bitte prüfen Sie die Voraussetzungen, die für die Erweiterung notwendig sind.',
'ERROR_B3P_MSG_PHPBB_WRONG_VERSION' => 'Minimum phpBB %1$s aber kleiner als %2$s',
'ERROR_B3P_MSG_PHP_WRONG_VERSION' => 'Minimum PHP %1$s aber kleiner als %2$s',
]);

View File

@@ -0,0 +1,50 @@
<?php
/**
*
* @package Board3 Portal v2.3
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'ACP_PORTAL_MODULES' => 'Portal Module',
'ACP_PORTAL' => 'Portal',
'ACP_PORTAL_GENERAL_INFO' => 'Allgemeine Einstellungen',
'ACP_PORTAL_UPLOAD' => 'Modul hochladen',
// Logs
'LOG_PORTAL_LINK_ADDED' => '<strong>Portal-Einstellungen geändert</strong><br />&raquo; Link hinzugefügt: %s ',
'LOG_PORTAL_LINK_UPDATED' => '<strong>Portal-Einstellungen geändert</strong><br />&raquo; Link geändert: %s ',
'LOG_PORTAL_LINK_REMOVED' => '<strong>Portal-Einstellungen geändert</strong><br />&raquo; Link gelöscht: %s ',
'LOG_PORTAL_EVENT_ADDED' => '<strong>Portal-Einstellungen geändert</strong><br />&raquo; Termin eingetragen: %s ',
'LOG_PORTAL_EVENT_UPDATED' => '<strong>Portal-Einstellungen geändert</strong><br />&raquo; Termin geändert: %s ',
'LOG_PORTAL_EVENT_REMOVED' => '<strong>Portal-Einstellungen geändert</strong><br />&raquo; Termin gelöscht: %s ',
'LOG_PORTAL_CONFIG' => '<strong>Portal-Einstellungen geändert</strong><br />&raquo; %s',
]);

View File

@@ -0,0 +1,74 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Announcements
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'LATEST_ANNOUNCEMENTS' => 'Letzte Bekanntmachung',
'GLOBAL_ANNOUNCEMENT' => 'Globale Bekanntmachung',
'GLOBAL_ANNOUNCEMENTS' => 'Globale Bekanntmachungen',
'VIEW_LATEST_ANNOUNCEMENT' => '1 Bekanntmachung',
'VIEW_LATEST_ANNOUNCEMENTS' => '%d Bekanntmachungen',
'READ_FULL' => 'alles lesen',
'NO_ANNOUNCEMENTS' => 'Keine Bekanntmachung',
'POSTED_BY' => 'Autor',
'COMMENTS' => 'Kommentare',
'VIEW_COMMENTS' => 'Kommentare anzeigen',
'PORTAL_POST_REPLY' => 'Kommentar schreiben',
'TOPIC_VIEWS' => 'Zugriffe',
'JUMP_NEWEST' => 'Zum letzten Beitrag springen',
'JUMP_FIRST' => 'Zum ersten Beitrag springen',
'JUMP_TO_POST' => 'Rufe den Beitrag auf',
// ACP
'ACP_PORTAL_ANNOUNCE_SETTINGS' => 'Einstellungen für Bekanntmachungen',
'ACP_PORTAL_ANNOUNCE_SETTINGS_EXP' => 'Hier können Sie die Einstellungen für die Bekanntmachungen ändern.',
'PORTAL_ANNOUNCEMENTS' => 'Bekanntmachungen anzeigen',
'PORTAL_ANNOUNCEMENTS_EXP' => 'Diesen Block auf dem Portal anzeigen.',
'PORTAL_ANNOUNCEMENTS_STYLE' => 'Kompakter Bekanntmachungen-Block-Stil',
'PORTAL_ANNOUNCEMENTS_STYLE_EXP' => 'Wenn "ja" ausgewählt ist, wird die kompakte Ansicht für die Bekanntmachungen angezeigt, bei "nein" die große Ansicht.',
'PORTAL_NUMBER_OF_ANNOUNCEMENTS' => 'Anzahl der Bekanntmachungen auf dem Portal',
'PORTAL_NUMBER_OF_ANNOUNCEMENTS_EXP' => '0 bedeutet unbegrenzt',
'PORTAL_ANNOUNCEMENTS_DAY' => 'Die Anzahl der Tage, während der die Bekanntmachung angezeigt werden soll',
'PORTAL_ANNOUNCEMENTS_DAY_EXP' => '0 bedeutet unbegrenzt',
'PORTAL_ANNOUNCEMENTS_LENGTH' => 'Maximale Länge der Bekanntmachungen',
'PORTAL_ANNOUNCEMENTS_LENGTH_EXP' => '0 bedeutet unbegrenzt',
'PORTAL_GLOBAL_ANNOUNCEMENTS_FORUM' => 'Foren der Bekanntmachungen',
'PORTAL_GLOBAL_ANNOUNCEMENTS_FORUM_EXP' => 'Die ID des Forums, aus welchem die Bekanntmachungen angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren ausschließen" auf "Ja" steht, wählen Sie die Foren die Sie ausschließen möchten.<br />Falls "Foren ausschließen" auf "Nein" steht, wählen Sie die Foren die Sie sehen möchten.<br />Wählen Sie mehrere Foren aus/ab, indem Sie beim Klicken die <samp>Strg</samp>-Taste drückst.',
'PORTAL_ANNOUNCEMENTS_FORUM_EXCLUDE' => 'Foren ausschließen',
'PORTAL_ANNOUNCEMENTS_FORUM_EXCLUDE_EXP' => 'Wählen Sie "Ja" wenn Sie die ausgewählten Foren vom Bekanntmachungen-Block ausschließen möchten, und "Nein" wenn Sie nur die Bekanntmachungen aus den ausgewählten Foren im Bekanntmachungen-Block sehen möchten.',
'PORTAL_ANNOUNCEMENTS_PERMISSIONS' => 'Berechtigungen prüfen anschalten?',
'PORTAL_ANNOUNCEMENTS_PERMISSIONS_EXP' => 'Berücksichtigt Berechtigungen beim Anzeigen der Bekanntmachungen',
'PORTAL_ANNOUNCEMENTS_ARCHIVE' => 'Das Archivsystem für die Bekanntmachungen aktivieren',
'PORTAL_ANNOUNCEMENTS_ARCHIVE_EXP' => 'Wenn aktiviert, wird das Archivsystem und ggf. Seitenzahlen angezeigt.',
'PORTAL_SHOW_REPLIES_VIEWS' => '"Antworten" und "Zugriffe" in Extraspalten',
'PORTAL_SHOW_REPLIES_VIEWS_EXP' => 'Einstellung für den kompakter Bekanntmachungen-Block-Stil.<br />Wenn aktiviert, wird die Anzahl der Antworten und Zugriffe in gesonderten Spalten angezeigt. Wenn deaktiviert gibt es nur zwei Spalten und die Antworten und Zugriffe werden neben "Forum" angezeigt. Bei Darstellungsproblemen mit z.B. schmalen Styles bitte deaktivieren.',
]);

View File

@@ -0,0 +1,54 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Attachments
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'DOWNLOADS' => 'Downloads',
'NO_ATTACHMENTS' => 'Keine Dateianhänge',
'PORTAL_ATTACHMENTS' => 'Dateianhänge-Block',
// ACP
'ACP_PORTAL_ATTACHMENTS_NUMBER_SETTINGS' => 'Einstellungen für Dateianhänge',
'ACP_PORTAL_ATTACHMENTS_NUMBER_SETTINGS_EXP' => 'Hier können Sie die Einstellungen für Dateianhänge ändern.',
'PORTAL_ATTACHMENTS_NUMBER' => 'Anzahl der anzuzeigenden Dateianhänge',
'PORTAL_ATTACHMENTS_NUMBER_EXP' => '0 bedeutet unbegrenzt',
'PORTAL_ATTACHMENTS_FORUM_IDS' => 'Dateianhänge Foren',
'PORTAL_ATTACHMENTS_FORUM_IDS_EXP' => 'Die Foren, aus welchen die Dateianhänge angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren ausschließen" auf "Ja" steht, wählen Sie die Foren die Sie ausschließen möchten.<br />Falls "Foren ausschließen" auf "Nein" steht, wählen Sie die Foren aus, aus denen Sie die Dateianhänge sehen möchten.<br />Wählen Sie mehrere Foren aus/ab, indem Sie beim Klicken die <samp>Strg</samp>-Taste gedrückt halten.',
'PORTAL_ATTACHMENTS_FORUM_EXCLUDE' => 'Foren ausschließen',
'PORTAL_ATTACHMENTS_FORUM_EXCLUDE_EXP' => 'Wählen Sie "Ja" wenn Sie die ausgewählten Foren vom Dateianhänge-Block ausschließen möchten, und "Nein" wenn Sie nur die Dateianhänge der ausgewählten Foren im Dateianhänge-Block sehen möchten.',
'PORTAL_ATTACHMENTS_MAX_LENGTH' => 'Maximal angezeigte Länge der Dateianhänge',
'PORTAL_ATTACHMENTS_MAX_LENGTH_EXP' => '0 bedeutet unbegrenzt',
'PORTAL_ATTACHMENTS_FILETYPE' => 'Dateitypen',
'PORTAL_ATTACHMENTS_FILETYPE_EXP' => 'Falls "Dateitypen ausschließen" auf "Ja" steht, wählen Sie die Dateitypen die Sie ausschließen möchten.<br />Falls "Dateitypen ausschließen" auf "Nein" steht, wählen Sie die Dateitypen die Sie sehen möchten.<br />Wählen Sie mehrere Foren aus/ab, indem Sie beim Klicken die <samp>Strg</samp>-Taste gedrückt halten.',
'PORTAL_ATTACHMENTS_EXCLUDE' => 'Dateitypen ausschließen',
'PORTAL_ATTACHMENTS_EXCLUDE_EXP' => 'Wählen Sie "Ja" wenn Sie die ausgewählten Dateitypen vom Dateianhänge-Block ausschließen möchten, und "Nein" wenn Sie nur die ausgewählten Dateitypen im Dateianhänge-Block sehen möchten.',
]);

View File

@@ -0,0 +1,44 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Birthday List
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'BIRTHDAYS_AHEAD' => 'In den nächsten %s Tagen',
'NO_BIRTHDAYS_AHEAD' => 'In diesem Zeitraum hat kein Mitglied Geburtstag',
// ACP
'ACP_PORTAL_BIRTHDAYS_SETTINGS' => 'Einstellungen für den Geburtstage-Block',
'ACP_PORTAL_BIRTHDAYS_SETTINGS_EXP' => 'Hier können Sie die Einstellungen für den Geburtstage-Block ändern.',
'PORTAL_BIRTHDAYS' => 'Geburtstage',
'PORTAL_BIRTHDAYS_AHEAD' => 'Anstehende Geburtstage',
'PORTAL_BIRTHDAYS_AHEAD_EXP' => 'Zeitraum für die Geburtstagsvorschau (Tage).<br />"0" deaktiviert die Anzeige der bevorstehenden Geburtstage.',
]);

View File

@@ -0,0 +1,131 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Calendar
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'PORTAL_CALENDAR' => 'Kalender',
'VIEW_NEXT_MONTH' => 'nächster Monat',
'VIEW_PREVIOUS_MONTH' => 'voriger Monat',
'EVENT_START' => 'Von',
'EVENT_END' => 'Bis',
'EVENT_TIME' => 'Zeit',
'EVENT_ALL_DAY' => 'Ganztägig',
'CURRENT_EVENTS' => 'Aktuelle Veranstaltungen',
'NO_CUR_EVENTS' => 'Keine aktuellen Veranstaltungen',
'UPCOMING_EVENTS' => 'Bevorstehende Veranstaltungen',
'NO_UPCOMING_EVENTS' => 'Keine bevorstehenden Veranstaltungen',
'mini_cal' => [
'day' => [
'1' => 'So',
'2' => 'Mo',
'3' => 'Di',
'4' => 'Mi',
'5' => 'Do',
'6' => 'Fr',
'7' => 'Sa',
],
'month' => [
'1' => 'Jan.',
'2' => 'Feb.',
'3' => 'Mär.',
'4' => 'Apr.',
'5' => 'Mai',
'6' => 'Jun.',
'7' => 'Jul.',
'8' => 'Aug.',
'9' => 'Sep.',
'10'=> 'Okt.',
'11'=> 'Nov.',
'12'=> 'Dez.',
],
'long_month'=> [
'1' => 'Januar',
'2' => 'Februar',
'3' => 'März',
'4' => 'April',
'5' => 'Mai',
'6' => 'Juni',
'7' => 'Juli',
'8' => 'August',
'9' => 'September',
'10'=> 'Oktober',
'11'=> 'November',
'12'=> 'Dezember',
],
],
// ACP
'ACP_PORTAL_CALENDAR' => 'Kalender Einstellungen',
'ACP_PORTAL_CALENDAR_EXP' => 'Hier können Sie die Einstellungen für den Kalender ändern.',
'ACP_PORTAL_EVENTS' => 'Kalender Veranstaltungen',
'PORTAL_CALENDAR_TODAY_COLOR' => 'Farbe für den aktuellen Tag',
'PORTAL_CALENDAR_TODAY_COLOR_EXP' => 'HEX oder Farbennamen sind erlaubt (Englisch!) wie z.B. #FFFFFF für Weiß oder (englische!) Farbennamen wie z.B. violet.',
'PORTAL_CALENDAR_SUNDAY_COLOR' => 'Farbe für Sonntage',
'PORTAL_CALENDAR_SUNDAY_COLOR_EXP' => 'HEX oder Farbennamen sind erlaubt (Englisch!) wie z.B. #FFFFFF für Weiß oder (englische!) Farbennamen wie z.B. violet.',
'PORTAL_LONG_MONTH' => 'Langen Monatsname anzeigen',
'PORTAL_LONG_MONTH_EXP' => 'Wenn deaktiviert, wird der Monat gekürzt z.B. Aug. statt August.',
'PORTAL_SUNDAY_FIRST' => 'Erster Tag der Woche',
'PORTAL_SUNDAY_FIRST_EXP' => 'Wenn deaktiviert, wird von Mo. --> So. angezeigt, ansonsten So. --> Sa.',
'PORTAL_DISPLAY_EVENTS' => 'Veranstaltungen anzeigen',
'PORTAL_DISPLAY_EVENTS_EXP' => 'Zeige Veranstaltungen an, die im Kalender Block erstellt wurden.',
'PORTAL_EVENTS_MANAGE' => 'Veranstaltungen verwalten',
'NO_EVENT_TITLE' => 'Sie haben keinen Titel für die Veranstaltung angegeben.',
'NO_EVENT_START' => 'Sie haben keine Start-Zeit für die Veranstaltung angegeben.',
'ADD_EVENT' => 'Veranstaltung hinzufügen',
'EVENT_UPDATED' => 'Veranstaltung erfolgreich aktualisiert.',
'EVENT_ADDED' => 'Veranstaltung erfolgreich hinzugefügt.',
'NO_EVENT' => 'Keine Veranstaltung.',
'EVENT_TITLE' => 'Titel der Veranstaltung',
'EVENT_DESC' => 'Beschreibung',
'EVENT_LINK' => 'Link zur Veranstaltung',
'EVENT_LINK_EXP' => 'Geben Sie hier den Link zu einem Thema oder einer Website mit der Ankündigung oder dem Diskussionsthema der Veranstaltung ein.',
'NO_EVENTS' => 'Keine Veranstaltungen',
'ACP_PORTAL_CALENDAR_START_INCORRECT' => 'Die eingegebene Start-Zeit ist nicht korrekt. Bitte folgen Sie genau den Anweisungen.',
'ACP_PORTAL_CALENDAR_END_INCORRECT' => 'Die eingegebene End-Zeit ist nicht korrekt. Bitte folgen Sie genau den Anweisungen.',
'ACP_PORTAL_CALENDAR_EVENT_PAST' => 'Die Start-zeit der Veranstaltung muss in der Zukunft liegen.',
'ACP_PORTAL_EVENT_START_DATE' => 'Start-Datum der Veranstaltung',
'ACP_PORTAL_EVENT_START_DATE_EXP' => 'Geben Sie das Datum und Uhrzeit ein, zu der die Veranstaltung beginnt. Datum und Uhrzeit sollten in einem ähnlichen Format sein: TT.MM.JJJJ SS:MM',
'ACP_PORTAL_EVENT_END_DATE' => 'End-Datum der Veranstaltung',
'ACP_PORTAL_EVENT_END_DATE_EXP' => 'Geben Sie das Datum und Uhrzeit ein, zu der die Veranstaltung endet. Datum und Uhrzeit sollten in einem ähnlichen Format sein: TT.MM.JJJJ',
'ACP_PORTAL_CALENDAR_EVENT_START_FIRST' => 'Das Ende der Veranstaltung muss nach dem Beginn der Veranstaltung liegen.',
'ACP_PORTAL_CALENDAR_PERMISSION' => 'Berechtigungen für die Veranstaltung',
'ACP_PORTAL_CALENDAR_PERMISSION_EXP' => 'Wählen Sie die Gruppen aus, denen es erlaubt sein soll die Veranstaltung zu sehen. Falls alle Benutzer die Veranstaltung sehen sollen, dann wählen Sie nichts aus.<br />Wählen Sie mehrere Gruppen aus/ab, indem Sie beim Klicken die <samp>Strg</samp>-Taste gedrückt halten.',
'PORTAL_EVENTS_URL_NEW_WINDOW' => 'Öffne externe Veranstaltungsverknüpfungen in einem neuen Fenster',
// Logs
'LOG_PORTAL_EVENT_UPDATED' => '<strong>Veranstaltung aktualisiert</strong><br />&raquo; %s',
'LOG_PORTAL_EVENT_ADDED' => '<strong>Veranstaltung hinzugefügt</strong><br />&raquo; %s',
'LOG_PORTAL_EVENT_REMOVED' => '<strong>Veranstaltung entfernt</strong><br />&raquo; %s',
]);

View File

@@ -0,0 +1,42 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Clock
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'CLOCK' => 'Uhr',
// ACP
'ACP_PORTAL_CLOCK_SETTINGS' => 'Uhr Einstellungen',
'ACP_PORTAL_CLOCK_SETTINGS_EXP' => 'Hier können Sie die Einstellungen für die Uhr ändern',
'ACP_PORTAL_CLOCK_SRC' => 'Uhr',
'ACP_PORTAL_CLOCK_SRC_EXP' => 'Geben Sie den Dateinamen der Uhr ein. Die Uhr muss unter folgendem Pfad gespeichert sein: styles/*yourstyle*/theme/images/portal/.',
]);

View File

@@ -0,0 +1,48 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Custom
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'PORTAL_CUSTOM' => 'Eigener Block',
// ACP
'ACP_PORTAL_CUSTOM_SETTINGS' => 'Custom Block Settings',
'ACP_PORTAL_CUSTOM_SETTINGS_EXP' => 'Einstellungen für den eigenen Block',
'TOO_FEW_CHARS' => 'Der eingegebene Code ist nicht lang genug.',
'ACP_PORTAL_CUSTOM_PREVIEW' => 'Vorschau',
'ACP_PORTAL_CUSTOM_CODE' => 'Code für den eigenen Block',
'ACP_PORTAL_CUSTOM_CODE_EXP' => 'Änderen Sie den Code für Ihre eigenen Block (HTML oder BBCode).',
'ACP_PORTAL_CUSTOM_PERMISSION' => 'Berechtigungen für den eigenen Block',
'ACP_PORTAL_CUSTOM_PERMISSION_EXP' => 'Wählen Sie die Gruppen aus, die den eigenen Block sehen dürfen. <br />Wählen Sie mehrere Gruppen aus/ab, indem Sie beim Klicken die <samp>Strg</samp>-Taste gedrückt halten.',
'ACP_PORTAL_CUSTOM_BBCODE' => 'BBCode für den eigenen Block aktivieren',
'ACP_PORTAL_CUSTOM_BBCODE_EXP' => 'BBCode kann dann in diesem Block benutzt werden. Ansonsten wird HTML direkt geparst.',
]);

View File

@@ -0,0 +1,67 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Donation
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'DONATION' => 'PayPal-Spenden',
'DONATION_TEXT' => 'ist eine Webseite ohne jedes Gewinninteresse. Jeder der dieses Projekt unterstützen möchte, kann dies mit einer kleinen PayPal-Spende tun, damit die Rechnungen für den Server, die Domain, etc. bezahlt werden können.',
'PAY_MSG' => 'Betrag bitte mit Punkt statt Komma trennen, z.B. 3.50',
'PAY_ITEM' => 'Freiwillige Foren-Spende',
'AUD' => 'Australische Dollar (AUD)',
'CAD' => 'Kanadische Dollar (CAD)',
'CZK' => 'Tschechische Kronen (CZK)',
'DKK' => 'Dänische Kronen (DKK)',
'HKD' => 'Hongkong-Dollar (HKD)',
'HUF' => 'Ungarische Forint (HUF)',
'NZD' => 'Neuseeland-Dollar (NZD)',
'NOK' => 'Norwegische Kronen (NOK)',
'PLN' => 'Polnische Zloty (PLN)',
'GBP' => 'Britische Pfund (GBP)',
'SGD' => 'Singapur-Dollar (SGD)',
'SEK' => 'Schwedische Kronen (SEK)',
'CHF' => 'Schweizer Franken (CHF)',
'JPY' => 'Japanische Yen (JPY)',
'USD' => 'US-Dollar (USD)',
'EUR' => 'Euro (EUR)',
'MXN' => 'Mexikanische Pesos (MXN)',
'ILS' => 'Neue Israelische Schekel (ILS)',
// ACP
'ACP_PORTAL_PAYPAL_SETTINGS' => 'Paypal Einstellungen',
'ACP_PORTAL_PAYPAL_SETTINGS_EXP' => 'Hier können Sie die Paypal Einstellungen ändern.',
'PORTAL_PAY_ACC' => 'Paypal Account',
'PORTAL_PAY_ACC_EXP' => 'Geben Sie Ihre e-mail-Adresse an, die Sie bei Paypal benutzen, z.B. xxx@xxx.com',
'PORTAL_PAY_CUSTOM' => 'Benutzername an die Paypal Zahlung anhängen',
'PORTAL_PAY_DEFAULT' => 'Standard-Währung',
'PORTAL_PAY_DEFAULT_EXP' => 'Währung die standardmäßig in der Drop-Down-Liste ausgewählt ist.'
]);

View File

@@ -0,0 +1,37 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Forumlist
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'PORTAL_FORUMLIST' => 'Forumliste',
'PORTAL_FORUMLIST_EXP' => '<span style="color: #BC2A4D;">In diesem Modul kann auf der Portal Seite kein Modul Bild oder Font Awesome Icon angezeigt werden!</span>',
]);

View File

@@ -0,0 +1,47 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Friends
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'FRIENDS' => 'Freunde',
'FRIENDS_OFFLINE' => 'Offline',
'FRIENDS_ONLINE' => 'Online',
'NO_FRIENDS' => 'Derzeit sind keine Freunde definiert',
'NO_FRIENDS_OFFLINE' => 'Keine Freunde offline',
'NO_FRIENDS_ONLINE' => 'Keine Freunde online',
// ACP
'ACP_PORTAL_FRIENDS_SETTINGS' => 'Einstellungen für den Freunde-Block',
'ACP_PORTAL_FRIENDS_SETTINGS_EXP' => 'Hier können Sie die Einstellungen für den Freunde-Block ändern.',
'PORTAL_MAX_ONLINE_FRIENDS' => 'Limitierung der Anzeige Freunde online',
'PORTAL_MAX_ONLINE_FRIENDS_EXP' => 'Limitiert die Anzeige Freunde online auf den angegebenen Wert.',
]);

View File

@@ -0,0 +1,43 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Latest Bots
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'LATEST_BOTS' => 'Letzte Bots',
'LAST_VISITED_BOTS' => 'Die letzten Bots',
// ACP
'ACP_PORTAL_BOTS_SETTINGS' => 'Einstellungen für Bot-Besuche',
'ACP_PORTAL_BOTS_SETTINGS_EXP' => 'Hier können Sie die Einstellungen für Bot-Besuche ändern.',
'PORTAL_LAST_VISITED_BOTS_NUMBER' => 'Anzahl der anzuzeigenden Bots',
'PORTAL_LAST_VISITED_BOTS_NUMBER_EXP' => '0 bedeutet unbegrenzt',
]);

View File

@@ -0,0 +1,42 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Latest Members
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'LATEST_MEMBERS' => 'Neue Mitglieder',
// ACP
'ACP_PORTAL_MEMBERS_SETTINGS' => 'Einstellungen für neue Mitglieder',
'ACP_PORTAL_MEMBERS_SETTINGS_EXP' => 'Hier können Sie die Einstellungen für neue Mitglieder ändern.',
'PORTAL_MAX_LAST_MEMBER' => 'Anzahl der anzuzeigenden Mitglieder',
'PORTAL_MAX_LAST_MEMBER_EXP' => '0 bedeutet unbegrenzt',
]);

View File

@@ -0,0 +1,45 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Leaders
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'NO_ADMINISTRATORS_P' => 'Keine Administratoren',
'NO_MODERATORS_P' => 'Keine Moderatoren',
'NO_GROUPS_P' => 'Keine Gruppen',
'ACP_PORTAL_LEADERS' => 'Das Team',
// ACP
'ACP_PORTAL_LEADERS' => 'Team Block Einstellungen',
'ACP_PORTAL_LEADERS_EXP' => 'Hier können Sie den Team-Block anpassen',
'PORTAL_LEADERS_EXT' => 'Erweiterter Team-Block',
'PORTAL_LEADERS_EXT_EXP' => 'Der standard Block listet alle Admins und Moderatoren auf, der erweiterte Team-Block listet zusätzlich alle nicht-versteckten Gruppen inklusive Legende auf.',
]);

View File

@@ -0,0 +1,39 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Link Us
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'LINK_US' => 'Link zu uns ',
'LINK_US_HTML' => 'HTML',
'LINK_US_BBCODE' => 'BBCode',
'LINK_US_TXT' => 'Benutze Sie bitte diese Links um <em><strong>"%s"</strong></em> bei Ihnen zu verlinken:',
]);

View File

@@ -0,0 +1,56 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Links
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'PORTAL_LINKS' => 'Links',
'LINKS_NO_LINKS' => 'Keine Links vorhanden',
// ACP
'ACP_PORTAL_LINKS' => 'Links-Einstellungen',
'ACP_PORTAL_LINKS_EXP' => 'Einstellungen für die Links ändern.',
'ACP_PORTAL_LINK_TITLE' => 'Titel',
'ACP_PORTAL_LINK_TYPE' => 'Link Typ',
'ACP_PORTAL_LINK_TYPE_EXP' => 'Falls Ihr Link auf Ihr Forum verweist, dann wählen Sie bitte "Interner Link" um ungewollte Logouts zu verhindern.',
'ACP_PORTAL_LINK_INT' => 'Interner Link',
'ACP_PORTAL_LINK_EXT' => 'Externer Link',
'ACP_PORTAL_LINK_ADD' => 'Link erstellen',
'ACP_PORTAL_LINK_URL' => 'Link URL',
'ACP_PORTAL_LINK_URL_EXP' => 'Externe Links:<br />Alle Links sollten mit einem http:// eingegeben werden.<br /><br />Interne Links:<br />Geben Sie nur die PHP Datei als Link URL ein, z.B. index.php?style=4.',
'ACP_PORTAL_LINK_PERMISSION' => 'Link Berechtigungen',
'ACP_PORTAL_LINK_PERMISSION_EXP'=> 'Wählen Sie die Gruppen aus die berechtigt sein sollen den Link zu sehen. Falls alle Benutzer den Link sehen sollen, dann wählen Sie nichts aus.<br />Wählen Sie mehrere Gruppen aus/ab indem Sie <samp>STRG</samp> gedrückt halten und klicken.',
'ACP_PORTAL_LINKS_NEW_WINDOW' => 'Öffne externe Verknüpfungen in einem neuen Fenster/Tab',
// Errors
'NO_LINK_TITLE' => 'Sie müssen einen Titel für diesen Link angeben.',
'NO_LINK_URL' => 'Sie müssen eine Link URL eingeben.',
]);

View File

@@ -0,0 +1,69 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Main Menu
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'M_MENU' => 'Menü',
'M_CONTENT' => 'Inhalt',
'M_ACP' => 'Administrations-Bereich',
'M_HELP' => 'Hilfe',
'M_BBCODE' => 'BBCode-Anleitung',
'M_TERMS' => 'Nutzungsbedingungen',
'M_PRV' => 'Datenschutzrichtlinie',
'M_SEARCH' => 'Suche',
'MENU_NO_LINKS' => 'Keine Links',
// ACP
'ACP_PORTAL_MENU' => 'Hauptmenü-Einstellungen',
'ACP_PORTAL_MENU_LINK_SETTINGS' => 'Link Einstellungen',
'ACP_PORTAL_MENU_EXP' => 'Verwalte dein Hauptmenü',
'ACP_PORTAL_MENU_MANAGE' => 'Hauptmenü-Verwaltung',
'ACP_PORTAL_MENU_MANAGE_EXP' => 'Sie können die Links Ihres Hauptmenüs hier verwalten.',
'ACP_PORTAL_MENU_CAT' => 'Kategorie',
'ACP_PORTAL_MENU_IS_CAT' => 'Setze Link als Kategorie',
'ACP_PORTAL_MENU_INT' => 'Interner Link',
'ACP_PORTAL_MENU_EXT' => 'Externer Link',
'ACP_PORTAL_MENU_TITLE' => 'Titel',
'ACP_PORTAL_MENU_URL' => 'Link URL',
'ACP_PORTAL_MENU_ADD' => 'Link erstellen',
'ACP_PORTAL_MENU_TYPE' => 'Link Typ',
'ACP_PORTAL_MENU_TYPE_EXP' => 'Falls Ihr Link auf Ihe Forum verweist, dann wählen Sie bitte "Interner Link" um ungewollte Logouts zu verhindern.',
'ACP_PORTAL_MENU_CREATE_CAT' => 'Sie müssen zuerst eine Kategorie erstellen.',
'ACP_PORTAL_MENU_URL_EXP' => 'Externe Links:<br />Alle Links sollten mit einem http:// eingegeben werden.<br /><br />Interne Links:<br />Gebe nur die PHP Datei als Link URL ein, z.B. index.php?style=4.',
'ACP_PORTAL_MENU_PERMISSION' => 'Link Berechtigungen',
'ACP_PORTAL_MENU_PERMISSION_EXP'=> 'Wählen Sie die Gruppen aus die berechtigt sein sollen den Link zu sehen. Falls alle Benutzer den Link sehen sollen, dann wählen Sie nichts aus.<br />Wählen Sie mehrere Gruppen aus/ab indem Sie <samp>STRG</samp> gedrückt halten und klicken.',
'ACP_PORTAL_MENU_EXT_NEW_WINDOW'=> 'Öffne externe Verknüpfungen in einem neuen Fenster',
// Errors
'NO_LINK_TITLE' => 'Sie müssen einen Titel für diesen Link angeben.',
'NO_LINK_URL' => 'Sie müssen eine Link URL eingeben.',
]);

View File

@@ -0,0 +1,70 @@
<?php
/**
*
* @package Board3 Portal v2.3 - News
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'LATEST_NEWS' => 'Aktuelle Beiträge',
'READ_FULL' => 'alles lesen',
'NO_NEWS' => 'Keine neuen Beiträge',
'POSTED_BY' => 'Autor',
'COMMENTS' => 'Kommentare',
'VIEW_COMMENTS' => 'Kommentare anzeigen',
'PORTAL_POST_REPLY' => 'Kommentar schreiben',
'TOPIC_VIEWS' => 'Zugriffe',
'JUMP_NEWEST' => 'Zum letzten Beitrag springen',
'JUMP_FIRST' => 'Zum ersten Beitrag springen',
'JUMP_TO_POST' => 'Rufe den Beitrag auf',
// ACP
'ACP_PORTAL_NEWS_SETTINGS' => 'Aktuelle Beiträge Einstellungen',
'ACP_PORTAL_NEWS_SETTINGS_EXP' => 'Hier können Sie die Einstellungen für die aktuellen Beiträge ändern.',
'PORTAL_NEWS_STYLE' => 'Kompakter Block-Stil',
'PORTAL_NEWS_STYLE_EXP' => 'Wenn "ja" ausgewählt ist, wird die kompakte Ansicht für die aktuellen Beiträge angezeigt, bei "nein" die Textansicht.',
'PORTAL_SHOW_ALL_NEWS' => 'Zeige alle Beiträge dieses Forums',
'PORTAL_SHOW_ALL_NEWS_EXP' => 'Auch Wichtige Beiträge.',
'PORTAL_NUMBER_OF_NEWS' => 'Anzahl der Beiträge auf dem Portal',
'PORTAL_NUMBER_OF_NEWS_EXP' => '0 bedeutet unbegrenzt',
'PORTAL_NEWS_LENGTH' => 'Maximal angezeigte Länge der Beiträge',
'PORTAL_NEWS_LENGTH_EXP' => '0 bedeutet unbegrenzt',
'PORTAL_NEWS_FORUM' => 'Beiträge Foren',
'PORTAL_NEWS_FORUM_EXP' => 'Die Foren, aus welchen die Beiträge angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren ausschließen" auf "Ja" steht, wählen Sie die Foren die Sie ausschließen möchten.<br />Falls "Foren ausschließen" auf "Nein" steht, wählen Sie die Foren die Sie sehen möchten.<br />Wählen Sie mehrere Foren aus/ab, indem Sie beim Klicken die <samp>Strg</samp>-Taste gedrückt halten.',
'PORTAL_NEWS_EXCLUDE' => 'Foren ausschließen',
'PORTAL_NEWS_EXCLUDE_EXP' => 'Wählen Sie "Ja" wenn Sie die ausgewählten Foren vom Aktuelle Beiträge-Block ausschließen möchten, und "Nein" wenn Sie nur die Beiträge aus den ausgewählten Foren im Aktuelle Beiträge-Block sehen möchten.',
'PORTAL_NEWS_PERMISSIONS' => 'Berechtigungen prüfen anschalten?',
'PORTAL_NEWS_PERMISSIONS_EXP' => 'Berücksichtigt Berechtigungen beim Anzeigen der aktuellen Beiträge',
'PORTAL_NEWS_SHOW_LAST' => 'Nach neuesten Beiträgen sortieren',
'PORTAL_NEWS_SHOW_LAST_EXP' => 'Wenn aktiviert, wird nach den neuesten Beiträgen sortiert. Wenn deaktiviert, wird nach den neuesten Themen sortiert.',
'PORTAL_NEWS_ARCHIVE' => 'Das Archivsystem für die aktuellen Beiträge aktivieren',
'PORTAL_NEWS_ARCHIVE_EXP' => 'Wenn aktiviert, wird das Archivsystem und ggf. Seitenzahlen angezeigt.',
'PORTAL_SHOW_REPLIES_VIEWS' => '"Antworten" und "Zugriffe" in Extraspalten',
'PORTAL_SHOW_REPLIES_VIEWS_EXP' => 'Einstellung für den kompakter Bekanntmachungen-Block-Stil.<br />Wenn aktiviert, wird die Anzahl der Antworten und Zugriffe in gesonderten Spalten angezeigt. Wenn deaktiviert gibt es nur zwei Spalten und die Antworten und Zugriffe werden neben "Forum" angezeigt. Bei Darstellungsproblemen mit z.B. schmalen Styles bitte deaktivieren.',
]);

View File

@@ -0,0 +1,53 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Poll
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'PORTAL_POLL' => 'Umfrage',
'LATEST_POLLS' => 'Neueste Umfragen',
'NO_OPTIONS' => 'Diese Umfrage verfügt über keine Optionen.',
'NO_POLL' => 'Derzeit gibt es keine aktuellen Umfragen',
'RETURN_PORTAL' => '%sZurück zum Portal%s',
// ACP
'ACP_PORTAL_POLLS_SETTINGS' => 'Einstellungen für Umfragen',
'ACP_PORTAL_POLLS_SETTINGS_EXP' => 'Hier können Sie die Einstellungen für Umfragen ändern.',
'PORTAL_POLL_TOPIC_ID' => 'Umfragen Foren',
'PORTAL_POLL_TOPIC_ID_EXP' => 'Die Foren, aus welchen die Umfragen angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren ausschließen" auf "Ja" steht, wählen Sie die Foren die Sie ausschließen möchten.<br />Falls "Foren ausschließen" auf "Nein" steht, wählen Sie die Foren die Sie sehen möchten.<br />Wählen Sie mehrere Foren aus/ab, indem Sie beim Klicken die <samp>Strg</samp>-Taste gedrückt halten.',
'PORTAL_POLL_EXCLUDE_ID' => 'Foren ausschließen',
'PORTAL_POLL_EXCLUDE_ID_EXP' => 'Wählen Sie "Ja" wenn Sie die ausgewählten Foren vom Umfragen-Block ausschließen möchten, und "Nein" wenn Sie nur die Themen aus den ausgewählten Foren im Umfragen-Block sehen möchten.',
'PORTAL_POLL_LIMIT' => 'Maximale Anzahl der Umfragen',
'PORTAL_POLL_LIMIT_EXP' => 'Die Anzahl der Umfragen, die auf dem Portal angezeigt werden sollen.',
'PORTAL_POLL_ALLOW_VOTE' => 'Abstimmen erlauben',
'PORTAL_POLL_ALLOW_VOTE_EXP' => 'Verfügt der Benutzer über entsprechende Berechtigungen, kann er direkt auf der Portal-Seite abstimmen.',
'PORTAL_POLL_HIDE' => 'Abgelaufene Umfragen verbergen?',
]);

View File

@@ -0,0 +1,41 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Random Member
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'PORTAL_RANDOM_MEMBER' => 'Zufälliges Profil',
'RND_JOIN' => 'Registriert',
'RND_POSTS' => 'Beiträge',
'RND_OCC' => 'Tätigkeit',
'RND_FROM' => 'Wohnort',
'RND_WWW' => 'Webseite',
]);

View File

@@ -0,0 +1,51 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Recent Module
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'PORTAL_RECENT' => 'Aktuelles',
'PORTAL_RECENT_TOPIC' => 'Aktuelle Themen',
'PORTAL_RECENT_ANN' => 'Aktuelle Bekanntmachungen',
'PORTAL_RECENT_HOT_TOPIC' => 'Beliebte Themen',
// ACP
'ACP_PORTAL_RECENT_SETTINGS' => 'Einstellungen für neueste Themen',
'ACP_PORTAL_RECENT_SETTINGS_EXP' => 'Hier können Sie die Einstellungen für die neuesten Themen ändern.',
'PORTAL_MAX_TOPIC' => 'Anzahl der neuesten Themen auf dem Portal',
'PORTAL_MAX_TOPIC_EXP' => '0 bedeutet unbegrenzt',
'PORTAL_RECENT_TITLE_LIMIT' => 'Maximal angezeigte Länge der neuesten Themen',
'PORTAL_RECENT_TITLE_LIMIT_EXP' => '0 bedeutet unbegrenzt',
'PORTAL_RECENT_FORUM' => 'Themen Foren',
'PORTAL_RECENT_FORUM_EXP' => 'Die Foren, aus welchen die Themen angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren ausschließen" auf "Ja" steht, wählen Sie die Foren die Sie ausschließen möchten.<br />Falls "Foren ausschließen" auf "Nein" steht, wählen Sie die Foren die Sie sehen möchten.<br />Wählen Sie mehrere Foren aus/ab, indem Sie beim Klicken die <samp>Strg</samp>-Taste gedrückt halten.',
'PORTAL_EXCLUDE_FORUM' => 'Foren ausschließen',
'PORTAL_EXCLUDE_FORUM_EXP' => 'Wählen Sie "Ja" wenn Sie die ausgewählten Foren vom Aktuelle Themen-Block ausschließen möchten, und "Nein" wenn Sie nur die Themen aus den ausgewählten Foren im Aktuelle Themen-Block sehen möchten.',
]);

View File

@@ -0,0 +1,42 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Search
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'PORTAL_SEARCH' => 'Suche',
'PORTAL_SEARCH_GO' => 'Los',
'PORTAL_SEARCH_SITE' => 'Foren',
'PORTAL_SEARCH_POSTS' => 'Beiträge',
'PORTAL_SEARCH_AUTHOR' => 'Autor',
'PORTAL_SEARCH_ENGINE' => 'Suchmaschinen',
'PORTAL_SEARCH_ADV' => 'Erweiterte Suche',
]);

View File

@@ -0,0 +1,51 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Statistics
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'ST_TOP' => 'Insgesamt',
'ST_TOP_ANNS' => 'Bekanntmachungen insgesamt:',
'ST_TOP_STICKYS' => 'Wichtig insgesamt:',
'ST_TOT_ATTACH' => 'Dateianhänge insgesamt:',
'TOPICS_PER_DAY_OTHER' => 'Themen pro Tag: <strong>%d</strong>',
'TOPICS_PER_DAY_ZERO' => 'Themen pro Tag: <strong>0</strong>',
'POSTS_PER_DAY_OTHER' => 'Beiträge pro Tag: <strong>%d</strong>',
'POSTS_PER_DAY_ZERO' => 'Beiträge pro Tag: <strong>0</strong>',
'USERS_PER_DAY_OTHER' => 'Benutzer pro Tag: <strong>%d</strong>',
'USERS_PER_DAY_ZERO' => 'Benutzer pro Tag: <strong>0</strong>',
'TOPICS_PER_USER_OTHER' => 'Themen pro Benutzer: <strong>%d</strong>',
'TOPICS_PER_USER_ZERO' => 'Themen pro Benutzer: <strong>0</strong>',
'POSTS_PER_USER_OTHER' => 'Beiträge pro Benutzer: <strong>%d</strong>',
'POSTS_PER_USER_ZERO' => 'Beiträge pro Benutzer: <strong>0</strong>',
'POSTS_PER_TOPIC_OTHER' => 'Beiträge pro Thema: <strong>%d</strong>',
'POSTS_PER_TOPIC_ZERO' => 'Beiträge pro Thema: <strong>0</strong>',
]);

View File

@@ -0,0 +1,37 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Stylechanger
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'BOARD_STYLE' => 'Ihr Board-Style',
'STYLE_CHOOSE' => 'Wählen Sie einen Style',
]);

View File

@@ -0,0 +1,41 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Topposters
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'TOPPOSTERS' => 'Top Poster',
'TOPPOSTERS_CONFIG' => 'Einstellungen zu Top Poster',
// ACP
'NUM_TOPPOSTERS' => 'Anzahl der Top Poster',
'NUM_TOPPOSTERS_EXP' => 'Geben Sie die Anzahl der Benutzer an, die im Top Poster Block angezeigt werden sollen.',
]);

View File

@@ -0,0 +1,45 @@
<?php
/**
*
* @package Board3 Portal v2.3 - User Menu
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'USER_MENU' => 'Benutzer-Menü',
'UM_LOG_ME_IN' => 'Mich bei jedem Besuch automatisch anmelden',
'UM_HIDE_ME' => 'Meinen Online-Status während dieser Sitzung verbergen',
'UM_REGISTER_NOW' => 'Registriern Sie sich jetzt!',
'UM_MAIN_SUBSCRIBED' => 'Benachrichtigungen verwalten',
'UM_BOOKMARKS' => 'Lesezeichen verwalten',
'M_MENU' => 'Menü',
'M_ACP' => 'Administrations-Bereich',
'USER_MENU_SETTINGS' => 'Benutzer-Menü Einstellungen',
'USER_MENU_REGISTER' => 'Zeige Registrierungs-Link in Benutzer-Menü',
]);

View File

@@ -0,0 +1,43 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Welcome
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'PORTAL_WELCOME' => 'Willkommen',
// ACP
'ACP_PORTAL_WELCOME_SETTINGS' => 'Einstellungen für die Willkommens-Nachricht',
'TOO_FEW_CHARS' => 'Die eingegebene Nachricht ist nicht lang genug.',
'ACP_PORTAL_WELCOME_PREVIEW' => 'Willkommens-Nachricht Vorschau',
'ACP_PORTAL_WELCOME_MESSAGE' => 'Willkommens-Nachricht',
'ACP_PORTAL_WELCOME_MESSAGE_EXP' => 'Sie können die Willkommens-Nachricht in der Textbox verändern. BBCode, Bilder und Links sind erlaubt.',
]);

View File

@@ -0,0 +1,36 @@
<?php
/**
*
* @package Board3 Portal v2.3 - Who is online
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'PORTAL_WHOIS_ONLINE' => 'Wer ist online?',
]);

View File

@@ -0,0 +1,39 @@
<?php
/**
*
* @package Board3 Portal v2.3
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
// Adding the permissions
'ACL_A_MANAGE_PORTAL' => 'Kann Portal-Einstellungen ändern',
'ACL_U_VIEW_PORTAL' => 'Kann das Portal sehen',
]);

View File

@@ -0,0 +1,41 @@
<?php
/**
*
* @package Board3 Portal v2.3
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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
// Common
$lang = array_merge($lang, [
'PORTAL' => 'Portal',
'VIEWING_PORTAL' => 'Betrachtet das Portal',
'BACK' => 'Zurück',
'B3P_WRONG_METHOD_CALL' => 'Falscher Aufruf der Methode %s',
]);

View File

@@ -0,0 +1,118 @@
<?php
/**
*
* @package Board3 Portal v2.3
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
// Portal Module
'ACP_PORTAL_MODULES_EXP' => 'Sie können Ihre Portal Module hier verwalten. Falls Sie alle Module deaktivieren, dann deaktivieren Sie bitte auch das Portal.',
'MODULE_POS_TOP' => 'Oben',
'MODULE_POS_LEFT' => 'Linke Spalte',
'MODULE_POS_RIGHT' => 'Rechte Spalte',
'MODULE_POS_CENTER' => 'Mittlere Spalte',
'MODULE_POS_BOTTOM' => 'Unten',
'ADD_MODULE' => 'Modul Hinzufügen',
'CHOOSE_MODULE' => 'Modul Auswählen',
'CHOOSE_MODULE_EXP' => 'Wähle ein Modul von der Dropdown-Liste',
'SUCCESS_ADD' => 'Das Modul wurde erfolgreich hinzugefügt.',
'SUCCESS_DELETE' => 'Das Modul wurde erfolgreich entfernt.',
'NO_MODULES' => 'Es wurden keine Module gefunden.',
'MOVE_RIGHT' => 'Nach rechts',
'MOVE_LEFT' => 'Nach links',
'B3P_FILE_NOT_FOUND' => 'Die angegebene Datei konnte nicht gefunden werden',
'UNABLE_TO_MOVE' => 'Es ist nicht möglich den Block in die gewählte Spalte zu verschieben.',
'UNABLE_TO_MOVE_ROW' => 'Es ist nicht möglich den Block in die gewählte Reihe zu verschieben.',
'UNABLE_TO_ADD_MODULE' => 'Es ist nicht möglich den Block in die gewählte Spalte hinzuzufügen.',
'DELETE_MODULE_CONFIRM' => 'Sind Sie sicher, dass Sie das Modul "%1$s" löschen möchtest?',
'MODULE_RESET_SUCCESS' => 'Modul Einstellungen erfolgreich zurückgesetzt.',
'MODULE_RESET_CONFIRM' => 'Sind Sie sicher, dass Sie diese Einstellungen des Moduls "%1$s" zurücksetzen möchten?',
'MODULE_NOT_EXISTS' => 'Das gewählte Modul existiert nicht.',
'MODULE_OPTIONS' => 'Modul Optionen',
'MODULE_NAME' => 'Modul Name',
'MODULE_NAME_EXP' => 'Geben Sie hier den Namen ein der für das Modul in der Modul Konfiguration angezeigt werden soll.',
'MODULE_IMAGE' => 'Modul Bild',
'MODULE_IMAGE_EXP' => 'Geben Sie hier den Dateinamen des Modul Bildes ein. Das Bild muss sich im Verzeichnis styles/all/theme/images/portal/ befinden.',
'MODULE_PERMISSIONS' => 'Modul Berechtigungen',
'MODULE_PERMISSIONS_EXP' => 'Wählen Sie die Gruppen aus, die berechtigt sein sollen, das Modul zu sehen. Sollen alle Benutzer das Modul sehen können, wählen Sie nichts aus.<br />An- / abwählen mehrerer Gruppen indem man <samp>Strg</samp> gedrückt hält und klickt.',
'MODULE_IMAGE_WIDTH' => 'Modul Bild Breite',
'MODULE_IMAGE_WIDTH_EXP' => 'Geben Sie hier die Breite des Modul Bildes in Pixeln ein.<br>Wenn kein Modul Bild gewünscht, geben Sie <strong>0</strong> als Wert ein.',
'MODULE_IMAGE_HEIGHT' => 'Modul Bild Höhe',
'MODULE_IMAGE_HEIGHT_EXP' => 'Geben Sie hier die Höhe des Modul Bildes in Pixeln ein.',
'MODULE_RESET' => 'Modul Einstellungen zurücksetzen',
'MODULE_RESET_EXP' => 'Dies wird alle Einstellungen des Moduls auf die Standardeinstellungen zurücksetzen!<br>Aus technischen Gründen muss nach dem Zurücksetzen auf die Standardeinstellungen, das FA Icon erneut eingeben werden!<br>Passende Icons können der <a href="https://github.com/board3/Board3-Portal/wiki#empfohlene-fa-icons--recommended-fa-icons" target="_blank" rel="noopener noreferrer"><strong>Liste empfohlener FA-Icons</strong></a> entnommen werden.',
'MODULE_STATUS' => 'Aktiviere Modul',
'MODULE_ADD_ONCE' => 'Diese Modul kann nur ein Mal hinzugefügt werden.',
'MODULE_IMAGE_ERROR' => 'Während dem Prüfen des Modul Bildes sind ein oder mehrere Fehler aufgetreten:',
'UNKNOWN_MODULE_METHOD' => 'Die Modul Methode des %1$s Moduls konnte nicht gefunden werden.',
// general
'ACP_PORTAL_CONFIG_INFO' => 'Allgemeine Einstellungen',
'ACP_PORTAL_GENERAL_TITLE' => 'Portal Verwaltung',
'ACP_PORTAL_GENERAL_TITLE_EXP' => 'Danke, dass Sie sich für board3 Portal entschieden haben. Auf dieser Seite können Sie Ihr Portal verwalten. Diese Anzeige gibt Ihnen einen schnellen Überblick über die verschiedenen Portal-Einstellungen.',
'ACP_PORTAL_SHOW_ALL' => 'Zeige portal auf allen Seiten',
'ACP_PORTAL_SHOW_ALL_EXP' => 'Zeigt das Portal auf allen Seiten des Forums an.',
'PORTAL_ENABLE' => 'Portal aktivieren',
'PORTAL_ENABLE_EXP' => 'Wenn deaktiviert, wird das komplette Portal abgeschaltet.',
'PORTAL_LEFT_COLUMN' => 'Linke Spalte aktivieren',
'PORTAL_LEFT_COLUMN_EXP' => 'Die Linke Spalte auf dem Portal anzeigen',
'PORTAL_RIGHT_COLUMN' => 'Rechte Spalte aktivieren',
'PORTAL_RIGHT_COLUMN_EXP' => 'Die Rechte Spalte auf dem Portal anzeigen',
'ACP_PORTAL_COLUMN_WIDTH_SETTINGS' => 'Breiteneinstellung der rechten und linken Spalte',
'PORTAL_LEFT_COLUMN_WIDTH' => 'Breite der linken Spalte',
'PORTAL_LEFT_COLUMN_WIDTH_EXP' => 'Änderen Sie hier die Breite der linken Spalte in Pixel, empfohlener Wert 180',
'PORTAL_RIGHT_COLUMN_WIDTH' => 'Breite der rechten Spalte',
'PORTAL_RIGHT_COLUMN_WIDTH_EXP' => 'Änderen Sie hier die Breite der rechten Spalte in Pixel, empfohlener Wert 180',
'PORTAL_DISPLAY_JUMPBOX' => 'Zeige Jumpbox',
'PORTAL_DISPLAY_JUMPBOX_EXP' => 'Die Jumpbox auf dem Portal anzeigen. Die Jumpbox wird nur angezeigt, wenn sie gleichzeitig unter Server-Konfiguration/Serverlast aktiviert ist.',
'PORTAL_SHOW_ALL_SIDE' => 'Spalte die auf allen Seiten angezeigt werden soll',
'PORTAL_SHOW_ALL_SIDE_EXP' => 'Wählen Sie aus welche Spalte auf allen seiten des Portals angezeigt werden soll.',
'PORTAL_SHOW_ALL_LEFT' => 'Links',
'PORTAL_SHOW_ALL_RIGHT' => 'Rechts',
'LINK_ADDED' => 'Der Link wurde erfolgreich eingetragen',
'LINK_UPDATED' => 'Der Link wurde erfolgreich geändert',
// Install
'PORTAL_BASIC_INSTALL' => 'Füge Basismodule hinzu',
'PORTAL_BASIC_UNINSTALL' => 'Entferne Module von Datenbank',
// Font Awesome
'ACP_FA' => 'Font Awesome Styles',
'ACP_FA_EXP' => 'Hier können Sie einstellen welche Styles Font Awesome Icons nutzen sollen.',
'MODULE_FA' => 'Font Awesome Icon',
'MODULE_FA_EXP' => 'Hier können Sie ein <a href="https://fontawesome.com/v4.7.0/icons/" target="_blank" rel="noopener noreferrer"><strong>Font Awesome</strong></a> Icon einstellen. Dieses wird verwendet wenn der Style Font Awesome verwendet.',
'MODULE_FA_SIZE' => 'Font Awesome Icongröße',
'MODULE_FA_SIZE_EXP' => 'Hier können Sie die Größe des Font Awesome Icons einstellen (in Pixel).',
]);

View File

@@ -0,0 +1,40 @@
<?php
/**
*
* @package Board3 Portal v2.3
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
/**
* 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, [
'BOARD3_PORTAL' => 'Board3 Portal',
'ERROR_B3P_EXTENSION_NOT_ENABLEABLE' => 'The extension „%s“ cannot be enabled, please verify the extensions requirements.',
'ERROR_B3P_MSG_PHPBB_WRONG_VERSION' => 'Minimum phpBB %1$s but less than %2$s',
'ERROR_B3P_MSG_PHP_WRONG_VERSION' => 'Minimum PHP %1$s but less than %2$s',
]);

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Announcements
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Announcements
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Attachments
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Attachments
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Birthday List
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Birthday List
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Calendar
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Calendar
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Clock
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Clock
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Custom
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Custom
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/
@@ -37,7 +37,7 @@ $lang = array_merge($lang, array(
// ACP
'ACP_PORTAL_CUSTOM_SETTINGS' => 'Custom Block Settings',
'ACP_PORTAL_CUSTOM_SETTINGS_EXP' => 'Here you can edit your custom block',
'ACP_PORTAL_CUSTOM_CODE_SHORT' => 'The code you entered is not long enough.',
'TOO_FEW_CHARS' => 'The code you entered is not long enough.',
'ACP_PORTAL_CUSTOM_PREVIEW' => 'Preview',
'ACP_PORTAL_CUSTOM_CODE' => 'Custom Block Code',
'ACP_PORTAL_CUSTOM_CODE_EXP' => 'Change the code for the small custom block (HTML or BBCode) here.',

View File

@@ -1,9 +1,9 @@
<?php
/**
*
* @package Board3 Portal v2.1 - Donation
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @package Board3 Portal v2.3 - Donation
* @copyright (c) 2023 Board3 Group ( www.board3.de )
* @license GNU General Public License, version 2 (GPL-2.0-only)
*
*/

Some files were not shown because too many files have changed in this diff Show More