decitic* Reporting, Data et Webmastering pour les PME

Excel: Les fonctions NB.SI() et NB.SI.ENS()

131108_fonction_NBSI

La fonction NB.SI permet le comptage d’occurrences dans des listes de données et répond donc à des questions du type : « combien de fois est-ce que je trouve le mot ‘coucou’ ? » par exemple.

La fonction NB.SI.ENS permet quant à elle de répondre à la question: « combien de fois je trouve PATATE dans la colonne 1, tout en trouvant également HARICOT dans la colonne 2 ? ». En d’autres termes on compte le nombre d’occurrences d’associations de valeurs.

En utilisant ces fonctions à bon escient on peut par exemple repérer des doublons, ou encore créer de nouvelles mesures agrégées qu’on va stocker dans de nouvelles tables, etc.

Excel: la fonction SI()

130814_fonction_SI

La fonction SI est extrêmement courante et intervient dans de nombreux contextes: tableurs, programmation, etc.

Ce fichier donne des exemples d’utilisation dans Excel:
– attribution de catégories dans une liste de données
– calcul de perte de chiffre d’affaires selon des critères qualité
– affichage d’indicateurs de couleur dans un reporting

Open ERP: Server Access Denied lors de la modification du mot de passe admin

J’ai pu expérimenter cette erreur sur Open ERP en voulant modifier le mot de passe de mon propre compte en passant par le menu Utilisateurs.

print1

Une fois le mot de passe changé, j’ai rencontré l’erreur suivante:

print2

Un bon gros « Server Access Denied » ! Me rendant impossible l’accès à n’importe quel autre menu.

Pour supprimer l’erreur, la solution est en fait toute simple: il suffit de se déconnecter, puis de se reconnecter avec le nouveau mot de passe.

En fait, quand on ouvre une session, notre mot de passe est « stocké » dans celle-ci, et tant que l’on reste connecté, celui-ci n’est pas mis à jour.
Du coup, si l’on modifie notre propre mot de passe et que l’on reste connecté – c’est ce qui se passe quand on passe par le menu « utilisateurs » – le mot de passe nous autorisant la connexion (le nouveau) ne matchera pas avec le mot de passe contenu dans la session en cours (l’ancien).
C’est pourquoi se déconnecter/se reconnecter résout le problème.

Pour ne plus rencontrer ce souci lors du changement de son propre mot de passe, il faut le modifier en passant par les préférences utilisateurs classiques:

print3 print4

Une fois le mot de passe modifié, la déconnexion est forcée, et on ne rencontre donc aucun souci. Il ne reste alors plus qu’à se reconnecter, avec le nouveau mot de passe dans une nouvelle session.

print5

Source: http://help.openerp.com

S’auto-exclure de ses statistiques Google Analytics

Suivre les statistiques de son site c’est bien, mais ne pas les biaiser c’est mieux !

En effet, par défaut, les services de stats nous comptent, webmasters, dans les stats de notre propre site. Du coup il suffit de passer une journée à bidouiller son site, à le parcourir en rechargeant des pages modifiées etc, pour créer un truc de ce genre:

googleanalytics

Comment faire alors pour éviter ça ? Ba en fait Google Analytics fournit un outil pour ça: les filtres (un outil tout con d’ailleurs, dont je ne connaissais même pas l’existence avant tout récemment, hum).

Créer un filtre dans Google Analytics

Le filtre va nous permettre de nous auto-exclure des statistiques. Ici, on va exclure notre propre adresse IP fixe, il faut donc vous munir de celle-ci.

Ensuite, pour créer le filtre, dans votre compte allez sur « gestionnaire de filtres », puis cliquez sur « ajouter un filtre »:

googleanalyticsfilters0 googleanalyticsfilters1

Ensuite, vous n’avez plus qu’à remplir les différents champs :

googleanalyticsfilters2

Et voilà !

Edit septembre 2013: l’interface Google Analytics a changé depuis 2010 mais le principe d’exclusion via les filtres reste le même.

Cette méthode a le mérite d’être radicale. Mais quid de si vous partagez cet ordi, et que vous ne voulez pas exclure votre grand-mère des stats lorsqu’elle visitera votre site via cet ordi ? Ou bien: quid de si votre adresse IP n’est pas fixe ?

Vous avez ainsi d’autres méthodes. L’une d’entre elles est basée sur les cookies; plus « compliquée », vous pouvez la consulter sur Tavuu.net (merci à à ce site qui fournit l’explication sur les filtres). Vous avez même un hack WordPress associé, permettant de vous exclure uniquement quand vous êtes connecté à votre tableau de bord WordPress.

Bonne exclusion !

Créer des tinyurl de ses articles WordPress sans plugin

Comme je viens de commencer à me faire embarquer dans Twitter, mon intérêt pour les TinyUrl s’est développé de manière exponentielle.

TinyUrl ? Hein koué ? http://tinyurl.com

C’est un service qui permet de raccourcir ses URL: très utile sur les forums par exemple quand on a une URL à afficher mais qu’elle est ultra longue. Mais surtout: très utile sur Twitter, où il existe une limite au nombre de caractères !

Du coup, pour faciliter le « tweetage » de ses propres articles WordPress, rien de tel que trois bouts de code qui vont permettre de générer automatiquement une TinyUrl pour chacun de nos articles ! Du coup, JeanLouis qui voudra faire un tweet pointant vers ledit article, il aura juste à copier coller la TinyUrl et basta !

Ca se passe en deux étapes.

Etape 1: dans le fichier functions.php de votre thème WP

Il faut rajouter le bout de code suivant, qui fait en fait appel – de ce que j’ai compris – à ce qu’on appelle une « API », fournie par le site tinyurl.com: en gros, avec ce bout de code, votre blog WordPress va être capable de dire « hey Monsieur API de TinyUrl.com, viens là deux secondes, jvais te faire bosser un peu et tu vas me créer une tinyurl de tel et tel article ! ». Et c’est automatique, et c’est beau.

function getTinyUrl($url) {
    $tinyurl = @file_get_contents("http://tinyurl.com/api-create.php?url=".$url);
    if (!$tinyurl) {
        return $url;
    }
    return $tinyurl;
}

Source: par là !

Etape 2: dans le fichier single.php de votre thème WP

Maintenant, c’est bien beau d’avoir la fonction getTinyUrl, mais faut bien un code pour s’en servir ! Ca se passe dans single.php, mais ça peut se passer aussi dans votre fichier index.php, mais ouais, enfin, ça se passe dans tous les cas dans le fichier par lequel vous affichez vos articles !

Donc, à placer à l’intérieur de la boucle:

<?php
$turl = getTinyUrl(get_permalink($post->ID));
echo $turl
?>

Et ça vous affichera la TinyUrl, comme ça, brute, sans lien hypertexte ni rien. Du coup si vous voulez par exemple afficher un machin du genre: « la tinyUrl de cet article est: http://tiny.eenknven« , ça se passe au niveau de la troisième ligne du code précédent, avec le truc « echo »:

echo 'la tinyUrl de cet article est : <a href="'.$turl.'">'.$turl.'</a>'

Et voilà !
Faites bien gaffe à la syntaxe derrière le echo (d’ailleurs pour mieux comprendre le echo, je vous invite à aller là).

Etape Bonus: créer un bouton « partager sur twitter » qui produit un tweet avec l’article directement sous forme de TinyUrl

C’est ce que j’ai fait dans mon cas: quand on cliquait sur le bouton « partager sur Twitter », ça créait un tweet avec l’URL à rallonge de mon article ! Alors pour que celle-ci soit une tinyUrl, j’ai fait ça:

<a target="_blank" href="http://twitter.com/home?status=<?php the_title(); ?>%20<?php
$turl = getTinyUrl(get_permalink($post->ID));
echo $turl
?>"></a>

Je décompose:
– l’adresse « http://twitter.com/home?status= » envoie le lecteur vers sa page twitter, et pré-remplit son tweet avec ce qu’il y a de marqué après « status= »
– rajouter «  » permet donc de pré-remplir avec le titre de l’article
– et rajouter le code qui produit la tinyUrl permet de pré-remplir avec en + la tinyUrl !

Voili voilà ! Et du coup si vous voulez créer un bouton, ba vous avez le lien, il vous reste plus qu’à créer une image ! Vous pouvez faire un truc comme ça par exemple !

CSS: changer d’image au survol de la souris

Comment mettre une image en surbrillance au survol de la souris ? Comment mettre une image à l’envers au survol de la souris ? Comment remplacer une image par une autre au survol de la souris ? Comment décolorer une image au survol de la souris ? Comment machiner une image au survol de la souris ?

C’est une question qu’on peut se poser quand on bidouille du site web parfois, et la réponse est en fait toute bête: on peut faire tout ce qu’on veut avec 3 bouts de code et un éditeur d’images !

How to do that ? (Yes, I speak English very ouaile)

Etape 1: avec ton éditeur d’images favori

On va d’abord créer une image « globale » qui regroupe les deux images qu’on veut voir (l’image d’origine + l’image qu’on voit quand on survole).
Par exemple:

cclogo

Etape 2: avec ton Notepad préféré

Puis on va créer une DIV dont le background va être l’image « doublée » précédente. Seulement, on va s’arranger pour que le background affiche uniquement la partie haute de l’image quand on ne survole pas la DIV, et uniquement la partie basse de l’image quand on survole la DIV.

Ca se passe d’abord au niveau HTML:

<div class="classeimage"></div>

Puis niveau CSS:

.classeimage { background: url('cheminimage/image.jpg') no-repeat 0px -50px; height:50px; width: 50px; display: block; }
.classeimage:hover { background:url('cheminimage/image.jpg') no-repeat 0px 0px; }

Comme vous le voyez, on définit la position du background: -50px dans un cas, et 0px dans l’autre (50px correspondant à la hauteur de l’image).
Très important également, il faut définir la hauteur (« height ») et la longueur (« width ») de la DIV, sinon le background n’aura pas la « place » de s’afficher. Ici: 50px*50px, soit la taille de l’image de background.
Et, chose essentielle: il faut mettre l’attribut « display: block », autrement on aura des problèmes.

Et voilà !

Cette solution permet de n’appeler qu’une seule l’image; parce que oui on pourrait très bien en appeler deux séparées et simplement changer le nom de l’image du background. Mais après on se retrouve avec plein d’images sur son serveur. Dans l’autre sens, il est vrai que n’avoir qu’une seule image ça fait un plus gros poids sur notre page (mais bon, c’est pas énorme non plus)… à voir donc selon ce qu’on préfère (si vous avez une opinion d’ailleurs à ce sujet n’hésitez pas à en parler en commentaire !).

3. D’autres choses encore

Pour que l’image soit un lien, il suffit d’ajouter votre lien entre les deux balises de la DIV. Ensuite niveau CSS, vous devez rajouter le « a » du lien à ce que vous aviez déjà écrit.

Mais zoci, pour ajouter un texte à côté de l’image – ici, à droite – il vous suffit:
– d’écrire votre texte entre les deux balises de la DIV niveau HTML,
– puis de définir un « padding-right: …px;  » côté CSS, ce qui va « élargir » vers la droite la DIV, et éviter que le texte ne se superpose au background.

Dans l’exemple, avec un texte et un lien on aura:

<div class="imgzik"><a href="/site/musique" title="ma musique">blablabla lien</a></div>

et

.imgzik a{ background: url('cheminimage/imgzik.jpg') no-repeat 0px -100px; height:100px; width: 100px; display: block; padding-right: 110px; cursor: pointer;}
.imgzik a:hover { background:url('cheminimage/imgzik.jpg') no-repeat 0px 0px; }

Autre truc bien, si vous voulez changer le curseur, « cursor: pointer; » au niveau CSS et hop vous avez une main qui pointe son doigt au survol de l’image, même si y a pô de lien.

Enfin voilà, n’hésitez pas à demander des choses en commentaire si vous avez des questions !

Ajouter des miniatures à son thème WordPress

Toi, lecteur, oui, toi, tu utilises WordPress, et tu te demandes comment, oui, comment fait-on pour générer des miniatures pour ses articles ? Et ceci, en pouvant personnaliser la taille ou la qualité de l’image par exemple; bref, en pouvant bien bidouiller la chose et l’intégrer dans son thème sans problème.

Hé bien voici une manière de faire ceci, avec un script, l’utilisation des champs personnalisés, et une ligne de code.

1. Le script TimThumb

TimThumb, c’est un script qui va permettre de générer les miniatures. Téléchargez-le en faisant clic droit + enregistrer sous sur ce lien: fichier timthumb.php

Ensuite, dans le dossier de votre thème WordPress, créez un dossier « scripts », et mettez le fichier timthumb.php dedans. Créez également un sous-dossier nommé « cache ». Vous devriez donc avoir cette architecture dans le dossier de votre thème:

10-01-17-architecture

Le script va faire appel aux champs personnalisés de WordPress, et à partir d’eux, va générer une miniature qui sera contenue dans le dossier « cache ».

Mais c’est quoi les champs personnalisés ?

2. Le champ personnalisé « thumb »

Les champs personnalisés peuvent servir à de nombreuses choses; ils servent à ajouter des éléments à nos articles, que l’on pourra ensuite afficher ici ou là selon nos préférences.

Dans notre cas, ils vont nous permettre de définir la miniature correspondant à l’article. On va donc, pour chaque article, définir une image qui sera miniaturisée. Dans votre panneau d’administration, et sur la page d’édition de votre article, on va chercher les champs personnalisés. Voici comment faire ensuite:

On ajoute le champ personnalisé « thumb » (s’il n’existe pas déjà), tout en définissant l’image que l’on veut miniaturiser:

10-01-17-champ1

10-01-17-champ2

Puis on valide, et voilà. L’article est maintenant doté d’une miniature. Mais maintenant, il va falloir l’afficher, et pour cela il faut aller bidouiller notre code.

3. Afficher la miniature avec un bout de code

Dans le fichier de notre choix et l’endroit de notre choix dans le thème, il ne nous reste plus qu’à appeler la miniature avec le code suivant, à placer dans la boucle wordpress, ou bien encore dans une requête get_posts:

<img src="<?php bloginfo('template_directory'); ?>/scripts/timthumb.php?src=<?php echo get_post_meta($post->ID, "thumb", $single = true); ?>&h=X&w=Y&zc=1&q=Z" alt="<?php the_title(); ?>" height="X" width="Y" />

Ici, vous pouvez définir 4 variables, dans le bout suivant:

&h=X&w=Y&zc=1&q=Z

w pour width, correspond à la largeur de la miniature,
h pour height, correspond à la hauteur,
zc pour zoomcropping; inscrivez 1 si vous voulez que la miniature rogne l’image, ou 0 sinon,
q pour quality, vous permet de définir une qualité d’image comprise entre 0 et 100 (n’hésitez pas à fixer une valeur plutôt basse, histoire de ne pas surcharger votre site !)

Voici un exemple de ce que j’ai moi-même fait avec ce bidule:

10-01-17-thumbs

Pour chaque article, j’ai à chaque fois défini une image en champ personnalisé, et dans mon thème, j’ai placé le code que l’on a vu de manière à aligner sur la gauche la miniature, et voilou !

Si vous avez des questions ou des remarques, n’hésitez pas à commenter !

Afficher les derniers articles avec Get Posts, sans plugin

Etant donné qu’à l’époque je n’y connaissais rien en fonctions WordPress et toutes ces choses, c’est quelque chose que j’ai mis du temps à découvrir et à utiliser. Débuter rend les choses difficiles !

Après des heures et des heures de recherche, la requête « Get Posts » m’était alors apparu comme le Saint Graal. Et le pire, c’est que celle-ci se trouvait sur le codex WordPress

J’ai donc décidé d’en parler, car je trouve que c’est quelque chose qui reste assez dur à trouver quand on est débutant !
Voici comment procéder:

1. Sur une page d’accueil

Ce code affiche la liste des derniers articles, toutes catégories confondues. C’est en ça qu’il a sa place sur une page d’accueil par exemple. C’est le code de base, donné par le codex WP lui-même.

<?php global $post;
$myposts = get_posts(‘numberposts=10');
foreach($myposts as $post) :
?>
<li><span><?php the_time(‘d.m’) ?></span> – <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>

On peut définir le nombre de posts affichés via « numberposts », ainsi que d’autres paramètres, listés dans le codex. On peut par exemple définir une catégorie particulière en écrivant son ID à la main.

Mais écrire l’ID à la main, ça devient fastidieux quand on veut récupérer les derniers articles en différenciant les catégories.

2. Dans les catégories mères

Par exemple, on a les catégories: « bLOG », « MUSiC », ou « iMAGES ». chaque fois, dans le menu, on veut afficher les derniers posts de la catégorie dans laquelle on se trouve.

On peut alors utiliser un seul code dans son menu, sans avoir à insérer un code pour chaque catégorie mère. On peut procéder comme ceci:

<?php
foreach((get_the_category()) as $category):?>
<?php
global $post;
$myposts = get_posts('numberposts=9&category='. $category->category_parent);
foreach($myposts as $post) : ?>
<li><span><?php the_time('d.m') ?></span> - <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
<?php endforeach; ?>

Ce code permet de récupérer la liste des 9 derniers articles pour chaque catégorie mère où l’on se trouve. Vous pouvez ensuite customiser la façon dont la liste est displayée, via les classes sur les balises, sur la date, etc.

3. Dans les catégories filles

Dans mon cas, à l’époque j’avais rencontré des problèmes; le code utilisé pour les catégories filles ne fonctionnait pas pour les catégories mères. C’est pour ça que je les ai distingués.

<?php
foreach((get_the_category()) as $category):?>
<?php
global $post;
$myposts = get_posts('numberposts=9&category='. $category->cat_ID);
foreach($myposts as $post) : ?>
<li><span><?php the_time('d.m') ?></span> - <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
<?php endforeach; ?>

Comme vous le voyez, la seule chose qui change entre les deux, c’est qu’on a dans le premier cas « category_parent », et dans le second « cat_ID ». Cela oblige à utiliser deux codes différents, et à ce jour je n’ai pas trouvé d’autre solution. Si vous avez des suggestions, n’hésitez pas à envoyer un commentaire !

Partager ses articles sur Facebook et Twitter, sans plugin

Pour mettre en place des liens afin de partager vos articles sur les réseaux sociaux, voici ce que vous pouvez insérer comme codes dans votre thème:

1. Pour partager sur Facebook

<a href="http://www.facebook.com/share.php?u=<?php permalink_single_rss(); ?>" onclick="return fbs_click()" target="_blank" class="fb_share_link">Partager sur Facebook</a>

Ici, le «  » va appeler l’URL de l’article et l’afficher dans le statut facebook. En fait, ce qui s’affiche, c’est ce qu’il y a après le « share.php?u= » donc voilà, vous pouvez mettre ce que vous voulez qui vous semble utile.

2. Pour partager sur Twitter

<a target="_blank" href="http://twitter.com/home?status=<?php the_title(); ?>%20<?php permalink_single_rss(); ?>">Partager sur Twitter</a>

Même principe que pour facebook, sauf que là on rajoute en plus le titre de l’article avec «  ». Puis le « %20 » produit un espace, puis ensuite on a l’URL.

Edit du 3 avril 2010:
Vu que c’est Twitter, ça peut paraître plus judicieux de mettre une TinyUrl … pour voir comment faire, je vous invite à lire cet article consacré aux TinyUrl !

Fin voilà, si vous avez d’autres ptits trucs pour d’autres réseaux sociaux, n’hésitez pas à le mettre en commentaire 🙂


Parse error: syntax error, unexpected end of file in /datas/vol2/chatougri.com/var/www/decitic.fr/www/wp-content/themes/decitic/footer.php on line 32