HowTo – Mon animation flash apparait au dessus de ma lightbox

Le problème est connu, il ne vient pas de votre lightbox – overlay mais plutôt de votre animation flash.
Voir ci contre :
http://kb2.adobe.com/cps/155/tn_15523.html
La solution consiste a mettre un fond transparent à votre (animation swf, player ..) en utilisant ce code :

  1. Mettre ce code dans la balise OBJECT:
    <param name="wmode" value="transparent">
  2. Mettre ce parametre dans la balise EMBED:
    wmode="transparent"

HowTo – Récupérer votre avatar Xbox 360

Avatar de Hotfirenet Xbox 360

La petite astuce du jour consiste à récupérer son avatar Xbox 360, pour cela il suffit tout simplement de vous rendre à cette adresse :
http://avatar.xboxlive.com/avatar/GamerTag/avatar-body.png.
GamerTag : Correspond a votre identifiant joueur.

HowTo – Récupérer les vidéos de youtube, dailymotion, viméo ou encore Facebook

Bon je sais ce n’est pas nouveau d’utiliser Firefox pour récupérer les vidéos de youtube, dailymotion, viméo ou encore Facebook mais c’est plutôt un How-To pour mes connaissances.

Le petit plus c’est que c’est un screencast, donc plus vivant et qui va m’épargner plusieurs fois la même explication.

[fusion_builder_container hundred_percent= »yes » overflow= »visible »][fusion_builder_row][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »][fusion_youtube width= »640″ height= »390″/]fgbkwnhqVvk

En plus c’est la classe dans le screencast on voit que mon pc a des problèmes de ralentissement lol ^^.
Ps: ce post est dédié à ma mère.[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

NPDS – Connaitre le nombre de MI par membre

Voici la problématique, Oim m’a demandé un peu d’aide pour un module de gestion de la messagerie interne qu’il réalise pour NPDS.

Cette messagerie est relativement consommatrice en terme de stockage de ces messages interne, surtout lorsque l’on approche les 6000 membres.

Le but de ce script est de savoir donc le nombre de message archivés par le membre, et le nombre de message qu’il a reçu, puis de faire un des messages et de les classer par ordre décroissant.

Ce script utilise des fonctions PHP, tel que: array, arsort, reset, key, next …

Voici le résultat :

[fusion_builder_container hundred_percent= »yes » overflow= »visible »][fusion_builder_row][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »][php]
<?php
/************************************************************************/
/* Script rélisé par Johan VIVIEN (Hotfirenet)
/* Fini le 24 octobre 2008
/* hotfirenet@gmail.com
/* =======================================================================
/*
/* Ce script permet de connaitre le nombre de message archivé et reçu par membre
/* Sur une idee de Oim …
/*
/* This program is free software. You can redistribute it and/or modify
/* it under the terms of the GNU General Public License as published by
/* the Free Software Foundation; either version 2 of the License.
/************************************************************************/
$connect = mysql_connect(‘localhost’, ‘root’,  »);
$selectDB = mysql_select_db(‘lansou’, $connect);

$nbreq = 0;

function sql_query($sql) {
global $nbreq;

$execQuery = mysql_query($sql);
$nbreq++;

return ($execQuery);
}

?>
<html>
<head>
<style>
.rouge {
color: #ff0000;
}
</style>
</head>
<body>
<?php
//On execute la requete, puis on rempli un tableau assossiatif en utilisant comme index l’id
$selectNbMsgFrom = ‘SELECT to_userid, COUNT(*)
FROM priv_msgs
WHERE type_msg = 0
GROUP BY (to_userid)’;
$execNbMsgFrom = sql_query($selectNbMsgFrom);
$tabNbMsgFrom = array();
while($resultNbMsgFrom = mysql_fetch_row($execNbMsgFrom)) {
$tabNbMsgFrom[$resultNbMsgFrom[0]] = $resultNbMsgFrom[1];
}

//Pareil que plus au mais pour connaitre le nombre de message envoy&amp;eacute;
$selectNbMsgTo = ‘SELECT from_userid, COUNT(*)
FROM priv_msgs
WHERE type_msg = 1
GROUP BY (from_userid)’;
$execNbMsgTo = sql_query($selectNbMsgTo);
$tabNbMsgTo = array();
while($resultNbMsgTo = mysql_fetch_row($execNbMsgTo)) {
$tabNbMsgTo[$resultNbMsgTo[0]] = $resultNbMsgTo[1];
}
//Je liste les membres j’associe l’ui en index et le name en valeur
$selectMembre = sql_query(‘SELECT uid, uname FROM users’);
$tabListeMembre = array();
while($listeMembre = mysql_fetch_row($selectMembre)) {
$tabListeMembre[$listeMembre[0]] = $listeMembre[1];
}

echo "&lt;br/&gt;nous faisons pour ce resultat $nbreq requetes<br /><br />";

//Je defini mon tableau et ma variable $i a 0
$tabFinal = array();
$i = 0;
// je commence ma boucle, et je creer un tableau avec mes valeurs
foreach($tabListeMembre as $idMembres => $nomMembres) {
$total = $tabNbMsgTo[$idMembres] + $tabNbMsgFrom[$idMembres];
//Si le membre n’a aucun message je passe son tour
if($total == 0)
continue;

//je rempli mon tableau
$i++;
$tabFinal[‘uname’][$i] = $nomMembres;
$tabFinal[‘msgFrom’][$i] = $tabNbMsgFrom[$idMembres];
$tabFinal[‘msgTo’][$i] = $tabNbMsgTo[$idMembres];
$tabFinal[‘total’][$i] = $total;
}

//faisont un tri sur letableau
arsort($tabFinal[‘total’]);

//Maintenant que j’ai realiser tous mes traitements, j’affiche mon tableau en tenant compte de la colonne total en utilisant comme clé cette colonne …
for(reset($tabFinal[‘total’]); $j = key($tabFinal[‘total’]); next($tabFinal[‘total’])) {
$class = $tabFinal[‘total’][$j] >= 20 ? ‘ class="rouge"’ :  »;

echo ‘<p ‘.$class.’>’.$tabFinal[‘uname’][$j].’ : &amp;agrave; ‘ . $tabFinal[‘msgTo’][$j] . ‘ message(s) re&amp;ccedil;u et &amp;agrave; ‘. $tabFinal[‘msgFrom’][$j] . ‘ archiv&amp;eacute;(s)&lt;br /&gt;’;
echo ‘Total de message pour ‘.$tabFinal[‘uname’][$j].’ : <b>’ . $tabFinal[‘total’][$j] . ‘</b></p><hr />’;
}

?>
</p>
</body>
</html>
[/php]

Merci Oim pour ce petit exercice, bien sympa 😉 ….[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

SQL – Injection SQL ok mais comment l’éviter avec MS SQL avec PHP?

Sous MySQL il existe la fonction mysql_escape_string ou encore mysql_real_escape_string, mais sous MS SQL avec PHP ces fonctions n’existent pas.

Voici une fonction équivalente a mysql_escape_string , mais l’une comme l’autre elles ne protègent pas les caractères % et _.

[php]
function mssql_escape_string($str) {
$str = str_replace("’"," »",$str);
$str = htmlspecialchars($str, ENT_QUOTES);
return $str;
}
[/php]

HowTo – Apache, PHP et Microsoft SQL Server

Voici quelques jours déjà que je bute sur un problème, au travail où je suis nous utilisons le SGBD Microsoft SQL Server, et nous avons des sites intranet en PHP qui tourne sous IIS, mais sur ma machine pour développer je ne me suis pas amusé à installer IIS avec PHP, mais j’utilise tout simplement WAMP (Windows Apache PHP MySQL ) .

Pour me connecter à mon SGBD par PHP, ça ne change pas c’est pareil qu’avec MySQL :

[fusion_builder_container hundred_percent= »yes » overflow= »visible »][fusion_builder_row][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »][php]
<?php
define(‘DB_NAME’, ‘mabase’);
define(‘DB_HOST’, ‘monServeur’);
define(‘DB_USER’, ‘monUser’);
define(‘DB_PASSWORD’, ‘monPass’);

$dblink = @mssql_connect(DB_HOST, DB_USER, DB_PASSWORD);

if($dblink) {
$selectdatabase = @mssql_select_db(DB_NAME, $dblink);
if(!$selectdatabase) {
echo ‘erreur lors de la selection de la bdd’;
exit;
}
} else {
echo ‘erreur de connexion a la bdd’;
exit;
}
?>
[/php]
Par contre, lorsque j’ai voulu me connecter à mon SQLEXPRESS qui se trouve sur ma machine, je n’ai jamais pu me connecter à celui-ci !!

Pourtant, mon script de connexion fonctionne bien et j’arrive à me connecter sur un serveur distant qui possède SQL Server, peut être une option n’est pas activée sur mon SQLEXPRESS ?

Après de longues recherches sur Google, j’ai finalement trouvé qu’il y a un problème avec PHP pour se connecter à un SGBD qui possède des instances …

Et oui pour accéder à mon SQLEXPRESS le chemin est bien nommachineSQLEXPRESS, SQLEXPRESS est donc une instance de du SGBD.

Du coup pour que PHP puisse se connecter il faut donc remplacer ntwdblib.DLL qui se trouve pour WAMP dans les répertoires :

  • C:wampbinapacheapache2.2.8
  • C:wampbinphpphp5.2.6
  • C:WindowsSystem32

Également pour vous connecter, il faut dans faire ceci :

[/fusion_builder_column][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »][php]
<?php
define(‘DB_NAME’, ‘mabase’);
define(‘DB_HOST’, ‘maMachine\monInstance’);
define(‘DB_USER_UTIL’, ‘monUser’);
define(‘DB_PASSWORD_UTIL’, ‘monPass’);

$dblink = @mssql_connect(DB_HOST, DB_USER, DB_PASSWORD);

if($dblink) {
$selectdatabase = @mssql_select_db(DB_NAME, $dblink);
if(!$selectdatabase) {
echo ‘erreur lors de la selection de la bdd’;
exit;
}
} else {
echo ‘erreur de connexion a la bdd’;
exit;
}

?>
[/php]

Pour télécharger la DLL Google est ton ami[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

WordPress – Utiliser l’éditeur wysiwyg de wordpress dans ses thèmes et plugins

J’ai eu besoin pour la création d’un thème wordpress de mettre en place l’éditeur avancé tiny_mce.

Après quelques recherches sur le net je suis tombé sur le site de Leeroy qui explique très bien comment le mettre en place.

Mais voici quand même un petit rappel de la procédure de mise en œuvre :

Création d’une fonction d’appel à l’éditeur :
[fusion_builder_container hundred_percent= »yes » overflow= »visible »][fusion_builder_row][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »][php]
function init_wysiwyg() {
wp_enqueue_script(‘editor’);
add_thickbox();
wp_enqueue_script(‘media-upload’);
add_action(‘admin_print_footer_scripts’, ‘wp_tiny_mce’, 25);
wp_enqueue_script(‘quicktags’);
}
[/php]
Maintenant nous allons faire appel à cette fonction directement à l’initialisation de l’administration de wordpress :
[/fusion_builder_column][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »][php]
add_action(‘admin_menu’, ‘init_wysiwyg’);
[/php]
L’appel de l’editeur se fera de cette façon :
[/fusion_builder_column][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »][php]
<?php
/* Syntaxe de la fonction the_editor()
* the_editor($content, $id = ‘content’, $prev_id = ‘title’, $media_buttons = true, $tab_index = 2)
*/
echo the_editor(null);
?>[/php]
Voici à quoi correspond les différents paramètres que peut contenir cette fonction

$content :Contient votre contenu.
$id :Le nom (et ID) du champ de l’éditeur de texte.
$prev_id :Permet de revenir à l’ID précédent des éléments du formulaire.
$media_buttons :Permet d’activer ou désactiver l’affichage des boutons (images, sons, vidéos, etc). Accepte une valeur booléenne (true || false).
$tab_index :Index de tabulation du champ de formulaire.
Maintenant la partie css :
[/fusion_builder_column][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »][css]#poststuff textarea
{
-moz-box-sizing:border-box;
border:0 none;
line-height:150%;
outline-color:-moz-use-text-color;
outline-style:none;
outline-width:medium;
padding:6px;
margin:0;
width:100%;
}[/css]
Maintenant quand on regarde de plus prés on s’aperçoit que cette méthode fait que l’éditeur est actif sur toutes les pages de l’administration et personnellement je ne trouve pas cette solution très propre.

En me penchant sur le problème j’ai trouvé la solution qui consiste tout simplement à activer l’appel de l’éditeur uniquement sur les pages du plugin ou du thème.
Mais comment faire ??

La réponse : nous allons utiliser la fonction admin_print_scripts-(page_hook) ou admin_print_scripts-(plugin_page)

Voici comment je l’ai utilisé :
[/fusion_builder_column][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »][php]
function hfn_init() {
/* Syntaxe de la fonction add_menu_page()
* add_menu_page(page_title, menu_title, capability, handle, [function], [icon_url]);
*/
$options_page = add_menu_page( ‘Admin HFN’, ‘Admin HFN’, 7, ‘hfnOptions’, ‘hfnAdmin’, get_template_directory_uri() . ‘/images/icon.png’);
/* Syntaxe de la fonction add_submenu_page()
* add_submenu_page(parent, page_title, menu_title, capability required, file/handle, [function]);
*/
$options_subPage = add_submenu_page( ‘hfnOptions’, ‘Admin HFN’, ‘Gestion de mon module’, 7, ‘hfnOptions’, ‘hfnAdmin’ );
add_submenu_page( ‘hfnOptions’, ‘Admin HFN’, ‘Gestion des menus’, 7, ‘hfnGesMenu’, ‘hfnGesMenu’ );
add_submenu_page( ‘hfnOptions’, ‘Admin HFN’, ‘Aide en ligne’, 7, ‘guide’, ‘hfnGuide’ );</code>

add_action( "admin_print_scripts-$options_subPage", ‘init_wysiwyg’ );
}

add_action(‘admin_menu’, ‘hfn_init’);
[/php]
Dans le cas ci-dessus je voulais que l’éditeur soit appelé uniquement sur la page, gestion de mon module il me suffit juste de mettre le contenu de la fonction add_submenu_page() dans ma variable $options_subPage, puis tout simplement compléter la fonction admin_print_scripts-$maVariable() en utilisant add_action().

En espérant que cet article pourra servir à d’autres personnes.[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

HowTo – Comment faire un Hard Reset ou Formater le LG KS-20 ??

Voici maintenant trois mois que j’ai mon LG KS20, je me suis dit :

« Cool un téléphone sous WINDOWS mobile je vais pouvoirinstallé pas mal de programmes !! »

Certains de ces programmes n’ont pas été très convaincant, et du coup je les aient désinstallés, mais sans jamais être sur ne plus avoir de trace dans les registres ou répertoires.

J’ai pu constater de fort ralentissement, et quelques plantages répétitifs !! Qui m’ont rapidement pris la tête du coup j’ai décidé de formater mon LG KS20, mais comment faire ??

Continuer la lecture de « HowTo – Comment faire un Hard Reset ou Formater le LG KS-20 ?? »