Jump to content

Bloqueando base de conhecimento


gsouza
 Share

Recommended Posts

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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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}

 

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

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...