vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 4.x Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=245)
-   -   Miscellaneous Hacks - AgeLock v3.5 (https://vborg.vbsupport.ru/showthread.php?t=235780)

tbl33 07-14-2010 08:00 PM

Still awaiting an answer. I thought that this mod was supported.

stuie_b 07-14-2010 09:02 PM

Quote:

Originally Posted by tbl33 (Post 2069217)
Still awaiting an answer. I thought that this mod was supported.

yes this mod is supported to the best of my abillities and time, i do have other things which need to be sorted before support is an issue like the next version of Age Lock maybe you should be greatful for having support at all,

In answer to your question guest are not exemptable in this version, they are in the latest version which is still under development and at the min there is no eta (problems :) ),

however since you seem hell bent on this here is a modded version of the code which will enable guest viewing

Edit Global_start hook (Age Lock - Global Setup) and replace all with
PHP Code:

//Age Lock v3.1

function agelock_populate($fid){
global 
$db$vbulletin;
$agelock_qry $db->query_first("SELECT * FROM " TABLE_PREFIX ."forum WHERE forumid='".$fid."'");
if(
$agelock_qry['parentid'] > 0){
    
//Check for Parent Lock
    
$agelock_parent $db->query_first("SELECT * FROM " TABLE_PREFIX ."forum WHERE forumid='".$agelock_qry['parentid']."'");
    if(
$agelock_parent['agelock_parent']){
        
//Parent is locked, send lock status for sub-forum from parent
    
$agelock_ret['locked'] = $agelock_parent['agelock'];
    
$agelock_ret['method'] = $agelock_parent['agelock_method'];
    
$agelock_ret['age']  = $agelock_parent['agelock_age'];
    }else{
        
//Parent Lock is Not enabled, send lock status for sub-forum
     
$agelock_ret['locked'] = $agelock_qry['agelock']; 
    
$agelock_ret['method'] = $agelock_qry['agelock_method'];
    
$agelock_ret['age'] = $agelock_qry['agelock_age']; 
    }
}
$pre_year=date("Y"); $pre_month=date("m"); $pre_day=date("d"); $bday explode("-"$vbulletin->userinfo['birthday']);
if(
$pre_month>$bday[0] || ($bday[0]==$pre_month && $pre_day>=$bday[1]) ){$agelock_ret['userage'] = $pre_year-$bday[2];}else{$agelock_ret['userage'] = $pre_year-$bday[2]-1;}
return 
$agelock_ret;
}
//End of the AgeLock Population Funcion


function agelock_check($fid,$flag=0){
global 
$vbulletin,$db;
$agelock agelock_populate($fid);

if(
$agelock['locked'] == and $vbulletin->options['agelock_global']){
//if(!$vbulletin->userinfo['userid']){if($flag){return 1;}else{standard_error($vbulletin->options['agelock_guest']);}}
if(!$vbulletin->userinfo['permissions']['adminpermissions'] and !preg_match("/".$vbulletin->userinfo['usergroupid']."/i",$vbulletin->options['agelock_exmptusr'])){
if(!
$vbulletin->userinfo['birthday'] and $vbulletin->userinfo['userid']){if($flag){return 1;}else{standard_error($vbulletin->options['agelock_nobday']);}}

if(
$agelock['method'] == 0){ //This forum has a lock, they need too be older than the value set
if($agelock['userage'] < $agelock['age']){ //Are you old enuff? 
if($flag){return 1;}else{standard_error($vbulletin->options['agelock_toyng']);} //Your too young!
}

}elseif(
$agelock['method'] == 1){ //This forum has a lock, they need too be Younger than the value set
if($agelock['userage'] >= $agelock['age']){ //Are you young enuff?
if($flag){return 1;}else{standard_error($vbulletin->options['agelock_toold']);} //Your too Old!
}
}

//End of check if there able to bypass the lock (admins/mods or user specified usergroups)
//End of main age lock code
//End of function

if($vbulletin->options['agelock_global'] and $vbulletin->options['agelock_hidemain']){
foreach (
$vbulletin->forumcache as $key => $value){
    if (
agelock_check($vbulletin->forumcache[$key]['forumid'],1)){
        unset(
$vbulletin->forumcache[$key]);
         }
}


untested!


Stuie

tbl33 07-15-2010 09:16 PM

Thank you! No need to get salty. A simple acknowledgement of my message would have prevented my sending another message, "7 days later". Anyway, thank you for your efforts.

tbl33 07-15-2010 09:35 PM

FYI, the code works for allowing guests but it would appear that the sub forums locking isn't working real well. It locks the first tier under the category but anything below that is open.

ie. Underground is locked to over 18 the sub of Others is also locked but all of the subs under Others, is wide open.

I didn't notice if that was an issue in 3.1 or just the modified code above.

darksoul 08-08-2010 08:39 AM

Hello,

We have a board with 148 forums and subforums. On each page load your plugin will query the database for all forums and it managed to fill a 100Mbps pipe line to the mysql server.
The agelock_populate function should use the forumcache instead of querying the database every time.

Regards,
Darksoul

stuie_b 08-11-2010 10:52 AM

Latest version of Age Lock has now been attached,

Its recommended you uninstall all previous versions and upgrade to v3.5

Code:

+ Added support for CMS (Blog locking is there but not usable (99.9% sure blog locking is prob. pointless, since all users would be able to age restrict posts))
+ Enable/Disable Guest Viewing of age locked forums
+ Moved Age Lock core from outdated hook (global_start) to new (global_bootstrap_init_start)
+ Removed defunct Error message
+ Added abillity to re-enable Date of Birth Editing for all users
+ Fixed Bug where Date of birth editing is still disabled for users who are exempt from Age Lock
+ Reworded Default Age Lock Messages
+ Added support for multi-level forum locking using parent lock state (instead of parent-->forum, now parent-->forum-->subforum-->..)
+ Removed over zelus agelock checking (No more queries to get lock state)

Support is limited but i will try to answer as many as possible.


Stuie

CrystaStarLight 08-16-2010 01:16 AM

This is a great hack, thank you! Marked installed & 5 starred. :)

Oh also, in the template changes, I needed to add vb: in front of the "if" conditions in the code, otherwise I was getting an error when I tried to save the template. I have 4.0.6. I don't know if needing a vb: in front of the IF's is a new thing with that version, I just noticed all the surrounding IF's had vb: in front of them, so I tried it and it got rid of the error. This is what I did:

Code:

<vb:if condition="$vboptions['agelock_frmnt'] AND $forum['agelock'] AND $vboptions['agelock_global']">{vb:raw $vboptions['agelock_frmntm']}</vb:if>

stuie_b 08-16-2010 09:09 AM

Quote:

Originally Posted by CrystaStarLight (Post 2084566)
This is a great hack, thank you! Marked installed & 5 starred. :)

Oh also, in the template changes, I needed to add vb: in front of the "if" conditions in the code, otherwise I was getting an error when I tried to save the template. I have 4.0.6. I don't know if needing a vb: in front of the IF's is a new thing with that version, I just noticed all the surrounding IF's had vb: in front of them, so I tried it and it got rid of the error. This is what I did:

Code:

<vb:if condition="$vboptions['agelock_frmnt'] AND $forum['agelock'] AND $vboptions['agelock_global']">{vb:raw $vboptions['agelock_frmntm']}</vb:if>

Thanks for the notice, i had used the old template code,

Updated package with correct installation details

Stuie

ImmortalForums 08-17-2010 03:40 AM

Glad to see the query change. 300+ queries for my forum was a bit crazy.

OldSchoolDSL 12-27-2010 02:16 AM

Installed and working

4.1 PL2

Would be wonderful if someone added the option for this to work with Blogs as well


All times are GMT. The time now is 08:40 AM.

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.01429 seconds
  • Memory Usage 1,782KB
  • 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
  • (1)bbcode_php_printable
  • (2)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)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
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete