Fonctions

Le module Search de Drupal combiné avec le module Node indexe, par défaut, tous les types de contenus. Maintenant si on veut choisir parmi les types de node à indexer, voici deux solutions que j'utilise pour choisir les types de noueds à indexer:

- La première consiste à activer le module search_config, mais cette solution est pratique si on veut utiliser que le module search et ces fonctions de recherche.

Afin de vérifier les e-mails laisser par les visiteurs dans un formulaire, nous utilisons les expressions régulières pour faire le test dont voici un exemple de fonction (CMS Drupal):

<?php
function valid_email_address($mail) {
  $user = '[a-zA-Z0-9_\-\.\+\^!#\$%&*+\/\=\?\`\|\{\}~\']+';
  $domain = '(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.?)+';
  $ipv4 = '[0-9]{1,3}(\.[0-9]{1,3}){3}';
  $ipv6 = '[0-9a-fA-F]{1,4}(\:[0-9a-fA-F]{1,4}){7}';
 
  return preg_match("/^$user@($domain|(\[($ipv4|$ipv6)\]))$/", $mail);
}
?>

Jusqu'à maintenant, impossible de supprimer la totalité d'un dossier en PHP tant que ce dernier n'est pas vide (aucun sous dossier ou fichier)

Voici une petite fonction que j'utilise pour contourner ce manque :

<?php
function supprimer_dossier($directory, $empty = false) {
    if(substr($directory,-1) == "/") {
        $directory = substr($directory,0,-1);
    }
 
    if(!file_exists($directory) || !is_dir($directory)) {
        return false;
    } elseif(!is_readable($directory)) {
        return false;
    } else {

Sous PHP il manque parfois des fonctions très utiles comme pour copier un dossier avec tout son contenu.

Voici une petite fonction que j'utilise pour contourner ce manque :

<?php
function copy_dir ($dir2copy,$dir_paste) {
  // On vérifie si $dir2copy est un dossier
  if (is_dir($dir2copy)) {
 
    // Si oui, on l'ouvre
    if ($dh = opendir($dir2copy)) {     
      // On liste les dossiers et fichiers de $dir2copy
      while (($file = readdir($dh)) !== false) {
        // Si le dossier dans lequel on veut coller n'existe pas, on le créé

Pour récuperer la liste des thèmes activés sur votre site Drupal, il existe une function Drupal qui retourne les données de chacun dont voici le nom :

<?php system_theme_data(); ?>

Voici un extrait du retrour:

Array
(
    [minnelli] => stdClass Object
        (
            [filename] => themes/garland/minnelli/minnelli.info
            [basename] => minnelli.info
            [name] => minnelli
            [info] => Array
                (
                    [name] => Minnelli