Thread: Calendar Enhancements - vB Event Forums
View Single Post
  #89  
Old 09-16-2006, 06:37 AM
Farcaster Farcaster is offline
 
Join Date: Dec 2005
Posts: 386
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I've modified this hack on my forums to integrate with the Event Attendance 2.0 script. This will only work if you have Event Attendance 2.0 installed as well (which does work with vb 3.6.0 if you uninstall it and reinstall it).

Below are the steps you need to merge these two products:

Find the following line of code in the "Display Event Details on Thread Page" plugin (under Product : Lv vB Event Forums):
PHP Code:
$eventinfo['event'] = $bbcode_parser->parse($eventinfo['event'], $foruminfo['forumid'], true); 
Under that add this block:
PHP Code:
// EVENT SIGNUP HACK //////////////////////////////////////////////////////////////////////////////

$vbphrase['roll_nobody'] = fetch_phrase("roll_nobody"'calendar');
$vbphrase['roll_cancel'] = fetch_phrase("roll_cancel"'calendar');
$vbphrase['roll_enroll'] = fetch_phrase("roll_enroll"'calendar');
$vbphrase['roll_text'] = fetch_phrase("roll_text"'calendar');

//Check time till event
$time_until_event=$eventinfo['dateline_from']-(TIMENOW+$vbulletion->userinfo['timezoneoffset']*3600);
if (
$vbulletin->userinfo['dstonoff'])
{
    
$time_until_event=$time_until_event-3600;
}
//echo $time_until_event."   ";
$show['enroll']=(($time_until_event>0) || ($vbulletin->options['lateenroll'])) ? true false;

//show enrolled people
        
$rollcount=0;
                if (
$eventinfo['useroll'])
                {
                    
// Roll for this event
            
unset($rollbits);
                    
$show['userattending'] = false;
                    if ((
$roll = @unserialize($eventinfo['roll'])) && is_array($roll))
                    {
                if (
$vbulletin->options['roll_sort']) 
                {
                    
uasort($roll"strnatcasecmp"); 
                }

                            if (
array_key_exists($vbulletin->userinfo['userid'], $roll))
                            {
                    
$show['userattending']=true;
                            }
                    
                    while (
$rollusername current($roll)) 
                { 
                
$rolluserid key($roll); 
                eval(
'$rollbits .= "' fetch_template('calendar_rollbit') . '";'); 
                
$rollcount++;
                
next($roll); 
                } 
                    }
                        else
                        {
                            
$eventinfo['roll'] = "";
                        }
                                    
                        
                eval (
'$eventinfo[roll] = "' fetch_template('calendar_roll') . '";');
                
$eventinfo['event'].=$eventinfo['roll'];

                    
// End Roll
                
}
                else
                {
                    
$eventinfo['roll'] = "";
                    
                }

/////////////////////////////////////////////////////////////////////////////////////////////////// 
Next, open the plugin "redirect links to individual events to their threads instead".
Add the following code to the top:
PHP Code:
// EVENT SIGNUP HACK //////////////////////////////////////////////////////////////////////////////

//Check time till event
$time_until_event=$eventinfo['dateline_from']-(TIMENOW+$vbulletion->userinfo['timezoneoffset']*3600);
if (
$vbulletin->userinfo['dstonoff'])
{
    
$time_until_event=$time_until_event-3600;
}
//echo $time_until_event."   ";
$show['enroll']=(($time_until_event>0) || ($vbulletin->options['lateenroll'])) ? true false;


if (
$_REQUEST['ea'] == "attend" || $_REQUEST['ea'] == "unattend" AND ($time_until_event>OR $vbulletin->options['lateenroll']) )
        {
            if (!
$eventinfo['roll'])
                {
                    
$roll = array();
                }
                else
                {
                    
$roll = @unserialize($eventinfo['roll']);
                }

        if (
$_REQUEST['ea'] == "attend")
            {
            if (
$vbulletin->userinfo[userid])
            {
                
$roll[$vbulletin->userinfo['userid']] = $vbulletin->userinfo['username'];        
            }
            else
            {
            
print_no_permission();
            }
            }
            else
            {
            if (
$vbulletin->userinfo[userid])
            {
                unset(
$roll[$vbulletin->userinfo['userid']]);        
            }
            else
            {
            
print_no_permission();
            }
            }
    
            
$eventinfo['roll'] = serialize($roll);
        
$db->query_write("UPDATE ".TABLE_PREFIX."event SET roll='".addslashes($eventinfo['roll'])."' WHERE eventid='".$eventinfo['eventid']."'");
        
$_REQUEST['do'] = "getinfo"
}
/////////////////////////////////////////////////////////////////////////////////////////////////// 
That's it. Enjoy!

Now, did someone say something about some cash?? *chuckle*
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01786 seconds
  • Memory Usage 1,853KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete