Publié le

Lancement Poujoulat.ch

poujoulat-ch
poujoulat-ch

Depuis plus de 10 ans, la société Poujoulat nous fait confiance pour la création de leurs sites internet.

Cheminées Poujoulat est le leader européen des conduits de cheminée et sorties de toit en inox destinés à la maison individuelle, le logement collectif, le tertiaire et l’industrie en neuf comme en rénovation.

En cette fin d’année 2021, nous sommes fiers de vous annoncer le lancement de la version allemande du site pour la  Suisse :  Poujoulat.ch

Publié le Laisser un commentaire

If Else sur Outlook

if-else-outlook
if-else-outlook
Lors de vos créations de newsletter et d’emailing, il est très fréquent d’être confronté aux problèmes d’affichage / interprétations d’Outlook ou de Windows Mail.
 
Ainsi, vous aurez sûrement besoin d’utiliser le IF pour Outlook. On trouve énormément de documentation sur ce dernier, beaucoup moins sur le ELSE.

IF pour outlook

Vous pouvez cibler le logiciel de Microsoft, en ajoutant le code if mso :

<!--[if mso]>
    Votre code outlook
<![endif]-->

Vous pouvez également cibler certaines version d’Outlook

<!--[if plage-de-version mso Version]>
    Votre code outlook
<![endif]-->

Plage-de-version peut prendre 4 syntaxes différentes:
gte : Supérieure ou égale à Version (greater than or equal).
lt : Inférieure à  Version (lesser than).
gt : Supérieure à  Version (greater than).
lte : Inférieure ou égale à Version (less than or equal).

Listes des versions de Outlook :
Outlook 2000 – Version 9
Outlook 2002 – Version 10
Outlook 2003 – Version 11
Outlook 2007 – Version 12
Outlook 2010 – Version 14
Outlook 2013 – Version 15
Outlook 2016 – Version 16

<!--[if gte mso 9]>
    Votre code outlook
<![endif]-->

ELSE pour outlook

Le code ci-dessus vous permet de déclarer qu’une partie de votre code est uniquement pour Outlook/Microsoft.

Vous pourriez avoir besoin de faire un ELSE à votre IF.

Pour ce faire, il suffit d’ouvrir le commentaire après le code if !mso (noté le ! avant le mso).

 <!--[if mso]>
     contenu Outlook 
 <![endif]-->
 <!--[if !mso]> <!---->
     contenu Non-outlook
 <!-- <![endif]-->

A la place de votre ELSE, vous pourriez tout simplement ajouter la class mso-hide:all

Cette class permet de cacher du contenu sous Outlook / Microsoft et de l’afficher sur les autres plateformes/logiciels

 <!--[if mso]>
     contenu Outlook 
     <div class="mso-hide:all">
 <![endif]-->
    contenu non-outlook
<!--[if mso]></div><![endif]-->
Publié le Laisser un commentaire

Ouverture site Granicuiz.com

Ouverture du site Granicuiz
Ouverture du site Granicuiz

La Société Granicuiz a été créée à Châteaudun (28) en janvier 2012.
Forte de son indépendance et d’une expérience de près de 30 ans dans le secteur du bâtiment, elle a su s’entourer d’un réseau de professionnels reconnu et pleinement trouver sa place dans le paysage dunois.

En cette fin d’année 2021, nous sommes fiers de vous annoncer l’ouverture du site :  Granicuiz.com

Publié le Laisser un commentaire

Récupérer une variable dans Contact Form 7

contact form 7
contact form 7

Pour plusieurs raisons, vous aurez besoin de récupérer des variables et de les insérer dans vos formulaires de contact sur Contact Form 7.

Dans l’exemple ci-dessous, je vais vous montrer comment récupérer la page d’origine du click sur le bouton contact provenant d’un autre site.

Envoyer la valeur dans votre formulaire

Pour commencer il faut envoyer un POST via votre lien sur votre bouton.
Admettons une page test.htm avec un bouton contact.
Il faut envoyer via le href du lien, les données que vous souhaitez récupérer en GET sur votre formulaire.

<html>
	<head>
	<tilte>Test</title>
	</head>
	<body>
	<p>Ma page test</p>
	<a href="https://url_de_votre_site/page_contact?from=accueil">Nous contacter</a>
	</body>
</html>

Récupérer la valeur dans votre formulaire

Au click sur le lien, l’information ?from=accueil est envoyée et conservée par votre navigateur.
Pour récupérer et afficher cette information sur votre formulaire, vous aurez besoin de créer une fonction dans votre fichier functions.php de votre thème, car vous ne pouvez pas insérer directement du code php dans votre formulaire.

/* Add source to Contact Form */
/* ---------------------------------- */
function provenance() {
	// on déclare une source par défaut
	$defautprovenance = "Blog";
	// on récupérer la valeur de from du POST ?from=accueil
    $var=$_GET['from'];
	// Si le POST est vide alors on affiche la valeur par défaut
	if (empty($_GET)) {
    	return $defautprovenance;
	}
	// Sinon on affiche la valeur récupérée
	else {return $var;}
}
// on créée le shortcode pour CF7
add_shortcode('provenance', 'provenance');

Afficher la valeur dans votre formulaire

Ci-dessus, nous avons créé un shortcode [provenance] que nous pouvons appeler à différent endroit.

Quelques exemples :

<!-- Récupérer la valeur dans un input et le mettre en caché : -->
<input type="hidden" name="provenance" value="[provenance]"></input>
<!-- Afficher la valeur dans un bloc text -->
<textarea name="your-message" cols="40" rows="10">[provenance]</textarea>

Enfin, vous pouvez récupérer cette valeur et l’envoyer dans votre email

De : [your-name] <[your-email]>
Objet : [your-subject]
Source : [provenance]
Corps du message :
[your-message]
Publié le Laisser un commentaire

Protection d’un répertoire avec .htaccess

Créer votre fichier .htaccess

Pour protéger un répertoire sur votre serveur, il suffit de créer un fichier .htaccess et un fichier .htpasswd

Dans votre fichier .htaccess renseignez les lignes suivantes au début du fichier

AuthUserFile /xxx/chemin/xxx/.htpasswd
AuthName "Acc&eagrave;s Restreint"
AuthType Basic
require valid-user

Pour trouver le chemin de votre répertoire, vous pouvez-utiliser créer un fichier chemin.php à mettre à l’intérieur

le chemin réel vers un fichier pour htaccess / htpassd : <?php echo realpath('chemin.php'); ?>

et à appeler sur votre navigateur https://votre_site.fr/repertoire/chemin.php qui vous affichera la réponse.

Créer votre fichier .htpasswd

il faut ensuite créer un fichier .htpasswd à mettre dans le répertoire que vous aurez renseignez ici : AuthUserFil /xxx/chemin/repertoire/.htpasswd

Ce fichier .htpasswd ne contiendra que les noms d’utilisateurs et les mots de passe encryptés en MD5.
Allez à la ligne pour en ajouter plusieurs.

nom:motDePass
autrenom:autreMDP

Générer votre mot de passe en MD5

sous Windows : ouvrez une console, lancez openSSL et utlisez la commande passwd -apr1 votremdp

PS C:\Users\Utilisateur> openssl
OpenSSL> passwd -apr1 toto
$apr1$sjZMa0HY$mrsQ20GPo74NRGa5RHTiG.
htpasswd linux

sous Linux : utilisez la commande htpasswd -nbm

$ htpasswd -nbm monNom monMot-de-passe
monNom:$2y$05$c4WoMPo3SXsafkva.HHa6uXQZWr7oboPiC2bT/r7q1BB8I2s0BRqC      

Pour aller plus loin, référez-vous à la documentation Apache.

Publié le Laisser un commentaire

SQL : Mettre un champ à NULL

Suite à la création d’une table ou à l’importation d’une base de donnée, il se peut que vous souhaitiez paramétrer un champ d’une table à NULL.

Le plus simple, lors de l’import de la table est de mettre la valeur à NULL sans guillemets.

INSERT INTO eloou VALUES (1, 'Leleu', NULL);

Si toutefois votre base SQL n’avait pas bien interprété votre requête, il vous faudra mettre à jour ce champ.

Considérons une table de type :

-- create a table
CREATE TABLE eloou (id INT AUTO_INCREMENT PRIMARY KEY, Name varchar(255), First varchar(255));
-- insert some values
INSERT INTO eloou VALUES (1, 'Leleu', 'Marc');
INSERT INTO eloou VALUES (2, 'Goubard', 'Laura');
INSERT INTO eloou VALUES (3, 'Schmid', 'Robert');
INSERT INTO eloou VALUES (4, 'Evenas', 'JF');
Ou sur une seule ligne
INSERT INTO eloou VALUES 
(1, 'Leleu', 'Marc'),
(2, 'Goubard', 'Laura'),
(3, 'Schmid', 'Robert'),
(4, 'Evenas', 'JF');

Pour mettre à jour la table eloou, utilisez la commande UPDATE

 UPDATE TABLE eloou;

Pour changer la valeur d’un champ et le mettre à NULL, utilisez la commande SET

update TABLE 
set COLUMN_NAME = NULL 
where CRITERES;

Pour mettre le champ First à NULL à la place de Marc

update eloou set First = NULL where First='Marc';
ou
update eloou set First = NULL where id='1';
mysql-set-null

On peut également mettre toute la colonne à NULL, sans critère

update eloou set First = NULL;
Publié le Laisser un commentaire

Rendre une vidéo Youtube responsive

Lors de l’intégration d’une vidéo youtube, vous avez dû intégrer une <iframe>
Les iframe ont obligatoirement des largeur et hauteur définies.
Sans ajout de code CSS, vous ne pourrez donc pas avoir de vidéo responsive.

Voici le code de l’iframe que vous récuperez en cliquant sous la vidéo youtube, sur partager puis sur intégrer

<iframe title="YouTube video player" src="https://www.youtube.com/embed/xxxxxxxx" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe>

Afin de rendre responsive cette vidéo, il faut encapsuler l’iframe dans une DIV et lui assigner une class CSS, nommée ci-dessous .video-container

<div class="video-container">
    <iframe title="YouTube video player" src="https://www.youtube.com/embed/xxxxxxxx" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe>
</div>

Ajoutez les styles css

pour rendre la vidéo youtube responsive, il vous suffit d’ajouter ces règles CSS à votre feuille de style en précisant le point de rupture pour les mobiles

@media (max-width:478px;) {
    .video-container {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    }
    .video-container iframe,
    .video-container object,
    .video-container embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    }
}
16:9 aspect ratio : 9 / 16 * 100% = 56.25%;
4:3 aspect ratio : 3 / 4 * 100% = 75%;
1:1 aspect ratio : 1 / 1 * 100% = 100%.

Vous noterez l’utilisation de la règle « padding-bottom:56.25% », combiné à une hauteur à 0.
Imaginons un carré de 200x200px a qui ont enlève sa hauteur. Alors la hauteur de l’élément carré sera gérée par le padding-bottom.
Afin de transformer notre carré en rectangle ayant un aspect 16/9ème, nous aurons besoin d’un padding à 56.25%

Publié le Laisser un commentaire

Redirections .htaccess

Il existe différentes manières de faire des redirections via le fichier .htaccess.

Vous trouverez ci-dessous, certains cas de figures complexes.

Pour le SEO, il est préférable de régler vos problèmes de redirections autrement.
Soit directement dans votre sitemap et sur votre console (google search …), soit directement dans les fichiers de votre site ou votre CMS.

Redirection basique

RewriteEngine On 
RewriteRule .* page.extension

.* = toutes les pages vers une autre page

RewriteRule dossier /sous-dossier/page.extension 

Ici on redirige toutes les requêtes /dossier vers /sous-dossier/page

Redirection répertoire

Ici on va chercher à rediriger le répertoire /faq/1 et toutes les urls à l’intérieur :

/faq/1/ vers https://url/dossier1
/faq/1/page-de-test.php vers https://url/dossier1
/faq/1/sous-rep1/ vers https://url/dossier1
/faq/1/sous-rep1/page-de-test2.php vers https://url/dossier1

RedirectMatch 301 ^/faq/1/.* https://url/dossier1

^/faq/1 : Le « ^ » Permet de spécifier que seront prises en compte toutes les URL dont la partie hors domaine (www.url.test) commence par « /faq/1 »

faq/1/.* : Permet de spécifier « tout ». Cela permet d’englober tout ce qui peut se trouve dans le répertoire visé.
Explication :
le « . » signifie « n’importe quel caractère »
et le « * » spécifie « X fois ce qui précède ». Donc X fois n’importe quel caractère.

Redirections d’un dossier sans rediriger les pages contenues dans celui-ci :

RedirectMatch 301 /dossier/sous-dossier/?$ https://www.url.fr/dossier

Ici, on ne met pas de ^ avant l’url à rediriger et un / + ? + $ à la fin.

Exemple :
suppression du répertoire virtuel /rep-virtuel/
/nos-solutions/maison-individuelle/tuber/rep-virtuel vers /nos-solutions/maison-individuelle/tuber
en gardant le répertoire dans les url produits :
/nos-solutions/maison-individuelle/tuber/rep-virtuel/produit.page

RedirectMatch 301 /nos-solutions/maison-individuelle/tuber/rep-virtuel/?$ https://www.url.fr/nos-solutions/maison-individuelle/tuber

Redirections caractères spéciaux

Exemple :
http://www.url.fr/inhoud/321/38/1/Actualit%C3%A9s/Producten+en+diensten/combiflue-4-in-1-schoorsteen-voor-de-individuele-woning.html
Le problème ici sont les %C3%A9 (code html du é) et les +

Plusieurs méthodes (préférez la 1ère méthode):

RedirectMatch 301 ^/inhoud/321/38/1/A.*/P.*/combiflue-4-in-1-schoorsteen-voor-de-individuele-woning.html https://nouvelle_url
RedirectMatch 301 'http://www.url.fr/inhoud/321/38/1/Actualit%C3%A9s/Producten+en+diensten/combiflue-4-in-1-schoorsteen-voor-de-individuele-woning.html' https://nouvelle_url

Dans la première solution, on utilise la règle des . et des *, vu au début de l’article.

Dans la seconde solution, on entoure l’url à rediriger par des ‘ ‘.
Cette solution marche également pour les urls de destinations.

Redirect, Redirect Match, RedirectPermanent

Il est à noté qu’il existe différente manière selon le besoin de faire une redirection sur Apache.

Redirect : Envoie une redirection externe demandant au client d’effectuer une autre requête avec une URL différente

RedirectMatch : Envoie une redirection externe faisant appel aux expressions rationnelles pour la mise en correspondance de l’URL courante

RedirectPermanent : Envoie une redirection externe permanente demandant au client d’effectuer une nouvelle requête avec une URL différente.

Pour aller plus loin, référez-vous à la documentation d’Apache.