Eu precisava implementar um FontAwesome iconpicker igual ao do SC em um form.
Seguem os passos que fiz para implementar:
Se seu SC já tiver uma biblioteca externa pública “fontawesome-iconpicker”, pule para o passo 2.
Eu fiz tanto teste que não lembro se já veio no SC ou se eu mesmo havia criado e não lembro.
No exemplo usei uma apl tipo controle, campo texto chamado “classe” com 20 caracteres.
Passo 1: a biblioteca
Crie uma biblioteca externa pública chamada “fontawesome-iconpicker” e marque para usar no projeto. Abra a biblioteca e importe 2 arquivos que já vem no próprio SC. No meu caso, achei eles em
“devel/lib/third/bootstrap_plugin/fontawesome-iconpicker-3.0.0/dist/js/fontawesome-iconpicker.min.js”
e
“devel/lib/third/bootstrap_plugin/fontawesome-iconpicker-3.0.0/dist/css/fontawesome-iconpicker.min.css”
Passo 2: usar na aplicação tipo form ou controle
Capture o id do campo que deseja adicionar o picker, no meu exemplo usei um campo chamado “classe”, então seu id é “#id_sc_field_classe”.
No onLoad do form cole o código:
?>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="../_lib/libraries/sys/fontawesome-iconpicker/fontawesome-iconpicker.min.css">
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="../_lib/libraries/sys/fontawesome-iconpicker/fontawesome-iconpicker.min.js"></script>
<script>
$(document).ready(function() {
const $campo = $('#id_sc_field_classe');
$campo.iconpicker({
placement: 'bottomRight',
animation: true,
hideOnSelect: true,
inputSearch: true,
templates: {
search: '<input type="search" class="form-control iconpicker-search" placeholder="Buscar ícone...">'
}
});
$campo.on('iconpickerSelected', function(event){
$campo.val(event.iconpickerValue);
});
});
</script>
<?php
Lembre de alterar a linha “const $campo = $(’#id_sc_field_classe’);” para conter o id do seu campo.
Ao executar, basta dar um clique no campo para abrir o picker, exatamente como o SC usa.
Digitando dentro do campo ele filtra os ícones igual no SC.
Resultado:
Ao clicar no campo:
Não sou nenhum mestre do JS e fui preguiçoso usando CDN também, é só adaptar pra sua necessidade.
No meu caso, estou fazendo uma aplicação de menu usando blank, e irei implementar uma barra de atalhos (similar a que existe na aplicação de menu), só que dinâmica, com aplicações e ícones cadastrados em tabela e exibidos conforme o módulo de segurança (próprio também). Por isso precisava do iconpicker.
@Danilo_Lima a gente tem o campo “cor html”, poderíamos ter um “fontawesome picker” nativo também rsrs.