Compare commits
2 Commits
Author | SHA1 | Date |
---|---|---|
Alexis Feron | f33b1f5f47 | 1 year ago |
Alexis Feron | 34996bd157 | 1 year ago |
@ -1,441 +0,0 @@
|
|||||||
##### Windows
|
|
||||||
# Windows thumbnail cache files
|
|
||||||
Thumbs.db
|
|
||||||
Thumbs.db:encryptable
|
|
||||||
ehthumbs.db
|
|
||||||
ehthumbs_vista.db
|
|
||||||
|
|
||||||
# Dump file
|
|
||||||
*.stackdump
|
|
||||||
|
|
||||||
# Recycle Bin used on file shares
|
|
||||||
$RECYCLE.BIN/
|
|
||||||
|
|
||||||
# Windows Installer files
|
|
||||||
*.cab
|
|
||||||
*.msi
|
|
||||||
*.msix
|
|
||||||
*.msm
|
|
||||||
*.msp
|
|
||||||
|
|
||||||
# Windows shortcuts
|
|
||||||
*.lnk
|
|
||||||
|
|
||||||
##### Linux
|
|
||||||
*~
|
|
||||||
|
|
||||||
# temporary files which can be created if a process still has a handle open of a deleted file
|
|
||||||
.fuse_hidden*
|
|
||||||
|
|
||||||
# KDE directory preferences
|
|
||||||
.directory
|
|
||||||
|
|
||||||
# Linux trash folder which might appear on any partition or disk
|
|
||||||
.Trash-*
|
|
||||||
|
|
||||||
# .nfs files are created when an open file is removed but is still being accessed
|
|
||||||
.nfs*
|
|
||||||
|
|
||||||
##### MacOS
|
|
||||||
# General
|
|
||||||
.DS_Store
|
|
||||||
.AppleDouble
|
|
||||||
.LSOverride
|
|
||||||
|
|
||||||
# Icon must end with two \r
|
|
||||||
Icon
|
|
||||||
|
|
||||||
# Thumbnails
|
|
||||||
._*
|
|
||||||
|
|
||||||
# Files that might appear in the root of a volume
|
|
||||||
.DocumentRevisions-V100
|
|
||||||
.fseventsd
|
|
||||||
.Spotlight-V100
|
|
||||||
.TemporaryItems
|
|
||||||
.Trashes
|
|
||||||
.VolumeIcon.icns
|
|
||||||
.com.apple.timemachine.donotpresent
|
|
||||||
|
|
||||||
# Directories potentially created on remote AFP share
|
|
||||||
.AppleDB
|
|
||||||
.AppleDesktop
|
|
||||||
Network Trash Folder
|
|
||||||
Temporary Items
|
|
||||||
.apdisk
|
|
||||||
|
|
||||||
##### Backup
|
|
||||||
*.bak
|
|
||||||
*.gho
|
|
||||||
*.ori
|
|
||||||
*.orig
|
|
||||||
*.tmp
|
|
||||||
|
|
||||||
##### GPG
|
|
||||||
secring.*
|
|
||||||
|
|
||||||
##### SynopsysVCS
|
|
||||||
# Waveform formats
|
|
||||||
*.vcd
|
|
||||||
*.vpd
|
|
||||||
*.evcd
|
|
||||||
*.fsdb
|
|
||||||
|
|
||||||
# Default name of the simulation executable. A different name can be
|
|
||||||
# specified with this switch (the associated daidir database name is
|
|
||||||
# also taken from here): -o <path>/<filename>
|
|
||||||
simv
|
|
||||||
|
|
||||||
# Generated for Verilog and VHDL top configs
|
|
||||||
simv.daidir/
|
|
||||||
simv.db.dir/
|
|
||||||
|
|
||||||
# Infrastructure necessary to co-simulate SystemC models with
|
|
||||||
# Verilog/VHDL models. An alternate directory may be specified with this
|
|
||||||
# switch: -Mdir=<directory_path>
|
|
||||||
csrc/
|
|
||||||
|
|
||||||
# Log file - the following switch allows to specify the file that will be
|
|
||||||
# used to write all messages from simulation: -l <filename>
|
|
||||||
*.log
|
|
||||||
|
|
||||||
# Coverage results (generated with urg) and database location. The
|
|
||||||
# following switch can also be used: urg -dir <coverage_directory>.vdb
|
|
||||||
simv.vdb/
|
|
||||||
urgReport/
|
|
||||||
|
|
||||||
# DVE and UCLI related files.
|
|
||||||
DVEfiles/
|
|
||||||
ucli.key
|
|
||||||
|
|
||||||
# When the design is elaborated for DirectC, the following file is created
|
|
||||||
# with declarations for C/C++ functions.
|
|
||||||
vc_hdrs.h
|
|
||||||
|
|
||||||
##### SVN
|
|
||||||
.svn/
|
|
||||||
|
|
||||||
##### Mercurial
|
|
||||||
.hg/
|
|
||||||
.hgignore
|
|
||||||
.hgsigs
|
|
||||||
.hgsub
|
|
||||||
.hgsubstate
|
|
||||||
.hgtags
|
|
||||||
|
|
||||||
##### Bazaar
|
|
||||||
.bzr/
|
|
||||||
.bzrignore
|
|
||||||
|
|
||||||
##### CVS
|
|
||||||
/CVS/*
|
|
||||||
**/CVS/*
|
|
||||||
.cvsignore
|
|
||||||
*/.cvsignore
|
|
||||||
|
|
||||||
##### TortoiseGit
|
|
||||||
# Project-level settings
|
|
||||||
/.tgitconfig
|
|
||||||
|
|
||||||
##### PuTTY
|
|
||||||
# Private key
|
|
||||||
*.ppk
|
|
||||||
|
|
||||||
##### Vim
|
|
||||||
# Swap
|
|
||||||
[._]*.s[a-v][a-z]
|
|
||||||
!*.svg # comment out if you don't need vector files
|
|
||||||
[._]*.sw[a-p]
|
|
||||||
[._]s[a-rt-v][a-z]
|
|
||||||
[._]ss[a-gi-z]
|
|
||||||
[._]sw[a-p]
|
|
||||||
|
|
||||||
# Session
|
|
||||||
Session.vim
|
|
||||||
Sessionx.vim
|
|
||||||
|
|
||||||
# Temporary
|
|
||||||
.netrwhist
|
|
||||||
# Auto-generated tag files
|
|
||||||
tags
|
|
||||||
# Persistent undo
|
|
||||||
[._]*.un~
|
|
||||||
|
|
||||||
# Org-mode
|
|
||||||
.org-id-locations
|
|
||||||
*_archive
|
|
||||||
|
|
||||||
# flymake-mode
|
|
||||||
*_flymake.*
|
|
||||||
|
|
||||||
# eshell files
|
|
||||||
/eshell/history
|
|
||||||
/eshell/lastdir
|
|
||||||
|
|
||||||
# elpa packages
|
|
||||||
/elpa/
|
|
||||||
|
|
||||||
# reftex files
|
|
||||||
*.rel
|
|
||||||
|
|
||||||
# AUCTeX auto folder
|
|
||||||
/auto/
|
|
||||||
|
|
||||||
# cask packages
|
|
||||||
.cask/
|
|
||||||
dist/
|
|
||||||
|
|
||||||
# Flycheck
|
|
||||||
flycheck_*.el
|
|
||||||
|
|
||||||
# server auth directory
|
|
||||||
/server/
|
|
||||||
|
|
||||||
# projectiles files
|
|
||||||
.projectile
|
|
||||||
|
|
||||||
# directory configuration
|
|
||||||
.dir-locals.el
|
|
||||||
|
|
||||||
# network security
|
|
||||||
/network-security.data
|
|
||||||
|
|
||||||
##### SublimeText
|
|
||||||
# Cache files for Sublime Text
|
|
||||||
*.tmlanguage.cache
|
|
||||||
*.tmPreferences.cache
|
|
||||||
*.stTheme.cache
|
|
||||||
|
|
||||||
# Workspace files are user-specific
|
|
||||||
*.sublime-workspace
|
|
||||||
|
|
||||||
# Project files should be checked into the repository, unless a significant
|
|
||||||
# proportion of contributors will probably not be using Sublime Text
|
|
||||||
# *.sublime-project
|
|
||||||
|
|
||||||
# SFTP configuration file
|
|
||||||
sftp-config.json
|
|
||||||
sftp-config-alt*.json
|
|
||||||
|
|
||||||
# Package control specific files
|
|
||||||
Package Control.last-run
|
|
||||||
Package Control.ca-list
|
|
||||||
Package Control.ca-bundle
|
|
||||||
Package Control.system-ca-bundle
|
|
||||||
Package Control.cache/
|
|
||||||
Package Control.ca-certs/
|
|
||||||
Package Control.merged-ca-bundle
|
|
||||||
Package Control.user-ca-bundle
|
|
||||||
oscrypto-ca-bundle.crt
|
|
||||||
bh_unicode_properties.cache
|
|
||||||
|
|
||||||
# Sublime-github package stores a github token in this file
|
|
||||||
# https://packagecontrol.io/packages/sublime-github
|
|
||||||
GitHub.sublime-settings
|
|
||||||
|
|
||||||
##### TextMate
|
|
||||||
*.tmproj
|
|
||||||
*.tmproject
|
|
||||||
tmtags
|
|
||||||
|
|
||||||
##### VisualStudioCode
|
|
||||||
.vscode/*
|
|
||||||
!.vscode/settings.json
|
|
||||||
!.vscode/tasks.json
|
|
||||||
!.vscode/launch.json
|
|
||||||
!.vscode/extensions.json
|
|
||||||
*.code-workspace
|
|
||||||
|
|
||||||
# Local History for Visual Studio Code
|
|
||||||
.history/
|
|
||||||
|
|
||||||
##### NetBeans
|
|
||||||
**/nbproject/private/
|
|
||||||
**/nbproject/Makefile-*.mk
|
|
||||||
**/nbproject/Package-*.bash
|
|
||||||
build/
|
|
||||||
nbbuild/
|
|
||||||
nbdist/
|
|
||||||
.nb-gradle/
|
|
||||||
|
|
||||||
##### JetBrains
|
|
||||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
|
||||||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
|
||||||
|
|
||||||
# User-specific stuff
|
|
||||||
php/.idea/**/workspace.xml
|
|
||||||
php/.idea/**/tasks.xml
|
|
||||||
php/.idea/**/usage.statistics.xml
|
|
||||||
php/.idea/**/dictionaries
|
|
||||||
php/.idea/**/shelf
|
|
||||||
|
|
||||||
# Generated files
|
|
||||||
php/.idea/**/contentModel.xml
|
|
||||||
|
|
||||||
# Sensitive or high-churn files
|
|
||||||
php/.idea/**/dataSources/
|
|
||||||
php/.idea/**/dataSources.ids
|
|
||||||
php/.idea/**/dataSources.local.xml
|
|
||||||
php/.idea/**/sqlDataSources.xml
|
|
||||||
php/.idea/**/dynamic.xml
|
|
||||||
php/.idea/**/uiDesigner.xml
|
|
||||||
php/.idea/**/dbnavigator.xml
|
|
||||||
|
|
||||||
# Gradle
|
|
||||||
php/.idea/**/gradle.xml
|
|
||||||
php/.idea/**/libraries
|
|
||||||
|
|
||||||
# Gradle and Maven with auto-import
|
|
||||||
# When using Gradle or Maven with auto-import, you should exclude module files,
|
|
||||||
# since they will be recreated, and may cause churn. Uncomment if using
|
|
||||||
# auto-import.
|
|
||||||
# .idea/artifacts
|
|
||||||
# .idea/compiler.xml
|
|
||||||
# .idea/jarRepositories.xml
|
|
||||||
# .idea/modules.xml
|
|
||||||
# .idea/*.iml
|
|
||||||
# .idea/modules
|
|
||||||
# *.iml
|
|
||||||
# *.ipr
|
|
||||||
|
|
||||||
# CMake
|
|
||||||
cmake-build-*/
|
|
||||||
|
|
||||||
# Mongo Explorer plugin
|
|
||||||
php/.idea/**/mongoSettings.xml
|
|
||||||
|
|
||||||
# File-based project format
|
|
||||||
*.iws
|
|
||||||
|
|
||||||
# IntelliJ
|
|
||||||
out/
|
|
||||||
|
|
||||||
# mpeltonen/sbt-idea plugin
|
|
||||||
.idea_modules/
|
|
||||||
|
|
||||||
# JIRA plugin
|
|
||||||
atlassian-ide-plugin.xml
|
|
||||||
|
|
||||||
# Cursive Clojure plugin
|
|
||||||
php/.idea/replstate.xml
|
|
||||||
|
|
||||||
# Crashlytics plugin (for Android Studio and IntelliJ)
|
|
||||||
com_crashlytics_export_strings.xml
|
|
||||||
crashlytics.properties
|
|
||||||
crashlytics-build.properties
|
|
||||||
fabric.properties
|
|
||||||
|
|
||||||
# Editor-based Rest Client
|
|
||||||
php/.idea/httpRequests
|
|
||||||
|
|
||||||
# Android studio 3.1+ serialized cache file
|
|
||||||
php/.idea/caches/build_file_checksums.ser
|
|
||||||
|
|
||||||
##### Eclipse
|
|
||||||
.metadata
|
|
||||||
bin/
|
|
||||||
tmp/
|
|
||||||
*.swp
|
|
||||||
*~.nib
|
|
||||||
local.properties
|
|
||||||
.settings/
|
|
||||||
.loadpath
|
|
||||||
.recommenders
|
|
||||||
|
|
||||||
# External tool builders
|
|
||||||
.externalToolBuilders/
|
|
||||||
|
|
||||||
# Locally stored "Eclipse launch configurations"
|
|
||||||
*.launch
|
|
||||||
|
|
||||||
# CDT- autotools
|
|
||||||
.autotools
|
|
||||||
|
|
||||||
# Java annotation processor (APT)
|
|
||||||
.factorypath
|
|
||||||
|
|
||||||
# PDT-specific (PHP Development Tools)
|
|
||||||
.buildpath
|
|
||||||
|
|
||||||
# sbteclipse plugin
|
|
||||||
.target
|
|
||||||
|
|
||||||
# Tern plugin
|
|
||||||
.tern-project
|
|
||||||
|
|
||||||
# TeXlipse plugin
|
|
||||||
.texlipse
|
|
||||||
|
|
||||||
# STS (Spring Tool Suite)
|
|
||||||
.springBeans
|
|
||||||
|
|
||||||
# Code Recommenders
|
|
||||||
.recommenders/
|
|
||||||
|
|
||||||
# Annotation Processing
|
|
||||||
.apt_generated/
|
|
||||||
.apt_generated_test/
|
|
||||||
|
|
||||||
# Uncomment this line if you wish to ignore the project description file.
|
|
||||||
# Typically, this file would be tracked if it contains build/dependency configurations:
|
|
||||||
#.project
|
|
||||||
|
|
||||||
##### Dreamweaver
|
|
||||||
# DW Dreamweaver added files
|
|
||||||
_notes
|
|
||||||
_compareTemp
|
|
||||||
configs/
|
|
||||||
dwsync.xml
|
|
||||||
dw_php_codehinting.config
|
|
||||||
*.mno
|
|
||||||
|
|
||||||
##### CodeKit
|
|
||||||
# General CodeKit files to ignore
|
|
||||||
config.codekit
|
|
||||||
config.codekit3
|
|
||||||
/min
|
|
||||||
|
|
||||||
##### Gradle
|
|
||||||
.gradle
|
|
||||||
**/build/
|
|
||||||
!src/**/build/
|
|
||||||
|
|
||||||
# Ignore Gradle GUI config
|
|
||||||
gradle-app.setting
|
|
||||||
|
|
||||||
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
|
|
||||||
!gradle-wrapper.jar
|
|
||||||
|
|
||||||
# Cache of project
|
|
||||||
.gradletasknamecache
|
|
||||||
|
|
||||||
# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
|
|
||||||
# gradle/wrapper/gradle-wrapper.properties
|
|
||||||
|
|
||||||
##### Composer
|
|
||||||
php/composer.phar
|
|
||||||
php/composer
|
|
||||||
php/vendor/
|
|
||||||
|
|
||||||
# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
|
|
||||||
# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
|
|
||||||
php/composer.lock
|
|
||||||
|
|
||||||
##### PHP CodeSniffer
|
|
||||||
# gitignore for the PHP Codesniffer framework
|
|
||||||
# website: https://github.com/squizlabs/PHP_CodeSniffer
|
|
||||||
#
|
|
||||||
# Recommended template: PHP.gitignore
|
|
||||||
|
|
||||||
/wpcs/*
|
|
||||||
|
|
||||||
##### SASS
|
|
||||||
.sass-cache/
|
|
||||||
*.css.map
|
|
||||||
*.sass.map
|
|
||||||
*.scss.map
|
|
||||||
|
|
||||||
php/.idea/
|
|
||||||
|
|
||||||
##### Images :
|
|
||||||
###php/public/uploads/
|
|
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="SqlDialectMappings">
|
|
||||||
<file url="file://$PROJECT_DIR$/php/src/gateway/AlumniGateway.php" dialect="GenericSQL" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
Before Width: | Height: | Size: 100 KiB |
@ -1,11 +0,0 @@
|
|||||||
#RewriteEngine On
|
|
||||||
#
|
|
||||||
#RewriteCond %{REQUEST_FILENAME} !-f
|
|
||||||
#RewriteCond %{REQUEST_FILENAME} !-d
|
|
||||||
#RewriteRule ^(.*)$ index.php/$1 [L]
|
|
||||||
|
|
||||||
|
|
||||||
RewriteEngine on
|
|
||||||
RewriteCond %{REQUEST_FILENAME} !-f
|
|
||||||
RewriteRule . index.php [L]
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
|||||||
# Default ignored files
|
|
||||||
/shelf/
|
|
||||||
/workspace.xml
|
|
||||||
# Editor-based HTTP Client requests
|
|
||||||
/httpRequests/
|
|
||||||
# Datasource local storage ignored files
|
|
||||||
/dataSources/
|
|
||||||
/dataSources.local.xml
|
|
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectModuleManager">
|
|
||||||
<modules>
|
|
||||||
<module fileurl="file://$PROJECT_DIR$/.idea/php.iml" filepath="$PROJECT_DIR$/.idea/php.iml" />
|
|
||||||
</modules>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
@ -1,14 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module type="WEB_MODULE" version="4">
|
|
||||||
<component name="NewModuleRootManager">
|
|
||||||
<content url="file://$MODULE_DIR$">
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" packagePrefix="App\" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-ctype" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-mbstring" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/twig/twig" />
|
|
||||||
</content>
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
@ -1,30 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="MessDetectorOptionsConfiguration">
|
|
||||||
<option name="transferred" value="true" />
|
|
||||||
</component>
|
|
||||||
<component name="PHPCSFixerOptionsConfiguration">
|
|
||||||
<option name="transferred" value="true" />
|
|
||||||
</component>
|
|
||||||
<component name="PHPCodeSnifferOptionsConfiguration">
|
|
||||||
<option name="highlightLevel" value="WARNING" />
|
|
||||||
<option name="transferred" value="true" />
|
|
||||||
</component>
|
|
||||||
<component name="PhpIncludePathManager">
|
|
||||||
<include_path>
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-ctype" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/composer" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/twig/twig" />
|
|
||||||
</include_path>
|
|
||||||
</component>
|
|
||||||
<component name="PhpProjectSharedConfiguration" php_language_level="8.1">
|
|
||||||
<option name="suggestChangeDefaultLanguageLevel" value="false" />
|
|
||||||
</component>
|
|
||||||
<component name="PhpStanOptionsConfiguration">
|
|
||||||
<option name="transferred" value="true" />
|
|
||||||
</component>
|
|
||||||
<component name="PsalmOptionsConfiguration">
|
|
||||||
<option name="transferred" value="true" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
Before Width: | Height: | Size: 842 KiB After Width: | Height: | Size: 842 KiB |
After Width: | Height: | Size: 346 KiB |
After Width: | Height: | Size: 215 KiB |
After Width: | Height: | Size: 135 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
@ -1,13 +1,12 @@
|
|||||||
{
|
{
|
||||||
"require": {
|
"require": {
|
||||||
"twig/twig": "^3.0",
|
"twig/twig": "^3.0"
|
||||||
"twig/extensions": "^1.5",
|
|
||||||
"ext-pdo": "*",
|
|
||||||
"ext-fileinfo": "*"
|
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"App\\": "src/"
|
"controleur\\": "controleur/",
|
||||||
|
"config\\": "config/",
|
||||||
|
"modeles\\": "modeles/"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,62 @@
|
|||||||
|
<?php
|
||||||
|
namespace config;
|
||||||
|
|
||||||
|
class Validation
|
||||||
|
{
|
||||||
|
public static function val_action($action)
|
||||||
|
{
|
||||||
|
if (!isset($action)) {
|
||||||
|
throw new \Exception('pas d\'action');
|
||||||
|
//on pourrait aussi utiliser
|
||||||
|
//$action = $_GET['action'] ?? 'no';
|
||||||
|
// This is equivalent to:
|
||||||
|
//$action = if (isset($_GET['action'])) $action=$_GET['action'] else $action='no';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function val_form(string &$nom, string &$age, &$dVueEreur)
|
||||||
|
{
|
||||||
|
if (!isset($nom) || $nom == '') {
|
||||||
|
$dVueEreur[] = 'pas de nom';
|
||||||
|
$nom = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strlen(htmlspecialchars($nom, ENT_QUOTES) === 0)) {
|
||||||
|
$dVueEreur[] = "testative d'injection de code (attaque sécurité)";
|
||||||
|
$nom = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($age) || $age == '' || !filter_var($age, FILTER_VALIDATE_INT)) {
|
||||||
|
$dVueEreur[] = "pas d'age ";
|
||||||
|
$age = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fonction qui nettoie une chaine de caractères
|
||||||
|
* @param string $str
|
||||||
|
* @return string Chaine valide
|
||||||
|
*/
|
||||||
|
public static function nettoyerString(string $str) : string{
|
||||||
|
$newstr = preg_replace('/\x00|<[^>]*>?/', '', $str);
|
||||||
|
return str_replace(["'", '"'], [''', '"'], $newstr);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fonction qui valide si un entier est positif
|
||||||
|
* @param $int
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public static function validerIntPossitif($int){
|
||||||
|
return filter_var($int, FILTER_VALIDATE_INT, array("min_range"=>1));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fonction qui verifie si un email est correct
|
||||||
|
* @param string $str
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function verifierEmail(string $str):bool{
|
||||||
|
return filter_var($str, FILTER_VALIDATE_EMAIL);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
//gen
|
||||||
|
$rep = __DIR__ . '/../';
|
||||||
|
|
||||||
|
// liste des modules à inclure
|
||||||
|
$dConfig['includes']= array('controleur/Validation.php');
|
||||||
|
|
||||||
|
//BD
|
||||||
|
$base = '';
|
||||||
|
$login = '';
|
||||||
|
$mdp = '';
|
@ -0,0 +1,62 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace controleur;
|
||||||
|
|
||||||
|
use config\Validation;
|
||||||
|
|
||||||
|
class AdminControleur extends ModerateurControleur
|
||||||
|
{
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
global $twig;
|
||||||
|
if (!isset($_REQUEST["action"])) {
|
||||||
|
$action = NULL;
|
||||||
|
} else {
|
||||||
|
$action = Validation::nettoyerString($_REQUEST["action"]);
|
||||||
|
}
|
||||||
|
switch ($action) {
|
||||||
|
case "supprimerCompte":
|
||||||
|
$this->supprimerCompte();
|
||||||
|
break;
|
||||||
|
case "consulterSignalement":
|
||||||
|
$this->consulterSignalement();
|
||||||
|
break;
|
||||||
|
case "creerEvenement":
|
||||||
|
$this->creerEvenement();
|
||||||
|
break;
|
||||||
|
case "supprimerEvenement":
|
||||||
|
$this->supprimerEvenement();
|
||||||
|
break;
|
||||||
|
case "supprimerOffre":
|
||||||
|
$this->supprimerOffre();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function supprimerCompte()
|
||||||
|
{
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function consulterSignalement()
|
||||||
|
{
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function creerEvenement()
|
||||||
|
{
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function supprimerEvenement()
|
||||||
|
{
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function supprimerOffre()
|
||||||
|
{
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,56 @@
|
|||||||
|
<?php
|
||||||
|
namespace controleur;
|
||||||
|
|
||||||
|
use config\Validation;
|
||||||
|
|
||||||
|
class FrontControleur
|
||||||
|
{
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
global $twig;
|
||||||
|
session_start();
|
||||||
|
$dVueErreur = [];
|
||||||
|
$actions = array(
|
||||||
|
"Admin" => [
|
||||||
|
"supprimerCompte", "consulterSignalement", "creerEvenement", "supprimerEvenement","supprimerOffre"
|
||||||
|
],
|
||||||
|
"Moderateur" => [
|
||||||
|
//TODO
|
||||||
|
],
|
||||||
|
"Membre" => [
|
||||||
|
"deconnexion","proposerOffre","consulterProfil","modifierProfil","signaler"
|
||||||
|
],
|
||||||
|
"Utilisateur" => [
|
||||||
|
"connection", "inscription", "accueil","consulterProfilLimite"
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
$action = Validation::nettoyerString($_GET["action"] ?? "");
|
||||||
|
if(in_array($action,$actions['Admin'])) {
|
||||||
|
if (!isset($_SESSION["role"]) || $_SESSION["role"]!="admin") {
|
||||||
|
$dVueErreur[] = 'Veuillez vous connecter';
|
||||||
|
echo $twig->render('erreur.html', ['dVueErreur' => $dVueErreur]);
|
||||||
|
} else{
|
||||||
|
new AdminControleur();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(in_array($action,$actions['Moderateur'])) {
|
||||||
|
if (!isset($_SESSION["role"]) || ($_SESSION["role"]!="moderateur" && $_SESSION["role"]!="admin")) {
|
||||||
|
$dVueErreur[] = 'Veuillez vous connecter';
|
||||||
|
echo $twig->render('erreur.html', ['dVueErreur' => $dVueErreur]);
|
||||||
|
} else{
|
||||||
|
new ModerateurControleur();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(in_array($action,$actions['Membre'])) {
|
||||||
|
if (!isset($_SESSION["login"])) {
|
||||||
|
$dVueErreur[] = 'Veuillez vous connecter';
|
||||||
|
echo $twig->render('erreur.html', ['dVueErreur' => $dVueErreur]);
|
||||||
|
} else{
|
||||||
|
new MembreControleur();
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
new UtilisateurControleur();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,62 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace controleur;
|
||||||
|
|
||||||
|
use config\Validation;
|
||||||
|
|
||||||
|
class MembreControleur extends UtilisateurControleur
|
||||||
|
{
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
global $twig;
|
||||||
|
if (!isset($_REQUEST["action"])) {
|
||||||
|
$action = NULL;
|
||||||
|
} else {
|
||||||
|
$action = Validation::nettoyerString($_REQUEST["action"]);
|
||||||
|
}
|
||||||
|
switch ($action) {
|
||||||
|
case "deconnexion":
|
||||||
|
$this->deconnexion();
|
||||||
|
break;
|
||||||
|
case "proposerOffre":
|
||||||
|
$this->proposerOffre();
|
||||||
|
break;
|
||||||
|
case "consulterProfil":
|
||||||
|
$this->consulterProfil();
|
||||||
|
break;
|
||||||
|
case "modifierProfil":
|
||||||
|
$this->modifierProfil();
|
||||||
|
break;
|
||||||
|
case "signaler":
|
||||||
|
$this->signaler();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function deconnexion()
|
||||||
|
{
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function proposerOffre()
|
||||||
|
{
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function consulterProfil()
|
||||||
|
{
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function modifierProfil()
|
||||||
|
{
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function signaler()
|
||||||
|
{
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,82 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace controleur;
|
||||||
|
|
||||||
|
use config\Validation;
|
||||||
|
|
||||||
|
class UtilisateurControleur
|
||||||
|
{
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
global $twig;
|
||||||
|
if (!isset($_REQUEST["action"])) {
|
||||||
|
$action = NULL;
|
||||||
|
} else {
|
||||||
|
$action = Validation::nettoyerString($_REQUEST["action"]);
|
||||||
|
}
|
||||||
|
switch ($action) {
|
||||||
|
case NULL:
|
||||||
|
case "accueil":
|
||||||
|
$this->accueil();
|
||||||
|
break;
|
||||||
|
case "connection":
|
||||||
|
$this->connection();
|
||||||
|
break;
|
||||||
|
case "inscription":
|
||||||
|
$this->inscription();
|
||||||
|
break;
|
||||||
|
case "consulterProfilLimite":
|
||||||
|
$this->consulterProfilLimite();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$dVueErreur[] ="Action inconnue ou non autorisée";
|
||||||
|
echo $twig->render("erreur.html",['dVueErreur' => $dVueErreur]);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function connection()
|
||||||
|
{
|
||||||
|
global $twig;
|
||||||
|
echo $twig->render('connexion.html', []);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function inscription()
|
||||||
|
{
|
||||||
|
global $twig;
|
||||||
|
echo $twig->render('inscription.html', []);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function accueil()
|
||||||
|
{
|
||||||
|
global $twig;
|
||||||
|
/* Temporaire (le temps d'avoir en base) */
|
||||||
|
$eventsList = [
|
||||||
|
[
|
||||||
|
'imagePath' => 'assets/event1.png',
|
||||||
|
'nom' => 'Événement 1',
|
||||||
|
'description' => 'Description de l\'événement 1',
|
||||||
|
'date' => '01/01/2023'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'imagePath' => 'assets/event2.png',
|
||||||
|
'nom' => 'Événement 2',
|
||||||
|
'description' => 'Description de l\'événement 2',
|
||||||
|
'date' => '02/01/2023'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'imagePath' => 'assets/event3.png',
|
||||||
|
'nom' => 'Événement 3',
|
||||||
|
'description' => 'Description de l\'événement 3',
|
||||||
|
'date' => '03/01/2023'
|
||||||
|
]
|
||||||
|
];
|
||||||
|
echo $twig->render('accueil.html', ["eventsList"=>$eventsList]);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function consulterProfilLimite()
|
||||||
|
{
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,122 @@
|
|||||||
|
@import url(https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=Share+Tech+Mono&display=swap);
|
||||||
|
*{
|
||||||
|
box-sizing: border-box;
|
||||||
|
font-family: 'Poppins', sans-serif;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main {
|
||||||
|
color: #212121;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-banner{
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.banner-img{
|
||||||
|
width: 100%;
|
||||||
|
height: 250px;
|
||||||
|
object-fit: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
.banner {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-banner {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
background-color: rgba(0, 0, 0, 0.5);
|
||||||
|
color: #fff;
|
||||||
|
padding: 10px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-banner .title{
|
||||||
|
font-size: 35px;
|
||||||
|
color: #00DBFF;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-banner .subtitle{
|
||||||
|
font-size: 20px;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-banner .description{
|
||||||
|
font-size: 15px;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slideshow-container {
|
||||||
|
position: relative;
|
||||||
|
max-width: 70%;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slide {
|
||||||
|
width: 100%;
|
||||||
|
height: 350px;
|
||||||
|
border-radius: 20px;
|
||||||
|
border: #212121 1px solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slide-content {
|
||||||
|
display: flex;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slide-img,
|
||||||
|
.slide-info {
|
||||||
|
width: 50%;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slide-info{
|
||||||
|
padding: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slide-title{
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slide-info .button{
|
||||||
|
color: #00DBFF;
|
||||||
|
font-size: 14px;
|
||||||
|
padding: 5px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
border-radius: 15px;
|
||||||
|
border: #00DBFF 2px solid;
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slide-img img{
|
||||||
|
height: 350px;
|
||||||
|
border-radius: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prevButton, .nextButton {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
font-size: 24px;
|
||||||
|
background-color: black;
|
||||||
|
color: white;
|
||||||
|
padding: 8px 16px;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prevButton {
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nextButton {
|
||||||
|
right: 0;
|
||||||
|
}
|
@ -1,8 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace App\gateway;
|
|
||||||
use PDO;
|
|
||||||
|
|
||||||
class Connection extends \PDO {
|
class Connection extends PDO {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var Statement
|
* @var Statement
|
@ -0,0 +1,83 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class AlumniGateway
|
||||||
|
{
|
||||||
|
private Connection $con;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $con
|
||||||
|
*/
|
||||||
|
public function __construct(Connection $con){
|
||||||
|
$this->con = $con;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function insert(string $email, int $id, string $motDePasse, Role $role){
|
||||||
|
$query='INSERT INTO Alumni VALUES (:i, :e, :m, :r)';
|
||||||
|
$this->con->executeQuery($query, array(
|
||||||
|
':i' => array($id, PDO::PARAM_INT),
|
||||||
|
':e' => array($email, PDO::PARAM_STR),
|
||||||
|
':m' => array($motDePasse, PDO::PARAM_STR),
|
||||||
|
':r' => array($role, PDO::PARAM_STR)
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateEmail(int $id, string $newEmail){
|
||||||
|
$query='UPDATE Alumni SET email=:new WHERE id=:i';
|
||||||
|
$this->con->executeQuery($query, array(
|
||||||
|
':i' => array($id, PDO::PARAM_INT),
|
||||||
|
':new' => array($newEmail, PDO::PARAM_STR)
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateMotDePasse(int $id, string $password){
|
||||||
|
$query='UPDATE Alumni SET motDePasse=:new WHERE id=:i';
|
||||||
|
$this->con->executeQuery($query, array(
|
||||||
|
':i' => array($id, PDO::PARAM_INT),
|
||||||
|
':new' => array($password, PDO::PARAM_STR)
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateRole(int $id, Role $newRole){
|
||||||
|
$query='UPDATE Alumni SET role=:new WHERE id=:i';
|
||||||
|
$this->con->executeQuery($query, array(
|
||||||
|
':i' => array($id, PDO::PARAM_INT),
|
||||||
|
':new' => array($newRole, PDO::PARAM_STR)
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function delete(int $id){
|
||||||
|
$query='DELETE FROM Alumni WHERE id=:i';
|
||||||
|
$this->con->executeQuery($query, array(
|
||||||
|
':i' => array($id, PDO::PARAM_INT)
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function findById(int $id){
|
||||||
|
$query = 'SELECT * FROM Alumni WHERE id=:i';
|
||||||
|
$this->con->executeQuery($query, array(
|
||||||
|
':i' => array($id, PDO::PARAM_INT)
|
||||||
|
));
|
||||||
|
$res=$this->con->getResults();
|
||||||
|
return new Alumni($res[0]['mail'],$res[0]['id'],$res[0]['mdp'],$res[0]['role']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function findByEmail(string $email){
|
||||||
|
$query='SELECT * FROM Alumni WHERE email=:e';
|
||||||
|
$this->con->executeQuery($query, array(
|
||||||
|
':e' => array($email, PDO::PARAM_STR),
|
||||||
|
));
|
||||||
|
$res=$this->con->getResults();
|
||||||
|
return new Alumni($res[0]['mail'],$res[0]['id'],$res[0]['mdp'],$res[0]['role']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getAll(){
|
||||||
|
$query='SELECT * FROM Alumni';
|
||||||
|
$this->con->executeQuery($query);
|
||||||
|
$res=$this->con->getResults();
|
||||||
|
$array=[];
|
||||||
|
foreach($res as $r){
|
||||||
|
$array[]=new Alumni($r['mail'],$r['id'],$r['mdp'],$r['role']);
|
||||||
|
}
|
||||||
|
return $array;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class EvenementGateway
|
||||||
|
{
|
||||||
|
private Connection $con;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $con
|
||||||
|
*/
|
||||||
|
public function __construct(Connection $con){
|
||||||
|
$this->con = $con;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function insert(){
|
||||||
|
$query='INSERT INTO Evenement VALUES ()';
|
||||||
|
$this->con->executeQuery($query, array());
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class OffreGateway
|
||||||
|
{
|
||||||
|
private Connection $con;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $con
|
||||||
|
*/
|
||||||
|
public function __construct(Connection $con){
|
||||||
|
$this->con = $con;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function insert(){
|
||||||
|
$query='INSERT INTO Offre VALUES ()';
|
||||||
|
$this->con->executeQuery($query, array());
|
||||||
|
}
|
||||||
|
}
|
@ -1,22 +1,16 @@
|
|||||||
<?php
|
<?php
|
||||||
/** PC IUT - PHP 8.1 */
|
/** PC IUT - PHP 8.1 */
|
||||||
|
|
||||||
/** Chargement config */
|
/** Chargement config */
|
||||||
|
require_once __DIR__ . '/config/config.php';
|
||||||
require_once __DIR__ . '/src/config/config.php';
|
require __DIR__ . '/vendor/autoload.php';
|
||||||
require __DIR__ . '/vendor/autoload.php';
|
use controleur\FrontControleur;
|
||||||
|
|
||||||
|
/** Configuration twig */
|
||||||
/** Configuration twig */
|
$loader = new \Twig\Loader\FilesystemLoader('vues');
|
||||||
$loader = new \Twig\Loader\FilesystemLoader(__DIR__ . '/templates');
|
$twig = new \Twig\Environment($loader, [
|
||||||
$twig = new \Twig\Environment($loader, [
|
'cache' => false,
|
||||||
'cache' => false,
|
'debug' => true
|
||||||
'debug' => true
|
]);
|
||||||
]);
|
|
||||||
$twig->addExtension(new \Twig\Extension\DebugExtension());
|
$cont = new \controleur\FrontControleur();
|
||||||
$twig->addGlobal('dir', '/SAE_2A_FA-Reseau_ALICA/php');
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$cont = new \App\controleur\FrontControleur();
|
|
||||||
|
@ -0,0 +1,74 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
enum Role
|
||||||
|
{
|
||||||
|
case Admin;
|
||||||
|
case Moderateur;
|
||||||
|
case Utilisateur;
|
||||||
|
}
|
||||||
|
|
||||||
|
class Alumni{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var int Identifiant
|
||||||
|
*/
|
||||||
|
private int $id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Email
|
||||||
|
*/
|
||||||
|
private string $email;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Mot de passe
|
||||||
|
*/
|
||||||
|
private string $motDePasse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var Role Role
|
||||||
|
*/
|
||||||
|
private Role $role;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $id
|
||||||
|
* @param string $email
|
||||||
|
* @param string $motDePasse
|
||||||
|
* @param Role $role
|
||||||
|
*/
|
||||||
|
public function __construct(int $id, string $email, string $motDePasse, Role $role)
|
||||||
|
{
|
||||||
|
$this->id = $id;
|
||||||
|
$this->email = $email;
|
||||||
|
$this->motDePasse = $motDePasse;
|
||||||
|
$this->role = $role;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getId() : string
|
||||||
|
{
|
||||||
|
return $this->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getEmail() : string
|
||||||
|
{
|
||||||
|
return $this->email;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getMotDePasse(): string
|
||||||
|
{
|
||||||
|
return $this->motDePasse;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getRole(): Role
|
||||||
|
{
|
||||||
|
return $this->role;
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace App\metier;
|
|
||||||
|
|
||||||
class Article
|
class Article
|
||||||
{
|
{
|
@ -0,0 +1,94 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Evenement
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var int Identifiant
|
||||||
|
*/
|
||||||
|
private int $id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Nom Evenement
|
||||||
|
*/
|
||||||
|
private string $nom;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Date de l'evenement
|
||||||
|
*/
|
||||||
|
private string $date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var Alumni Organisateur
|
||||||
|
*/
|
||||||
|
private Alumni $organisateur;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array Liste des Participants
|
||||||
|
*/
|
||||||
|
private array $participants;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var int Nombre maximal d'inscrits
|
||||||
|
*/
|
||||||
|
private int $nbInscriptionMax;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Url de l'image
|
||||||
|
*/
|
||||||
|
private string $imageUrl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $id
|
||||||
|
* @param string $nom
|
||||||
|
* @param string $date
|
||||||
|
* @param Alumni $organisateur
|
||||||
|
* @param array $participants
|
||||||
|
* @param int $nbInscriptionMax
|
||||||
|
* @param string $imageUrl
|
||||||
|
*/
|
||||||
|
public function __construct(int $id, string $nom, string $date, Alumni $organisateur, array $participants, int $nbInscriptionMax, string $imageUrl)
|
||||||
|
{
|
||||||
|
$this->id = $id;
|
||||||
|
$this->nom = $nom;
|
||||||
|
$this->date = $date;
|
||||||
|
$this->organisateur = $organisateur;
|
||||||
|
$this->participants = $participants;
|
||||||
|
$this->nbInscriptionMax = $nbInscriptionMax;
|
||||||
|
$this->imageUrl = $imageUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getId(): int
|
||||||
|
{
|
||||||
|
return $this->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getNom() : string
|
||||||
|
{
|
||||||
|
return $this->nom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getDate() : string
|
||||||
|
{
|
||||||
|
return $this->date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getParticipants() : array
|
||||||
|
{
|
||||||
|
return $this->participants;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getOrganisateur(): Alumni
|
||||||
|
{
|
||||||
|
return $this->organisateur;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getNbInscriptionMax(): int
|
||||||
|
{
|
||||||
|
return $this->nbInscriptionMax;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getImageUrl(): string
|
||||||
|
{
|
||||||
|
return $this->imageUrl;
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace App\metier;
|
|
||||||
|
|
||||||
class Experience
|
class Experience
|
||||||
{
|
{
|
@ -1,5 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace App\metier;
|
|
||||||
|
|
||||||
class Formation
|
class Formation
|
||||||
{
|
{
|
@ -0,0 +1,213 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
enum TypeContrat
|
||||||
|
{
|
||||||
|
case CDI;
|
||||||
|
case CDD;
|
||||||
|
case Alternance;
|
||||||
|
case Stage;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum ProfilRecherche
|
||||||
|
{
|
||||||
|
case Junior;
|
||||||
|
case Senior;
|
||||||
|
case Indifferent;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum NiveauEtudes: string
|
||||||
|
{
|
||||||
|
case Bac2 = "Bac+2";
|
||||||
|
case Bac3 = "Bac+3";
|
||||||
|
case Bac5 = "Bac+5";
|
||||||
|
case Indifferent = "Indifferent";
|
||||||
|
}
|
||||||
|
|
||||||
|
class Offre
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var int Identifiant
|
||||||
|
*/
|
||||||
|
private int $id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var Alumni Offreur
|
||||||
|
*/
|
||||||
|
private Alumni $offreur;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string intitulé de l'offre
|
||||||
|
*/
|
||||||
|
private string $nom;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Description de l'offre
|
||||||
|
*/
|
||||||
|
private string $description;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Url de l'image
|
||||||
|
*/
|
||||||
|
private string $imageUrl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var TypeContrat Type de contrat
|
||||||
|
*/
|
||||||
|
private TypeContrat $typeContrat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Ville
|
||||||
|
*/
|
||||||
|
private string $ville;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Entreprise de l'offre
|
||||||
|
*/
|
||||||
|
private string $entreprise;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Descriptif du poste
|
||||||
|
*/
|
||||||
|
private string $descriptifPoste;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var ProfilRecherche Profil recherché
|
||||||
|
*/
|
||||||
|
private ProfilRecherche $profil;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Experience
|
||||||
|
*/
|
||||||
|
private string $experience;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var NiveauEtudes Niveau d'études
|
||||||
|
*/
|
||||||
|
private NiveauEtudes $niveauEtudes;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Email de contact
|
||||||
|
*/
|
||||||
|
private string $mailContact;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Numero
|
||||||
|
*/
|
||||||
|
private string $numero;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Url du site
|
||||||
|
*/
|
||||||
|
private string $siteUrl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $id
|
||||||
|
* @param Alumni $offreur
|
||||||
|
* @param string $nom
|
||||||
|
* @param string $description
|
||||||
|
* @param string $imageUrl
|
||||||
|
* @param TypeContrat $typeContrat
|
||||||
|
* @param string $ville
|
||||||
|
* @param string $entreprise
|
||||||
|
* @param string $descriptifPoste
|
||||||
|
* @param Profil $profil
|
||||||
|
* @param string $experience
|
||||||
|
* @param NiveauEtudes $niveauEtudes
|
||||||
|
* @param string $mailContact
|
||||||
|
* @param string $numero
|
||||||
|
* @param string $siteUrl
|
||||||
|
*/
|
||||||
|
public function __construct(int $id, Alumni $offreur, string $nom, string $description, string $imageUrl, TypeContrat $typeContrat, string $ville, string $entreprise, string $descriptifPoste, Profil $profil, string $experience, NiveauEtudes $niveauEtudes, string $mailContact, string $numero, string $siteUrl)
|
||||||
|
{
|
||||||
|
$this->id = $id;
|
||||||
|
$this->offreur = $offreur;
|
||||||
|
$this->nom = $nom;
|
||||||
|
$this->description = $description;
|
||||||
|
$this->imageUrl = $imageUrl;
|
||||||
|
$this->typeContrat = $typeContrat;
|
||||||
|
$this->ville = $ville;
|
||||||
|
$this->entreprise = $entreprise;
|
||||||
|
$this->descriptifPoste = $descriptifPoste;
|
||||||
|
$this->profil = $profil;
|
||||||
|
$this->experience = $experience;
|
||||||
|
$this->niveauEtudes = $niveauEtudes;
|
||||||
|
$this->mailContact = $mailContact;
|
||||||
|
$this->numero = $numero;
|
||||||
|
$this->siteUrl = $siteUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getId(): int
|
||||||
|
{
|
||||||
|
return $this->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getOffreur(): Alumni
|
||||||
|
{
|
||||||
|
return $this->offreur;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getNom(): string
|
||||||
|
{
|
||||||
|
return $this->nom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getDescription(): string
|
||||||
|
{
|
||||||
|
return $this->description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getImageUrl(): string
|
||||||
|
{
|
||||||
|
return $this->imageUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getTypeContrat(): TypeContrat
|
||||||
|
{
|
||||||
|
return $this->typeContrat;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getVille(): string
|
||||||
|
{
|
||||||
|
return $this->ville;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getEntreprise(): string
|
||||||
|
{
|
||||||
|
return $this->entreprise;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getDescriptifPoste(): string
|
||||||
|
{
|
||||||
|
return $this->descriptifPoste;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getProfil(): Profil
|
||||||
|
{
|
||||||
|
return $this->profil;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getExperience(): string
|
||||||
|
{
|
||||||
|
return $this->experience;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getNiveauEtudes(): NiveauEtudes
|
||||||
|
{
|
||||||
|
return $this->niveauEtudes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getMailContact(): string
|
||||||
|
{
|
||||||
|
return $this->mailContact;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getNumero(): string
|
||||||
|
{
|
||||||
|
return $this->numero;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getSiteUrl(): string
|
||||||
|
{
|
||||||
|
return $this->siteUrl;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,68 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace modeles;
|
||||||
|
|
||||||
|
class AdminModele extends MembreModele
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @description supprimer un compte
|
||||||
|
* @param \Alumni $account compte à supprimer
|
||||||
|
*/
|
||||||
|
public function deleteAccount(\Alumni $account)
|
||||||
|
{
|
||||||
|
// TO DO
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description obtenir la liste des signalements
|
||||||
|
* @return array des signalements
|
||||||
|
*/
|
||||||
|
public function LoadReports() : array
|
||||||
|
{
|
||||||
|
// TO DO
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description supprimer une offre spécifique
|
||||||
|
* @param \Offre $offer offre à supprimer
|
||||||
|
*/
|
||||||
|
public function deleteOffer(\Offre $offer)
|
||||||
|
{
|
||||||
|
// TO DO
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description créer un évènement
|
||||||
|
* @return \Evenement évènement créé
|
||||||
|
*/
|
||||||
|
public function createEvent() : \Evenement
|
||||||
|
{
|
||||||
|
$event = new \Evenement("","",null);
|
||||||
|
// TO DO
|
||||||
|
|
||||||
|
return $event;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description suppression d'un évènement
|
||||||
|
* @param \Evenement $event évènement à supprimer
|
||||||
|
*/
|
||||||
|
public function deleteEvent(\Evenement $event)
|
||||||
|
{
|
||||||
|
// TO DO
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description obtenir la liste de tous les utilisateurs
|
||||||
|
* @return array liste de tous les utilisateurs
|
||||||
|
*/
|
||||||
|
public function getUserList() : array
|
||||||
|
{
|
||||||
|
// TO DO
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,68 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace modeles;
|
||||||
|
|
||||||
|
class MembreModele extends UtilisateurModele
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description modifier photo de profil
|
||||||
|
*/
|
||||||
|
public function updateProfilPhoto() : bool
|
||||||
|
{
|
||||||
|
// TO DO
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description ajouter formation
|
||||||
|
*/
|
||||||
|
public function addFormation() : bool
|
||||||
|
{
|
||||||
|
// TO DO
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description modifier formation
|
||||||
|
*/
|
||||||
|
public function updateFormation() : bool
|
||||||
|
{
|
||||||
|
// TO DO
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description ajouter Experience
|
||||||
|
*/
|
||||||
|
public function addExperience() : bool
|
||||||
|
{
|
||||||
|
// TO DO
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description modifier experience
|
||||||
|
*/
|
||||||
|
public function updateExpereience() : bool
|
||||||
|
{
|
||||||
|
// TO DO
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description changer mot de passe
|
||||||
|
* @param string $oldHash ancien hash
|
||||||
|
* @param string $newHash nouveau hash
|
||||||
|
*/
|
||||||
|
public function updatePasswd(string $oldHash,string $newHash) : bool
|
||||||
|
{
|
||||||
|
// TO DO
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace modeles;
|
||||||
|
|
||||||
|
class ModerateurControleur
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
namespace modeles;
|
||||||
|
|
||||||
|
class UtilisateurModele
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @description Charger le flux d'activiter
|
||||||
|
* @return array flux
|
||||||
|
*/
|
||||||
|
public function LoadFeed() : array
|
||||||
|
{
|
||||||
|
// TO DO
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description se connecter
|
||||||
|
* @param string email
|
||||||
|
* @param string hash
|
||||||
|
* @return \Alumni
|
||||||
|
*/
|
||||||
|
public function Login(string $email,string $hash) : \Alumni
|
||||||
|
{
|
||||||
|
// TO DO
|
||||||
|
return new \Alumni(null,null,null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description s'inscrire
|
||||||
|
* @param string email
|
||||||
|
* @param string hash
|
||||||
|
* @param string $pseudo
|
||||||
|
* @return \Alumni chargé
|
||||||
|
*/
|
||||||
|
public function signIn(string $email,string $pseudo,string $hash) : \Alumni
|
||||||
|
{
|
||||||
|
// TO DO
|
||||||
|
return new Compte(null,null,null);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Before Width: | Height: | Size: 333 B |
Before Width: | Height: | Size: 226 KiB |
Before Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 515 B |
Before Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 657 B |
@ -1,30 +0,0 @@
|
|||||||
@import url(https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=Share+Tech+Mono&display=swap);
|
|
||||||
*{
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
box-sizing: border-box;
|
|
||||||
font-family: 'Poppins', sans-serif;
|
|
||||||
}
|
|
||||||
body{
|
|
||||||
display: inline;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
min-height: 100vh;
|
|
||||||
background: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
input{
|
|
||||||
position: relative;
|
|
||||||
outline: none;
|
|
||||||
padding: 10px 20px;
|
|
||||||
border-radius: 10px;
|
|
||||||
letter-spacing: 1px;
|
|
||||||
font-size: 0.85em;
|
|
||||||
background-color: #00DBFF;
|
|
||||||
color: #fff;
|
|
||||||
cursor: pointer;
|
|
||||||
text-transform: uppercase;
|
|
||||||
font-weight: 600;
|
|
||||||
margin-top: 10px;
|
|
||||||
border: none;
|
|
||||||
}
|
|
@ -1,54 +0,0 @@
|
|||||||
/* styles.css */
|
|
||||||
|
|
||||||
/* Reset CSS pour normaliser le rendu sur tous les navigateurs */
|
|
||||||
* {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
font-family: 'Arial', sans-serif;
|
|
||||||
background-color: #f8f9fa;
|
|
||||||
color: #333;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container {
|
|
||||||
margin-top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.div_titres {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.div_titres a {
|
|
||||||
width: 20%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.div_titres h1 {
|
|
||||||
width: 50%;
|
|
||||||
color: #00DBFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.div_titres a img {
|
|
||||||
margin-left: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
color: #00DBFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-group-item {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: space-between;
|
|
||||||
margin-top: 20px;
|
|
||||||
padding: 15px;
|
|
||||||
border: 1px solid #dee2e6;
|
|
||||||
border-radius: 5px;
|
|
||||||
}
|
|
@ -1,102 +0,0 @@
|
|||||||
.three-body {
|
|
||||||
--uib-size: 500px;
|
|
||||||
--uib-speed: 0.8s;
|
|
||||||
--uib-color: #00DBFF;
|
|
||||||
position: relative;
|
|
||||||
display: inline-block;
|
|
||||||
height: var(--uib-size);
|
|
||||||
width: var(--uib-size);
|
|
||||||
animation: spin78236 calc(var(--uib-speed) * 2.5) infinite linear;
|
|
||||||
}
|
|
||||||
|
|
||||||
.three-body__dot {
|
|
||||||
position: absolute;
|
|
||||||
height: 100%;
|
|
||||||
width: 30%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.three-body__dot:after {
|
|
||||||
content: '';
|
|
||||||
position: absolute;
|
|
||||||
height: 0;
|
|
||||||
width: 100%;
|
|
||||||
padding-bottom: 100%;
|
|
||||||
background-color: var(--uib-color);
|
|
||||||
border-radius: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.three-body__dot:nth-child(1) {
|
|
||||||
bottom: 5%;
|
|
||||||
left: 0;
|
|
||||||
transform: rotate(60deg);
|
|
||||||
transform-origin: 50% 85%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.three-body__dot:nth-child(1)::after {
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
animation: wobble1 var(--uib-speed) infinite ease-in-out;
|
|
||||||
animation-delay: calc(var(--uib-speed) * -0.3);
|
|
||||||
}
|
|
||||||
|
|
||||||
.three-body__dot:nth-child(2) {
|
|
||||||
bottom: 5%;
|
|
||||||
right: 0;
|
|
||||||
transform: rotate(-60deg);
|
|
||||||
transform-origin: 50% 85%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.three-body__dot:nth-child(2)::after {
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
animation: wobble1 var(--uib-speed) infinite
|
|
||||||
calc(var(--uib-speed) * -0.15) ease-in-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
.three-body__dot:nth-child(3) {
|
|
||||||
bottom: -5%;
|
|
||||||
left: 0;
|
|
||||||
transform: translateX(116.666%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.three-body__dot:nth-child(3)::after {
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
animation: wobble2 var(--uib-speed) infinite ease-in-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes spin78236 {
|
|
||||||
0% {
|
|
||||||
transform: rotate(0deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
transform: rotate(360deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes wobble1 {
|
|
||||||
0%,
|
|
||||||
100% {
|
|
||||||
transform: translateY(0%) scale(1);
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
50% {
|
|
||||||
transform: translateY(-66%) scale(0.65);
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes wobble2 {
|
|
||||||
0%,
|
|
||||||
100% {
|
|
||||||
transform: translateY(0%) scale(1);
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
50% {
|
|
||||||
transform: translateY(66%) scale(0.65);
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,53 +0,0 @@
|
|||||||
|
|
||||||
img
|
|
||||||
{
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
body{
|
|
||||||
margin: 0;
|
|
||||||
padding:0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#titleDiv
|
|
||||||
{
|
|
||||||
background-image:url('../assets/deb.webp');
|
|
||||||
width: 100%;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: center;
|
|
||||||
background-position: center;
|
|
||||||
color :white;
|
|
||||||
}
|
|
||||||
|
|
||||||
#title p
|
|
||||||
{
|
|
||||||
background-color: grey;
|
|
||||||
border-radius: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#title
|
|
||||||
{
|
|
||||||
font-size: 20px;
|
|
||||||
padding: 20px;
|
|
||||||
height: 70%;
|
|
||||||
align-items: center;
|
|
||||||
color: white;
|
|
||||||
background-color: #00DBFF;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#key {
|
|
||||||
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
#key p
|
|
||||||
{
|
|
||||||
background-color: grey;
|
|
||||||
border-radius: 3px;
|
|
||||||
padding:10%;
|
|
||||||
|
|
||||||
}
|
|
@ -1,60 +0,0 @@
|
|||||||
.offre-container {
|
|
||||||
margin-bottom: 5%;
|
|
||||||
}
|
|
||||||
.offre-img {
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#titrePrincipal {
|
|
||||||
padding-bottom: 10px;
|
|
||||||
border-bottom: 1px solid black;
|
|
||||||
margin-bottom: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.custom-button {
|
|
||||||
background-color: #7fb4bd;
|
|
||||||
border-color: #7fb4bd;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.row1
|
|
||||||
{
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.row1 h4
|
|
||||||
{
|
|
||||||
margin-left: 20px;
|
|
||||||
}
|
|
||||||
.row1 img
|
|
||||||
{
|
|
||||||
width: 20%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.authorDate
|
|
||||||
{
|
|
||||||
color: #00DBFF;
|
|
||||||
margin: 1%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.row3 {
|
|
||||||
width: 30%;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-start;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.row3 img {
|
|
||||||
align-self: flex-start;
|
|
||||||
}
|
|
||||||
|
|
||||||
a{
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.current{
|
|
||||||
|
|
||||||
border-bottom: 1px solid black;
|
|
||||||
}
|
|
@ -1,122 +0,0 @@
|
|||||||
/* profil.css */
|
|
||||||
.profiles-container {
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
justify-content: space-around;
|
|
||||||
gap: 20px;
|
|
||||||
padding: 0;
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.profile {
|
|
||||||
width: calc(50% - 20px); /* Ajustez la largeur si nécessaire pour correspondre au design */
|
|
||||||
border: 1px solid #ccc; /* Bordure comme dans l'image */
|
|
||||||
border-radius: 10px;
|
|
||||||
overflow: hidden;
|
|
||||||
background: #fff;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center; /* Alignement vertical */
|
|
||||||
}
|
|
||||||
|
|
||||||
.profile-image-container {
|
|
||||||
padding: 10px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
background: #f0f0f0;
|
|
||||||
flex-shrink: 0; /* Empêche le conteneur de rétrécir */
|
|
||||||
}
|
|
||||||
|
|
||||||
.profile-image-container img {
|
|
||||||
width: 100px;
|
|
||||||
height: 100px;
|
|
||||||
border-radius: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.profile-details {
|
|
||||||
padding: 10px;
|
|
||||||
flex-grow: 1; /* Permet à ce div de prendre l'espace restant */
|
|
||||||
}
|
|
||||||
|
|
||||||
.profile-details p {
|
|
||||||
margin: 5px 0;
|
|
||||||
font-weight: bold; /* Texte en gras comme dans l'image */
|
|
||||||
}
|
|
||||||
|
|
||||||
.profile-details .job-title {
|
|
||||||
color: #007bff;
|
|
||||||
font-size: 0.85em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.profile-details a {
|
|
||||||
display: block; /* Prend toute la largeur du conteneur */
|
|
||||||
background: #007bff;
|
|
||||||
color: #fff;
|
|
||||||
padding: 5px 15px;
|
|
||||||
text-decoration: none;
|
|
||||||
border-radius: 5px;
|
|
||||||
font-size: 14px;
|
|
||||||
margin-top: 10px; /* Espace au-dessus du lien */
|
|
||||||
text-align: center; /* Centre le texte dans le lien */
|
|
||||||
}
|
|
||||||
|
|
||||||
.profile-details a:hover {
|
|
||||||
background: #0056b3;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* profil.css */
|
|
||||||
.pagination {
|
|
||||||
display: flex;
|
|
||||||
padding-left: 0;
|
|
||||||
list-style: none;
|
|
||||||
border-radius: 0.25rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-link {
|
|
||||||
position: relative;
|
|
||||||
display: block;
|
|
||||||
padding: 0.5rem 0.75rem;
|
|
||||||
margin-left: -1px;
|
|
||||||
line-height: 1.25;
|
|
||||||
color: #007bff;
|
|
||||||
background-color: #fff;
|
|
||||||
border: 1px solid #dee2e6;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-link:hover {
|
|
||||||
color: #0056b3;
|
|
||||||
text-decoration: none;
|
|
||||||
background-color: #e9ecef;
|
|
||||||
border-color: #dee2e6;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-item:first-child .page-link {
|
|
||||||
margin-left: 0;
|
|
||||||
border-top-left-radius: 0.25rem;
|
|
||||||
border-bottom-left-radius: 0.25rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-item:last-child .page-link {
|
|
||||||
border-top-right-radius: 0.25rem;
|
|
||||||
border-bottom-right-radius: 0.25rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-item.active .page-link {
|
|
||||||
z-index: 1;
|
|
||||||
color: #fff;
|
|
||||||
background-color: #007bff;
|
|
||||||
border-color: #007bff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-item.disabled .page-link {
|
|
||||||
color: #6c757d;
|
|
||||||
pointer-events: none;
|
|
||||||
cursor: auto;
|
|
||||||
background-color: #fff;
|
|
||||||
border-color: #dee2e6;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 2.5 MiB |
Before Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 8.8 KiB |
Before Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 80 KiB |
Before Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 467 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 9.7 KiB |
Before Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 160 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 8.0 KiB |
Before Width: | Height: | Size: 2.5 MiB |
Before Width: | Height: | Size: 162 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 8.8 KiB |
Before Width: | Height: | Size: 2.5 MiB |
Before Width: | Height: | Size: 3.9 KiB |