|
Il peut être très intéressant de pouvoir créer automatiquement les répertoires indispensables à une utilisation standard de horde/imp sans pour cela avoir recoure à l'administrateur. Imp comporte les outils necessaire a ce type d'opération ; c'est ce qu'il appel la "Maintenance". Ainsi grâce à cet outil, nous allons pouvoir créer des opérations de maintenance lors dela première connexion de l'utilisateur, ou bien, au choix a chaque fois que l'utilisateur se connect. Sur cette base, nous allons configurer une tâche de maintenance pour créer automatiquement les répertoires "trash", "drafts", "sent" et "spam" a la première connexion de n'importe quel utilisateur. Rendez-vous dans le répertoire contenant les tâches de maintenance de imp, c'est a dire : imp/lib/Maintenance Dans ce répertoire doit se trouver un sous-répertoire nommé "Task" qui contient toutes les tâches déja créé, nous allons en créer une nouvelle, nommé "create_default_folders". 1. cd imp/lib/Maintenance/Task/ 2. vi create_default_folders.php 3. Insérer le code suivant : <?php class Maintenance_Task_create_default_folders extends Maintenance_Task { function doMaintenance() { global $prefs; require_once IMP_BASE . '/lib/Folder.php'; $imp_folder = &IMP_Folder::singleton(); $folder_options = array( 'sent_mail_folder', 'drafts_folder', 'trash_folder', 'spam_folder' ); foreach ($folder_options as $this_folder) { $folder = $prefs->getValue($this_folder, true); if ($folder) { $folder = IMP::folderPref($folder, true); if (!$imp_folder->exists($folder)) { $imp_folder->create($folder, true); } } } return true; } function describeMaintenance() { return _("This process makes sure the default folders are created on your account."); } } 4. Editez le fichier : vi imp/lib/Maintenance/imp.php 5. Insérer la ligne :
'create_default_folders' => MAINTENANCE_FIRST_LOGIN, On peut remarquer ici que l'on peut choisir quand doit être effectué la tâche de maintenance : FIRST_LOGIN, EVERY, etc... 6. Editez le fichier : vi imp/config/prefs.php 7. Insérer le code :
$_prefs['create_default_folders'] = array( 'value' => 1, 'locked' => false, 'shared' => false, 'type' => 'implicit'); Et le tour est joué !
|