Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.5 > vBulletin 3.5 Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
PayPal Donations For vBulletin 3.5.0 Details »»
PayPal Donations For vBulletin 3.5.0
Version: 2.02, by Cloudrunner Cloudrunner is offline
Developer Last Online: Feb 2022 Show Printable Version Email this Page

Version: 3.5.0 Beta 4 Rating:
Released: 07-02-2005 Last Update: 07-06-2006 Installs: 330
DB Changes Uses Plugins Template Edits
Code Changes Additional Files  
No support by the author.

Sorry Guys...I have disappeared from vB coding completely for the time being...RL is paying me $35/hour to ignore it lol. Hope you understand why I haven't been around...

Paypal Donations For vBulletin 3.5
Version 2.02b


Hack Provided and coded by )O( Cloudrunner )O( of The Noble Pagan.
Release version: 2.02b
Release Date: 03 July 2005

Change Log

Paypal Donations 2.02
  • Fixed Bug introduced with the installer for the tables from 2.01
  • Added Who's Online Support Plugins For Donations Script
Paypal Donations 2.01
  • Fixed a small bug in the display of the top / last donors on the donate page.
Paypal Donations 2.00
  • Ported system over to vBulletin 3.50
  • Added ability for the installer to install template edits automatically
  • System installs plugins automatically
  • Fixed some minor bugs that were present in 1.07 of the 3.0.7 vBulletin donations system.
Special Thanks

Special Thanks goes to the following people, without their support, this would never have happened:

dsboyce8624
guvner
SLeeeper
And all of the Alpha Testers that helped out with this Hack!

I couldn't have done it without you all, Thank you!

)O( Cloudrunner )O(

What Paypal Donations Is:

Paypal Donations is a complete system that controls donations and how they are received via backend interfacing between your vBulletin server and Paypal's payment gateway server. The beauty of this marriage of servers is quite simply automation of the donation process as well as security of the transactions for both you, the administrator, and your users. With the Paypal donations system installed on your forums, you will be able to bring in that much needed income to not only keep your forums alive, but also to help defer costs of doing so to the users of your site without having to bug everyone and beg for money.

This seamless integration of Paypal as your backend payment processor not only provides your user with a well known and safe payment processor, but you are saved the hassle of opening a merchant account with your banking institution as well as saves you time in the process as it takes only a few short minutes to sign up with Paypal if you are not already an account holder there.
System Requirements

OS: vBulletin 3.5 (if you are running this already, then your server has the required installation, GD libraries are required, as well as CURL capabilities for this system to work)

Things To Do Before Installation

Direct File Edits To vB Resident Files: 1 (needed to group templates in AdminCP)
File Uploads: 34 (Of which 18 will be deleted after installation, leaving a total of 16 Files on your server)
Direct Database Queries: None, the installer does these for you
Direct Plugin Installation: None, the installer does these for you
Direct Template Modification: None, the installer installs all new templates, and modifies the resident templates as needed

The uninstaller will remove all modifications (to include the templates) should you decide to remove the system from your server.

How To Install / Upgrade Paypal Donations

Installation and Upgrading are as easy as a human like me could make it. Simply upload all the files from the archive to your server keeping the folder hierarchy intact and then point your browser to the installation file. On most servers it will be one of the following:Just follow the prompts from there folks, the installer does all the database, template, plugin, phrasing, and settings automatically for you!

If you ever decide to remove the system, just upload the install files and folder again and run the installer and choose uninstall. The uninstaller will remove any and all modifications that it did to your files, database, and templates automatically as well. Its as easy as you can get!

Time to install: less than five minutes depending on your upload speed.


Steps To Perform After Installation
  1. You must make sure that you have either a Business or Premiere account with Paypal.
    1. If you do not, then you will need to upgrade your Paypal account to that level before this system will work.
  2. You must have Paypal's IPN (Instant Payment Notification) turned on in your Paypal Profile.
    1. You do not need to have it pointing at any particular file for this system to work as the system will tell Paypal where to send the IPN to credit your users and notify you of the transaction.
  3. You will need to run through the donations settings at the end of the installer and make sure that you have all the required information in there.
  4. Please note that this system can be placed into test mode (default setting is ON when system is first installed).
    1. This setting tells the system whether to speak with the real Paypal Server for transactions or with Paypal's Sandbox (testing) server. If you wish to test the system before going live you will need to have access to Paypal's Sandbox server, you can sign up for access there at: http://developer.paypal.com.
  5. You will need to input your Paypal Account Email into the settings
  6. You will need to input the full URL to your donate.php file so that your users can make it back to your site after payment
  7. You will need to input the full URL to your ppverify.php file so that Paypal can send your IPNs to you and your system can process the information and give your users credit for the donation
License

Quote:
Originally Posted by Brandon J. Briggs aka. Cloudrunner
As the original author of the Paypal Hacks for vBulletin 3.0.x and 3.5.x I give full authorization to modify, recode, compile and/or reverse engineer the paypal donation hacks to any and all fully licensed members of vBulletin.org. I also give permission to fully distribute any derivative works that are created due to this authorization without need of providing credit or other means of recompense.
I am releasing this authorization in the hopes that someone will be able to carry on the work that was begun.

Final words

You will need to add a link somewhere in your navigation system for vBulletin pointing your users to the donations page (if you installed the vBadvanced Module then you have a link on the home page, but you might want to add one in the nav bar as well), as well as setting up your paypal account to give IPN responses to you, you can do this in your Paypal Profile under Instant Payment Notification.

To play in PayPal's Sandbox you will need to be registered with their developer network and setup a few sandbox accounts to play with the sandbox properly. I have throughly tested the sandbox functionality, and it is working until they decide to change coding standards again.

I sincerely hope that you enjoy this hack, Please feel free to send feedback to tnp@noblepagan.com !
Thank you!

)O( Cloudrunner )O(

P.s. Should you feel the need to donate to me in thanks, I will not stop you , in fact I will say thank you and that your support is greatly appreciated. If you do donate to me for this hack, I will give the recognition here as well as on The Noble Pagan. You can find my donations page here (also works as a demo site should you feel the need to check it out):

The Noble Pagan Donation Page

Supporters / CoAuthors

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #1262  
Old 11-26-2006, 06:57 PM
Trana Trana is offline
 
Join Date: Apr 2005
Posts: 604
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I recently moved my site to a new server (in the process there was a PHP version change to some new release in 5.x). Everything on my site seems to be working except donate.php. When I call it the browser shows parts of the source code on the screen, like it isn't completing the php script. There is no error code.

Does anyone have any suggestions on what can be done to fix this?

Thanks!
Reply With Quote
  #1263  
Old 11-26-2006, 08:22 PM
sinisterpain's Avatar
sinisterpain sinisterpain is offline
 
Join Date: Feb 2006
Location: New Hampshire
Posts: 571
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

try re-uploading the PHP file and see if that solves your problem
Reply With Quote
  #1264  
Old 11-26-2006, 09:35 PM
Trana Trana is offline
 
Join Date: Apr 2005
Posts: 604
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by sinisterpain View Post
try re-uploading the PHP file and see if that solves your problem
I reuploaded the original donate.php file I had and the problem still exists.
Reply With Quote
  #1265  
Old 11-26-2006, 09:39 PM
Trana Trana is offline
 
Join Date: Apr 2005
Posts: 604
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This is what is shown on the page when I call it:

Code:
options['donationsactive'] == '1'){ // ###### Show Donation Options ###### $i = 1; $ip_address = $_SERVER['REMOTE_ADDR']; $query = $vbulletin->db->query_read("SELECT button.*, goal.title AS goal_title FROM ".TABLE_PREFIX."donation_buttons AS button LEFT JOIN ".TABLE_PREFIX."donation_goals AS goal ON(goal.id = button.goalid) WHERE button.active = '1'"); $num = $vbulletin->db->num_rows($query); while ($row = $vbulletin->db->fetch_array($query)){ // ###### Check Currency Costs ###### if ($vbulletin->options['showcurrencyselector'] == '1'){ $currency = $vbulletin->db->query_first("SELECT * FROM ".TABLE_PREFIX."donation_currency_exchange"); $amount = array(); foreach ($currency AS $key => $value){ $amount[$key] = number_format(round($row['amount'] * $value, 2), 2); $amount['JPY'] = round($row['amount'] * $value, 0); } } $description = stripslashes($row['description']); if ($i < $num){ $end = ""; $i++; } else { $end = ''; unset($i, $num); } eval('$donationbits .= "' . fetch_template('donations_bits') . '";'); } if ($vbulletin->options['showdonors'] == '1'){ // ###### Show Top/Last Donors ###### if ($vbulletin->options['toporlast'] == '1'){ $query = $vbulletin->db->query_read("SELECT * FROM ".TABLE_PREFIX."donation_donors WHERE userid != '0' ORDER BY total DESC LIMIT 0,".$vbulletin->options['topdonornumber']); } else { $query = $vbulletin->db->query_read("SELECT * FROM ".TABLE_PREFIX."donation_donors WHERE userid != '0' ORDER BY id DESC LIMIT 0,".$vbulletin->options['topdonornumber']); } $num = $vbulletin->db->num_rows($query); $i = 1; while ($row = $vbulletin->db->fetch_array($query)){ $avatar_row = $vbulletin->db->query_first("SELECT user.showdonor, user.username, user.avatarid, user.avatarrevision, avatar.avatarpath, NOT ISNULL(customavatar.filedata) AS hascustomavatar, customavatar.dateline AS avatardateline FROM ".TABLE_PREFIX."user AS user LEFT JOIN ".TABLE_PREFIX."avatar AS avatar ON(avatar.avatarid = user.avatarid) LEFT JOIN ".TABLE_PREFIX."customavatar AS customavatar ON(customavatar.userid = user.userid) WHERE user.userid = '".$row['userid']."'"); if ($avatar_row['avatarid']){ $avatarurl = $avatar_row['avatarpath']; } else { if ($avatar_row['hascustomavatar']){ if ($vbulletin->options['usefileavatar']){ $avatarurl = $vbulletin->options['avatarurl']."/avatar".$row['userid']."_".$avatar_row['avatarrevision'].".gif"; } else { $avatarurl = "image.php?".$session['sessionurl']."u=".$row['userid']."&dateline=".$avatar_row['avatardateline']; } } else { $avatarurl = ''; } } $userid = $row['userid']; $avatar = ''; $username = stripslashes($avatar_row['username']); $show_as_donor = $avatar_row['showdonor']; $total = number_format($row['total'], 2, '.', ','); if ($i < $num){ $end = ""; $i++; } else { $end = ''; unset($i, $num); } eval('$topdonorbits .= "' . fetch_template('donations_top_donor_bits') . '";'); } } if($vbulletin->options['showgoals'] == '1'){ // ###### Show Goals ###### if ($vbulletin->options['showtotalcollected'] == '1'){ // ###### Show Total Contributed To Date ###### $query = $vbulletin->db->query_read("SELECT mc_gross, mc_fee FROM ".TABLE_PREFIX."donation_paypalipn WHERE valid = '1' AND test_ipn = '".$vbulletin->options['ipn_test']."' AND payment_status = 'Completed'"); while ($row = $vbulletin->db->fetch_array($query)){ $mc_net = $row['mc_gross'] - $row['mc_fee']; $mc_total = $mc_net + $mc_total; } } $query = $vbulletin->db->query_read("SELECT * FROM ".TABLE_PREFIX."donation_goals WHERE active = '1'"); $num = $vbulletin->db->num_rows($query); $i = 1; while ($row = $vbulletin->db->fetch_array($query)){ $title = stripslashes($row['title']); $description = stripslashes(nl2br($row['description'])); $amount = number_format($row['amount'], 2, '.', ','); $total_donated = number_format($row['total_donated'], 2, '.', ','); if ($row['amount'] > 0){ $percentage = round(($row['total_donated']/$row['amount'])*100, 2); } else { $percentage = '0'; } if ($i < $num){ $end = ""; $i++; } else { $end = ''; unset($i, $num); } eval('$donationgoalbits .= "' . fetch_template('donations_goal_bits') . '";'); } } // ###### Draw navbar ###### $pagetitle = $vbulletin->options['bbtitle'].' Donations'; $navbits = array( "donate.php?$session[sessionurl]" => 'Donations', '' => $pagetitle ); $navbits = construct_navbits($navbits); eval('$navbar = "' . fetch_template('navbar') . '";'); // ###### Output page ###### eval('print_output("' . fetch_template('DONATIONS') . '");'); } else { // ###### Draw navbar ###### $pagetitle = $vbulletin->options['bbtitle'].' Donations'; $navbits = array( "donate.php?$session[sessionurl]" => 'Donations', '' => $pagetitle ); $navbits = construct_navbits($navbits); eval('$navbar = "' . fetch_template('navbar') . '";'); // ###### Output page ###### eval('print_output("' . fetch_template('donations_inactive') . '");'); } } elseif ($_REQUEST['do'] == 'thankyou'){ // ###### User completed donation, THANK THEM! ###### $vbulletin->input->clean_gpc('p', 'mc_gross', TYPE_NOCLEAN); $total = '$'.number_format($vbulletin->GPC['mc_gross'], 2, '.', ','); // ###### Draw navbar ###### $pagetitle = $vbulletin->options['bbtitle'].' Donation Complete, THANK YOU!'; $navbits = array( "donate.php?$session[sessionurl]" => ' Donation Complete, THANK YOU!', '' => $pagetitle ); $navbits = construct_navbits($navbits); eval('$navbar = "' . fetch_template('navbar') . '";'); // ###### Output page ###### eval('print_output("' . fetch_template('donations_complete') . '");'); } elseif ($_REQUEST['do'] == 'canceled'){ if ($_REQUEST['feedback'] == '1'){ // ###### Do Feedback Send ###### $vbulletin->input->clean_array_gpc('p', array( 'subject' => TYPE_STR, 'message' => TYPE_STR) ); $subject = $vbulletin->GPC['subject']; $message = $vbulletin->GPC['message']; vbmail($vbulletin->options['webmasteremail'], $subject, $message); // ###### Draw navbar ###### $pagetitle = $vbulletin->options['bbtitle'].' Donation Cancelled, Feedback Sent'; $navbits = array( "donate.php?$session[sessionurl]" => 'Donation Cancelled, Feedback Sent', '' => $pagetitle ); $navbits = construct_navbits($navbits); eval('$navbar = "' . fetch_template('navbar') . '";'); // ###### Output page ###### eval('print_output("' . fetch_template('donations_cancelled_feedback_sent') . '");'); } else { // ###### Do Donate Cancel ###### // ###### Draw navbar ###### $pagetitle = $vbulletin->options['bbtitle'].' Donation Cancelled'; $navbits = array( "donate.php?$session[sessionurl]" => 'Donation Cancelled', '' => $pagetitle ); $navbits = construct_navbits($navbits); eval('$navbar = "' . fetch_template('navbar') . '";'); // ###### Output page ###### eval('print_output("' . fetch_template('donations_cancelled') . '");'); } } /*======================================================================*\ || #################################################################### || || # donate -- Fileversion 2.01 # || || # Date Version Finalized -- 03 July 2005 # || || #################################################################### || \*======================================================================*/ ?>
Reply With Quote
  #1266  
Old 11-26-2006, 10:29 PM
Trana Trana is offline
 
Join Date: Apr 2005
Posts: 604
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

A copy of my donate.php file is attached. Can someone help me out by doing a diff to see if there is an corruption in the file. I really doubt it but need to start eliminating possible problems.

Thanks.
Reply With Quote
  #1267  
Old 11-26-2006, 11:08 PM
Cloudrunner's Avatar
Cloudrunner Cloudrunner is offline
 
Join Date: May 2003
Location: Butte, MT
Posts: 635
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Brandon J. Briggs aka. Cloudrunner
As the original author of the Paypal Hacks for vBulletin 3.0.x and 3.5.x I give full authorization to modify, recode, compile and/or reverse engineer the paypal donation hacks to any and all fully licensed members of vBulletin.org. I also give permission to fully distribute any derivative works that are created due to this authorization without need of providing credit or other means of recompense.
I am releasing this authorization in the hopes that someone will be able to carry on the work that was begun.
Reply With Quote
  #1268  
Old 11-26-2006, 11:47 PM
da420 da420 is offline
 
Join Date: Nov 2005
Posts: 1,232
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Nice, I hope someone picks this up. Thanks Cloudrunner.
Reply With Quote
  #1269  
Old 11-28-2006, 12:35 AM
sinisterpain's Avatar
sinisterpain sinisterpain is offline
 
Join Date: Feb 2006
Location: New Hampshire
Posts: 571
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Trana View Post
A copy of my donate.php file is attached. Can someone help me out by doing a diff to see if there is an corruption in the file. I really doubt it but need to start eliminating possible problems.

Thanks.
I didnt immediately see any proplems with the file. Uninstall the hack and use this zip it contains a XML file to install the templates and tables. Andreas put this together. Follow the install instructions. Make sure you go into your admin CP panel and edit the donations settings adding your paypal email and links to ppverify and make sure you are not in the paypal sandbox.
Unfortunately the html instructions are for the original hack install. You need to upload all files in the upload folder to your webserver using the folder structure in the zip, import the xml file through admin CP, make the template edits from the install text file. If you still have problems let me know I will try to help you get it going.
Reply With Quote
  #1270  
Old 11-28-2006, 03:33 AM
Trana Trana is offline
 
Join Date: Apr 2005
Posts: 604
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I figured it out. Something is different about my PHP build (strict mode? not sure), but the files needed the full <?PHP in the beginning. Once I changed them everything is working fine.

When someone updates this hack please make this change permanent in the code.

Thanks for your help.
Reply With Quote
  #1271  
Old 12-01-2006, 04:27 AM
Billspaintball's Avatar
Billspaintball Billspaintball is offline
 
Join Date: Sep 2003
Location: Bathurst, Au
Posts: 649
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Cloudrunner View Post
I am releasing this authorization in the hopes that someone will be able to carry on the work that was begun.
Ohhhh thanks..
This will probably allow me to cut a few corners on mine
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 07:20 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05829 seconds
  • Memory Usage 2,346KB
  • Queries Executed 26 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)bbcode_code
  • (5)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (4)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • 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
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete