Astuces Forumactif
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Membres connectés récemment
Voir tous les membres

[PHPBB3] Passer un sujet en note ou normal sans éditer le sujet

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

avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mar 28 Avr 2020 - 21:20

  • Version du forum :
    PHPBB3
  • Templates modifiés :
    oui
  • Navigateur :
    Firefox
Bonjour à tous les milouziens

Actuellement pour mettre un sujet en note ou en normal (ou en annonce ou annonce global) il est nécessaire d'éditer le sujet.

Serait-il possible de passer un sujet en note ou normal sans éditer le sujet pour les admins et modérateurs, via
la liste des sujets par exemple.

Peut-être intégrer cela dans le script outil de modértion que j'utilise actuellement sur les sous forum:

Code:

/***outils de modération via la liste des sujets
            * Application: Actions de moderation.
            * Description: This application shows a shortcut menu for the moderation in the list of topics.
            * Version: 1.03182014-jq1.9.1 - (Dodekatheon / 2) + (Hermes = Zeus + Maia)
            * Made and Optimizations by JScript - 2014/03/18
            * View more in: http://ajuda.forumeiros.com
            * Copyright (c) 2013 JScript <jscriptbrasil at live dot com>
            * This work is free. You can redistribute it and/or modify it
            * under the terms of the WTFPL, Version 2
            */
            /***
            * System Defined Variables - Do not edit if you don't know!
            ***/
            var oMTConfig = {
                sErrorMsg: '',
                oTopicTitle: {},
                sTopicHref: '',
                iTopicID: 0,
                sTopicTitle: '',
                sContent:
                    '<a title="Actions de modération" class="ipsModMenu" href="#">&nbsp;</a>',
                sMenu:
                    '<ul style="display: none; position: absolute; z-index: 9999;margin-top: -135px;" class="ipbmenu_content" id="topic_mod_menucontent">' +
                        '<li style="z-index: 10000;"><a title="Renommer le sujet" href="" id="t_rename" onclick="_rename_Topic();return false;" style="z-index: 10000;">Renommer le sujet</a></li>' +
                  
                        '<li style="z-index: 10000;"><a title="Verrouiller le sujet" href="" id="t_lock" style="z-index: 10000;">Verrouiller</a></li>' +
                        '<li style="z-index: 10000;"><a title="Déplacer le sujet" href="" id="t_move" style="z-index: 10000;">Déplacer</a></li>' +
                        '<li style="z-index: 10000;"><a title="Envoyer vers la corbeille" href="" id="t_hide" style="z-index: 10000;">Envoyer Vers les BEST</a></li>' +
    '<li style="z-index: 10000;"><a title="Supprimer le sujet" href="" id="t_delete" style="z-index: 10000;">Supprimer </a></li>' + '
    <li style="z-index: 10000;"><a href="/search?search_id=activetopics">Sujets actifs du jour</a></li>' +'<li style="z-index: 10000;"><a href="/search?search_id=newposts"title="Voir les nouveaux messages depuis votre dernière visite">Voir les nouveaux messages....</a></li>' +'
    </ul>',
                sCSS:
                    '<style>' +
                    /*'#rename-topic {' +
                        'display: block;' +
                    '}' +*/
                    '.statused tr:hover > .tcr .ipsModMenu, ' +
                        '.forumline tr td:hover > .postdetails .ipsModMenu, ' +
                        'ul.topiclist.topics.bg_none dl.icon:hover > .lastpost .ipsModMenu, '+
                        'table.ipbtable tbody tr:hover > td.row1.lastaction .ipsModMenu{' +
                        'visibility: visible;' +
                    '}' +
        'a.ipsModMenu.menu_active{' +
        'background: url("https://i.servimg.com/u/f31/19/32/37/01/icon_d10.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);' +
        'visibility: visible;' +
        '}'+
        '.ipsModMenu {' +
                        'background: url("https://i.servimg.com/u/f18/11/26/21/37/gear10.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);' +
                        'display: inline-block;' +
                        'height: 20px;' +
                        'width: 20px;' +
                        'text-indent: -2000em;' +              
                        'float: right;' +
                        'visibility: hidden;' +
                        'display: block;' +
                    '}' +
                  '.ipbmenu_content
        {' +
        'font-size: 12px;' +
        'padding: 5px !important;' +
        'background-color: #2E2E2E;' +
        'border: 1px solid #D5DDE5;' +
        'box-shadow: 2px 2px 5px #333;' +
        '}' +
                    '.ipbmenu_content li:first-child {' +
                        'padding-top: 0;' +
                    '}' +
                    '.ipbmenu_content li {' +
                        'border-bottom: 1px solid #D5DDE5;' +
                        'list-style-type: none !important;' +
                    '}' +
                    '.ipbmenu_content a {' +
        'display: block;' +
        'padding: 6px 10px;' +
    'font-size:12px;'+
        'text-align: left;' +
        'text-decoration: none !important;' +
        'transition: all 0.5s ease-in;' +
                    '}' +
                    '.ipbmenu_content a:hover {' +
        'color:#B24926;' +
        'background: none repeat scroll 0 0 #D5DDE5; ' +
                    '}' +
                    '.cancel {' +
        'color: #AD2930;' +
        'font-size: 0.9em;' +
        'font-weight: bold;' +
        'text-decoration: none ;' +
        'transition: all 0.5s ease-in;' +
                    '}' +
        '.cancel:hover
        {' +
        'color: #B24926;' +
        'text-decoration: none !important;' +
        '}' +
        '.input_text {' +
        'background: none repeat scroll 0 0 #ccc !important;' +
          'color:#B24926;'+
        'padding: 4px !important;' +
        'border-radius:5px;' +
        'font: 13px !important;' +
        'transition: all 0.5s ease-in;' +
                    '}' +
        '#rename-topic
        {' +
        'color: #AD2930 !important;' +
        'cursor: pointer;' +
        'border:none !important;' +
        'background:transparent !important;' +
        'padding: 4px 10px !important;' +
        'min-width: 0 !important;' +
        'font: 13px !important ;' +
        '}' +
        ' input#rt_submit.button2
        {' +
        'color: #AD2930 !important;' +
        'cursor: pointer;' +
        'border:none !important;' +
        'background:transparent !important;' +
        'background-image:none !important; ' +
        'padding: 4px 10px !important;' +
        'min-width: 0 !important;' +
        'font: 13px !important ;' +
        '}' +
        '.input_text:focus {' +
        'border: none !important;' +
        'box-shadow: 2px 2px 5px #333;' +
                    '}' +
                    '#ipsGlobalNotification {' +
                        'font-weight: bold;' +
                        'left: 50%;' +
                        'margin-left: -250px;' +
                        'position: fixed;' +
                        'text-align: center;' +
                        'top: 20px;' +
                        'z-index: 10000;' +
                    '}' +
                    '.popupWrapper {' +
                        'background-color: rgba(70, 70, 70, 0.6);' +
                        'border-radius: 4px 4px 4px 4px;' +
                        'box-shadow: 0 12px 25px rgba(0, 0, 0, 0.7);' +
                        'padding: 4px;' +
                    '}' +
                    '.popupInner {' +
                        'background: none repeat scroll 0 0 #FFFFFF;' +
                        'box-shadow: 0 0 3px rgba(0, 0, 0, 0.4);' +
                        'overflow-x: hidden;' +
                        'overflow-y: auto;' +
                        'width: 500px;' +
                    '}' +
                    '.ipsPad {' +
                        'padding: 9px;' +
                    '}' +
                    '</style>',
                sTarget: '',
                sSearch: '',
                sExpression0: '',
                sExpression1: ''
            };
            /***
            * User Definition Variables
            ***/
            oMTConfig.sErrorMsg = 'Attention! \ n\ n Une erreur est survenue lors de l\'édition du titre, attendez 10 secondes et essayez à nouveau!';
            oMTConfig.sSavingMsg = 'Mise à jour du titre du sujet attente ...';
            oMTConfig.sDoneMsg = 'Le titre du sujet a été mis à jour!';

            window.onload = function() { //jQuery(function () {
                if (_userdata.user_level >= 1) {
                    /* Forum versions! */
                    var phpBB2 = jQuery('.bodyline');
                    var phpBB3 = jQuery('#wrap');
                    var punbb = jQuery('#pun-intro');
                    var invision = jQuery('#ipbwrapper');

                    if (phpBB2.length) {
                        oMTConfig.sTarget = '.forumline td.row3Right span.postdetails';
                        oMTConfig.sExpression0 = 'oClicked.parent().parent().parent().find("td a.topictitle");';
                        oMTConfig.sExpression1 = 'jQuery("#page-body .forumline .postbody:first", data).parents("tr:eq(1)").attr("id").split("p")[1];'
                    } else if(phpBB3.length) {
                        oMTConfig.sTarget = 'ul.topiclist.topics.bg_none dd.lastpost ';
                        oMTConfig.sExpression0 = 'oClicked.parent().parents("dl.icon").find("dd.dterm a.topictitle");';
                        oMTConfig.sExpression1 = 'jQuery("#main-content .post:first", data).attr("id").split("p")[1];';
                    } else if(punbb.length) {
                        oMTConfig.sTarget = '.statused td.tcr';
                        oMTConfig.sExpression0 = 'oClicked.parents("tr").find(".tcl.tdtopics a.topictitle");';
                        oMTConfig.sExpression1 = 'jQuery(".posthead:first", data).attr("id").split("p")[1];';
                    } else if(invision.length) {
                        oMTConfig.sTarget = 'table.ipbtable tbody td.row1.lastaction';
                        oMTConfig.sExpression0 = 'oClicked.parents("tr").find("td a.topictitle");';
                        oMTConfig.sExpression1 = 'jQuery("#main-content .borderwrap .post:first", data).attr("id").split("p")[1];';
                    };

                    jQuery(oMTConfig.sCSS).insertBefore('body');
                    jQuery('body').append(oMTConfig.sMenu);
                    jQuery(oMTConfig.sTarget).append(oMTConfig.sContent);

                    jQuery('a.ipsModMenu').click(function () {
                        var oClicked = jQuery(this);
                        var oTarget = jQuery('#topic_mod_menucontent');

                        if (oTarget[0].style.display == 'none') {
                            oClicked.addClass('menu_active');

                            oMTConfig.oTopicTitle = eval(oMTConfig.sExpression0);
                            oMTConfig.sTopicHref = oMTConfig.oTopicTitle.attr('href');
                            oMTConfig.iTopicID = oMTConfig.sTopicHref.substring(2, oMTConfig.sTopicHref.indexOf("-")); // .split(/[\/t-]/)[2]; <- More fast???
                            oMTConfig.sTopicTitle = oMTConfig.oTopicTitle.text();

                            var TID = jQuery('input[name="tid"]').val();

                            jQuery('#t_lock').attr('href', '/modcp?mode=lock&t=' + oMTConfig.iTopicID  + '&tid=' + TID);
                            jQuery('#t_move').attr('href', '/modcp?mode=move&t=' + oMTConfig.iTopicID  + '&tid=' + TID);
                            jQuery('#t_hide').attr('href', '/modcp?mode=trash&t=' + oMTConfig.iTopicID  + '&tid=' + TID);
                            jQuery('#t_delete').attr('href', '/modcp?mode=delete&t=' + oMTConfig.iTopicID  + '&tid=' + TID);

                            oTarget
                                .css({
                                    'left': (oClicked.offset().left + oClicked.outerWidth()) - oTarget.outerWidth(),
                                    'top': oClicked.offset().top + oClicked.outerHeight()
                                })
                                .fadeIn(400);

                            jQuery(document).mousedown(function() {
                                if(!oTarget.is(":hover")) {
                                    jQuery(document).unbind('mousedown');
                                    oClicked.removeClass('menu_active');
                                    oTarget.fadeOut(400);
                                }
                            });

                        } else {
                            oClicked.removeClass('menu_active');
                            oTarget.fadeOut(400);
                        }
                        return false;
                    });
                }
            }; // });

            function _rename_Topic() {
                oMTConfig.oTopicTitle.hide();
                var sHtml =
                    '<span id="rename-topic">' +
                    '<input type="text" maxlength="150" size="50" class="input_text" value="' + oMTConfig.sTopicTitle + '" id="rt_input" style="width: 56%; margin-right: 4px;">' +
                        '<input type="submit" id="rt_submit" class="button2" value="Enregistrer" onclick="_rt_commit()" style="margin-right: 4px;">' +
                        '<a title="Annuler" class="cancel" id="rt_cancel" href="#" onclick="jQuery(\'#rename-topic\').remove();oMTConfig.oTopicTitle.show();return false;">Annuler</a>' +
                  '</span>';
                oMTConfig.oTopicTitle.before(sHtml);

                jQuery('#rt_input').keydown(function (e){
                    if(e.keyCode == 13 && jQuery('#rt_input').val() !== ''){
                        _rt_commit();
                    }
                });
            }

            function _rt_commit() {
                var iPostID = 0, user_Msg = '';
                var sNewTitle = jQuery('#rt_input').val();
                if (sNewTitle == '') return false;

                jQuery('body').append('<div id="ipsGlobalNotification"><div class="popupWrapper"><div class="popupInner"><div class="ipsPad">' + oMTConfig.sSavingMsg + '</div></div></div></div>');
                jQuery('#rename-topic').css('opacity', '0.4');

                jQuery.get(oMTConfig.sTopicHref, function(data) {
                    iPostID = eval(oMTConfig.sExpression1);
                }).done(function(){
                    jQuery.get("/post?p=" + iPostID + "&mode=editpost", function(data) {
                        user_Msg = jQuery(data).find('#text_editor_textarea[name="message"]').val();
                    }).done(function(){
                        jQuery.post("/post?p=" + iPostID + "&mode=editpost", {
                            subject: sNewTitle,
                            message: user_Msg,
                            edit_reason: '',
                            attach_sig: '1',
                            notify: "0",
                            post: 1
                        }).done(function(){
                            jQuery('#ipsGlobalNotification').remove();
                            jQuery('#rename-topic').remove();
                            oMTConfig.oTopicTitle.show().text(sNewTitle);
                            jQuery('body').append('<div id="ipsGlobalNotification"><div class="popupWrapper"><div class="popupInner"><div class="ipsPad">' + oMTConfig.sDoneMsg + '</div></div></div></div>');
                            setTimeout(function() {
                                jQuery('#ipsGlobalNotification').remove();
                            }, 4000);
                        }).fail(function(){
                            jQuery('#ipsGlobalNotification').remove();
                            oMTConfig.oTopicTitle.show();
                            alert(oMTConfig.sErrorMsg);
                        });
                    }).fail(function(){
                        jQuery('#ipsGlobalNotification').remove();
                        oMTConfig.oTopicTitle.show();
                        alert(oMTConfig.sErrorMsg);
                    });
                }).fail(function(){
                    jQuery('#ipsGlobalNotification').remove();
                    oMTConfig.oTopicTitle.show();
                    alert(oMTConfig.sErrorMsg);
                });
            }


Merci pour votre aide.


Dernière édition par photoclic le Jeu 30 Avr 2020 - 11:08, édité 1 fois
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mer 29 Avr 2020 - 16:24

Hello Serge,
on ne partira pas de ce script mais plutôt d'un autre développement.


As tu le même visu que ceci pour les inputs:



Poster le sujet en tant que: Normal Note Annonce Annonce globale
avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mer 29 Avr 2020 - 16:58

Hello Philippe,

Oui, j'ai bien cette visu.
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mer 29 Avr 2020 - 19:03

Re Serge,
alors ce ne sera pas possible de la faire directement via la liste des sujets.

Par contre on peut mettre un lien visible que par les membres ayant droits de modération  à côté du sujet (dans la liste des sujets).




Tu auras après chaque sujet , le lien menant directement à l'édition du premier message et une ancre amènera le membre ayant des droits de modération à ce niveau:


[PHPBB3] Passer un sujet en note ou normal sans éditer le sujet 245

Cette ancre sera modifiable sur la hauteur négative dans le template.

La c.s.s est elle aussi modifiable, on peut afficher le lien juste au survol de la cellule
ou alors le laisser affiché de façon permanente:

Si affichage au survol:
Code:

.M14_edit_moder{margin-left:5px;display:none;}
dl.icon:hover .M14_edit_moder{display:inline-block;}

Si de façon permanente:

Code:

.M14_edit_moder{margin-left:5px;}


On va donc intervenir dans template posting_body
Affichage/Templates/Poster et messages privés/posting_body


Recherches ceci (ligne 169 environ):

Code:
<div class="panel row2">
        <div class="inner">
            <span class="corners-top"><span></span></span>
            <fieldset class="submit-buttons">

Juste avant déposes ceci:
Code:
<a id="M14_topicChoice" style="position: relative;top: -30px;"></a>

C'est ici qu'il faudra modifier la valeur négative.

Plus bas recherches cette variable:

Code:
{S_TYPE_TOGGLE}

Supprimes et remplaces par:
Code:
<span class="M14_choice-type">{S_TYPE_TOGGLE}</span>


Penser a enregistrer puis à valider en cliquant respectivement sur   Enregistr puis Ajout

Dans le template topics_list_box:
Affichage/Templates/Général/topics_list_box


Il me semble que tu as déjà modifié cette partie, mais je le donne tout de même pour d'autres membres...

Recherches cette variable:
Code:
{topics_list_box.row.TOPIC_TYPE}

Supprimes et remplaces par:
Code:
<span class="M14_type_post">{topics_list_box.row.TOPIC_TYPE}</span>


Penser a enregistrer puis à valider en cliquant respectivement sur   Enregistr puis Ajout

Et enfin le script:


Modules/HTML&JAVASCRIPT/Gestion des codes Javascript/Créer un nouveau Javascript

Mettre un titre explicite.

Cocher sur les sous-forums

Déposer ceci:

Code:

$(function(){
var moder=$('a[href^="/modcp?f"]').length;
$('li[class^="row"]').find('.M14_type_post').each(function(){
var $this=$(this);
if(moder)  
{
var link=$(this).closest('dd').find('a.topictitle[href^="/t"]').attr('href');
$.get(link, function(data){
var edition= $(data).find('div[class*="post--"]:first').find('a[href$="mode=editpost"]').attr('href');
$this.closest('dd').find('.span-tab').after('<span class="M14_edit_moder"><a href="'+edition+'#M14_topicChoice"class="M14_edit_moder_edit">Modifier </a></span>');
});}});});

Penser a cliquer sur le bouton Valid


Et voilou  hinhin .
avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mer 29 Avr 2020 - 20:13

C'est en place Philippe, un grand merci.

j'ajusterai tout ça dans la soirée.

Bonne soirée et à demain.
avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mer 29 Avr 2020 - 22:33

Le script fonctionne Phil et j'opte pour l'affichage au survol comme pour pour autre bouton de modération.

Mais je n'arrive pas à réaliser 2 choses:
. Régler le top de -30px car avec la prévisualisation, impossible d'arriver en bas de page où il faut.
. Placer le mot modifier à côté de mon autre bouton.
D'ailleurs mon bouton actuel de modération ne se place pas au même endroit dans les annonces et notes et dans la liste des sujets. un problème de css que je n'arrive pas à régler.

Serait-il aussi possible de remplacer le mot modifier par une image?
Celle-ci par exemple:
https://i.servimg.com/u/f31/19/32/37/01/gear1010.png

L'idéal serait un positionnement ainsi:

Spoiler:
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Jeu 30 Avr 2020 - 4:09

Hello Serge,
pour placer le script à coté de l'outil de modération et mettre une image
en remplacement du texte:

Code:
$(function(){
var moder=$('a[href^="/modcp?f"]').length;
$('li[class^="row"]').each(function(){
var $this=$(this);
if(moder) 
{
var img="https://i.servimg.com/u/f31/19/32/37/01/gear1010.png";
var link=$(this).find('a.topictitle[href^="/t"]').attr('href');
$.get(link, function(data){
var edition= $(data).find('div[class*="post--"]:first').find('a[href$="mode=editpost"]').attr('href');
$this.find('.lastpost').after('<span class="M14_edit_moder"><a href="'+edition+'#M14_topicChoice"class="M14_edit_moder_edit"><img src="'+img+'"/></a></span>');
});}});});

Il ne te reste plus qu'à équilibrer les deux outils de modération Serge avec la c.s.s.


Pour l'ancre:
Code:
<a id="M14_topicChoice" style="position: relative;top: -30px;"></a>

Essayes ce la positionner après cette la première div ici:
Code:

<div class="panel row2">
        <div class="inner">
            <span class="corners-top"><span></span></span>
            <fieldset class="submit-buttons">

Comme ceci:
Code:

<div class="panel row2">
<a id="M14_topicChoice" style="position: relative;top: -30px;"></a>
        <div class="inner">
            <span class="corners-top"><span></span></span>
            <fieldset class="submit-buttons">




avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Jeu 30 Avr 2020 - 11:07

Bonjour Philippe,

Pour le placement de l'outil, c'est parfait avec ce script et l'image.
Juste ajouté un title et ajusté le css.

Pour l'ancre, c'est bien mieux aussi, mais avec un top positif.

Un grand merci l'ami pour tout ça tape la
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Jeu 30 Avr 2020 - 16:00

De rien Serge,


Hello


Sujet résolu et déplacé dans le forum adéquate

A bientôt pour une prochaine demande clin oeil



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