Compare commits
70 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6e63c1f2e8 | |||
| 8a91476e86 | |||
| 714bf6ad8e | |||
| 1907aeb647 | |||
| 5f1e89b7ea | |||
| 0f7f85c39e | |||
| e912a508d3 | |||
| ea3cdf0553 | |||
| 4518a8a5e2 | |||
| c6a00a24c7 | |||
| 68ca21136a | |||
| d14bea9c1a | |||
| b2a6e425aa | |||
| fd48045549 | |||
| 512d269f53 | |||
| 3743166ac2 | |||
| 72c72a5986 | |||
| f3e2cb2cf1 | |||
| c83832cdc1 | |||
| dc4fbb6d63 | |||
| 58f9c35f7b | |||
| 9e79171e62 | |||
| 8e7f6d1d08 | |||
| 271883412d | |||
| 6c0b2e1fe5 | |||
| 80c4dc5910 | |||
| b008f12954 | |||
| d0f6533984 | |||
| c60b2ce9fe | |||
| 8bfc3a37c0 | |||
| aa162dff57 | |||
| 29cc1e2658 | |||
| 47d9a08311 | |||
| 2072f1f231 | |||
| a55828306a | |||
| 2757340f8e | |||
| 6ef1ab86c1 | |||
| 76fa1bdb59 | |||
| 96a9a58af6 | |||
| 1e199008b3 | |||
| 7464000fea | |||
| 7ae1389c7b | |||
| 8b2e6612be | |||
| 457d6c4e5a | |||
| 0b59a5bbaa | |||
| a0aebfa52c | |||
| 38d84a0257 | |||
| d3d8339a6f | |||
| 8ef169197d | |||
| 1cf0e33b07 | |||
| fbfadf425f | |||
| 2d097a0424 | |||
| 27963ab492 | |||
| c801d92143 | |||
| 737af1052b | |||
| 85b1e2406d | |||
| 5cb2f6d2cb | |||
| b070ae8e28 | |||
| 5b9c7e57fe | |||
| 8f8e2c3b2f | |||
| d0e7ee8b74 | |||
| c0445c9ad3 | |||
| 65dfac1af5 | |||
| 50831adf20 | |||
| 6f7d329cc6 | |||
| 5f2e5fddbf | |||
| e905cb063c | |||
| 44ae8a01fb | |||
| 703b8891e6 | |||
| 724e175a6c |
@@ -8,3 +8,5 @@
|
||||
/backup
|
||||
/conf/env/*.env
|
||||
volume/www/website/.idea
|
||||
/volume/www/website/store/themes/talentstube-20170413/cache/*
|
||||
/volume/www/website/store/img/tmp/*
|
||||
|
||||
@@ -84,7 +84,7 @@ db-restore-website:
|
||||
|
||||
db-restore-store:
|
||||
@echo "Restoring file to database (backup/store-mysql.sql)"
|
||||
@docker exec -i $(CLIENT).mysql.$(ENV) mysql -uroot database < backup/store-mysql.sql
|
||||
@docker exec -i $(CLIENT).store-mysql.$(ENV) mysql -uroot database < backup/store-mysql.sql
|
||||
|
||||
cc:
|
||||
@echo "Clearing symfony cache"
|
||||
|
||||
@@ -10,4 +10,5 @@ rewrite ^/page/les-conseils$ https://www.talentstube.com/accompagnement-entrep
|
||||
rewrite ^/page/presentation-talent$ https://www.talentstube.com/cv-video permanent;
|
||||
rewrite ^/page/la-plateforme$ https://www.talentstube.com/ permanent;
|
||||
rewrite ^/tarifs$ https://www.talentstube.com/accompagnement-entreprise permanent;
|
||||
rewrite ^/annonce/38-charge-de-projets-developpement-h-f$ https://www.talentstube.com/annonce/38-charge-de-projets-developpement-cosmetique-h-f permanent;
|
||||
rewrite ^/annonce/38-charge-de-projets-developpement-h-f$ https://www.talentstube.com/annonce/38-charge-de-projets-developpement-cosmetique-h-f permanent;
|
||||
rewrite ^/annonce/recherche/$ https://www.talentstube.com/annonce/recherche permanent;
|
||||
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
define('_DB_SERVER_', 'tt-website.store-php.prod');
|
||||
define('_DB_SERVER_', 'tt-website.store-mysql.prod');
|
||||
define('_DB_NAME_', 'database');
|
||||
define('_DB_USER_', 'user');
|
||||
define('_DB_PASSWD_', 'O}lk|45&J,kT+DDM{uk[');
|
||||
|
||||
@@ -1,93 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xml:base="https://www.prestashop.com/fr/blog/feed.xml" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:og="http://ogp.me/ns#" xmlns:article="http://ogp.me/ns/article#" xmlns:book="http://ogp.me/ns/book#" xmlns:profile="http://ogp.me/ns/profile#" xmlns:video="http://ogp.me/ns/video#" xmlns:product="http://ogp.me/ns/product#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:sioc="http://rdfs.org/sioc/ns#" xmlns:sioct="http://rdfs.org/sioc/types#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#">
|
||||
<channel>
|
||||
<title>Blog Feed</title>
|
||||
<link>https://www.prestashop.com/fr/blog/feed.xml</link>
|
||||
<description></description>
|
||||
<language>fr</language>
|
||||
<atom:link href="https://www.prestashop.com/fr/blog/feed.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>4 moyens d’augmenter votre taux de conversion grâce à votre page de paiement</title>
|
||||
<link>https://www.prestashop.com/fr/4-moyens-daugmenter-votre-taux-de-conversion-grace-a-votre-page-de-paiement-6</link>
|
||||
<description>Par
|
||||
Dernier contact entre un marchand et son client, nous savons que le check-out est un passage délicat dans le tunnel de conversion.
|
||||
</description>
|
||||
<pubDate>Thu, 20 Jul 2017 16:30:04 +0200</pubDate>
|
||||
<dc:creator>Anonymous</dc:creator>
|
||||
<guid isPermaLink="false">https://www.prestashop.com/fr/4-moyens-daugmenter-votre-taux-de-conversion-grace-a-votre-page-de-paiement-6</guid>
|
||||
</item>
|
||||
<item>
|
||||
<title>Comment une agence de développement web peut-elle vous être utile ?</title>
|
||||
<link>https://www.prestashop.com/fr/comment-une-agence-de-developpement-web-peut-elle-vous-etre-utile</link>
|
||||
<description>Par
|
||||
Lorsqu’un marchand nous contacte pour la première fois, l’une des questions récurrentes est : "Pourquoi confier ses développements à une agence ?". Puis, à propos de PrestaShop: "Puisque le logiciel est gratuit, ai-je vraiment besoin d'un prestataire technique ?".
|
||||
</description>
|
||||
<pubDate>Thu, 20 Jul 2017 14:46:24 +0200</pubDate>
|
||||
<dc:creator>Anonymous</dc:creator>
|
||||
<guid isPermaLink="false">https://www.prestashop.com/fr/comment-une-agence-de-developpement-web-peut-elle-vous-etre-utile</guid>
|
||||
</item>
|
||||
<item>
|
||||
<title>Rencontrez Nicolas, Ambassadeur du mois | Juillet 2017</title>
|
||||
<link>https://www.prestashop.com/fr/blog/prestashop-ambassadors/rencontrez-nicolas-ambassadeur-du-mois-juillet-2017-2</link>
|
||||
<description>CreaNico est notre Ambassadeur à Montpellier, France, et est très actif dans la région.</description>
|
||||
<pubDate>Tue, 18 Jul 2017 17:27:38 +0200</pubDate>
|
||||
<dc:creator>Manon Plommet</dc:creator>
|
||||
<guid isPermaLink="false">https://www.prestashop.com/fr/blog/prestashop-ambassadors/rencontrez-nicolas-ambassadeur-du-mois-juillet-2017-2</guid>
|
||||
</item>
|
||||
<item>
|
||||
<title>Zoom sur l&#039;e-commerce italien</title>
|
||||
<link>https://www.prestashop.com/fr/blog/tendances-e-commerce/zoom-sur-le-commerce-italien</link>
|
||||
<description>Avec un taux de croissance des ventes de 18% en 2016, une base d’acheteurs en ligne de 18 millions de personnes et un panier moyen en augmentation, le e-commerce italie</description>
|
||||
<pubDate>Mon, 17 Jul 2017 18:34:12 +0200</pubDate>
|
||||
<dc:creator>vMartelli</dc:creator>
|
||||
<guid isPermaLink="false">https://www.prestashop.com/fr/blog/tendances-e-commerce/zoom-sur-le-commerce-italien</guid>
|
||||
</item>
|
||||
<item>
|
||||
<title>Rentrée, Black Friday, Noël : Téléchargez votre guide e-commerce de fin d&#039;année</title>
|
||||
<link>https://www.prestashop.com/fr/blog/actualites-prestashop/rentree-black-friday-noel-telechargez-votre-guide-e-commerce-de-fin-dannee-1</link>
|
||||
<description>La rentrée, Black Friday, Noël : en quelques mois seulement se joue la majeure partie du chiffre d’affaires de l’activité e-commerce.</description>
|
||||
<pubDate>Mon, 17 Jul 2017 14:28:47 +0200</pubDate>
|
||||
<dc:creator>Cécile Dubouis</dc:creator>
|
||||
<guid isPermaLink="false">https://www.prestashop.com/fr/blog/actualites-prestashop/rentree-black-friday-noel-telechargez-votre-guide-e-commerce-de-fin-dannee-1</guid>
|
||||
</item>
|
||||
<item>
|
||||
<title>Lutte contre la fraude à la TVA, allègement de la loi</title>
|
||||
<link>https://www.prestashop.com/fr/blog/actualites-prestashop/lutte-fraude-tva-allegement-loi</link>
|
||||
<description>Suite à notre article Conformité à l’articl</description>
|
||||
<pubDate>Mon, 26 Jun 2017 10:10:00 +0200</pubDate>
|
||||
<dc:creator>Mohammed Bellamine</dc:creator>
|
||||
<guid isPermaLink="false">https://www.prestashop.com/fr/blog/actualites-prestashop/lutte-fraude-tva-allegement-loi</guid>
|
||||
</item>
|
||||
<item>
|
||||
<title>Planning et astuces pour créer des promotions efficaces sur PrestaShop</title>
|
||||
<link>https://www.prestashop.com/fr/blog/conseils-e-commerce/planning-et-astuces-pour-creer-des-promotions-efficaces-sur-prestashop</link>
|
||||
<description>Été, rentrée, Black Friday, Noël… Les promotions de fin d’année sont primordiales en e-commerce, mais leur préparation peut être chronophage.</description>
|
||||
<pubDate>Mon, 19 Jun 2017 11:24:19 +0200</pubDate>
|
||||
<dc:creator>Cécile Dubouis</dc:creator>
|
||||
<guid isPermaLink="false">https://www.prestashop.com/fr/blog/conseils-e-commerce/planning-et-astuces-pour-creer-des-promotions-efficaces-sur-prestashop</guid>
|
||||
</item>
|
||||
<item>
|
||||
<title>10 ans – 10 interviews « portrait » : Keiko ITO, développeuse web au Japon </title>
|
||||
<link>https://www.prestashop.com/fr/blog/actualites-prestashop/10-ans-10-interviews-portrait-keiko-ito-developpeuse-web-au-japon</link>
|
||||
<description>Le pitch / Originaire de Kobe, au Japon, Keiko est passionnée par le web et la France.</description>
|
||||
<pubDate>Fri, 16 Jun 2017 16:17:35 +0200</pubDate>
|
||||
<dc:creator>Mpierrot</dc:creator>
|
||||
<guid isPermaLink="false">https://www.prestashop.com/fr/blog/actualites-prestashop/10-ans-10-interviews-portrait-keiko-ito-developpeuse-web-au-japon</guid>
|
||||
</item>
|
||||
<item>
|
||||
<title>Rencontrez Claudia, Ambassadrice du mois | Juin 2017</title>
|
||||
<link>https://www.prestashop.com/fr/blog/prestashop-ambassadors/clone-of-meet-claudia-ambassador-of-the-month-june-2017</link>
|
||||
<description>Claudia est notre Ambassadrice à Monterrey, Mexique, et y organise des meetups très régulièrement. Elle est toujours partante pour parler de PrestaShop !</description>
|
||||
<pubDate>Fri, 16 Jun 2017 11:38:21 +0200</pubDate>
|
||||
<dc:creator>Manon Plommet</dc:creator>
|
||||
<guid isPermaLink="false">https://www.prestashop.com/fr/blog/prestashop-ambassadors/clone-of-meet-claudia-ambassador-of-the-month-june-2017</guid>
|
||||
</item>
|
||||
<item>
|
||||
<title>10 ans – 10 interviews « portrait » : Corinne Lejbowicz, CEO de PrestaShop</title>
|
||||
<link>https://www.prestashop.com/fr/blog/actualites-prestashop/10-ans-10-interviews-portrait-corinne-lejbowicz-ceo-de-prestashop</link>
|
||||
<description>Le pitch / En 2007, Corinne Lejbowicz est CEO de LeGuide.com, où elle rencontre le jeune Bruno Lévêque.</description>
|
||||
<pubDate>Wed, 14 Jun 2017 15:06:02 +0200</pubDate>
|
||||
<dc:creator>Mpierrot</dc:creator>
|
||||
<guid isPermaLink="false">https://www.prestashop.com/fr/blog/actualites-prestashop/10-ans-10-interviews-portrait-corinne-lejbowicz-ceo-de-prestashop</guid>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -261,7 +261,7 @@
|
||||
</tab>
|
||||
<tab class_name="AdminPayment" display_type="default_list">
|
||||
<module name="secureframe" position="1"/>
|
||||
<module name="paypalmx" position="2"/>
|
||||
<module name="paypal" position="13"/>
|
||||
<module name="mercadopagobr" position="3"/>
|
||||
<module name="payulatam" position="4"/>
|
||||
<module name="dotpay" position="5"/>
|
||||
@@ -272,14 +272,14 @@
|
||||
<module name="simplifycommerce" position="10"/>
|
||||
<module name="klarnaofficial" position="11"/>
|
||||
<module name="spsrsmartsepa" position="12"/>
|
||||
<module name="oyst" position="13"/>
|
||||
<module name="ewayrapid" position="14"/>
|
||||
<module name="fcpayone" position="15"/>
|
||||
<module name="pagseguro" position="16"/>
|
||||
<module name="ewayrapid" position="17"/>
|
||||
<module name="hipay" position="18"/>
|
||||
<module name="ogone" position="19"/>
|
||||
<module name="payplug" position="20"/>
|
||||
<module name="payplug" position="2"/>
|
||||
<module name="oyst" position="14"/>
|
||||
<module name="ewayrapid" position="15"/>
|
||||
<module name="fcpayone" position="16"/>
|
||||
<module name="pagseguro" position="17"/>
|
||||
<module name="ewayrapid" position="18"/>
|
||||
<module name="hipay" position="19"/>
|
||||
<module name="ogone" position="20"/>
|
||||
<module name="realexredirect" position="21"/>
|
||||
<module name="stripe_official" position="22"/>
|
||||
<module name="skrill" position="23"/>
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,2 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<modules_list><modules type="untrusted"><module name="blockreinsurance"/><module name="etransactions"/><module name="trackingfront"/></modules></modules_list>
|
||||
Vendored
-702
File diff suppressed because one or more lines are too long
Vendored
-648
File diff suppressed because one or more lines are too long
Vendored
-780
File diff suppressed because one or more lines are too long
Vendored
-717
File diff suppressed because one or more lines are too long
-2
File diff suppressed because one or more lines are too long
Vendored
-648
File diff suppressed because one or more lines are too long
Vendored
-973
File diff suppressed because one or more lines are too long
Vendored
-923
File diff suppressed because one or more lines are too long
Vendored
-963
File diff suppressed because one or more lines are too long
-2
@@ -1,2 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
@media only print{#header .nav,#header .banner,#header .row > div{display:none}#header .row div#header_logo{display:block}#center_column{width:100% !important}#left_column,#right_column{display:none}.no-print,#quantity_wanted_p > a,a.quick-view{display:none !important}div.selector,div.selector span,div.selector select{background:none}#thumbs_list li a:hover,#thumbs_list li a.shown{border-color:#fff}.product_attributes,.box-cart-bottom{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.pb-left-column #views_block{margin-top:10px;width:278px !important}#thumbs_list_frame,#thumbs_list{width:100% !important;height:100% !important}#thumbs_list li,#thumbs_list li:first-child{margin:4px;width:82px;height:82px}#view_scroll_left,#view_scroll_right,.view_scroll_spacer{display:none !important}.bx-wrapper{width:100% !important;max-width:100% !important}.bx-viewport{height:auto !important}#bxslider,#bxslider1,#crossselling_list_car{width:100% !important;height:auto !important;overflow:visible !important}#bxslider1 .product-box{min-height:200px}.bx-controls-direction{display:none}#footer .row > div,#footer .row > section{display:none}#footer .row > div#block_contact_infos,#footer .row > section#block_contact_infos{display:block;width:100%;border-left:none;border-top:1px solid #515151;padding-top:20px}.footer-container #footer h4:after{display:none}}
|
||||
-2
File diff suppressed because one or more lines are too long
Vendored
-652
File diff suppressed because one or more lines are too long
Vendored
-700
File diff suppressed because one or more lines are too long
-2
File diff suppressed because one or more lines are too long
-2
File diff suppressed because one or more lines are too long
-2
File diff suppressed because one or more lines are too long
-2
File diff suppressed because one or more lines are too long
Vendored
-651
File diff suppressed because one or more lines are too long
-2
File diff suppressed because one or more lines are too long
-2
File diff suppressed because one or more lines are too long
-2
File diff suppressed because one or more lines are too long
-2
File diff suppressed because one or more lines are too long
-2
File diff suppressed because one or more lines are too long
@@ -51,7 +51,8 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||||
<meta name="keywords" content="{$meta_keywords|escape:'html':'UTF-8'}" />
|
||||
{/if}
|
||||
<meta name="generator" content="PrestaShop" />
|
||||
<meta name="robots" content="{if isset($nobots)}no{/if}index,{if isset($nofollow) && $nofollow}no{/if}follow" />
|
||||
<!-- <meta name="robots" content="{if isset($nobots)}no{/if}index,{if isset($nofollow) && $nofollow}no{/if}follow" /> -->
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<meta name="viewport" content="width=device-width, minimum-scale=0.25, maximum-scale=1.6, initial-scale=1.0" />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<link rel="icon" type="image/vnd.microsoft.icon" href="{$favicon_url}?{$img_update_time}" />
|
||||
|
||||
@@ -48,6 +48,9 @@ class AppKernel extends Kernel
|
||||
//oAuth
|
||||
new Http\HttplugBundle\HttplugBundle(),
|
||||
new HWI\Bundle\OAuthBundle\HWIOAuthBundle(),
|
||||
|
||||
//CookieBar
|
||||
new Fairlane\CookieConsentBundle\FairlaneCookieConsentBundle(),
|
||||
];
|
||||
|
||||
if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
|
||||
|
||||
+19
-11
@@ -3,18 +3,26 @@
|
||||
{% trans_default_domain 'FOSUserBundle' %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container contentWrapper">
|
||||
<div class="row">
|
||||
<div class="col push-s3 s6">
|
||||
<h1 class="m-t-20 alttitle center-align">{{'user.register.title'|trans({},"messages") }}</h1>
|
||||
<p>{{ 'registration.confirmed'|trans({'%username%': user.username}) }}</p>
|
||||
{% if targetUrl %}
|
||||
<p><a href="{{ targetUrl }}">{{ 'registration.back'|trans }}</a></p>
|
||||
{% endif %}
|
||||
<br /><br />
|
||||
|
||||
<div class="container contentWrapper">
|
||||
<div class="row">
|
||||
<div class="col push-s3 s6">
|
||||
<h1 class="m-t-20 alttitle center-align">{{'user.register.title'|trans({},"messages") }}</h1>
|
||||
<p>{{ 'registration.confirmed'|trans({'%username%': user.username}) }}</p>
|
||||
{% if targetUrl %}
|
||||
<p>
|
||||
<a href="{{ targetUrl }}">{{ 'registration.back'|trans }}</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
<br/><br/>
|
||||
{% if app.request.cookies.get('redirect_register')is defined %}
|
||||
<div class="center">
|
||||
<a href="{{ app.request.cookies.get('redirect_register') }}" class="btn btn-default">Poursuivre votre candidature</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block metarobot %}
|
||||
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
{% if fairlane_cookie_consent.active == true and app.request.cookies.get('fairlane-cookie-consent') != 'ok'%}
|
||||
{% if fairlane_cookie_consent.translate == true %}
|
||||
{% set text_info = fairlane_cookie_consent.twig.text_info | trans %}
|
||||
{% set text_additional_info_link = fairlane_cookie_consent.twig.text_additional_info_link | trans %}
|
||||
{% set text_accept_button = fairlane_cookie_consent.twig.text_accept_button | trans %}
|
||||
{% else %}
|
||||
{% set text_info = fairlane_cookie_consent.twig.text_info %}
|
||||
{% set text_additional_info_link = fairlane_cookie_consent.twig.text_additional_info_link %}
|
||||
{% set text_accept_button = fairlane_cookie_consent.twig.text_accept_button %}
|
||||
{% endif %}
|
||||
<div id="fairlane-cookie-consent" {% if fairlane_cookie_consent.useBootstrap == true %}class="navbar navbar-fixed-top"{% endif %}>
|
||||
<p>
|
||||
{{ text_info }}
|
||||
{% if fairlane_cookie_consent.twig.url_additional_info| length > 1 and text_additional_info_link | length > 1 %}
|
||||
<a href="{{ fairlane_cookie_consent.twig.url_additional_info }}" target="_blank">{{ text_additional_info_link }}</a>
|
||||
{% endif %}
|
||||
</p>
|
||||
<button class="btn btn-default">{{ text_accept_button }}</button>
|
||||
</div>
|
||||
{% if fairlane_cookie_consent.useJquery %}
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function() {
|
||||
jQuery("#fairlane-cookie-consent button").click(function(){
|
||||
jQuery.ajax({
|
||||
async: true,
|
||||
type: 'POST',
|
||||
url: '{{ url('fairlane_cookie_consent_accept') }}',
|
||||
data: JSON.stringify({'cookie-consent': 'ok'}),
|
||||
success: function(data) {
|
||||
jQuery("#fairlane-cookie-consent").fadeOut("fast");
|
||||
},
|
||||
contentType: "application/json",
|
||||
dataType: 'json'
|
||||
});
|
||||
})
|
||||
});
|
||||
</script>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
@@ -3,7 +3,8 @@
|
||||
<div class="row center-align">
|
||||
<div class="col s12">
|
||||
<div class="owl-carousel territory-carousel">
|
||||
{% for territory in territories %}
|
||||
|
||||
{% for territory in territories if territory.territory.isPrivate != true %}
|
||||
{% set territory = territory.territory %}
|
||||
<div class="item">
|
||||
<h2 class="blue-text no-margin-top">
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
<div class="box box-primary">
|
||||
<div class="box-header">
|
||||
<h3 class="box-title">{{ ad.title }}</h3>
|
||||
<br/><i class="fa fa-link"></i>Url : {{ path("ad_show",{'alias':ad.alias})}}<br />
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{{ form_errors(form) }}
|
||||
@@ -41,7 +42,7 @@
|
||||
<h3 class="box-title">Informations</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{{ form_row(form.status) }} {{ form_row(form.isPromoted) }} {{ form_row(form.isVerified) }}
|
||||
{{ form_row(form.status) }} {{ form_row(form.isPromoted) }} {{ form_row(form.isVerified) }} {{ form_row(form.isPrivate) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -22,9 +22,11 @@
|
||||
<div class="box-header">
|
||||
<h3 class="box-title">{{ company.brandName }}</h3>
|
||||
<br><span>{{ company.mainUser.email }}</span>
|
||||
<br/><i class="fa fa-link"></i>Url : {{ path("company_show",{'alias':company.alias})}}<br />
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{{ form_errors(form) }}
|
||||
{{ form_row(form.isPrivate) }}
|
||||
{{ form_row(form.emphasis) }}
|
||||
{{ form_row(form.emphasisOrder) }}
|
||||
{{ form_row(form.brandName) }}
|
||||
|
||||
@@ -22,9 +22,11 @@
|
||||
<div class="box-header">
|
||||
<h3 class="box-title">{{ territory.brandName }}</h3>
|
||||
<br><span>{{ territory.mainUser.email }}</span>
|
||||
<br/><i class="fa fa-link"></i>Url : {{ path("territory_show",{'alias':territory.alias})}}<br />
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{{ form_errors(form) }}
|
||||
{{ form_row(form.isPrivate) }}
|
||||
{{ form_row(form.emphasis) }}
|
||||
{{ form_row(form.emphasisOrder) }}
|
||||
{{ form_row(form.brandName) }}
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
</div>
|
||||
<div class="row m-t-40">
|
||||
<div class="col s10 offset-s1 center-align">
|
||||
<button id="submit" class=" btn btn-large btn-default disabled" type="submit">
|
||||
<button title="import-candidature" id="submit" class=" btn btn-large btn-default disabled" type="submit">
|
||||
Envoyer ma candidature
|
||||
</button><br /><br />
|
||||
<a class="color-grey5" href="{{ path(routeObject,{'alias': object.alias }) }}">Annuler</a>
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block metarobot %}<meta name="robots" content="noindex,follow">{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% if typeObject == 'Ad' %}
|
||||
{% set subtitle = 'Candidature à l\'offre d\'emploi:' %}
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
</div>
|
||||
<div class="row m-t-40">
|
||||
<div class="col s10 offset-s1 center-align">
|
||||
<button id="submit" class=" btn btn-large btn-default disabled" type="submit">
|
||||
<button title="webcam-candidature" id="submit" class=" btn btn-large btn-default disabled" type="submit">
|
||||
Envoyer ma candidature
|
||||
</button><br /><br />
|
||||
<a class="color-grey5" href="{{ path(routeObject,{'alias': object.alias }) }}">Annuler</a>
|
||||
|
||||
@@ -83,5 +83,6 @@
|
||||
<script src="{{ asset_url }}"></script>
|
||||
{% endjavascripts %}
|
||||
{% endblock %}
|
||||
{{ include('FairlaneCookieConsentBundle::cookie-info.html.twig') }}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -27,9 +27,11 @@
|
||||
<h3>Profil du talent : </h3>
|
||||
<div class="profil">
|
||||
<p class="profil-picture">
|
||||
{% if answer.user.getWebPath() %}
|
||||
<img src="{{ answer.user.getWebPath() | imagine_filter('profile_square') }}"
|
||||
alt="{{ answer.user.firstname }} {{ answer.user.lastname }}"
|
||||
class="circle responsive-img"/>
|
||||
{% endif %}
|
||||
</p>
|
||||
<i class="fa fa-user-circle"
|
||||
aria-hidden="true"></i> {{ answer.user.firstname }} {{ answer.user.lastname }}
|
||||
|
||||
@@ -90,18 +90,20 @@
|
||||
<p class="chip">{{ tag }}</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="col s12 m-t-20 ">
|
||||
{% if not is_granted('ROLE_COMPANY') %}
|
||||
<p class="item-detail-reply center-align">
|
||||
<a href="{{ path('talent_spontaneous_application_create',{'id': company.id}) }}"
|
||||
class="btn btn-default">
|
||||
Candidature spontanée
|
||||
</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if not is_granted('ROLE_COMPANY') %}
|
||||
<div class="row bg-bordered row-promoted">
|
||||
<div class="col s12 center-align">
|
||||
<h3>Vous souhaitez rejoindre <span class="color-blue1">{{ company.brandname }}</span> ?</h3>
|
||||
<a href="{{ path('talent_spontaneous_application_create',{'id': company.getId()}) }}"
|
||||
class="btn btn-default">
|
||||
Candidature spontanée
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div id="offers" class="row">
|
||||
<div class="col s12">
|
||||
<h1>Les offres d’emploi pour {{ company.brandname }}</h1>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% for a in ads %}
|
||||
{% for a in ads if a.isPrivate != true %}
|
||||
<div class="col s12">
|
||||
<div class="card z-depth-3">
|
||||
<div class="card-image">
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% for a in ads %}
|
||||
{% for a in ads if a.isPrivate != true %}
|
||||
<div id="adRow" class="row item-list-bis z-depth-2 row-noMargin">
|
||||
<div class="col s12 m4 col-noPadding ad-picture">
|
||||
<a href="{{ path('ad_show',{'alias': a.alias }) }}" title="{{ a.title }}" class="item-list-media">
|
||||
@@ -12,10 +12,12 @@
|
||||
<span class="playerbtn"></span>
|
||||
{% endif %}
|
||||
</a>
|
||||
{% if a.isPromoted %}
|
||||
<div class="isPromoted">
|
||||
OFFRE POURVUE
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if a.isPromoted %}
|
||||
<div class="isPromoted"><img src="{{asset('/img/offre-pourvue-gauche.png')}}" alt="promoted"></div>
|
||||
{% endif %}
|
||||
<div class="col s12 m8 col-noPadding">
|
||||
<div class="row row-infos row-noMargin">
|
||||
<div class="col s4 m4 l5 company-infos col-noPadding">
|
||||
|
||||
@@ -34,6 +34,15 @@
|
||||
</div>
|
||||
<div class="row m-b-0 p-b-30">
|
||||
<div class="col s12 m12">
|
||||
<div id="header-resultats">
|
||||
{% if isPromotedAds %}
|
||||
<div><span class="color-blue2">{{ ads|length }}</span> offres d'emploi pourvues</div>
|
||||
<div><span><a href="{{ path('ad_search_result') }}">Voir les offres d'emploi en cours</a></span></div>
|
||||
{% else %}
|
||||
<div><span class="color-blue2">{{ ads|length }}</span> offres d'emploi en cours</div>
|
||||
<div><span><a href="{{ path('ad_search_result', {'promoted': true }) }}">Voir les offres d'emploi pourvues</a></span></div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div id="liste-resultats">
|
||||
{% if ads|length > 0 and noResults == false %}
|
||||
{% include 'default/ad_listing.html.twig' with {'ads':ads} %}
|
||||
|
||||
@@ -47,7 +47,9 @@
|
||||
</div>
|
||||
{#{% endif %}#}
|
||||
{% if ad.isPromoted %}
|
||||
<div class="isPromoted"><img src="{{asset('/img/offre-pourvue-gauche.png')}}" alt="promoted"></div>
|
||||
<div class="isPromoted">
|
||||
OFFRE POURVUE
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
@@ -96,16 +98,29 @@
|
||||
{{ 'ad.talent.isAnswer.label'|trans }}
|
||||
</div>
|
||||
{% elseif not is_granted('ROLE_COMPANY') %}
|
||||
<p class="item-detail-reply">
|
||||
<a href="{{ path('talent_answer_create',{'id': ad.getId()}) }}"
|
||||
class="btn btn-default">
|
||||
Postuler
|
||||
</a>
|
||||
</p>
|
||||
{% if not ad.isPromoted %}
|
||||
<p class="item-detail-reply">
|
||||
<a href="{{ path('talent_answer_create',{'id': ad.getId()}) }}"
|
||||
class="btn btn-default">
|
||||
Postuler
|
||||
</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% if ad.isPromoted %}
|
||||
<div class="row bg-bordered row-promoted">
|
||||
<div class="col s12 center-align">
|
||||
<h3>Vous souhaitez rejoindre <span class="color-blue1">{{ ad.company.brandname }}</span> ?</h3>
|
||||
<a href="{{ path('talent_spontaneous_application_create',{'id': ad.company.getId()}) }}"
|
||||
class="btn btn-default">
|
||||
Candidature spontanée
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="col s12 hide-on-large-only m-b-50">
|
||||
{% include 'default/ad_sidebar.html.twig' with {'ad': ad, 'showBrand': true} %}
|
||||
</div>
|
||||
|
||||
@@ -56,12 +56,18 @@
|
||||
{{ 'ad.talent.isAnswer.label'|trans }}
|
||||
</div>
|
||||
{% elseif not is_granted('ROLE_COMPANY') %}
|
||||
<p class="item-detail-reply">
|
||||
<a href="{{ path('talent_answer_create',{'id': ad.getId()}) }}"
|
||||
class="btn btn-default">
|
||||
Postuler
|
||||
</a>
|
||||
</p>
|
||||
{% if not ad.isPromoted %}
|
||||
<p class="item-detail-reply">
|
||||
<a href="{{ path('talent_answer_create',{'id': ad.getId()}) }}"
|
||||
class="btn btn-default">
|
||||
Postuler
|
||||
</a>
|
||||
</p>
|
||||
{% else %}
|
||||
<div class="item-detail-ispromoted">
|
||||
Offre pourvue
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
@@ -1,4 +1,4 @@
|
||||
{% for company in companies %}
|
||||
{% for company in companies if company.isPrivate != true %}
|
||||
<div class="col s12">
|
||||
<div class="card z-depth-3 card-company">
|
||||
<div class="card-content card-content-company">
|
||||
|
||||
@@ -37,80 +37,7 @@
|
||||
<div class="row m-b-0 p-b-30">
|
||||
<div class="col s12 m12">
|
||||
<div id="liste-resultats">
|
||||
{% for c in companies %}
|
||||
{% if (c.presentationVideo is not null or c.getPublishedAds|length > 0 ) %}
|
||||
<div class="row item-list-bis z-depth-2 row-noMargin">
|
||||
|
||||
<div class="col s12 m2 ad-picture col-logo-lg">
|
||||
<a href="{{ path('company_show',{'alias': c.alias }) }}"
|
||||
title="{{ c.brandname }}">
|
||||
{% if c.logo is not null %}
|
||||
<img src="{{ c.webPath | imagine_filter('profile_thumb') }}"/>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
<div class="col s12 m6 col-noPadding">
|
||||
<div class="row row-infos row-noMargin">
|
||||
<div class="col s4 m5 l4 col-noPadding company-infos m-l-30">
|
||||
<div class="item-list-website">
|
||||
<h2>
|
||||
<a href="{{ path('company_show',{'alias': c.alias }) }}"
|
||||
class="hover-blue2">
|
||||
<b>{{ c.brandName }}</b>
|
||||
</a>
|
||||
</h2>
|
||||
|
||||
<br/>
|
||||
{{ c.init }}
|
||||
{% if c.city != null %}
|
||||
{{ c.city }}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row row-tags row-noMargin">
|
||||
<div class="col s11 col-noPadding" style="position:relative;">
|
||||
<div class="chip center-align">
|
||||
<a class="td-none color-grey3"
|
||||
href="{{ path('company_show',{'alias': c.alias, '_fragment':'offers' }) }}">
|
||||
{% set nbAds = c.getPublishedAds|length %}
|
||||
{% if nbAds > 1 %}
|
||||
<strong>{{ c.getPublishedAds|length }} offres d'emploi en
|
||||
cours</strong>
|
||||
{% else %}
|
||||
<strong>{{ c.getPublishedAds|length }} offre d'emploi en
|
||||
cours</strong>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s12 m4 col-noPadding ad-picture">
|
||||
<a href="{{ path('company_show',{'alias': c.alias }) }}"
|
||||
title="{{ c.brandname }}"
|
||||
class="item-list-media">
|
||||
{% if c.presentationVideo %}
|
||||
{% if c.presentationVideo.thumbnails.0.sizes is defined %}
|
||||
|
||||
<img class="thumbnail_list"
|
||||
src="{{ c.presentationVideo.thumbnails.0.sizes.4.link }}"
|
||||
alt="{{ c.brandName }}"/>
|
||||
|
||||
{% endif %}
|
||||
<span class="playerbtn"></span>
|
||||
{% else %}
|
||||
<img class="thumbnail_list"
|
||||
src="{{ asset('/img/default_picture_company.svg') }}"
|
||||
alt="{{ c.brandName }}"/>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
<div class="borderList"></div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% include 'default/company_listing.html.twig' with {'companies':companies} %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
{% for c in companies if c.isPrivate != true %}
|
||||
{% if (c.presentationVideo is not null or c.getPublishedAds|length > 0 ) %}
|
||||
<div class="row item-list-bis z-depth-2 row-noMargin">
|
||||
|
||||
<div class="col s12 m2 ad-picture col-logo-lg">
|
||||
<a href="{{ path('company_show',{'alias': c.alias }) }}"
|
||||
title="{{ c.brandname }}">
|
||||
{% if c.logo is not null %}
|
||||
<img src="{{ c.webPath | imagine_filter('profile_thumb') }}"/>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
<div class="col s12 m6 col-noPadding">
|
||||
<div class="row row-infos row-noMargin">
|
||||
<div class="col s4 m5 l4 col-noPadding company-infos m-l-30">
|
||||
<div class="item-list-website">
|
||||
<h2>
|
||||
<a href="{{ path('company_show',{'alias': c.alias }) }}"
|
||||
class="hover-blue2">
|
||||
<b>{{ c.brandName }}</b>
|
||||
</a>
|
||||
</h2>
|
||||
|
||||
<br/>
|
||||
{{ c.init }}
|
||||
{% if c.city != null %}
|
||||
{{ c.city }}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row row-tags row-noMargin">
|
||||
<div class="col s11 col-noPadding" style="position:relative;">
|
||||
<div class="chip center-align">
|
||||
<a class="td-none color-grey3"
|
||||
href="{{ path('company_show',{'alias': c.alias, '_fragment':'offers' }) }}">
|
||||
{% set nbAds = c.getPublishedAds|length %}
|
||||
{% if nbAds > 1 %}
|
||||
<strong>{{ c.getPublishedAds|length }} offres d'emploi en
|
||||
cours</strong>
|
||||
{% else %}
|
||||
<strong>{{ c.getPublishedAds|length }} offre d'emploi en
|
||||
cours</strong>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s12 m4 col-noPadding ad-picture">
|
||||
<a href="{{ path('company_show',{'alias': c.alias }) }}"
|
||||
title="{{ c.brandname }}"
|
||||
class="item-list-media">
|
||||
{% if c.presentationVideo %}
|
||||
{% if c.presentationVideo.thumbnails.0.sizes is defined %}
|
||||
|
||||
<img class="thumbnail_list"
|
||||
src="{{ c.presentationVideo.thumbnails.0.sizes.4.link }}"
|
||||
alt="{{ c.brandName }}"/>
|
||||
|
||||
{% endif %}
|
||||
<span class="playerbtn"></span>
|
||||
{% else %}
|
||||
<img class="thumbnail_list"
|
||||
src="{{ asset('/img/default_picture_company.svg') }}"
|
||||
alt="{{ c.brandName }}"/>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
<div class="borderList"></div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
@@ -1,7 +1,7 @@
|
||||
<footer class="page-footer">
|
||||
<div class="container">
|
||||
<div class="row footer-info">
|
||||
<div class="col xl2 l2 m6 s6">
|
||||
<div class="col xl2 l2 m6 s12 col-footer-logo">
|
||||
<img src="{{ asset('/img/logo-mini-white.svg') }}" alt="Talents Tube 1er job board 100% vidéo">
|
||||
</div>
|
||||
<div class="col xl3 l3 m6 s6">
|
||||
@@ -16,6 +16,9 @@
|
||||
<li>
|
||||
<a class="white-text" href="{{ path('company_list') }}" title="Listes entreprises">Nos entreprises</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="white-text" href="{{ path('territory_list') }}" title="Listes des territoires">Nos territoires</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="white-text" href="https://blog.talentstube.com/contact.html" title="Talents Tube ">Contact</a>
|
||||
</li>
|
||||
@@ -50,7 +53,7 @@
|
||||
</p>
|
||||
<h5 class="white-text">Contactez-nous !</h5>
|
||||
<a class="white-text" href="mailto:bonjour@talentstube.com">Par mail</a>
|
||||
<p class="white-text" >02 97 68 14 02</p>
|
||||
<p class="white-text">02 30 05 06 31</p>
|
||||
<p class="footer-newsletter">
|
||||
<a class="btn-large btn-round" href="#" title="Newsletter" data-token="ecea5416671e97e3abfa8195848a9140" onclick="mjOpenPopin(event, this)">
|
||||
<i class="fa fa-envelope-open-o left" aria-hidden="true"></i>
|
||||
@@ -61,7 +64,11 @@
|
||||
</div>
|
||||
<div class="row footer-more-links">
|
||||
<div class="col s12 center-align">
|
||||
<a class="text-center white-text" href="https://www.e-declic.com" target="_blank" title="Agence Web">© 2017 Talents Tube</a>
|
||||
<p class="text-center white-text">Entreprise soutenue par</p>
|
||||
<a href="https://www.bretagne.bzh/"><img src="{{ asset('img/RB_monochrome_blanc.svg')}}" alt="Region Bretagne"></a><br>
|
||||
</div>
|
||||
<div class="col s12 center-align m-t-30">
|
||||
<a class="text-center white-text" href="https://www.e-declic.com" target="_blank" title="Agence Web">© 2018 Talents Tube</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -33,7 +33,10 @@
|
||||
<div id="liste-jobs" class="fuild-container bg-grey-3 button-plus">
|
||||
<div class="container">
|
||||
<div class="row center-align">
|
||||
<div class="col s12"><h2 class="blue-text no-margin-top">Les offres <span>d'emploi</span></h2></div>
|
||||
<div class="col s12">
|
||||
<h2 class="blue-text no-margin-top">Les offres d'emploi</h2>
|
||||
<h3 class="subtitles-homepage">Postulez en CV vidéo ou vidéo de motivation</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col s12 col-noPadding">
|
||||
@@ -47,7 +50,7 @@
|
||||
<div class="row center-align">
|
||||
<div class="col s12">
|
||||
<a href="{{ path('ad_search_result') }}" title="Découvrir toutes les offres d'emploi"
|
||||
class="btn btn-default btn-round btn-all-jobs">Découvrir toutes les offres d'emploi
|
||||
class="btn btn-default btn-round btn-all-jobs">Voir les offres
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -60,9 +63,8 @@
|
||||
<div class="container">
|
||||
<div class="row center-align">
|
||||
<div class="col s12">
|
||||
<h2 class="blue-text no-margin-top">
|
||||
La marque employeur des <span>entreprises de talents</span>
|
||||
</h2>
|
||||
<h2 class="blue-text no-margin-top">Ils recrutent</h2>
|
||||
<h3 class="subtitles-homepage">Ils méritent votre candidature spontanée, découvrez leur réalité, leur marque employeur.</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
@@ -76,7 +78,7 @@
|
||||
</div>
|
||||
<div class="row center-align">
|
||||
<div class="col s12">
|
||||
<a href="{{ path('company_list') }}" title="Toutes les entreprise" class="btn btn-default btn-round btn-all-talents">Découvrir toutes les entreprises</a>
|
||||
<a href="{{ path('company_list') }}" title="Toutes les entreprise" class="btn btn-default btn-round btn-all-talents">Voir les entreprises</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -90,8 +92,8 @@
|
||||
<div id="liste-talents" class="bg-dark2 button-plus">
|
||||
<div class="container">
|
||||
<div class="row center-align">
|
||||
<div class="col s12"><h2 class="blue-text no-margin-top">Les CV vidéo
|
||||
<span>à la une</span></h2></div>
|
||||
<div class="col s12"><h2 class="blue-text no-margin-top">Les talents</h2></div>
|
||||
<h3 class="subtitles-homepage">Découvrez leurs CV vidéo et vidéo de motivation.</h3>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="owl-carousel owl-carousel-home home-talent-carousel">
|
||||
@@ -107,10 +109,11 @@
|
||||
<div class="container">
|
||||
<div class="row center-align">
|
||||
<div class="col s12">
|
||||
<h2 class="blue-text no-margin-top">Les territoires <span>pour vivre et travailler</span></h2>
|
||||
<h2 class="blue-text no-margin-top">Les territoires</h2>
|
||||
<h3 class="subtitles-homepage">Venez vivre et travailler chez nous.</h3>
|
||||
{% if territories %}
|
||||
<div class="owl-carousel owl-carousel-home territory-carousel">
|
||||
{% for territory in territories if territory.presentationVideo %}
|
||||
{% for territory in territories if territory.presentationVideo and territory.isPrivate != true %}
|
||||
<div class="item">
|
||||
<div class="embed-responsive embed-responsive-16by9">
|
||||
<div class="col s12">
|
||||
@@ -120,8 +123,8 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="m-t-30">
|
||||
<a title="territoire de {{ territory.brandname }}" class="btn btn-default" href="{{ path('territory_show',{'alias': territory.alias }) }}">
|
||||
Voir le territoire de <span>{{ territory.brandname }}</span>
|
||||
<a title="Voir les territoires" class="btn btn-default" href="{{ path('territory_list') }}">
|
||||
Voir les territoires</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
<div class="row m-b-0 p-b-30">
|
||||
<div class="col s12 m12">
|
||||
<div id="liste-resultats">
|
||||
{% for c in companies %}
|
||||
{% for c in companies if c.isPrivate != true %}
|
||||
{% if (c.presentationVideo is not null or c.getPublishedAds|length > 0 ) %}
|
||||
<div class="row item-list-bis z-depth-2 row-noMargin">
|
||||
|
||||
@@ -67,7 +67,10 @@
|
||||
<p class="m-0">
|
||||
<a class="td-none color-grey3"
|
||||
href="{{ path('territory_show',{'alias': c.alias, '_fragment':'offers' }) }}">
|
||||
{% set nbAds = c.getTerritoryAds|length %}
|
||||
{% set nbAds = 0 %}
|
||||
{% for territoryAd in c.getTerritoryAds if territoryAd.ad != null %}
|
||||
{% set nbAds = nbAds + 1 %}
|
||||
{% endfor %}
|
||||
{% if nbAds > 1 %}
|
||||
<strong>{{ nbAds }} offres d'emploi en
|
||||
cours sur ce territoire</strong>
|
||||
|
||||
@@ -106,16 +106,34 @@
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<br class="clear" />
|
||||
<div class="row m-t-50">
|
||||
<div class="col s12 center-align">
|
||||
<a class="btn-default btn-grey" href="#offers">OFFRES D'EMPLOI</a> /
|
||||
<a class="btn-default btn-grey" href="#companies">ENTREPRISES</a>
|
||||
</div>
|
||||
</div>
|
||||
{% if companyAds|length > 0 %}
|
||||
<div id="offers" class="row">
|
||||
<div class="col s12">
|
||||
<h1>Les offres d’emploi pour {{ company.brandname }}</h1>
|
||||
<h1>Les offres d’emploi du territoire : {{ company.brandname }}</h1>
|
||||
<div id="liste-resultats">
|
||||
{% include 'default/ad_listing.html.twig' with {'ads':companyAds} %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if companies|length > 0 %}
|
||||
<div id="companies" class="row">
|
||||
<div class="col s12">
|
||||
<h1>Les entreprises du territoire : {{ company.brandname }}</h1>
|
||||
<div id="liste-resultats">
|
||||
{% include 'default/company_listing.html.twig' with {'companies':companies} %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<div id="liste-testimony" class="bg-white">
|
||||
<div class="container">
|
||||
<div class="row flexcontainer row-noMargin">
|
||||
<div class="row row-noMargin">
|
||||
<div class="owl-carousel owl-carousel-testimony">
|
||||
<div class="item">
|
||||
<div class="row">
|
||||
@@ -16,6 +16,7 @@
|
||||
Nous avons eu beaucoup d’appréciations positives grâce à cette communication.
|
||||
</p>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
@@ -32,6 +33,7 @@
|
||||
Atout supplémentaire : nos annonces en vidéo ont contribué à développer notre marque employeur !
|
||||
</p>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -59,10 +59,26 @@ doctrine:
|
||||
naming_strategy: doctrine.orm.naming_strategy.underscore
|
||||
mappings:
|
||||
AppBundle: ~
|
||||
|
||||
fairlane_cookie_consent:
|
||||
active: true
|
||||
use_bootstrap: true
|
||||
use_jquery: true
|
||||
translate: false
|
||||
cookie_lifetime: 90 # days
|
||||
twig:
|
||||
text_info: 'Notre site utilise des cookies et recueille des informations vous concernant à des fins fonctionnelles et / ou publicitaires. Nous vous invitons à accepter la collecte ou configurer vos choix. Vous pouvez modifier vos paramètres à tout moment.'
|
||||
text_accept_button: 'Accepter'
|
||||
text_additional_info_link: 'En savoir plus'
|
||||
url_additional_info: 'https://www.talentstube.com/confidentialite'
|
||||
|
||||
# Twig Configuration
|
||||
twig:
|
||||
debug: "%kernel.debug%"
|
||||
strict_variables: "%kernel.debug%"
|
||||
globals:
|
||||
fairlane_cookie_consent: '@fairlane_cookie_consent.twig'
|
||||
|
||||
|
||||
# Swiftmailer Configuration
|
||||
swiftmailer:
|
||||
|
||||
@@ -19,4 +19,7 @@ hwi_oauth_connect:
|
||||
|
||||
hwi_oauth_redirect:
|
||||
resource: "@HWIOAuthBundle/Resources/config/routing/redirect.xml"
|
||||
prefix: /login
|
||||
prefix: /login
|
||||
|
||||
fairlane_cookie_consent:
|
||||
resource: "@FairlaneCookieConsentBundle/Resources/config/routing.yml"
|
||||
@@ -50,7 +50,9 @@
|
||||
"php-http/httplug-bundle": "^1.8",
|
||||
"symfony/assetic-bundle": "^2.8",
|
||||
"friendsofsymfony/elastica-bundle": "4.1.*",
|
||||
"liip/imagine-bundle": "^1.9"
|
||||
"liip/imagine-bundle": "^1.9",
|
||||
"twig/extensions": "^1.5",
|
||||
"fairlane/cookie-consent-bundle": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"sensio/generator-bundle": "^3.0",
|
||||
|
||||
Generated
+98
-2
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "1ee242a3c7f90797f49f553ffc4a342d",
|
||||
"content-hash": "4f2ac88cf6d46bc55a35e28d9e2a66f5",
|
||||
"packages": [
|
||||
{
|
||||
"name": "alcaeus/mongo-php-adapter",
|
||||
@@ -1498,6 +1498,46 @@
|
||||
],
|
||||
"time": "2017-07-17T17:04:59+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fairlane/cookie-consent-bundle",
|
||||
"version": "1.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/fairlane/cookie-consent-bundle.git",
|
||||
"reference": "db2ca1c40a44e13c090406da6704b428d00dfd84"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/fairlane/cookie-consent-bundle/zipball/db2ca1c40a44e13c090406da6704b428d00dfd84",
|
||||
"reference": "db2ca1c40a44e13c090406da6704b428d00dfd84",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.0",
|
||||
"symfony/framework-bundle": ">=2.7",
|
||||
"symfony/twig-bundle": ">=2.7",
|
||||
"twig/twig": ">=1.28"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Fairlane\\CookieConsentBundle\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"WTFPL"
|
||||
],
|
||||
"description": "EU Cookie Consent Bundle for Symfony",
|
||||
"keywords": [
|
||||
"cookie",
|
||||
"cookie consent"
|
||||
],
|
||||
"time": "2017-11-12T00:24:21+00:00"
|
||||
},
|
||||
{
|
||||
"name": "friendsofsymfony/elastica-bundle",
|
||||
"version": "v4.1.1",
|
||||
@@ -4107,6 +4147,7 @@
|
||||
"compression",
|
||||
"minification"
|
||||
],
|
||||
"abandoned": "symfony/webpack-encore-pack",
|
||||
"time": "2017-07-14T07:26:46+00:00"
|
||||
},
|
||||
{
|
||||
@@ -4715,6 +4756,61 @@
|
||||
],
|
||||
"time": "2017-11-16T18:00:05+00:00"
|
||||
},
|
||||
{
|
||||
"name": "twig/extensions",
|
||||
"version": "v1.5.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/twigphp/Twig-extensions.git",
|
||||
"reference": "2c1a86526d0044065220d1b51ac08348bea5ca82"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig-extensions/zipball/2c1a86526d0044065220d1b51ac08348bea5ca82",
|
||||
"reference": "2c1a86526d0044065220d1b51ac08348bea5ca82",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"twig/twig": "^1.27|^2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/phpunit-bridge": "^3.4",
|
||||
"symfony/translation": "^2.7|^3.4"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/translation": "Allow the time_diff output to be translated"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.5-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Twig_Extensions_": "lib/"
|
||||
},
|
||||
"psr-4": {
|
||||
"Twig\\Extensions\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
}
|
||||
],
|
||||
"description": "Common additional features for Twig that do not directly belong in core",
|
||||
"keywords": [
|
||||
"i18n",
|
||||
"text"
|
||||
],
|
||||
"time": "2018-05-22T13:26:07+00:00"
|
||||
},
|
||||
{
|
||||
"name": "twig/twig",
|
||||
"version": "v2.4.4",
|
||||
|
||||
@@ -288,9 +288,9 @@ class AdController extends Controller
|
||||
***********************/
|
||||
|
||||
/**
|
||||
* @Route("/annonce/recherche/", name="ad_search_result")
|
||||
* @Route("/annonce/recherche/{promoted}", defaults={"promoted"=false}, name="ad_search_result")
|
||||
*/
|
||||
public function adSearchResultAction(Request $request)
|
||||
public function adSearchResultAction(Request $request, $promoted)
|
||||
{
|
||||
$session = $request->getSession();
|
||||
$form = $this->createForm(AdSearchType::class);
|
||||
@@ -298,16 +298,22 @@ class AdController extends Controller
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
$data = $form->getData();
|
||||
if (is_null($data['job'])) {
|
||||
return $this->redirectToRoute('homepage');
|
||||
//return $this->redirectToRoute('homepage');
|
||||
$session->remove('jobSearch');
|
||||
unset($data['job']);
|
||||
} else {
|
||||
$session->set('jobSearch', $data['job']);
|
||||
}
|
||||
$session->set('jobSearch', $data['job']);
|
||||
|
||||
if (!is_null($data['contrat'])) {
|
||||
$session->set('contratSearch', $data['contrat']);
|
||||
} else {
|
||||
$session->remove('contratSearch');
|
||||
}
|
||||
$adSearcher = $this->get('app.ad_searcher');
|
||||
$ads = $adSearcher->process($data);
|
||||
if(empty($ads)){
|
||||
$ads = $this->getPublishedAds();
|
||||
$ads = $this->getPublishedAds($promoted);
|
||||
$noResults = true;
|
||||
} else {
|
||||
$noResults = false;
|
||||
@@ -319,23 +325,25 @@ class AdController extends Controller
|
||||
|
||||
return $this->render('default/ad_search_result.html.twig', [
|
||||
'ads' => $ads,
|
||||
'noResults' => $noResults
|
||||
'noResults' => $noResults,
|
||||
'isPromotedAds' => $promoted
|
||||
]);
|
||||
|
||||
} else {
|
||||
|
||||
$ads = $this->getPublishedAds();
|
||||
$ads = $this->getPublishedAds($promoted);
|
||||
}
|
||||
|
||||
return $this->render('default/ad_search_result.html.twig', [
|
||||
'ads' => $ads,
|
||||
'noResults' => false
|
||||
'noResults' => false,
|
||||
'isPromotedAds' => $promoted
|
||||
]);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function getPublishedAds()
|
||||
public function getPublishedAds($promoted)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$repo = $em->getRepository('AppBundle:Ad');
|
||||
@@ -345,6 +353,18 @@ class AdController extends Controller
|
||||
$mediaManager->getThumbnails($ad);
|
||||
}
|
||||
|
||||
return $this->filterPromoted($ads, $promoted);
|
||||
}
|
||||
|
||||
public function filterPromoted($result, $promoted = "false")
|
||||
{
|
||||
$ads = array();
|
||||
foreach ($result as $ad) {
|
||||
if ($ad->getIsPromoted() === (boolean)$promoted) {
|
||||
$ads[] = $ad;
|
||||
}
|
||||
}
|
||||
|
||||
return $ads;
|
||||
}
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@ class UserController extends Controller
|
||||
$mailer = $this->get('fos_user.mailer');
|
||||
$mailer->sendConfirmationEmailMessage($user);
|
||||
|
||||
return $this->redirectToRoute('admin_config_user');
|
||||
return $this->redirectToRoute('admin_config_users');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -8,33 +8,29 @@ use AppBundle\Entity\Company;
|
||||
use AppBundle\Entity\Message;
|
||||
use AppBundle\Form\AnswerType;
|
||||
use AppBundle\Form\ContactTalentType;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Cookie;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher,
|
||||
Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken,
|
||||
Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
|
||||
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
|
||||
|
||||
class AnswerController extends Controller
|
||||
{
|
||||
/**
|
||||
/**
|
||||
* @Route("/anwser/edit/comment/{id}", name="anwser_edit_comment")
|
||||
*/
|
||||
public function anwserEditCommentAction(Request $request, Answer $answer)
|
||||
{
|
||||
if($answer) {
|
||||
{
|
||||
if ($answer) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$answer->setComment($request->get('comment'));
|
||||
$em->persist($answer);
|
||||
$em->flush();
|
||||
}
|
||||
}
|
||||
|
||||
return new JsonResponse(array('success' => "true"));
|
||||
}
|
||||
@@ -57,15 +53,16 @@ class AnswerController extends Controller
|
||||
return $this->finishAnswerAction($request, $company, $answer);
|
||||
}
|
||||
|
||||
public function finishAnswerAction($request, $object, $answer) {
|
||||
public function finishAnswerAction($request, $object, $answer)
|
||||
{
|
||||
$securityContext = $this->container->get('security.authorization_checker');
|
||||
if($object instanceof Ad) {
|
||||
if ($object instanceof Ad) {
|
||||
$route = "ad_show";
|
||||
$varReqAnswer = "ad";
|
||||
$contact = $object->getCreator();
|
||||
$title = $answer->getAd()->getTitle();
|
||||
}
|
||||
if($object instanceof Company) {
|
||||
if ($object instanceof Company) {
|
||||
$route = "company_show";
|
||||
$varReqAnswer = "company";
|
||||
$contact = $object->getMainUser();
|
||||
@@ -74,7 +71,7 @@ class AnswerController extends Controller
|
||||
if (!$securityContext->isGranted('IS_AUTHENTICATED_FULLY')) {
|
||||
return $this->redirectToRoute($route, array('alias' => $object->getAlias()));
|
||||
}
|
||||
if($answer) {
|
||||
if ($answer) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$existAnswer = $em->getRepository('AppBundle:Answer')->findOneBy(array('user' => $this->getUser(), $varReqAnswer => $object));
|
||||
if (!$this->getUser()->hasRole('ROLE_TALENT')) {
|
||||
@@ -82,7 +79,7 @@ class AnswerController extends Controller
|
||||
$session = new Session();
|
||||
$session->getFlashBag()->add('popup_answer_not_allowed', true);
|
||||
} else {
|
||||
if($existAnswer && ($existAnswer->getId() !== $answer->getid())){
|
||||
if ($existAnswer && ($existAnswer->getId() !== $answer->getid())) {
|
||||
$em->remove($answer);
|
||||
$session = new Session();
|
||||
$session->getFlashBag()->add('popup_answer_already_send', true);
|
||||
@@ -91,31 +88,31 @@ class AnswerController extends Controller
|
||||
$session->getFlashBag()->add('popup_answer_already_send', false);
|
||||
$answer->setStatus('SENDED');
|
||||
$em->persist($answer);
|
||||
|
||||
|
||||
$mediaManager = $this->get('media_manager');
|
||||
$mediaManager->getThumbnails($answer);
|
||||
$thumbnailsArray = $answer->getVideo()->getThumbnails();
|
||||
$img = $thumbnailsArray[0]['sizes'][3]['link'];
|
||||
$mailManager = $this->get('app.mail_manager');
|
||||
$link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()),UrlGeneratorInterface::ABSOLUTE_URL);
|
||||
$link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
|
||||
$mailManager->sendMail(
|
||||
'Candidature TalentsTube ',
|
||||
'<div style="margin:0 auto;max-width:600px;background:#FFFFFF;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#FFFFFF;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:0px;"><!--[if mso]>
|
||||
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
|
||||
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:0px;" align="center"><table cellpadding="0" cellspacing="0" style="border-collapse:collapse;border-spacing:0px;" align="center"><tbody><tr><td><img alt="" src="'.$img.'" style="border:none;display:block;outline:none;text-decoration:none;width:100%;max-width:600px;height:auto;" width="600" height="auto"></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
|
||||
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:0px;" align="center"><table cellpadding="0" cellspacing="0" style="border-collapse:collapse;border-spacing:0px;" align="center"><tbody><tr><td><img alt="" src="' . $img . '" style="border:none;display:block;outline:none;text-decoration:none;width:100%;max-width:600px;height:auto;" width="600" height="auto"></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
|
||||
</td></tr></table>
|
||||
<![endif]--></td></tr></tbody></table></div>
|
||||
|
||||
|
||||
<div style="margin:0 auto;max-width:600px;background:#FFFFFF;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#FFFFFF;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:0px;"><!--[if mso]>
|
||||
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
|
||||
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:20px 35px 20px 35px;" align="left"><div class="mj-content" style="cursor:auto;color:#534F4F;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;line-height:22px;"><p>Bonjour '.$contact->getLastname().' '.$contact->getFirstname().',</p>
|
||||
<p>Le talent '.$answer->getUser()->getFirstname().' '.$answer->getUser()->getLastname().' a répondu à votre annonce '.$title.'.</p></div></td></tr></tbody></table></div><!--[if mso]>
|
||||
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:20px 35px 20px 35px;" align="left"><div class="mj-content" style="cursor:auto;color:#534F4F;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;line-height:22px;"><p>Bonjour ' . $contact->getLastname() . ' ' . $contact->getFirstname() . ',</p>
|
||||
<p>Le talent ' . $answer->getUser()->getFirstname() . ' ' . $answer->getUser()->getLastname() . ' a répondu à votre annonce ' . $title . '.</p></div></td></tr></tbody></table></div><!--[if mso]>
|
||||
</td></tr></table>
|
||||
<![endif]--></td></tr></tbody></table></div>
|
||||
|
||||
|
||||
<div style="margin:0 auto;max-width:600px;background:#FFFFFF;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#FFFFFF;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:0px 0px 40px 0px;"><!--[if mso]>
|
||||
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
|
||||
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:15px 30px;" align="center"><table cellpadding="0" cellspacing="0" style="border:none;border-radius:30px;" align="center"><tbody><tr><td style="background:#1689FB;border-radius:30px;color:#FFFFFF;cursor:auto;" align="center" valign="middle" bgcolor="#1689FB"><a class="mj-content" href="'.$link.'" style="display:inline-block;text-decoration:none;background:#1689FB;border:1px solid #1689FB;border-radius:30px;color:#FFFFFF;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;font-weight:normal;padding:15px 30px;" target="_blank">Découvrir le talent</a></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
|
||||
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:15px 30px;" align="center"><table cellpadding="0" cellspacing="0" style="border:none;border-radius:30px;" align="center"><tbody><tr><td style="background:#1689FB;border-radius:30px;color:#FFFFFF;cursor:auto;" align="center" valign="middle" bgcolor="#1689FB"><a class="mj-content" href="' . $link . '" style="display:inline-block;text-decoration:none;background:#1689FB;border:1px solid #1689FB;border-radius:30px;color:#FFFFFF;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;font-weight:normal;padding:15px 30px;" target="_blank">Découvrir le talent</a></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
|
||||
</td></tr></table>
|
||||
<![endif]--></td></tr></tbody></table></div>',
|
||||
$contact,
|
||||
@@ -123,9 +120,9 @@ class AnswerController extends Controller
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$session->getFlashBag()->add('popup_answer_send', true);
|
||||
$em->flush();
|
||||
|
||||
$session->getFlashBag()->add('popup_answer_send', true);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
return $this->redirect($this->generateUrl($route, array('alias' => $object->getAlias())));
|
||||
@@ -147,22 +144,25 @@ class AnswerController extends Controller
|
||||
return $this->generateStep2($request, $company, $type);
|
||||
}
|
||||
|
||||
public function generateStep2(Request $request, $object, $type) {
|
||||
if($object instanceof Ad) {
|
||||
public function generateStep2(Request $request, $object, $type)
|
||||
{
|
||||
if ($object instanceof Ad) {
|
||||
$route = "ad_show";
|
||||
$routeStep2 = 'answer_create_ad_step2';
|
||||
$routeStep3 = 'answer_create_ad_step3';
|
||||
$varReqAnswer = "ad";
|
||||
$typeObject = "Ad";
|
||||
}
|
||||
if($object instanceof Company) {
|
||||
if ($object instanceof Company) {
|
||||
$route = "company_show";
|
||||
$routeStep2 = 'answer_create_company_step2';
|
||||
$routeStep3 = 'answer_create_company_step3';
|
||||
$varReqAnswer = "company";
|
||||
$typeObject = "Company";
|
||||
}
|
||||
$securityContext = $this->container->get('security.authorization_checker');
|
||||
if (!$securityContext->isGranted('IS_AUTHENTICATED_FULLY')) {
|
||||
return $this->redirectToRoute($route, array('alias' => $object->getAlias()));
|
||||
return $this->redirectToRoute($route, array('alias' => $object->getAlias()));
|
||||
}
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$user = $this->getUser();
|
||||
@@ -182,18 +182,18 @@ class AnswerController extends Controller
|
||||
}
|
||||
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
if(!$mustLogin){
|
||||
return $this->redirect($this->generateUrl($routeStep3, array($varReqAnswer => $object->getId(), 'answer'=> $answer->getId())));
|
||||
if (!$mustLogin) {
|
||||
return $this->redirect($this->generateUrl($routeStep3, array($varReqAnswer => $object->getId(), 'answer' => $answer->getId())));
|
||||
}
|
||||
}
|
||||
|
||||
/*Definition des urls de destination pour ouath login et register*/
|
||||
$destination_login = $this->generateUrl($routeStep3, array($varReqAnswer => $object->getId(), 'answer'=> $answer->getId()));
|
||||
/*Definition des urls de destination pour oauth login et register*/
|
||||
$destination_login = $this->generateUrl($routeStep3, array($varReqAnswer => $object->getId(), 'answer' => $answer->getId()));
|
||||
$this->get('twig')->addGlobal('destination_login', $destination_login);
|
||||
$session = new Session();
|
||||
$session->set('registration_destination', $destination_login);
|
||||
|
||||
return $this->render('answer/answer_create_'.$type.'.twig', array(
|
||||
$res = $this->render('answer/answer_create_' . $type . '.twig', array(
|
||||
'routeObject' => $route,
|
||||
'typeObject' => $typeObject,
|
||||
'object' => $object,
|
||||
@@ -202,23 +202,27 @@ class AnswerController extends Controller
|
||||
'video' => $video,
|
||||
'videos' => $videos,
|
||||
$varReqAnswer => $object,
|
||||
'mustLogin' => $mustLogin
|
||||
'mustLogin' => $mustLogin,
|
||||
));
|
||||
$redirectReg = $this->generateUrl($routeStep2, array('id' => $object->getId(), 'type' => $type));
|
||||
$res->headers->setCookie(new Cookie('redirect_register', $redirectReg));
|
||||
return $res;
|
||||
}
|
||||
|
||||
private function createAnonymousUser() {
|
||||
private function createAnonymousUser()
|
||||
{
|
||||
$userManager = $this->get('fos_user.user_manager');
|
||||
$user = $userManager->createUser();
|
||||
$uniqId = uniqId();
|
||||
$user->setUsername("anonym_".$uniqId);
|
||||
$user->setUsername("anonym_" . $uniqId);
|
||||
$user->setFirstname("anonym");
|
||||
$user->setLastname("anonym");
|
||||
$user->setEmail("anonym_".$uniqId."@talentstube.com");
|
||||
$user->setEmail("anonym_" . $uniqId . "@talentstube.com");
|
||||
$user->setPlainPassword($uniqId);
|
||||
$user->setEnabled(false);
|
||||
$user->setRoles(array('ROLE_TALENT_TMP'));
|
||||
$company = new Company();
|
||||
$company->setAlias("anonym_".$uniqId);
|
||||
$company->setAlias("anonym_" . $uniqId);
|
||||
$company->setType("TALENT_TMP");
|
||||
$user->setCompany($company);
|
||||
$userManager->updateUser($user);
|
||||
@@ -267,7 +271,7 @@ class AnswerController extends Controller
|
||||
'answer' => $answer,
|
||||
'object' => $company,
|
||||
'mustLogin' => $mustLogin,
|
||||
'route_videotheque' => $route_videotheque
|
||||
'route_videotheque' => $route_videotheque,
|
||||
));
|
||||
}
|
||||
|
||||
@@ -306,7 +310,7 @@ class AnswerController extends Controller
|
||||
'answer' => $answer,
|
||||
'object' => $ad,
|
||||
'mustLogin' => $mustLogin,
|
||||
'route_videotheque' => $route_videotheque
|
||||
'route_videotheque' => $route_videotheque,
|
||||
));
|
||||
}
|
||||
|
||||
@@ -368,7 +372,7 @@ class AnswerController extends Controller
|
||||
$answers = $em->getRepository('AppBundle:Answer')->getAnswerByCompany($user->getCompany()->getId());
|
||||
return $this->render('company/answer_list.html.twig', [
|
||||
'answers' => $answers,
|
||||
'type' => 'answer'
|
||||
'type' => 'answer',
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -382,7 +386,7 @@ class AnswerController extends Controller
|
||||
$answers = $em->getRepository('AppBundle:Answer')->findBy(array('company' => $user->getCompany()->getId(), 'status' => 'SENDED'));
|
||||
return $this->render('company/answer_list.html.twig', [
|
||||
'answers' => $answers,
|
||||
'type' => 'spontaneous'
|
||||
'type' => 'spontaneous',
|
||||
|
||||
]);
|
||||
}
|
||||
@@ -423,7 +427,7 @@ class AnswerController extends Controller
|
||||
{
|
||||
$message = array('success' => 200,
|
||||
'filename' => null,
|
||||
'originalFilename' => null
|
||||
'originalFilename' => null,
|
||||
);
|
||||
foreach ($request->files as $uploadedFile) {
|
||||
$mediaManager = $this->get('media_manager');
|
||||
@@ -447,5 +451,4 @@ class AnswerController extends Controller
|
||||
return new JsonResponse(array('success' => "true"));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -233,4 +233,17 @@ class PageController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/confidentialite", name="page_Confidentialite")
|
||||
*/
|
||||
public function ConfidentialiteAction()
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$page = $em->getRepository('AppBundle:Page')->findOneByRef('CONFIDENTIALITE');
|
||||
|
||||
return $this->render('default/page.html.twig', [
|
||||
'page' => $page
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -174,10 +174,16 @@ class TerritoryController extends Controller
|
||||
$mediaManager->getThumbnails($ad);
|
||||
}
|
||||
}
|
||||
|
||||
$companiesArray = array();
|
||||
$territoryCompanies = $em->getRepository('AppBundle:TerritoryAd')->getFrontTerritoryCompanies($company->getId());
|
||||
foreach ($territoryCompanies as $territoryCompany) {
|
||||
$companiesArray[] = $territoryCompany->getCompany();
|
||||
}
|
||||
|
||||
return $this->render('territory/territory_show.html.twig', [
|
||||
'company' => $company,
|
||||
'companyAds' => $companyAds
|
||||
'companyAds' => $companyAds,
|
||||
'companies' => $companiesArray
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -97,6 +97,13 @@ class Ad
|
||||
*/
|
||||
private $isPromoted;
|
||||
|
||||
/**
|
||||
* @var boolean
|
||||
*
|
||||
* @ORM\Column(name="is_private", type="boolean", nullable=true, options={"comment":"Annonce privé, non listée en front"})
|
||||
*/
|
||||
private $isPrivate;
|
||||
|
||||
/**
|
||||
* @var boolean
|
||||
*
|
||||
@@ -1076,4 +1083,64 @@ class Ad
|
||||
{
|
||||
return $this->territories;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set isPrivate.
|
||||
*
|
||||
* @param bool|null $isPrivate
|
||||
*
|
||||
* @return Ad
|
||||
*/
|
||||
public function setIsPrivate($isPrivate = null)
|
||||
{
|
||||
$this->isPrivate = $isPrivate;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get isPrivate.
|
||||
*
|
||||
* @return bool|null
|
||||
*/
|
||||
public function getIsPrivate()
|
||||
{
|
||||
return $this->isPrivate;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add bookmarkAd.
|
||||
*
|
||||
* @param \AppBundle\Entity\BookmarkAd $bookmarkAd
|
||||
*
|
||||
* @return Ad
|
||||
*/
|
||||
public function addBookmarkAd(\AppBundle\Entity\BookmarkAd $bookmarkAd)
|
||||
{
|
||||
$this->bookmarkAds[] = $bookmarkAd;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove bookmarkAd.
|
||||
*
|
||||
* @param \AppBundle\Entity\BookmarkAd $bookmarkAd
|
||||
*
|
||||
* @return boolean TRUE if this collection contained the specified element, FALSE otherwise.
|
||||
*/
|
||||
public function removeBookmarkAd(\AppBundle\Entity\BookmarkAd $bookmarkAd)
|
||||
{
|
||||
return $this->bookmarkAds->removeElement($bookmarkAd);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get bookmarkAds.
|
||||
*
|
||||
* @return \Doctrine\Common\Collections\Collection
|
||||
*/
|
||||
public function getBookmarkAds()
|
||||
{
|
||||
return $this->bookmarkAds;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -120,6 +120,13 @@ class Company
|
||||
*/
|
||||
private $searchable;
|
||||
|
||||
/**
|
||||
* @var boolean
|
||||
*
|
||||
* @ORM\Column(name="is_private", type="boolean", nullable=true, options={"comment":"Company privé, non listée en front"})
|
||||
*/
|
||||
private $isPrivate;
|
||||
|
||||
/***********************
|
||||
* OneToMany Array's
|
||||
***********************/
|
||||
@@ -803,4 +810,28 @@ class Company
|
||||
{
|
||||
return $this->descriptionAdmin;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set isPrivate.
|
||||
*
|
||||
* @param bool|null $isPrivate
|
||||
*
|
||||
* @return Company
|
||||
*/
|
||||
public function setIsPrivate($isPrivate = null)
|
||||
{
|
||||
$this->isPrivate = $isPrivate;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get isPrivate.
|
||||
*
|
||||
* @return bool|null
|
||||
*/
|
||||
public function getIsPrivate()
|
||||
{
|
||||
return $this->isPrivate;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,6 +95,7 @@ class Page
|
||||
$pages[] = 'MARQUEEMPLOYEUR';
|
||||
$pages[] = 'VIDEOTERRITTORY';
|
||||
$pages[] = 'ACCTERRITTORY';
|
||||
$pages[] = 'CONFIDENTIALITE';
|
||||
// $pages[] = '';
|
||||
|
||||
return $pages;
|
||||
|
||||
@@ -16,7 +16,7 @@ class AdSearchType extends AbstractType
|
||||
$builder
|
||||
->add('job', TextType::class, array(
|
||||
'label' => false,
|
||||
'required' => true,
|
||||
'required' => false,
|
||||
'attr' => array(
|
||||
'placeholder' => 'Rechercher une offre d\'emploi vidéo par mots clés',
|
||||
)
|
||||
|
||||
@@ -82,6 +82,10 @@ class AdType extends AbstractType
|
||||
->add('isVerified', CheckboxType::class, array(
|
||||
'label' => 'Vérifiée',
|
||||
'required' => false
|
||||
))
|
||||
->add('isPrivate', CheckboxType::class, array(
|
||||
'label' => 'Annonce privé ( non listée en front )',
|
||||
'required' => false
|
||||
));
|
||||
|
||||
// Emphasis
|
||||
|
||||
@@ -9,6 +9,7 @@ use Symfony\Component\Form\Extension\Core\Type\CountryType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\FileType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\UrlType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
@@ -23,7 +24,7 @@ class CompanyAdminType extends AbstractType
|
||||
$builder
|
||||
->add('brandName', TextType::class, array('label' => 'profile.company.brandname'))
|
||||
->add('businessName', TextType::class, array('label' => 'profile.company.businessname'))
|
||||
->add('description', TextType::class, array('label' => 'profile.company.description'))
|
||||
->add('description', TextareaType::class, array('label' => 'profile.company.description'))
|
||||
->add('website', UrlType::class, array(
|
||||
'label' => 'profile.company.website',
|
||||
'required' => false,
|
||||
@@ -37,6 +38,10 @@ class CompanyAdminType extends AbstractType
|
||||
))
|
||||
->add('size', TextType::class, array(
|
||||
'label' => 'profile.company.size',
|
||||
))
|
||||
->add('isPrivate', CheckboxType::class, array(
|
||||
'label' => 'Page entreprise privé ( non listée en front )',
|
||||
'required' => false
|
||||
));
|
||||
// Addresses fields
|
||||
$builder
|
||||
|
||||
@@ -87,6 +87,10 @@ class TerritoryAdminType extends AbstractType
|
||||
'label' => 'Ordre',
|
||||
'required' => false
|
||||
));
|
||||
$builder->add('isPrivate', CheckboxType::class, array(
|
||||
'label' => 'Page territoire privé ( non listée en front )',
|
||||
'required' => false
|
||||
));
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
|
||||
@@ -21,6 +21,16 @@ class TerritoryAdRepository extends \Doctrine\ORM\EntityRepository
|
||||
return $qb;
|
||||
}
|
||||
|
||||
public function getFrontTerritoryCompanies($id)
|
||||
{
|
||||
$qb = $this->createQueryBuilder('t');
|
||||
$qb->where('t.territory = :id')
|
||||
->andWhere($qb->expr()->isNotNull('t.company'))
|
||||
->setParameter('id', $id);
|
||||
|
||||
return $qb->getQuery()
|
||||
->getResult();
|
||||
}
|
||||
|
||||
public function getTerritoryAds($id)
|
||||
{
|
||||
|
||||
@@ -135,8 +135,16 @@ class FOSUBUserProvider extends BaseFOSUBProvider
|
||||
|
||||
} else {
|
||||
$userPhoto = 'http://graph.facebook.com/'.$data['id'].'/picture?height=200';
|
||||
$birthday = \DateTime::createFromFormat ('m/d/Y', $data['birthday']);
|
||||
$gender = $data['gender'];
|
||||
if(isset($data['birthday'])){
|
||||
$birthday = \DateTime::createFromFormat ('m/d/Y', $data['birthday']);
|
||||
} else {
|
||||
$birthday = null;
|
||||
}
|
||||
if (isset($data['gender'])) {
|
||||
$gender = $data['gender'];
|
||||
} else {
|
||||
$gender = null;
|
||||
}
|
||||
$id = $data['id'];
|
||||
$firstname = $data['first_name'];
|
||||
$lastname = $data['last_name'];
|
||||
|
||||
@@ -52,11 +52,12 @@ class AdSearcher
|
||||
}
|
||||
$boolQuery = new \Elastica\Query\BoolQuery();
|
||||
$fieldQuery = new \Elastica\Query\MultiMatch();
|
||||
$fieldQuery->setQuery($data['job']);
|
||||
$fieldQuery->setFields(['title', 'publicTag', 'company.brandname']);
|
||||
$boolQuery->addMust($fieldQuery);
|
||||
if(isset($data['job'])){
|
||||
$fieldQuery->setQuery($data['job']);
|
||||
$fieldQuery->setFields(['title', 'publicTag', 'company.brandname']);
|
||||
$boolQuery->addMust($fieldQuery);
|
||||
}
|
||||
|
||||
|
||||
if($data['contrat']){
|
||||
$fieldQueryContract = new \Elastica\Query\Match();
|
||||
$fieldQueryContract->setFieldQuery('contract_type', $data['contrat']);
|
||||
@@ -96,7 +97,7 @@ class AdSearcher
|
||||
{
|
||||
$ads = array();
|
||||
foreach ($result as $ad) {
|
||||
if ($ad->getStatus() == "PUBLISHED") {
|
||||
if ($ad->getStatus() == "PUBLISHED" && $ad->getIsPrivate() != true && $ad->getIsPromoted() != true) {
|
||||
$ads[] = $ad;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -131,23 +131,26 @@ class StatsManager
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ksort($arrayRecords['ad']);
|
||||
foreach ($arrayRecords['ad'] as $recordAd) {
|
||||
$count = 0;
|
||||
foreach ($recordAd as $countView) {
|
||||
$count = $count + $countView;
|
||||
if (isset($arrayRecords['ad'])) {
|
||||
ksort($arrayRecords['ad']);
|
||||
foreach ($arrayRecords['ad'] as $recordAd) {
|
||||
$count = 0;
|
||||
foreach ($recordAd as $countView) {
|
||||
$count = $count + $countView;
|
||||
}
|
||||
$arrDatasetsAd[] = $count;
|
||||
}
|
||||
$arrDatasetsAd[] = $count;
|
||||
}
|
||||
|
||||
ksort($arrayRecords['company']);
|
||||
foreach ($arrayRecords['company'] as $recordCompany) {
|
||||
$count = 0;
|
||||
foreach ($recordCompany as $countView) {
|
||||
$count = $count + $countView;
|
||||
if (isset($arrayRecords['company'])) {
|
||||
ksort($arrayRecords['company']);
|
||||
foreach ($arrayRecords['company'] as $recordCompany) {
|
||||
$count = 0;
|
||||
foreach ($recordCompany as $countView) {
|
||||
$count = $count + $countView;
|
||||
}
|
||||
$arrDatasetsCompany[] = $count;
|
||||
}
|
||||
$arrDatasetsCompany[] = $count;
|
||||
}
|
||||
|
||||
sort($lineDatesLabel, SORT_NATURAL | SORT_FLAG_CASE);
|
||||
|
||||
+3
-3
@@ -377,11 +377,11 @@ class ClassLoader
|
||||
$subPath = $class;
|
||||
while (false !== $lastPos = strrpos($subPath, '\\')) {
|
||||
$subPath = substr($subPath, 0, $lastPos);
|
||||
$search = $subPath.'\\';
|
||||
$search = $subPath . '\\';
|
||||
if (isset($this->prefixDirsPsr4[$search])) {
|
||||
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
|
||||
foreach ($this->prefixDirsPsr4[$search] as $dir) {
|
||||
$length = $this->prefixLengthsPsr4[$first][$search];
|
||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
|
||||
if (file_exists($file = $dir . $pathEnd)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,9 +17,9 @@ return array(
|
||||
'37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
|
||||
'2c102faa651ef8ea5874edb585946bce' => $vendorDir . '/swiftmailer/swiftmailer/lib/swift_required.php',
|
||||
'5255c38a0faeba867671b61dfda6d864' => $vendorDir . '/paragonie/random_compat/lib/random.php',
|
||||
'023d27dca8066ef29e6739335ea73bad' => $vendorDir . '/symfony/polyfill-php70/bootstrap.php',
|
||||
'bd9634f2d41831496de0d3dfe4c94881' => $vendorDir . '/symfony/polyfill-php56/bootstrap.php',
|
||||
'6a47392539ca2329373e0d33e1dba053' => $vendorDir . '/symfony/polyfill-intl-icu/bootstrap.php',
|
||||
'32dcc8afd4335739640db7d200c1971d' => $vendorDir . '/symfony/polyfill-apcu/bootstrap.php',
|
||||
'ce89ac35a6c330c55f4710717db9ff78' => $vendorDir . '/kriswallsmith/assetic/src/functions.php',
|
||||
'32dcc8afd4335739640db7d200c1971d' => $vendorDir . '/symfony/polyfill-apcu/bootstrap.php',
|
||||
'6a47392539ca2329373e0d33e1dba053' => $vendorDir . '/symfony/polyfill-intl-icu/bootstrap.php',
|
||||
'bd9634f2d41831496de0d3dfe4c94881' => $vendorDir . '/symfony/polyfill-php56/bootstrap.php',
|
||||
'023d27dca8066ef29e6739335ea73bad' => $vendorDir . '/symfony/polyfill-php70/bootstrap.php',
|
||||
);
|
||||
|
||||
@@ -6,6 +6,7 @@ $vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'Twig_Extensions_' => array($vendorDir . '/twig/extensions/lib'),
|
||||
'Twig_' => array($vendorDir . '/twig/twig/lib'),
|
||||
'SensioLabs\\Security' => array($vendorDir . '/sensiolabs/security-checker'),
|
||||
'RequestLab\\VimeoBundle' => array($vendorDir . '/requestlab/vimeo-bundle'),
|
||||
|
||||
@@ -9,6 +9,7 @@ return array(
|
||||
'Zend\\EventManager\\' => array($vendorDir . '/zendframework/zend-eventmanager/src'),
|
||||
'Zend\\Code\\' => array($vendorDir . '/zendframework/zend-code/src'),
|
||||
'Vimeo\\' => array($vendorDir . '/vimeo/vimeo-api/src/Vimeo'),
|
||||
'Twig\\Extensions\\' => array($vendorDir . '/twig/extensions/src'),
|
||||
'Twig\\' => array($vendorDir . '/twig/twig/src'),
|
||||
'Tests\\' => array($baseDir . '/tests'),
|
||||
'Symfony\\Polyfill\\Util\\' => array($vendorDir . '/symfony/polyfill-util'),
|
||||
@@ -40,10 +41,10 @@ return array(
|
||||
'Jaybizzle\\CrawlerDetect\\' => array($vendorDir . '/jaybizzle/crawler-detect/src'),
|
||||
'Incenteev\\ParameterHandler\\' => array($vendorDir . '/incenteev/composer-parameter-handler'),
|
||||
'Http\\Promise\\' => array($vendorDir . '/php-http/promise/src'),
|
||||
'Http\\Message\\' => array($vendorDir . '/php-http/message-factory/src', $vendorDir . '/php-http/message/src'),
|
||||
'Http\\Message\\' => array($vendorDir . '/php-http/message/src', $vendorDir . '/php-http/message-factory/src'),
|
||||
'Http\\HttplugBundle\\' => array($vendorDir . '/php-http/httplug-bundle'),
|
||||
'Http\\Discovery\\' => array($vendorDir . '/php-http/discovery/src'),
|
||||
'Http\\Client\\Common\\Plugin\\' => array($vendorDir . '/php-http/stopwatch-plugin/src', $vendorDir . '/php-http/logger-plugin/src', $vendorDir . '/php-http/cache-plugin/src'),
|
||||
'Http\\Client\\Common\\Plugin\\' => array($vendorDir . '/php-http/cache-plugin/src', $vendorDir . '/php-http/logger-plugin/src', $vendorDir . '/php-http/stopwatch-plugin/src'),
|
||||
'Http\\Client\\Common\\' => array($vendorDir . '/php-http/client-common/src'),
|
||||
'Http\\Client\\' => array($vendorDir . '/php-http/httplug/src'),
|
||||
'Http\\Adapter\\Guzzle6\\' => array($vendorDir . '/php-http/guzzle6-adapter/src'),
|
||||
@@ -51,6 +52,7 @@ return array(
|
||||
'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'),
|
||||
'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'),
|
||||
'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'),
|
||||
'Fairlane\\CookieConsentBundle\\' => array($vendorDir . '/fairlane/cookie-consent-bundle'),
|
||||
'FOS\\UserBundle\\' => array($vendorDir . '/friendsofsymfony/user-bundle'),
|
||||
'FOS\\ElasticaBundle\\' => array($vendorDir . '/friendsofsymfony/elastica-bundle'),
|
||||
'Elastica\\' => array($vendorDir . '/ruflin/elastica/lib/Elastica'),
|
||||
|
||||
+22
-8
@@ -18,11 +18,11 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
|
||||
'37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php',
|
||||
'2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php',
|
||||
'5255c38a0faeba867671b61dfda6d864' => __DIR__ . '/..' . '/paragonie/random_compat/lib/random.php',
|
||||
'023d27dca8066ef29e6739335ea73bad' => __DIR__ . '/..' . '/symfony/polyfill-php70/bootstrap.php',
|
||||
'bd9634f2d41831496de0d3dfe4c94881' => __DIR__ . '/..' . '/symfony/polyfill-php56/bootstrap.php',
|
||||
'6a47392539ca2329373e0d33e1dba053' => __DIR__ . '/..' . '/symfony/polyfill-intl-icu/bootstrap.php',
|
||||
'32dcc8afd4335739640db7d200c1971d' => __DIR__ . '/..' . '/symfony/polyfill-apcu/bootstrap.php',
|
||||
'ce89ac35a6c330c55f4710717db9ff78' => __DIR__ . '/..' . '/kriswallsmith/assetic/src/functions.php',
|
||||
'32dcc8afd4335739640db7d200c1971d' => __DIR__ . '/..' . '/symfony/polyfill-apcu/bootstrap.php',
|
||||
'6a47392539ca2329373e0d33e1dba053' => __DIR__ . '/..' . '/symfony/polyfill-intl-icu/bootstrap.php',
|
||||
'bd9634f2d41831496de0d3dfe4c94881' => __DIR__ . '/..' . '/symfony/polyfill-php56/bootstrap.php',
|
||||
'023d27dca8066ef29e6739335ea73bad' => __DIR__ . '/..' . '/symfony/polyfill-php70/bootstrap.php',
|
||||
);
|
||||
|
||||
public static $prefixLengthsPsr4 = array (
|
||||
@@ -37,6 +37,7 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
|
||||
),
|
||||
'T' =>
|
||||
array (
|
||||
'Twig\\Extensions\\' => 16,
|
||||
'Twig\\' => 5,
|
||||
'Tests\\' => 6,
|
||||
),
|
||||
@@ -109,6 +110,7 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
|
||||
),
|
||||
'F' =>
|
||||
array (
|
||||
'Fairlane\\CookieConsentBundle\\' => 29,
|
||||
'FOS\\UserBundle\\' => 15,
|
||||
'FOS\\ElasticaBundle\\' => 19,
|
||||
),
|
||||
@@ -156,6 +158,10 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/vimeo/vimeo-api/src/Vimeo',
|
||||
),
|
||||
'Twig\\Extensions\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/twig/extensions/src',
|
||||
),
|
||||
'Twig\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/twig/twig/src',
|
||||
@@ -282,8 +288,8 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
|
||||
),
|
||||
'Http\\Message\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/php-http/message-factory/src',
|
||||
1 => __DIR__ . '/..' . '/php-http/message/src',
|
||||
0 => __DIR__ . '/..' . '/php-http/message/src',
|
||||
1 => __DIR__ . '/..' . '/php-http/message-factory/src',
|
||||
),
|
||||
'Http\\HttplugBundle\\' =>
|
||||
array (
|
||||
@@ -295,9 +301,9 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
|
||||
),
|
||||
'Http\\Client\\Common\\Plugin\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/php-http/stopwatch-plugin/src',
|
||||
0 => __DIR__ . '/..' . '/php-http/cache-plugin/src',
|
||||
1 => __DIR__ . '/..' . '/php-http/logger-plugin/src',
|
||||
2 => __DIR__ . '/..' . '/php-http/cache-plugin/src',
|
||||
2 => __DIR__ . '/..' . '/php-http/stopwatch-plugin/src',
|
||||
),
|
||||
'Http\\Client\\Common\\' =>
|
||||
array (
|
||||
@@ -327,6 +333,10 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/guzzlehttp/guzzle/src',
|
||||
),
|
||||
'Fairlane\\CookieConsentBundle\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/fairlane/cookie-consent-bundle',
|
||||
),
|
||||
'FOS\\UserBundle\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/friendsofsymfony/user-bundle',
|
||||
@@ -412,6 +422,10 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
|
||||
public static $prefixesPsr0 = array (
|
||||
'T' =>
|
||||
array (
|
||||
'Twig_Extensions_' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/twig/extensions/lib',
|
||||
),
|
||||
'Twig_' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/twig/twig/lib',
|
||||
|
||||
+3600
-3500
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,12 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
### 1.0.2
|
||||
* Fix hiding the cookie info div
|
||||
* Update instructions
|
||||
|
||||
### 1.0.1
|
||||
* Fix the composer dependencies
|
||||
|
||||
### 1.0.0
|
||||
* Initial release
|
||||
Vendored
+46
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace Fairlane\CookieConsentBundle\Controller;
|
||||
|
||||
use Fairlane\CookieConsentBundle\Type\Constant;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Cookie;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
class CookieController extends Controller
|
||||
{
|
||||
public function acceptAction()
|
||||
{
|
||||
$request = Request::createFromGlobals();
|
||||
$content = json_decode($request->getContent(), true);
|
||||
if (isset($content['cookie-consent']) && $content['cookie-consent'] == 'ok') {
|
||||
$expires = new \DateTime("now");
|
||||
$dateInterval = new \DateInterval(
|
||||
sprintf(
|
||||
'P%dD',
|
||||
$this->getFairlaneParameter(Constant::BUNDLE_CONFIG_COOKIE_LIFETIME)
|
||||
)
|
||||
);
|
||||
$expires->add($dateInterval);
|
||||
$cookie = new Cookie(Constant::BUNDLE_COOKIE_NAME,'ok', $expires);
|
||||
$jsonResponse = new JsonResponse(['success' => true]);
|
||||
$jsonResponse->headers->setCookie($cookie);
|
||||
|
||||
return $jsonResponse;
|
||||
} else {
|
||||
|
||||
return new JsonResponse(['success' => false], 400);
|
||||
}
|
||||
}
|
||||
|
||||
protected function getFairlaneParameter($key)
|
||||
{
|
||||
$params = $this->getParameter('fairlane_cookie_consent');
|
||||
if (!empty($params[$key])) {
|
||||
return $params[$key];
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
Vendored
+46
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace Fairlane\CookieConsentBundle\DependencyInjection;
|
||||
|
||||
use Fairlane\CookieConsentBundle\Type\Constant;
|
||||
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
|
||||
use Symfony\Component\Config\Definition\ConfigurationInterface;
|
||||
|
||||
/**
|
||||
* This is the class that validates and merges configuration from your app/config files.
|
||||
*
|
||||
* To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/configuration.html}
|
||||
*/
|
||||
class Configuration implements ConfigurationInterface
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getConfigTreeBuilder()
|
||||
{
|
||||
$treeBuilder = new TreeBuilder();
|
||||
$rootNode = $treeBuilder->root(Constant::BUNDLE_CONFIG_ROOT);
|
||||
|
||||
// Here you should define the parameters that are allowed to
|
||||
// configure your bundle. See the documentation linked above for
|
||||
// more information on that topic.
|
||||
$rootNode
|
||||
->children()
|
||||
->booleanNode(Constant::BUNDLE_CONFIG_BOOTSTRAP)->end()
|
||||
->booleanNode(Constant::BUNDLE_CONFIG_ACTIVE)->end()
|
||||
->booleanNode(Constant::BUNDLE_CONFIG_TRANSLATE)->end()
|
||||
->booleanNode(Constant::BUNDLE_CONFIG_JQUERY)->end()
|
||||
->integerNode(Constant::BUNDLE_CONFIG_COOKIE_LIFETIME)->end()
|
||||
->arrayNode(Constant::BUNDLE_CONFIG_TWIG)
|
||||
->children()
|
||||
->scalarNode(Constant::BUNDLE_CONFIG_TEXT_INFO)->end()
|
||||
->scalarNode(Constant::BUNDLE_CONFIG_TEXT_INFO_LINK)->end()
|
||||
->scalarNode(Constant::BUNDLE_CONFIG_TEXT_ACCEPT_BUTTON)->end()
|
||||
->scalarNode(Constant::BUNDLE_CONFIG_URL_ADDITIONAL_INFO)->end()
|
||||
->end()
|
||||
->end()
|
||||
->end();
|
||||
|
||||
return $treeBuilder;
|
||||
}
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace Fairlane\CookieConsentBundle\DependencyInjection;
|
||||
|
||||
use Fairlane\CookieConsentBundle\Type\Constant;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\Config\FileLocator;
|
||||
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
|
||||
use Symfony\Component\DependencyInjection\Loader;
|
||||
|
||||
/**
|
||||
* This is the class that loads and manages your bundle configuration.
|
||||
*
|
||||
* @link http://symfony.com/doc/current/cookbook/bundles/extension.html
|
||||
*/
|
||||
class FairlaneCookieConsentExtension extends Extension
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function load(array $configs, ContainerBuilder $container)
|
||||
{
|
||||
$configuration = new Configuration();
|
||||
$config = $this->processConfiguration($configuration, $configs);
|
||||
$container->setParameter('fairlane_cookie_consent', $config);
|
||||
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
|
||||
$loader->load('services.yml');
|
||||
}
|
||||
}
|
||||
Vendored
+9
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace Fairlane\CookieConsentBundle;
|
||||
|
||||
use Symfony\Component\HttpKernel\Bundle\Bundle;
|
||||
|
||||
class FairlaneCookieConsentBundle extends Bundle
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
Symfony 3 Cookie Consent bundle
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
Step 1: Install the bundle
|
||||
--------------------------
|
||||
|
||||
The easiest way to install the bundle is by using composer.
|
||||
|
||||
```console
|
||||
$ composer require fairlane/cookie-consent-bundle"
|
||||
```
|
||||
|
||||
This command requires you to have Composer installed globally, as explained
|
||||
in the [installation chapter](https://getcomposer.org/doc/00-intro.md)
|
||||
of the Composer documentation.
|
||||
|
||||
Step 2: Enable the Bundle
|
||||
-------------------------
|
||||
|
||||
Then, enable the bundle by adding it to the list of registered bundles
|
||||
in the `app/AppKernel.php` file of your project:
|
||||
|
||||
```php
|
||||
<?php
|
||||
// app/AppKernel.php
|
||||
|
||||
// ...
|
||||
class AppKernel extends Kernel
|
||||
{
|
||||
public function registerBundles()
|
||||
{
|
||||
$bundles = array(
|
||||
// ...
|
||||
new Fairlane\CookieConsentBundle\FairlaneCookieConsentBundle(),
|
||||
);
|
||||
|
||||
// ...
|
||||
}
|
||||
|
||||
// ...
|
||||
}
|
||||
```
|
||||
Step 3: Configure bundle
|
||||
------------------------
|
||||
|
||||
This bundle has few simple configurations. To see the list configuration options run following command:
|
||||
|
||||
```console
|
||||
$ bin/console config:dump-reference fairlane_cookie_consent
|
||||
```
|
||||
You must expose the `fairlane_cookie_consent.twig` service globally.
|
||||
```yaml
|
||||
twig:
|
||||
// ...
|
||||
globals:
|
||||
// ...
|
||||
fairlane_cookie_consent: '@fairlane_cookie_consent.twig'
|
||||
```
|
||||
|
||||
Your config should look something like this.
|
||||
|
||||
```yaml
|
||||
# Fairlane Cookie Consent configuration
|
||||
fairlane_cookie_consent:
|
||||
active: true
|
||||
use_bootstrap: true
|
||||
use_jquery: true
|
||||
translate: false
|
||||
cookie_lifetime: 365 # days
|
||||
twig:
|
||||
text_info: 'This site uses cookies for...'
|
||||
text_accept_button: 'OK'
|
||||
text_additional_info_link: 'Read more about our cookie policy from here'
|
||||
url_additional_info: 'https://yourdomain/your-cookie-policy'
|
||||
|
||||
twig:
|
||||
globals:
|
||||
fairlane_cookie_consent: '@fairlane_cookie_consent.twig'
|
||||
```
|
||||
The routes must be imported as well. Add following route to your `routes.yml`
|
||||
|
||||
```yaml
|
||||
fairlane_cookie_consent:
|
||||
resource: "@FairlaneCookieConsentBundle/Resources/config/routing.yml"
|
||||
```
|
||||
|
||||
Finally, include the twig template into your layout file.
|
||||
|
||||
```twig
|
||||
{{ include('FairlaneCookieConsentBundle::cookie-info.html.twig') }}
|
||||
```
|
||||
|
||||
Step 4: Style the cookie notification
|
||||
-------------------------------------
|
||||
The id of the div `fairlane-cookie-consent`. Feel free to style it as you please. If you set the `use_bootsrap` to true
|
||||
the extension will add `navbar navbar-fixed-top` classes to the div and `btn btn-primary` classes to the button.
|
||||
|
||||
If you set `use_jquery` to `true` acceptance of cookies is sent via ajax call & the div fades out. Otherwise you need to
|
||||
handle calling the `Cookie:accept` (route id: `fairlane_cookie_consent_accept`) by yourself. This route only accepts
|
||||
POST requests.
|
||||
|
||||
ToDo
|
||||
====
|
||||
* Improve & enrich the instructions
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
fairlane_cookie_consent_accept:
|
||||
path: /fairlane/cookie-consent/accept
|
||||
defaults: { _controller: FairlaneCookieConsentBundle:Cookie:accept}
|
||||
methods: [POST]
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
services:
|
||||
fairlane_cookie_consent.twig:
|
||||
class: Fairlane\CookieConsentBundle\Service\TwigService
|
||||
arguments: ["%fairlane_cookie_consent%"]
|
||||
Vendored
+39
@@ -0,0 +1,39 @@
|
||||
{% if fairlane_cookie_consent.active == true and app.request.cookies.get('fairlane-cookie-consent') != 'ok'%}
|
||||
{% if fairlane_cookie_consent.translate == true %}
|
||||
{% set text_info = fairlane_cookie_consent.twig.text_info | trans %}
|
||||
{% set text_additional_info_link = fairlane_cookie_consent.twig.text_additional_info_link | trans %}
|
||||
{% set text_accept_button = fairlane_cookie_consent.twig.text_accept_button | trans %}
|
||||
{% else %}
|
||||
{% set text_info = fairlane_cookie_consent.twig.text_info %}
|
||||
{% set text_additional_info_link = fairlane_cookie_consent.twig.text_additional_info_link %}
|
||||
{% set text_accept_button = fairlane_cookie_consent.twig.text_accept_button %}
|
||||
{% endif %}
|
||||
<div id="fairlane-cookie-consent" {% if fairlane_cookie_consent.useBootstrap == true %}class="navbar navbar-fixed-top"{% endif %}>
|
||||
<p>
|
||||
{{ text_info }}
|
||||
{% if fairlane_cookie_consent.twig.url_additional_info| length > 1 and text_additional_info_link | length > 1 %}
|
||||
<a href="{{ fairlane_cookie_consent.twig.url_additional_info }}" target="_blank">{{ text_additional_info_link }}</a>
|
||||
{% endif %}
|
||||
</p>
|
||||
<button {% if fairlane_cookie_consent.useBootstrap == true %}class="btn btn-primary"{% endif %}>{{ text_accept_button }}</button>
|
||||
</div>
|
||||
{% if fairlane_cookie_consent.useJquery %}
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function() {
|
||||
jQuery("#fairlane-cookie-consent button").click(function(){
|
||||
jQuery.ajax({
|
||||
async: true,
|
||||
type: 'POST',
|
||||
url: '{{ url('fairlane_cookie_consent_accept') }}',
|
||||
data: JSON.stringify({'cookie-consent': 'ok'}),
|
||||
success: function(data) {
|
||||
jQuery("#fairlane-cookie-consent").fadeOut("fast");
|
||||
},
|
||||
contentType: "application/json",
|
||||
dataType: 'json'
|
||||
});
|
||||
})
|
||||
});
|
||||
</script>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
namespace Fairlane\CookieConsentBundle\Service;
|
||||
|
||||
use Fairlane\CookieConsentBundle\Type\Constant;
|
||||
|
||||
/**
|
||||
* Class TwigService
|
||||
*
|
||||
* @package Auxilia\CoreBundle\Service
|
||||
*/
|
||||
class TwigService
|
||||
{
|
||||
/**
|
||||
* Contains the injected configuration
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private $config;
|
||||
|
||||
/**
|
||||
* TwigService constructor.
|
||||
*
|
||||
* @param array $config
|
||||
*/
|
||||
public function __construct(array $config)
|
||||
{
|
||||
$this->config = $config;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getTwig()
|
||||
{
|
||||
return $this->config['twig'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return boolean
|
||||
*/
|
||||
public function getUseBootstrap()
|
||||
{
|
||||
return $this->config[Constant::BUNDLE_CONFIG_BOOTSTRAP];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return boolean
|
||||
*/
|
||||
public function getActive()
|
||||
{
|
||||
return $this->config[Constant::BUNDLE_CONFIG_ACTIVE];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return boolean
|
||||
*/
|
||||
public function getTranslate()
|
||||
{
|
||||
return $this->config[Constant::BUNDLE_CONFIG_TRANSLATE];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return boolean
|
||||
*/
|
||||
public function getUseJquery()
|
||||
{
|
||||
return $this->config[Constant::BUNDLE_CONFIG_JQUERY];
|
||||
}
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace Fairlane\CookieConsentBundle\Tests\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
|
||||
|
||||
class DefaultControllerTest extends WebTestCase
|
||||
{
|
||||
public function testIndex()
|
||||
{
|
||||
$client = static::createClient();
|
||||
|
||||
$crawler = $client->request('GET', '/');
|
||||
|
||||
$this->assertContains('Hello World', $client->getResponse()->getContent());
|
||||
}
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace Fairlane\CookieConsentBundle\Type;
|
||||
|
||||
/**
|
||||
* This class has constants used by the bundle
|
||||
*
|
||||
*/
|
||||
class Constant
|
||||
{
|
||||
const BUNDLE_CONFIG_ROOT = 'fairlane_cookie_consent';
|
||||
const BUNDLE_CONFIG_BOOTSTRAP = 'use_bootstrap';
|
||||
const BUNDLE_CONFIG_JQUERY = 'use_jquery';
|
||||
const BUNDLE_CONFIG_TRANSLATE = 'translate';
|
||||
const BUNDLE_CONFIG_COOKIE_LIFETIME = 'cookie_lifetime';
|
||||
const BUNDLE_CONFIG_URL_ADDITIONAL_INFO = 'url_additional_info';
|
||||
const BUNDLE_CONFIG_ACTIVE = 'active';
|
||||
const BUNDLE_CONFIG_TWIG = 'twig';
|
||||
const BUNDLE_CONFIG_TEXT_INFO = 'text_info';
|
||||
const BUNDLE_CONFIG_TEXT_ACCEPT_BUTTON = 'text_accept_button';
|
||||
const BUNDLE_CONFIG_TEXT_INFO_LINK = 'text_additional_info_link';
|
||||
|
||||
const BUNDLE_COOKIE_NAME = 'fairlane-cookie-consent';
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"name": "fairlane/cookie-consent-bundle",
|
||||
"type": "symfony-bundle",
|
||||
"description": "EU Cookie Consent Bundle for Symfony",
|
||||
"keywords": ["cookie", "cookie consent"],
|
||||
"license": "WTFPL",
|
||||
"require": {
|
||||
"php": ">=7.0",
|
||||
"twig/twig": ">=1.28",
|
||||
"symfony/framework-bundle": ">=2.7",
|
||||
"symfony/twig-bundle": ">=2.7"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Fairlane\\CookieConsentBundle\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user