[08/06/2024] Initial commit

This commit is contained in:
2024-06-08 11:07:49 +02:00
commit b32b05464d
420 changed files with 11740 additions and 0 deletions

View File

View File

@@ -0,0 +1,58 @@
server {
listen 80;
root /application/web/;
index index.php;
access_log /var/log/nginx/starter.tld_access.log;
error_log /var/log/nginx/starter.tld_error.log;
location / {
try_files $uri $uri/ @rewriteapp;
}
location @rewriteapp {
# rewrite all to index.php
rewrite ^(.*)$ /index.php/$1 last;
}
# Php configuration
location ~ ^/(index|index_dev)\.php(/|$) {
# Php-FPM Config (Socks or Network)
#fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
fastcgi_pass php-fpm:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_read_timeout 3000;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
}
# Security. discard all files and folders starting with a "."
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
# Stuffs
location = /favicon.ico {
allow all;
access_log off;
log_not_found off;
}
location ~ /robots.txt {
allow all;
access_log off;
log_not_found off;
}
# Static files
location ~* ^.+\.(jpg|jpeg|gif|css|png|js|pdf|zip)$ {
expires 30d;
access_log off;
log_not_found off;
}
}

View File

@@ -0,0 +1,48 @@
FROM php:8.1-fpm-alpine
WORKDIR "/application"
RUN apk --update --no-cache add git
RUN apk add bash
# Zip extension
RUN apk add --no-cache zip libzip-dev
RUN docker-php-ext-install zip
# Calendar extension
RUN docker-php-ext-install calendar
# Imagick extension needed for webp
RUN apk add --update --no-cache autoconf g++ imagemagick imagemagick-dev libtool make pcre-dev
RUN pecl install imagick
RUN docker-php-ext-enable imagick
# GD extension needed for html2pdf
RUN apk add --no-cache freetype libpng libjpeg-turbo freetype-dev libpng-dev libjpeg-turbo-dev && \
docker-php-ext-configure gd \
--with-freetype \
--with-jpeg \
NPROC=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || 1) && \
docker-php-ext-install -j$(nproc) gd && \
apk del --no-cache freetype-dev libpng-dev libjpeg-turbo-dev
# XDebug extension
#RUN apk add --no-cache --virtual .build-deps $PHPIZE_DEPS \
# && pecl install xdebug \
# && docker-php-ext-enable xdebug \
# && apk del -f .build-deps
# Intl extension
RUN apk add icu-dev
RUN docker-php-ext-configure intl && docker-php-ext-install intl
# Mysql extension
RUN docker-php-ext-install pdo_mysql
# Composer copy and run
COPY --from=composer /usr/bin/composer /usr/bin/composer
CMD composer install ; php-fpm
# Copy script used at docker-start
COPY docker-init.sh /usr/local/bin/docker-init
RUN chmod 755 /usr/local/bin/docker-init

View File

@@ -0,0 +1,45 @@
#!/bin/sh
set -e
set -o allexport
eval $(cat '.env' | sed -e '/^#/d;/^\s*$/d' -e 's/\(\w*\)[ \t]*=[ \t]*\(.*\)/\1=\2/' -e "s/=['\"]\(.*\)['\"]/=\1/g" -e "s/'/'\\\''/g" -e "s/=\(.*\)/='\1'/g")
set +o allexport
[ -d local/session ] || mkdir -p local/session
[ -d local/media ] || mkdir -p local/media
chmod -R +w local/session && chmod -R +w local/media
composer install
DB_FILE=local/config/database.yml
if ! test -f "$DB_FILE"; then
php Thelia thelia:install --db_host=mariadb --db_port=3306 --db_username=root --db_name="${MYSQL_DATABASE}" --db_password="${MYSQL_ROOT_PASSWORD}"
php Thelia module:refresh
php Thelia module:activate OpenApi
php Thelia module:activate ChoiceFilter
php Thelia module:activate StoreSeo
php Thelia module:activate ShortCode
php Thelia module:activate ShortCodeMeta
php Thelia module:activate SmartyRedirection
php Thelia module:deactivate HookAdminHome
php Thelia module:deactivate HookAnalytics
php Thelia module:deactivate HookCart
php Thelia module:deactivate HookCustomer
php Thelia module:deactivate HookSearch
php Thelia module:deactivate HookLang
php Thelia module:deactivate HookCurrency
php Thelia module:deactivate HookNavigation
php Thelia module:deactivate HookProductsNew
php Thelia module:deactivate HookSocial
php Thelia module:deactivate HookNewsletter
php Thelia module:deactivate HookContact
php Thelia module:deactivate HookLinks
php Thelia module:deactivate HookProductsOffer
php Thelia template:set frontOffice "${ACTIVE_FRONT_TEMPLATE}"
php Thelia template:set backOffice "${ACTIVE_ADMIN_TEMPLATE}"
php Thelia thelia:config set imagine_graphic_driver imagick
php Thelia admin:create --login_name thelia2 --password thelia2 --last_name thelia2 --first_name thelia2 --email thelia2@example.com
fi
php Thelia module:refresh

View File

@@ -0,0 +1,16 @@
upload_max_filesize = 100M
post_max_size = 108M
html_errors=On
display_errors=On
date.timezone=Europe/Paris
memory_limit=-1
max_execution_time = 300
max_input_vars = 40000
xdebug.idekey = "PHPSTORM"
; --- Xdebug 3 ---
xdebug.mode=debug,develop
xdebug.client_host=172.17.0.1
xdebug.start_with_request=yes
xdebug.discover_client_host=yes

33
domokits/.env.dist Normal file
View File

@@ -0,0 +1,33 @@
# In all environments, the following files are loaded if they exist,
# the latter taking precedence over the former:
#
# * .env contains default values for the environment variables needed by the app
# * .env.local uncommitted file with local overrides
# * .env.$APP_ENV committed environment-specific defaults
# * .env.$APP_ENV.local uncommitted environment-specific overrides
#
# Real environment variables win over .env files.
#
# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES.
#
# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2).
# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration
###> symfony/framework-bundle ###
APP_ENV=dev
APP_SECRET=dkfjqmlkfjf4654sf
###< symfony/framework-bundle ###
###> thelia/thelia ###
DEBUG_TRUSTED_IP=::1,127.0.0.1
###< thelia/thelia ###
###> symfony/lock ###
# Choose one of the stores below
# postgresql+advisory://db_user:db_password@localhost/db_name
LOCK_DSN=semaphore
###< symfony/lock ###
###> symfony/mailer ###
# MAILER_DSN=null://null
###< symfony/mailer ###

11
domokits/.env.docker Normal file
View File

@@ -0,0 +1,11 @@
# This is a sample to use if you want use docker
MYSQL_DATABASE=thelia
MYSQL_ROOT_PASSWORD=root
MYSQL_USER=thelia
MYSQL_PASSWORD=thelia
ACTIVE_FRONT_TEMPLATE=modern
ACTIVE_ADMIN_TEMPLATE=default
PHP_IDE_CONFIG=serverName=thelia
XDEBUG_CONFIG=

48
domokits/.gitignore vendored Normal file
View File

@@ -0,0 +1,48 @@
/vendor
/web/assets
/web/cache
/web/dist
/web/tinymce
/var
.docker/mysql-data/*
.idea
!.docker/mysql-data/.gitkeep
.env
# Thelia default templates
/templates/frontOffice/default
/templates/frontOffice/modern
/templates/backOffice/default
/templates/email/default
/templates/pdf/default
# Thelia config
/local/config
/local/setup
/local/media
/local/session
!local/media/images/store/favicon.png
!local/media/images/store/thelia.svg
!local/media/images/store/banner.png
# Thelia modules
/local/modules/*
### Please add your dependancies here
###> symfony/framework-bundle ###
/.env.local
/.env.local.php
/.env.*.local
/config/secrets/prod/prod.decrypt.private.php
/public/bundles/
/var/
/vendor/
###< symfony/framework-bundle ###
###> symfony/webpack-encore-bundle ###
/node_modules/
/public/build/
npm-debug.log
yarn-error.log
###< symfony/webpack-encore-bundle ###

165
domokits/LICENSE.txt Normal file
View File

@@ -0,0 +1,165 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.
"The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.
An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.
A "Combined Work" is a work produced by combining or linking an
Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".
The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.
The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:
a) under this License, provided that you make a good faith effort to
ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license
document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:
a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license
document.
c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this
License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.
1) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (a) uses at run time
a copy of the Library already present on the user's computer
system, and (b) will operate properly with a modified version
of the Library that is interface-compatible with the Linked
Version.
e) Provide Installation Information, but only if you would otherwise
be required to provide such information under section 6 of the
GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the
Application with a modified version of the Linked Version. (If
you use option 4d0, the Installation Information must accompany
the Minimal Corresponding Source and Corresponding Application
Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL
for conveying Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based
on the Library, uncombined with any other library facilities,
conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of it
is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.

144
domokits/Readme.md Normal file
View File

@@ -0,0 +1,144 @@
Readme
======
#### This is the project creation repository of Thelia. If you want to contribute, please take a look at [thelia/thelia](https://github.com/thelia/thelia)
Thelia
------
[![Actions Status: test](https://github.com/thelia/thelia/workflows/test/badge.svg)](https://github.com/thelia/thelia/actions?query=workflow%3A"test") [![License](https://poser.pugx.org/thelia/thelia/license.png)](https://packagist.org/packages/thelia/thelia) [![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/thelia/thelia/badges/quality-score.png?s=61e3e04a69bffd71c29b08e5392080317a546716)](https://scrutinizer-ci.com/g/thelia/thelia/)
[Thelia](http://thelia.net/) is an open source tool for creating e-business websites and managing online content. This software is published under LGPL.
This is the new major version of Thelia.
You can download this version and have a try or take a look at the source code (or anything you wish, respecting LGPL). See http://thelia.net/ web site for more information.
A repository containing all thelia modules is available at this address : https://github.com/thelia-modules
Requirements
------------
* PHP 7.0
* Required extensions :
* PDO_Mysql
* mcrypt
* intl
* gd
* curl
* safe_mode off
* memory_limit at least 128M, preferably 256.
* post_max_size 20M
* upload_max_filesize 2M
* date.timezone must be defined
* Web Server Apache 2 or Nginx
* MySQL 5
## Create a Thelia project
``` bash
$ curl -sS https://getcomposer.org/installer | php
$ php composer.phar create-project thelia/thelia-project path/ 2.4.4 (or 2.3.5)
```
## Install it with your own environment
You can install Thelia using the cli tool and the scripts provided by thelia/setup
``` bash
$ php Thelia thelia:install
```
Consult the page : http://localhost/thelia/web/index_dev.php
You can create a virtual host and choose web folder for root directory.
## Quick install with docker-compose
This repo contains all the configuration needed to run Thelia with docker and docker-compose.
Warning, this docker configuration is not ready for production.
It requires obviously [docker](https://docker.com/) and [docker-compose](https://docs.docker.com/compose/)
To install Thelia within Docker, run :
``` bash
./start-docker.sh
```
It will ask you for a template name (usually your project name) if you don't have a .env file but you can create the .env by yourself, take a look at .env.docker to make your own.
If your folder template does not exist it will copy the "modern" template.
Next just go to http://localhost:8080 and you should see your Thelia installed !
And run the same command everytime you want launch your Thelia.
If you want add some sample data just add the option `-demo`
``` bash
./start-docker.sh -demo
```
If you want to access your database from your computer (with DBeaver, Sequel Pro or anything else) by default the host is `localhost` and the port is `8086`
Documentation
-------------
Thelia documentation is available at http://doc.thelia.net
Contribute
----------
See the documentation : http://doc.thelia.net/en/documentation/contribute.html
### Mac OSX
If you use Mac OSX, it still doesn't use php 5.4 as default php version... There are many solutions for you :
* use [phpbrew](https://github.com/c9s/phpbrew)
* use last MAMP version and put the php bin directory in your path:
```bash
export PATH=/Applications/MAMP/bin/php/php5.5.x/bin/:$PATH
```
* configure a complete development environment : http://php-osx.liip.ch/
* use a virtual machine with vagrant and puppet : https://puphpet.com/
### MySQL 5.6
As of MySQL 5.6, default configuration sets the sql_mode value to
```
STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
```
This 'STRICT_TRANS_TABLES' configuration results in SQL errors when no default value is defined on NOT NULL columns and the value is empty or invalid.
You can edit this default config in ` /etc/my.cnf ` and change the sql_mode to remove the STRICT_TRANS_TABLES part
```
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION
```
Assuming your sql_mode is the default one, you can change the value directly on the run by running the following SQL Command
```sql
SET @@GLOBAL.sql_mode='NO_ENGINE_SUBSTITUTION', @@SESSION.sql_mode='NO_ENGINE_SUBSTITUTION'
```
For more information on sql_mode you can consult the [MySQL doc](http://dev.mysql.com/doc/refman/5.0/fr/server-sql-mode.html "sql Mode")
## Archive builders
Thelia's archive builder's needs external libraries.
For zip archives, you need PECL zip. See [PHP Doc](http://php.net/manual/en/zip.installation.php)
For tar archives, you need PECL phar. Moreover, you need to deactivate php.ini option "phar.readonly":
```ini
phar.readonly = Off
```
For tar.bz2 archives, you need tar's dependencies and the extension "bzip2". See [PHP Doc](http://php.net/manual/fr/book.bzip2.php)
For tar.gz archives, you need tar's dependencies and the extension "zlib". See [PHP Doc](http://fr2.php.net/manual/fr/book.zlib.php)

5
domokits/Thelia Normal file
View File

@@ -0,0 +1,5 @@
#!/usr/bin/env php
<?php
$bootstrapFile = __DIR__ . DIRECTORY_SEPARATOR . "bootstrap.php";
require __DIR__ . "/vendor/thelia/core/Thelia";

12
domokits/assets/app.js Normal file
View File

@@ -0,0 +1,12 @@
/*
* Welcome to your app's main JavaScript file!
*
* We recommend including the built version of this JavaScript file
* (and its CSS file) in your base layout (base.html.twig).
*/
// any CSS you import will output into a single css file (app.css in this case)
import './styles/app.css';
// start the Stimulus application
import './bootstrap';

11
domokits/assets/bootstrap.js vendored Normal file
View File

@@ -0,0 +1,11 @@
import { startStimulusApp } from '@symfony/stimulus-bridge';
// Registers Stimulus controllers from controllers.json and in the controllers/ directory
export const app = startStimulusApp(require.context(
'@symfony/stimulus-bridge/lazy-controller-loader!./controllers',
true,
/\.[jt]sx?$/
));
// register any custom, 3rd party controllers here
// app.register('some_controller_name', SomeImportedController);

View File

@@ -0,0 +1,4 @@
{
"controllers": [],
"entrypoints": []
}

View File

@@ -0,0 +1,16 @@
import { Controller } from '@hotwired/stimulus';
/*
* This is an example Stimulus controller!
*
* Any element with a data-controller="hello" attribute will cause
* this controller to be executed. The name "hello" comes from the filename:
* hello_controller.js -> "hello"
*
* Delete this file or adapt it for your use!
*/
export default class extends Controller {
connect() {
this.element.textContent = 'Hello Stimulus! Edit me in assets/controllers/hello_controller.js';
}
}

View File

@@ -0,0 +1,3 @@
body {
background-color: lightgray;
}

5
domokits/bin/console Normal file
View File

@@ -0,0 +1,5 @@
#!/usr/bin/env php
<?php
$bootstrapFile = __DIR__ . "/../bootstrap.php";
require __DIR__ . "/../vendor/thelia/core/Thelia";

16
domokits/bootstrap.php Normal file
View File

@@ -0,0 +1,16 @@
<?php
// Here you can override thelia directories constants.
// Please see vendor/thelia/core/bootstrap.php
define('DS', DIRECTORY_SEPARATOR);
define ("THELIA_ROOT", __DIR__ . DS);
define ('THELIA_VENDOR', __DIR__ . DS . 'vendor' . DS);
define ('THELIA_LIB', THELIA_VENDOR . 'thelia' . DS . 'core' . DS . 'lib' . DS . 'Thelia' . DS);
define ("THELIA_SETUP_DIRECTORY", __DIR__ . DS . "local" . DS . "setup" . DS);
// --------------------------------------------------
$loader = require "vendor/autoload.php";
return $loader;

View File

@@ -0,0 +1,13 @@
version: '3'
services:
###> symfony/mailer ###
mailer:
image: axllent/mailpit
ports:
- "1025"
- "8025"
environment:
MP_SMTP_AUTH_ACCEPT_ANY: 1
MP_SMTP_AUTH_ALLOW_INSECURE: 1
###< symfony/mailer ###

61
domokits/composer.json Normal file
View File

@@ -0,0 +1,61 @@
{
"license": "proprietary",
"require": {
"thelia/thelia-skeleton": "~2.5.3",
"symfony/flex": "^1.19",
"thelia/frontoffice-modern-template": "~2.5.3",
"thelia/open-api-module": "~2.1.0",
"thelia/smarty-redirection-module": "~2.0.0",
"thelia/choice-filter-module": "~2.1.0",
"thelia/custom-delivery-module": "~3.1.0",
"thelia/store-seo-module": "~2.0.0",
"thelia/better-seo-module": "~2.1.0",
"thelia/rewrite-url-module": "~2.1.0",
"thelia/url-sanitizer-module": "~2.1.0",
"thelia/canonical-url-module": "~2.1.0",
"thelia/short-code-meta-module": "~2.0.0",
"thelia/thelia-blocks-module": "^2.0.3-beta",
"thelia/thelia-library-module": "^1.1.7",
"thelia/product-loop-attribute-filter-module": "~2.0.0",
"thelia/reset-password-module": "~1.0.1",
"thelia/re-captcha-module": "~3.0.1"
},
"suggest": {
"vlopes/maintenance-module": "Add a way to put your site in maintenance mode",
"thelia/order-creation-module": "Create order from admin",
"cqfdev/best-sellers-module": "Show your best sellers on your home page",
"thelia/alternate-hreflang-module": "Generates a alternateHreflang URL for every page of your shop"
},
"minimum-stability": "dev",
"prefer-stable": true,
"scripts": {
"demo-database": [
"php Thelia thelia:dev:reloadDB -f",
"php local/setup/import.php",
"php Thelia admin:create --login_name thelia --password thelia --last_name thelia --first_name thelia --email thelia@example.com"
],
"auto-scripts": {
"cache:clear": "symfony-cmd",
"assets:install %PUBLIC_DIR%": "symfony-cmd"
},
"post-autoload-dump": [
"Thelia\\Config\\InitConfig::initConfig"
]
},
"autoload": {
"psr-4": {
"": [
"local/modules/",
"var/cache/propel/model"
],
"TheliaMain\\": "var/cache/propel/database/TheliaMain",
"App\\": "src/"
}
},
"config": {
"allow-plugins": {
"symfony/flex": true,
"thelia/installer": true
}
}
}

8923
domokits/composer.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
<?php
return [
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true],
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true],
];

View File

@@ -0,0 +1,19 @@
framework:
cache:
# Unique name of your app: used to compute stable namespaces for cache keys.
#prefix_seed: your_vendor_name/app_name
# The "app" cache stores to the filesystem by default.
# The data in this cache should persist between deploys.
# Other options include:
# Redis
#app: cache.adapter.redis
#default_redis_provider: redis://localhost
# APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues)
#app: cache.adapter.apcu
# Namespaced pools use the above "app" backend by default
#pools:
#my.dedicated.cache: null

View File

@@ -0,0 +1,25 @@
# see https://symfony.com/doc/current/reference/configuration/framework.html
framework:
secret: '%env(APP_SECRET)%'
#csrf_protection: true
annotations: false
http_method_override: false
handle_all_throwables: true
# Enables session support. Note that the session will ONLY be started if you read or write from it.
# Remove or comment this section to explicitly disable session support.
session:
handler_id: null
cookie_secure: auto
cookie_samesite: lax
#esi: true
#fragments: true
php_errors:
log: true
when@test:
framework:
test: true
session:
storage_factory_id: session.storage.factory.mock_file

View File

@@ -0,0 +1,2 @@
framework:
lock: '%env(LOCK_DSN)%'

View File

@@ -0,0 +1,3 @@
framework:
mailer:
dsn: '%env(MAILER_DSN)%'

View File

@@ -0,0 +1,12 @@
framework:
router:
utf8: true
# Configure how to generate URLs in non-HTTP contexts, such as CLI commands.
# See https://symfony.com/doc/current/routing.html#generating-urls-in-commands
#default_uri: http://localhost
when@prod:
framework:
router:
strict_requirements: null

View File

@@ -0,0 +1,7 @@
framework:
default_locale: en
translator:
default_path: '%kernel.project_dir%/translations'
fallbacks:
- en
providers:

View File

@@ -0,0 +1,6 @@
twig:
file_name_pattern: '*.twig'
when@test:
twig:
strict_variables: true

View File

@@ -0,0 +1,13 @@
framework:
validation:
email_validation_mode: html5
# Enables validator auto-mapping support.
# For instance, basic validation constraints will be inferred from Doctrine's metadata.
#auto_mapping:
# App\Entity\: []
when@test:
framework:
validation:
not_compromised_password: false

View File

@@ -0,0 +1,17 @@
when@dev:
web_profiler:
toolbar: true
intercept_redirects: false
framework:
profiler:
only_exceptions: false
collect_serializer_data: true
when@test:
web_profiler:
toolbar: false
intercept_redirects: false
framework:
profiler: { collect: false }

View File

@@ -0,0 +1,8 @@
webpack_encore:
output_path: '%kernel.project_dir%/public/build'
script_attributes:
defer: true
builds:
_default: ''
frontOffice: '%kernel.project_dir%/templates/frontOffice/%thelia_front_template%/dist'
backOffice: '%kernel.project_dir%/templates/backOffice/%thelia_admin_template%/dist'

View File

@@ -0,0 +1,5 @@
<?php
if (file_exists(dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php')) {
require dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php';
}

View File

@@ -0,0 +1,5 @@
controllers:
resource:
path: ../src/Controller/
namespace: App\Controller
type: attribute

View File

@@ -0,0 +1,4 @@
when@dev:
_errors:
resource: '@FrameworkBundle/Resources/config/routing/errors.xml'
prefix: /_error

View File

@@ -0,0 +1,8 @@
when@dev:
web_profiler_wdt:
resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml'
prefix: /_wdt
web_profiler_profiler:
resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml'
prefix: /_profiler

View File

@@ -0,0 +1,24 @@
# This file is the entry point to configure your own services.
# Files in the packages/ subdirectory configure your dependencies.
# Put parameters here that don't need to change on each machine where the app is deployed
# https://symfony.com/doc/current/best_practices.html#use-parameters-for-application-configuration
parameters:
services:
# default configuration for services in *this* file
_defaults:
autowire: true # Automatically injects dependencies in your services.
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
# makes classes in src/ available to be used as services
# this creates a service per class whose id is the fully-qualified class name
App\:
resource: '../src/'
exclude:
- '../src/DependencyInjection/'
- '../src/Entity/'
- '../src/Kernel.php'
# add more service definitions when explicit configuration is needed
# please note that last definitions always *replace* previous ones

57
domokits/docker-compose.yml Executable file
View File

@@ -0,0 +1,57 @@
version: "3.7"
services:
mariadb:
image: mariadb:10.3
container_name: docker-thelia-mariadb
working_dir: /application
volumes:
- .:/application
- .docker/mysql-data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD
- MYSQL_DATABASE
- MYSQL_USER
- MYSQL_PASSWORD
ports:
- "8086:3306"
webserver:
image: nginx:alpine
container_name: docker-thelia-webserver
working_dir: /application
volumes:
- .:/application
- .docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "8080:80"
php-fpm:
build: .docker/php-fpm
container_name: docker-thelia-php-fpm
working_dir: /application
volumes:
- .:/application
- .docker/php-fpm/php-ini-overrides.ini:/usr/local/etc/php/conf.d/99-overrides.ini
environment:
- PHP_IDE_CONFIG
- XDEBUG_CONFIG
- ACTIVE_FRONT_TEMPLATE
- MYSQL_ROOT_PASSWORD
- MYSQL_DATABASE
- MYSQL_USER
- MYSQL_PASSWORD
encore:
build:
context: ./templates/frontOffice/${ACTIVE_FRONT_TEMPLATE:-modern}
target: thelia_encore
container_name: docker-thelia-encore
working_dir: /application/templates/frontOffice/${ACTIVE_FRONT_TEMPLATE:-modern}
environment:
BROWSERSYNC_PROXY: http://localhost:8081
volumes:
- ./templates/frontOffice/${ACTIVE_FRONT_TEMPLATE:-modern}:/application/templates/frontOffice/${ACTIVE_FRONT_TEMPLATE:-modern}:delegated
- ./templates/frontOffice/${ACTIVE_FRONT_TEMPLATE:-modern}/node_modules:/application/templates/frontOffice/${ACTIVE_FRONT_TEMPLATE:-modern}/node_modules
ports:
- 8081:8081

0
domokits/local/.gitkeep Normal file
View File

View File

1171
domokits/log/log-thelia.txt Normal file

File diff suppressed because it is too large Load Diff

154
domokits/modern-init.sh Normal file
View File

@@ -0,0 +1,154 @@
#!/bin/bash
echo -e "\e[1;37;46m Checking node version \e[0m"
if which node > /dev/null
then
node_version="$(node --version | cut -c 2,3)";
if [[ "$node_version" =~ ^(10|11|12|14|15)$ ]]
then
echo -e "\e[1;37;42m Node: OK (v$node_version) \e[0m"
else
echo -e "\e[1;37;41m Your Node.js version isn't supported by this project, you need one of this versions: v10, v11, v12, v13, v14, v15 \e[0m"
exit 1
fi
else
echo -e "\e[1;37;41m Node.js is not installed or not in your PATH \e[0m"
exit 1
fi
echo -e "\e[1;37;46m Checking yarn is installed \e[0m"
if ! command -v yarn &> /dev/null
then
echo -e "\e[1;37;41m Yarn is not installed or not in your PATH \e[0m"
exit
else
echo -e "\e[1;37;42m Yarn: OK \e[0m"
fi
echo -e "\e[1;37;46m Checking composer is installed \e[0m"
if which composer > /dev/null
then
echo -e "\e[1;37;42m Composer: OK \e[0m"
else
echo -e "\e[1;37;41m Composer is not installed or not in your PATH \e[0m"
exit 1
fi
DB_FILE=./local/config/database.yml
if test -f "$DB_FILE"; then
read -p "$(echo -e "\e[1;37;45m Would you like to erase the current database.yml file (y/n)? \e[0m")" erase
if [ "$erase" != "${erase#[Yy]}" ] ;then
echo -e "\e[1;37;46m Removing current database.yml \e[0m"
rm $DB_FILE
rm -rf ./cache
echo -e "\e[1;37;42m database.yml removed \e[0m"
fi
fi
read -p "$(echo -e "\e[1;37;45m Enter a template folder name, (default: modern) it's recommended to change it : \e[0m")" TEMPLATE_NAME
TEMPLATE_NAME=${TEMPLATE_NAME:-modern}
if [ "$TEMPLATE_NAME" != "modern" ] ;then
echo -e "\e[1;37;46m Copying template files to templates/frontOffice/$TEMPLATE_NAME \e[0m"
cp -r "templates/frontOffice/modern" "templates/frontOffice/$TEMPLATE_NAME";
echo -e "\e[1;37;42m File copied \e[0m"
fi
echo -e "\e[1;37;46m Creating session and media folder if not exist \e[0m"
[ -d local/session ] || mkdir -p local/session
[ -d local/media ] || mkdir -p local/media
chmod -R +w local/session && chmod -R +w local/media
echo -e "\e[1;37;42m Folder created \e[0m"
echo -e "\e[1;37;46m Installing dependencies by composer \e[0m"
composer install
echo -e "\e[1;37;32 Dependencies installed \e[0m"
echo -e "\e[1;37;46m Installing Thelia \e[0m"
php Thelia thelia:install
echo -e "\e[1;37;42m Thelia installed \e[0m"
echo -e "\e[1;37;46m Activating needed modules \e[0m"
php Thelia module:refresh
php Thelia module:activate OpenApi
php Thelia module:activate ChoiceFilter
php Thelia module:activate StoreSeo
php Thelia module:activate SmartyRedirection
php Thelia module:deactivate HookAdminHome
php Thelia module:deactivate HookAnalytics
php Thelia module:deactivate HookCart
php Thelia module:deactivate HookCustomer
php Thelia module:deactivate HookSearch
php Thelia module:deactivate HookLang
php Thelia module:deactivate HookCurrency
php Thelia module:deactivate HookNavigation
php Thelia module:deactivate HookProductsNew
php Thelia module:deactivate HookSocial
php Thelia module:deactivate HookNewsletter
php Thelia module:deactivate HookContact
php Thelia module:deactivate HookLinks
php Thelia module:deactivate HookProductsOffer
php Thelia module:refresh
echo -e "\e[1;37;42m Module activated \e[0m"
echo -e "\e[1;37;46m Changing active template \e[0m"
php Thelia template:front "$TEMPLATE_NAME"
echo -e "\e[1;37;42m Active template changed \e[0m"
echo -e "\e[1;37;46m Creating an administrator \e[0m"
php Thelia admin:create
echo -e "\e[1;37;42m Administrator created \e[0m"
TEMPLATE_NAME=modern
if test -f "$DB_FILE"; then
read -p "$(echo -e "\e[1;37;45m Would you like to install a sample database (y/n)? \e[0m")" sample
if [ "$sample" != "${sample#[Yy]}" ] ;then
if test -f local/setup/import.php; then
php local/setup/import.php
elif test -f setup/import.php; then
php setup/import.php
else
echo -e "\e[1;37;41m Import script not found \e[0m"
exit
fi
echo -e "\e[1;37;42m Sample data imported \e[0m"
fi
fi
rm -rf ./cache
read -p "$(echo -e "\e[1;37;45m What's your BROWSERSYNC_PROXY(eg: http://myvhost.test) : \e[0m")" vhost
if [ -z $vhost ]
then
echo "To set your BROWSERSYNC_PROXY, you have to create .env file at the root of your template : templates/frontOffice/$TEMPLATE_NAME/"
else
cd "templates/frontOffice/$TEMPLATE_NAME" && touch .env && echo BROWSERSYNC_PROXY="$vhost" > .env && cd -
fi
cd "templates/frontOffice/$TEMPLATE_NAME" || exit
echo -e "\e[1;37;46m Installing dependencies by yarn \e[0m"
yarn install || exit
echo -e "\e[1;37;42m Dependencies installed \e[0m"
echo -e "\e[1;37;46m Building template \e[0m"
yarn build || exit
echo -e "\e[1;37;42m Template builded \e[0m"
cd ../../..
echo -e "\e[1;37;42m Everything is good, you can now use your Thelia ! \e[0m"
# INIT CONSTANTS
# ------------------------------
exit 1

22
domokits/package.json Normal file
View File

@@ -0,0 +1,22 @@
{
"devDependencies": {
"@babel/core": "^7.17.0",
"@babel/preset-env": "^7.16.0",
"@hotwired/stimulus": "^3.0.0",
"@symfony/stimulus-bridge": "^3.2.0",
"@symfony/webpack-encore": "^4.0.0",
"core-js": "^3.23.0",
"regenerator-runtime": "^0.13.9",
"webpack": "^5.74.0",
"webpack-cli": "^4.10.0",
"webpack-notifier": "^1.15.0"
},
"license": "UNLICENSED",
"private": true,
"scripts": {
"dev-server": "encore dev-server",
"dev": "encore dev",
"watch": "encore dev --watch",
"build": "encore production --progress"
}
}

33
domokits/public/index.php Normal file
View File

@@ -0,0 +1,33 @@
<?php
/*************************************************************************************/
/* This file is part of the Thelia package. */
/* */
/* Copyright (c) OpenStudio */
/* email : dev@thelia.net */
/* web : http://www.thelia.net */
/* */
/* For the full copyright and license information, please view the LICENSE.txt */
/* file that was distributed with this source code. */
/*************************************************************************************/
use Symfony\Component\Dotenv\Dotenv;
use Symfony\Component\ErrorHandler\Debug;
use Thelia\Core\HttpFoundation\Request;
$env = 'prod';
$loader = require __DIR__ . '/../bootstrap.php';
(new Dotenv())->bootEnv(dirname(__DIR__).'/.env');
if ($_SERVER['APP_DEBUG']) {
umask(0000);
Debug::enable();
}
$thelia = new App\Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$request = Request::createFromGlobals();
$response = $thelia->handle($request);
$response->send();
$thelia->terminate($request, $response);

0
domokits/src/Controller/.gitignore vendored Normal file
View File

61
domokits/src/Kernel.php Normal file
View File

@@ -0,0 +1,61 @@
<?php
declare(strict_types=1);
/*
* This file is part of the Thelia package.
* http://www.thelia.net
*
* (c) OpenStudio <info@thelia.net>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace App;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;
use Thelia\Core\Thelia;
class Kernel extends Thelia
{
protected function configureContainer(ContainerConfigurator $container): void
{
parent::configureContainer($container);
$container->import('../config/{packages}/*.yaml');
$container->import('../config/{packages}/'.$this->environment.'/*.yaml');
if (is_file(\dirname(__DIR__).'/config/services.yaml')) {
$container->import('../config/services.yaml');
$container->import('../config/{services}_'.$this->environment.'.yaml');
return;
}
$path = \dirname(__DIR__).'/config/services.php';
if (is_file($path)) {
(require $path)($container->withPath($path), $this);
}
}
protected function configureRoutes(RoutingConfigurator $routes): void
{
$routes->import('../config/{routes}/'.$this->environment.'/*.yaml');
$routes->import('../config/{routes}/*.yaml');
if (is_file(\dirname(__DIR__).'/config/routes.yaml')) {
$routes->import('../config/routes.yaml');
return;
}
$path = \dirname(__DIR__).'/config/routes.php';
if (is_file($path)) {
(require $path)($routes->withPath($path), $this);
}
}
}

48
domokits/start-docker.sh Normal file
View File

@@ -0,0 +1,48 @@
#!/bin/bash
if ! test -f ".env"; then
read -p "$(echo -e "\e[1;37;45m You don't have a .env file, we will create it. Please enter a template name : \e[0m")" template_name
if [[ -z "$template_name" ]]; then
echo -e "\e[1;37;41m Invalid template name \e[0m"
exit 0
fi
# first, strip underscores
template_name=${template_name//_/}
# next, replace spaces with underscores
template_name=${template_name// /_}
# now, clean out anything that's not alphanumeric or an underscore
template_name=${template_name//[^a-zA-Z0-9_]/}
# finally, lowercase with TR
template_name="$(echo $template_name | tr '[A-Z]' '[a-z]')"
cp ".env.docker" ".env"
sed -i "s/modern/${template_name}/g" .env > /dev/null
echo -e "\e[1;37;42m .env file created with success with template name \"${template_name}\" \e[0m"
fi
set -o allexport
eval $(cat '.env' | sed -e '/^#/d;/^\s*$/d' -e 's/\(\w*\)[ \t]*=[ \t]*\(.*\)/\1=\2/' -e "s/=['\"]\(.*\)['\"]/=\1/g" -e "s/'/'\\\''/g" -e "s/=\(.*\)/='\1'/g")
set +o allexport
if [ ! -z "$ACTIVE_FRONT_TEMPLATE" ] && [ ! -d "templates/frontOffice/$ACTIVE_FRONT_TEMPLATE" ]; then
echo -e "\e[1;37;46m Copying template files to templates/frontOffice/$ACTIVE_FRONT_TEMPLATE \e[0m"
cp -r "templates/frontOffice/modern" "templates/frontOffice/$ACTIVE_FRONT_TEMPLATE";
else
echo "Template files "$template_name" already exists"
fi
echo -e "\e[1;37;46m Starting docker \e[0m"
docker-compose up -d --build
docker-compose exec php-fpm docker-init
if [[ $1 = "-demo" ]]; then
docker-compose exec php-fpm php local/setup/import.php
fi
docker-compose exec php-fpm php Thelia c:c
docker-compose exec php-fpm php Thelia c:c --env=prod
docker-compose exec php-fpm php Thelia c:c --env=propel
# Not safe but mandatory on linux env
chmod -R 777 var/cache
chmod -R 777 var/log

161
domokits/symfony.lock Normal file
View File

@@ -0,0 +1,161 @@
{
"doctrine/annotations": {
"version": "2.0",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "1.10",
"ref": "64d8583af5ea57b7afa4aba4b159907f3a148b05"
}
},
"symfony/console": {
"version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "5.3",
"ref": "1781ff40d8a17d87cf53f8d4cf0c8346ed2bb461"
},
"files": [
"bin/console"
]
},
"symfony/flex": {
"version": "1.21",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "1.0",
"ref": "146251ae39e06a95be0fe3d13c807bcf3938b172"
},
"files": [
".env"
]
},
"symfony/framework-bundle": {
"version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "6.4",
"ref": "a91c965766ad3ff2ae15981801643330eb42b6a5"
},
"files": [
"config/packages/cache.yaml",
"config/packages/framework.yaml",
"config/preload.php",
"config/routes/framework.yaml",
"config/services.yaml",
"public/index.php",
"src/Controller/.gitignore",
"src/Kernel.php"
]
},
"symfony/lock": {
"version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "5.2",
"ref": "8e937ff2b4735d110af1770f242c1107fdab4c8e"
},
"files": [
"config/packages/lock.yaml"
]
},
"symfony/mailer": {
"version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "4.3",
"ref": "df66ee1f226c46f01e85c29c2f7acce0596ba35a"
},
"files": [
"config/packages/mailer.yaml"
]
},
"symfony/routing": {
"version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "6.2",
"ref": "e0a11b4ccb8c9e70b574ff5ad3dfdcd41dec5aa6"
},
"files": [
"config/packages/routing.yaml",
"config/routes.yaml"
]
},
"symfony/translation": {
"version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "6.3",
"ref": "e28e27f53663cc34f0be2837aba18e3a1bef8e7b"
},
"files": [
"config/packages/translation.yaml",
"translations/.gitignore"
]
},
"symfony/twig-bundle": {
"version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "6.4",
"ref": "cab5fd2a13a45c266d45a7d9337e28dee6272877"
},
"files": [
"config/packages/twig.yaml",
"templates/base.html.twig"
]
},
"symfony/validator": {
"version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "5.3",
"ref": "c32cfd98f714894c4f128bb99aa2530c1227603c"
},
"files": [
"config/packages/validator.yaml"
]
},
"symfony/web-profiler-bundle": {
"version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "6.1",
"ref": "e42b3f0177df239add25373083a564e5ead4e13a"
},
"files": [
"config/packages/web_profiler.yaml",
"config/routes/web_profiler.yaml"
]
},
"symfony/webpack-encore-bundle": {
"version": "1.17",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "1.10",
"ref": "eff2e505d4557c967b6710fe06bd947ba555cae5"
},
"files": [
"assets/app.js",
"assets/bootstrap.js",
"assets/controllers.json",
"assets/controllers/hello_controller.js",
"assets/styles/app.css",
"config/packages/webpack_encore.yaml",
"package.json",
"webpack.config.js"
]
}
}

View File

@@ -0,0 +1,16 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{% block title %}Welcome!{% endblock %}</title>
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text><text y=%221.3em%22 x=%220.2em%22 font-size=%2276%22 fill=%22%23fff%22>sf</text></svg>">
{% block stylesheets %}
{% endblock %}
{% block javascripts %}
{% endblock %}
</head>
<body>
{% block body %}{% endblock %}
</body>
</html>

0
domokits/translations/.gitignore vendored Normal file
View File

50
domokits/web/.htaccess Normal file
View File

@@ -0,0 +1,50 @@
Options +FollowSymlinks -Indexes
AddDefaultCharset UTF-8
<IfModule mod_rewrite.c>
RewriteEngine On
# SEO, remove the subdomain www in URL
# Exemple : http://www.yourdomain.com/contact redirect 301 to http://yourdomain.com/contact
# To activate uncomment the following two lines
#RewriteCond %{HTTP_HOST} ^www.yourdomain.com$
#RewriteRule ^(.*) http://yourdomain.com/$1 [QSA,L,R=301]
# SEO, add the subdomain www in URL
# Exemple : http://yourdomain.com/contact redirect 301 to http://www.yourdomain.com/contact
# To activate uncomment the following two lines
#RewriteCond %{HTTP_HOST} ^yourdomain.com$
#RewriteRule ^(.*) http://www.yourdomain.com/$1 [QSA,L,R=301]
# SEO, to avoid duplicate content with index.php in url
# Exemple : http://www.yourdomain.com/index.php/contact redirect 301 to http://www.yourdomain.com/contact
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteRule (.?)index\.php/(.*) /$1$2 [R=301,NE,L]
# If thelia is installed in a subdirectory (e.g., thelia2)
# define the RewriteBase below to get a proper URL rewriting
# RewriteBase /thelia2
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization},last]
</IfModule>
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType image/webp "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
<FilesMatch "\.(ttf|otf|eot|svg|woff|woff2)$" >
ExpiresDefault "access plus 1 month"
</FilesMatch>
</IfModule>

BIN
domokits/web/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

34
domokits/web/index.php Normal file
View File

@@ -0,0 +1,34 @@
<?php
/*************************************************************************************/
/* This file is part of the Thelia package. */
/* */
/* Copyright (c) OpenStudio */
/* email : dev@thelia.net */
/* web : http://www.thelia.net */
/* */
/* For the full copyright and license information, please view the LICENSE.txt */
/* file that was distributed with this source code. */
/*************************************************************************************/
use Symfony\Component\Dotenv\Dotenv;
use Symfony\Component\ErrorHandler\Debug;
use Thelia\Core\HttpFoundation\Request;
//use Symfony\Component\DependencyInjection;
$env = 'prod';
$loader = require __DIR__ . '/../bootstrap.php';
(new Dotenv())->bootEnv(dirname(__DIR__).'/.env');
if ($_SERVER['APP_DEBUG']) {
umask(0000);
Debug::enable();
}
$thelia = new App\Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$request = Request::createFromGlobals();
$response = $thelia->handle($request);
$response->send();
$thelia->terminate($request, $response);

View File

@@ -0,0 +1,45 @@
<?php
/*************************************************************************************/
/* This file is part of the Thelia package. */
/* */
/* Copyright (c) OpenStudio */
/* email : dev@thelia.net */
/* web : http://www.thelia.net */
/* */
/* For the full copyright and license information, please view the LICENSE.txt */
/* file that was distributed with this source code. */
/*************************************************************************************/
use Thelia\Core\HttpFoundation\Request;
use Symfony\Component\Dotenv\Dotenv;
use Symfony\Component\ErrorHandler\Debug;
$env = 'dev';
require __DIR__ . '/../bootstrap.php';
$_SERVER['APP_ENV'] = 'dev';
$_SERVER['APP_DEBUG'] = '1';
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
$trustedIp = array_filter(
explode(',', $_SERVER['DEBUG_TRUSTED_IP'] ?? ''),
static function ($ip): bool {
return filter_var($ip, \FILTER_VALIDATE_IP);
}
);
if (false === in_array(Request::createFromGlobals()->getClientIp(), $trustedIp)) {
header('HTTP/1.0 403 Forbidden');
exit('You are not allowed to access this file.');
}
umask(0000);
Debug::enable();
$thelia = new App\Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$request = Request::createFromGlobals();
$response = $thelia->handle($request);
$response->send();
$thelia->terminate($request, $response);

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

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