gsouza Postado Agosto 25, 2017 Compartilhar Postado Agosto 25, 2017 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Ó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ça este código, quando solicitado pela nossa equipe de atendimento. Por questões de segurança, ele será 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; }); 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
edvan Postado Agosto 25, 2017 Compartilhar Postado Agosto 25, 2017 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Ó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ça este código, quando solicitado pela nossa equipe de atendimento. Por questões de segurança, ele será 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 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
gsouza Postado Agosto 25, 2017 Autor Compartilhar Postado Agosto 25, 2017 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 ? 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
edvan Postado Agosto 25, 2017 Compartilhar Postado Agosto 25, 2017 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! 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
gsouza Postado Agosto 25, 2017 Autor Compartilhar Postado Agosto 25, 2017 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. 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
edvan Postado Agosto 25, 2017 Compartilhar Postado Agosto 25, 2017 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! 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Joel Emanoel Postado Agosto 28, 2017 Compartilhar Postado Agosto 28, 2017 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. 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
gsouza Postado Agosto 29, 2017 Autor Compartilhar Postado Agosto 29, 2017 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. 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
edvan Postado Agosto 29, 2017 Compartilhar Postado Agosto 29, 2017 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... 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
gsouza Postado Agosto 29, 2017 Autor Compartilhar Postado Agosto 29, 2017 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. 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.