Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
149 commits
Select commit Hold shift + click to select a range
32021b7
add docker-compose
MartinKreizl Oct 18, 2023
32ee88a
add gitignore
MartinKreizl Nov 1, 2023
5e59422
add composer
MartinKreizl Nov 1, 2023
338c673
move src directory to project root
MartinKreizl Nov 2, 2023
4a13d11
BULKGATE_PLUGIN_DIR constant
MartinKreizl Nov 2, 2023
8c84189
increase minimum platform version to 1.7.3.0
MartinKreizl Nov 2, 2023
fbb706d
single controller
MartinKreizl Nov 2, 2023
0f47893
readme
MartinKreizl Nov 2, 2023
0f2d268
console instructions
MartinKreizl Nov 2, 2023
5feb666
backoffice - modern page style
MartinKreizl Nov 2, 2023
4370fe6
modern controller
MartinKreizl Nov 3, 2023
c220422
remove old templates and controllers
MartinKreizl Nov 3, 2023
f00a976
Database service
MartinKreizl Nov 3, 2023
730d315
debug action
MartinKreizl Nov 3, 2023
11c02d0
index action
MartinKreizl Nov 3, 2023
3190204
namespaces...
MartinKreizl Nov 3, 2023
714311a
DI container
MartinKreizl Nov 3, 2023
51c5687
demo -> index
MartinKreizl Nov 6, 2023
cc48711
render module, define proxy actions
MartinKreizl Nov 6, 2023
9d2f523
automatic BulkGate\PrestaSms services
MartinKreizl Nov 7, 2023
fa48d22
remove custom Di factory
MartinKreizl Nov 7, 2023
71d91bc
services
MartinKreizl Nov 7, 2023
511ed62
update repositories to use PrastaSms\Database
MartinKreizl Nov 7, 2023
96f0c04
url and token - real implementation
MartinKreizl Nov 8, 2023
e948319
fix service
MartinKreizl Nov 8, 2023
d41d75b
application settings
MartinKreizl Nov 8, 2023
92d616c
plugin settings
MartinKreizl Nov 8, 2023
9879def
authenticate
MartinKreizl Nov 8, 2023
0d7ef76
sign-in sign-out
MartinKreizl Nov 8, 2023
25e30fc
legacy context usage for access shop and language data
MartinKreizl Nov 9, 2023
1b2bbc0
synchronizer, adapter usage
MartinKreizl Nov 10, 2023
cdf2800
readme...
MartinKreizl Nov 10, 2023
504156e
module - settings
MartinKreizl Nov 13, 2023
7d646c0
remove old files
MartinKreizl Nov 13, 2023
7bf2d30
install/uninstall
MartinKreizl Nov 13, 2023
089c440
send message
MartinKreizl Nov 14, 2023
5b83e6b
hook actionPrestaSmsSendSms
MartinKreizl Nov 14, 2023
2463561
success message - save settings
MartinKreizl Dec 7, 2023
0e55d94
hook actionPrestaSmsExtendsVariables
MartinKreizl Dec 7, 2023
6d1fbc2
hook refactoring
MartinKreizl Dec 7, 2023
ddc81e9
remove extensions
MartinKreizl Dec 7, 2023
6dd24b8
update
MartinKreizl Dec 7, 2023
746c20e
asynchronous asset
MartinKreizl Dec 11, 2023
55e9967
settings + defaults
MartinKreizl Dec 11, 2023
69af02e
ignore ps generated file
MartinKreizl Dec 11, 2023
1399e25
fix asset dispatcher hook registration
MartinKreizl Dec 11, 2023
bc1c7cd
readme...
MartinKreizl Apr 10, 2024
6839af6
add files...
MartinKreizl Jul 19, 2024
911856f
track composer
MartinKreizl Jul 19, 2024
ac5ee74
prestashops ui product catalog - TEST
MartinKreizl Jul 19, 2024
075362b
debug data + fix SPA proxy redirect urls
MartinKreizl Aug 26, 2024
9fe7bc8
fix event loaders
MartinKreizl Aug 29, 2024
4a61a06
organize services
MartinKreizl Aug 29, 2024
53d0496
implement Database\Connection - remove custom duplicated services
MartinKreizl Aug 29, 2024
21a2a9b
language change -> reload
MartinKreizl Aug 29, 2024
f6d4607
handle extra long debug log messages
MartinKreizl Aug 29, 2024
65175b3
composer - linter tools
MartinKreizl Aug 30, 2024
c2f0915
composer - stan
MartinKreizl Aug 30, 2024
9314b98
menu, twig + lint
MartinKreizl Aug 30, 2024
97b9b57
lint
MartinKreizl Aug 30, 2024
d2c8dee
organize hook registration + show alert when logout from module
MartinKreizl Aug 30, 2024
91e589f
fix deprecation config
MartinKreizl Aug 30, 2024
a87f837
move templates according to guides
MartinKreizl Aug 30, 2024
37f4768
debug URL
MartinKreizl Jan 20, 2025
c4dd64d
environment
MartinKreizl Jan 23, 2025
5660804
load language
MartinKreizl Jan 23, 2025
a9c59c7
load shop
MartinKreizl Jan 24, 2025
76f21d4
fix variables
MartinKreizl Jan 29, 2025
fa9a2bf
send message - variables
MartinKreizl Jan 30, 2025
10cb477
remove comment
MartinKreizl Jan 30, 2025
124b6cf
remove experiment
MartinKreizl Jan 30, 2025
ba2085b
asynchronous - cron|asset
MartinKreizl Jan 31, 2025
b700fb1
fix namespace
MartinKreizl Jan 31, 2025
06d5acb
marketing opt_in
MartinKreizl Jan 31, 2025
9eb3ad7
refactor readability
MartinKreizl Jan 31, 2025
1afcba8
fix reload
MartinKreizl Feb 3, 2025
4909cc4
remove dump
MartinKreizl Feb 3, 2025
4f5a9bb
refactor
lukaspijak Mar 17, 2025
7917384
update phpstan
lukaspijak Mar 18, 2025
c83a37a
prestasms image builder
MartinKreizl May 28, 2025
c4d1825
composed version
MartinKreizl May 28, 2025
bbeacf6
cs fixer
MartinKreizl May 28, 2025
f564f51
readme...
MartinKreizl May 28, 2025
282cb38
Merge branch 'docker' into new-module
MartinKreizl May 28, 2025
c4211ec
image builder...
MartinKreizl Jun 3, 2025
cfb46f1
custom DI + symfony DI
MartinKreizl Jun 4, 2025
093e10a
autoload - class map only
MartinKreizl Jun 5, 2025
5c1f35f
fix database api
MartinKreizl Jun 5, 2025
59d9ebf
phpstan config
MartinKreizl Jun 5, 2025
d46f791
use prestasms image
MartinKreizl Jun 5, 2025
62b8a3e
fix DI - package
MartinKreizl Jun 5, 2025
318f01f
Merge remote-tracking branch 'origin/new-module' into new-module
MartinKreizl Jun 5, 2025
426e1fc
stop tracking vendor
MartinKreizl Jun 6, 2025
35b63b2
update bulkgate/plugin pkg
MartinKreizl Jun 6, 2025
16af8c7
add distribution.php
MartinKreizl Jun 6, 2025
3d6d82b
use constants
MartinKreizl Jun 6, 2025
fe3d5f3
distribution.php - autoload with composer
MartinKreizl Jun 6, 2025
6331bfd
fix distribution.php constants loading
MartinKreizl Jun 6, 2025
3442806
fix phpstan errors
MartinKreizl Jun 9, 2025
21469cf
php-cs-fixer - respect .gitignore files
MartinKreizl Jun 9, 2025
66056fe
image - setup git to operate everywhere
MartinKreizl Jun 9, 2025
45f7470
finalize docker image build script logic
MartinKreizl Jun 10, 2025
80070e2
initial versions
MartinKreizl Jun 10, 2025
46d7685
docker action
MartinKreizl Jun 10, 2025
dcfc028
versions...
MartinKreizl Jun 10, 2025
7024f1d
fix - shell
MartinKreizl Jun 10, 2025
fee6d3b
fix run
MartinKreizl Jun 10, 2025
6dd2738
fix self cahnges
MartinKreizl Jun 10, 2025
8d0b603
fix versions
MartinKreizl Jun 10, 2025
5198e19
fix push images
MartinKreizl Jun 10, 2025
492e117
fix ghcr login
MartinKreizl Jun 10, 2025
290b161
gh - tests
MartinKreizl Jun 10, 2025
007d283
fix self changes
MartinKreizl Jun 10, 2025
27c4bc8
fix matrix
MartinKreizl Jun 10, 2025
42be4dc
fix tests step
MartinKreizl Jun 10, 2025
1ed2824
keep tests directory
MartinKreizl Jun 10, 2025
1ce2244
move prestashop/php-dev-tools package to require-dev
MartinKreizl Jun 10, 2025
7de3fd1
gh - release
MartinKreizl Jun 10, 2025
45acb8d
fix container
MartinKreizl Jun 10, 2025
113e943
fix release
MartinKreizl Jun 10, 2025
80b7da7
fix - do not run o tag push
MartinKreizl Jun 10, 2025
7ef5f52
image install zip
MartinKreizl Jun 10, 2025
d3571ca
fix tags-ignore
MartinKreizl Jun 10, 2025
2287390
fix...
MartinKreizl Jun 10, 2025
2c9ad03
fix...
MartinKreizl Jun 10, 2025
a5b9da2
fix...
MartinKreizl Jun 10, 2025
163b1ff
fix..ignore tags
MartinKreizl Jun 10, 2025
c2c824b
revert..ignore tags
MartinKreizl Jun 10, 2025
9873b7b
install gh cli
MartinKreizl Jun 10, 2025
a651ff2
fix..release
MartinKreizl Jun 10, 2025
4b162e0
fix..only branches
MartinKreizl Jun 10, 2025
f89370c
fix..only branches
MartinKreizl Jun 10, 2025
5016597
docker-compose - enable configuration via env + guidelines
MartinKreizl Jul 1, 2025
1cc9634
update mariadb (multiplatform image)
MartinKreizl Jul 1, 2025
d1a0350
cs fixer
lukaspijak Jul 2, 2025
70a2570
ignore config.xml
MartinKreizl Jul 3, 2025
311cccb
dev info
MartinKreizl Jul 3, 2025
d7aa3bf
Merge remote-tracking branch 'origin/new-module' into new-module
MartinKreizl Jul 3, 2025
948ea0e
refactoring + tests
lukaspijak Jul 3, 2025
484e256
Merge branch 'new-module' of https://github.com/BulkGate/prestasms in…
lukaspijak Jul 3, 2025
8d2744c
Update bootstrap.php
lukaspijak Jul 3, 2025
39d14bf
tests
lukaspijak Jul 7, 2025
4610f94
affiliate
lukaspijak Jul 7, 2025
812076e
affiliate id to referer id
lukaspijak Jul 7, 2025
6b274af
Update .gitignore
lukaspijak Jul 7, 2025
9248a69
fix phpstan.neon
lukaspijak Jul 7, 2025
d392ccd
remove composer lock
lukaspijak Jul 7, 2025
5d160a6
Update phpstan.neon
lukaspijak Jul 7, 2025
954d4a4
fix referer id
lukaspijak Jul 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions .docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
ARG PRESTASHOP_VERSION=8.2.1
ARG PHP_VERSION=8.1
FROM prestashop/prestashop:${PRESTASHOP_VERSION}-${PHP_VERSION}

ARG PRESTASHOP_VERSION
ARG PHP_VERSION

LABEL org.opencontainers.image.source=https://github.com/bulkgate/prestasms
LABEL version=${PRESTASHOP_VERSION}-${PHP_VERSION}

# install composer with platform dependencies, xdebug
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
curl \
unzip \
zip \
git \
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

RUN pecl install xdebug$(php -r "echo(version_compare(getenv('PHP_VERSION'), '8', '>') ? '' : '-3.1.5');") && \
docker-php-ext-enable xdebug && \
#https://www.jetbrains.com/help/idea/configuring-xdebug.html#537ef8ac
echo "xdebug.mode=debug" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini && \
echo "xdebug.client_host = host.docker.internal" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini # this is address of default docker bridge network

COPY config-files/post-install.sh /tmp/post-install-scripts/

RUN git config --system --add safe.directory '*'

RUN chmod +x /tmp/post-install-scripts/post-install.sh

WORKDIR /var/www/html

ENV PS_DEV_MODE=1 \
PS_INSTALL_AUTO=1

3 changes: 3 additions & 0 deletions .docker/config-files/post-install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
echo "BulkGate module - postinstall"

su -s /bin/bash www-data -c "bin/console prestashop:module install bg_prestasms"
82 changes: 82 additions & 0 deletions .docker/generate.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
set -e

save_version_into_file() {
local versions_file="$SCRIPT_DIR/versions.json"
local php_version="$1"
local prestashop_version="$2"

php -r '
$file = $argv[1];
$php = $argv[2];
$ps = $argv[3];
$arr = json_decode(file_get_contents($file), true);
$arr[] = ["php" => $php, "prestashop" => $ps];
// Odstraň duplicity
$arr = array_map("unserialize", array_unique(array_map("serialize", $arr)));
// Seřaď podle prestashop, pak php
usort($arr, function($a, $b) {
$cmp = version_compare($a["prestashop"], $b["prestashop"]);
if ($cmp !== 0) return $cmp;
return version_compare($a["php"], $b["php"]);
});
file_put_contents($file, json_encode($arr, JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES));
' "$versions_file" "$php_version" "$prestashop_version"
}

# get directory of this file
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)

# Zpracování argumentů
PUSH=1
EMIT_VERSION=1
PHP_VERSION=""
PRESTASHOP_VERSION=""
BUILD_ARGS=""

while [[ $# -gt 0 ]]; do
case "$1" in
--no-push)
PUSH=0
shift
;;
--no-emit-version)
EMIT_VERSION=0
shift
;;
--php-version)
PHP_VERSION="$2"
shift 2
;;
--prestashop-version)
PRESTASHOP_VERSION="$2"
shift 2
;;
*)
shift
;;
esac
done


if [[ -n "$PHP_VERSION" && -n "$PRESTASHOP_VERSION" ]]; then
BUILD_ARGS="$BUILD_ARGS --build-arg PHP_VERSION=$PHP_VERSION --build-arg PRESTASHOP_VERSION=$PRESTASHOP_VERSION"
fi

# build image
docker build $BUILD_ARGS "$SCRIPT_DIR" -t ghcr.io/bulkgate/prestasms
VERSION=$(docker inspect --format '{{ .Config.Labels.version }}' ghcr.io/bulkgate/prestasms)

# tag image
docker image tag ghcr.io/bulkgate/prestasms ghcr.io/bulkgate/prestasms:$VERSION

# add version matrix
if [[ -n "$BUILD_ARGS" && $EMIT_VERSION -eq 1 ]]; then
echo "writing version into file ... $VERSION"
save_version_into_file $PHP_VERSION $PRESTASHOP_VERSION
fi

# push image
if [ $PUSH -eq 1 ]; then
echo "Pushing image..."
docker push ghcr.io/bulkgate/prestasms:$VERSION
fi
28 changes: 28 additions & 0 deletions .docker/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Docker image
Tento image je určen pro účely vývoje BulkGate PrestaShop SMS modulu. Image můžete použít k napojení do IDE a také ke spuštění webové aplikace.
Image obsahuje instalaci composeru a xdebugu. [Seznam dostupných images](https://github.com/BulkGate/prestasms/pkgs/container/prestasms).

## 1. Definování matice verzí
V souboru versions.json jsou uloženy meta informace o matici dostupných verzí php a prestashop aplikace. Pokud tento seznam potřebujete rozšířit, tak stačí spustit:

```shell
.docker/generate.sh --php-version 8.4 --prestashop-version 9.0.0 --no-push
```

## 2. Vytvoření image
Pokud chcete pro lokální účely vytvořit image, který nechcete distribuovat do registru a ani přidat do versions.json, můžete spustit:


```shell
.docker/generate.sh --php-version=8.4 --prestashop-version=9.0.0 --no-push --no-emit-version
```

> Každé spuštění scriptu vygeneruje 2 image a to (ghcr.io/bulkgate/prestasms) pro lokální použití a (ghcr.io/bulkgate/prestasms:9.0.0-8.4) pro nahrání do registru


## 3. Použití image

```yaml
prestashop:
image: ghcr.io/bulkgate/prestasms:8.2.1-8.1
```
22 changes: 22 additions & 0 deletions .docker/versions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
[
{
"php": "7.4",
"prestashop": "1.7.8.0"
},
{
"php": "7.4",
"prestashop": "8.2.0"
},
{
"php": "8.1",
"prestashop": "8.2.0"
},
{
"php": "7.4",
"prestashop": "8.2.1"
},
{
"php": "8.1",
"prestashop": "8.2.1"
}
]
14 changes: 14 additions & 0 deletions .env.template
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#verze naseho image prestashopu - https://github.com/BulkGate/prestasms/pkgs/container/prestasms
PRESTASHOP_IMAGE_VERSION=1.7.8.0-7.4

# kdykoliv nastavujes PRESTASHOP_DOMAIN s portem, tak presne ten samy port musi byt uveden zde
PRESTASHOP_PORT=8081

# domena vcetne portu v pripade, ze ne to neni default http (80), nebo https (443) port
PRESTASHOP_DOMAIN=localhost:8081

# na tomto portu pobezi adminer web service
ADMINER_PORT=9081

# nazev databaze, kterou bude pouzivat instance prestashopu
MYSQL_DATABASE=prestashop
47 changes: 47 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Build docker images

on:
push:
branches:
- '**'
tags-ignore:
- '**'
paths:
- '.docker/**'
- '.github/workflows/docker.yml'

jobs:
init-matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Read version matrix
id: set-matrix
run: echo "matrix=$(jq -c . < .docker/versions.json)" >> $GITHUB_OUTPUT

build:
needs: init-matrix
runs-on: ubuntu-latest
strategy:
matrix:
include: ${{ fromJSON(needs.init-matrix.outputs.matrix) }}
steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Prepare executable
run: chmod +x .docker/generate.sh

- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build image
run: .docker/generate.sh --no-emit-version --php-version ${{ matrix.php }} --prestashop-version ${{ matrix.prestashop }}
45 changes: 45 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Release application

on:
release:
types: [created]

jobs:
bundle:
runs-on: ubuntu-latest
container: ghcr.io/bulkgate/prestasms:8.2.1-8.1
env:
GH_TOKEN: ${{github.token}} #required by gh cli
steps:
- uses: actions/checkout@v1

- name: Install packages
run: composer install --prefer-dist --no-progress --no-suggest

- name: Apply code style
run: composer run prestashop-lint

- name: Keep only production dependencies
run: composer install --prefer-dist --no-progress --no-suggest --no-dev

- name: Create plugin directory
run: mkdir -p /tmp/bg_prestasms

- name: Copy plugin files
run: cp -r config controllers src translations vendor views logo.png LICENSE *.php composer.json /tmp/bg_prestasms

- name: Create plugin zip
run: cd /tmp && zip -r bg_prestasms.zip bg_prestasms

- name: Install GitHub CLI
run: |
apt-get update
apt-get install -y curl
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null
apt-get update
apt-get install -y gh

- name: Add zip to release
run: gh release upload ${{github.ref_name}} /tmp/bg_prestasms.zip
61 changes: 61 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Run application tests

on:
push:
branches:
- '**'
tags-ignore:
- '**'
paths-ignore:
- '.docker/**'
- '.github/**'
- '!.github/workflows/tests.yml'

jobs:
tests:
runs-on: ubuntu-latest

# minimum and maximum supported version
strategy:
matrix:
include:
- php: 7.4
prestashop: 1.7.8.0
- php: 7.4
prestashop: 8.2.1
- php: 8.1
prestashop: 8.2.1

container: ghcr.io/bulkgate/prestasms:${{ matrix.prestashop }}-${{ matrix.php }}

steps:
- uses: actions/checkout@v2

- name: Install dependencies
run: composer install --prefer-dist --no-progress --no-suggest

- name: Run test suite
run: composer run tester

- name: Run static analysis
run: composer run phpstan

coverage:
runs-on: ubuntu-latest

container: ghcr.io/bulkgate/prestasms:8.2.1-8.1

steps:
- uses: actions/checkout@v2

- name: Install dependencies
run: composer install --prefer-dist --no-progress --no-suggest

- name: Run coverage
run: composer run coverage

- name: Upload coverage
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: coverage.html
12 changes: 12 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
.idea
coverage.html
config*.xml
tests/**/output/*.actual
tests/**/output/*.expected
config/includes/*.local.yml
*.cache
.env
prestashop
composer.lock
vendor
affiliate.php
3 changes: 0 additions & 3 deletions .gitmodules

This file was deleted.

21 changes: 21 additions & 0 deletions .php-cs-fixer.dist.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

$config = new PrestaShop\CodingStandards\CsFixer\Config();

// get git's ignored files and format for cs-fixer's finder usage
$ignored = [];
exec('git ls-files --others --ignored --exclude-standard | cut -d/ -f1 | sort -u', $ignored);

$finder = PhpCsFixer\Finder::create();
$finder
->in(__DIR__)
->exclude('vendor');

foreach ($ignored as $pathOrFile)
{
$finder->exclude($pathOrFile);
}

return $config
->setUsingCache(true)
->setFinder($finder);
Loading