diff --git a/.gitattributes b/.gitattributes index 2185b3a..1fc3ae6 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,11 +1,8 @@ .gitattributes export-ignore .gitignore export-ignore -.travis.yml export-ignore +.github export-ignore README.md export-ignore -composer.lock export-ignore -composer.phar export-ignore -phpunit.xml.dist export-ignore -/travis export-ignore +docs export-ignore # Auto detect text files and perform LF normalization * text=auto diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..b027823 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,33 @@ +name: CI + +on: + push: + branches: [master] + pull_request: + branches: [master] + +permissions: + contents: read + +jobs: + lint: + name: PHP ${{ matrix.php }} lint + runs-on: ubuntu-latest + strategy: + matrix: + php: ['7.1', '7.4', '8.0', '8.1'] + steps: + - uses: actions/checkout@v4 + + - name: Set up PHP ${{ matrix.php }} + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + coverage: none + tools: composer:v2 + + - name: PHP syntax check + run: find . -name '*.php' -not -path './.git/*' -print0 | xargs -0 -n1 php -l + + - name: Validate composer.json + run: composer validate --no-check-all --no-check-publish diff --git a/.travis.yml b/.travis.yml deleted file mode 100755 index d549ff5..0000000 --- a/.travis.yml +++ /dev/null @@ -1,61 +0,0 @@ -# Opt into fully virtualized infrastructure -sudo: required - -language: php - -matrix: - include: - - php: 5.3.3 - env: DB=mysqli - - php: 5.3 - env: DB=mysqli # MyISAM - - php: 5.4 - env: DB=mysqli - - 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.5 - env: DB=mysqli - - php: 5.6 - env: DB=mysqli - - php: hhvm - env: DB=mysqli - allow_failures: - - php: hhvm - fast_finish: true - -env: - global: - - EXTNAME="phpbbmodders/holiday_flare" # CHANGE name of the extension HERE - - SNIFF="1" # Should we run code sniffer on your code? - - IMAGE_ICC="1" # Should we run icc profile sniffer on your images? - - EPV="1" # Should we run EPV (Extension Pre Validator) on your code? - - PHPBB_BRANCH="3.1.x" - -branches: - only: - - master - - develop - - /^develop-.*$/ - - /^release-.*$/ - -install: - - travis_retry composer 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 - -before_script: - - travis/setup-database.sh $DB $TRAVIS_PHP_VERSION - -script: - - sh -c "if [ '$SNIFF' != '0' ]; then travis/ext-sniff.sh $DB $TRAVIS_PHP_VERSION $EXTNAME; fi" - - sh -c "if [ '$IMAGE_ICC' != '0' ]; then travis/check-image-icc-profiles.sh $DB $TRAVIS_PHP_VERSION; fi" - - phpBB/vendor/bin/phpunit --configuration phpBB/ext/$EXTNAME/travis/phpunit-$DB-travis.xml --bootstrap ./tests/bootstrap.php - - sh -c "if [ '$EPV' != '0' ] && [ '$TRAVIS_PHP_VERSION' = '5.3.3' ] && [ '$DB' = 'mysqli' ]; then phpBB/ext/$EXTNAME/vendor/bin/EPV.php run --dir='phpBB/ext/$EXTNAME/'; fi" \ No newline at end of file diff --git a/README.md b/README.md index c8cc27e..63278c8 100755 --- a/README.md +++ b/README.md @@ -1,13 +1,20 @@ Holiday Flare ================= -Allows an admin to display various seasonal holiday flares to their default style. The images/javascript can be enable/disabled in the ACP via `EXTENSIONS --> Holiday Flare --> Settings`. +Allows an admin to display seasonal holiday flares on their forum. The Christmas and Valentine's Day themes can be enabled or disabled independently in the ACP via `EXTENSIONS --> Holiday Flare --> Settings`. -[![Build Status](https://travis-ci.org/phpbbmodders/holiday_flare.png)](https://travis-ci.org/phpbbmodders/holiday_flare) +[![CI](https://github.com/phpbbmodders/holiday_flare/actions/workflows/ci.yml/badge.svg)](https://github.com/phpbbmodders/holiday_flare/actions/workflows/ci.yml) ## Features -* enable/disable the various holiday flares - * Add Santa Hat to the corner of the header +* Enable/disable each holiday flare independently + * Christmas: a Santa hat in the header corner, plus a smaller matching icon on the forum list (prosilver, Green-Style-Slim, pro_ubuntu_lucid, proflat) + * Valentine's Day: a matching header-corner icon (prosilver, Green-Style-Slim, pro_ubuntu_lucid, proflat) +See [docs/screenshots](docs/screenshots) for both themes rendered. + +## Requirements + +* PHP 7.1 or later +* phpBB 3.1.0-RC3 up to (but not including) 3.3 ## Installation @@ -24,8 +31,25 @@ Go to ACP -> `CUSTOMISE -> Manage extensions ->` enable Holiday Flare ### 3. configure -Go to ACP -> `EXTENSIONS --> Holiday Flare --> Settings ->` set *Enable Santa Hat* to *Yes* +Go to ACP -> `EXTENSIONS --> Holiday Flare --> Settings ->` set *Christmas Theme* and/or *Valentine Theme* to *Yes* ## Support -https://www.phpbb.com/community/viewtopic.php?f=456&t=2277491 +- **Bug reports**: [Open an issue](https://github.com/phpbbmodders/holiday_flare/issues). +- **Everything else** (questions, feature requests, general discussion): [the phpBB.com support thread](https://www.phpbb.com/community/viewtopic.php?f=456&t=2277491). + +## Contributing + +Contributions are welcome! Pull requests are welcome for bug fixes or discussed features. + +## Acknowledgments + +- The Valentine's Day theme was originally contributed by [TWEagle](https://github.com/TWEagle). +- The jQuery-based header banner was originally contributed by Rich McGirr ([rmcgirr83](https://github.com/rmcgirr83)), extended to additional styles by Raphaël M. ([Galixte](https://github.com/Galixte)). +- Modernization (current PHP/phpBB version support, a real bug fix confirmed against a live phpBB install, reconciling several long-open pull requests, and this documentation) assisted by [Claude](https://www.anthropic.com/claude). + +## License + +This extension is licensed under the **GNU General Public License v2.0**. + +See [license.txt](license.txt) for more information. diff --git a/acp/holidayflare_info.php b/acp/holidayflare_info.php index cdaecba..4e8e583 100644 --- a/acp/holidayflare_info.php +++ b/acp/holidayflare_info.php @@ -1,10 +1,12 @@ lang('FORM_INVALID') . adm_back_link($this->u_action), E_USER_WARNING); } - $enable_hohohatcorner = $this->request->variable('enable_hohohatcorner', 0); - $this->config->set('enable_hohohatcorner', $enable_hohohatcorner); + $this->config->set('enable_xmas', $this->request->variable('enable_xmas', 0)); + $this->config->set('enable_valentine', $this->request->variable('enable_valentine', 0)); trigger_error($this->user->lang('CONFIG_UPDATED') . adm_back_link($this->u_action)); } $this->template->assign_vars(array( - 'S_ENABLE_HOHOHATCORNER' => isset($this->config['enable_hohohatcorner']) ? $this->config['enable_hohohatcorner'] : '', + 'S_ENABLE_XMAS' => isset($this->config['enable_xmas']) ? $this->config['enable_xmas'] : '', + 'S_ENABLE_VALENTINE' => isset($this->config['enable_valentine']) ? $this->config['enable_valentine'] : '', 'U_ACTION' => $this->u_action, )); diff --git a/adm/style/acp_holidayflare.html b/adm/style/acp_holidayflare.html index d936226..b57628b 100644 --- a/adm/style/acp_holidayflare.html +++ b/adm/style/acp_holidayflare.html @@ -9,10 +9,17 @@

{L_ACP_HOLIDAYFLARE}

{L_ACP_HOLIDAYFLARE_SETTINGS}
-

{L_ENABLE_HOHOHATCORNER_EXPLAIN}
+

{L_ENABLE_XMAS_EXPLAIN}
- - + + +
+
+
+

{L_ENABLE_VALENTINE_EXPLAIN}
+
+ +
diff --git a/composer.json b/composer.json index 8d8f0da..10698e7 100755 --- a/composer.json +++ b/composer.json @@ -2,29 +2,48 @@ "name": "phpbbmodders/holidayflare", "type": "phpbb-extension", "description": "Allows an admin to display various seasonal holiday flares to their default style. The images/javascript can be enable/disabled in the ACP via EXTENSIONS --> Holiday Flare --> Settings", - "version": "2.0.0", - "license": "GPL-2.0", + "homepage": "https://www.phpbbmodders.com/", + "version": "2.1.0", + "keywords": [ + "phpbb", + "extension", + "holidays", + "seasonal", + "decorations" + ], + "license": "GPL-2.0-only", "authors": [ + { + "name": "phpBB Modders", + "email": "board@phpbbmodders.com", + "homepage": "https://www.phpbbmodders.com/", + "role": "Extension Developer" + }, { "name": "William (bonelifer)", - "role": "Developer" + "email": "bonelifer@phpbbmodders.net", + "homepage": "https://www.phpbbmodders.com/", + "role": "Past Developer" }, { - "name": "Matt (VSE)", - "role": "Extension conversion" + "name": "Matt Friedman (MattF)", + "homepage": "https://www.phpbb.com/customise/db/author/mattf", + "role": "Past Developer" } ], "require": { - "php": ">=5.3.3", - "composer/installers": "~1.0" + "php": ">=7.1", + "composer/installers": "^1.0" }, - "require-dev": { - "phpbb/epv": "dev-master" - }, "extra": { "display-name": "Holiday Flare", "soft-require": { - "phpbb/phpbb": ">=3.1.0-RC3,<3.2.*@dev" + "phpbb/phpbb": ">=3.1.0-RC3,<3.3.*@dev" + }, + "version-check": { + "host": "www.phpbb.com", + "directory": "/customise/db/extension/holiday_flare", + "filename": "version_check" } } } diff --git a/composer.lock b/composer.lock deleted file mode 100644 index 05298d6..0000000 --- a/composer.lock +++ /dev/null @@ -1,497 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", - "This file is @generated automatically" - ], - "hash": "87c05ab5fd18094bfcda9df633cac05b", - "packages": [ - { - "name": "composer/installers", - "version": "v1.0.18", - "source": { - "type": "git", - "url": "https://github.com/composer/installers.git", - "reference": "74fb0a7a1a23696d9c8cc2fba5903f6711cdd067" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/installers/zipball/74fb0a7a1a23696d9c8cc2fba5903f6711cdd067", - "reference": "74fb0a7a1a23696d9c8cc2fba5903f6711cdd067", - "shasum": "" - }, - "replace": { - "roundcube/plugin-installer": "*", - "shama/baton": "*" - }, - "require-dev": { - "composer/composer": "1.0.*@dev", - "phpunit/phpunit": "4.1.*" - }, - "type": "composer-installer", - "extra": { - "class": "Composer\\Installers\\Installer", - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-0": { - "Composer\\Installers\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kyle Robinson Young", - "email": "kyle@dontkry.com", - "homepage": "https://github.com/shama" - } - ], - "description": "A multi-framework Composer library installer", - "homepage": "http://composer.github.com/installers/", - "keywords": [ - "Craft", - "Dolibarr", - "Hurad", - "MODX Evo", - "OXID", - "WolfCMS", - "agl", - "annotatecms", - "bitrix", - "cakephp", - "chef", - "codeigniter", - "concrete5", - "croogo", - "drupal", - "elgg", - "fuelphp", - "installer", - "joomla", - "kohana", - "laravel", - "lithium", - "magento", - "mako", - "mediawiki", - "modulework", - "moodle", - "phpbb", - "piwik", - "ppi", - "puppet", - "roundcube", - "shopware", - "silverstripe", - "symfony", - "typo3", - "wordpress", - "zend", - "zikula" - ], - "time": "2014-08-18 20:00:12" - } - ], - "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": "b921b294b594a3200aca6f1b52534101945dcfee" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpbb/epv/zipball/b921b294b594a3200aca6f1b52534101945dcfee", - "reference": "b921b294b594a3200aca6f1b52534101945dcfee", - "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.0.*" - }, - "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": "2014-10-24 06:19:10" - }, - { - "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.5.7", - "target-dir": "Symfony/Component/Console", - "source": { - "type": "git", - "url": "https://github.com/symfony/Console.git", - "reference": "61b13c27c9258e97009249d4ef193c964bf346b7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/Console/zipball/61b13c27c9258e97009249d4ef193c964bf346b7", - "reference": "61b13c27c9258e97009249d4ef193c964bf346b7", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/event-dispatcher": "~2.1" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.5-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": "2014-11-20 13:22:25" - }, - { - "name": "symfony/finder", - "version": "v2.5.7", - "target-dir": "Symfony/Component/Finder", - "source": { - "type": "git", - "url": "https://github.com/symfony/Finder.git", - "reference": "743aabbf4958663ef626e10ae3a6c7b17a0fa3bd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/Finder/zipball/743aabbf4958663ef626e10ae3a6c7b17a0fa3bd", - "reference": "743aabbf4958663ef626e10ae3a6c7b17a0fa3bd", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.5-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": "2014-10-26 07:41:27" - }, - { - "name": "symfony/process", - "version": "v2.5.7", - "target-dir": "Symfony/Component/Process", - "source": { - "type": "git", - "url": "https://github.com/symfony/Process.git", - "reference": "ffe6e27a57e31262c3204a0955076c27c54c8e7e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/Process/zipball/ffe6e27a57e31262c3204a0955076c27c54c8e7e", - "reference": "ffe6e27a57e31262c3204a0955076c27c54c8e7e", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.5-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": "2014-11-03 19:48:45" - }, - { - "name": "symfony/yaml", - "version": "v2.5.7", - "target-dir": "Symfony/Component/Yaml", - "source": { - "type": "git", - "url": "https://github.com/symfony/Yaml.git", - "reference": "900d38bc8f74a50343ce65dd1c1e9819658ee56b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/Yaml/zipball/900d38bc8f74a50343ce65dd1c1e9819658ee56b", - "reference": "900d38bc8f74a50343ce65dd1c1e9819658ee56b", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.5-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": "2014-11-20 13:22:25" - } - ], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": { - "phpbb/epv": 20 - }, - "prefer-stable": false, - "platform": { - "php": ">=5.3.3" - }, - "platform-dev": [] -} diff --git a/composer.phar b/composer.phar deleted file mode 100755 index a77fba5..0000000 Binary files a/composer.phar and /dev/null differ diff --git a/config/services.yml b/config/services.yml index fbfbf9f..6d153dc 100644 --- a/config/services.yml +++ b/config/services.yml @@ -2,7 +2,10 @@ services: phpbbmodders.holidayflare.listener: class: phpbbmodders\holidayflare\event\listener arguments: - - @config - - @template + - '@config' + - '@template' tags: - { name: event.listener } + + _defaults: + public: true diff --git a/docs/screenshots/README.md b/docs/screenshots/README.md new file mode 100644 index 0000000..8c0403f --- /dev/null +++ b/docs/screenshots/README.md @@ -0,0 +1,8 @@ +# Screenshots + +Real screenshots of a phpBB board index with each theme enabled (not mockups). Captured with headless Chromium against a real phpBB 3.3.18-dev + SQLite install running this extension, one theme enabled at a time. + +- [`christmas-theme.png`](christmas-theme.png) -- `enable_xmas` on: the Santa hat in the header corner, plus the smaller matching icon on the forum list. +- [`valentine-theme.png`](valentine-theme.png) -- `enable_valentine` on: the heart icon in the header corner. + +Excluded from the packaged extension archive (see `.gitattributes`'s `docs export-ignore`); these are for the repo/PR only, not shipped to end users. diff --git a/docs/screenshots/christmas-theme.png b/docs/screenshots/christmas-theme.png new file mode 100644 index 0000000..7e07d6f Binary files /dev/null and b/docs/screenshots/christmas-theme.png differ diff --git a/docs/screenshots/valentine-theme.png b/docs/screenshots/valentine-theme.png new file mode 100644 index 0000000..b3a22ee Binary files /dev/null and b/docs/screenshots/valentine-theme.png differ diff --git a/event/listener.php b/event/listener.php index 038e464..bb14998 100644 --- a/event/listener.php +++ b/event/listener.php @@ -1,10 +1,12 @@ template->assign_var('S_ENABLE_HOHOHATCORNER', $this->config['enable_hohohatcorner']); + $this->template->assign_vars(array( + 'S_ENABLE_XMAS' => $this->config['enable_xmas'], + 'S_ENABLE_VALENTINE' => $this->config['enable_valentine'], + )); } } diff --git a/language/ar/holidayflare_acp.php b/language/ar/holidayflare_acp.php index 3c1848c..617f9ca 100644 --- a/language/ar/holidayflare_acp.php +++ b/language/ar/holidayflare_acp.php @@ -1,13 +1,16 @@ 'أيام المناسبات', 'ACP_HOLIDAYFLARE_EXPLAIN' => 'المُناسبات السعيدة !', - 'ENABLE_HOHOHATCORNER' => 'تفعيل', - 'ENABLE_HOHOHATCORNER_EXPLAIN' => 'اختيارك "نعم" يعني إظهار صورة المناسبة في ترويسة المنتدى , اختيارك "لا" يعني إخفائها.', + 'ENABLE_XMAS' => 'تفعيل زينة الكريسماس', + 'ENABLE_XMAS_EXPLAIN' => 'اختيارك "نعم" يعني إظهار زينة الكريسماس في ترويسة المنتدى، واختيارك "لا" يعني إخفاءها.', + + 'ENABLE_VALENTINE' => 'تفعيل زينة عيد الحب', + 'ENABLE_VALENTINE_EXPLAIN' => 'اختيارك "نعم" يعني إظهار زينة عيد الحب في ترويسة المنتدى، واختيارك "لا" يعني إخفاءها.', )); diff --git a/language/ar/info_acp_holidayflare.php b/language/ar/info_acp_holidayflare.php index 8c7ab6a..4cf5923 100644 --- a/language/ar/info_acp_holidayflare.php +++ b/language/ar/info_acp_holidayflare.php @@ -1,13 +1,16 @@ 'Holiday Flare', 'ACP_HOLIDAYFLARE_EXPLAIN' => 'Happy Holidays!', - 'ENABLE_HOHOHATCORNER' => 'Enable Santa Hat', - 'ENABLE_HOHOHATCORNER_EXPLAIN' => 'Select "Yes" to show our Santa Hat and "No" to hide it.', + 'ENABLE_XMAS' => 'Christmas Theme', + 'ENABLE_XMAS_EXPLAIN' => 'Select "Yes" to show the Christmas Theme and "No" to hide it.', + + 'ENABLE_VALENTINE' => 'Valentine Theme', + 'ENABLE_VALENTINE_EXPLAIN' => 'Select "Yes" to show the Valentine Theme and "No" to hide it.', )); diff --git a/language/en/info_acp_holidayflare.php b/language/en/info_acp_holidayflare.php index 9c2fe05..1d80b4f 100644 --- a/language/en/info_acp_holidayflare.php +++ b/language/en/info_acp_holidayflare.php @@ -1,10 +1,12 @@ -* @license GNU General Public License, version 2 (GPL-2.0) -* -*/ + * + * Holiday Flare extension for the phpBB Forum Software package + * + * @copyright (c) 2015 VSE (Matt Friedman) & bonelifer (William Jacoby) bonelifer@phpbbmodders.net + * @copyright (c) 2026, phpBB Modders, https://www.phpbbmodders.com/ + * @license GNU General Public License, version 2 (GPL-2.0) + * + * French translation by Galixte (http://www.galixte.com) + * + */ /** * DO NOT CHANGE @@ -35,13 +37,16 @@ // in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine // // Some characters you may want to copy&paste: -// ’ « » “ ” … +// ’ « » “ ” … // $lang = array_merge($lang, array( 'ACP_HOLIDAYFLARE' => 'Illuminations de Noël', - 'ACP_HOLIDAYFLARE_EXPLAIN' => 'Joyeuses fêtes !', + 'ACP_HOLIDAYFLARE_EXPLAIN' => 'Joyeuses fêtes !', + + 'ENABLE_XMAS' => 'Activer le thème de Noël', + 'ENABLE_XMAS_EXPLAIN' => 'Sélectionner « Oui » pour afficher le thème de Noël et « Non » pour le masquer.', - 'ENABLE_HOHOHATCORNER' => 'Activer le chapeau du Père Noël', - 'ENABLE_HOHOHATCORNER_EXPLAIN' => 'Sélectionner « Oui » pour afficher le chapeau du Père Noël et « Non » pour le masquer.', + 'ENABLE_VALENTINE' => 'Activer le thème de la Saint-Valentin', + 'ENABLE_VALENTINE_EXPLAIN' => 'Sélectionner « Oui » pour afficher le thème de la Saint-Valentin et « Non » pour le masquer.', )); diff --git a/language/fr/info_acp_holidayflare.php b/language/fr/info_acp_holidayflare.php index 0f7106f..871c749 100644 --- a/language/fr/info_acp_holidayflare.php +++ b/language/fr/info_acp_holidayflare.php @@ -1,13 +1,15 @@ -* @license GNU General Public License, version 2 (GPL-2.0) -* -*/ + * + * Holiday Flare extension for the phpBB Forum Software package + * + * @copyright (c) 2015 VSE (Matt Friedman) & bonelifer (William Jacoby) bonelifer@phpbbmodders.net + * @copyright (c) 2026, phpBB Modders, https://www.phpbbmodders.com/ + * @license GNU General Public License, version 2 (GPL-2.0) + * + * French translation by Galixte (http://www.galixte.com) + * + */ /** * DO NOT CHANGE diff --git a/language/nl/holidayflare_acp.php b/language/nl/holidayflare_acp.php new file mode 100644 index 0000000..6178e73 --- /dev/null +++ b/language/nl/holidayflare_acp.php @@ -0,0 +1,52 @@ + 'Holiday Flare', + 'ACP_HOLIDAYFLARE_EXPLAIN' => 'Fijne Feesten!', + + 'ENABLE_XMAS' => 'Kerstthema', + 'ENABLE_XMAS_EXPLAIN' => 'Selecteer "Ja" om het Kerstthema te zien en "Nee" om het te verbergen.', + + 'ENABLE_VALENTINE' => 'Valentijnthema', + 'ENABLE_VALENTINE_EXPLAIN' => 'Selecteer "Ja" om het Valentijnthema te zien en "Nee" om het te verbergen.', +)); diff --git a/language/nl/info_acp_holidayflare.php b/language/nl/info_acp_holidayflare.php new file mode 100644 index 0000000..fe53064 --- /dev/null +++ b/language/nl/info_acp_holidayflare.php @@ -0,0 +1,46 @@ + 'Holiday Flare', + 'ACP_HOLIDAYFLARE_SETTINGS' => 'Instellingen', +)); diff --git a/license.txt b/license.txt index d159169..b8b347f 100644 --- a/license.txt +++ b/license.txt @@ -279,61 +279,3 @@ POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/migrations/config_data.php b/migrations/config_data.php index 99f3b98..e12812c 100644 --- a/migrations/config_data.php +++ b/migrations/config_data.php @@ -1,11 +1,13 @@ config['enable_hohohatcorner'])) + { + $this->config->set('enable_xmas', (int) $this->config['enable_hohohatcorner']); + $this->config->delete('enable_hohohatcorner'); + } + else if (!isset($this->config['enable_xmas'])) + { + $this->config->set('enable_xmas', 0); + } + } + + public function revert_data() + { + return array( + array('config.remove', array('enable_valentine')), + array('custom', array(array($this, 'restore_hohohatcorner_config'))), + ); + } + + public function restore_hohohatcorner_config() + { + if (isset($this->config['enable_xmas'])) + { + $this->config->set('enable_hohohatcorner', (int) $this->config['enable_xmas']); + $this->config->delete('enable_xmas'); + } + } +} diff --git a/phpunit.xml.dist b/phpunit.xml.dist deleted file mode 100755 index 289449d..0000000 --- a/phpunit.xml.dist +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - ./tests - ./tests/functional - - - ./tests/functional/ - - - - - - ./tests/ - - - ./ - - ./language/ - ./migrations/ - ./tests/ - - - - diff --git a/styles/Green-Style-Slim/template/event/overall_footer_after.html b/styles/Green-Style-Slim/template/event/overall_footer_after.html new file mode 100644 index 0000000..a449f3d --- /dev/null +++ b/styles/Green-Style-Slim/template/event/overall_footer_after.html @@ -0,0 +1,5 @@ + + + + + diff --git a/styles/Green-Style-Slim/template/event/overall_header_head_append.html b/styles/Green-Style-Slim/template/event/overall_header_head_append.html new file mode 100644 index 0000000..325514c --- /dev/null +++ b/styles/Green-Style-Slim/template/event/overall_header_head_append.html @@ -0,0 +1,5 @@ + + + + + diff --git a/styles/pro_ubuntu_lucid/template/event/overall_footer_after.html b/styles/pro_ubuntu_lucid/template/event/overall_footer_after.html new file mode 100644 index 0000000..a449f3d --- /dev/null +++ b/styles/pro_ubuntu_lucid/template/event/overall_footer_after.html @@ -0,0 +1,5 @@ + + + + + diff --git a/styles/pro_ubuntu_lucid/template/event/overall_header_head_append.html b/styles/pro_ubuntu_lucid/template/event/overall_header_head_append.html new file mode 100644 index 0000000..325514c --- /dev/null +++ b/styles/pro_ubuntu_lucid/template/event/overall_header_head_append.html @@ -0,0 +1,5 @@ + + + + + diff --git a/styles/proflat/template/event/overall_footer_after.html b/styles/proflat/template/event/overall_footer_after.html new file mode 100644 index 0000000..a449f3d --- /dev/null +++ b/styles/proflat/template/event/overall_footer_after.html @@ -0,0 +1,5 @@ + + + + + diff --git a/styles/proflat/template/event/overall_header_head_append.html b/styles/proflat/template/event/overall_header_head_append.html new file mode 100644 index 0000000..325514c --- /dev/null +++ b/styles/proflat/template/event/overall_header_head_append.html @@ -0,0 +1,5 @@ + + + + + diff --git a/styles/prosilver/template/event/overall_footer_after.html b/styles/prosilver/template/event/overall_footer_after.html new file mode 100644 index 0000000..a449f3d --- /dev/null +++ b/styles/prosilver/template/event/overall_footer_after.html @@ -0,0 +1,5 @@ + + + + + diff --git a/styles/prosilver/template/event/overall_header_head_append.html b/styles/prosilver/template/event/overall_header_head_append.html index 85ce3ac..325514c 100644 --- a/styles/prosilver/template/event/overall_header_head_append.html +++ b/styles/prosilver/template/event/overall_header_head_append.html @@ -1,3 +1,5 @@ - - + + + + diff --git a/styles/prosilver/template/event/overall_header_page_body_before.html b/styles/prosilver/template/event/overall_header_page_body_before.html deleted file mode 100644 index dc8e68d..0000000 --- a/styles/prosilver/template/event/overall_header_page_body_before.html +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/styles/prosilver/theme/hohohatcorner.css b/styles/prosilver/theme/hohohatcorner.css deleted file mode 100644 index 08eb51f..0000000 --- a/styles/prosilver/theme/hohohatcorner.css +++ /dev/null @@ -1,31 +0,0 @@ -#banner-xmas { - float: left; - height: 96px; - width: 96px; - margin: -159px 0 0 -36px; - position: relative; - z-index: 900; - background: transparent url(images/hohohat.png) 0 0 no-repeat; /* http://artdesigner.lv/licensing | http://artdesigner.lv/silent-night-10-christmas-icons */ - display: block; -} - -.rtl #banner-xmas { - float: right; - height: 96px; - width: 96px; - margin: -159px -36px 0 0; - position: relative; - z-index: 900; - background: transparent url(images/hohohat.png) 0 0 no-repeat; - display: block; - -moz-transform: scaleX(-1); - -o-transform: scaleX(-1); - -webkit-transform: scaleX(-1); - transform: scaleX(-1); - filter: FlipH; - -ms-filter: "FlipH"; -} - -@media only screen and (max-width: 700px), only screen and (max-device-width: 700px) { - #banner-xmas { display: none } -} diff --git a/styles/prosilver/theme/images/valentine.png b/styles/prosilver/theme/images/valentine.png new file mode 100644 index 0000000..1ffc806 Binary files /dev/null and b/styles/prosilver/theme/images/valentine.png differ diff --git a/styles/prosilver/theme/images/hohohat.png b/styles/prosilver/theme/images/xmas.png similarity index 100% rename from styles/prosilver/theme/images/hohohat.png rename to styles/prosilver/theme/images/xmas.png diff --git a/styles/prosilver/theme/images/xmas_mini.png b/styles/prosilver/theme/images/xmas_mini.png new file mode 100644 index 0000000..fd0e2d5 Binary files /dev/null and b/styles/prosilver/theme/images/xmas_mini.png differ diff --git a/styles/prosilver/theme/js/valentine.js b/styles/prosilver/theme/js/valentine.js new file mode 100644 index 0000000..9e856e7 --- /dev/null +++ b/styles/prosilver/theme/js/valentine.js @@ -0,0 +1,3 @@ +(function($) { + $('').insertBefore('#page-header'); +})(jQuery); diff --git a/styles/prosilver/theme/js/xmas.js b/styles/prosilver/theme/js/xmas.js new file mode 100644 index 0000000..4a8d3f1 --- /dev/null +++ b/styles/prosilver/theme/js/xmas.js @@ -0,0 +1,4 @@ +(function($) { + $('').insertBefore('#page-header'); + $('
').insertBefore('.forabg, .forumbg'); +})(jQuery); diff --git a/styles/prosilver/theme/valentine.css b/styles/prosilver/theme/valentine.css new file mode 100644 index 0000000..b992a9d --- /dev/null +++ b/styles/prosilver/theme/valentine.css @@ -0,0 +1,26 @@ +#banner-valentine { + float: left; + height: 96px; + width: 96px; + margin-top: -8px; + margin-left: -35px; + position: absolute; + z-index: 1; + background: transparent url(images/valentine.png) 0 0 no-repeat; + display: block; +} + +.rtl #banner-valentine { + float: right; + margin-right: -35px; + -moz-transform: scaleX(-1); + -o-transform: scaleX(-1); + -webkit-transform: scaleX(-1); + transform: scaleX(-1); + filter: FlipH; + -ms-filter: "FlipH"; +} + +@media only screen and (max-width: 700px), only screen and (max-device-width: 700px) { + #banner-valentine { display: none; } +} diff --git a/styles/prosilver/theme/xmas.css b/styles/prosilver/theme/xmas.css new file mode 100644 index 0000000..cf41632 --- /dev/null +++ b/styles/prosilver/theme/xmas.css @@ -0,0 +1,48 @@ +#banner-xmas { + float: left; + height: 96px; + width: 96px; + margin-top: -8px; + margin-left: -35px; + position: absolute; + z-index: 1; + background: transparent url(images/xmas.png) 0 0 no-repeat; /* http://artdesigner.lv/licensing | http://artdesigner.lv/silent-night-10-christmas-icons */ + display: block; +} + +.rtl #banner-xmas { + float: right; + margin-right: -35px; + -moz-transform: scaleX(-1); + -o-transform: scaleX(-1); + -webkit-transform: scaleX(-1); + transform: scaleX(-1); + filter: FlipH; + -ms-filter: "FlipH"; +} + +.forum-xmas { + background: transparent url("images/xmas_mini.png") 0 0 no-repeat; + position: absolute; + height: 50px; + width: 50px; + z-index: 1; + display: block; + margin-left: -18px; + margin-top: -4px; +} + +.rtl .forum-xmas { + float: right; + margin-right: -18px; + -moz-transform: scaleX(-1); + -o-transform: scaleX(-1); + -webkit-transform: scaleX(-1); + transform: scaleX(-1); + filter: FlipH; + -ms-filter: "FlipH"; +} + +@media only screen and (max-width: 700px), only screen and (max-device-width: 700px) { + #banner-xmas, .forum-xmas { display: none; } +} diff --git a/travis/prepare-phpbb.sh b/travis/prepare-phpbb.sh deleted file mode 100755 index 01770ad..0000000 --- a/travis/prepare-phpbb.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -# -# This file is part of the phpBB Forum Software package. -# -# @copyright (c) phpBB Limited -# @license GNU General Public License, version 2 (GPL-2.0) -# -# For full copyright and license information, please see -# the docs/CREDITS.txt file. -# -set -e -set -x - -EXTNAME=$1 -BRANCH=$2 -EXTPATH_TEMP=$3 - -# Copy extension to a temp folder -mkdir ../../tmp -cp -R . ../../tmp -cd ../../ - -# Clone phpBB -git clone --depth=1 "git://github.com/phpbb/phpbb.git" "phpBB3" --branch=$BRANCH