IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MkFramework Discussion :

contribution plugin rating


Sujet :

MkFramework

  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2010
    Messages : 801
    Points : 1 098
    Points
    1 098
    Par défaut contribution plugin rating
    Bonjour,

    Si ça peut intéresser du monde, j'ai fait un petit plugin tout simple (mon premier donc sans prétention :p) pour afficher des étoiles afin d'attribuer une note.
    Le HTML et le CSS ont été piochés par ici.
    ça s'utilise dans un formulaire comme ceci :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div class="form-group">
    <?php $pluginStars = new plugin_stars($monID,$monChamp,5,$maValeur,true); $pluginStars->getHtml(); ?>
    </div>

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    <?php
     
    class plugin_stars{
    	private $id; /*S'il y a plusieurs notes (une liste d'éléments) */
    	private $name;  /*Champ de la couche model */
    	private $nbEtoiles; /*Nb d'étoiles à afficher */
    	private $value; /*Valeur du champ */
    	private $active; /*Est-ce que le formulaire est en mode édition ? */
     
    	public function __construct($id,$name,$nbEtoiles,$value,$active=false){
    		$this->id=$id;
    		$this->name=$name;
    		$this->nbEtoiles=$nbEtoiles;
    		$this->value=$value;
    		$this->active=$active;
    	}
     
    	public function getHtml(){ 
    ?>
    <style>  
    .rating:not(:checked) > input {
        position:absolute;
        top:-9999px;
        clip:rect(0,0,0,0);
    }
     
    .rating:not(:checked) > label {
        float:right;
        width:1em;
        padding:0 .1em;
        overflow:hidden;
        white-space:nowrap;
        font-size:200%;
        line-height:1.2;
        color:#ddd;
        text-shadow:1px 1px #bbb, 2px 2px #666, .1em .1em .2em rgba(0,0,0,.5);
    }
     
    .rating:not(:checked) > label:before {
        content: '&#9733; ';
    }
     
    .rating > input:checked ~ label {
        color: #f70;
        text-shadow:1px 1px #c60, 2px 2px #940, .1em .1em .2em rgba(0,0,0,.5);
    }
     
    <?php if ($this->active){ ?>
    .rating:not(:checked) > label {
    	cursor:pointer;
    }
    .rating:not(:checked) > label:hover,
    .rating:not(:checked) > label:hover ~ label {
        color: gold;
        text-shadow:1px 1px goldenrod, 2px 2px #B57340, .1em .1em .2em rgba(0,0,0,.5);
    }
     
    .rating > input:checked + label:hover,
    .rating > input:checked + label:hover ~ label,
    .rating > input:checked ~ label:hover,
    .rating > input:checked ~ label:hover ~ label,
    .rating > label:hover ~ input:checked ~ label {
        color: #ea0;
        text-shadow:1px 1px goldenrod, 2px 2px #B57340, .1em .1em .2em rgba(0,0,0,.5);
    }
     
    .rating > label:active {
        position:relative;
        top:2px;
        left:2px;
    }
    <?php } ?>
    </style>
    <fieldset class="rating pull-left">
    <?php for ($i=$this->nbEtoiles;$i>0;$i--){ ?>
        <input <?php if (!$this->active){ echo "disabled"; } ?> type="radio" id="<?php echo $this->id ?>star<?php echo $i ?>" name="<?php echo $this->name ?>" value="<?php echo $i ?>" <?php if($this->value==$i){ ?>checked="checked"<?php } ?>/>
    	<label for="<?php echo $this->id ?>star<?php echo $i ?>"><?php echo $i ?> étoiles</label>
    <?php } 
     
    ?>
    </fieldset>
    <?php
    	}
    }
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    5 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 5 233
    Points : 19 559
    Points
    19 559
    Billets dans le blog
    17
    Par défaut
    Bonjour
    merci de l'initiative, pour information vous pouvez le soumettre au market
    http://mkframework.com/bigtutoriel_m...eerPlugin.html
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

Discussions similaires

  1. Plugin Star rating pour JQUERY
    Par dalma dans le forum jQuery
    Réponses: 1
    Dernier message: 08/04/2011, 16h47
  2. Réponses: 2
    Dernier message: 27/04/2010, 17h33
  3. Bug d'affichage avec le plugin jQuery Star Rating Plugin
    Par dark_vidor dans le forum jQuery
    Réponses: 1
    Dernier message: 03/09/2009, 00h08
  4. Frame Rate
    Par starsky dans le forum OpenGL
    Réponses: 6
    Dernier message: 31/08/2002, 00h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo