PHP

Drupal 7 Custom 404 Page Template

dans le tempate.php du theme, ajouter :

function THEMENAME_preprocess_page(&$variables) {   
  $status = drupal_get_http_header("status");  
  if($status == "404 Not Found") {      
    $variables['theme_hook_suggestions'][] = 'page__404';
  }
}

snippet trouvé ici : http://www.dejaaugustine.com/2011/07/drupal-7-custom-404-page-template/

et voici l'équivalent pour Drupal 6 :

function THEMENAME_preprocess_page(&$variables) {   
  if(stripos(drupal_get_headers(), "404 Not Found") !== false) {
      $variables['template_file'] = 'page-404';
  }
}

trim array

en PHP 5.2 :

function trimArray(&$input){
    return is_array($input) ? $input = array_map('trimArray', $input) : trim($input);
}
trimArray($mon_tab);

en PHP 5.3 :

array_walk_recursive($mon_tab, function (&$val) {
    $val = trim($val);
});

Tags:

[PHP] Supprimer les accents des caractères accentués

nous avons vu dans un précédent snippet comment remplacer les caractères accentués d'une chaine par leur équivalent html.

ici nous allon voir une petite fonction pour les remplacer par leurs équivalents sans les accents :)

function removeAccents($string)
    {
        return iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $string);
    }

à noter un fonctionnement bizarre sous windows, donc attention, fonctionnel sous Linux seulement.

si vous voulez un tuto complet sur le sujet, un bon article ici : http://www.weirdog.com/blog/php/supprimer-les-accents-des-caracteres-acc...

EDIT :
Après quelques tests plus poussés, iconv semble un peu à la ramasse, rien ne vaut une bonne vielle fonction maison pour faire le boulot :

function _removeAccents ($text) {
        $alphabet = array(
            'Š'=>'S', 'š'=>'s', 'Ð'=>'Dj','Ž'=>'Z', 'ž'=>'z', 'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A',
            'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E', 'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I',
            'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U', 'Ú'=>'U',
            'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B', 'ß'=>'Ss','à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'a',
            'å'=>'a', 'æ'=>'a', 'ç'=>'c', 'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'e', 'ì'=>'i', 'í'=>'i', 'î'=>'i',
            'ï'=>'i', 'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o', 'ô'=>'o', 'õ'=>'o', 'ö'=>'o', 'ø'=>'o', 'ù'=>'u',
            'ú'=>'u', 'û'=>'u', 'ý'=>'y', 'ý'=>'y', 'þ'=>'b', 'ÿ'=>'y', 'ƒ'=>'f',
        );

        $text = strtr ($text, $alphabet);

        // replace all non letters or digits by -
        $text = preg_replace('/\W+/', '-', $text);

        return $text;
    }

[PHP] vider un dossier

tout est dans le code, le fonctionne vide un dossier de tout son contenu (fichiers et dossiers), donc elle est récursive.

exemple d'utilisation :

clear_dir(realpath(dirname(__FILE__) . "/../cache"));

la fonction :

function clear_dir($dir, $delete = false) {
	$dossier = $dir;
	$dir = opendir($dossier); 
	while($file = readdir($dir)) { 
		if(!in_array($file, array(".", ".."))){
			if(is_dir("$dossier/$file")) {
				clear_dir("$dossier/$file", true);
			} else {
				unlink("$dossier/$file");
			}
			
			
		}
	} 
	closedir($dir);
	
	if($delete == true) {
		rmdir("$dossier/$file");
	}
}

[PHP] get the current URL (url de la page en cours)

public static function getCurrentUrl() {
      return (!empty($_SERVER['HTTPS']) ? "https://" : "http://" ) . $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
}

Pages

Subscribe to RSS - PHP