Sistema de Prefixo
2 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 • Compartilhe
Sistema de Prefixo
Detalhes da questão
Endereço do fórum: http://jogosemaisjogos.forumeiros.com
Versão do fórum: phpBB3
Descrição
Como coloco este código apenas para Moderadores e Administradores (id: 1, 2, 3) e na parte de resposta rápida, para não ter que editar o tópico e adicionar o código.
Obrigado.
- Código:
/*globals jQuery*/
/**
* @name Sistema de Prefixos.
* @version 1.0
* @author Luiz
* @see {@link http://ajuda.forumeiros.com/}
* @licence MIT
*/
(function ($) {
'use strict';
var config = {
prefixes: [
'Dúvida', 'Pedido', 'Em Curso',
'Jogos', 'Recusado', 'Resolvido',
'Negado'
],
lang: {
all: 'Sem Prefixo'
},
engine: {
/**
* @name Inicializador.
* @desc Usado para iniciar o script.
* @param {object} input - Corresponde ao seletor do input-alvo do script.
*/
init: function (input) {
var self = this;
var $input = $(input);
var $dummy = $('<option>', { 'class': 'fa-prefix-item' });
if (!/^\/post$/g.test(location.pathname) && $input) {
return false;
}
var $select = $('<select>', {
'class': 'fa-prefix-select'
});
$dummy
.clone()
.text(config.lang.all)
.attr('value', '')
.attr('selected', true)
.appendTo($select)
;
$.each(config.prefixes, function (index, prefix) {
$dummy
.clone()
.text('[' + prefix + ']')
.attr('value', '[' + prefix + ']')
.attr('id', 'fa-prefix-item-' + index)
.appendTo($select)
;
});
$select
.insertAfter($input)
.on('change', function () {
var $this = $(this);
var value = $this.val();
self.prefix(value, $this.prev());
})
;
},
/**
* @name Prefixador.
* @desc Usada para colocar o prefixo no input.
* @param {string} value - Corresponde ao prefixo que será colocado.
* @param {object} input - Corresponde ao seletor do input que será prefixado.
*/
prefix: function (value, input) {
var $input = $(input);
if (/^\[.*\]/g.test($input.val())) {
$input.val($.trim($input.val().replace(/^\[.*\]/, '')));
}
$input.val($.trim(value + ' ' + $input.val()));
}
}
};
$(function () {
var $input = $('input[name="subject"]');
config.engine.init($input);
});
}(jQuery));
Convidado- Convidado
Re: Sistema de Prefixo
Olá @Roger123,
Mude o seu script para:
Cordialmente,
pedxz
Mude o seu script para:
- Código:
/*globals jQuery*/
/**
* @name Sistema de Prefixos.
* @version 1.0
* @author Luiz
* @see {@link http://ajuda.forumeiros.com/}
* @licence MIT
*/
(function ($) {
'use strict';
var config = {
prefixes: [
'Dúvida', 'Pedido', 'Em Curso',
'Jogos', 'Recusado', 'Resolvido',
'Negado'
],
lang: {
all: 'Sem Prefixo'
},
engine: {
/**
* @name Inicializador.
* @desc Usado para iniciar o script.
* @param {object} input - Corresponde ao seletor do input-alvo do script.
*/
init: function (input) {
var self = this;
var $input = $(input);
var $dummy = $('<option>', { 'class': 'fa-prefix-item' });
if (location.pathname === '/post' && $('form input[name="subject"]').length > 0) {
if (_userdata.user_level !== 1 && _userdata.user_level !== 2) {
return;
}
var $select = $('<select>', {
'class': 'fa-prefix-select'
});
$dummy
.clone()
.text(config.lang.all)
.attr('value', '')
.attr('selected', true)
.appendTo($select)
;
$.each(config.prefixes, function (index, prefix) {
$dummy
.clone()
.text('[' + prefix + ']')
.attr('value', '[' + prefix + ']')
.attr('id', 'fa-prefix-item-' + index)
.appendTo($select)
;
});
$select
.insertAfter($input)
.on('change', function () {
var $this = $(this);
var value = $this.val();
self.prefix(value, $this.prev());
})
;
}
}
},
/**
* @name Prefixador.
* @desc Usada para colocar o prefixo no input.
* @param {string} value - Corresponde ao prefixo que será colocado.
* @param {object} input - Corresponde ao seletor do input que será prefixado.
*/
prefix: function (value, input) {
var $input = $(input);
if (/^\[.*\]/g.test($input.val())) {
$input.val($.trim($input.val().replace(/^\[.*\]/, '')));
}
$input.val($.trim(value + ' ' + $input.val()));
}
};
$(function () {
var $input = $('input[name="subject"]');
config.engine.init($input);
});
}(jQuery));
Cordialmente,
pedxz
tikky- Admineiro
- Membro desde : 13/01/2017
Mensagens : 7964
Pontos : 9219
Convidado- Convidado
Re: Sistema de Prefixo
Têm, porém não tem sentido por ai visto que na "resposta rápida", não dá para escolher o nome do comentário, compreende?
tikky- Admineiro
- Membro desde : 13/01/2017
Mensagens : 7964
Pontos : 9219
Re: Sistema de Prefixo
Sim, mas eu estava a falar para modificar o título do tópico.Pedxz escreveu:Têm, porém não tem sentido por ai visto que na "resposta rápida", não dá para escolher o nome do comentário, compreende?
Convidado- Convidado
Re: Sistema de Prefixo
Olá,
Mude o script para este:
só para testar uma coisa
Atenciosamente,
Neox
Mude o script para este:
só para testar uma coisa
- Código:
(function ($) {
'use strict';
var config = [
{ name: 'Resolvido', id : 3, background: '#8b5', onlyForMod: true },
{ name: 'Em andamento', id : 2, background: '#ebb537', onlyForMod: true },
{ name: 'Importante', id: 4, background: '#9d1bab', onlyForAdmin: true },
{ name: 'Ignorado', id: 1, background: '#e3493b', onlyForAdmin: true }
];
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,
onlyForMod: false,
onlyForAdmin: false
};
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.');
}
if (value === undefined) {
throw new Error ('Não foi especificado um valor: ' + value + ' 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 false;
}
if (this.config.onlyForMod && (_userdata.user_level !== 1 && _userdata.user_level !== 2)) {
return false;
}
if (this.config.onlyForAdmin && _userdata.user_level !== 1) {
return false;
}
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);
var encode = document.charset.toLowerCase() === 'utf-8' ? window.encodeURIComponent : window.escape;
var formData = $form.serializeArray();
var data = {};
$.each(formData, function () {
var obj = this;
data[obj.name] = obj.value;
});
data.post_icon = self.config.id;
data.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 10px 6px;',
' 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));
Atenciosamente,
Neox
Re: Sistema de Prefixo
Poderia me mandar uma print do resultado?
Re: Sistema de Prefixo
Você removeu o código anterior?
Vamos usar o código que passei, esquece o anterior
Vamos usar o código que passei, esquece o anterior
Re: Sistema de Prefixo
Agora verifique se está somente para os administradores e moderadores.
Re: Sistema de Prefixo
SimNeox escreveu:Agora verifique se está somente para os administradores e moderadores.
Convidado- Convidado
Re: Sistema de Prefixo
Não era isso... Estava a falar deste código adicionar um prefixo automaticamente ao título:
- Código:
/*globals jQuery*/
/**
* @name Sistema de Prefixos.
* @version 1.0
* @author Luiz
* @see {@link http://ajuda.forumeiros.com/}
* @licence MIT
*/
(function ($) {
'use strict';
var config = {
prefixes: [
'Dúvida', 'Pedido', 'Em Curso',
'Jogos', 'Recusado', 'Resolvido',
'Negado'
],
lang: {
all: 'Sem Prefixo'
},
engine: {
/**
* @name Inicializador.
* @desc Usado para iniciar o script.
* @param {object} input - Corresponde ao seletor do input-alvo do script.
*/
init: function (input) {
var self = this;
var $input = $(input);
var $dummy = $('<option>', { 'class': 'fa-prefix-item' });
if (location.pathname === '/post' && $('form input[name="subject"]').length > 0) {
if (_userdata.user_level !== 1 && _userdata.user_level !== 2) {
return;
}
var $select = $('<select>', {
'class': 'fa-prefix-select'
});
$dummy
.clone()
.text(config.lang.all)
.attr('value', '')
.attr('selected', true)
.appendTo($select)
;
$.each(config.prefixes, function (index, prefix) {
$dummy
.clone()
.text('[' + prefix + ']')
.attr('value', '[' + prefix + ']')
.attr('id', 'fa-prefix-item-' + index)
.appendTo($select)
;
});
$select
.insertAfter($input)
.on('change', function () {
var $this = $(this);
var value = $this.val();
self.prefix(value, $this.prev());
})
;
}
}
},
/**
* @name Prefixador.
* @desc Usada para colocar o prefixo no input.
* @param {string} value - Corresponde ao prefixo que será colocado.
* @param {object} input - Corresponde ao seletor do input que será prefixado.
*/
prefix: function (value, input) {
var $input = $(input);
if (/^\[.*\]/g.test($input.val())) {
$input.val($.trim($input.val().replace(/^\[.*\]/, '')));
}
$input.val($.trim(value + ' ' + $input.val()));
}
};
$(function () {
var $input = $('input[name="subject"]');
config.engine.init($input);
});
}(jQuery));
Convidado- Convidado
tikky- Admineiro
- Membro desde : 13/01/2017
Mensagens : 7964
Pontos : 9219
Re: Sistema de Prefixo
Ok! Então, apenas quero que me ajude:
O código não está a funcionar... Não adiciona os prefixos...
O código não está a funcionar... Não adiciona os prefixos...
- Código:
/*globals jQuery*/
/**
* @name Sistema de Prefixos.
* @version 1.0
* @author Luiz
* @see {@link http://ajuda.forumeiros.com/}
* @licence MIT
*/
(function ($) {
'use strict';
var config = {
prefixes: [
'Dúvida', 'Pedido', 'Em Curso',
'Jogos', 'Recusado', 'Resolvido',
'Negado'
],
lang: {
all: 'Sem Prefixo'
},
engine: {
/**
* @name Inicializador.
* @desc Usado para iniciar o script.
* @param {object} input - Corresponde ao seletor do input-alvo do script.
*/
init: function (input) {
var self = this;
var $input = $(input);
var $dummy = $('<option>', { 'class': 'fa-prefix-item' });
if (location.pathname === '/post' && $('form input[name="subject"]').length > 0) {
if (_userdata.user_level !== 1 && _userdata.user_level !== 2) {
return;
}
var $select = $('<select>', {
'class': 'fa-prefix-select'
});
$dummy
.clone()
.text(config.lang.all)
.attr('value', '')
.attr('selected', true)
.appendTo($select)
;
$.each(config.prefixes, function (index, prefix) {
$dummy
.clone()
.text('[' + prefix + ']')
.attr('value', '[' + prefix + ']')
.attr('id', 'fa-prefix-item-' + index)
.appendTo($select)
;
});
$select
.insertAfter($input)
.on('change', function () {
var $this = $(this);
var value = $this.val();
self.prefix(value, $this.prev());
})
;
}
}
},
/**
* @name Prefixador.
* @desc Usada para colocar o prefixo no input.
* @param {string} value - Corresponde ao prefixo que será colocado.
* @param {object} input - Corresponde ao seletor do input que será prefixado.
*/
prefix: function (value, input) {
var $input = $(input);
if (/^\[.*\]/g.test($input.val())) {
$input.val($.trim($input.val().replace(/^\[.*\]/, '')));
}
$input.val($.trim(value + ' ' + $input.val()));
}
};
$(function () {
var $input = $('input[name="subject"]');
config.engine.init($input);
});
}(jQuery));
Convidado- Convidado
Re: Sistema de Prefixo
Mude para:
- Código:
/*globals jQuery*/
/**
* @name Sistema de Prefixos.
* @version 1.0
* @author Luiz
* @see {@link http://ajuda.forumeiros.com/}
* @licence MIT
*/
(function ($) {
'use strict';
var config = {
prefixes: [
'Dúvida', 'Pedido', 'Em Curso',
'Jogos', 'Recusado', 'Resolvido',
'Negado'
],
lang: {
all: 'Sem Prefixo'
},
engine: {
/**
* @name Inicializador.
* @desc Usado para iniciar o script.
* @param {object} input - Corresponde ao seletor do input-alvo do script.
*/
init: function (input) {
var self = this;
var $input = $(input);
var $dummy = $('<option>', { 'class': 'fa-prefix-item' });
if (_userdata.user_level !== 1 && _userdata.user_level !== 2) {
return;
}
if (!/^\/post$/g.test(location.pathname) && $input) {
return;
}
var $select = $('<select>', {
'class': 'fa-prefix-select'
});
$dummy
.clone()
.text(config.lang.all)
.attr('value', '')
.attr('selected', true)
.appendTo($select)
;
$.each(config.prefixes, function (index, prefix) {
$dummy
.clone()
.text('[' + prefix + ']')
.attr('value', '[' + prefix + ']')
.attr('id', 'fa-prefix-item-' + index)
.appendTo($select)
;
});
$select
.insertAfter($input)
.on('change', function () {
var $this = $(this);
var value = $this.val();
self.prefix(value, $this.prev());
})
;
},
/**
* @name Prefixador.
* @desc Usada para colocar o prefixo no input.
* @param {string} value - Corresponde ao prefixo que será colocado.
* @param {object} input - Corresponde ao seletor do input que será prefixado.
*/
prefix: function (value, input) {
var $input = $(input);
if (/^\[.*\]/g.test($input.val())) {
$input.val($.trim($input.val().replace(/^\[.*\]/, '')));
}
$input.val($.trim(value + ' ' + $input.val()));
}
}
};
$(function () {
var $input = $('input[name="subject"]');
config.engine.init($input);
});
}(jQuery));
tikky- Admineiro
- Membro desde : 13/01/2017
Mensagens : 7964
Pontos : 9219
tikky- Admineiro
- Membro desde : 13/01/2017
Mensagens : 7964
Pontos : 9219
Tópicos semelhantes
» Sistema de prefixo
» Sistema de prefixo
» Sistema prefixo
» Ajuda sistema prefixo
» Prefixo nos Tópicos
» Sistema de prefixo
» Sistema prefixo
» Ajuda sistema prefixo
» Prefixo nos Tópicos
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