Changeset 3104081
- Timestamp:
- 06/18/2024 12:39:24 PM (21 months ago)
- Location:
- wpost-still-fresh/trunk
- Files:
-
- 3 edited
-
core.php (modified) (4 diffs)
-
js/chronocore.js (modified) (1 diff)
-
readme.txt (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
wpost-still-fresh/trunk/core.php
r3100886 r3104081 3 3 Plugin Name: WPost Still Fresh 4 4 Description: 🇬🇧 Ultra-light plugin to keep your pages and posts always up to date for our friend GG. Set up a monthly/weekly CRON task (or at the recurrence you want...) and set the maximum number of previous days that you want. The plugin will set as the last modification date of your post/page, a random date between the execution date of your CRON task and the maximum number of previous days that you have configured. 🇫🇷 Petit plugin ultra léger pour garder vos pages et posts toujours à jour pour notre ami GG. Paramétrez une tache CRON mensuelle/hebdomadaire (ou à la récurrence que vous voulez...) et paramétrez le nombre de jour précédents max que vous souhaitez. Le plugin mettra comme date de dernière modification de votre post/page, une date aléatoire entre la date d'execution de votre tache CRON et le nombre de jour précédents max que vous avez paramétré. 5 Version: 1. 05 Version: 1.1 6 6 Author: Kpsule Corporation 7 7 License: GPLv2 … … 69 69 function chron0striggeuss_enqueue_admin_scripts($hook_suffix) { 70 70 71 if ($hook_suffix === 'settings_page_chron0striggeuss-custom-scheduler') { 71 72 wp_register_script('chron0striggeuss-admin-script', plugins_url('js/chronocore.js', __FILE__), array('jquery'), '1.0', true); 72 73 wp_localize_script('chron0striggeuss-admin-script', 'chron0striggeussParams', array( … … 75 76 )); 76 77 wp_enqueue_script('chron0striggeuss-admin-script'); 78 } 77 79 78 80 } … … 269 271 $stored_page_interval = get_option('chron0striggeuss_stored_page_interval', 30); 270 272 273 274 // Désactivation de toutes les tâches Cron si $isActive est égal à 0 275 if ($isActive == '0') { 276 if ($timestamp_page) { 277 wp_unschedule_event($timestamp_page, $page_cron_hook); 278 } 279 if ($timestamp_post) { 280 wp_unschedule_event($timestamp_post, $post_cron_hook); 281 } 282 return; // Rien de plus à faire, retirerons tout car $isActive est 0 283 } 284 285 // Désactiver les crons non nécessaires 286 if ($isActive === '2' && $timestamp_page) { // Pas nécessaire d'avoir une cron pour les posts 287 wp_unschedule_event($timestamp_page, $page_cron_hook); 288 } 289 290 if ($isActive === '1' && $timestamp_post) { // Pas nécessaire d'avoir une cron pour les pages 291 wp_unschedule_event($timestamp_post, $post_cron_hook); 292 } 293 294 271 295 // Traitement des crons pour les pages 272 296 if ($isActive === '1' || $isActive === '3') { -
wpost-still-fresh/trunk/js/chronocore.js
r3100886 r3104081 1 1 document.addEventListener('DOMContentLoaded', function() { 2 // Selecteurs pour la configuration des inputs 3 const postsIntervalInput = document.querySelector('#chron0striggeuss_posts_interval'); 4 const pagesIntervalInput = document.querySelector('#chron0striggeuss_pages_interval'); 5 const postsBackdateInput = document.querySelector('#chron0striggeuss_posts_backdate'); 6 const pagesBackdateInput = document.querySelector('#chron0striggeuss_pages_backdate'); 7 const activeSelector = document.querySelector('#chron0striggeuss_active'); 2 3 // Selecteurs pour la configuration des inputs 4 const postsIntervalInput = document.querySelector('#chron0striggeuss_posts_interval'); 5 const pagesIntervalInput = document.querySelector('#chron0striggeuss_pages_interval'); 6 const postsBackdateInput = document.querySelector('#chron0striggeuss_posts_backdate'); 7 const pagesBackdateInput = document.querySelector('#chron0striggeuss_pages_backdate'); 8 const activeSelector = document.querySelector('#chron0striggeuss_active'); 8 9 9 // Mise a jour des champs de backdate en fonction des intervalles 10 function updateBackdateDefault(inputElement, backdateElement, defaultDays) { 11 const interval = parseInt(inputElement.value, 10) || defaultDays; 12 backdateElement.value = Math.max(interval - 1, 1); // Assure la valeur minimum à 1 10 // Mise a jour des champs de backdate en fonction des intervalles 11 function updateBackdateDefault(inputElement, backdateElement, defaultDays) { 12 const interval = parseInt(inputElement.value, 10) || defaultDays; 13 backdateElement.value = Math.max(interval - 1, 1); // Assure la valeur minimum à 1 14 } 15 16 // Affichage conditionnel des lignes en fonction de l'activation 17 function toggleFields() { 18 const isActive = activeSelector.value; 19 document.querySelectorAll('.posts-config').forEach(div => { 20 const tr = div.closest('tr'); 21 tr.style.display = (isActive === '2' || isActive === '3') ? '' : 'none'; 22 }); 23 document.querySelectorAll('.pages-config').forEach(div => { 24 const tr = div.closest('tr'); 25 tr.style.display = (isActive === '1' || isActive === '3') ? '' : 'none'; 26 }); 27 } 28 29 30 // Associer les événement uniquement si les éléments existent 31 32 if (postsIntervalInput) { 33 postsIntervalInput.addEventListener('change', () => updateBackdateDefault(postsIntervalInput, postsBackdateInput, 30)); 34 } 35 if (pagesIntervalInput) { 36 pagesIntervalInput.addEventListener('change', () => updateBackdateDefault(pagesIntervalInput, pagesBackdateInput, 30)); 37 } 38 if (activeSelector) { 39 activeSelector.addEventListener('change', toggleFields); 40 } 41 42 // Initialisation des affichages 43 44 if (postsIntervalInput) { 45 updateBackdateDefault(postsIntervalInput, postsBackdateInput, 30); 46 } 47 if (pagesIntervalInput) { 48 updateBackdateDefault(pagesIntervalInput, pagesBackdateInput, 30); 49 } 50 if (activeSelector) { 51 toggleFields(); 52 } 53 }); 54 55 // Gestion de la soumission du formulaire de randomisation 56 jQuery(document).ready(function($) { 57 $('.randomize-posts-form').on('submit', function(e) { 58 e.preventDefault(); 59 const nonce = $('#randomize_posts_nonce').val(); 60 $.post(ajaxurl, { 61 action: 'randomize_posts', 62 nonce: nonce 63 }, function(response) { 64 let messageContainer = $('#message-container'); 65 if (response.success) { 66 messageContainer.css({ 'background': '#28a745' }).text(response.data).show(); 67 } else { 68 messageContainer.css({ 'background': '#dc3545' }).text('Echec').show(); 13 69 } 14 15 // Affichage conditionnel des lignes en fonction de l'activation 16 function toggleFields() { 17 const isActive = activeSelector.value; 18 document.querySelectorAll('.posts-config').forEach(div => { 19 const tr = div.closest('tr'); 20 tr.style.display = (isActive === '2' || isActive === '3') ? '' : 'none'; 21 }); 22 document.querySelectorAll('.pages-config').forEach(div => { 23 const tr = div.closest('tr'); 24 tr.style.display = (isActive === '1' || isActive === '3') ? '' : 'none'; 25 }); 26 } 27 28 // Associe les evenements aux elements 29 postsIntervalInput.addEventListener('change', () => updateBackdateDefault(postsIntervalInput, postsBackdateInput, 30)); 30 pagesIntervalInput.addEventListener('change', () => updateBackdateDefault(pagesIntervalInput, pagesBackdateInput, 30)); 31 activeSelector.addEventListener('change', toggleFields); 32 33 // Initialisation des affichages 34 updateBackdateDefault(postsIntervalInput, postsBackdateInput, 30); 35 updateBackdateDefault(pagesIntervalInput, pagesBackdateInput, 30); 36 toggleFields(); 70 // Programme la disparition du message après 5 secondes (5000 millisecondes) 71 setTimeout(function() { 72 messageContainer.fadeOut(); // Fonction fadeOut pour un effet de disparition progressif 73 }, 3000); 37 74 }); 38 39 // Gestion de la soumission du formulaire de randomisation 40 jQuery(document).ready(function($) { 41 $('.randomize-posts-form').on('submit', function(e) { 42 e.preventDefault(); 43 const nonce = $('#randomize_posts_nonce').val(); 44 $.post(ajaxurl, { 45 action: 'randomize_posts', 46 nonce: nonce 47 }, function(response) { 48 let messageContainer = $('#message-container'); 49 if (response.success) { 50 messageContainer.css({ 'background': '#28a745' }).text(response.data).show(); 51 } else { 52 messageContainer.css({ 'background': '#dc3545' }).text('Echec').show(); 53 } 54 // Programme la disparition du message après 5 secondes (5000 millisecondes) 55 setTimeout(function() { 56 messageContainer.fadeOut(); // Fonction fadeOut pour un effet de disparition progressif 57 }, 3000); 58 }); 59 }); 60 }); 75 }); 76 }); -
wpost-still-fresh/trunk/readme.txt
r3100886 r3104081 29 29 2. Activate the plugin through the 'Plugins' screen in WordPress 30 30 3. Set yours preferences. 31 4. Insert the contact form where you want with the shortcode or with the included widget, either directly in your articles / pages, or directly in your theme. 31 32 32 33 33 .::: EXPLICATIONS EN FRANCAIS :::. … … 36 36 2. Activez le plugin via l'écran "Extensions" de WordPress 37 37 3. Paramétrez vos préférences. 38 4. Insérez le formulaire de contact où vous voulez avec le shortcode du plugin ou le widget intégré, soit directement dans vos articles/pages, soit directement dans votre theme.39 38 40 39 … … 57 56 == Changelog == 58 57 58 = 1.1.0 = 59 - Fix bug in console (about external js) 60 - Delete obsolete CRON task 61 59 62 = 1.0.0 = 60 63 - Plugin launch
Note: See TracChangeset
for help on using the changeset viewer.