Add initial files and templates for ps_emailalerts module

- Created LICENSE file for composer dependencies.
- Added autoload files: autoload_classmap.php, autoload_namespaces.php, autoload_psr4.php, autoload_real.php, and autoload_static.php.
- Initialized installed.json for composer.
- Added index.php and form templates for admin configuration.
- Implemented front-end templates for email alerts, including account management and product notifications.
- Included necessary headers and copyright notices in all new files.
This commit is contained in:
2025-04-22 23:48:43 +02:00
parent e53caaafab
commit c2c835faca
133 changed files with 12218 additions and 2 deletions

View File

@@ -0,0 +1,28 @@
#!/bin/bash
PS_VERSION=$1
set -e
# Docker images prestashop/prestashop may be used, even if the shop remains uninstalled
echo "Pull PrestaShop files (Tag ${PS_VERSION})"
docker rm -f temp-ps || true
docker volume rm -f ps-volume || true
docker run -tid --rm -v ps-volume:/var/www/html --name temp-ps prestashop/prestashop:$PS_VERSION
# Clear previous instance of the module in the PrestaShop volume
echo "Clear previous module"
docker exec -t --user root temp-ps sh -c 'if [ -d "/var/www/html/modules/ps_emailalerts" ]; then find /var/www/html/modules/ps_emailalerts -type f -exec rm {} +; fi'
# Run a container for PHPStan, having access to the module content and PrestaShop sources.
# This tool is outside the composer.json because of the compatibility with PHP 5.6
echo "Run PHPStan using phpstan-${PS_VERSION}.neon file"
docker run --rm --volumes-from temp-ps \
-v $PWD:/var/www/html/modules/ps_emailalerts \
-e _PS_ROOT_DIR_=/var/www/html \
--workdir=/var/www/html/modules/ps_emailalerts phpstan/phpstan:0.12 \
analyse \
--configuration=/var/www/html/modules/ps_emailalerts/tests/php/phpstan/phpstan-$PS_VERSION.neon

View File

@@ -0,0 +1,9 @@
includes:
- %currentWorkingDirectory%/tests/php/phpstan/phpstan.neon
parameters:
ignoreErrors:
- '~^Parameter #1 \$share of static method ShopCore::getContextListShopID\(\) expects string, false given\.$~'
- '~^Parameter #1 \$share of static method ShopCore::addSqlRestriction\(\) expects int, false given\.$~'
- '~^Parameter #4 \$templateVars of static method MailCore::send\(\) expects string, array<string, (mixed|int|string|\|)+> given\.$~'
- '~^Parameter #1 \$id of class Customer constructor expects null, int given\.$~'

View File

@@ -0,0 +1,7 @@
includes:
- %currentWorkingDirectory%/tests/php/phpstan/phpstan.neon
parameters:
ignoreErrors:
- '#Parameter \#1 \$share of static method ShopCore\:\:getContextListShopID\(\) expects string, false given.#'
- '#Parameter \#1 \$share of static method ShopCore\:\:addSqlRestriction\(\) expects int, false given.#'

View File

@@ -0,0 +1,7 @@
includes:
- %currentWorkingDirectory%/tests/php/phpstan/phpstan.neon
parameters:
ignoreErrors:
- '#Parameter \#1 \$share of static method ShopCore\:\:getContextListShopID\(\) expects string, false given.#'
- '#Parameter \#1 \$share of static method ShopCore\:\:addSqlRestriction\(\) expects int, false given.#'

View File

@@ -0,0 +1,7 @@
includes:
- %currentWorkingDirectory%/tests/php/phpstan/phpstan.neon
parameters:
ignoreErrors:
- '#Parameter \#1 \$share of static method ShopCore\:\:getContextListShopID\(\) expects string, false given.#'
- '#Parameter \#1 \$share of static method ShopCore\:\:addSqlRestriction\(\) expects int, false given.#'

View File

@@ -0,0 +1,7 @@
includes:
- %currentWorkingDirectory%/tests/php/phpstan/phpstan.neon
parameters:
ignoreErrors:
- '#Parameter \#1 \$share of static method ShopCore\:\:getContextListShopID\(\) expects string, false given.#'
- '#Parameter \#1 \$share of static method ShopCore\:\:addSqlRestriction\(\) expects int, false given.#'

View File

@@ -0,0 +1,14 @@
includes:
- %currentWorkingDirectory%/vendor/prestashop/php-dev-tools/phpstan/ps-module-extension.neon
parameters:
paths:
# From PHPStan 0.12, paths to check are relative to the neon file
- ../../../ps_emailalerts.php
- ../../../upgrade
- ../../../MailAlert.php
- ../../../controllers
reportUnmatchedIgnoredErrors: false
level: 5
ignoreErrors:
- '#Unreachable statement \- code above always terminates\.#'