Botão resolvido não aparece na lista de tópicos
3 participantes
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre códigos Javascript e jQuery
Página 1 de 1
Botão resolvido não aparece na lista de tópicos
Detalhes da questão
Endereço do fórum: http://darkstreetrpg.forumeiros.com
Versão do fórum: phpBB3
Descrição
Olá!
Estou usando o código abaixo para adicionar o botão resolvido nos tópicos:
- Código:
(function($) {
'use strict';
var config = {
icons: [
{
name: 'solved',
id: 2,
image: 'http://i.imgur.com/Qqw7Z0y.png'
}
],
message: [
'Administradores, ajude a organizar o fórum. ',
'Caso a denúncia tenha sido resolvida, clique no botão resolvido.'
].join(''),
message_icon: 'http://i.imgur.com/uPsiC.png',
};
var message = function() {
$([
'<style>',
' .fa-solved-message {',
' border: 1px solid green;',
' padding:5px;',
' color:#666666;',
' text-align:center;',
' font-family:Verdana;',
' font-size:11px',
' }',
' .fa-solved-message img {',
' height: 48px;',
' vertical-align: middle;',
' }',
'</style>',
].join('\n')).appendTo('head');
$([
'<div class="fa-solved-message">',
' <img src="' + config.message_icon + '" /> ',
' ' + config.message,
'</div>',
].join('\n')).insertBefore('.quick-nav-topics:first');
};
$(function() {
if (!_userdata.session_logged_in) {
return;
}
var $form = $('form[name="post"]');
if ($form.length) {
var submitting = false;
$.each(config.icons, function(index, icon) {
if ((new RegExp(icon.name + '=true', 'i')).test(location.search)) {
$('#post_icon_' + icon.id).prop('checked', true);
$('input[type="submit"]').prop('type', 'hidden');
$form.submit();
submitting = true;
return false;
}
});
if (submitting) {
return;
}
}
var $edit = $('.post:first .profile-icons a[href$="editpost"]');
if (!$edit.length) {
return;
}
var fid = ~~$('.pathname-box .nav:last')
.attr('href')
.split('/f')
.pop()
.split('-')
.shift()
;
var $container = $('.topic-actions .buttons');
var built = false;
$.each(config.icons, function(index, icon) {
if (icon.forums && icon.forums.length && icon.forums.indexOf(fid) === -1) {
return;
}
if (!built) {
message();
built = true;
}
$([
'<a href="' + $edit.attr('href') + '&' + icon.name + '=true">',
' <img src="' + icon.image + '">',
'</a>',
].join('\n')).appendTo($container);
});
});
}(jQuery));
O botão aparece pra clicar quando entro no tópico, porém quando clico nele a pagina atualiza e pede pra editar o post em vez de marcá-lo como resolvido.
Eu não edito nada e também quando vou na lista de tópico não aparece ao lado do tópico o botão resolvido.
OBS: Eu apliquei o script nos fóruns e tópicos!
O código da minha página topics_list_box:
- Código:
<!-- BEGIN topics_list_box -->
<!-- BEGIN row -->
<!-- BEGIN header_table -->
<!-- BEGIN multi_selection -->
<script type="text/javascript">
function check_uncheck_main_{topics_list_box.row.header_table.BOX_ID}()
{
alert('MAIN');
var all_checked = true;
for (i = 0; (i < document.{topics_list_box.FORMNAME}.elements.length) && all_checked; i++)
{
if (document.{topics_list_box.FORMNAME}.elements[i].name == '{topics_list_box.FIELDNAME}[]{topics_list_box.row.header_table.BOX_ID}')
{
all_checked = document.{topics_list_box.FORMNAME}.elements[i].checked;
}
}
document.{topics_list_box.FORMNAME}.all_mark_{topics_list_box.row.header_table.BOX_ID}.checked = all_checked;
}
function check_uncheck_all_{topics_list_box.row.header_table.BOX_ID}()
{
alert('ALL');
for (i = 0; i < document.{topics_list_box.FORMNAME}.length; i++)
{
if (document.{topics_list_box.FORMNAME}.elements[i].name == '{topics_list_box.FIELDNAME}[]{topics_list_box.row.header_table.BOX_ID}')
{
document.{topics_list_box.FORMNAME}.elements[i].checked = document.{topics_list_box.FORMNAME}.all_mark_{topics_list_box.row.header_table.BOX_ID}.checked;
}
}
}
</script>
<!-- END multi_selection -->
<div class="forumbg announcement">
<div class="inner"><span class="corners-top"><span></span></span>
<ul class="topiclist topics">
<li class="header">
<dl class="icon">
<dt>
<!-- BEGIN multi_selection -->
<input onclick="check_uncheck_all_{topics_list_box.row.header_table.BOX_ID}();" type="checkbox" name="all_mark_{topics_list_box.row.header_table.BOX_ID}" value="0" />
<!-- END multi_selection -->
{topics_list_box.row.L_TITLE}
</dt>
<dd class="posts">{topics_list_box.row.L_REPLIES}</dd>
<dd class="views">{topics_list_box.row.L_VIEWS}</dd>
<dd class="lastpost"><span>{topics_list_box.row.L_LASTPOST}</span></dd>
</dl>
</li>
</ul>
<ul class="topiclist topics bg_none">
<!-- END header_table -->
<!-- BEGIN header_row -->
<strong>{topics_list_box.row.L_TITLE}</strong>
<!-- END header_row -->
<!-- BEGIN topic -->
<!-- BEGIN table_sticky -->
</ul>
<span class="corners-bottom"><span></span></span></div>
</div>
<div class="forumbg">
<div class="inner"><span class="corners-top"><span></span></span>
<ul class="topiclist topics">
<li class="header">
<dl class="icon">
<!--<dd class="dterm">-->
<dd class="dterm" style="padding-left:0;">
<!-- BEGIN multi_selection -->
<input onclick="check_uncheck_all_{topics_list_box.row.header_table.BOX_ID}();" type="checkbox" name="all_mark_{topics_list_box.row.header_table.BOX_ID}" value="0" />
<!-- END multi_selection -->
{topics_list_box.row.topic.table_sticky.L_TITLE}
</dd>
<dd class="posts" style="padding-left:45px;">{topics_list_box.row.topic.table_sticky.L_REPLIES}</dd>
<!-- <dd class="authors">{topics_list_box.row.L_AUTHOR}</dd> -->
<dd class="views">{topics_list_box.row.topic.table_sticky.L_VIEWS}</dd>
<dd class="lastpost"><span>{topics_list_box.row.topic.table_sticky.L_LASTPOST}</span></dd>
</dl>
</li>
</ul>
<ul class="topiclist topics bg_none">
<!-- END table_sticky -->
<li class="row {topics_list_box.row.ROW_ALT_CLASS}"<!-- BEGIN line_sticky --> style="margin-top:5px;"<!-- END line_sticky --> >
<dl class="icon" style="background-image:url('{topics_list_box.row.TOPIC_FOLDER_IMG}');">
<dd class="dterm" title="{topicrow.TOPIC_FOLDER_IMG_ALT}" {topics_list_box.row.ICON}>
<!-- BEGIN single_selection -->
<input type="radio" name="{topics_list_box.FIELDNAME}" value="{topics_list_box.row.FID}" {topics_list_box.row.L_SELECT} />
<!-- END single_selection -->
{topics_list_box.row.NEWEST_POST_IMG}
{topics_list_box.row.PARTICIPATE_POST_IMG}
{topics_list_box.row.TOPIC_TYPE}
<div class="topic-title-container"><h2 class="topic-title hierarchy"><a class="topictitle" href="{topics_list_box.row.U_VIEW_TOPIC}">{topics_list_box.row.TOPIC_TITLE}</a></h2></div>
<!-- BEGIN switch_description -->
<br />
{topics_list_box.row.topic.switch_description.TOPIC_DESCRIPTION}
<!-- END switch_description -->
<br />
{topics_list_box.row.GOTO_PAGE_NEW}
<span class="span-tab"><!--{topics_list_box.row.L_BY}--><strong>Autor: {topics_list_box.row.TOPIC_AUTHOR}</strong></span>
<!-- BEGIN nav_tree -->{topics_list_box.row.TOPIC_NAV_TREE_NEW}<!-- END nav_tree -->
</dd>
<dd class="posts">{topics_list_box.row.REPLIES} <dfn>{L_REPLIES}</dfn></dd>
<dd class="views">{topics_list_box.row.VIEWS} <dfn>{L_VIEWS}</dfn></dd>
<dd class="lastpost">
<!-- BEGIN avatar -->
<span class="lastpost-avatar">{topics_list_box.row.topic.avatar.LAST_POST_AVATAR}</span>
<div style="float:left;">
<!-- END avatar -->
<span>{topics_list_box.row.LAST_POST_AUTHOR} <dfn>{L_LASTPOST}</dfn>
{topics_list_box.row.LAST_POST_IMG}<br style="clear:left;" />{topics_list_box.row.LAST_POST_TIME}</span>
<!-- BEGIN avatar -->
</div>
<!-- END avatar -->
</dd>
<!-- BEGIN multi_selection -->
<input onclick="javascript:check_uncheck_main_{topics_list_box.row.BOX_ID}();" type="checkbox" name="{topics_list_box.FIELDNAME}[]{topics_list_box.row.BOX_ID}" value="{topics_list_box.row.FID}" {topics_list_box.row.L_SELECT} />
<!-- END multi_selection -->
</dl>
</li>
<!-- END topic -->
<!-- BEGIN no_topics -->
<li class="row row1">
<dl>
<dt><strong>{topics_list_box.row.L_NO_TOPICS}</strong></dt>
</dl>
</li>
<!-- END no_topics -->
<!-- BEGIN bottom -->
</ul>
<span class="corners-bottom"><span></span></span></div>
</div>
<!-- END bottom -->
<!-- BEGIN spacer --><br /><!-- END spacer -->
<!-- END row -->
<!-- END topics_list_box -->
Re: Botão resolvido não aparece na lista de tópicos
A opção do botão resolvido está marcado como sim em seu painel de controle?
Re: Botão resolvido não aparece na lista de tópicos
Isso sim, mas não é o que eu quero! Simplesmente alterar o nome do tópico e add a tag [Resolvido] eu não preciso de código.soldado escreveu:A opção do botão resolvido está marcado como sim em seu painel de controle?
Eu quero add botões: Resolvido, Em Curso, Rejeitado, Aceito, etc.
Quero que esse botão aparece ao lado no tópico na lista de tópicos.
Re: Botão resolvido não aparece na lista de tópicos
Dê uma olhada neste tópico.
-> https://ajuda.forumeiros.com/t110240-
-> https://ajuda.forumeiros.com/t110240-
Re: Botão resolvido não aparece na lista de tópicos
Luiz escreveu:Dê uma olhada neste tópico.
-> https://ajuda.forumeiros.com/t110240-
Mano, já fiz isso e foi nesses tutoriais que peguei esse código, porém nenhum deles ta resolvendo.
O botão tá aparecendo quando abro o tópico, mas se eu clicar nele pede pra editar o tópico e não seta ele como resolvido e nem aparece na lista de tópicos.
Re: Botão resolvido não aparece na lista de tópicos
No seu Painel de Controle, vá em:
Geral -> Segurança.
Procure pela opção "Desautorizar formulários não oficiais de postarem no fórum e enviar mensagens privadas" e marque "não".
Isso resolve?
Geral -> Segurança.
Procure pela opção "Desautorizar formulários não oficiais de postarem no fórum e enviar mensagens privadas" e marque "não".
Isso resolve?
Re: Botão resolvido não aparece na lista de tópicos
Luiz escreveu:No seu Painel de Controle, vá em:
Geral -> Segurança.
Procure pela opção "Desautorizar formulários não oficiais de postarem no fórum e enviar mensagens privadas" e marque "não".
Isso resolve?
Não resolve porque já está marcado!
Re: Botão resolvido não aparece na lista de tópicos
Certo.
Na página da criação de um novo tópico, faça o que foi orientado aqui:
-> https://ajuda.forumeiros.com/t110240-botoes-resolvido-e-em-curso#775692
E o senhor já criou os ícones de mensagens, correto? o/
Na página da criação de um novo tópico, faça o que foi orientado aqui:
-> https://ajuda.forumeiros.com/t110240-botoes-resolvido-e-em-curso#775692
E o senhor já criou os ícones de mensagens, correto? o/
Re: Botão resolvido não aparece na lista de tópicos
Luiz escreveu:Certo.
Na página da criação de um novo tópico, faça o que foi orientado aqui:
-> https://ajuda.forumeiros.com/t110240-botoes-resolvido-e-em-curso#775692
E o senhor já criou os ícones de mensagens, correto? o/
Os ícones foram criados, peguei o ID correto no console e colei no javascript, mas quando clico no botão ele joga para a edição do tópico mas não marca automaticamente o botão resolvido, tenho que fazer manualmente!
Re: Botão resolvido não aparece na lista de tópicos
Eu precisarei de uma conta testes nesse fórum. o/
Re: Botão resolvido não aparece na lista de tópicos
Luiz escreveu:Eu precisarei de uma conta testes nesse fórum. o/
Pode se registrar lá, ou tem que ser eu?
http://darkstreetrpg.forumeiros.com
Re: Botão resolvido não aparece na lista de tópicos
Nesse caso é o senhor quem deve providenciar a conta. o/
Re: Botão resolvido não aparece na lista de tópicos
Luiz escreveu:Nesse caso é o senhor quem deve providenciar a conta. o/
Feito:
Usuário: Tester
Senha: @Testes
Fórum com tópico pra teste: http://darkstreetrpg.forumeiros.com/f4-revisao-de-ban
Re: Botão resolvido não aparece na lista de tópicos
O senhor pode desativar todos os outros códigos e opções de botão resolvido.
Após isso, crie um novo JavaScript com o código:
o/
Após isso, crie um novo JavaScript com o código:
- Código:
/*globals jQuery, FA*/
/**
* Alterar o ícone do tópico com AJAX.
*
* @author Luiz
* @version {alpha} 1.0
* @licence MIT
*/
(function ($) {
'use strict';
var config = [
{ name: 'Resolvido', id : 1, background: '#8b5' },
];
window.FA = window.FA || {};
FA.Topic = FA.Topic || {};
var MarkIcon;
FA.Topic.MarkIcon = MarkIcon = function (config) {
var self = this;
self.userConfig = config;
self.defaults = { name: undefined, id: undefined, background: undefined };
self.config = $.extend({}, self.defaults, self.userConfig);
$.each(self.config, function (key, value) {
if (key === undefined) {
throw new Error ('Não foi especificado um: ' + key + ' para o script de botões.');
}
});
};
MarkIcon.prototype.init = function () {
var self = this;
var $post = $('.post:first');
var $link = $post.find('a[href$="mode=editpost"]');
if (!$link.length) {
return;
}
self.messageLink = $link.attr('href');
self.$button = $('<button>', {
'class' : 'fa-mark-icon-button',
'data-id': self.config.id,
'text' : self.config.name
});
self.$button
.css('background-color', self.config.background)
.on('click', function (event) {
event.preventDefault();
self.runAjax();
})
.insertBefore($post)
;
self.appendStyles();
};
MarkIcon.prototype.runAjax = function () {
var self = this;
self.changeText('<i class="fa fa-refresh fa-spin"></i> Marcando...');
$.get(self.messageLink)
.done(function (context) {
var $form = $('form[action="/post"]', context);
$form.find('input[name="post_icon"]').val(self.config.id);
$form.find('input[name="edit_reason"]').remove();
var encode = document.charset.toLowerCase() === 'utf-8' ? window.encodeURIComponent : window.escape;
var data = $form.serializeArray().reduce(function (object, pair) {
object[pair.name] = pair.value;
return object;
}, {
post_icon: self.config.id,
post: 1
});
var encoded = $.map(data, function (value, key) {
return key + '=' + encode(value);
}).join('&');
$.post(self.messageLink, encoded)
.done(self.changeText('<i class="fa fa-check"></i> Marcado!'))
.fail(self.error)
;
})
.fail(self.error)
;
};
MarkIcon.prototype.changeText = function (text) {
var self = this;
self.runAjax = function () {
return false;
};
self.$button
.html(text)
.prop('disabled', true)
;
};
MarkIcon.prototype.error = function () {
var self = this;
alert([
'Houve um erro ao marcar o tópico como "' + self.config.name + '".',
'Por favor, contate o suporte técnico.'
].join('\n'));
};
MarkIcon.prototype.appendStyles = function () {
$('<style>', {
'text': [
'.fa-mark-icon-button {',
' padding: 8px 8px 8px 8px;',
' border: none;',
' color: #fff;',
' margin: 10px 0;',
' box-shadow: inset 0 0 0 3px rgba(0, 0, 0, 0.08);',
' border-radius: 3px;',
'}'
].join('\n')
}).appendTo('head');
};
$(function () {
$.each(config, function () {
var self = this;
(new FA.Topic.MarkIcon(self)).init();
});
});
}(jQuery));
o/
Re: Botão resolvido não aparece na lista de tópicos
Luiz escreveu:O senhor pode desativar todos os outros códigos e opções de botão resolvido.
Após isso, crie um novo JavaScript com o código:
- Código:
/*globals jQuery, FA*/
/**
* Alterar o ícone do tópico com AJAX.
*
* @author Luiz
* @version {alpha} 1.0
* @licence MIT
*/
(function ($) {
'use strict';
var config = [
{ name: 'Resolvido', id : 1, background: '#8b5' },
];
window.FA = window.FA || {};
FA.Topic = FA.Topic || {};
var MarkIcon;
FA.Topic.MarkIcon = MarkIcon = function (config) {
var self = this;
self.userConfig = config;
self.defaults = { name: undefined, id: undefined, background: undefined };
self.config = $.extend({}, self.defaults, self.userConfig);
$.each(self.config, function (key, value) {
if (key === undefined) {
throw new Error ('Não foi especificado um: ' + key + ' para o script de botões.');
}
});
};
MarkIcon.prototype.init = function () {
var self = this;
var $post = $('.post:first');
var $link = $post.find('a[href$="mode=editpost"]');
if (!$link.length) {
return;
}
self.messageLink = $link.attr('href');
self.$button = $('<button>', {
'class' : 'fa-mark-icon-button',
'data-id': self.config.id,
'text' : self.config.name
});
self.$button
.css('background-color', self.config.background)
.on('click', function (event) {
event.preventDefault();
self.runAjax();
})
.insertBefore($post)
;
self.appendStyles();
};
MarkIcon.prototype.runAjax = function () {
var self = this;
self.changeText('<i class="fa fa-refresh fa-spin"></i> Marcando...');
$.get(self.messageLink)
.done(function (context) {
var $form = $('form[action="/post"]', context);
$form.find('input[name="post_icon"]').val(self.config.id);
$form.find('input[name="edit_reason"]').remove();
var encode = document.charset.toLowerCase() === 'utf-8' ? window.encodeURIComponent : window.escape;
var data = $form.serializeArray().reduce(function (object, pair) {
object[pair.name] = pair.value;
return object;
}, {
post_icon: self.config.id,
post: 1
});
var encoded = $.map(data, function (value, key) {
return key + '=' + encode(value);
}).join('&');
$.post(self.messageLink, encoded)
.done(self.changeText('<i class="fa fa-check"></i> Marcado!'))
.fail(self.error)
;
})
.fail(self.error)
;
};
MarkIcon.prototype.changeText = function (text) {
var self = this;
self.runAjax = function () {
return false;
};
self.$button
.html(text)
.prop('disabled', true)
;
};
MarkIcon.prototype.error = function () {
var self = this;
alert([
'Houve um erro ao marcar o tópico como "' + self.config.name + '".',
'Por favor, contate o suporte técnico.'
].join('\n'));
};
MarkIcon.prototype.appendStyles = function () {
$('<style>', {
'text': [
'.fa-mark-icon-button {',
' padding: 8px 8px 8px 8px;',
' border: none;',
' color: #fff;',
' margin: 10px 0;',
' box-shadow: inset 0 0 0 3px rgba(0, 0, 0, 0.08);',
' border-radius: 3px;',
'}'
].join('\n')
}).appendTo('head');
};
$(function () {
$.each(config, function () {
var self = this;
(new FA.Topic.MarkIcon(self)).init();
});
});
}(jQuery));
o/
Valeeuuu! Funcionou!
Re: Botão resolvido não aparece na lista de tópicos
Questão marcada como Resolvida ou o Autor solicitou que ela fosse arquivada. Tópico marcado como Resolvido e movido para Questões resolvidas. |
Tópicos semelhantes
» [Resolvido]Botão resolvido não aparece nem na gestão de imagens
» Remover lista de moderação que aparece sobre os títulos
» Sub-fóruns em lista vertical só aparece se passar mouse em cima
» [Resolvido] Lista de tutoriais
» [Resolvido] Lista de categorias na página inicial
» Remover lista de moderação que aparece sobre os títulos
» Sub-fóruns em lista vertical só aparece se passar mouse em cima
» [Resolvido] Lista de tutoriais
» [Resolvido] Lista de categorias na página inicial
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre códigos Javascript e jQuery
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos