Linux webm007.cluster106.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
Apache
: 10.106.20.7 | : 216.73.217.26
Cant Read [ /etc/named.conf ]
eglisebaa
RED EYES BYPASS SHELL!
Terminal
Auto Root
Adminer
Backdoor Destroyer
Kernel Exploit
Lock Shell
Lock File
Create User
+ Create Folder
+ Create File
/
home /
eglisebaa /
www /
[ HOME SHELL ]
NAME
SIZE
PERMISSION
ACTION
.malware-scripts
[ DIR ]
drwxr-xr-x
.pkexec
[ DIR ]
drwxr-xr-x
GCONV_PATH=.
[ DIR ]
drwxr-xr-x
HxSEO TEAM
[ DIR ]
drwxr-xr-x
backups-malware-20260111-160302
[ DIR ]
drwxr-xr-x
wp-admin
[ DIR ]
drwx---r-x
wp-content
[ DIR ]
drwx---r-x
wp-diagnostic-20260111-153935
[ DIR ]
drwxr-xr-x
wp-includes
[ DIR ]
drwx---r-x
wp-scan-complet-20260111-154905
[ DIR ]
drwxr-xr-x
wp-surveillance
[ DIR ]
drwxr-xr-x
.htaccess
5.5
KB
-rw----r--
.htaccessOLD
5.63
KB
-rw----r--
.htpasswdOLD
68
B
-rw----r--
.red_eyes_root
0
B
-rw-r--r--
categorie-sitemap.xml
0
B
-rw----r--
cpt_services-sitemap.xml
0
B
-rw----r--
cpt_testimonials-sitemap.xml
762
B
-rw----r--
google03217d099396880d.html
53
B
-rw----r--
index.php
405
B
-rw-r--r--
index.php.backup-20260111-154245
902
B
-rw-r--r--
index.php.backup-20260111-164235
902
B
-r--r--r--
index.php.backup-20260111-164248
902
B
-r--r--r--
license.txt
19.44
KB
-rw-r--r--
message-sitemap.xml
64.31
KB
-rw----r--
orateur-sitemap.xml
2.33
KB
-rw----r--
page-sitemap.xml
2.63
KB
-rw----r--
rapport-mises-a-jour-20260114-135211.txt
3.26
KB
-rw-r--r--
readme.html
7.25
KB
-rw-r--r--
redeyes
10.99
KB
-rwxr-xr-x
robots.txt
1.27
KB
-rw----r--
serie-sitemap.xml
883
B
-rw----r--
sync-latest-message.config.json
467
B
-rw----r--
sync-latest-message.php
13.33
KB
-rw-r--r--
test.txt
4
B
-rw-r--r--
wp-activate.php
7.18
KB
-rw-r--r--
wp-blog-header.php
351
B
-rw----r--
wp-comments-post.php
2.27
KB
-rw-r--r--
wp-config-sample.php
3.26
KB
-rw-r--r--
wp-config.php
4.25
KB
-rw----r--
wp-config.php.backup-20260114-145700
4.25
KB
-rw-------
wp-cron.php
5.49
KB
-rw-r--r--
wp-links-opml.php
2.43
KB
-rw-r--r--
wp-load.php
3.84
KB
-rw-r--r--
wp-login.php
50.23
KB
-rw-r--r--
wp-mail.php
8.52
KB
-rw-r--r--
wp-settings.php
30.33
KB
-rw-r--r--
wp-signup.php
33.71
KB
-rw-r--r--
wp-sitemap.xml
0
B
-rw----r--
wp-trackback.php
5.09
KB
-rw-r--r--
xmlrpc.php
3.13
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : sync-latest-message.php
<?php /** * Script de synchronisation du bloc "Dernier message" de la page d'accueil. * Récupère le dernier message (CPT message) via REST API ou WP_Query, * puis met à jour la page d'accueil (options WordPress ou meta Elementor). * * Usage: * php sync-latest-message.php * php sync-latest-message.php --dry-run * * Config: sync-latest-message.config.json à côté de ce fichier (optionnel). */ // Prevent web execution if (php_sapi_name() !== 'cli') { die('Ce script doit être exécuté en ligne de commande (CLI).'); } $dryRun = in_array('--dry-run', $argv ?? [], true); $baseDir = dirname(__FILE__); $configFile = $baseDir . '/sync-latest-message.config.json'; // --- Config par défaut --- $config = [ 'site_url' => 'https://www.eglisebaptistefloirac.fr', 'homepage_post_id' => 126, 'mode' => 'options', // 'options' | 'elementor' 'wp_load_path' => null, // si défini, utilise WP_Query au lieu de REST 'option_keys' => [ 'title' => 'ebf_latest_message_title', 'date' => 'ebf_latest_message_date', 'reference' => 'ebf_latest_message_reference', 'orateur' => 'ebf_latest_message_orateur', 'link' => 'ebf_latest_message_link', 'url_audio' => 'ebf_latest_message_url_audio', ], 'purge_cache' => false, ]; if (is_file($configFile)) { $loaded = json_decode(file_get_contents($configFile), true); if (is_array($loaded)) { $config = array_merge($config, $loaded); } } $siteUrl = rtrim($config['site_url'], '/'); $homepagePostId = (int) ($config['homepage_post_id'] ?? 126); $mode = $config['mode'] ?? 'options'; $optionKeys = $config['option_keys'] ?? $config['option_keys']; // --- Récupération du dernier message --- $message = null; if (!empty($config['wp_load_path']) && is_file($config['wp_load_path'])) { require_once $config['wp_load_path']; $message = getLatestMessageViaWpQuery($optionKeys); } else { $message = getLatestMessageViaRest($siteUrl); } if (!$message) { echo "Erreur : impossible de récupérer le dernier message.\n"; exit(1); } echo "Dernier message récupéré : " . $message['title'] . " (" . $message['date'] . ", " . $message['orateur'] . ")\n"; if ($dryRun) { echo "[DRY-RUN] Valeurs qui seraient écrites :\n"; print_r($message); exit(0); } // --- Mise à jour de la page d'accueil --- $wpLoadPath = $config['wp_load_path'] ?? null; if (!$dryRun && empty($wpLoadPath)) { echo "Pour mettre à jour la page d'accueil, définir wp_load_path dans la config (chemin vers wp-load.php).\n"; exit(1); } if (!$dryRun && $wpLoadPath && is_file($wpLoadPath) && !function_exists('update_option')) { require_once $wpLoadPath; } if ($mode === 'options') { $updated = updateHomepageViaOptions($message, $optionKeys); } else { $updated = updateHomepageViaElementor($message, $homepagePostId, $wpLoadPath); } if (!$updated) { echo "Avertissement : aucune mise à jour effectuée (vérifier la config ou le mode).\n"; exit(0); } echo "Mise à jour terminée.\n"; if (!empty($config['purge_cache'])) { purgeCache($config['wp_load_path'] ?? null); } exit(0); // --------------------------------------------------------------------------- /** * Récupère le dernier message via l'API REST WordPress. */ function getLatestMessageViaRest($siteUrl) { $url = $siteUrl . '/wp-json/wp/v2/message?per_page=1&orderby=date&order=desc&_embed'; $context = stream_context_create([ 'http' => [ 'timeout' => 15, 'user_agent' => 'sync-latest-message/1.0', ], ]); $json = @file_get_contents($url, false, $context); if ($json === false) { if (function_exists('curl_init')) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 15); curl_setopt($ch, CURLOPT_USERAGENT, 'sync-latest-message/1.0'); $json = curl_exec($ch); curl_close($ch); } } if (!$json) { return null; } $data = json_decode($json, true); if (empty($data[0])) { return null; } $post = $data[0]; return parseMessageFromRestPost($post); } /** * Parse un post message (REST) en tableau titre, date, reference, orateur, link, url_audio. */ function parseMessageFromRestPost($post) { $title = isset($post['title']['rendered']) ? strip_tags($post['title']['rendered']) : ''; $link = isset($post['link']) ? $post['link'] : ''; $content = isset($post['content']['rendered']) ? $post['content']['rendered'] : ''; $dateRaw = isset($post['date']) ? $post['date'] : ''; $orateur = ''; if (!empty($post['_embedded']['wp:term'])) { foreach ($post['_embedded']['wp:term'] as $terms) { foreach ($terms as $term) { if (isset($term['taxonomy']) && $term['taxonomy'] === 'orateur') { $orateur = $term['name'] ?? ''; break 2; } } } } if ($orateur === '' && preg_match('/Par\s+([^<]+)/ui', $content, $m)) { $orateur = trim(strip_tags($m[1])); } $reference = ''; if (preg_match('/>([^<]*\b(?:Genèse|Exode|Lévitique|Nombres|Deutéronome|Josué|Juges|Ruth|Samuel|Rois|Chroniques|Esdras|Néhémie|Esther|Job|Psaume[s]?|Proverbes|Ecclésiaste|Cantique|Ésaïe|Jérémie|Lamentations|Ézéchiel|Daniel|Osée|Joël|Amos|Abdias|Jonas|Michée|Nahum|Habakuk|Sophonie|Aggée|Zacharie|Malachie|Matthieu|Marc|Luc|Jean|Actes|Romains|Corinthiens|Galates|Éphésiens|Philippiens|Colossiens|Thessaloniciens|Timothée|Tite|Philémon|Hébreux|Jacques|Pierre|Jude|Apocalypse)\s*[\d.:\-,\s]+)<\/p>/ui', $content, $m)) { $reference = trim(strip_tags($m[1])); } $dateFormatted = ''; if ($dateRaw) { $ts = strtotime($dateRaw); if ($ts) { $months = ['janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre']; $dateFormatted = 'Le ' . date('d', $ts) . ' ' . $months[(int)date('n', $ts) - 1] . ' ' . date('Y', $ts); if ($orateur !== '') { $dateFormatted .= ', par ' . $orateur; } } } if ($dateFormatted === '' && preg_match('/Le\s+\d+.+?\d{4}/u', $content, $m)) { $dateFormatted = trim(strip_tags($m[0])); if ($orateur !== '') { $dateFormatted .= ', par ' . $orateur; } } $urlAudio = ''; if (preg_match('/<audio[^>]+src=["\']([^"\']+)["\']/i', $content, $m)) { $urlAudio = $m[1]; } elseif (preg_match('/<a[^>]+href=["\']([^"\']+\.mp3)["\']/i', $content, $m)) { $urlAudio = $m[1]; } return [ 'title' => $title, 'date' => $dateFormatted, 'reference' => $reference, 'orateur' => $orateur, 'link' => $link, 'url_audio' => $urlAudio, ]; } /** * Récupère le dernier message via WP_Query (nécessite wp-load.php). */ function getLatestMessageViaWpQuery($optionKeys) { if (!function_exists('get_posts')) { return null; } $posts = get_posts([ 'post_type' => 'message', 'post_status' => 'publish', 'posts_per_page' => 1, 'orderby' => 'date', 'order' => 'DESC', ]); if (empty($posts)) { return null; } $post = $posts[0]; $content = $post->post_content; $orateur = ''; $terms = get_the_terms($post->ID, 'orateur'); if ($terms && !is_wp_error($terms)) { $orateur = $terms[0]->name ?? ''; } $reference = get_post_meta($post->ID, 'reference_biblique', true) ?: ''; if ($reference === '' && preg_match('/>([^<]*(?:Philippiens|Luc|Actes|Psaume|Genèse|Romains|Ephésiens|Éphésiens)[^<]*)</ui', $content, $m)) { $reference = trim(strip_tags($m[1])); } $dateFormatted = ''; $ts = strtotime($post->post_date); if ($ts) { $months = ['janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre']; $dateFormatted = 'Le ' . date('d', $ts) . ' ' . $months[(int)date('n', $ts) - 1] . ' ' . date('Y', $ts); if ($orateur !== '') { $dateFormatted .= ', par ' . $orateur; } } $urlAudio = get_post_meta($post->ID, 'url_audio', true) ?: ''; if ($urlAudio === '' && preg_match('/<audio[^>]+src=["\']([^"\']+)["\']/i', $content, $m)) { $urlAudio = $m[1]; } elseif ($urlAudio === '' && preg_match('/<a[^>]+href=["\']([^"\']+\.mp3)["\']/i', $content, $m)) { $urlAudio = $m[1]; } return [ 'title' => $post->post_title, 'date' => $dateFormatted, 'reference' => $reference, 'orateur' => $orateur, 'link' => get_permalink($post->ID), 'url_audio' => $urlAudio, ]; } /** * Met à jour la page d'accueil via les options WordPress. */ function updateHomepageViaOptions($message, $optionKeys) { if (!function_exists('update_option')) { echo "update_option non disponible (exécutez le script avec wp_load_path dans la config).\n"; return false; } $updated = false; foreach ($message as $key => $value) { $optKey = $optionKeys[$key] ?? null; if ($optKey !== null && $value !== '') { update_option($optKey, $value); $updated = true; } } return $updated; } /** * Met à jour la page d'accueil via la meta Elementor (_elementor_data). * Remplace récursivement dans les widgets les textes correspondant au titre du message, à la référence, à la date/orateur, au lien. */ function updateHomepageViaElementor($message, $homepagePostId, $wpLoadPath) { if (!function_exists('get_post_meta') || !function_exists('update_post_meta')) { if ($wpLoadPath && is_file($wpLoadPath)) { require_once $wpLoadPath; } if (!function_exists('get_post_meta')) { echo "WordPress non chargé : mode elementor nécessite wp_load_path dans la config.\n"; return false; } } $data = get_post_meta($homepagePostId, '_elementor_data', true); if (!is_string($data)) { echo "Meta _elementor_data introuvable ou vide pour la page $homepagePostId.\n"; return false; } $decoded = json_decode($data, true); if (!is_array($decoded)) { echo "Meta _elementor_data invalide (JSON).\n"; return false; } $replaced = replaceInElementorElements($decoded, $message); if (!$replaced) { echo "Aucun widget correspondant trouvé dans _elementor_data (vérifier les textes de recherche).\n"; return false; } $newJson = function_exists('wp_json_encode') ? wp_json_encode($decoded) : json_encode($decoded, JSON_UNESCAPED_UNICODE); if (function_exists('wp_slash')) { $newJson = wp_slash($newJson); } update_post_meta($homepagePostId, '_elementor_data', $newJson); return true; } /** * Parcourt récursivement les éléments Elementor et remplace titre, editor, url selon le message. */ function replaceInElementorElements(&$elements, $message) { $replaced = false; foreach ($elements as &$el) { if (!is_array($el)) { continue; } $settings = &$el['settings'] ?? null; if (is_array($settings)) { if (isset($settings['title']) && is_string($settings['title'])) { if (stripos($settings['title'], 'Si Dieu est pour nous') !== false || stripos($settings['title'], 'Dernier message') !== false || strlen($settings['title']) < 80) { if (stripos($settings['title'], 'Dernier message') !== false) { // garder le titre de section } elseif (stripos($settings['title'], 'Si Dieu') !== false || preg_match('/^[^<>]{5,120}$/u', $settings['title'])) { $settings['title'] = $message['title']; $replaced = true; } } } if (isset($settings['editor']) && is_string($settings['editor'])) { if (stripos($settings['editor'], 'Philippiens 1:12-26') !== false || stripos($settings['editor'], '18 janvier 2026') !== false || stripos($settings['editor'], 'Guillaume') !== false) { $settings['editor'] = $message['reference'] . "\n\n" . $message['date']; if ($message['url_audio']) { $settings['editor'] .= "\n\n" . $message['url_audio']; } $replaced = true; } } if (isset($settings['url']) && is_string($settings['url']) && (stripos($settings['url'], 'eglisebaptistefloirac') !== false && stripos($settings['url'], 'message/') !== false)) { $settings['url'] = $message['link']; $replaced = true; } } if (!empty($el['elements']) && is_array($el['elements'])) { if (replaceInElementorElements($el['elements'], $message)) { $replaced = true; } } } return $replaced; } /** * Purge du cache (WP Fastest Cache ou action WordPress). */ function purgeCache($wpLoadPath) { if ($wpLoadPath && is_file($wpLoadPath)) { require_once $wpLoadPath; } if (function_exists('do_action')) { do_action('wpfc_clear_all_cache'); do_action('cache_clear'); } }
Close