Derniers sujets
» Afficher un message pour les profils mal renseignés onglet Préférences
par dams161 Hier à 23:30

» [TOUTES VERSIONS] Fond qui s'adapte à toute la largeur de votre forum
par dams161 Hier à 23:27

» Personnaliser les hastags
par dams161 Hier à 23:24

» [MODERNBB] Afficher l'avatar dans une citation nommée
par dams161 Hier à 23:14

» [PHPBB3] Afficher les champs du profil au clic sur l'avatar
par fred9545 Hier à 19:26

» [TOUTES VERSIONS] Installer Filepicker - Un gestionnaire d'upload de fichiers multi-sources gratuit
par Milouze14 Hier à 8:35

» [PHPBB3] Personnaliser le qeel sur son apparence
par Splash Hier à 8:35

» [TOUTES VERSIONS] Personnaliser le body pour chaque catégorie
par dams161 Sam 19 Jan 2019 - 22:04

» [MODERNBB] Afficher les membres en ligne (version graphique) sur l'index et dans la liste des sujets
par dams161 Sam 19 Jan 2019 - 21:26

» [MODERNBB] Afficher une réponse automatique style staff
par dams161 Sam 19 Jan 2019 - 21:25

» [PHPBB2]Outils de modération sur la liste des sujets
par FaGu Sam 19 Jan 2019 - 19:49

» [PHPBB2] Afficher les membres en ligne (version graphique) sur l'index et dans la liste des sujets
par fred9545 Sam 19 Jan 2019 - 11:25

» [PHPBB2] Afficher les brouillons en attente sur toutes les pages etc etc
par fred9545 Sam 19 Jan 2019 - 10:53

» [EDGE] Mettre un message en bas de forum ou un copyright
par chrisnvidia Sam 19 Jan 2019 - 3:48

» [EDGE]Ajouter l'infobulle au survol des boutons de la barre de navigation
par chrisnvidia Sam 19 Jan 2019 - 3:17

» [PHPBB2] Afficher l'id du membre au lieu de la numérotation dans la liste des membres
par Myrddin Ven 18 Jan 2019 - 20:26

» [PHPBB2] Coloriser les cases derniers messages en fonction de la couleur du groupe
par Morane Ven 18 Jan 2019 - 16:39

» [PHPBB2]Supprimer le tag "Re" sur les messages
par Chéryl Jeu 17 Jan 2019 - 8:57

» [PHPBB3]Supprimer le tag "Re" sur les messages
par McLeod Mer 16 Jan 2019 - 9:57

» [PHPBB2] Mettre un module de membres connectés en haut à gauche
par fred9545 Mar 15 Jan 2019 - 19:31

Les meilleurs posteurs

[PHPBB3] Créer des préfixes dans le titre du sujet avec boutons de sélection

Voir le sujet précédent Voir le sujet suivant Aller en bas

photoclic
avatar
Milouzien

Messagephotoclic

  • 16px
  • 24px
  • Zoom
Bonjour,

je vous présente ici un tuto provenant du support italien permettant d'ajouter des préfixes aux titres des sujets.

Ce code est à mettre dans les javascript, et sur toutes les pages.

Attention, il fonctionne sur toutes les versions sauf en PHPBB2.

Code:
/**
     *! Créer des préfixes dans le titre du sujet avec boutons de sélection.
     *
     *  @author Luiz~
     *  @see <a href="http://ajuda.forumeiros.com">Fórum dos Fóruns</a>

     *  @licence MIT
     */
    (function ($) {
      'use strict';
    
      var tags = [
        
        {
          tag: 'Texte',
          background: '#000'
        },
        
         {
          tag: 'Photo',
          background: '#666'
        }
        
      ];
    
      $(function () {
        var counter = 1;
    
        /**
        * Partie 1.
        * créer le sélecteur de balises au-dessus de l'éditeur:
        */
        if (location.pathname === '/post' && $('form input[name="subject"]').length > 0) {
          // Criar a zona para colocar-se os inputs:
          var $textarea = $('#textarea_content');
          var $title = $('form [name="subject"]');
          var $zone = $([
            '<div class="fa-icon-selector">',
            '  <div class="fa-icon-selector-inner">',
            '  </div>',
            '</div>',
          ].join('\n'))
            .prependTo($textarea)
          ;
    
          // Créer les entrées dans la zone précédemment créée:
          var $appendZone = $zone.find('.fa-icon-selector-inner');
          $.each(tags, function (index, tag) {
            $([
              '<div class="fa-tag-form-group">',
              '  <input type="radio" class="select-tag-input" name="select-tag-radio" id="tag-input-' + counter + '" data-tag="' + tag.tag + '" />',
              '  <label for="tag-input-' + counter + '" class="fa-tag-label">' + tag.tag + '</label>',
              '</div>',
            ].join('\n'))
              .appendTo($appendZone)
            ;
          
            counter++;
          });
    
          // Fonction pour se concentrer sur une entrée X si c'est l'étiquette d'un sujet X:
          if (/^\[.*\]/gi.test($title.val())) {
            $title.val().replace(/^\[(.*)\]/gi, function (find, match) {
              $('[data-tag="' + match + '"]').prop('checked', true);
            });
          }
    
          // Déclencheur pour ajouter / éditer le préfixe dans l'entrée de titre:
          $zone
            .find('input.select-tag-input')
              .on('focus', function () {
                setPrefix($(this).attr('data-tag'));
              })
          ;
    
          // Fonction pour définir / modifier le préfixe:
          var setPrefix = function (prefix) {
    
            if (/^\[.*\]/gi.test($title.val())) {
              $title.val($title.val().replace(/^\[.*\]/gi, function () {
                return '[' + prefix + ']';
              }));
            
              return;
            }
          
             $title.val('[' + prefix + '] ' + $title.val().trim());
          };
        }
    
        /**
        * Partie 2.
        * Remplacer l'étiquette entre les parenthèses avec un vrai tag:
        */
        var $link = $('a[href^="/t"]');
        $link.each(function () {
    
          var $this = $(this);
    
          $.each(tags, function (index, tag) {
            var regex = new RegExp ('\\[' + tag.tag + '\\]', 'gim');
            var text = $this.text();
    
            if (!regex.test(text)) {
              return;
            }
    
            $this.addClass('fa-tagged-link');
            $this.text(text.trim().replace(regex, ''));
            $this.prepend('<span class="fa-topic-tag" style="background-color: ' + tag.background + ';">' + tag.tag + '</span>');
          });
        });
    
        /**
        * Partie 3:
        * Style.
        */
        var styles = [
          '.fa-icon-selector-inner strong {',
          '  display: block;',
          '  margin-bottom: 4px;',
          '  font-weight: bold;',
          '}',
          '',
          '.fa-icon-selector .fa-tag-form-group {',
          '  display: inline-block;',
          '  margin-right: 15px;',
          '  margin-top: 4px;',
          '}',
          '',
          '.fa-tagged-link {',
          '  text-decoration: none !important;',
          '}',
          '',
          '.fa-tagged-link:hover {',
          '  color: #f73 !important;',
          '  text-decoration: none !important;',
          '}',
          '',
          'span.fa-topic-tag {',
          '  color: #fff;',
          '  background-color: #39c;',
          '  padding: 1px 5px;',
          '  border-radius: 3px;',
          '  margin-right: 4px;',
          '  display: inline;',
          '  text-decoration: none!important',
          '}'
        ].join('\n');
    
        $(['<style type="text/css">', styles, '</style>'].join('\n')).appendTo('head');
      
      });
    }(jQuery));

Cette partie du code peut-être modifiée pour configurer les préfixes de votre forum:

Code:

 var tags = [
        
        {
          tag: 'Texte',
          background: '#000'
        },
        
         {
          tag: 'Photo',
          background: '#666'
        }
        
      ];


Des préfixes supplémentaires peuvent être modifiés/ajoutés ainsi avec une virgule à la fin de chaque bloc, sauf le dernier:

Code:
     var tags = [
        {
          tag: 'Photo',
          background: '#666'
        },
        {
          tag: 'widget',
          background: '#000'
        },
        {
          tag: 'Résolu',
          background: '#f00'
        },
        {
          tag: 'astuces',
          background: '#0f0'
        }
      ];

Il est opérationnel dès validation du JS.
Jackymi
avatar
Modérateur

MessageJackymi

  • 16px
  • 24px
  • Zoom
Merci pour le partage, Serge . clin oeil

Milouze14
avatar
Fondateur

MessageMilouze14

  • 16px
  • 24px
  • Zoom
Hello et merci pour le partage, Serge hinhin .



-Le respect de nos semblables est la règle de notre conduite.-

Fondateur des forums





Voir le sujet précédent Voir le sujet suivant Revenir en haut

Créer un compte ou se connecter pour répondre

Vous devez être membre pour répondre.

S'enregistrer

Rejoignez notre communauté ! C'est facile !


S'enregistrer

Connexion

Vous êtes déjà membre ? Aucun soucis, cliquez ici pour vous connecter.


Connexion

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum