Pagina 1 van 1
Groep uitsluiten van pagina
Geplaatst: 16 apr 2009, 19:05
door Jeroen
- Adres van je forum: http://
Event. modificaties op je forum: nvt
Wanneer ontstond het probleem? nvt
phpBB versie: 3.0.3
Heb je onlangs iets veranderd aan je forum? nvt
Wat is het probleem?
Hallo,
Ik wil graag een bepaalde groep uitsluiten van een pagina.
Heb al gezien dat je dat met een $auth->acl_get ding moet doen.
Welke code moet ik gebruiken om een bepaalde gebruikersgroep een pagina niet op te laten gaan. Dat ze dan een bericht krijgen met dat ze geen permissies hebben. Ik heb namelijk een AJAX chat (van Handyman) op mijn forum, en nu wil ik een gebruikersgroep maken met leden die "verbannen" zijn uit de chat. Dus dat als iemand in die groep zit, hij te zien krijgt: Je bent verbannen van de chat, of je hebt geen permissies als diegene de chat binnen probeert te komen.
Re: Groep uitsluiten van pagina
Geplaatst: 18 apr 2009, 15:57
door Jeroen
Ik heb nu het volgende gedaan:
In chat.php heb ik dit toegevoegd:
Code: Selecteer alles
// The ids of the allowed groups
$allowed = array(9,5); // These are the group id's if more than one use comma between numbers
// See whether the user is member of one of these groups
$sql = 'SELECT user_id
FROM ' . USER_GROUP_TABLE . '
WHERE ' . $db->sql_in_set('group_id', $allowed) . '
AND user_id = ' . $user->data['user_id'];
$result = $db->sql_query_limit($sql, 1, 0);
if (!$data = $db->sql_fetchfield('user_id', false, $result))
{
trigger_error('NO_ACCESS');
}
// The user group can see this page!
en in includes/functions.php dit
Code: Selecteer alles
// sets group id's to S_GROUP_
if ( !function_exists('group_memberships') )
{
include($phpbb_root_path . 'includes/functions_user.'.$phpEx);
}
$groups = group_memberships(false,$user->data['user_id']);
foreach ($groups as $grouprec)
{
$template->assign_vars(array(
'S_GROUP_' . $grouprec['group_id'] => true
));
}
en dan ergens op de chat_body.html dit (maar weet niet waar, graag uitleg)
Met deze codes heeft iedereen die
niet in die groep zit geen toegang tot de chat. Maar wat ik wil is dat iedereen die
wel in die groep zit geen toegang heeft.
Hoe doe ik dat, en waar op chat_body.html moet ik die IF neerzetten?
Re: Groep uitsluiten van pagina
Geplaatst: 18 apr 2009, 16:02
door Jim
Re: Groep uitsluiten van pagina
Geplaatst: 18 apr 2009, 16:03
door Jeroen
Oke bedankt, en waar op de chat_body.html zal ik die IF zetten?
Dit is chat_body.html
Code: Selecteer alles
<!-- IF S_GET_CHAT -->
<!-- IF S_READ or S_ADD -->
<!-- BEGIN chatrow -->
<div id="p{chatrow.MESSAGE_ID}" class="post bg{chatrow.CLASS}">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="postbody">
<p class="author">{chatrow.TIME} </p>
<div class="content">{chatrow.MESSAGE}</div>
</div>
<dl class="postprofile" id="profile{postrow.POST_ID}">
<dt>{chatrow.USERNAME_FULL}</dt>
</dl>
<!-- IF U_ACP or U_MCP -->
<ul class="profile-icons postprofile">
<li class="delete-icon">
<a href="javascript:void({chatrow.MESSAGE_ID})" title="{L_DELETE_POST}" onclick="delete_post('{chatrow.MESSAGE_ID}')"><span>{L_DELETE_POST}</span></a>
</li>
</ul>
<!-- ENDIF -->
<span class="corners-bottom"><span></span></span>
</div>
</div>
<!-- END chatrow -->---{LAST_ID}
<!-- IF S_WHOISONLINE -->---
|
<!-- BEGIN whoisrow -->
<img src="{T_IMAGESET_PATH}/{whoisrow.USER_STATUS}.png" class="online_img" /> {whoisrow.USERNAME_FULL} |
<!-- END whoisrow -->
---{LAST_TIME}---{DELAY}---{LAST_POST}
<!-- ENDIF -->
<!-- ENDIF -->
<!-- ELSE -->
<!-- IF S_CHAT -->
<!-- INCLUDE overall_header.html -->
<center>
</center>
<span class="corners-bottom"><span></span></span></div>
</div>
<!-- ENDIF -->
<script type="text/javascript">
<!--
var fieldname = 'chat';
var last_time = 0;
var xmlHttp = http_object();
var last_id = {LAST_ID};
var type = 'receive';
var post_time = {TIME};
var read_interval = 30000;
var interval = setInterval('handle_send("read", last_id);', read_interval);
function handle_send(mode, f)
{
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
{
indicator_switch('on');
type = 'receive';
param = 'mode=' + mode;
param += '&last_id=' + last_id;
param += '&last_time=' + last_time;
param += '&last_post=' + post_time;
param += '&read_interval=' + read_interval;
if (mode == 'add' && document.postform.message.value != '')
{
type = 'send';
for(var i = 0; i < f.elements.length; i++)
{
elem = f.elements[i];
param += '&' + elem.name + '=' + encodeURIComponent(elem.value);
}
document.postform.message.value = '';
}
else if (mode == 'delete')
{
type = 'delete';
param += '&chat_id=' + f;
}
xmlHttp.open("POST", '{FILENAME}', true);
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlHttp.onreadystatechange = handle_return;
xmlHttp.send(param);
}
}
function handle_return()
{
if (xmlHttp.readyState == 4)
{
if (type != 'delete')
{
results = xmlHttp.responseText.split('---');
if (results[1])
{
if (last_id == 0)
{
document.getElementById(fieldname).innerHTML = results[0];
}
else
{
document.getElementById(fieldname).innerHTML = results[0] + document.getElementById(fieldname).innerHTML;
}
last_id = results[1];
if (results[2])
{
document.getElementById('whois_online').innerHTML = results[2];
last_time = results[3];
if (results[4] != read_interval * 1000)
{
window.clearInterval(interval);
read_interval = results[4] * 1000;
interval = setInterval('handle_send("read", last_id);', read_interval);
document.getElementById('update_seconds').innerHTML = results[4];
}
post_time = results[5];
}
}
}
indicator_switch('off');
}
}
function delete_post(chatid)
{
document.getElementById('p' + chatid).style.display = 'none';
handle_send('delete', chatid);
}
function indicator_switch(mode)
{
if(document.getElementById("act_indicator"))
{
var img = document.getElementById("act_indicator");
if(img.style.visibility == "hidden" && mode == 'on')
{
img.style.visibility = "visible";
}
else if (mode == 'off')
{
img.style.visibility = "hidden"
}
}
}
function http_object()
{
if (window.XMLHttpRequest)
{
return new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
return new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
document.getElementById('p_status').innerHTML = 'Status: Cound not create XmlHttpRequest Object. Consider upgrading your browser.';
}
}
-->
</script>
<style type="text/css">
<!--
#act_indicator {
visibility:hidden;
}
.shouts {
width: 80%;
height:550px;
overflow:auto;
float:left;
}
#chat {
width: 100%;
text-align:left;
}
.postprofile {
min-height: 5px !important;
}
.chatform {
width: 90%;
text-align:center;
}
.onlinelist {
width: 15%;
overflow:auto;
height:300px;
}
.users {
width: 90%;
text-align: left;
text-indent: 5px;
margin-left:auto;
margin-right:auto;
}
.user {
width: 95%;
font-size: 1.1em;
font-family:Verdana, Arial, Helvetica, sans-serif;
line-height: 1.4em;
}
#act_indicator {
visibility: hidden;
}
.chatinput {width: 80% !important;}
.online_img {
vertical-align:middle;
}
.whoonlinelist {
width: 100%;
overflow:auto;
height:auto;
text-align:center;
}
-->
</style>
<!-- IF S_USER_LOGGED_IN -->
<div class="forabg">
<div class="inner">
<span class="corners-top"><span></span></span>
<div class="chatform" align="center">
<!-- INCLUDE posting_buttons.html -->
<form name="postform" id="postform" method="post" action="javascript:void(0);" onsubmit="handle_send('add', this)" autocomplete="off">
<strong style="color: #44551f;">{L_MESSAGE}:</strong> <input type="text" tabindex="1" name="message" id="message" class="inputbox chatinput" />
<input type="submit" class="button1" value="{L_SUBMIT}" name="submit" tabindex="6" accesskey="s"/><br />
</form>
</div>
<span class="corners-bottom"><span></span></span>
</div>
</div>
<!-- ENDIF -->
<div class="forabg" align="left">
<div class="inner">
<span class="corners-top"><span></span></span>
<div class="shouts">
<div id="chat">
<!-- BEGIN chatrow -->
<div id="p{chatrow.MESSAGE_ID}" class="post bg{chatrow.CLASS}">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="postbody">
<p class="author">{chatrow.TIME} </p>
<div class="content">{chatrow.MESSAGE}</div>
</div>
<dl class="postprofile" id="profile{postrow.POST_ID}">
<dt>{chatrow.USERNAME_FULL}</dt>
</dl>
<!-- IF U_ACP or U_MCP -->
<ul class="profile-icons postprofile">
<li class="delete-icon">
<a href="javascript:void({chatrow.MESSAGE_ID})" title="{L_DELETE_POST}" onclick="delete_post('{chatrow.MESSAGE_ID}')"><span>{L_DELETE_POST}</span></a>
</li>
</ul>
<!-- ENDIF -->
<span class="corners-bottom"><span></span></span>
</div>
</div>
<!-- END chatrow -->
</div>
</div>
<div class="onlinelist bg1">
<div class="users">
<div>
<div class="inner">
<div class="user"><!-- IF S_SMILIES_ALLOWED and .smiley --><br>
<!-- BEGIN smiley -->
<a href="#" onclick="insert_text('{smiley.A_SMILEY_CODE}', true); return false;"><img src="{smiley.SMILEY_IMG}" width="{smiley.SMILEY_WIDTH}" height="{smiley.SMILEY_HEIGHT}" alt="{smiley.SMILEY_CODE}" title="{smiley.SMILEY_DESC}" /></a>
<!-- END smiley -->
<!-- ENDIF -->
<!-- IF S_SHOW_SMILEY_LINK and S_SMILIES_ALLOWED-->
<br /><a href="{U_MORE_SMILIES}" onclick="window.open('{U_MORE_SMILIES}', '_phpbbsmilies', 'HEIGHT=350,resizable=yes,scrollbars=yes,WIDTH=300'); return false;">{L_MORE_SMILIES}</a>
<!-- ENDIF --><!-- IF BBCODE_STATUS -->
<!-- IF .smiley --><hr /><!-- ENDIF -->
{BBCODE_STATUS}<br />
<!-- IF S_BBCODE_ALLOWED -->
{IMG_STATUS}<br />
{FLASH_STATUS}<br />
{URL_STATUS}<br />
<!-- ENDIF -->
{SMILIES_STATUS}
<!-- ENDIF --></div>
</div>
</div>
</div>
</div>
<span class="corners-bottom"><span></span></span>
</div>
</div>
<div class="forabg">
<div class="inner">
<span class="corners-top"><span></span></span>
<div class="whoonlinelist bg1" id="whois_online">
|
<!-- BEGIN whoisrow -->
<img src="{T_IMAGESET_PATH}/{whoisrow.USER_STATUS}.png" class="online_img" /> {whoisrow.USERNAME_FULL} |
<!-- END whoisrow -->
</div>
<span class="corners-bottom"><span></span></span>
</div>
</div>
<div class="forabg" align="center">
<div class="inner">
<span class="corners-top"><span></span></span>
<div class="post">
<div id="author">{L_DETAILS}
<img src="{T_IMAGESET_PATH}/act_indicator.gif" id="act_indicator" />
<strong>• {L_UPDATES} <span id="update_seconds">{DELAY}</span> {L_UNIT}</strong>
</div>
</div>
<span class="corners-bottom"><span></span></span>
</div>
</div>
<!-- IF S_CHAT -->
<!-- INCLUDE overall_footer.html -->
<!-- ENDIF -->
<!-- ENDIF -->
Als ik de IF bovenaan en de endif onderaan de pagina plaats, krijg ik een blanke pagina
Waar moet ik hem zetten en wat kan er fout zijn?
Re: Groep uitsluiten van pagina
Geplaatst: 18 apr 2009, 19:41
door Paul
Graag niet dubbelposten, maar je vorige bericht bewerken. Ik heb je posts nu samengevoegd.
Re: Groep uitsluiten van pagina
Geplaatst: 18 apr 2009, 22:08
door Derky
<!-- IF S_GET_CHAT and not S_GROUP_11 -->
Re: Groep uitsluiten van pagina
Geplaatst: 18 apr 2009, 23:27
door Jeroen
Derky, met die code kan je als je geen toegang zou moeten hebben de chat alsnog in....
Heb het dus geprobeerd maar met die code werkt het niet.
Wijziging: Als ik het op een andere nieuw toegevoegde pagina probeer lukt het wel.... Het ligt dus aan de plaats van de IF in de chat.php denk ik....