Jump to content
Limestone de cara nova! ×
Portal do Host

Ajuda com hook pin whmcs.red


gsouza
 Share

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

 

Link to comment
Share on other sites


  • Replies 11
  • Created
  • Last Reply

Top Posters In This Topic

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

Link to comment
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 ?

Link to comment
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!

Link to comment
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.

Link to comment
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!

Link to comment
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.

Link to comment
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.

Link to comment
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...

Link to comment
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.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    No registered users viewing this page.



×
×
  • Create New...

Important Information