// ================================================================ // Regles de detection non_conforme (wsc_nc_rules) // ================================================================ function wsc_nc_rules_default(): array { return [ [ 'id' => 1, 'champ' => 'contenu', 'pattern' => '```', 'position' => 'debut', 'label' => 'Code Markdown brut', ], ]; } // AJAX : sauvegarder les regles nc add_action( 'wp_ajax_wsc_save_nc_rules', function() { check_ajax_referer( 'wsc_ajax', 'nonce' ); if ( ! current_user_can('manage_options') ) wp_send_json_error(['message' => 'Non autoris\u00e9']); $posted = json_decode( stripslashes( $_POST['nc_rules'] ?? '[]' ), true ); if ( ! is_array($posted) ) wp_send_json_error(['message' => 'Donn\u00e9es invalides']); $saved = []; $champs_valides = [ '*', 'slug', 'titre', 'balise-title', 'meta-desc', 'description', 'extrait', 'contenu' ]; $positions_valides = [ 'debut', 'partout' ]; foreach ( $posted as $i => $rule ) { $champ = sanitize_text_field( $rule['champ'] ?? '' ); $pattern = sanitize_text_field( $rule['pattern'] ?? '' ); $position = sanitize_text_field( $rule['position'] ?? 'partout' ); $label = sanitize_text_field( $rule['label'] ?? '' ); if ( empty($pattern) ) continue; if ( ! in_array($champ, $champs_valides, true) ) $champ = '*'; if ( ! in_array($position, $positions_valides, true) ) $position = 'partout'; $saved[] = [ 'id' => $i + 1, 'champ' => $champ, 'pattern' => $pattern, 'position' => $position, 'label' => $label ]; } update_option( 'wsc_nc_rules', $saved, false ); wp_send_json_success([ 'message' => 'R\u00e8gles non-conformes sauvegard\u00e9es.', 'rules' => $saved ]); }); // AJAX : reinitialiser les regles nc add_action( 'wp_ajax_wsc_reset_nc_rules', function() { check_ajax_referer( 'wsc_ajax', 'nonce' ); if ( ! current_user_can('manage_options') ) wp_send_json_error(['message' => 'Non autoris\u00e9']); delete_option( 'wsc_nc_rules' ); wp_send_json_success([ 'message' => 'R\u00e8gles r\u00e9initialis\u00e9es.', 'rules' => wsc_nc_rules_default() ]); });
Domina el arte de comparar en francés con estructuras más sofisticadas que van más allá del simple plus...que o moins...que. Aprenderás a utilizar construcciones como d'autant plus que, plus...plus, moins...moins y otras formas complejas que enriquecerán tu expresión oral y escrita. Estas estructuras te permitirán matizar tus ideas con precisión y naturalidad, dándole mayor fluidez y elegancia a tu francés.
No hay contenido disponible.