Plugin Directory

Changeset 2255724


Ignore:
Timestamp:
03/06/2020 05:01:11 PM (6 years ago)
Author:
Evigeo
Message:

Update WP Advanced Search 3.3.5

Location:
wp-advanced-search
Files:
131 added
1 deleted
11 edited

Legend:

Unmodified
Added
Removed
  • wp-advanced-search/trunk/WP-Advanced-Search-Autocompletion.php

    r1594762 r2255724  
    11<?php
     2if(!defined('ABSPATH')) exit; // Exclu en cas d'accès direct par l'URL du fichier
     3
    24// Fonction d'affichage de la page d'option pour l'autocomplétion
    35function WP_Advanced_Search_Callback_Autocompletion() {
  • wp-advanced-search/trunk/WP-Advanced-Search-Autocorrection.php

    r1594762 r2255724  
    11<?php
     2if(!defined('ABSPATH')) exit; // Exclu en cas d'accès direct par l'URL du fichier
     3
    24// Fonction d'affichage de la page d'option pour la correction automatique
    35function WP_Advanced_Search_Callback_Autocorrection() {
  • wp-advanced-search/trunk/WP-Advanced-Search-Documentation.php

    r1501541 r2255724  
    11<?php
     2if(!defined('ABSPATH')) exit; // Exclu en cas d'accès direct par l'URL du fichier
     3
    24// Fonction d'affichage de la page d'aide et de réglages de l'extension
    35function WP_Advanced_Search_Callback_Documentation() {
  • wp-advanced-search/trunk/WP-Advanced-Search-Function.php

    r1528734 r2255724  
    11<?php
     2if(!defined('ABSPATH')) exit; // Exclu en cas d'accès direct par l'URL du fichier
     3
    24/*--------------------------------------------*/
    35/*----- Fonction de gestion des extraits -----*/
  • wp-advanced-search/trunk/WP-Advanced-Search-ImportExport.php

    r2254880 r2255724  
    11<?php
     2if(!defined('ABSPATH')) exit; // Exclu en cas d'accès direct par l'URL du fichier
     3
    24// Fonction pour l'exportation (après clic sur le bouton)
    35function WP_Advanced_Search_Export() {
    4     global $wpdb, $tableName;
    5 
    6     // Nom des tables à sauvegarder
    7     $table1 = $wpdb->prefix.$tableName;
    8     $table2 = $wpdb->prefix."autosuggest";
    9     $table3 = $wpdb->prefix."autocorrectindex";
    10 
    11     // Création du dump SQL
    12     $sqlDB = mysql_dump($wpdb, DB_NAME, array($table1, $table2, $table3));
    13     $backupFile = "WP_Advanced_Search-".DB_NAME.'-'.date("d_m_Y_H\hi").".sql";
    14 
    15     // Force le téléchargement
    16     header('Content-Disposition: attachment; filename='.$backupFile);
    17     header('Content-Type: application/force-download');
    18     header('Content-type: application/octet-stream');
    19     echo $sqlDB;
     6    if(current_user_can('edit_posts')) {
     7        global $wpdb, $tableName;
     8
     9        // Nom des tables à sauvegarder
     10        $table1 = $wpdb->prefix.$tableName;
     11        $table2 = $wpdb->prefix."autosuggest";
     12        $table3 = $wpdb->prefix."autocorrectindex";
     13
     14        // Création du dump SQL
     15        $sqlDB = mysql_dump($wpdb, DB_NAME, array($table1, $table2, $table3));
     16        $backupFile = "WP_Advanced_Search-".DB_NAME.'-'.date("d_m_Y_H\hi").".sql";
     17
     18        // Force le téléchargement
     19        header('Content-Disposition: attachment; filename='.$backupFile);
     20        header('Content-Type: application/force-download');
     21        header('Content-type: application/octet-stream');
     22        echo $sqlDB;
     23    }
    2024}
    2125add_action('admin_post_db_export', 'WP_Advanced_Search_Export');
     
    2327// Fonction pour l'importation (après validation dans les options)
    2428function WP_Advanced_Search_Import() {
    25     global $wpdb, $tableName;
    26 
    27     // Nom des tables à supprimer (si ce n'est pas le cas dans le Dump)
    28     $table1 = $wpdb->prefix.$tableName;
    29     $table2 = $wpdb->prefix."autosuggest";
    30     $table3 = $wpdb->prefix."autocorrectindex";
    31     $tables = array($table1, $table2, $table3); // Tableau des tables
    32 
    33     // Fichier pour l'upload WordPress à utiliser
    34     if(!function_exists('wp_handle_upload')) {
    35         require_once(ABSPATH.'wp-admin/includes/file.php');
    36     }
    37 
    38     // Début de l'importation du fichier
    39     if(isset($_FILES['wp_advanced_search_file_import'])) {
    40        
    41 
    42         $uploadedfile = $_FILES['wp_advanced_search_file_import']; // Fichier uploadé
    43         $upload_overrides = array(
    44             'test_form' => false, // Pour WordPress
    45             'test_type' => false, // Ne pas bloquer à cause du type MIME (vérifié après)
    46         );
    47         $movefile = wp_handle_upload($uploadedfile, $upload_overrides); // Déplacement du fichier chargé
    48 
    49         // Vérification du déplacement du fichier (si OK)
    50         if($movefile && !isset($movefile['error'])) {
    51             $extension = strrchr($uploadedfile['name'], '.'); // Récupération de l'extension
    52             $mimesSQL = array("text/x-sql", "text/sql", "application/sql", "text/plain", "application/octet-stream"); // Types MIME autorisés
    53             $mime = mime_content_type($movefile['file']); // Récupération du type MIME véritable
    54 
    55             // Si le type MIME et l'extension correspondent, on continue...
    56             if(in_array($mime, $mimesSQL) && $extension == ".sql") {
    57                 // Récupération de l'URL du fichier (pour la suppression future)
    58                 $urlFile = $movefile['file'];
    59 
    60                 // Importation SQL
    61                 $sql = file($urlFile);
    62                 $cleanSQL = array(); // Tableau des requêtes SQL nettoyées
    63                 $dropTables = array();
    64                 $nb = 0;
    65                 // Nettoyage des requêtes
    66                 foreach($sql as $ligne) {
    67                     // Supprime les espaces inutiles
    68                     $ligne = trim($ligne);
    69 
    70                     // Supprime les commentaires et lignes vides inutiles
    71                     if(substr($ligne, 0, 2) == '--' || substr($ligne, 0, 2) == '/*' || $ligne == '') {
    72                         continue;
    73                     }
    74 
    75                     // Vérifie que les DROP TABLE sont bien présents (sinon erreur lors de l'importation)
    76                     if(substr($ligne, 0, 10) == 'DROP TABLE') {
    77                         $dropTables[] = $ligne;
    78                     }
    79 
    80                     // Vérifie si la ligne se termine bien comme une instruction SQL ';'
    81                     if(substr($ligne, -1, 1) != ';') {
    82                         $cleanSQL[$nb].= $ligne;
    83                         continue;
    84                     } else {
    85                         $cleanSQL[$nb].= $ligne;
    86                     }
    87                     $nb++;
     29    if(current_user_can('edit_posts')) {
     30        global $wpdb, $tableName;
     31
     32        // Nom des tables à supprimer (si ce n'est pas le cas dans le Dump)
     33        $table1 = $wpdb->prefix.$tableName;
     34        $table2 = $wpdb->prefix."autosuggest";
     35        $table3 = $wpdb->prefix."autocorrectindex";
     36        $tables = array($table1, $table2, $table3); // Tableau des tables
     37
     38        // Fichier pour l'upload WordPress à utiliser
     39        if(!function_exists('wp_handle_upload')) {
     40            require_once(ABSPATH.'wp-admin/includes/file.php');
     41        }
     42
     43        // Début de l'importation du fichier
     44        if(isset($_FILES['wp_advanced_search_file_import'])) {
     45           
     46
     47            $uploadedfile = $_FILES['wp_advanced_search_file_import']; // Fichier uploadé
     48            $upload_overrides = array(
     49                'test_form' => false, // Pour WordPress
     50                'test_type' => false, // Ne pas bloquer à cause du type MIME (vérifié après)
     51            );
     52            $movefile = wp_handle_upload($uploadedfile, $upload_overrides); // Déplacement du fichier chargé
     53
     54            // Vérification du déplacement du fichier (si OK)
     55            if($movefile && !isset($movefile['error'])) {
     56                $extension = strrchr($uploadedfile['name'], '.'); // Récupération de l'extension
     57                $mimesSQL = array("text/x-sql", "text/sql", "application/sql", "text/plain", "application/octet-stream"); // Types MIME autorisés
     58                $mime = mime_content_type($movefile['file']); // Récupération du type MIME véritable
     59
     60                // Si le type MIME et l'extension correspondent, on continue...
     61                if(in_array($mime, $mimesSQL) && $extension == ".sql") {
     62                    // Récupération de l'URL du fichier (pour la suppression future)
     63                    $urlFile = $movefile['file'];
     64
     65                    // Importation SQL
     66                    $sql = file($urlFile);
     67                    $cleanSQL = array(); // Tableau des requêtes SQL nettoyées
     68                    $dropTables = array();
     69                    $nb = 0;
     70                    // Nettoyage des requêtes
     71                    foreach($sql as $ligne) {
     72                        // Supprime les espaces inutiles
     73                        $ligne = trim($ligne);
     74
     75                        // Supprime les commentaires et lignes vides inutiles
     76                        if(substr($ligne, 0, 2) == '--' || substr($ligne, 0, 2) == '/*' || $ligne == '') {
     77                            continue;
     78                        }
     79
     80                        // Vérifie que les DROP TABLE sont bien présents (sinon erreur lors de l'importation)
     81                        if(substr($ligne, 0, 10) == 'DROP TABLE') {
     82                            $dropTables[] = $ligne;
     83                        }
     84
     85                        // Vérifie si la ligne se termine bien comme une instruction SQL ';'
     86                        if(substr($ligne, -1, 1) != ';') {
     87                            $cleanSQL[$nb].= $ligne;
     88                            continue;
     89                        } else {
     90                            $cleanSQL[$nb].= $ligne;
     91                        }
     92                        $nb++;
     93                    }
     94
     95                    // Vérifie qu'il y a les DROP TABLE pour les 3 tables de la base
     96                    if(empty($dropTables) || count($dropTables) != 3) {
     97                        foreach($tables as $table) {
     98                            $wpdb->query('DROP TABLE IF EXISTS `'.$table.'`;');
     99                        }
     100                    }
     101
     102                    // Envoi des requêtes une par une dans la BDD
     103                    foreach($cleanSQL as $query) {
     104                        $wpdb->query($query);
     105                    }
     106
     107                    // Message de validation
     108                    $msg = "validImport";
     109                } else {
     110                    $msg = "errorMime";
     111                }
     112
     113                // Supprime le fichier après l'importation (sécurité)
     114                unlink($urlFile);
     115            } else {
     116                echo $movefile['error'];
     117                if(!empty($uploadedfile['name'])) {
     118                    $msg = "errorImport";
     119                } else {
     120                    $msg = "noImport";
    88121                }
    89 
    90                 // Vérifie qu'il y a les DROP TABLE pour les 3 tables de la base
    91                 if(empty($dropTables) || count($dropTables) != 3) {
    92                     foreach($tables as $table) {
    93                         $wpdb->query('DROP TABLE IF EXISTS `'.$table.'`;');
    94                     }
    95                 }
    96 
    97                 // Envoi des requêtes une par une dans la BDD
    98                 foreach($cleanSQL as $query) {
    99                     $wpdb->query($query);
    100                 }
    101 
    102                 // Message de validation
    103                 $msg = "validImport";
    104             } else {
    105                 $msg = "errorMime";
    106122            }
    107 
    108             // Supprime le fichier après l'importation (sécurité)
    109             unlink($urlFile);
    110         } else {
    111             echo $movefile['error'];
    112             if(!empty($uploadedfile['name'])) {
    113                 $msg = "errorImport";
    114             } else {
    115                 $msg = "noImport";
    116             }
    117         }
    118     }
    119 
    120     // Redirection avec message en notice
    121     $url = add_query_arg('message', $msg, urldecode(wp_get_referer()));
    122     wp_safe_redirect($url);
     123        }
     124
     125        // Redirection avec message en notice
     126        $url = add_query_arg('message', $msg, urldecode(wp_get_referer()));
     127        wp_safe_redirect($url);
     128    }
    123129}
    124130add_action('admin_post_db_import', 'WP_Advanced_Search_Import');
  • wp-advanced-search/trunk/WP-Advanced-Search-Includes.php

    r2242519 r2255724  
    11<?php
     2if(!defined('ABSPATH')) exit; // Exclu en cas d'accès direct par l'URL du fichier
     3
    24/*--------------------------------------------*/
    35/*--------- Fonction d'autocomplétion --------*/
  • wp-advanced-search/trunk/WP-Advanced-Search-Options.php

    r1501541 r2255724  
    11<?php
     2if(!defined('ABSPATH')) exit; // Exclu en cas d'accès direct par l'URL du fichier
     3
    24function WP_Advanced_Search_FullText() {
    35    global $wpdb, $tableName;
  • wp-advanced-search/trunk/WP-Advanced-Search-Pagination.php

    r1501541 r2255724  
    11<?php
     2if(!defined('ABSPATH')) exit; // Exclu en cas d'accès direct par l'URL du fichier
     3
    24// Fonction d'affichage de la page d'aide et de réglages de l'extension
    35function WP_Advanced_Search_Callback_Pagination() {
  • wp-advanced-search/trunk/WP-Advanced-Search-Styles.php

    r1501541 r2255724  
    11<?php
     2if(!defined('ABSPATH')) exit; // Exclu en cas d'accès direct par l'URL du fichier
     3
    24// Fonction d'affichage de la page d'aide et de réglages de l'extension
    35function WP_Advanced_Search_Callback_Styles() {
  • wp-advanced-search/trunk/WP-Advanced-Search.php

    r2254880 r2255724  
    55Description: Moteur de recherche avancé pour WordPress à la place du moteur initial (mise en surbrillance, trois types de recherche, styles, paginations, algorithme de pertinence optionnel...). (<em>Plugin adds a advanced search engine for WordPress with a lot of options (three type of search, bloded request, three method for pagination, relevancy algorithm...</em>).
    66Author: Mathieu Chartier
    7 Version: 3.3.4
     7Version: 3.3.5
    88Author URI: http://blog.internet-formation.fr
    99Text Domain: wp-advanced-search
     
    1111*/
    1212
     13if(!defined('ABSPATH')) exit; // Exclu en cas d'accès direct par l'URL du fichier
     14
    1315// Instanciation des variables globales
    1416global $wpdb, $table_WP_Advanced_Search, $tableName, $WP_Advanced_Search_Version;
     
    1719
    1820// Version du plugin
    19 $WP_Advanced_Search_Version = "3.3.4";
     21$WP_Advanced_Search_Version = "3.3.5";
    2022
    2123function WP_Advanced_Search_Lang() {
    22     load_plugin_textdomain('wp-advanced-search', false, dirname(plugin_basename( __FILE__ )).'/lang/');
     24    // load_plugin_textdomain('wp-advanced-search', false, dirname(plugin_basename( __FILE__ )).'/lang/');
     25    load_plugin_textdomain('wp-advanced-search', false, basename(dirname( __FILE__ )).'/lang/');
    2326}
    2427add_action('plugins_loaded', 'WP_Advanced_Search_Lang' );
  • wp-advanced-search/trunk/readme.txt

    r2254880 r2255724  
    77License: GPLv2 or later
    88Requires at least: 2.5
    9 Tested up to: 5.2.3
    10 Stable Tag: 3.3.4
     9Tested up to: 5.3.2
     10Stable Tag: 3.3.5
    1111
    1212"WP-Advanced-Search" est un moteur de recherche complet et puissant pour WordPress enti&egrave;rement modulable (WP-Advanced-Search is a complete and powerful search engine for WordPress, fully scalable).
     
    8989== Changelog ==
    9090
    91 = Version 3.3.4 (05/03/2020) =
     91= Version 3.3.5 (06/03/2020) =
    9292- Correction d'une faille de s&eacute;curit&eacute; &agrave l'aide de Florian Hauser de www.code-white.com (Fix a security breach using Florian Hauser from www.code-white.com)
    9393
Note: See TracChangeset for help on using the changeset viewer.