commit
28c2d704c8
@ -0,0 +1,479 @@
|
||||
##### Windows
|
||||
# Windows thumbnail cache files
|
||||
Thumbs.db
|
||||
Thumbs.db:encryptable
|
||||
ehthumbs.db
|
||||
ehthumbs_vista.db
|
||||
|
||||
# Dump file
|
||||
*.stackdump
|
||||
|
||||
# Folder config file
|
||||
[Dd]esktop.ini
|
||||
|
||||
# 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.*
|
||||
|
||||
##### Dropbox
|
||||
# Dropbox settings and caches
|
||||
.dropbox
|
||||
.dropbox.attr
|
||||
.dropbox.cache
|
||||
|
||||
##### 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~
|
||||
|
||||
##### Emacs
|
||||
# -*- mode: gitignore; -*-
|
||||
*~
|
||||
\#*\#
|
||||
/.emacs.desktop
|
||||
/.emacs.desktop.lock
|
||||
*.elc
|
||||
auto-save-list
|
||||
tramp
|
||||
.\#*
|
||||
|
||||
# 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
|
||||
|
||||
##### Notepad++
|
||||
# Notepad++ backups #
|
||||
*.bak
|
||||
|
||||
##### 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/
|
||||
dist/
|
||||
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
|
||||
.idea/**/workspace.xml
|
||||
.idea/**/tasks.xml
|
||||
.idea/**/usage.statistics.xml
|
||||
.idea/**/dictionaries
|
||||
.idea/**/shelf
|
||||
|
||||
# Generated files
|
||||
.idea/**/contentModel.xml
|
||||
|
||||
# Sensitive or high-churn files
|
||||
.idea/**/dataSources/
|
||||
.idea/**/dataSources.ids
|
||||
.idea/**/dataSources.local.xml
|
||||
.idea/**/sqlDataSources.xml
|
||||
.idea/**/dynamic.xml
|
||||
.idea/**/uiDesigner.xml
|
||||
.idea/**/dbnavigator.xml
|
||||
|
||||
# Gradle
|
||||
.idea/**/gradle.xml
|
||||
.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
|
||||
.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
|
||||
.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
|
||||
.idea/httpRequests
|
||||
|
||||
# Android studio 3.1+ serialized cache file
|
||||
.idea/caches/build_file_checksums.ser
|
||||
|
||||
##### Eclipse
|
||||
.metadata
|
||||
bin/
|
||||
tmp/
|
||||
*.tmp
|
||||
*.bak
|
||||
*.swp
|
||||
*~.nib
|
||||
local.properties
|
||||
.settings/
|
||||
.loadpath
|
||||
.recommenders
|
||||
|
||||
# External tool builders
|
||||
.externalToolBuilders/
|
||||
|
||||
# Locally stored "Eclipse launch configurations"
|
||||
*.launch
|
||||
|
||||
# PyDev specific (Python IDE for Eclipse)
|
||||
*.pydevproject
|
||||
|
||||
# CDT-specific (C/C++ Development Tooling)
|
||||
.cproject
|
||||
|
||||
# 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/
|
||||
|
||||
# Scala IDE specific (Scala & Java development for Eclipse)
|
||||
.cache-main
|
||||
.scala_dependencies
|
||||
.worksheet
|
||||
|
||||
# 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
|
||||
composer.phar
|
||||
/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
|
||||
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/
|
Binary file not shown.
After Width: | Height: | Size: 226 KiB |
After Width: | Height: | Size: 101 KiB |
After Width: | Height: | Size: 515 B |
After Width: | Height: | Size: 58 KiB |
@ -0,0 +1,102 @@
|
||||
.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;
|
||||
}
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
|
||||
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%;
|
||||
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
.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: #00DBFF;
|
||||
border-color: #00DBFF;
|
||||
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;
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace App\gateway;
|
||||
use PDO;
|
||||
class ProfilGateway
|
||||
{
|
||||
private \App\gateway\Connection $con;
|
||||
/**
|
||||
* @param Connection $con
|
||||
*/
|
||||
public function __construct(\App\gateway\Connection $con)
|
||||
{
|
||||
$this->con = $con;
|
||||
}
|
||||
|
||||
public function insert(int $alumni,string $nom, string $prenom, string $email)
|
||||
{
|
||||
$query = 'INSERT INTO Profil (alumni,nom, prenom,email) VALUES (:alumni,:nom, :prenom,:email)';
|
||||
return $this->con->executeQuery($query, array(
|
||||
':alumni' => array($alumni, PDO::PARAM_INT),
|
||||
':nom' => array($nom, PDO::PARAM_STR),
|
||||
':prenom' => array($prenom, PDO::PARAM_STR),
|
||||
':email' => array($email, PDO::PARAM_STR)
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
public function getProfilById($id)
|
||||
{
|
||||
$query = 'SELECT * FROM Profil WHERE Alumni=:i';
|
||||
$this->con->executeQuery($query, array(
|
||||
':i' => array($id, PDO::PARAM_INT)
|
||||
));
|
||||
return $this->con->getResults();
|
||||
}
|
||||
}
|
@ -1,53 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\modele;
|
||||
|
||||
use App\gateway\Connection;
|
||||
use App\metier\Image;
|
||||
use App\gateway\ImageGateway;
|
||||
class ImageModele
|
||||
{
|
||||
private ImageGateway $gw;
|
||||
public function __construct()
|
||||
{
|
||||
$this->gw = new ImageGateway(new Connection("mysql:host=localhost;dbname=dbAlica","test","test"));
|
||||
}
|
||||
|
||||
public function publierImage() : Image
|
||||
{
|
||||
$img = new Image($this->gw->getNewId(),
|
||||
$_FILES["image"]["name"],
|
||||
$_FILES["image"]["size"],
|
||||
$_FILES["image"]["type"],
|
||||
file_get_contents($_FILES["image"]["tmp_name"]));
|
||||
|
||||
$this->gw->insertImage($img);
|
||||
|
||||
return $img;
|
||||
}
|
||||
|
||||
public function insertImage(Image $img)
|
||||
{
|
||||
$this->gw->insertImage($img);
|
||||
}
|
||||
|
||||
public function obtenirParId(int $id)
|
||||
{
|
||||
$this->gw->obtenirParId($id);
|
||||
$res = $this->gw->obtenirToutesImages();
|
||||
return new Image($id ,$res[0]['nom'], $res[0]['taille'], $res[0]['type'], $res[0]['blob']);
|
||||
}
|
||||
|
||||
public function obtenirToutesImages() : array
|
||||
{
|
||||
$this->gw->obtenirToutesImages();
|
||||
$res = $this->gw->obtenirToutesImages();
|
||||
|
||||
foreach ($res as $r) {
|
||||
$array[] = new Image($this->gw->getNewId(),$r['nom'], $r['taille'], $r['type'], $r['blob']);
|
||||
}
|
||||
return $array;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,125 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" xmlns="http://www.w3.org/1999/html">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Publier une Offre</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header>
|
||||
{% include "menu.html" %}
|
||||
</header>
|
||||
|
||||
<main class="container mt-4">
|
||||
<h1>Publier Une Offre</h1>
|
||||
|
||||
<form style="background-color: #00DBFF" class="p-4" enctype="multipart/form-data" action="index.php?action=createOffer" method="post">
|
||||
|
||||
{% if tabError is defined %}
|
||||
{% for error in tabError %}
|
||||
<p style="color: red">{{ error }}</p>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
<p>Les champs contenant des astrérisques * sont obligatoires.</p>
|
||||
<div class="form-group">
|
||||
<label for="name">Intitulé de l'offre*</label>
|
||||
<input type="text" class="form-control" id="name" name="name" placeholder="Intitulé" maxlength="128" required>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="entreprise">Nom de l'entreprise :*</label>
|
||||
<input type="text" class="form-control" id="entreprise" name="entreprise" placeholder="Entreprise" maxlength="64" required>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="description">Amorce :*</label>
|
||||
<textarea class="form-control" id="description" name="description" placeholder="Description rapide" maxlength="200" required></textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-check">
|
||||
<input type="checkbox" class="form-check-input" id="fullRemote" name="fullRemote" >
|
||||
<label class="form-check-label" for="fullRemote">Full Remote</label>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="ville">Ville</label>
|
||||
<input type="text" class="form-control" id="ville" name="ville" placeholder="Ville" required maxlength="100">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="choixContrat">Choisissez un type de contrat :*</label>
|
||||
<select class="form-control" id="choixContrat" name="typeContrat">
|
||||
<option value="CDI" selected>CDI</option>
|
||||
<option value="CDD">CDD</option>
|
||||
<option value="Alternance">Alternance</option>
|
||||
<option value="Stage">Stage</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="descriptPoste">Descriptif du Poste :*</label>
|
||||
<textarea class="form-control" id="descriptPoste" name="descriptPoste" placeholder="Description du Poste" required maxlength="2028"></textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="profilRecherche">Profil Recherché :*</label>
|
||||
<textarea class="form-control" id="profilRecherche" name="profilRecherche" placeholder="Profil recherché" required maxlength="2028"></textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="choixExp">Experience Recherchée :*</label>
|
||||
<select class="form-control" id="choixExp" name="choixExp" required>
|
||||
<option value="Indifférent" selected>Indifferent</option>
|
||||
<option value="Junior">Junior</option>
|
||||
<option value="Senior">Senior</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="nivEtudes">Niveau d'études :*</label>
|
||||
<select class="form-control" id="nivEtudes" name="education" required>
|
||||
<option value="Indifférent" selected>Indifferent</option>
|
||||
<option value="Bac+2">Bac+2</option>
|
||||
<option value="Bac+3">Bac+3</option>
|
||||
<option value="Bac+5">Bac+5</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="mail">Email de contact :*</label>
|
||||
<input type="text" class="form-control" id="mail" name="mail" placeholder="Adresse de contact" maxlength="30" required>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="num">Numero de contact :*</label>
|
||||
<input type="text" class="form-control" id="num" name="num" placeholder="Numéro de contact" required maxlength="10">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="site">Site web de l'annonce ou entreprise :</label>
|
||||
<input type="text" class="form-control" id="site" name="site" placeholder="Adresse web" maxlength="40" required>
|
||||
</div>
|
||||
|
||||
<label for="image">Image*</label>
|
||||
<input type="file" name="image" id="image" required>
|
||||
<label for="logo">Logo d'entreprise*</label>
|
||||
<input type="file" name="logo" id="logo" required>
|
||||
<input type="submit" value="Publier L'annonce" name="submit" id="submit">
|
||||
<p><i>Les images doivent être de type png, jpg, jpeg, bmp, webp & inférieures à 10MB</i></p>
|
||||
</form>
|
||||
|
||||
</main>
|
||||
|
||||
<!-- scripts : -->
|
||||
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.3/dist/umd/popper.min.js"></script>
|
||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
@ -0,0 +1,145 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" xmlns="http://www.w3.org/1999/html">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Alica - Offres</title>
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="css/offres.css">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
{% include "menu.html" %}
|
||||
</header>
|
||||
|
||||
<div class="container mt-4 d-flex align-content-center ">
|
||||
<div>
|
||||
<a href="index.php?action=createOfferForm" type="button" class="btn btn-outline-success mb-4">Publier une offre</a>
|
||||
</div>
|
||||
|
||||
<div class="container mt-4">
|
||||
|
||||
<div class="d-flex flex-column align-items-center">
|
||||
<form action="index.php" method="get" class="form-inline flex-wrap mb-4">
|
||||
<h2 class="mr-3">Filtrer les offres</h2>
|
||||
|
||||
<div class="form-group mr-3 flex-column justify-content-left">
|
||||
<label for="typeContrat" class="text-left">Type de contrat :</label>
|
||||
<div class="form-check ml-0">
|
||||
<input class="form-check-input" type="radio" name="typeContrat" id="cdd" value="CDD" {% if typeContrat == "CDD" %}checked{% endif %}>
|
||||
<label class="form-check-label" for="cdd">CDD</label>
|
||||
</div>
|
||||
<div class="form-check ml-0">
|
||||
<input class="form-check-input" type="radio" name="typeContrat" id="cdi" value="CDI" {% if typeContrat == "CDI" %}checked{% endif %}>
|
||||
<label class="form-check-label" for="cdi">CDI</label>
|
||||
</div>
|
||||
<div class="form-check ml-0">
|
||||
<input class="form-check-input" type="radio" name="typeContrat" id="alternance" value="Alternance" {% if "Alternance" == typeContrat %}checked{% endif %}>
|
||||
<label class="form-check-label" for="alternance">Alternance</label>
|
||||
</div>
|
||||
<div class="form-check ml-0">
|
||||
<input class="form-check-input" type="radio" name="typeContrat" id="stage" value="Stage" {% if "Stage" == typeContrat %}checked{% endif %}>
|
||||
<label class="form-check-label" for="stage">Stage</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group mr-3 flex-column">
|
||||
<label for="experience">Expérience :</label>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="experience" id="junior" value="Junior" {% if "Junior" == experience %}checked{% endif %}>
|
||||
<label class="form-check-label" for="junior">Junior</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="experience" id="senior" value="Senior" {% if "Senior" == experience %}checked{% endif %}>
|
||||
<label class="form-check-label" for="senior">Senior</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group flex-column">
|
||||
|
||||
<label for="niveauEtudes">Niveau d'études :</label>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="niveauEtudes" id="bac2" value="Bac+2" {% if "Bac+2" == niveauEtudes %}checked{% endif %}>
|
||||
<label class="form-check-label" for="bac2">Bac+2</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="niveauEtudes" id="bac3" value="Bac+3" {% if "Bac+3" == niveauEtudes %}checked{% endif %}>
|
||||
<label class="form-check-label" for="bac3">Bac+3</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="niveauEtudes" id="bac5" value="Bac+5" {% if "Bac+5" == niveauEtudes %}checked{% endif %}>
|
||||
<label class="form-check-label" for="bac5">Bac+5</label>
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Filtrer</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="index.php?action=consultOffers" class="btn btn-info">Réinitialiser les filtres</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<h1 id="titrePrincipal">Offres d'emploi</h1>
|
||||
|
||||
|
||||
<div class="col-md-8 offset-md-2">
|
||||
|
||||
{% for offre in offres %}
|
||||
<article class="mb-4">
|
||||
<div class="row1">
|
||||
<img src="uploads/{{offre.getLogo()}}" class="img-fluid rounded" alt="logo"> <!-- Ajoutez la classe "rounded" pour arrondir les coins -->
|
||||
<h4>{{ offre.getNom() }}</h4>
|
||||
</div>
|
||||
<div class="row2">
|
||||
<p class="authorDate"><strong>Julien Martin | {{ offre.getDateStringFr()}}</strong></p>
|
||||
<p>{{ offre.getDescription() }}</p>
|
||||
</div>
|
||||
|
||||
<div class="row3">
|
||||
<img src="assets/location.png" alt="location">
|
||||
<p>{{offre.getVille()}}</p>
|
||||
</div>
|
||||
<button type="button" class="btn btn-outline-primary btn-sm mb-2 custom-button"
|
||||
onclick="window.location.href = 'index.php?action=displayOffer&id={{offre.getId()}}';">En savoir plus >
|
||||
</button>
|
||||
</article>
|
||||
|
||||
{% endfor %}
|
||||
|
||||
<nav style="text-align: center;">
|
||||
<nav style="text-align: center;">
|
||||
{% if numberPages is defined %}
|
||||
{% if currentPage is defined %}
|
||||
{% for i in 1..numberPages %}
|
||||
{% if i == currentPage %}
|
||||
<!--
|
||||
index.php?action=consultOffers&page={{ i }}&typeContrat={{ typeContrat }}&experience={{ experience }}&niveauEtudes={{ niveauEtudes }}
|
||||
-->
|
||||
<a href="index.php?action=consultOffers&page={{ i }}&{{valContrat}}{{valExp}}{{ValEtudes}}" class="active bg-danger">{{ i }}</a>
|
||||
{% else %}
|
||||
<a href="index.php?action=consultOffers&page={{ i }}&{{valContrat}}{{valExp}}{{ValEtudes}}">{{ i }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</nav>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"></script>
|
||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Offre {{ offre.getNom() }}</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,54 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Détails de l'Offre {{ offre.getNom() }}</title>
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header>
|
||||
<!-- Add your logo here -->
|
||||
|
||||
{% include "menu.html" %}
|
||||
</header>
|
||||
<div class="container mt-5">
|
||||
<h1 class="display-4">Détails de l'Offre</h1>
|
||||
<ul class="list-group">
|
||||
<!-- Add an image related to the offer -->
|
||||
|
||||
<li class="list-group-item"></li><img src="uploads/{{offre.getLogo()}}" alt="Logo" class="img-thumbnail" style="max-height: 50px; max-width: 50px;"</li>
|
||||
<li class="list-group-item"><img src="uploads/{{offre.getImg()}}" alt="Offer Image" class="img-fluid"></li>
|
||||
<!--<li class="list-group-item"><strong>ID:</strong> {{ offre.getId() }}</li> -->
|
||||
<li class="list-group-item"><strong>Offreur:</strong> {{ offre.getOffreur().getNom() }}</li>
|
||||
<li class="list-group-item"><strong>Nom de l'offre:</strong> {{ offre.getNom() }}</li>
|
||||
<li class="list-group-item"><strong>Entreprise :</strong> {{ offre.getEntreprise() }}</li>
|
||||
<li class="list-group-item"><strong>Description:</strong> {{ offre.getDescription() }}</li>
|
||||
<li class="list-group-item"><strong>Type de contrat:</strong> {{ offre.getTypeContrat() }}</li>
|
||||
<li class="list-group-item"><strong>Niveau d'études :</strong> {{ offre.getNiveauEtudes() }}</li>
|
||||
<li class="list-group-item"><strong>Ville:</strong> {{ offre.getVille() }}</li>
|
||||
<li class="list-group-item"><strong>Date de publication:</strong> {{ offre.getDateStringFr() }}</li>
|
||||
<li class="list-group-item"><strong>Descriptif Poste :</strong> {{ offre.getDescriptifPoste() }}</li>
|
||||
<li class="list-group-item"><strong>Profil recherché :</strong> {{ offre.getProfilSearched() }}</li>
|
||||
<li class="list-group-item"><strong>Site de L'annonce :</strong> {{ offre.getSiteUrl() }}</li>
|
||||
<li class="list-group-item"><strong>Mail de Contact : :</strong> {{ offre.getMailContact() }}</li>
|
||||
<li class="list-group-item"><strong>Numéro de Contact :</strong> {{ offre.getNumero() }}</li>
|
||||
|
||||
<li class="list-group-item">
|
||||
<strong>Full Remote :</strong>
|
||||
{% if offre.isRemote() %}
|
||||
Oui
|
||||
{% else %}
|
||||
Non
|
||||
{% endif %}
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.3/dist/umd/popper.min.js"></script>
|
||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,28 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Footer</title>
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="d-flex justify-content-around">
|
||||
|
||||
<div style="background-color:#00DBFF">div 1</div>
|
||||
|
||||
<div style="background-color:#00DBFF">
|
||||
<h3>Association</h3>
|
||||
</div>
|
||||
|
||||
<div style="background-color:#00DBFF">
|
||||
<h3>Aide</h3>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<p class="text-center">© Copyright 2023, All Rights Reserved by Alica</p>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,24 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Success</title>
|
||||
<link rel="stylesheet" type="text/css" href="../public/css/inscription_success.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1>Inscription effectuée avec succès, vous pouvez désormais vous connecter</h1>
|
||||
<p>Vous allez être redirigé vers la page de connexion dans 5 secondes</p>
|
||||
<div class="three-body">
|
||||
<div class="three-body__dot"></div>
|
||||
<div class="three-body__dot"></div>
|
||||
<div class="three-body__dot"></div>
|
||||
</div>
|
||||
<script>
|
||||
setTimeout(function () {
|
||||
window.location.href = "../public/index.php?action=connection";
|
||||
}, 5000);
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,88 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Alica - Offres</title>
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
|
||||
<style>
|
||||
.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: #00DBFF;
|
||||
border-color: #00DBFF;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
{% include "menu.html" %}
|
||||
</header>
|
||||
|
||||
<div class="container mt-4">
|
||||
<h1 id="titrePrincipal">Offres d'emploi</h1>
|
||||
|
||||
{% for offre in offers %}
|
||||
<div class="offre-container">
|
||||
<div class="row">
|
||||
<!-- Première ligne -->
|
||||
<div class="col-12 col-md-3">
|
||||
<img src="data:image/png;base64,{{ offre.getImg().getBlob() | base64 }}" class="offre-img">
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-md-9">
|
||||
<h3>{{ offre.getNom() }}</h3>
|
||||
<p>Julien Martin</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<p class="text-left">{{ offre.getDescription() }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Quatrième ligne (Localisation) -->
|
||||
<div class="row">
|
||||
<div class="col-1">
|
||||
<img src="assets/location.png" class="img-fluid" title="ville">
|
||||
</div>
|
||||
<div class="col-11">
|
||||
<p>{{ offre.getVille() }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<button type="button" class="btn btn-outline-primary btn-sm mb-2 custom-button"
|
||||
onclick="window.location.href = 'index.php?action=displayOffer&id={{offre.getId()}}';">En savoir plus ></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
{% if pages is defined %}
|
||||
|
||||
{% for page in pages %}
|
||||
<a href="index.php?action=displayOffers&page={{page}}">{{page}}</a>
|
||||
{% endfor %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
|
||||
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"></script>
|
||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,21 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Test Img</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<form name="form" action="index.php?action=publierOffre" method="post" enctype="multipart/form-data">
|
||||
|
||||
<label>Image:</label>
|
||||
<input type="file" name="image" id="image">
|
||||
<input type="submit" value="Publier L'annonce" name="submit">
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in new issue