Derniers sujets
» [PHPBB2]Widget Afficher les derniers message(sujets) d'un forum spécifique
par Milouze14 Dim 17 Mar 2019 - 6:05

» [PHPBB2]Supprimer les champs de contacts dans le profil
par Marley Smith Jeu 14 Mar 2019 - 10:18

» [TOUTES VERSIONS]Afficher au dessus de l'éditeur l'information si mode Wysiwyg ou texte
par FaGu Jeu 14 Mar 2019 - 1:39

» Copyright sur les images contenues dans les sujets
par Chéryl Mar 12 Mar 2019 - 8:52

» [PHPBB3] Supprimer les champs de contacts dans le profil
par Milouze14 Lun 11 Mar 2019 - 19:49

» [TOUTES VERSIONS] Mettre Youtube en plein écran sans logiciel extérieur tous forum
par Kaeyla Lun 11 Mar 2019 - 10:06

» Fenêtre d'édition en mode plein écran
par HeroxAquariophile Sam 9 Mar 2019 - 11:09

» Rajout d'un bouton pour la citation partielle
par HeroxAquariophile Sam 9 Mar 2019 - 11:02

» [TOUTES VERSIONS] Edition rapide
par fred9545 Sam 9 Mar 2019 - 10:40

» [TOUTES VERSIONS] Mettre en place des hashtags comme sur Twitter
par HeroxAquariophile Sam 9 Mar 2019 - 10:36

» [TOUTES VERSIONS]Fond différent en fonction du mode d'édition
par photoclic Ven 8 Mar 2019 - 22:15

» [TOUTES VERSIONS]Feuille de style saturée!! Si vos widgets sont activés alors....
par Milouze14 Mer 6 Mar 2019 - 20:08

» [MODERNBB]N'autoriser que les votes positifs
par Splash Mar 5 Mar 2019 - 16:52

» [MODERNBB] Ajouter les boutons "En Ligne" et "Hors-Ligne"
par chrisnvidia Dim 3 Mar 2019 - 17:22

» [AWESOMEBB]Ajouter les boutons "En Ligne" et "Hors-Ligne"
par Splash Dim 3 Mar 2019 - 12:19

» [INVISION] Afficher l'id/ami et brouillon dans le Welcome de la toolbar
par hamesashek Sam 2 Mar 2019 - 13:46

» [TOUTES VERSIONS] Passer des paramètres à un script via une requête GET
par no_way Jeu 28 Fév 2019 - 22:01

» [TOUTES VERSIONS]Afficher un message aux membres ayant moins de X messages
par no_way Jeu 28 Fév 2019 - 20:25

» [TOUTES VERSIONS] Installer Filepicker - Un gestionnaire d'upload de fichiers multi-sources gratuit
par HeroxAquariophile Mer 27 Fév 2019 - 18:22

» [TOUTES VERSIONS] Afficher le rang dans la toolbar
par HeroxAquariophile Mer 27 Fév 2019 - 17:41

[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
photoclic
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
Jackymi
Modérateur

MessageJackymi

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

Milouze14
Milouze14
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