SEO: Mettre une image sur une balise html tout en gardant le texte.

Voici une petite astuce qui peut aider pour le référencement de votre site:

Niveau SEO il est préférable de faire des liens avec du texte plutôt qu’avec une image. Logique me direz-vous parce-que même si google est fortiche en reconnaissance d’image, il ne référence pas encore le texte dans les images…

Mais alors, comment faire un lien avec une image sans ralentir le référencement de mon site?
Une solution très simple existe, il suffit d’utiliser la propriété css text-indent pour cacher le texte contenu dans votre balise.

Exemple coté html:

<a id="logo" href="http://www.mon-super-site.com">mon texte</a>

Coté css:

#logo{
  background-image:url("chemin_de_mon_image.png");
  text-indent:-10000px;
}

En mettant la propriété text-indent à -1000px ou -10000px, les visiteurs de votre site ne verrons que l’image du background mais googlebot verra très bien le texte entre les balises <a> et </a> et le prendra en compte. Votre site est sauvé!

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Comment lire une vidéo depuis l’api de Subsonic

Petit rappel pour ceux qui ne connaissent pas, Subsonic est un clone de Deezer qui permet, une fois installé sur votre serveur, de lire des musiques et aussi des vidéos depuis une interface web.

Pour moi, utiliser l’api de Subsonic pour lire des vidéos en Streaming a été un peu compliqué. Je voulais simplement lire le flux renvoyé par Subsonic quand on appel la méthode http://your-server/rest/stream.view mais la documentation à ce sujet est quasi inexistante…

Voici donc une petite démo pour parvenir à lire ce flux.

Fichier HTML ou va être placé le lecteur. N’oubliez pas de changer la valeur des variables par les vôtres!

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<script type="text/javascript" src="/subsonic_api/script/swfobject.js"></script>
		<script type="text/javascript" src="/subsonic_api/script/prototype.js"></script>
		<script type="text/javascript" src="/subsonic_api/script/subsonic.js"></script>
		<script type="text/javascript" language="javascript">
			var subsonicServer ="http://yourserver";
			var videoid="subsonic file id";
			var subsonicUsr ="subsonic_usr"
			var subsonicPsw = "subsonic_password";
			var player;
			var position;
			var maxBitRate = 1000;
			var timeOffset = 0;
		</script>

	</head>

	<body onload="init();">
		<div>

			<div id="placeholder1"><span class="warning"><a href="http://www.adobe.com/go/
getflashplayer">Obtenir Flash player</a></span></div>
		</div>
	</body>
</html>

Pour le reste je vous laisse télécharger ce fichier zip qui contient tout les éléments nécessaires à la lecture de la vidéo. Pour cela rendez-vous ici: subsonic_api_demo.

Référez-vous à la documentation de l’api Subsonic pour récupérer l’id de la vidéo et sa longueur.

Dernière info sur les méthodes changeTimeOffset() et changeBitrate() présentes dans le fichier subsonic.js: elles permettent respectivement de changer la position dans la vidéo et de changer la qualité de celle-ci. Elles sont donc très utiles 😉

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Zend framework – Configurer la gestion des erreurs

Voici un petit tutoriel pour créer un contrôleur de gestion des erreurs dans Zend. La mise en place de ce contrôleur permet de rediriger les utilisateurs vers une page spécifique en fonction de l’erreur rencontrée.

Premièrement modifiez le fichier bootstrap.php et ajoutez-y la ligne suivante:

<?php
...
ini_set('display_errors', 1);
... ?>

Cela permet de définir s’il faut afficher le détail des erreurs ou non.

Créez ensuite le fichier ErrorController.php dans le dossier controllers de votre projet Zend avec le contenu suivant:

<?php

class ErrorController extends Zend_Controller_Action
{
    public function init()
    {

    }
	
    public function errorAction()
    {
        //récupération des erreurs
	    $errors = $this->_getParam('error_handler');
        switch ($errors->type) {
            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ROUTE:
            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
                // erreur 404 -- contrôleur ou action introuvable
                // redirection vers error404Action
				$this->_forward('error404');
				
                break;
            default:	
				//ereur 500 -- Internal server error
                // redirection vers error500Action avec le détail de l'erreur
				$this->_forward('error500',null,null,array('exception'=>$errors->exception));
                break;
        }

    }
	
    public function error404Action()
    {
        //Ne pas oublier de créer le fichier error404.phtml dans votre projet.
	    $this->getResponse()->setRawHeader('HTTP/1.1 404 Not Found');
	    $this->view->message= "erreur 404 page introuvable";
    }
	
    public function error500Action()
    {
        //Ne pas oublier de créer le fichier error500.phtml dans votre projet.
	    $exception = $this->_getParam('exception');
        //Envoi le détail de l'erreur dans la vue si le paramètre display_errors a été mis a true
	    if(ini_get('display_errors')){
		    //Récupération des informations de l'erreur et envoi vers la vue.
		    $this->view->message = $exception->getMessage();
		    $this->view->trace = $exception->getTraceAsString();
	    }
		//Log du detail de l'erreur dans un fichier	
		$log =
			new Zend_Log(
				new Zend_Log_Writer_Stream(
					'../log/errors.log')
			);
		$log->debug($exception->getMessage()
				  . "\n"
				  . $exception->getTraceAsString());
		
	}
}

?>

Voila, l’application est prête à rediriger vos utilisateurs. N’oubliez pas de changer le paramètre display_errors lors de la mise en production ;).

Une réflexion au sujet de « Zend framework – Configurer la gestion des erreurs »

  1. C’est trop cool, ça m’a baucoup aider. Moi j’ai configurer le log dans le boostrap comme suite :
    $writer = new Zend_Log_Writer_Stream(APPLICATION_PATH.$config->logfile);
    // dans application.ini j’ai une ligne [production]: logfile = /logs/log.log
    $log = new Zend_Log($writer);
    Zend_Registry::set(‘log’, $log);

    dans le fichier ErrorController et partout où j’ai besoin du log je recupère : $log=Zend_Registry::get(‘log’);

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Manipuler les utilisateurs et groupes sous Linux

Petit mémo sur la gestion des utilisateurs et groupes sous Linux.

Afficher les groupes d’un utilisateur:

groups user
#Affiche les groupes dont l’utilisateur "user" est membre.

Afficher les membres d’un groupe:

members group
#Affiche utilisateurs membres du groupe "group".

Ajouter un utilisateur à un groupe:

usermod -a -G group user
#Ajoute l'utilisateur "user" au groupe "group".

Comment supprimer un utilisateur d’un groupe:

gpasswd -d user group
#Supprime l'utilisateur "user" du groupe "groupe".

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *