Widget Botao Obrigado

4 participantes

Ir para baixo

Tópico resolvido Widget Botao Obrigado

Mensagem por empireofwars 30.03.20 4:17

Detalhes da questão


Endereço do fórum: https://empireofwars.forumotion.com/
Versão do fórum: phpBB3

Descrição


Gostaria de saber se da para criar um widget para os tópicos que forem marcados no botão "obrigado" na mensagem.

Eu vi isso num fórum inglês forumiros por isso com certeza e possível
empireofwars
empireofwars
***

Membro desde : 16/03/2020
Mensagens : 115
Pontos : 161

https://empireofwars.forumotion.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Widget Botao Obrigado

Mensagem por MateusAnjosV 30.03.20 11:34

Bom dia!

Sim, dá, mas teríamos que armazenar num banco de dados - o que não é possível diretamente na Forumeiros - ou fazer dezenas de requisições em todos os subfóruns.
Em qual fórum viu isso? E, parando para pensar, e quando a lista for imensa?
MateusAnjosV
MateusAnjosV
Super Membro

Membro desde : 16/10/2015
Mensagens : 1718
Pontos : 2373

http://holder.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Widget Botao Obrigado

Mensagem por empireofwars 30.03.20 13:45

Certo, vi neste forum
https://avacweb.forumotion.co.uk/

Neste caso teria de limitar os ultimos 10 resolvidos
empireofwars
empireofwars
***

Membro desde : 16/03/2020
Mensagens : 115
Pontos : 161

https://empireofwars.forumotion.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Widget Botao Obrigado

Mensagem por empireofwars 02.04.20 16:08

E possivel me ajudar?
empireofwars
empireofwars
***

Membro desde : 16/03/2020
Mensagens : 115
Pontos : 161

https://empireofwars.forumotion.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Widget Botao Obrigado

Mensagem por empireofwars 06.04.20 19:12

E possivel me ajudar?
empireofwars
empireofwars
***

Membro desde : 16/03/2020
Mensagens : 115
Pontos : 161

https://empireofwars.forumotion.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Widget Botao Obrigado

Mensagem por Sleep 07.04.20 12:11

empireofwars escreveu:Certo, vi neste forum
https://avacweb.forumotion.co.uk/

Neste caso teria de limitar os ultimos 10 resolvidos

Bom dia,

Mas uma vez repito, aguarde... não fique dando Up's no tópico...

Em primeiro lugar, aquele Widget não é de tópicos com "Obrigado" e sim de Usuários com mais "Obrigados"...

Seria realmente o que precisaria de ajuda? Seja mais explicito, e menos spam/flood.

Atenciosamente,
Sleep
Sleep
Sleep
Ajudeiro
Ajudeiro

Membro desde : 10/08/2012
Mensagens : 1117
Pontos : 1352

https://ajuda.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Widget Botao Obrigado

Mensagem por empireofwars 07.04.20 13:21

Sleep escreveu:
empireofwars escreveu:Certo, vi neste forum
https://avacweb.forumotion.co.uk/

Neste caso teria de limitar os ultimos 10 resolvidos

Bom dia,

Mas uma vez repito, aguarde... não fique dando Up's no tópico...

Em primeiro lugar, aquele Widget não é de tópicos com "Obrigado" e sim de Usuários com mais "Obrigados"...

Seria realmente o que precisaria de ajuda? Seja mais explicito, e menos spam/flood.

Atenciosamente,
Sleep

Primeiramente voce tera de ver o tempo de resposta e nao vir apenas "pegar" posts.

Esse forum tinha sim o widget que falei que eu encontrei no web archive.

Outro print que encontrei que isso era possivel é isto.

Widget Botao Obrigado Captur11
empireofwars
empireofwars
***

Membro desde : 16/03/2020
Mensagens : 115
Pontos : 161

https://empireofwars.forumotion.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Widget Botao Obrigado

Mensagem por Sleep 07.04.20 15:34

MateusAnjosV escreveu:Bom dia!

Sim, dá, mas teríamos que armazenar num banco de dados - o que não é possível diretamente na Forumeiros -  ou fazer dezenas de requisições em todos os subfóruns.
Em qual fórum viu isso? E, parando para pensar, e quando a lista for imensa?

Boa tarde,

Utilizando aqui o que o colega disse, é possível, embora complicado, e não seja possível, pelo Fdf...

No entanto, existe uma maneira de listar todos os tópicos resolvidos, e por resolver, com base em php, mas demoraria um pouco a adaptar o codigo ao seu forum.. Mas pelo que sei, o Fdf não dá suporte a Php..

Com recursos atuais, não vejo possíbilidades!

Atenciosamente,
Sleep
Sleep
Sleep
Ajudeiro
Ajudeiro

Membro desde : 10/08/2012
Mensagens : 1117
Pontos : 1352

https://ajuda.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Widget Botao Obrigado

Mensagem por empireofwars 08.04.20 1:08

Mas neste caso como mostrei o print abaixo, nao foi por php ou neste caso, foi feito e estava a funcionar

Widget Botao Obrigado Captur11
empireofwars
empireofwars
***

Membro desde : 16/03/2020
Mensagens : 115
Pontos : 161

https://empireofwars.forumotion.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Widget Botao Obrigado

Mensagem por Sleep 08.04.20 8:53

Bom dia,

Tente isto:

Painel de controlo seta1 Módulos seta1 Gestão de Widgets do Forúm
No painel de controle, siga os passos da imagem abaixo:
Widget Botao Obrigado 0nyla0w

Código para ser adicionado como novo Widget:
Copyright do Code: do Nosso grande JScript
Código:
<!--
 * Application: Widget of the last 10 tutorials
 * Description: This application can displays the last tutorials and member avatar of topics.
 * Version: 1.08032014-jq1.9.1 - Sobek (Khnum & Maet)
 * Made and Optimizations by JScript - 2014/03/08
 * View more in: http://jscript.forumeiros.com/forum & 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
 -->
 
<div id="insert_widget">Loading...</div>

<script type="text/javascript">
//<![CDATA[
/***
* User Definition Variables
***/
/* Put here your forum number!!! */
var sForumNumber = 16;
/* Put here your widget title!!! */
var sWidgetTitle = 'Tópicos Resolvidos'
/* END */

/***
* System Defined Variables - Do not edit if you don't know!
***/
var oConfig = {
        sInfo:
            '<!--' +
            '* Application: Widget of the last 10 tutorials' +
            '* Description: This application can displays the last tutorials and member avatar of topics.' +
            '* Version: 1.08032014-jq1.9.1 - Sobek (Khnum & Maet)' +
            '* Made and Optimizations by JScript - 2014/03/08' +
            '* View more in: http://jscript.forumeiros.com/forum & 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' +
            '-->',        
        sContent:
            '<div id="mod_recent_tutorials" class="main-content _sbcollapsable" style="margin: 0px; height: 213px; max-height: 225px; overflow: auto;">' +
                '<!-- #region recent_topic_row -->' +
                '<ul id="ul_recent_tutorials" class="ipsList_withminiphoto" style="margin: 0px ! important; padding-left: 0px ! important;">' +
                '<!-- content -->' +
                '</ul>' +
                '<!-- #endregion recent_topic_row -->' +
            '</div>',
        sCSS:
            '<style>' +
            '.ipsList_withminiphoto li {' +
               'margin-bottom: 8px;' +
           '}' +
           '.ipsType_smaller, .ipsType_smaller a {' +
               'font-size: 11px !important;' +
           '}' +
           '.ipsUserPhoto.ipsUserPhoto_mini {' +
               'width: 30px;' +
               'height: 30px;' +
               'border: 1px solid rgb(213, 213, 213);' +
               'background: none repeat scroll 0% 0% rgb(255, 255, 255);' +
               'box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.1);' +
               'padding: 1px;' +
           '}' +
           '.ipsType_small {' +
               'font-size: 12px;' +
           '}' +
            '.desc.ipsType_smaller {' +
                'color: #777777;' +
                'margin: 0;' +
            '}' +
            '.list_content {' +
                'margin-left: 40px;' +
                'word-wrap: break-word;' +
            '.ipsList_withminiphoto {' +
                'list-style: none outside none !important;' +
            '}' +
            '</style>',
        sTarget: '',
        sFound: 'td:eq(2)',
        sCommon: 'a.topictitle',
        sGetIMG: ''
    };
var oHtml = {
        PHPBB2: oConfig.sInfo +
            '<table border="0" cellpadding="0" cellspacing="1" class="forumline" width="100%">' +
                '<tbody>' +
                    '<tr>' +
                        '<td class="catLeft" height="25"><span class="genmed module-title">' + sWidgetTitle + '</span></td>' +
                    '</tr>' +
                    '<tr>' +
                        '<td align="left" class="row1">' + oConfig.sContent +
                        '</td>' +
                    '</tr>' +
                '</tbody>' +
            '</table>',
        PHPBB3: oConfig.sInfo +
            '<div class="module">' +
                '<div class="inner">' +
                    '<span class="corners-top"><span></span></span>' +
                    '<div class="h3">' + sWidgetTitle + '</div>' + oConfig.sContent +
                    '<span class="corners-bottom"><span></span></span>' +
                '</div>' +
            '</div>',
        PUNBB: oConfig.sInfo +
            '<div class="module main">' +
                '<div class="main-head"><h3>' + sWidgetTitle + '</h3></div>' + oConfig.sContent +
            '</div>',
        INVISION: oConfig.sInfo +
            '<div class="module borderwrap">' +
                '<div class="maintitle"><h3>' + sWidgetTitle + '</h3></div>' +
                '<div class="box-content">' + oConfig.sContent + '</div>' +
            '</div>'
 };

jQuery(function () {
    /* Add CSS */
    /*document.head.insertAdjacentHTML('beforeEnd', oConfig.sCSS);*/
    jQuery(oConfig.sCSS).insertBefore('body');

    /* Forum versions! */
    var phpBB2 = jQuery('.bodyline');
    var phpBB3 = jQuery('#wrap');
    var punbb = jQuery('#pun-intro');
    var invision = jQuery('#ipbwrapper');
    
    if (phpBB2.length) {
        jQuery('#insert_widget').html(oHtml.PHPBB2);
        oConfig.sTarget = '.three-col td:eq(1) > table.forumline:last tbody tr:not(":empty")';
        oConfig.sGetIMG = ' #emptyidcc .row1.gensmall img:eq(0)';
    } else if(phpBB3.length) {
        jQuery('#insert_widget').html(oHtml.PHPBB3);
        oConfig.sTarget = '.topiclist.topics.bg_none li:not(":empty")';
        oConfig.sFound = 'dd.dterm';
        oConfig.sGetIMG = ' #profile-advanced-right img:eq(0)';
    } else if(punbb.length) {
        jQuery('#insert_widget').html(oHtml.PUNBB);
        oConfig.sTarget = '.statused tr:not(":empty")';
        oConfig.sFound = '.tcl.tdtopics';
        oConfig.sGetIMG = ' #profile-advanced-right .main-content img:first';
    } else if(invision.length) {
        jQuery('#insert_widget').html(oHtml.INVISION);
        oConfig.sTarget = '.borderwrap table.ipbtable tbody tr:not(":empty")';
        oConfig.sGetIMG = ' #profile-advanced-right .box-content.profile.center img:first';
    };
    
    /* Fire event for 'scroll' to show the widget... */
    var elem = document.getElementById("insert_widget");
    if (isInViewPort(elem)) {
        LastTutorials();
    } else {
        jQuery(window).on('scroll.widget', showWidget(elem));
    }
});

/* Function to check if an element is visible in view port */
function isInViewPort(elem) {
 var rect = elem.getBoundingClientRect();

 return (
 rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && /*or $(window).height() */
 rect.right <= (window.innerWidth || document.documentElement.clientWidth) /*or $(window).width() */ );
}
/* Start function to show the widget... */
function showWidget(elem) {
 return function() {
        /* Chech if the widget is visible in view port! */
 if (isInViewPort(elem)) {
            /* If visible, stop event!!! */
 jQuery(window).off('scroll.widget');
            
            LastTutorials();
 }
 }
}
/* Widget conent */
function LastTutorials() {
    var oTarget = 0;
    /* First forum link to read info */
    jQuery.get('/f' + sForumNumber + '-', function(data) {
        oTarget = jQuery(oConfig.sTarget, data);
    }).always(function() {
        var i = 0
        oTarget.each(function() {
            if (i == 10) {
                return false;
            }
            var oThis = jQuery(this); /* DOM chached for fast execution! */
            var oFound = oThis.find(oConfig.sFound);
            if (oFound.length) {
                var sTopicTitle = oFound.find(oConfig.sCommon).parent().html();
                var oUserInf = oThis.find('a[href^="/u"]');
                var sAutor = oUserInf.html();
                var sUserUrl = oUserInf.attr('href');
                var sHtml =
                    '<li class="clearfix">' +
                        '<a href="' + sUserUrl + '" class="ipsUserPhotoLink left">' +
                            '<img src="" alt="Foto" class="ipsUserPhoto ipsUserPhoto_mini">' +
                        '</a>' +
                        '<div class="list_content">' +
                            '<span class="ipsType_small">' + sTopicTitle + '</span>' +
                            '<p class="desc ipsType_smaller">' +
                                'Criado por <a href="' + sUserUrl + '">' + sAutor + '</a>' +
                            '</p>' +
                        '</div>' +
                    '</li>';
                jQuery('#ul_recent_tutorials').append(sHtml);
            }
            i++
        });

        /* Now, read the member avatar info */
        /* DOM chached for fast execution! */
        oTarget = jQuery('#ul_recent_tutorials > li');
        oTarget.each(function(index) {
            oThis = jQuery(this); /* DOM chached for fast execution! */
            var load_container = oThis.children('a');
            var UserURL = load_container.attr('href');
            var def_img = "http://i78.servimg.com/u/f78/18/17/62/92/defaul10.png"; /* In case request profile errors! */
            var sHtml = '<img src="' + def_img + '" alt="Foto" class="ipsUserPhoto ipsUserPhoto_mini" style="width: 30px; height: 30px; border: 1px solid rgb(213, 213, 213); background: none repeat scroll 0% 0% rgb(255, 255, 255); box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.1); padding: 1px;">';
            /* Gets the avatar saved in local storage (Fastest!)*/
            var UserIMG = sessionStorage.getItem(UserURL);

            /* If avatar alread saved, then no request member profile! */
            if (UserIMG) {
                load_container.children('img').attr('src', UserIMG);
            } else { /* if not, then only request per session!!! */
                load_container.load(UserURL + oConfig.sGetIMG, function() {
                    var imgTag = load_container.children('img');

                    if (imgTag.length == 0) {
                        load_container.append(sHtml); /* Saves the default avatar in local storage */
                        sessionStorage.setItem(UserURL, def_img);
                    } else {
                        imgTag.attr('class', 'ipsUserPhoto ipsUserPhoto_mini');
                        imgTag.css({
                            'width': '30px',
                            'height': '30px',
                            'border': '1px solid rgb(213, 213, 213)',
                            'padding': '1px',
                            'background': 'none repeat scroll 0% 0% rgb(255, 255, 255)',
                            'box-shadow': '0px 2px 2px rgba(0, 0, 0, 0.1)'
                        });
                        /* Saves the member avatar in local storage */
                        sessionStorage.setItem(UserURL, imgTag.attr('src'));
                    }
                });
            }
        });
    });
}
//]]>
</script>

Observações:

1- Funciona em todas as versões!
2- O código entra em ação somente quando o widget está visível na tela, com isso poupa-se recursos e evita-se o Resquest Limit
3- * Terá que definir qual será o sub fórum em que será apresentado os tutoriais, para isso basta definir no código acima o valor da variável sForumNumber, exemplo:
Digamos que deseja mostrar os últimos 10 tópicos resolvidos deste endereço: https://ajuda.forumeiros.com/f28-widgets-e-modulos-personalizados
Basta pegar a parte que está em negrito e colocar na variável
var sForumNumber = 28;
4- * Para trocar o nome do Widget, basta editar a variável sWidgetTitle com o valor que desejar, exemplo: var sWidgetTitle = 'Tópicos Resolvidos'

Resultado:
Widget Botao Obrigado Captur11

Obs.: Repito que o codigo não é meu, simplesmente pode reutiliza-lo para o que deseja fazer!

Pode sempre colocar os "Tópicos Resolvidos" a direccionar para um Sub-Forum, e adicionar este Widget, forma simples e mais prática.

Já agora um grande abraço ao JScript, saudades dele!

Atenciosamente,
Sleep
Sleep
Sleep
Ajudeiro
Ajudeiro

Membro desde : 10/08/2012
Mensagens : 1117
Pontos : 1352

https://ajuda.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Widget Botao Obrigado

Mensagem por tikky 13.04.20 13:03

Tópico resolvido


Tópico marcado como resolvido pela equipe por abandono do autor.
tikky
tikky
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7964
Pontos : 9219

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos