Ir para conteúdo
  • Cadastre-se

Bloqueando base de conhecimento


Posts Recomendados

Olá, boa noite amigos.

Poderiam me auxiliar com um ajuste ?

 

Seria possível restringir o acesso da base de conhecimentos, apenas para clientes logados ?

 

Fiz este procedimento https://www.whmcs.blog.br/personalizacao/restringindo-acesso-base-de-conhecimento/
porem, acredito estar incompatível pois não funcionou  =/

 

Se tiver alguma Hook para isso seria excelente

Link para o comentário
Compartilhar em outros sites

10 horas atrás, suportgc disse:

Olá, boa noite amigos.

Poderiam me auxiliar com um ajuste ?

 

Seria possível restringir o acesso da base de conhecimentos, apenas para clientes logados ?

 

Fiz este procedimento https://www.whmcs.blog.br/personalizacao/restringindo-acesso-base-de-conhecimento/
porem, acredito estar incompatível pois não funcionou  =/

 

Se tiver alguma Hook para isso seria excelente

Acredito que você não fez corretamente pois mesmo sendo um post de 2014 funciona normalmente, veja exemplo:

Visitante http://prntscr.com/h1tc8f

Cliente logado http://prntscr.com/h1td7a

Link para o comentário
Compartilhar em outros sites

Segue o hooks que faz isso para qualquer pagina que desejar.

Na linha

if (!in_array($vars['filename'], array(

você pode inserir as páginas que serão liberadas para acesso sem login.

 <?php
if (!defined("WHMCS"))
    die("This file cannot be accessed directly");

function hook_ForceEveryoneToLogin($vars) {

    $clientID = intval($_SESSION['uid']);
    $adminID = intval($_SESSION['adminid']);
    
    if ($adminID===0){
        if (!in_array($vars['filename'], array("login","dologin","clientarea","pwreset","index","register","cart","submitticket","viewticket")) && $clientID===0){
            header("Location: login.php");
            exit;
        }
    }

}
add_hook("ClientAreaPage", 1, "hook_ForceEveryoneToLogin"); 

 

Link para o comentário
Compartilhar em outros sites

@edvan Então edvan eu tentei aplicar isso no template six só que realmente não funcionou .

{if !$loggedin}
<br />
<div class="errorbox">Acesso restrito a clientes!</div>
<br /><br /><br />
{else}
<form role="form" method="post" action="{routePath('knowledgebase-search')}">
    <div class="input-group input-group-lg kb-search">
        <input type="text" id="inputKnowledgebaseSearch" name="search" class="form-control" placeholder="What can we help you with?" />
        <span class="input-group-btn">
            <input type="submit" id="btnKnowledgebaseSearch" class="btn btn-primary btn-input-padded-responsive" value="{$LANG.search}" />
        </span>
    </div>
</form>

<h2>{$LANG.knowledgebasecategories}</h2>

{if $kbcats}
    <div class="row">
        {foreach from=$kbcats name=kbcats item=kbcat}
            <div class="col-sm-4">
                <a href="{routePath('knowledgebase-category-view', {$kbcat.id}, {$kbcat.urlfriendlyname})}">
                    <i class="fa fa-folder-open-o"></i>
                    {$kbcat.name} ({$kbcat.numarticles})
                </a>
                <p>{$kbcat.description}</p>
            </div>
            {if $smarty.foreach.kbcats.iteration mod 2 == 0}
                </div><div class="row">
            {/if}
        {/foreach}
    </div>
{else}
    {include file="$template/includes/alert.tpl" type="info" msg=$LANG.knowledgebasenoarticles textcenter=true}
{/if}

{if $kbmostviews}

    <h2>{$LANG.knowledgebasepopular}</h2>

    <div class="kbarticles">
        {foreach from=$kbmostviews item=kbarticle}
            <a href="{routePath('knowledgebase-article-view', {$kbarticle.id}, {$kbarticle.urlfriendlytitle})}">
                <span class="glyphicon glyphicon-file"></span>&nbsp;{$kbarticle.title}
            </a>
            <p>{$kbarticle.article|truncate:100:"..."}</p>
        {/foreach}
    </div>

{/if}
{/if}

 

Fox Soluções | (011) 3090 4444 / (011) 96841-9797 |  www.FoxSolucoes.com
 | Streaming Áudio | CentovaCast | Revendas de Streaming | Data Center Brasil  EUA | 
 | Streaming Vídeo | CastControl WOWZA | Revendas de Streaming | Data Center Brasil  EUA | 

Link para o comentário
Compartilhar em outros sites

1 hora atrás, edvan disse:

Acredito que você não fez corretamente pois mesmo sendo um post de 2014 funciona normalmente, veja exemplo:

Visitante http://prntscr.com/h1tc8f

Cliente logado http://prntscr.com/h1td7a

Estranho, testei e nao funcionou no Six

1 hora atrás, rgazetta disse:

Segue o hooks que faz isso para qualquer pagina que desejar.

Na linha

if (!in_array($vars['filename'], array(

você pode inserir as páginas que serão liberadas para acesso sem login.


 <?php
if (!defined("WHMCS"))
    die("This file cannot be accessed directly");

function hook_ForceEveryoneToLogin($vars) {

    $clientID = intval($_SESSION['uid']);
    $adminID = intval($_SESSION['adminid']);
    
    if ($adminID===0){
        if (!in_array($vars['filename'], array("login","dologin","clientarea","pwreset","index","register","cart","submitticket","viewticket")) && $clientID===0){
            header("Location: login.php");
            exit;
        }
    }

}
add_hook("ClientAreaPage", 1, "hook_ForceEveryoneToLogin"); 

 

Olá amigo, boa tarde.

Este hook bloqueia tudo e libera apenas o que quero correto ?

 

Seria possivel esta variável bloquear apenas a pagina da base de conhecimento ?

Perdoe minha ignorância, tenho pouco conhecimento em programação e não sei inverter este bloqueio.

Link para o comentário
Compartilhar em outros sites

10 minutos atrás, Otavio disse:

@edvan Então edvan eu tentei aplicar isso no template six só que realmente não funcionou .


{if !$loggedin}
<br />
<div class="errorbox">Acesso restrito a clientes!</div>
<br /><br /><br />
{else}
<form role="form" method="post" action="{routePath('knowledgebase-search')}">
    <div class="input-group input-group-lg kb-search">
        <input type="text" id="inputKnowledgebaseSearch" name="search" class="form-control" placeholder="What can we help you with?" />
        <span class="input-group-btn">
            <input type="submit" id="btnKnowledgebaseSearch" class="btn btn-primary btn-input-padded-responsive" value="{$LANG.search}" />
        </span>
    </div>
</form>

<h2>{$LANG.knowledgebasecategories}</h2>

{if $kbcats}
    <div class="row">
        {foreach from=$kbcats name=kbcats item=kbcat}
            <div class="col-sm-4">
                <a href="{routePath('knowledgebase-category-view', {$kbcat.id}, {$kbcat.urlfriendlyname})}">
                    <i class="fa fa-folder-open-o"></i>
                    {$kbcat.name} ({$kbcat.numarticles})
                </a>
                <p>{$kbcat.description}</p>
            </div>
            {if $smarty.foreach.kbcats.iteration mod 2 == 0}
                </div><div class="row">
            {/if}
        {/foreach}
    </div>
{else}
    {include file="$template/includes/alert.tpl" type="info" msg=$LANG.knowledgebasenoarticles textcenter=true}
{/if}

{if $kbmostviews}

    <h2>{$LANG.knowledgebasepopular}</h2>

    <div class="kbarticles">
        {foreach from=$kbmostviews item=kbarticle}
            <a href="{routePath('knowledgebase-article-view', {$kbarticle.id}, {$kbarticle.urlfriendlytitle})}">
                <span class="glyphicon glyphicon-file"></span>&nbsp;{$kbarticle.title}
            </a>
            <p>{$kbarticle.article|truncate:100:"..."}</p>
        {/foreach}
    </div>

{/if}
{/if}

 

Que estranho, editei o six e não tive problemas.

Veja o vídeo http://nimb.ws/x5DPyv

Você testou com uma janela anônima?

Link para o comentário
Compartilhar em outros sites

@edvan Agora descobri oque errei  kk , criei uma cópia e não havia definido  esse novo template deu certo sim, me desculpe pelo erro sonso .

Fox Soluções | (011) 3090 4444 / (011) 96841-9797 |  www.FoxSolucoes.com
 | Streaming Áudio | CentovaCast | Revendas de Streaming | Data Center Brasil  EUA | 
 | Streaming Vídeo | CastControl WOWZA | Revendas de Streaming | Data Center Brasil  EUA | 

Link para o comentário
Compartilhar em outros sites

7 minutos atrás, Otavio disse:

@edvan Agora descobri oque errei  kk , criei uma cópia e não havia definido  esse novo template deu certo sim, me desculpe pelo erro sonso .

Sem problemas!

Ou utilize esse hook ( baseado no tópico https://whmcs.community/topic/252505-how-to-restrict-all-pages-to-logged-in-users-only/ ) que irá solicitar login para FAQ e Anúncios.

<?php
if (!defined("WHMCS"))
    die("This file cannot be accessed directly");

function hook_ForcarLoginTemplates($vars) {	
	
    $clientID = intval($_SESSION['uid']);
    $adminID = intval($_SESSION['adminid']);
    
    if ($adminID===0){
        if (in_array($vars['templatefile'], array("knowledgebase","announcements")) && $clientID===0){
            header("Location: ../clientarea.php");
            exit;
        }
    }

}
add_hook("ClientAreaPage", 1, "hook_ForcarLoginTemplates"); 

 

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Infelizmente, seu conteúdo contém termos que não são permitimos. Edite seu conteúdo para remover as palavras destacadas abaixo.
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Concorda com os nossos termos?