Como criar tópico já com pergunta

3 participantes

Ver o tópico anterior Ver o tópico seguinte Ir para baixo

Tópico resolvido Como criar tópico já com pergunta

Mensagem por Gabriel_Júnior 13.10.21 0:19

Detalhes da questão


Endereço do fórum: https://brasilplayfatalrpg.forumeiros.com/
Versão do fórum: AwesomeBB

Descrição


https://i.imgur.com/0ul91kP.png
Gostaria de saber como faz isso igual o de vcs
Gabriel_Júnior

Gabriel_Júnior
Nível 1

Masculino
Membro desde : 12/10/2021
Mensagens : 2
Pontos : 8

https://brasilplayfatalrpg.forumeiros.com/t1-seu-primeiro-topico

Ir para o topo Ir para baixo

Admineiro

Tópico resolvido Re: Como criar tópico já com pergunta

Mensagem por pedxz 13.10.21 14:45

Olá @Gabriel_Júnior,

Seguindo o tutorial "Criar novos campos ao publicar um novo tópico" use o seguinte código em Todas as páginas:
Código:
/*globals jQuery, FA*/

/**
 * Criar inputs na criação do tópico.
 *
 * @author lffg <https://github.com/lffg>
 * @version 1.0
 */
(function($) {
    'use strict';

    var inputs = [{
        label: 'Label do Input 1',
        placeholder: 'Placeholder do Input 1',
        insert: '[b]Valor do Input 1:[/b] {{CONTENT}}. \n\n', // {{CONTENT}} = O que o usuário colocou.
        required: true
    }, {
        label: 'Label do Input 2',
        placeholder: 'Placeholder do Input 2',
        insert: '[b]Valor do Input 2:[/b] {{CONTENT}}. \n\n', // O caractere especial \n é o mesmo que uma quebra de linha.
        required: true
    }, {
        label: 'Label do Input 3',
        insert: '[b]Valor do Input 3:[/b] {{CONTENT}}. \n\n',
        required: false
    }];

    inputs.reverse();

    window.FA = window.FA || {};
    FA.Posting = FA.Posting || {};

    var Inputs;
    FA.Posting.Inputs = Inputs = function(userConfig) {
        var self = this;

        self.defaults = {
            label: undefined,
            placeholder: undefined,
            insert: undefined,
            forums: [1, 2],
            required: false
        };

        self.userConfig = userConfig;

        self.config = $.extend({}, self.defaults, self.userConfig);
    };

    Inputs.prototype.init = function() {
        var self = this;

        if (!$.sceditor) {
            return false;
        }

        if (self.config.forums.indexOf('*') === -1) {
            var hrefId = parseInt(location.href.replace(/^.*\/post\?f=(\d+)&.*$/g, '$1'));

            if (self.config.forums.indexOf(hrefId) === -1) {
                return false;
            }
        }

        self.generate();
        self.listen(function() {
            self.parse();
        });
    };

    Inputs.prototype.generate = function() {
        var self = this;

        self.$wrapper = $([
            '<dl>',
            '  <dt>',
            '    ' + $('<label>', {
                'text': self.config.label
            }).prop('outerHTML'),
            '  </dt>',
            '  <dd>',
            '    ' + $('<input />', {
                'type': 'text'
            }).prop('outerHTML'),
            '  </dd>',
            '</dl>'
        ].join('\n'));

        self.$input = self.$wrapper.find('input');

        self.$input
            .attr('class', 'input-subtle fa-generated-input')
            .attr('data-content', self.config.insert)
            .attr('placeholder', self.config.placeholder || '');

        if (self.config.required) {
            self.$input.attr('required', 'required');
        }

        $('input[name="subject"]')
            .after(self.$wrapper);
    };

    Inputs.prototype.listen = function(fn) {
        var selectors = [
            '[required]',
            '[required="required"]',
            '[name="subject"]'
        ];

        $('[type="submit"]').on('click', function() {
            if ($(selectors.join(',')).val() === '') {
                return;
            }

            fn();
        });
    };

    Inputs.prototype.parse = function() {
        var self = this;

        var $sceditor = $('#text_editor_textarea').sceditor('instance');

        var content = self.config.insert;
        var value = $.trim(self.$input.val());

        content = content.replace(/{{CONTENT}}/gi, value);

        $sceditor.val(content + $sceditor.val());
    };

    $(function() {
        $.each(inputs, function() {
            var self = this;

            (new FA.Posting.Inputs(self)).init();
        });
    });
}(jQuery));
Explicação
Nesta parte do código é onde pode adicionar ou retirar campos a serem apresentados:
Código:
    var inputs = [{
        label: 'Label do Input 1',
        placeholder: 'Placeholder do Input 1',
        insert: '[b]Valor do Input 1:[/b] {{CONTENT}}. \n\n', // {{CONTENT}} = O que o usuário colocou.
        required: true
    }, {
        label: 'Label do Input 2',
        placeholder: 'Placeholder do Input 2',
        insert: '[b]Valor do Input 2:[/b] {{CONTENT}}. \n\n', // O caractere especial \n é o mesmo que uma quebra de linha.
        required: true
    }, {
        label: 'Label do Input 3',
        insert: '[b]Valor do Input 3:[/b] {{CONTENT}}. \n\n',
        required: false
    }];
Retirar um campo basta apagar o formato base:
Código:
label: 'Label do Input 1',
        placeholder: 'Placeholder do Input 1',
        insert: '[b]Valor do Input 1:[/b] {{CONTENT}}. \n\n', // {{CONTENT}} = O que o usuário colocou.
        required: true
    }
ficando por exemplo:

Código:
    var inputs = [{
        label: 'Label do Input 1',
        placeholder: 'Placeholder do Input 1',
        insert: '[b]Valor do Input 1:[/b] {{CONTENT}}. \n\n', // {{CONTENT}} = O que o usuário colocou.
        required: true
    }, {
        label: 'Label do Input 2',
        placeholder: 'Placeholder do Input 2',
        insert: '[b]Valor do Input 2:[/b] {{CONTENT}}. \n\n', // O caractere especial \n é o mesmo que uma quebra de linha.
        required: true
    }];
Já para adicionar é fazer o inverso:
Código:
    var inputs = [{
        label: 'Label do Input 1',
        placeholder: 'Placeholder do Input 1',
        insert: '[b]Valor do Input 1:[/b] {{CONTENT}}. \n\n', // {{CONTENT}} = O que o usuário colocou.
        required: true
    }, {
        label: 'Label do Input 2',
        placeholder: 'Placeholder do Input 2',
        insert: '[b]Valor do Input 2:[/b] {{CONTENT}}. \n\n', // O caractere especial \n é o mesmo que uma quebra de linha.
        required: true
    }, {
        label: 'Label do Input 3',
        placeholder: 'Placeholder do Input 3',
        insert: '[b]Valor do Input 2:[/b] {{CONTENT}}. \n\n', // O caractere especial \n é o mesmo que uma quebra de linha.
        required: true
    }, {
        label: 'Label do Input 4',
        placeholder: 'Placeholder do Input 4',
        insert: '[b]Valor do Input 2:[/b] {{CONTENT}}. \n\n', // O caractere especial \n é o mesmo que uma quebra de linha.
        required: true
    }];
Nesta parte do código forums: [1], é o ID do subfórum onde os campos vão ser apresentados. Use uma virgula para mais que um subfórum forums: [1, 2],


Atenciosamente,
pedxz.
pedxz

pedxz
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7143
Pontos : 8374

Ir para o topo Ir para baixo

Tópico resolvido Re: Como criar tópico já com pergunta

Mensagem por Mpezin 22.10.21 19:38

Tópico resolvido


Tópico arquivado por inatividade por parte do autor, marcado como resolvido por ter solução apropriada à questão.
Mpezin

Mpezin
Nível 9

Masculino
Membro desde : 28/05/2020
Mensagens : 184
Pontos : 173

https://ajuda.forumeiros.com/

Ir para o topo Ir para baixo

Ver o tópico anterior Ver o tópico seguinte Ir para o topo


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