Clicky

Ir para conteúdo
gsouza

Ajuda com hook pin whmcs.red

Posts Recomendados

Olá, boa tarde.

Estou usando o Hook da WHMCS.RED e como falei com os proprietários, modifiquei para ficar ao meu gosto.

 

Realizei alguns ajustes simples para que o sistema gere um PIN por dia e para exibi-lo em um painel.

 

Agora estou com a intensão de gerar um pin novo sempre que o cliente clicar em um botão GERAR PIN.
Gostaria tambem de exibir estes campos na SIDEBAR, porem, não consegui (Meus conhecimentos nesta area são limitados)
 

Poderiam me ajudar com estes ajustes ?

 

Apenas para recapitular.
1 Criar um botão que gera o pin quando clicado 
2 Transferir a exibição do pin do painel para a sidebar.
 

Acredito que a função para este botão seria algo assim 
 

Porem, não sei criar o botão e faze-lo trabalhar.

// Botão Novo Pin
function novo_pin($id){
	$limite = 8;
	$resultado = substr(preg_replace("/[^0-9]/", "", md5(($id)*strtotime(date('Y-m-d H:i:s')))), $limite, $limite);
	return $resultado;
}

Segue abaixo o código completo modificado. (Saliento que os direitos de criação são da WHMCS.RED) Apenas modifiquei para meu uso.

<?php
// Desenvolvido por Joel - WHMCS.RED || Modificações de search inteligente feita por Luciano - WHMCS.RED
// Pegar Conexão com Banco de Dados
use WHMCS\Database\Capsule;
// Bloqueia o acesso direto ao arquivo
if (!defined("WHMCS")){
	die("Acesso restrito!");
}

// Monta o PIN Modelo novo (Renova a cada dia)
function montar_pin($id){
	$limite = 8;
	$resultado = substr(preg_replace("/[^0-9]/", "", md5(($id)*strtotime(today))), $limite, $limite);
	return $resultado;
}
// Página de Administrador
add_hook("AdminAreaClientSummaryPage", 1, function($vars){
	return "<div class='alert alert-success'><strong>PIN: ".montar_pin($vars["userid"])."</strong></div>";
});

//Pagina do Cliente Painel
add_hook('ClientAreaHomepagePanels', 1, function($homePagePanels) {
    $newPanel = $homePagePanels->addChild(
        'unique-css-name',
        array(
            'name' => 'Pin',
            'label' => '<strong>C&Oacute;DIGO PIN: '.montar_pin($_SESSION["uid"]).'</strong>',  
            'icon' => 'fa-lock',
            'order' => '99',
            'extras' => array(
                'color' => 'green',
            ),
            'footerHtml' => '<i class="fa fa-info-circle" aria-hidden="true"></i>  <strong>Um novo PIN será gerado todos os dias!</strong>',
        )
    );
// Repeat as needed to add enough children
    $newPanel->addChild(
        'unique-css-name-id1',
        array(
            'label' => '</strong>Forne&ccedil;a este c&oacute;digo, quando solicitado pela nossa equipe de atendimento. Por quest&otilde;es de seguran&ccedil;a, ele ser&aacute; solicitado em determinados tipos de atendimentos. Por exemplo, em atendimentos via E-mail ou Chat Online.',
            'order' => 10,
        )
    );
});

// Adicionando função de pesquisa do PIN
add_hook("IntelligentSearch", 1, function($vars){
	$pesquisa = array();
	foreach (capsule::table("tblclients")->get() as $clientes){
		$resultado = montar_pin($clientes->id);
		if($resultado == $vars["searchTerm"]){
			$idcliente = $clientes->id;
			$pin = $resultado;
		}
	}
	foreach (capsule::table("tblclients")->WHERE("id", $idcliente)->get() as $cliente){
		$pesquisa[] = '
		<div class="searchresult">
			<a href="clientssummary.php?userid='.$cliente->id.'">
				<strong>'.$cliente->firstname.' '.$cliente->lastname.'</strong>
				(PIN: '.$pin.')<br />
				<span class="desc">' . $cliente->email . '</span>
			</a>
		</div>';
	}
	return $pesquisa;
});
// Adiciona string para os templates de email
add_hook("EmailPreSend", 1, function($vars){
	$pinstring = array();
	$pinstring["pin"] = montar_pin($vars['relid']);
	return $pinstring;
});

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
38 minutos atrás, suportgc disse:

Olá, boa tarde.

Estou usando o Hook da WHMCS.RED e como falei com os proprietários, modifiquei para ficar ao meu gosto.

 

Realizei alguns ajustes simples para que o sistema gere um PIN por dia e para exibi-lo em um painel.

 

Agora estou com a intensão de gerar um pin novo sempre que o cliente clicar em um botão GERAR PIN.
Gostaria tambem de exibir estes campos na SIDEBAR, porem, não consegui (Meus conhecimentos nesta area são limitados)
 

Poderiam me ajudar com estes ajustes ?

 

Apenas para recapitular.
1 Criar um botão que gera o pin quando clicado 
2 Transferir a exibição do pin do painel para a sidebar.
 

Acredito que a função para este botão seria algo assim 
 

Porem, não sei criar o botão e faze-lo trabalhar.

// Botão Novo Pin
function novo_pin($id){
	$limite = 8;
	$resultado = substr(preg_replace("/[^0-9]/", "", md5(($id)*strtotime(date('Y-m-d H:i:s')))), $limite, $limite);
	return $resultado;
}

Segue abaixo o código completo modificado. (Saliento que os direitos de criação são da WHMCS.RED) Apenas modifiquei para meu uso.

<?php
// Desenvolvido por Joel - WHMCS.RED || Modificações de search inteligente feita por Luciano - WHMCS.RED
// Pegar Conexão com Banco de Dados
use WHMCS\Database\Capsule;
// Bloqueia o acesso direto ao arquivo
if (!defined("WHMCS")){
	die("Acesso restrito!");
}

// Monta o PIN Modelo novo (Renova a cada dia)
function montar_pin($id){
	$limite = 8;
	$resultado = substr(preg_replace("/[^0-9]/", "", md5(($id)*strtotime(today))), $limite, $limite);
	return $resultado;
}
// Página de Administrador
add_hook("AdminAreaClientSummaryPage", 1, function($vars){
	return "<div class='alert alert-success'><strong>PIN: ".montar_pin($vars["userid"])."</strong></div>";
});

//Pagina do Cliente Painel
add_hook('ClientAreaHomepagePanels', 1, function($homePagePanels) {
    $newPanel = $homePagePanels->addChild(
        'unique-css-name',
        array(
            'name' => 'Pin',
            'label' => '<strong>C&Oacute;DIGO PIN: '.montar_pin($_SESSION["uid"]).'</strong>',  
            'icon' => 'fa-lock',
            'order' => '99',
            'extras' => array(
                'color' => 'green',
            ),
            'footerHtml' => '<i class="fa fa-info-circle" aria-hidden="true"></i>  <strong>Um novo PIN será gerado todos os dias!</strong>',
        )
    );
// Repeat as needed to add enough children
    $newPanel->addChild(
        'unique-css-name-id1',
        array(
            'label' => '</strong>Forne&ccedil;a este c&oacute;digo, quando solicitado pela nossa equipe de atendimento. Por quest&otilde;es de seguran&ccedil;a, ele ser&aacute; solicitado em determinados tipos de atendimentos. Por exemplo, em atendimentos via E-mail ou Chat Online.',
            'order' => 10,
        )
    );
});

// Adicionando função de pesquisa do PIN
add_hook("IntelligentSearch", 1, function($vars){
	$pesquisa = array();
	foreach (capsule::table("tblclients")->get() as $clientes){
		$resultado = montar_pin($clientes->id);
		if($resultado == $vars["searchTerm"]){
			$idcliente = $clientes->id;
			$pin = $resultado;
		}
	}
	foreach (capsule::table("tblclients")->WHERE("id", $idcliente)->get() as $cliente){
		$pesquisa[] = '
		<div class="searchresult">
			<a href="clientssummary.php?userid='.$cliente->id.'">
				<strong>'.$cliente->firstname.' '.$cliente->lastname.'</strong>
				(PIN: '.$pin.')<br />
				<span class="desc">' . $cliente->email . '</span>
			</a>
		</div>';
	}
	return $pesquisa;
});
// Adiciona string para os templates de email
add_hook("EmailPreSend", 1, function($vars){
	$pinstring = array();
	$pinstring["pin"] = montar_pin($vars['relid']);
	return $pinstring;
});

 

Sua intenção pode até ser boa mas para isso ser possível você teria que armazenar o PIN em algum local ou seja na minha visão é inviável e sinceramente sem sentido!

Eu tenho um produto similar a esse na qual o PIN é gerado por hora, dia, mês ou ano... mais variação do que essa impossível kkk

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 minutos atrás, edvan disse:

Sua intenção pode até ser boa mas para isso ser possível você teria que armazenar o PIN em algum local ou seja na minha visão é inviável e sinceramente sem sentido!

Entendo.

Na realidade, eu queria apenas exibir o PIN se o cliente clicasse em um botão.
Este PIN serve apenas para identificar o cliente mais facilmente.

Seria muito complicado armazenar este PIN e altera-lo quando o cliente clicar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites
8 minutos atrás, suportgc disse:

Entendo.

Na realidade, eu queria apenas exibir o PIN se o cliente clicasse em um botão.
Este PIN serve apenas para identificar o cliente mais facilmente.

Seria muito complicado armazenar este PIN e altera-lo quando o cliente clicar ?

Vai depender do que você entende como complicado... se você não tem conhecimentos básicos em PHP sem dúvidas sim!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Agora, edvan disse:

Vai depender do que você entende como complicado... se você não tem conhecimentos básicos em PHP sem dúvidas sim!

Entendi.
Realmente sou bem leigo neste quesito.

Para criar um botão que apenas exibe o pin você sabe me dizer ?

Apenas por estética mesmo, pois o pin mudaria por hora clicando nele ou não.

Compartilhar este post


Link para o post
Compartilhar em outros sites
5 minutos atrás, suportgc disse:

Entendi.
Realmente sou bem leigo neste quesito.

Para criar um botão que apenas exibe o pin você sabe me dizer ?

Apenas por estética mesmo, pois o pin mudaria por hora clicando nele ou não.

Sugiro que procure estudar a documentação e lá você encontrará todo material voltado aos desenvolvedores.

Boa sorte!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 25/08/2017 em 13:53, suportgc disse:

Entendi.
Realmente sou bem leigo neste quesito.

Para criar um botão que apenas exibe o pin você sabe me dizer ?

Apenas por estética mesmo, pois o pin mudaria por hora clicando nele ou não.

Caso queira que exiba o PIN somente se clicar no botão da uma estudada em Javascript.

Vou anotar suas necessidades aqui para atualizar o Hook do PIN, foi uma coisa feita meio rápido, por isso acabamos não colocando muitas opções.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 28/08/2017 em 08:52, Joel Emanoel disse:

Caso queira que exiba o PIN somente se clicar no botão da uma estudada em Javascript.

Vou anotar suas necessidades aqui para atualizar o Hook do PIN, foi uma coisa feita meio rápido, por isso acabamos não colocando muitas opções.

Olá Joel.

Agradeço sua atenção

O sistema esta sendo realmente util.

Estas mudanças no sistema, serão muito bem vindas.

Seria interessante fazer como o Sr Edvan disse, salvar os pins em um local, para consulta, sendo atrelados ao atendimento prestado.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, suportgc disse:

Olá Joel.

Agradeço sua atenção

O sistema esta sendo realmente util.

Estas mudanças no sistema, serão muito bem vindas.

Seria interessante fazer como o Sr Edvan disse, salvar os pins em um local, para consulta, sendo atrelados ao atendimento prestado.

 

Abraço.

Particularmente acho inviável essa ideia, o PIN condicionado ao ID do cliente ou dia, mês, ano, hora é suficiente para gerar um PIN diferente a cada dia,mês e etc...

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 minutos atrás, edvan disse:

Particularmente acho inviável essa ideia, o PIN condicionado ao ID do cliente ou dia, mês, ano, hora é suficiente para gerar um PIN diferente a cada dia,mês e etc...

Olá Edvan.

Com o codigo atual, ja gera um pin diferente por dia.

Acredito que seria legal apenas atribuir a uma tabela, onde cada pin, seja salvo e anexado ao atendimento, fazendo com que fique mais dinamico localizar os dados do atendimento via pin.

No proprio pin, poderia incluir um breve resumo do atendimento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.



O Portal do Host

Dicas para sua empresa de hospedagem. Artigos, notícias, tutoriais e os aspectos da indústria de hospedagem.

Limestone Networks

A LSN tem sido parceira e patrocinadora do PDH, fornecendo uma plataforma segura e confiável.

Cloud - Servidores decicados - Co-location
×