Loin d'être inactif, je consacre mes temps libres à l'élaboration de la refonte de ce site en réalisant un CMS maison.
La partie "backend" avance à grand pas et sera bientôt pleinement opérationnel.
A l'opposée, la partie "frontend" n'est même pas commencée mais je planche déjà sur certains éléments notamment leur rendu.
En partant de l'article de Jay Salvat : Les solutions pour centrer horizontalement et verticalement en CSS indiquant les différentes méthodes CSS pour centrer horizontalement et verticalement un élément HTML, j'ai eu envie de le reproduire en jQuery et ainsi de ne plus avoir la contrainte CSS de connaître à l'avance les dimensions de l'objet à positionner.
Avant toute chose, je vous conseille de (re)lire cet article : Les solutions pour centrer horizontalement et verticalement en CSS .
Pour déterminer, le centrage à appliquer j'ajoute un attribut "jq_align" aux élément HTML, cet attribut peut prendre les valeurs suivantes :
- h : centrage horizontal
- v : centrage vertical
- both : centrage horizontal et vertical
Aujourd'hui, je vais vous proposer une petite classe utile.
Elle ne révolutionne rien et n'a rien de bien compliquer, je ne m'étendrais donc pas sur les explications.
Objectif
La classe Assert permet de mettre en place le principe des assertions du C++.
Une assertion est un prédicat vérifiant une expression ou des critères devant toujours être rempli au moment où on déclenche la vérification, si le prédicat se revèle faux il faut alors arrêter l'exécution du programme.
Régulièrement dans mon code, j'effectue plusieurs contrôles et si la vérification échoue je lève une exception :
- contrôle du type des variables passées en paramètre des fonctions
- code retour d'un appel de méthode
- présence d'un élément dans un tableau
J'en avais un peu marre de toujours recopier ces contrôles surtout avec le lancement de l'exception, j'ai donc voulu mutualiser ce traitement en reprenant le concpets des Assert() du C++. [Lire la suite...]
Aujourd'hui, je vais vous proposer un snippet issu de mes recherches sur la confection de carte en vue 2D isométrique.
N'étant pas doué pour les logiciels graphiques du style Gimp ou PhotoShop, j'étais bien en peine de réaliser des tuiles 2D isométriques rien que pour mes tests ou recherches sur le fonctionnement des cartes dans un jeu.
Même des recherches d'image sous google ne ramenaient pas toujours quelque chose d'intéressant.
Par contre, il y a énormément de ressource disponible pour des tuiles 2D planes.
Connaissant la méthode pour passer d'une tuile 2D plane à une tuile 2D isométrique, je me suis mis au travail pour réaliser un bout de code réalisant la transformation.
Pour rappel, cette méthode consiste à appliquer une rotation de 45° de l'image d'origine puis à diviser la hauteur par 2.
Avant toute chose, posons le contexte qui a conduit à cette astuce.
Je venais de commencer un nouveau projet en PHP et l'une des premières choses que j'avais réalisé était le traitement des exceptions afin que celles-ci soient correctement tracées et, selon la criticité, arrêtent proprement le traitement.
Dans la foulée, je venais de finir de coder la fonction __autoload() de la manière suivante :
function __autoload($class)A
{
if( is_file($GLOBALS['obj_path'].'Controller/'.$class.'.php' ) ) require_once($GLOBALS['obj_path'].'Controller/'.$class.'.php' );
else if( is_file( $GLOBALS['obj_path'].'Model/'.$class.'.php' ) ) require_once($GLOBALS['obj_path'].'Model/'.$class.'.php' );
else if( is_file( $GLOBALS['obj_path'].'View/'.$class.'.php' ) ) require_once($GLOBALS['obj_path'].'View/'.$class.'.php' );
else if( is_file( $GLOBALS['obj_path'].'Util/'.$class.'.php' ) ) require_once($GLOBALS['obj_path'].'Util/'.$class.'.php' );
else throw new Exception('Unknown Class ['.$class.']',0001);
}
[Lire la suite...]
Pour continuer avec jQuery, j'essaie au fur et à mesure d'étendre des bouts de code et voir s'ils peuvent devenir des plugins à part entière.
Sur un de me site, j'utilisais jQuery pour rechercher les liens externes à mon site et ajouter à côté de ces liens une petite icône permettant d'ouvrir le lien dans une nouvelle fenêtre.
$(document).ready(function()
{
$("a[@href^=\"http\"]").each(function(i){$(this).not("[@href*=\""+document.domain+"\"]").not(":has(img)").after("
");});
}
);
[Lire la suite...]



