diff --git a/.gitattributes b/.gitattributes index bb403ca..ce2f17d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,9 +1,21 @@ -.github export-ignore -.gitignore export-ignore -.gitattributes export-ignore -build.xml export-ignore -composer.lock export-ignore -phpunit.xml.* export-ignore -scripts export-ignore -tests export-ignore -README.MD export-ignore \ No newline at end of file +# Shared line endings and binary files +* text=auto eol=lf + +# Never convert line endings in binary files +*.png binary +*.jpg binary +*.jpeg binary +*.gif binary +*.webp binary +*.ico binary + +.github/ export-ignore +.gitignore export-ignore +.gitattributes export-ignore +build.xml export-ignore +composer.lock export-ignore +phpunit.xml.* export-ignore +scripts/ export-ignore +tests/ export-ignore +README.md export-ignore +docs/images/ export-ignore diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..9495b9e --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,38 @@ +name: Lint + +# PHP syntax check on the lowest PHP version this extension supports and the +# newest one phpBB 3.3 supports. tests.yml runs phpBB's own checks (code +# sniffer, EPV) on phpBB 3.3 with PHP 8.3. +on: + push: + branches: + - master + pull_request: + branches: + - master + +permissions: + contents: read + +jobs: + lint: + name: PHP ${{ matrix.php }} lint + runs-on: ubuntu-24.04 + strategy: + matrix: + php: ['8.3', '8.4'] + 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/*' -not -path './vendor/*' -print0 | xargs -0 -n1 php -l + + - name: Validate composer.json + run: composer validate --no-check-all --no-check-publish diff --git a/.gitignore b/.gitignore index 81def00..03dba9f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -/build/ +/build/ /vendor/ \ No newline at end of file diff --git a/README.MD b/README.MD deleted file mode 100644 index 9b8d6c8..0000000 --- a/README.MD +++ /dev/null @@ -1,16 +0,0 @@ -# Print All Posts - -Allows users, if they have the print topic permission for the forum the topic is located, to be able to print view all posts in a topic. - -## Installation - -1. Copy the extension to: `/ext/phpbbmodders/printallposts` -2. In the ACP, go to: **Customise → Manage extensions** -3. Enable the **Print All Posts** extension - -## Automated testing -[![Tests](https://github.com/phpbbmodders/printallposts/actions/workflows/tests.yml/badge.svg)](https://github.com/phpbbmodders/printallposts/actions/workflows/tests.yml) - -## License - -Licensed under the [GNU General Public License v2](license.txt) diff --git a/README.md b/README.md new file mode 100644 index 0000000..24cd80a --- /dev/null +++ b/README.md @@ -0,0 +1,62 @@ +# Print All Posts + +[![Tests](https://github.com/phpbbmodders/printallposts/actions/workflows/tests.yml/badge.svg)](https://github.com/phpbbmodders/printallposts/actions/workflows/tests.yml) [![Lint](https://github.com/phpbbmodders/printallposts/actions/workflows/lint.yml/badge.svg)](https://github.com/phpbbmodders/printallposts/actions/workflows/lint.yml) + +Lets users who can print topics in a forum print every post in a topic on one page. + +## Features + +- Adds a **Print all** link to the **Topic tools** menu, next to phpBB's own **Print view**. It opens in a new tab. +- phpBB's print view shows one page of posts at a time. **Print all** shows every post in the topic on a single printable page. +- Uses phpBB's existing **Can print topic** forum permission. Users without it don't see the link and can't open the page. + +## Screenshots + + + + + + +
The Print all link in the Topic tools menu, under Print view
Print all in the Topic tools menu
The print page showing all four posts of a topic that spans two pages
Every post on one printable page
+ +Click a screenshot for the full size. + +## Requirements + +- phpBB 3.3.19 or later +- PHP 8.3.36 or later + +## Installation + +1. Copy the extension to `/ext/phpbbmodders/printallposts` +2. In the Administration Control Panel, go to **Customise → Manage extensions** +3. Enable the **Print all posts in a topic** extension + +### Upgrading from `rmcgirr83/printallposts` + +This extension used to be Rich McGirr's `rmcgirr83/printallposts`. To move to this version: + +1. Disable the old **Print all posts in a topic** extension in the ACP. Do **not** delete its data. +2. Upload this version to `/ext/phpbbmodders/printallposts` and enable it. The new version won't enable while the old one is still on, and it removes the old extension's entry from the extension list when it is enabled. +3. Delete the `/ext/rmcgirr83/printallposts` folder and purge the board cache. + +If you disable the old extension from the command line (`bin/phpbbcli.php`) instead of the ACP, run `bin/phpbbcli.php cache:purge` before enabling the new one; the command-line disable doesn't clear the cache. + +## Contributing + +Contributions are welcome! + +- **Bug reports**: [Open an issue](https://github.com/phpbbmodders/printallposts/issues). +- **Everything else** (questions, feature requests, ideas, general discussion): [Use Discussions](https://github.com/orgs/phpbbmodders/discussions), or the [community forum](https://www.phpbbmodders.com/community/). +- Pull requests are welcome for bug fixes or discussed features. + +## Acknowledgments + +- Extension by Rich McGirr ([RMcGirr83](https://github.com/rmcgirr83)). +- 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/composer.json b/composer.json index 3bad85b..7f2a735 100644 --- a/composer.json +++ b/composer.json @@ -1,43 +1,43 @@ -{ - "name": "phpbbmodders/printallposts", - "type": "phpbb-extension", - "description": "Allows users, if they have the print topic permission for the forum the topic is located, to be able to print view all posts in a topic.", - "homepage": "https://www.phpbbmodders.com/", - "version": "1.0.4", - "time": "2026-10-22", - "keywords": [ - "phpbb", - "extension", - "print all posts in a topic", - "communication" - ], - "license": "GPL-2.0-only", - "authors": [ - { - "name": "phpBB Modders", - "email": "board@phpbbmodders.com", - "homepage": "https://www.phpbbmodders.com/", - "role": "Extension Developer" - }, - { - "name": "Rich McGirr", - "role": "Past Developer" - } - ], - "require": { - "php": ">=8.3.36", - "composer/installers": "~1.0.0" - }, - "extra": { - "display-name": "Print all posts in a topic", - "soft-require": { - "phpbb/phpbb": ">=3.3.19,<4.0.0@dev" - }, - "version-check": { - "host": "www.phpbb.com", - "directory": "/customise/db/extension/print_all_posts_in_a_topic", - "filename": "version_check", - "ssl": true - } - } +{ + "name": "phpbbmodders/printallposts", + "type": "phpbb-extension", + "description": "Lets users who can print topics in a forum print every post in a topic on one page.", + "homepage": "https://www.phpbbmodders.com/", + "version": "1.0.4", + "time": "2026-10-22", + "keywords": [ + "phpbb", + "extension", + "print all posts in a topic", + "communication" + ], + "license": "GPL-2.0-only", + "authors": [ + { + "name": "phpBB Modders", + "email": "board@phpbbmodders.com", + "homepage": "https://www.phpbbmodders.com/", + "role": "Extension Developer" + }, + { + "name": "Rich McGirr", + "role": "Past Developer" + } + ], + "require": { + "php": ">=8.3.36", + "composer/installers": "~1.0.0" + }, + "extra": { + "display-name": "Print all posts in a topic", + "soft-require": { + "phpbb/phpbb": ">=3.3.19,<4.0.0@dev" + }, + "version-check": { + "host": "www.phpbb.com", + "directory": "/customise/db/extension/print_all_posts_in_a_topic", + "filename": "version_check", + "ssl": true + } + } } \ No newline at end of file diff --git a/docs/images/screenshots/printallposts-print.png b/docs/images/screenshots/printallposts-print.png new file mode 100644 index 0000000..12093ef Binary files /dev/null and b/docs/images/screenshots/printallposts-print.png differ diff --git a/docs/images/screenshots/printallposts-topic-tools.png b/docs/images/screenshots/printallposts-topic-tools.png new file mode 100644 index 0000000..ae2c6cc Binary files /dev/null and b/docs/images/screenshots/printallposts-topic-tools.png differ diff --git a/styles/prosilver/template/event/viewtopic_topic_tools_after.html b/styles/prosilver/template/event/viewtopic_topic_tools_after.html index 93dbe1b..737f56c 100644 --- a/styles/prosilver/template/event/viewtopic_topic_tools_after.html +++ b/styles/prosilver/template/event/viewtopic_topic_tools_after.html @@ -1,7 +1,7 @@ -{% if U_PRINTALLPOSTS %} -
  • - - {{ lang('PRINT_ALL_POSTS') }} - -
  • +{% if U_PRINTALLPOSTS %} +
  • + + {{ lang('PRINT_ALL_POSTS') }} + +
  • {% endif %} \ No newline at end of file