Plugin Directory

Changeset 3104081


Ignore:
Timestamp:
06/18/2024 12:39:24 PM (21 months ago)
Author:
gothamdev
Message:

fix minor bug

Location:
wpost-still-fresh/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • wpost-still-fresh/trunk/core.php

    r3100886 r3104081  
    33Plugin Name: WPost Still Fresh
    44Description: 🇬🇧 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.0
     5Version: 1.1
    66Author: Kpsule Corporation
    77License: GPLv2
     
    6969function chron0striggeuss_enqueue_admin_scripts($hook_suffix) {
    7070   
     71  if ($hook_suffix === 'settings_page_chron0striggeuss-custom-scheduler') {
    7172    wp_register_script('chron0striggeuss-admin-script', plugins_url('js/chronocore.js', __FILE__), array('jquery'), '1.0', true);
    7273    wp_localize_script('chron0striggeuss-admin-script', 'chron0striggeussParams', array(
     
    7576    ));
    7677    wp_enqueue_script('chron0striggeuss-admin-script');
     78   }
    7779   
    7880}
     
    269271    $stored_page_interval = get_option('chron0striggeuss_stored_page_interval', 30);
    270272
     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   
    271295    // Traitement des crons pour les pages
    272296    if ($isActive === '1' || $isActive === '3') {
  • wpost-still-fresh/trunk/js/chronocore.js

    r3100886 r3104081  
    11document.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');
    89
    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
     56jQuery(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();
    1369            }
    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);
    3774        });
    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  
    29292. Activate the plugin through the 'Plugins' screen in WordPress
    30303. 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
    3232
    3333.::: EXPLICATIONS EN FRANCAIS :::.
     
    36362. Activez le plugin via l'écran "Extensions" de WordPress
    37373. 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.
    3938
    4039
     
    5756== Changelog ==
    5857
     58= 1.1.0 =
     59- Fix bug in console (about external js)
     60- Delete obsolete CRON task
     61
    5962= 1.0.0 =
    6063- Plugin launch
Note: See TracChangeset for help on using the changeset viewer.