Fonction javascript et Plugin jQuery

Snippet pour commencer un script sous forme de plugin jQuery

;
(function($, window, undefined) {
    /* JSlint */
    'use strict';

    /* Lors de l'appel */
    $.maFonction = function(options, element) {
        // Enregistrement des élements fournie lors de l'appel du plugin
        // exemple $('p').maFonction(); , ici l'elément correspont au élement <p>
        this.$element = $(element);

        // déclencher le plugin avec cette première fonction
        this._init(options);
    };

    // the options
    $.maFonction.defaults = {
        'option1' : '',
        'option2' : 10,
        'option3' : false
        
    };

    $.maFonction.prototype = {
        
        // fonction déclencher, lors de l'appel du plugin
        _init: function(options) {

            // Associer les options fournie lors de l'appel et celle défini par défaut
            this.options = $.extend(true, {}, $.maFonction.defaults, options);

            // On appel une fonction qui déclare les variables utiles
            this._config();

            // Premier traitement 
            this._initCreation();

            // Permet de lancer les écoutes d'évenement
            this._initEvent();

        },

        // variables utiles
        _config: function() {
            this.variable1 = true;
            this.variable2 = 10;
        },

        // Premier traitement
        _initCreation: function() {
            // on duplique l'objet du plugin pour éviter de melanger les 'this'
            var self = this;
            
            // pour utiliser une variable déclarer dans le plugin
            self.variable1;
            
            // pour utiliser une options du plugin
            self.options.option1;
            

        },

        // fonction de traitement
        _traitement: function() {
            // on duplique l'objet du plugin pour éviter de melanger les 'this'
            var self = this;
            
        
        },

        // fonction pour lancer l'écoute des évenements
        _initEvent: function() {
            // on duplique l'objet du plugin pour éviter de melanger les 'this'
            var self = this,

            // evenement clic
            $('body').on('click', '.elements', function() {
                // élement de l'evenement
                var _this = $(this);
                // executer vos fonctions de traitement plutôt qu'écrire du script directement ici
                // exemple : 
                self._traitement();

                return false;
            });
            
            $('body').on('focus', '.elements', function() {
                // élement de l'evenement
                var _this = $(this);

                // executer vos fonctions de traitement plutôt qu'écrire du script directement ici
                // exemple : 
                self._traitement();

                return false;
            });
        },
        
    };

    /* 
     * Permet des déclarer un nouveau plugin de jQuery 
     */

    $.fn.maFonction = function(options) {
        if (typeof options === 'string') {
            var args = Array.prototype.slice.call(arguments, 1);
            this.each(function() {
                var instance = $.data(this, 'maFonction');
                if (!instance) {
                    logError("ne peut pas appeler des méthodes sur maFonction avant l'initialisation; " +
                            "tenté d'appeler la méthode '" + options + "'");
                    return;
                }
                if (!$.isFunction(instance[options]) || options.charAt(0) === "_") {
                    logError("Aucune de ces méthodes '" + options + "' par exemple de maFonction");
                    return;
                }
                instance[ options ].apply(instance, args);
            });
        }
        else {
            this.each(function() {
                var instance = $.data(this, 'maFonction');
                if (instance) {
                    instance._init();
                }
                else {
                    instance = $.data(this, 'maFonction', new $.maFonction(options, this));
                }
            });
        }
        return this;
    };

})(jQuery, window);

Afficher le format d’une date façon twitter

Une fonction PHP permettant d’afficher « il y a moins d’une minute », « il y a X minutes », « il y a X heures », « Hier à « , sinon la fonction retourne la date en Français. La date attendue en paramètres est au format « Y-m-d h:i:s »


function dateFrToday($date) {
$year = $date[0] . $date[1] . $date[2] . $date[3];
$month = $date[5] . $date[6];
$day = $date[8] . $date[9];
$heure = $date[11] . $date[12];
$minutes = $date[14] . $date[15];
$dateVariable = $year . '-' . $month . '-' . $day;

if ($dateVariable == date(‘Y-m-d’)) { //Si c’est aujourd’hui
$iTimeDifference = time() – strtotime($date);

if ($iTimeDifference < 0) {
return;
}

$iSeconds = $iTimeDifference;
$iMinutes = round($iTimeDifference / 60);
$iHours = round($iTimeDifference / 3600);

if ($iSeconds < 60)
return « Il y a moins d’une minute »;
elseif ($iMinutes < 60)
return ‘Il y a ‘ . $iMinutes . ‘ minute’ . ( $iMinutes > 1 ? ‘s’ :  » );
elseif ($iHours < 24)
return ‘Il y a ‘ . $iHours . ‘ heure’ . ($iHours > 1 ? ‘s’ :  » );
} else if (strtotime($dateVariable) == strtotime(date(‘Y-m-d’) . ‘ – 1 DAY’)) { // Si la date correspond à hier
// si égale a J-1 on affiche « Hier »
return ‘Hier &agrave; ‘ . $heure . ‘h’ . $minutes;
} else {
//sinon, la date en Français
return $day . ‘/’ . $month . ‘/’ . $year . ‘ &agrave; ‘ . $heure . ‘h’ . $minutes;
}
}

Recherche / Remplace Avancée

Il arrive souvent que l’on ait besoin de mettre à jour un bout de code, comme par exemple pour changer le nom d’une fonction, ou par exemple une liste d’id d’une base à mettre à jour. Au lieux de passer 5 minutes à faire des copier coller, on peut faire un recherche / remplace à l’aide d’une expression régulière.

Premier cas :

Je souhaite faire un update sur une liste d’id récupérer avec PHPMyAdmin, sans avoir à recopier la requête autant de fois qu’il y a d’id, je souhaite générer directement toute les requête d’un coup

Voici ma liste d’id que souhaite mettre à jour


(35), (43), (58), (63), (68), (70), (71), (98), (113), (117), (150), (180), (359), (426), (463);

On voit ici un structure récurrente, des parenthèses autour du numéro avec un virgule après. 

Voici la recherche avancée :

\((.*)\),

On échappe les parenthèses que l’on cherche, et on en utilise pour capture du numéro. Lors du remplacement, il suffira d’appeler $1 pour récupérer notre capture.

Le remplacement :


UPDATE `table` SET `actif` = '0' WHERE `table`.`id` = $1 ;

 

Deuxième cas :
Sources

    
<?php
     mon_ancien_fonction( $param, 'chaine' );
?>
  

Recherche

    
     mon_ancien_fonction\( (.*) \);

Remplace

    
     nouvelle_fonction( $1 );

Il peuvent s’adapter facilement à d’autre situation, afin de faire des essais ce site joue bien son rôle : http://regexp.zug.fr/