Vous consultez les articles de la catégorie CMS
Juil
28

La vérité sur le cache ttl d’ez publish

Voilà un petit retour suite à une longue investigation sur le fameux

{set-block scope=root variable=cache_ttl}0{/set-block}

Cette ligne permet d’invalider le cache de vue (cache content) de TOUTE la page.

Voici les différents cas dans lesquels le cache va être invalidé :

Déclaration de cette ligne dans les templates suivants :

• Le content view (c’est le template qui se charge d’afficher le rendu de $module_result.content, dans la plupart du temps la view full)

• N’importe quel template inclus à partir du template utilisé pour le content view

• Dans un template qui utilise un opérateur qui va renvoyer le contenu d’un autre template qui va contenir le cache ttl à 0

Lire la suite

Juil
28

Recommandations de sécurité Ez publish et PHP

Failles xss

Avec Ez Publish

Utiliser la fonction wash() sur les variables dans les templates, surtout sur les variables pouvant être modifiées par l’utilisateur (paramètres d’url, champs de formulaire, etc)

En PHP

La stratégie de protection principale contre les injections HTML est la même que pour toutes les injections. Il est recommandé d’implémenter une fonction de filtrage en entrée et une fonction d’encodage en HTML en sortie.

L’encodage en sortie peut être effectué par deux fonctions en PHP :

htmlspecialchars() remplace tous les caractères qui ont une signification spéciale en HTML par leur entité HTML. Cette fonction va cibler les caractères suivants :

  • &, le « et commercial », qui commence les séquences HTML (telles que &) ;
  • ‘, les guillemets simples, utilisés dans les attributs ;
  • , les guillemets doubles, utilisés dans les attributs ;
  • < et >, les signes « inférieur à » et « supérieur à », qui délimitent une balise.

htmlentities() est une version plus complète de htmlspecialchars(), elle remplace dans une chaîne tous les caractères possibles par leur séquence HTML. Il est possible de spécifier le masque et l’encodage à utiliser

<a href="http://www.php.net/htmlentities" target="blank">htmlentities</a>($str, ENT_QUOTES, 'UTF-8');
Déc
12

Ez Publish – Générer un table des matières à partir d’un contenu xml_block

Pour générer une table des matières à partir des différents niveaux de titre (h2, h3, …)  présent dans votre contenu (saisi via l’éditeur wysiwyg) , il suffit d’utiliser le template operator « eztoc » fourni par ezpublish dans votre template. Et vous obtiendrez des jolies ancres vers votre contenu.

 

{* body is ezxml datatype*}
{eztoc( $node.object.data_map.body )}
Jan
31

Optimiser un site Drupal à fort trafic

Optimiser site Drupal à fort trafic

Cette article fait suite à une conférence donnée au Drupal Camp ce week end.

J’ai décidé d’en faire un article à part car je l’ai trouvé vraiment intéressante, certaines choses peuvent s’appliquer à n’importe quel site, qu’il soit développé avec Drupal ou non.

Par fort trafic, le conférencier voulait dire site avec des millions de visiteurs unique par jour (genre les sites ecommerce).

Cette conférence était séparée en 2 parties:

Comment optimiser le trafic anonyme

Par trafic anonyme, je veux dire toutes les pages qui sont exactement les mêmes pour tous les visiteurs, donc pas d’informations personnelles, pas de bloc dynamique personnalisé pour le visiteur.

Ce trafic est le plus facile à gérer, car le contenu de la page est identique pour tout le monde.

Voici donc les moyens pour optimiser ce trafic.

Lire la suite

Jan
29

Drupal Camp à Nantes

DrupalCamp à Nantes

Aujourd’hui je suis allé au premier Drupal Camp à Nantes. Je n’ai pas encore pratiqué Drupal (à part une install de Drupal 6 histoire de voir à quoi cela ressemblait) mais j’ai pensé qu’il pouvait être intéressant d’accompagner mes collègues.

C’est donc avec intérêt que je me suis rendu à cette journée de conférence qui se déroulait à l’Epitech de Nantes.

Une fois arrivé, on m’a remis mon pack de bienvenue : Un tee shirt spécial Drupal Camp, un joli petit badge et un tour de cou avec une petite carte pour mettre notre Pseudo, société et twitter.

Voici le programme de la journée (avec en gras les conférences auxquelles j’ai assisté) :

Lire la suite

Jan
25

Empêcher Google d’indexer les attachements de WordPress

Wordpress : ne pas indexer les attachements

Aujourd’hui, nous nous sommes rendu compte de deux petits soucis sur notre blog WordPress :

  1. Google indexe les pages d’attachement. Comme on n’utilise plus ces pages, mais qu’on affiche les images dans une lightbox, on ne souhaite pas que Google les indexe.
  2. En attendant que Google n’indexe plus ces pages, on souhaite que les gens qui atteignent une page d’attachement soient redirigées vers l’article qui contient cette image.

Après un peu de recherche, j’ai trouvé la solution à ces deux problèmes sur le site pixelcounter.co.uk. C’est très simple :

Dans votre thème, créez un nouveau fichier image.php.
Dans ce fichier, insérez le code suivant :

<?php wp_redirect(get_permalink($post-&gt;post_parent),301); ?>

Et puis c’est tout. wp_redirect permet de renvoyer les visiteurs vers l’article parent($post->post_parent).

Le 301, c’est le type de redirection, qui signale à Google que le contenu de cette page ne doit pas être indexé (redirection permanente).

Déc
30

WordPress : version 3.0.4 et rappels sur la mise à jour

Edit (31/12/2010) : Il semble que la faille persiste toujours malgré la mise à jour 3.0.4 (d’après ce que j’ai lu chez Korben). Une mise à jour viendra certainement corriger cela prochainement.

Une petite news vite fait pour vous signaler qu’une mise à jour de WordPress est disponible (version 3.0.4, en français). Elle corrige une faille XSS dans la librairie KSES (je suis d’ailleurs en train de rédiger un article sur XSS).

J’ai mis à jour notre blog ce matin. Je vous conseille de faire de même si vous utilisez WordPress.

Pour terminer, voici un petit rappel des étapes à suivre lors d’une mise à jour WordPress :

  1. Effectuez une sauvegarde de vos fichiers et de votre base de données
  2. Téléchargez la dernière version de WordPress et décompressez l’archive en local
  3. Mettez votre site en mode maintenance afin que les visiteurs qui consultent le site pendant la mise à jour ne tombent pas sur une erreur (j’utilise le plugin Maintenance Mode)
  4. Désactivez tous vos plugins (sauf Maintenance Mode) pour éviter les problèmes de compatibilité avec la nouvelle version
  5. Mettez en ligne (FTP) les fichiers de la nouvelle version de WordPress (cela prend un peu de temps)
  6. Rendez-vous sur la page http://[votreDomaine]/wp-admin/wp-upgrade.php (cela va mettre à jour la base de données en cas de besoin)
  7. Si tout s’est bien passé, réactivez vos plugins, puis désactivez Maintenance Mode. Sinon, vous serez content d’avoir un backup !

Si vous utilisez WordPress, je serais bien curieux de savoir si vous faites vos mises à jour régulièrement.

Source de la news

Déc
20

Un formulaire de contact dans WordPress avec Contact Form 7

Formulaire de contact WordPress

Aujourd’hui, j’ai ajouté un formulaire de contact au site. J’en profite donc pour faire un petit tuto rapide sur le sujet.

Lire la suite

Déc
7

Metas keywords et description différents selon la page avec Ez Publish

Author Appo    Category CMS, Ez publish     Tags

Par défaut, Ez publish permet de gérer via son interface d’admin les mots clés et la description que l’on souhaite avoir sur son site, le problème est que ces mots clés seront les mêmes pour toutes les pages.

Pas de panique, il est possible assez facilement de modifier cela pour avoir des mots clés et des descriptions différentes pour chaque page.

Pour cela, il suffit de rajouter dans vos classes 2 champs, un champs meta_keys et un champs meta_description de type champs texte

Ensuite, créer un override du fichier page_head.tpl et remplacer

{section name=meta loop=$site.meta}
 &lt;meta name="{$meta:key|wash}" content="{$meta:item|wash}" /&gt;
 
 {/section}

par

{def $node_metas=fetch(content, node, hash(node_id, $module_result.node_id))}
 {if ne('',$node_metas.object.data_map.meta_description.content)}
 &lt;meta name="description" content="{$node_metas.object.data_map.meta_description.content}" /&gt;
 {else}
 &lt;meta name="description" content="{$site.meta.description}" /&gt;
 {/if}
 
 {if ne('',$node_metas.object.data_map.meta_keys.content)}
 &lt;meta name="keywords" content="{$node_metas.object.data_map.meta_keys.content}" /&gt;
 {else}
 &lt;meta name="keywords" content="{$site.meta.keywords}" /&gt;
 {/if}
{/undef}

Attention dans l’extrait de code, les < et > des débuts et fin de balise ont été convertis par WordPress, pensez à les remplacer.

Déc
6

Résoudre le problème des sub-item dans Ez 4.4

Author Appo    Category CMS, Ez publish     Tags

Si vous décidez de configurer le site pour enlever le index.php, il se peut d’avoir un problème avec l’affichage dans l’admin des subitems et des boutons  pour pouvoir en ajouter.

Ceci est un problème de htaccess. En effet, Ez ne trouve pas le chemin des fichiers JS. Il suffit de rajouter dans le htaccess*

RewriteRule ^extension/[^/]+/design/[^/]+/.* - [L]

Edito

Bienvenue sur Mémorandom.

Mémorandom est le blog de 2 développeurs web, Appo et Nico.

Vous y trouverez des informations sur différents domaines touchant de près ou de loin au développement web

Tutoriels Yii Framework

Nos derniers articles

Blogs Dev

Liens

Étiquettes