vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=111)
-   -   Permission based links? Is it possible? (https://vborg.vbsupport.ru/showthread.php?t=182862)

soundbarrierpro 06-18-2008 02:49 PM

Permission based links? Is it possible?
 
I've created several vbpowered pages which no matter what I do, I cannot get them to use permissions.

So...........

I'd like to know if it's possible to hide the pages and just make a link to them, but make the link permission based? I'd like to make it so only registered users see the link and guests don't.

King Kovifor 06-18-2008 03:12 PM

Are you doing this in vBulletin templates?

soundbarrierpro 06-18-2008 03:48 PM

Quote:

Originally Posted by King Kovifor (Post 1552644)
Are you doing this in vBulletin templates?

Yes, that is correct. They are all vbulletin templates, produced with this hack. I tried over and over and over to get the usergroup perms to work on the temps, but all the pages are still viewable to guests. I am now hoping I can hide the link only and make that viewable to only certain user groups.

https://vborg.vbsupport.ru/showthrea...t=powered+page

RLShare 06-18-2008 04:03 PM

If your just trying to make it where guests can't view the pages, in the php file which in that tutorial would be test.php add this code below where global.php is included

PHP Code:

if (!$vbulletin->userinfo['userid']){
//user not logged in, give no permission message.. make a new template
}
else{
//user is logged in, fetch the template for the page.



soundbarrierpro 06-18-2008 04:16 PM

Like this?

Code:

<?php

// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'downloads'); // change this depending on your filename

// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array(

);

// get special data templates from the datastore
$specialtemplates = array(
   
);

// pre-cache templates used by all actions
$globaltemplates = array(
    'downloads',
);

// pre-cache templates used by specific actions
$actiontemplates = array(

);

// ######################### REQUIRE BACK-END ############################
require_once('./global.php');
if (!$vbulletin->userinfo['userid']){
//user not logged in, give no permission message.. make a new template
}
else{
//user is logged in, fetch the template for the page.
}

// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################

$navbits = array();
$navbits[$parent] = 'downloads';

$navbits = construct_navbits($navbits);
eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('downloads') . '");');

?>

Doesn't work.

RLShare 06-18-2008 04:20 PM

Quote:

Originally Posted by soundbarrierpro (Post 1552688)
Like this?

Code:

<?php

// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'downloads'); // change this depending on your filename

// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array(

);

// get special data templates from the datastore
$specialtemplates = array(
   
);

// pre-cache templates used by all actions
$globaltemplates = array(
    'downloads',
);

// pre-cache templates used by specific actions
$actiontemplates = array(

);

// ######################### REQUIRE BACK-END ############################
require_once('./global.php');
if (!$vbulletin->userinfo['userid']){
//user not logged in, give no permission message.. make a new template
}
else{
//user is logged in, fetch the template for the page.
}

// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################

$navbits = array();
$navbits[$parent] = 'downloads';

$navbits = construct_navbits($navbits);
eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('downloads') . '");');

?>

Doesn't work.

NAH..... like this....I changed it a litte from what I posted before...You will need to create another template and fetch it from with-in the 'if' statement, replace where it says "//user not logged in, give no permission message.. make a new template " with another statement like this one..
eval('print_output("' . fetch_template('downloads') . '");'); except have it fetch a template you create saying they don't have permissions

PHP Code:

<?php 

// ####################### SET PHP ENVIRONMENT ########################### 
error_reporting(E_ALL & ~E_NOTICE); 

// #################### DEFINE IMPORTANT CONSTANTS ####################### 
define('NO_REGISTER_GLOBALS'1); 
define('THIS_SCRIPT''downloads'); // change this depending on your filename 

// ################### PRE-CACHE TEMPLATES AND DATA ###################### 
// get special phrase groups 
$phrasegroups = array( 

); 

// get special data templates from the datastore 
$specialtemplates = array( 
     
); 

// pre-cache templates used by all actions 
$globaltemplates = array( 
    
'downloads'
); 

// pre-cache templates used by specific actions 
$actiontemplates = array( 

); 

// ######################### REQUIRE BACK-END ############################ 
require_once('./global.php');

// ####################################################################### 
// ######################## START MAIN SCRIPT ############################ 
// ####################################################################### 

$navbits = array(); 
$navbits[$parent] = 'downloads'

$navbits construct_navbits($navbits); 

eval(
'$navbar = "' fetch_template('navbar') . '";'); 

if (!
$vbulletin->userinfo['userid']){ 

//user not logged in, give no permission message.. make a new template 



else{ 
//user is logged in, fetch the template for the page. 


eval('print_output("' fetch_template('downloads') . '");'); 


}
?>


soundbarrierpro 06-18-2008 04:43 PM

like this?

Code:

<?php 

// ####################### SET PHP ENVIRONMENT ########################### 
error_reporting(E_ALL & ~E_NOTICE); 

// #################### DEFINE IMPORTANT CONSTANTS ####################### 
define('NO_REGISTER_GLOBALS', 1); 
define('THIS_SCRIPT', 'downloads'); // change this depending on your filename 

// ################### PRE-CACHE TEMPLATES AND DATA ###################### 
// get special phrase groups 
$phrasegroups = array( 

); 

// get special data templates from the datastore 
$specialtemplates = array( 
     
); 

// pre-cache templates used by all actions 
$globaltemplates = array( 
    'downloads', 
); 

// pre-cache templates used by specific actions 
$actiontemplates = array( 

); 

// ######################### REQUIRE BACK-END ############################ 
require_once('./global.php');

// ####################################################################### 
// ######################## START MAIN SCRIPT ############################ 
// ####################################################################### 

$navbits = array(); 
$navbits[$parent] = 'downloads'; 

$navbits = construct_navbits($navbits); 

eval('$navbar = "' . fetch_template('navbar') . '";'); 

if (!$vbulletin->userinfo['userid']){ 

//user not logged in, give no permission message
eval('print_output("' . fetch_template('reg') . '");');


else{ 
//user is logged in, fetch the template for the page. 


eval('print_output("' . fetch_template('downloads') . '");'); 


}
?>


RLShare 06-18-2008 04:55 PM

Exactly...

soundbarrierpro 06-18-2008 05:05 PM

Doesn't work for me. Oh well. Guess I'll go back to using the cmps hide mod then. Thanks for your help.

RLShare 06-18-2008 05:10 PM

1 Attachment(s)
Ive just tried exactly what you posted with 3.7 and it worked. Are you sure that your default style holds the 'reg' template?

here are some screenshots of it working on my board... the downloads template is just the code for the template from that tutorial you posted with the title part changed to 'Downloads' and the reg template is the same code except with the title changed to 'You can't view this page'

soundbarrierpro 06-18-2008 05:18 PM

Quote:

Originally Posted by RLShare (Post 1552738)
Ive just tried exactly what you posted with 3.7 and it worked. Are you sure that your default style holds the 'reg' template?

yep, custom_reg

RLShare 06-18-2008 05:20 PM

Is the name of the template 'custom_reg'? If so then you would need to fetch 'custom_reg' not 'reg'

soundbarrierpro 06-18-2008 05:22 PM

Quote:

Originally Posted by RLShare (Post 1552747)
Is the name of the template 'custom_reg'? If so then you would need to fetch 'custom_reg' not 'reg'

But I have thirty other templates all named custom_xx and they are called by the php file that goes with them.

Is this call different?

King Kovifor 06-18-2008 07:13 PM

If they are linked within vBulletin templates, you can surround them with <if condition="is_member_of($vbulletin->userinfo, array(group_ids))">

soundbarrierpro 06-19-2008 11:05 AM

Quote:

Originally Posted by King Kovifor (Post 1552852)
If they are linked within vBulletin templates, you can surround them with <if condition="is_member_of($vbulletin->userinfo, array(group_ids))">

Hi thank you, I can surround what part of the code? Can you do it in the code I posted and post that? Thanks

King Kovifor 06-19-2008 01:43 PM

No. The <if condition=""> needs to be wrapped around the <a href=""> within the templates.

soundbarrierpro 06-19-2008 04:36 PM

Quote:

Originally Posted by King Kovifor (Post 1553580)
No. The <if condition=""> needs to be wrapped around the <a href=""> within the templates.

Ok, thanks King. That works fluidly. :)


All times are GMT. The time now is 08:52 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01169 seconds
  • Memory Usage 1,795KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_code_printable
  • (2)bbcode_php_printable
  • (6)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (17)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete