Clicky

Jump to content
Portal do Host
  • Sign Up

Sign in to follow this  
gsouza

Bloqueando base de conhecimento

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

Share this post


Link to post
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


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

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

 

Share this post


Link to post
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}

 


Fox Soluções  | Streaming Áudio - Revendas de Streaming | Data Center Brasil  EUA  | www.FoxSolucoes.com
 

Share this post


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

Share this post


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


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

@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  | Streaming Áudio - Revendas de Streaming | Data Center Brasil  EUA  | www.FoxSolucoes.com
 

Share this post


Link to post
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"); 

 


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

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...