Clicky

Hospedado por Limestone Networks

Jump to content
  • Sign Up

Sign in to follow this  
gsouza

Ajuda com hook pin whmcs.red

Recommended Posts

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;
});

 

Share this post


Link to post
Share on other 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


Blog sobre WHMCS: http://whmcs.blog.br/
Serviços WHMCS: http://servicos.edvan.com.br/
Módulos WHMCS: http://modulos.edvan.com.br/

Share this post


Link to post
Share on other 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 ?

Share this post


Link to post
Share on other 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!


Blog sobre WHMCS: http://whmcs.blog.br/
Serviços WHMCS: http://servicos.edvan.com.br/
Módulos WHMCS: http://modulos.edvan.com.br/

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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!


Blog sobre WHMCS: http://whmcs.blog.br/
Serviços WHMCS: http://servicos.edvan.com.br/
Módulos WHMCS: http://modulos.edvan.com.br/

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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...


Blog sobre WHMCS: http://whmcs.blog.br/
Serviços WHMCS: http://servicos.edvan.com.br/
Módulos WHMCS: http://modulos.edvan.com.br/

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.



×
×
  • Create New...