9782842282431 9782842282431

Benoît Guillaume

Mon site perso, mes livres

Fonctionalités implémentées

  • Ajout des images sur les derniers livres & auteurs
  • Ajout du livre en cours de lecture
  • Administration des livres
  • Ajout d'un livre aléatoire dans la bannière
  • Ajout d'un flux rss
  • Ajout de ShareThis sur les news
  • Ajout de Zend_Captcha_Image sur les commentaires
  • Ajout de SOUNDEX dans la recherche de livres
  • Ajout de commentaires sur les news
  • Ajout de news
  • Passage de PDO à Zend_Db
  • Réintégrer la liste des livres
  • Intégréer de FCKeditor
  • Intégration de PHPMailer 2.3
  • Interface d'administration
  • Connexion à MySQL
  • Réintégration de WoT
  • Création du SiteMap
  • Url Rewrite
  • Mes sites
  • Curriculum vitæ
  • Création d'icones
  • Validations
  • Style CSS
  • Structure XHTML

To Do

  • Bannière
  • Options dans Création d'icones
  • Mettres à jours les livres lut

auto inclusion php

Le samedi 10 juillet 2010 à 12h08 - php, Zend, include
http://fr.php.net/__autoload

Comment ce passer des fonction include_once, require_once ...
Lors vous faite un new MaClass() et qu'il ne connait pas cette class, le moteur PHP appele automatiquement la fonction __autoload, qui peu ce charger de faire les include pour vous.
 	//ajouter le ou les dossier ou ce trouve vos class dans le include_path
	set_include_path(get_include_path() . PATH_SEPARATOR . '/path/to/library/');
	
	//fonction magique de chargement automatique
	function __autoload($class_name){
		$zend=explode('_',$class_name);
		//vérifie si il s'agit d'une class Zend 
		if(count($zend)>1 && $zend[0]=='Zend'){
			$path="";
			foreach($zend as $file){
				if($path) $path.='/';
				$path.=$file;
			}
			include_once $path. '.php';
		}else{//sinon inclusion directe
    		include_once CST_current."class/".$class_name . '.class.php';
		}
	} 

 Ajouter un commentaire

Utiliser Zend_Captcha_Image
<?php
	//initialise le captcha
	$captcha = new Zend_Captcha_Image(array(  
		'font' => realpath('images/fonts_defaut/arial.ttf'),
		'ImgDir' => realpath('images/captcha'),
		'WordLen' => 3,
		'Width' => 100,
		'dotNoiseLevel' => 40,
		'lineNoiseLevel'=> 3,
		'ImgAlt' => 'Captcha'
	));
	
	//si une insertion demandée
	if(!empty($_POST['ajouterComment'])){
	
		//vérifie la validité du captcha entrée
		if ($captcha->isValid($_POST['captcha'])) {  
			
			$captcha_ok=true;
			//faire l'insertion
			
			//redirigé vers la page d'affichage
			header("HTTP/1.0 302 Found");
			header('Location: /Index:'.$_POST['id_news']);
			
		}else{
			$captcha_ok=false;
		}
		
		//générer l'image
		$captcha_id = $captcha->generate();
	}
?>


//le formulaire ici

//afficher l'image
<?php echo $captcha->render(new Zend_View());?>

//demander le résultat
<input id="captcha" type="text" name="captcha[input]" />

//envoyer en cacher la session d'image générer
<input type="hidden" name="captcha[id]" value="<?php echo $captcha_id;?>" />

//afficher une erreur si le mauvais captcha à été entrée
<?php if(!$captcha_ok) echo "Erreur de Captcha";?>

 Ajouter un commentaire
 Ca vous est déjà arrivé de supprimer par accident le raccourci "Afficher le bureau" dans XP ou Vista.
Et pour le recréer c'est simple : créer un fichier Bureau.scf et copier dedans le code :
[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop

 Ajouter un commentaire

Méthode 1

Créer un fichier css.php
<?php
if(strstr($_SERVER['HTTP_ACCEPT_ENCODING'],'gzip'))
ob_start ("ob_gzhandler"); //activé la compression si disponible
 
header("Content-type: text/css; charset=utf-8");
include_once(CST_current."styles/base.css");
include_once(CST_current."styles/modele09.css");
 
//afficher chaque fichier
include_once(CST_current."styles/perso.css");
//..
?>

l'appeler comme un fichier css normal :
<link href="styles/css.php" rel="stylesheet" type="text/css" media="all" />

Méthode 2

Créer un fichier css.php

<?php
if(strstr($_SERVER['HTTP_ACCEPT_ENCODING'],'gzip'))
ob_start ("ob_gzhandler"); //activé la compression si disponible
 
header("Content-type: text/css; charset=utf-8");
 
//ajouter un contrôle du cache
header("Cache-Control: no-cache");
header("Cache-Control: must-revalidate");
$utiliser_cache_pendant = 0 ; //délai en secondes avant expiration
//mettre à 0 si on utilise un cookie ou une variable...
$Expiration = "Expires: ".gmdate("D, d M Y H:i:s",time() + $utiliser_cache_pendant)." GMT";
header($Expiration);
//fin de la partie facultative
//partie facultative
 
//récupérer un fichier
$css=file_get_contents(CST_current.'styles/menuajax.css');
$css = ereg_replace("#BACKGROUND#", "#2c2f22", $css);
$css = ereg_replace("#BACKGROUND2#", "#cbd888", $css);
//remplacer des valeur , par exemple ici des couleurs
$css = ereg_replace("#GRIS#", "gray", $css);
 
//exécuter un traitement en fonction du navigateur
switch($ua['name']){
case 'Firefox':
$css = ereg_replace("border-radius", "/*autoremplacement*/-moz-border-radius", $css);
$css = ereg_replace("border-top-left-radius", "/*autoremplacement*/-moz-border-radius-topleft", $css);
$css = ereg_replace("border-top-right-radius", "/*autoremplacement*/-moz-border-radius-topright", $css);
$css = ereg_replace("border-bottom-right-radius", "/*autoremplacement*/-moz-border-radius-bottomright", $css);
$css = ereg_replace("border-bottom-left-radius", "/*autoremplacement*/-moz-border-radius-bottomleft", $css);
 
break;
case 'Chrome':
case 'Safari':
$remplacement="
/*autoremplacement*/-webkit-border-top-left-radius:\\1;
/*autoremplacement*/-webkit-border-top-right-radius:\\2;
/*autoremplacement*/-webkit-border-bottom-right-radius:\\3;
/*autoremplacement*/-webkit-border-bottom-left-radius:\\4;";
$css=ereg_replace("border\-radius *: *([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+) *(!important){0,1} *;",$remplacement,$css);
$css = ereg_replace("border-radius", "/*autoremplacement*/-webkit-border-radius", $css);
 
break;
case 'Opera':
$css = ereg_replace("border-radius", "/*autoremplacement*/-o-border-radius", $css);
break;
}
$ua = get_ua_info($_SERVER['HTTP_USER_AGENT'],false);//voire : http://sebastienguillon.com/journal/2005/10/script-php-pour-dechiffrer-les-chaines-user-agent
 
//afficher
echo $css;
?>
 
l'appeler comme un fichier css normal :
<link href="styles/css.php" rel="stylesheet" type="text/css" media="all" />

 Ajouter un commentaire

Onglets agrandir

Onglets agrandir

Le vendredi 11 juin 2010 à 20h10 - xhtml, css, onglet
Le code HTML :
<div class="cacheonglet"></div> 
<div class="growonglet" onclick="javascript:grow(this.parentNode)"> 
<div></div> 
<div></div> 
</div> 
<div class="minonglet"  onclick="javascript:min(this.parentNode)"> 
<div></div> 
<div></div> 
</div> 
<div class="endonglet1"></div> 
<div class="endonglet2"></div>
Le Javascript :
function grow(node){
if(!node.className || node.className=="min")
node.className="max";
else node.className="";
}
function min(node){
if(!node.className || node.className=="max")
node.className="min";
else node.className="";
}
Et le CSS
pour les border-radius il faut ajouter l'équivalent avec -moz-border-radius pour firefox et  et -webkit-border-radius pour safari et chrome (la dernière version de chrome semble supporter directement la propriété css3, de même que opera)
 

 Ajouter un commentaire
- - - admin