Jean-Marc Amiaud

Author Archive

Client SOAP en C/C++ avec la librairie gSOAP

by le 12 Sep 2012, catégorie Actualités

La librairie gSOAP est fournie avec deux utilitaires :

  • wsdl2h
  • soapccp2

On va générer tout d’abord un fichier d’entête grâce au wsdl fourni par le service que l’on souhaite consommer.
#/usr/local/gsoap/bin/wsdl2h -o service.h http://www.server.com/service?wsdl
#/usr/local/gsoap/bin/soapcpp2 -I/usr/local/gsoap/share/gsoap/import service.h

Les fichiers soapC.c, soapH.h, soapStub.h, soapClient.cpp, soapClientLib.cpp, soapServer.cpp et soapServerLib.cpp sont générés en plus des fichiers xml et un fichier de mapping utilisés pour générer les envloppes SOAP par le client ou le serveur.

Il reste plus qu’à faire le programme client qui va utiliser les classes générées.

Leave a Comment Lire la suite...

Muse

by le 21 Avr 2012, catégorie Musique

Une vielle reprise d’Hysteria…

Leave a Comment Lire la suite...

Recette du gâteau « Reine de Saba »

by le 21 Mar 2012, catégorie Cuisine

Ingrédients :

  • 150 gr de chocolat
  • 150 gr de sucre
  • 150 gr de beurre
  • 80 gr de farine
  • 3 oeufs

Préparation :

Mélanger le chocolat, la farine le sucre et le beurre.
Ajouter les jaunes une fois le mélange bien homogène.
Battre les blanc en neige et les incorporer à la préparation délicatement.

Mettre le tout dans un moule à manqué, beurré avec une fine couche de sucre uniformément répartie, le sucre ne collant pas au moule étant de trop.

Cuisson :

Préchauffer le four à 180°c (termostat 6) et laisser cuire environ 20 à 25 minutes.
Utiliser un couteau pour vérifier qu’il est cuit à coeur, la pâte ne devant plus coller sur la lame du couteau.

Leave a Comment :, , Lire la suite...

Vider son cache DNS

by le 02 Mar 2012, catégorie Réseau

Il peut arriver parfois que l’on ai besoin de vider son cache DNS.
En effet, les enregistrements de zone sont toujours liés à un temps de validité.
Or après une modification de zone, il arrive parfois que l’on ai besoin de prendre en compte directement la modification effectuée.

Il suffit pour ce faire d’ouvrir sous windows une console et de taper la commande suivante : ipconfig /flushdns

Pour connaître le contenu du cache DNS, vous pouvez utiliser la commande suivante : ipconfig /displaydns
A savoir que dans ce cas, seront listés tous les enregistrement mis en cache mais également le contenu du fichier HOSTS (c:\\windows\system32\etc\drivers\hosts)

 

 

Leave a Comment Lire la suite...

Modifier la pagination du plugin WooCommerce

by le 08 Fév 2012, catégorie WooCommerce

La pagination de base du plugin permet de passer d’une page à l’autre uniquement avec les deux liens « Précédent » et « Suivant ».
Si vous souhaitez lister les numéros de page accécible directement, il faut écraser la fonction appellée par défaut.
Afin de garantir la fonctionnalité lors des mises à jour, il faut absolument faire la modification au niveau du thème et non du plugin en lui-même.

Il est préférable d’utiliser le fichier functions.php de votre thème.

Voici un exemple du code que j’ai fait pour arriver à lister les pages et du coup créer un controle de navigation bien plus ergonomique et pratique.

function store_pagination()
{
global $wp_query;

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
if (  $wp_query->max_num_pages > 1 ) :
?>
<table>
<tbody>
<tr>
<td>
<div><?php previous_posts_link( __( '<span>&larr;</span> Pr&eacute;c&eacute;dent', 'store' ) ); ?></div>
</td>
<?php
for($i=1; $i <= $wp_query->max_num_pages; $i++)
{
?>
<td>
<a href="<?php echo '?paged=' . $i; ?>" <?php echo ($paged==$i)? 'class="selected"':'';?>><?php echo $i;?></a>
</td>
<?php
}
?>
<td>
<div><?php next_posts_link( __( 'Suivant <span>&rarr;</span>', 'store' ) ); ?></div>
</td>
</tr>
</tbody>
</table>
<?php
endif;
}

remove_action('woocommerce_pagination', 'woocommerce_pagination');
add_action('woocommerce_pagination','store_pagination');

 

 

 

Leave a Comment Lire la suite...

Faire des templates de theme wordpress avec un style css qui s’adapte à la catégorie

by le 10 Nov 2011, catégorie WordPress

WordPress est initialement prévu pour faire tourner un theme selon un unique style défini par ce dernier.
Je vous propose ici une façon d’améliorer l’esthétique globale de votre blog en s’appuyant sur les catégories de WordPress pour définir des styles particuliers aux différentes sections de votre blog.

1 – L’approche

Il existe deux fonctions de l’API WordPress, body_class et post_class qui écrivent un attribut de balise class, listant des styles relatifs au contexte de la page demandée.

Pour plus de renseignement sur la fonction body_class : http://codex.wordpress.org/Function_Reference/body_class
Pour plus de renseignement sur le fonction post_class : http://codex.wordpress.org/Function_Reference/post_class

L’idée est d’ajouter à cette liste de classes css, les classes des catégories associées au contexte de la requête ainsi que celles de leurs parents en utilisant tout simplement le nom de la categorie.
Ainsi, si une catégorie n’a pas été spécialement designée dans le fichier de style, il héritera le style de la catégorie parente et ainsi de suite, jusqu’au style par défaut…
Par exemple, ma page de catégorie WordPress, ainsi que tous les articles de la catégorie héritent du style de la catégorie mère, la catégorie Programmation, qui elle même hérite du style de la catégorie Informatique.

2 – Code

function category_id_class($myClasses) {

  if(is_single())
  {
    global $post;

    foreach((get_the_category($post->ID)) as $myCategory)
    {
      // On récupère toutes les catégories de l'article
      $myCategories = array_filter(explode(' ',get_category_parents($myCategory->cat_ID, FALSE, ' ', TRUE)));
      // On récupère les doublons à supprimer par rapport à l'existant pour deux raisons :
      // 1 - Par ce que ça fait un code html plus propre en supprimant les doublons inutiles
      // 2 - Pour assurer la cohérence hiérarchique si la suppression des doublons se fait sur le tableau existant.
      //     En effet, wordpress ajoute déjà une classe au nom de la catégorie de l'article, or il faut que le style de la catégorie s'applique après le style d'une de ses catégories parentes.
      $myCatToRemove = array_intersect($myClasses, $myCategories);
      // On effectue donc bien la suppression des doublons sur le tableau existant
      $myClasses = array_diff($myClasses, $myCatToRemove);
      // On retourne les tableaux associés, les nouvelles classes définies à la suite des existantes définies par wordpress.
      // Attention, j'insiste sur l'ordre !
      $myClasses = array_merge($myClasses, $myCategories);
    }
  }
  else if(is_category())
  {
    // De même si c'est une page de catégorie
    // Seule la récupération de l'ID de la catégorie de départ est différente.
    global $wp_query;
    $myCategoryID = get_query_var('cat');

    // On rajoute le prefix 'category-' aux classes de categorie, pour indiquer qu'on se trouve dans un contexte de page de categorie.
    $myCategories = array_prefix_values('category-', array_filter(explode(' ',get_category_parents($myCategoryID, FALSE, ' ', TRUE))));
    $myCatToRemove = array_intersect($myClasses, $myCategories);
    $myClasses = array_diff($myClasses, $myCatToRemove);
    $myClasses = array_merge($myClasses, $myCategories);
  }
  return $myClasses;
}
add_filter('post_class', 'category_id_class');
add_filter('body_class', 'category_id_class');

function array_prefix_values($prefix, $array)
{
  $callback = create_function('$str','return "'.$prefix.'".$str;');
  return array_map($callback,$array);
}

3 – Usage

Il suffit de faire votre appel dans votre template à la balise body de la manière suivante :

<body <?php body_class(); ?>>

</body>

Le code généré sera alors de la forme :

<body class= »single single-post postid-367 single-format-standard logged-in informatique programmation wordpress »>

</body>

Il ne reste plus qu’a définir les styles css correspondants dans votre feuille de style (style.css)

Leave a Comment :, , Lire la suite...

Solution pour les problèmes de cache des partages Facebook

by le 12 Juin 2011, catégorie Développement

Si vous utilisez les partages Facebook depuis un site extérieur, vous vous êtes surement rendu compte que Facebook mettait en cache le partage lors du premier accès.

Chose très embêtante si vous devez changer rapidement une description inadéquate ou une image qui ne correspond pas à ce que vous vouliez obtenir lors du partage.

Heureusement il existe un outil bien caché qui va vous permettre de régler le problème : Url Linter.

Cette interface permet de tester la manière dont Facebook va partager une url.
Mais elle a surtout l’intérêt de mettre à jour le cache de Facebook immédiatement !

N’oubliez donc pas de mettre ce lien dans vos bookmarks !

Leave a Comment :, Lire la suite...

Replace WordPress default media icon with preview image

by le 05 Mar 2011, catégorie Programmation, WordPress

Media library in WordPress display thumbnail of the pictures but only generic icon for all other type.
It’s possible to change generics icons (eg. by video preview image) with pair of filter :

[code lang= »csharp »]

add_filter(‘wp_mime_type_icon’, ‘my_plugin_video_icon’, 10, 3);
add_filter(‘icon_dir’, ‘wp_plugin_video_icon_dir’);

function my_plugin_video_icon($icon, $mime, $post_id)
{
        if(preg_match(&quot;/^video/&quot;,$mime))
        {
                 // – Find your icon for the specified post
               
                 // – Save the repository of your icon as global
                global $_current_video_icon_dir;
                $_current_video_icon_dir =  dirname(ABSPATH . substr($new_icon, strpos($new_icon, &quot;wp-content&quot;)));

                // – Return your icon path
                return $new_icon;
        }
}

function my_plugin_video_icon_dir($dir)
{
        global $_current_video_icon_dir;

        if(!empty($_current_video_icon_dir))
        {
                $var = $_current_video_icon_dir;
                $_current_video_icon_dir = null;
                return $var;
        }
        return $dir;
}

[/code]

Leave a Comment :, , , , Lire la suite...

Eclipse solaire du 4 janvier 2011

by le 04 Jan 2011, catégorie Astronomie

Ce matin, pendant que les enfants partaient à l’école, la lune avait rendez-vous avec le Soleil.

 L’éclipse partielle de Soleil a donc eu lieu ce mardi matin en début de journée. Pour une fois, la France était un bon poste d’observation, le Soleil étant masqué à plus de 65% sur l’ensemble du territoire. Personne ne pouvait assister à une éclipse totale comme ce fut le cas dans le Pacifique le 11 juillet 2010 puisque cette fois-ci le cône d’ombre de la Lune passait au-dessus de la Terre.

Ce matin, nous avons eu la chance sur Bordeaux d’avoir un ciel dégagé et très propre ! Malheureusement j’avais complètement oublié, et quand je m’en suis rendu compte, impossible de remettre la main sur mon filtre solaire… Donc pas de photo au téléscope ! Dommage !

J’ai tout de même pris quelques clichés avec l’appareil photo et en jouant avec la diffraction du double vitrage, on peut se rendre compte du spectacle !

J’ai trouvé également cette page sur Wikipédia : http://fr.wikipedia.org/wiki/%C3%89clipse_solaire_du_4_janvier_2011

Leave a Comment :, , , Lire la suite...

Handle unload event with jQuery

by le 23 Déc 2010, catégorie jQuery, Programmation

After a lot of research over internet, to know how it’s possible to handle unload event with jQuery, I have found the solution ! But I’ve seen lot of error… the reason of my post.

The unload event is fired by window element and NOT by the document element !
So you have to handle the event from window element like this :

jQuery(window).unload(function() { alert(‘Window unload event is fired !’); });

That’s all !

Leave a Comment Lire la suite...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!