Blog geekesque... ou presque

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 18 mars 2015

Packs de smileys

Il y a énormément de bibliothèques de smileys, mais certaines ne sont exploitables que dans des logiciels propriétaires, à savoir les clients de messageries instantanées.

Je me suis permis de les extraire et d'en faire des packages, c'est à dire des archives utilisables par tout un chacun. Ils sont en téléchargement sur le site de MyBB car c'est avant tout pour les forums que c'est très pratique, mais vous pouvez utiliser les smileys contenus avec tout forum ou toute application acceptant l'ajout d'images.

Skype 5.8 smilies

Pack de 102 smileys issus de Skype, y compris les smileys cachés skype.png

Téléchargement

Skype animated smilies

Pack de 84 smileys animés issus de Skype skype_anim.png

Téléchargement

Live Messenger smilies

Pack de 82 smileys issus de Live Messenger live_messenger.png

Téléchargement

ICQ animated smilies

Pack de 27 smileys animés issus de ICQ icq.png

Téléchargement

mardi 10 février 2015

MyBB 1.8 : upload d'image sur imgur.com

Les habitués des forums le savent, insérer une image dans un message implique très souvent que celle-ci soit déjà hébergée sur un site externe.

J'ai donc créé un petit plugin pour MyBB qui ajoute un "bouton" permettant d'ouvrir une fenêtre d'upload vers imgur.com, et lorsque l'image est envoyée, elle est insérée dans le message. capture1.png

Installation

L'installation se fait en uploadant le contenu du répertoire UPLOAD contenu dans cette archive zip à la racine de votre forum (l'arborescence est contenue dans le répertoire), puis il faut installer (et activer) le plugin depuis l'interface d'administration.

Configuration

  1. Il vous faut une clé imgur, rendez-vous sur https://api.imgur.com/ pour en obtenir une. Il vous suffit d'avoir un compte (gratuit) pour cela.
  2. Une fois votre API créée, vous obtenez un Client ID, c'est ce code qu'il faut insérer dans votre panneau d'administration

acp.png

Url officielle du plugin : http://community.mybb.com/mods.php?action=view&pid=386

jeudi 2 octobre 2014

Des arrondis précis : le retour

Il y a quelques années, j'avais fait un petit billet sur les arrondis précis dans lequel je fournissais une source.

Cette source a changé, car j'ai eu besoin d'une nouvelle fonction, en plus de floor et ceil: round.

/**
 * Arrondit au plus près
 * @param float $value Valeur à arrondir
 * @param integer $precision Précision (défaut: 0)
 * @param float $step Pas à adopter
 * @return float
 */
public function round($value,$precision=0, $step=1) {
   $precision = abs(intval($precision));
   $step = abs(floatval($step));
   if (($step == 0) || ($step == 1)) {
      $value = round($value, $precision);
   } else {
      $value = round( round($value/$step)*$step, $precision);
   }
   return $value;
}

Et j'en ai profité pour corriger un léger bug dans les fonctions précédentes.

jeudi 24 juillet 2014

[MyBB] Ajouter des réseaux sociaux dans les profils

Si vous ne connaissez pas MyBB, c'est un forum que j'apprécie beaucoup et pour lequel je réalise parfois quelques plugins.

J'ai eu besoin de pouvoir ajouter sur les profils des utilisateurs des informations sur les réseaux sociaux tels que Twitter, Facebook, Babelio, ... J'ai donc développé "usersocial", et pense l'avoir rendu simple à utiliser.

Lire la suite...

mardi 13 mai 2014

Utiliser le webservice HPOO runFlow avec SOAP

Ce billet concerne fort peu de monde en l'état, mais contient diverses astuces et réflexions sur l'utilisation de SOAP et des objets relativement complexes à y intégrer, la documentation n'étant pas très explicite. La part HPOO est anecdotique, c'est essentiellement parce que c'est l'interfaçage avec ce système qui m'a posé des soucis.

J'espère que ce petit résumé de mes pérégrinations au sein du SOAP et des webservices HPOO aideront certains qui pourraient tomber sur les mêmes écueils que moi.

Lire la suite...

lundi 17 mars 2014

Bloquer la sortie d'une page

Parfois, on a besoin de pouvoir interdire de quitter une page web autrement que par le "cheminement normal", c'est à dire très souvent par l'envoi d'un formulaire. Le but n'est bien entendu pas d'emprisonner le visiteur sur la page mais de l'alerter et de lui demander une confirmation de l'action qu'il veut réaliser.

L'astuce suivante fait appel à JQuery pour une simplification du code et de sa compatibilité entre les navigateurs mais peut être codée à la main si vous le désirez.

Bloquer la sortie

Pour cela, il suffit de faire appel à onbeforeunload une fois la page chargée:

jQuery(function($) {
   $(window).bind('beforeunload', function(){
      return 'message de confirmation';
   });
});

Le message de confirmation n'est pas visible sur tous les navigateurs, je ne l'ai vu que sur IE8 et il est plutôt mal mis en page.

Avec ce script, toute action fermant la page (même la fermeture du navigateur) demandera une confirmation à l'utilisateur.

Autoriser la sortie normale

La sortie normale de la page devant s'effectuer par une validation de formulaire, il suffit donc d'ajouter une fonction onclick sur le bouton de soumission qui désactivera le script:

<input type="submit" value="envoyer" onclick="$(window).unbind('beforeunload');" />

Un bloc à onglets sous Yii

J'ai eu besoin de pouvoir intégrer facilement un bloc avec des onglets dans une page générée par Yii et je n'ai rien trouvé d'assez léger, j'ai donc développé une petite extension: ETabbedDiv.

Elle utilise les fonctionnalités de jquery-ui et s'implémente très facilement:

Utilisation

  • dézippez le fichier et copiez ETabbedDiv.php dans votre répertoire protected/extensions/
  • appelez le widget depuis votre vue, comme dans l'exemple suivant:
<?php $this->widget('application.extensions.ETabbedDiv',
   array(
      'divClass' => 'tabbed',
      'tabs' => array(
         'tab1' => array('content' => '<p>Ceci est le premier onglet</p>'),
         'tab2' => array('title'=>'Second', 'content' => '<p>Ceci est le second onglet</p>'),
         'other' => array('content' => '<p>Et voila le dernier onglet</p>'),
      ),
   ),
);
?>

Paramètres

  • divClass (optionnel) est la classe CSS qui sera appliquée au bloc contenant les onglets,
  • tabs est un tableau associatif des onglets, sous la forme id => tableau de contenu décrit ci-dessous
    • title (optionnel) est le titre qui sera affiché dans l'onglet. S'il n'est pas renseigné, id sera utilisé
    • content est le contenu HTML a afficher dans l'onglet

Source

Vous trouverez la version anglaise sur Yii Framework

Lien de téléchargement sur ce blog : ETabbedDiv

jeudi 31 octobre 2013

[MàJ] [Beta] Extension WordPress : LightIRC

Ayant un blog sous WordPress, j'ai un peu cherché pour intégrer simplement un tchat et la seule solution que j'ai trouvée est Powie's IRC Chat qui utilise une applet Java.

Préférant l'interface flash LightIRC, j'ai donc adapté Powie's et voici le résultat. wplightirc.zip

Installation

  1. Depuis le menu "Extensions" de wordpress, sous-menu "Ajouter", choisissez "Envoyer" et uploadez le fichier zip.
  2. Installez et activez l'extension
  3. Dans "Réglages" "Réglages WPLightIRC", remplissez les champs avec les valeurs qui vous conviennent
  4. Sauvegardez
  5. Créez une page dans laquelle vous insérez le shortcode [wplightirc]
  6. C'est fini

Mise à jour - 31/10/2013

  1. Ajout de deux réglages : port du flash policy et affichage de la fenêtre "statut du serveur"

lundi 14 octobre 2013

[MàJ] Yii : ajout d'une entrée depuis le CGridView

(Mise à jour : ajout de l'option fillIsFilter) Il est parfois utile de pouvoir remplir un CGridView directement depuis sa vue sans avoir à changer de page. Cette extension permet d'avoir un formulaire dans la grille et d'ajouter à la volée de nouvelles entrées.

Pour les anglophones, la source originale est sur cette page.

Lire la suite...

vendredi 21 juin 2013

Recherche sur plage de taille avec CGridView

En travaillant sur un système de reporting de transferts de fichier (utilisant Yii), j'ai eu besoin d'un champ permettant de faire une recherche sur la taille des fichiers, avec une syntaxe "humainement compréhensible". Et cela avec un seul champ de recherche. (traduction de mon article à http://www.yiiframework.com/wiki/516/search-a-file-size-range-in-cgridview/)

Lire la suite...

Lecture de date en PHP

Etant très souvent embêté avec les différents formats de dates utilisés au sein d'un même site, j'ai exploré le manuel PHP et j'avais trouvé DateTime::createFromFormat très pratique. Mais valable uniquement en PHP 5.3 minimum. Qu'à cela ne tienne, voici presque une équivalence pour PHP 5.1 et plus.

Lire la suite...

dimanche 17 mars 2013

Apache et nginx - Transmettre l'IP du visiteur

Jai omis hier dans mon billet Soulager Apache avec nginx un point essentiel. Lorsque nginx appelle un contenu dynamique, Apache voit que le demandeur est nginx et non pas le visiteur du site, donc toutes les requêtes viennent de 127.0.0.1. Heureusement, il est possible de forwarder les entêtes HTTP adaptés.

Lire la suite...

Soulager apache avec nginx

Le problème avec Apache, c'est que lorsqu'on appelle une page web, il crée un processus par élément appelé par la page (image, feuille de style, ...), ce qui peut rapidement saturer la mémoire du serveur si trop de visites simultannées sont faites sur un site. Heureusement, on peut utiliser un proxy comme nginx pour économiser des ressources.

Lire la suite...

dimanche 9 décembre 2012

Access denied for user ‘debian-sys-maint’@'localhost’ (using password: YES)

Sur Debian, il arrive parfois que cette erreur apparaisse lors d'une tentative de mise à jour de MySQL, ou même lorsque l'on désire arrêter le serveur.

En fait, l'utilisateur debian-sys-maint n'est pas toujours créé, ou bien il est créé sans les bons privilèges, ce qui est génant.

Correction

Le mot de passe de cet utilisateur se trouve dans le fichier /etc/mysql/debian.cnf. Une fois que vous l'avez copié, connectez-vous en tant que root sur la base mysql du serveur:

mysql -u root -p mysql

Et là, donnez les bons droits à l'utilisateur debian-sys-maint (en remplaçant PASSWORD par le mot de passe précédent):

GRANT ALL privileges ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

Redémarrez MySQL, tout doit être bon.

vendredi 31 août 2012

Plugin lightIRC pour MyBB

Si comme moi vous utilisez MyBB comme forum et que vous voulez y ajouter une page d'accès à un réseau IRC, il n'y avait que le plugin PJirc qui intègre une applet Java.

Je préfère lightIRC, voici donc le Plugin lightIRC pour MyBB.

N'hésitez pas à signaler tous les bugs que vous y trouverez.

Installation

Décompressez le fichier zip et copiez son contenu (sous-répertoires inclus) à la racine de votre forum.

Attention

L'interface lightIRC nécessite que le serveur IRC autorise son accès, pensez à demander à l'administrateur les informations concernant son flashpolicy.

Si vous utilisez votre propre serveur IRC, n'hésitez pas à lire http://www.lightirc.com/faq.html

lundi 6 août 2012

Bind9 sur Debian

Récemment, j'ai eu un petit souci avec Bind9. Proprement configuré suite à une installation sous Debian, impossible que mes domaines soient bien pris en compte par les différents serveurs DNS.

Je laisse passer 48h pour la propagation, et toujours rien.

Coup de génie: je teste depuis la machine que bind fonctionne bien en faisant telnet 127.0.0.1 53 et ça fonctionne, bind est bien lancé (ce que j'avais vérifié avec un netstat -anp | grep 53).

Je tente d'une autre machine, et là rien...

En fait, il semblerait que les dernières versions de bind9 sur Debian remplissent ainsi le fichier /etc/bind/named.conf.options :

options {
       directory "/var/cache/bind";
       auth-nxdomain no;    # conform to RFC1035
       listen-on-v6 { any; };
       listen-on { 127.0.0.1; };
       allow-recursion { 127.0.0.1; };
};

Il suffit donc de remplacer listen-on { 127.0.0.1; }; par listen-on { any; }; (ou avec l'IP publique de votre serveur) et tout rentre dans l'ordre.

samedi 9 juin 2012

m_restrictcolors : Restriction de couleur sur UnrealIrcd

On m'a demandé s'il était possible sur UnrealIrcd de limiter l'usage de la couleur aux opérateurs d'un canal. C'est maintenant possible avec ce module que je viens de développer.

Lire la suite...

vendredi 11 mai 2012

"Bell" avec Putty et screen

Depuis quelques temps, j'ai mis le plugin beep.pl sur weechat et j'ai activé, sur Putty, la signalisation sonore des highlights[1], mais malheureusement, quel que soit le réglage sur Putty, je n'avais qu'un bref clignotement de la fenêtre.

Note

[1] Mise en évidence d'une ligne où vous êtes cité

Lire la suite...

vendredi 27 avril 2012

Cryptage réversible en java

Mon cryptage réversible a fait des émules ! Ophanin a fait une version java du système et vous la livre.

A priori complètement compatible avec la version PHP, peut-être un souci sur le décodage mais je suis certain que ce sera vite corrigé.

RevCrypt java

mercredi 11 avril 2012

[MàJ] Utiliser OpenStreetMap plutôt que GoogleMap ?

Edition du 11 avril: Je me rends compte que je n'ai pas mis l'adresse du site dédié, il s'agit de osmLeaflet.jQuery. C'est là que l'on peut facilement suivre les mises à jour et évolutions.

Depuis quelques temps, je m'intéresse au projet OpenStreetMap qui me semble une bonne alternative à GoogleMap pour l'intégration de cartes sur des sites.

Malheureusement pour les plus fainéant d'entre nous (moi y compris), aucun code officiel à utiliser directement n'existe. Sauf depuis l'intervention de Mathieu Robin qui a créé un plugin OSM pour JQuery, qu'il a appelé osmLeaflet.jQuery.

Voici l'exemple d'utilisation qu'il donne sur son billet d'explication qui vous montre la simplicité déconcertante de son utilisation, mais je vous invite fortement à aller voir le blog.

$(document).ready(function () {
    // Initialisation de la map
    var osmMap = $(document).osmLeaflet({
           target : 'map',
           zoom : 12,
           lattitude : 51.50,
           longitude : -0.09
    });
 
    // Ajout d'un marker
    osmMap.osmLeaflet('addMarker', {lattitude : 51.50, longitude : -0.09});
 
    // Ajout d'une popup
    osmMap.osmLeaflet('addPopup', {lattitude : 51.51, longitude : -0.13, text : "Hey !"});
});

- page 2 de 6 -