Sauvegarde de la base de données WP

·

·

Sauvegarde de la base de donnĂ©es WP : solution rapide

Veuillez noter que ce plugin n’est plus pris en charge. Les versions rĂ©centes du  plugin WordPress Database Backup  ont corrigĂ© le problème que ce correctif temporaire rĂ©solvait. Ce plugin restera uniquement pour les utilisateurs qui ne souhaitent pas mettre Ă  jour.

Le plugin WordPress, WordPress Database Backup par Austin Matzko est l’un des plugins de sauvegarde les plus intuitifs actuellement disponibles et sans avertissement sĂ©vère pour effrayer les âmes sensibles, il s’est imposĂ© comme un outil très efficace et utile. Cependant, un petit problème existe pour les utilisateurs de WordPress 1.9.1 – 2.8 dans lequel le menu de navigation a tout simplement disparu. Cela s’applique uniquement Ă  WordPress Database Backup version 2.2.2. Le plug-in fonctionne correctement s’il est configurĂ© avant la mise Ă  niveau, mais ne fournit plus un moyen simple d’apporter des modifications ou de forcer une sauvegarde manuelle. Nous savons que nos clients avaient besoin d’un accès immĂ©diat et nous avons donc créé une solution rapide et fourni un tĂ©lĂ©chargement jusqu’Ă  ce que le problème soit corrigĂ© par l’auteur.

Bien que le problème soit un manque de capacitĂ©s de gestion, nous aborderons deux modifications dans ce didacticiel. La première modification consiste Ă  redĂ©couvrir et Ă  dĂ©placer le menu vers une position plus appropriĂ©e dans la liste dĂ©roulante Paramètres et la deuxième modification consistera Ă  accorder des autorisations Ă  des utilisateurs autres que l’administrateur.

TÉLÉCHARGER LE PLUGIN

Instructions pour la mise Ă  jour

Afin d’accĂ©der Ă  la page des paramètres du plugin, nous allons dĂ©placer le menu en modifiant le page_hook actuel de “add_management_page” Ă  l’une des nombreuses autres options disponibles (voir Ajout du codex des menus d’administration ) fournies par WordPress pour plus d’informations.

Redécouvrir et déménager

Pour nos besoins, nous allons le dĂ©placer vers le menu dĂ©roulant Paramètres en utilisant “add_options_page”. Commencez par localiser le fichier “wp-db-backup.php” et recherchez la ligne de code suivante Ă  593 :

function admin_menu() {
  $_page_hook = add_management_page(__('Backup','wp-db-backup'), __('Backup','wp-db-backup'), 'import', $this->basename, array(&$this, 'backup_menu'));
    add_action('load-' . $_page_hook, array(&$this, 'admin_load'));
    if ( function_exists('add_contextual_help') ) {
    $text = $this->help_menu();
    add_contextual_help($_page_hook, $text);
   }
  }

et modifiez-le de “add_management_page” Ă  “add_options_page”, ce qui le dĂ©placera du menu dĂ©roulant Modifier vers le menu dĂ©roulant Paramètres, aidant Ă  garder la structure du menu propre et organisĂ©e.

function admin_menu() {
  $_page_hook = add_options_page(__('Backup','wp-db-backup'), __('Backup','wp-db-backup'), '1', $this->basename, array(&$this, 'backup_menu'));
    add_action('load-' . $_page_hook, array(&$this, 'admin_load'));
    if ( function_exists('add_contextual_help') ) {
    $text = $this->help_menu();
    add_contextual_help($_page_hook, $text);
   }
  }

Pour terminer le dĂ©placement, localisez cette prochaine ligne de code commençant Ă  601 :

function fragment_menu() {
  $page_hook = add_management_page(__('Backup','wp-db-backup'), __('Backup','wp-db-backup'), 'import', $this->basename, array(&$this, 'build_backup_script'));
    add_action('load-' . $page_hook, array(&$this, 'admin_load'));
   }

et modifiez-le Ă  nouveau de “add_management_page” Ă  “add_options_page”.

function fragment_menu() {
  $page_hook = add_options_page(__('Backup','wp-db-backup'), __('Backup','wp-db-backup'), 'import', $this->basename, array(&$this, 'build_backup_script'));
    add_action('load-' . $page_hook, array(&$this, 'admin_load'));
   }

Ceci termine la redĂ©couverte et la relocalisation et Ă  ce stade, il n’est pas nĂ©cessaire de passer Ă  l’Ă©tape suivante pour l’accès administratif uniquement. Ă‰tant donnĂ© que nous devions accorder des autorisations Ă  l’option de sauvegarde pour tous les utilisateurs, nous allons Ă©galement le dĂ©montrer.

Accorder des autorisations

Afin d’accorder des autorisations d’utilisation, WordPress fournit une Ă©chelle mobile très intuitive et utile allant de 1 Ă  10 ainsi qu’une myriade d’autres fonctionnalitĂ©s spĂ©cifiques Ă  un niveau d’utilisateur pour dĂ©terminer l’accès qu’un utilisateur particulier peut avoir. Pour plus d’informations Ă  ce sujet, veuillez consulter le codex RĂ´les et CapacitĂ©s fourni par WordPress.

Actuellement, WordPress Database Backup utilise le rĂ´le “importation” accordant l’accès uniquement Ă  l’administrateur du site. Nous apporterons une modification mineure pour accorder l’accès Ă  tous sauf aux abonnĂ©s en utilisant “level_1”. Localisez la fonction suivante commençant Ă  592 :

function admin_menu() {
  $_page_hook = add_management_page(__('Backup','wp-db-backup'), __('Backup','wp-db-backup'), 'import',

et remplacez “import” par “level_1”.

function admin_menu() {
  $_page_hook = add_options_page(__('Backup','wp-db-backup'), __('Backup','wp-db-backup'), 'level_1',

Ensuite, localisez la fonction suivante Ă  partir de la ligne 601 :

function fragment_menu() {
  $page_hook = add_management_page(__('Backup','wp-db-backup'), __('Backup','wp-db-backup'), 'import',

et modifiez Ă  nouveau “import” en “level_1”.

function fragment_menu() {
  $page_hook = add_management_page(__('Backup','wp-db-backup'), __('Backup','wp-db-backup'), 'level_1',

Pour complĂ©ter les autorisations d’accès utilisateur, recherchez ce qui suit Ă  la ligne 1389 :

if ( ( $this->wp_secure('fatal', $loc) ) && current_user_can('import') )
  $can = $this->verify_nonce($_REQUEST['_wpnonce'], $this->referer_check_key, $loc);

et remplacez “import” par “level_1”.

if ( ( $this->wp_secure('fatal', $loc) ) && current_user_can('level_1') )
  $can = $this->verify_nonce($_REQUEST['_wpnonce'], $this->referer_check_key, $loc);

Veuillez noter que n’importe quel accès de rĂ´le ou de capacitĂ© peut ĂŞtre utilisĂ©, nous avions simplement besoin de ce rĂ´le particulier.