
Source : http://chris4403.blogspot.com/2008/01/jquery-cheatsheet-wallpaper.html

Source : http://chris4403.blogspot.com/2008/01/jquery-cheatsheet-wallpaper.html
Le modèle MVC, connu par bon nombre de développeur objet, est un modèle théorique permettant de segmenter les différents parties d’une application.
Ainsi, on va pouvoir dissocier les différents couches applicatives : affichage, base de données, gestion des actions, sécurité, etc.
Le modèle MVC, c’est :
Bien que ce modèle MVC à trois couche est était très utilisé pendant des années, il est nécessaire aujourd’hui d’appliquer plus de couche afin de mieux segmenter les programmes et de pouvoir intervenir plus facilement et plus rapidement. Aussi, la segmentation par couche permet d’alléger les scripts et de rendre les bibliothèques plus légères.
Quelques sont les couches que l’on peut mettre en place ???
Et bien les voici :
Dans tous les cas, la segmentation par couche permet de segmenter les scripts, d’alléger le chargement des bibliothèques, d’éviter la redondance, et surtour de structurer les données et de diviser les différents services.
Tous le monde connait PHP 3 & 4 pour sa facilité de mise en place et sa souplesse de programmation au sein du code : le fait de pouvoir mélanger du HTML, du CSS, du JavaScript, du PHP, des connexions à MySQL, et plein d’autres protocoles est le vrai avantage de PHP.
Mais plusieurs problèmes se révèlent :
PHP 5 Objet est arrivé depuis quelques années maintenant et permet de mettre en place des scripts PHP dit « OBJET ».
Mais ….. KAICEKECEKECA ??
PHP 5 est concidéré par bon nombre de développeur comme un faut langage objet, et pourtant, il possède (surtout depuis PHP 5.3) tous les éléments propres au langage objet.
De la définition des classe, en passant par les NameSpaces, jusqu’à la sérialisation, PHP 5 est bel et bien un langage objet : de la POO.
Mais ce n’est pas tous, bien qu’il possède maintenant les avantages de l’objet, il garde bien sûr les avantages de PHP3 & 4, comme :
Certains me diront que PHP 5 est très lourd au niveau des serveurs, je leur répondrais que la lourdeur de l’objet est compensé par l’amélioration du code et de la structure des codes. Aussi, je dirai que la gestion des ressources ne passe par que par l’optimisation du code PHP mais par l’optimisation du frontend (qui représente 95 % du temps d’attente de l’utlisateur).
Maintenant qu’on a mis un peu de lumière autour de PHP 5 objet, on va pouvoir voir quelques petits scripts fort sympathique :
Comme promis, voilà la suite sur jQuery et ses plugins.
Dans ce billet, nous allons abordé le fameux plugin « datePicker », plugin permettant de gérer facilement un calendrier JavaScript.
Pour cela, il vous faut :
- le moteur de script jQuery : jQuery 1.3.2 min
- le plugin datePicker : datePicker
- le patch français : datePicker-fr
- le style css : css-datePicker
Cette version de datePicker est modifié afin de faciliter son utilisation. Les paramètres du datePicker sont « francisé ».
La première des choses à faire, c’est de place les include HTML JavaScript dans la balise head, ou mieux, en bas de page (afin d’optimiser le chargement de la page).
<script type="text/javascript" src="ui.datepicker.js" mce_src="ui.datepicker.js"></script>
<script type="text/javascript" src="ui.datepicker-fr.js" mce_src="ui.datepicker-fr.js"></script>
Le css, quant à lui, doit être inclu dans le header HTML :
<link type="text/css" rel="stylesheet" href="ui.datePicker.css" mce_href="ui.datePicker.css" />
Pour ce qui est du code HTML à mettre en place :
<input type="text" name="maDate" id="maDate" class="date_input" value="" />
Le code JavaScript permettant l’initialisation du calendrier datePicker :
jQuery(document).ready(function() {
jQuery.datepicker.setDefaults(jQuery.datepicker.regional['fr']);
jQuery("#maDate").mousedown(function(){
jQuery("#maDate").datepicker('change', {dateFormat: 'dd-mm-yy', firstDay:1 }).attr("readonly","readonly");
});
});
Cette ligne permet d’attendre la fin du chargement de la page pour lancer le code JavaScript suivant :
jQuery(document).ready(function() {});
Cette ligne permet de spécifier le fichier de langue utilisé :
jQuery.datepicker.setDefaults(jQuery.datepicker.regional['fr']);
Cette ligne permet de définir les paramètres du calendrier lorsqu’il y aura un clic dans le champ de saisie :
jQuery("#maDate").mousedown(function(){
jQuery("#maDate").datepicker('change', {dateFormat: 'dd-mm-yy', firstDay:1 }).attr("readonly","readonly");
});
Ici, dans notre cas, le champ de saisie »maDate » devient seulement lisible, et ne peut être modifié manuellement.
La date affiché est au format français, mais peut être modifié dans le paramètrage du datePicker.
Si vous souhaitez ajouter des bornes au datePicker, il suffit, dans les paramètres, d’ajouter ces codes (nombre en jours par rapport à today) :
minDate:'-36500', maxDate:'+36500'
En PHP, lorsque vous récupérer la date français, il vous faut la reconvertir en date US (pour MySQL par exemple), vous pouvez utiliser cette petite fonction :
static function dateFr($sDate, $sType=''){
@date_default_timezone_set('Europe/Paris');
switch($sType){
case "fr2my" : // renvoi une date simple en anglais
$sDateReturn = ereg_replace('^([0-9]{1,2})-([0-9]{1,2})-([0-9]{2,4})$', '\\3-\\2-\\1', $sDate);
break;case "my2fr": // renvoi une date simple en français
if(!empty($sDate)&&$sDate!="0000-00-00")
$sDateReturn = substr($sDate,8,2).'-'.substr($sDate,5,2).'-'.substr($sDate,0,4);
else
$sDateReturn = '';
break;case "my2frTxt" : // renvoi une date simple texte en français
if(!empty($sDate)&&$sDate!='0000-00-00'){
setlocale(LC_TIME, "fr_FR@euro","fr_FR","fr","FR");
$sDateReturn=strftime("%d %B %Y",strtotime($sDate));
}
else
$sDateReturn = '';
break;
case « my2frTxtShort » : // renvoi une date simple texte en français
if(!empty($sDate)&&$sDate!=’0000-00-00′){
setlocale(LC_TIME, « fr_FR@euro », »fr_FR », »fr », »FR »);
$sDateReturn=strftime(« %d %b %Y »,strtotime($sDate));
}
else
$sDateReturn = »;
break;
case « my2frTxtTime » : // renvoi une date et l’heure texte en français (avec le « à »)
if(!empty($sDate)){
setlocale(LC_TIME, « fr_FR@euro », »fr_FR », »fr », »FR »);
$sDateReturn=strftime(« %d %B %Y à %H:%M »,strtotime($sDate));
}
else
$sDateReturn = $sDate;
break;
case « my2frTxtFull » : // renvoi une date et l’heure basique en français (sans le « à »)
if(!empty($sDate)){
setLocale(LC_TIME, « fr_FR@euro », »fr_FR », »fr », »FR »);
$sDateReturn = strftime(« %d %B %Y %H:%M:%S »,strtotime($sDate));
}
else
$sDateReturn = $sDate;
break;
case « frTxt » : // renvoi la date/time actuelle dont les critères sont spécifiés dans $sDate
setLocale(LC_TIME, « fr_FR@euro », »fr_FR », »fr », »FR »);
$sDateReturn = strftime($sDate,time());
break;
case « my2Picker » : // renvoi une date formaté pour le datePicker new Date(2005, 1 – 1, 26)
list($yTmp,$mTmp,$dTmp)=explode(« - »,$sDate);
$dateTmp=mktime(0,0,0,$mTmp,($dTmp+1),$yTmp);
$sDateReturn= »new Date(« .date(‘Y’,$dateTmp). », « .(date(‘n’,$dateTmp)-1). », « .date(‘d’,$dateTmp). ») »;
break;
default: // n’effectué aucune opération sur la date
if($sDate==’0000-00-00′){
$sDateReturn = »;
}
else{
$sDateReturn = $sDate;
}
break;
}// end swicth
return $sDateReturn;
}//end function dateFr
Il vous suffira d’appeler comme ceci :
dateFr($_REQUEST['maDate'], 'fr2my');
En espérant avoir apporté un peu d’aide …. vous pouvez toujours laisser vos commentaires, réflexion, et correction !