Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 2.x > vBulletin 2.x Full Releases
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Details »»

Version: , by (Guest)
Developer Last Online: Jan 1970 Show Printable Version Email this Page

Version: Unknown Rating:
Released: 06-18-2001 Last Update: Never Installs: 0
 
No support by the author.

Me again - another simple integration hack for those moving from something like UBB. In my old hacked up UBB, I had my own avatar hack (not one of the common ones floating around). At any rate, all the avatars were stored in a single directory, and they all were named "username.gif", where "username" was the account name (bob.gif, dumbass.gif, etc.). If you have avatars for folks who have spaces in their username, and you've replaced them with underscores (john_doe.gif), this script will handle that, too.

Backup your customavatar table first. If you hose it with this script, don't cry to me....you've been warned.

This is a perl script - to be run from the directory containing your avatars:

Code:
!/usr/bin/perl

# Must be run *from* the avatar directory

# Configuration section
$avatardir = ".";

use DBI;

$datasource="DBI:mysql:vbulletin";

$dbh = DBI->connect( $datasource, 'id', 'password');

if ( !defined $dbh ) {
  die "Cannot connect to mySQL server: $DBI::errstr\n";
}

my @filearray = glob("$tinydir/*.gif");

foreach $filename (@filearray)
{
  $filename =~ s/\.\///g;
  $username = $filename;
  $username =~ s/_/ /g;
  $username =~ s/\.gif//g;

  # Okay, grab the user ID from the database that matches this user
  $quoted_username = $dbh->quote($username);
  $sth = $dbh->prepare("SELECT userid FROM user WHERE username = $quoted_username");
  $sth->execute;

  @result = $sth->fetchrow_array;

  $user_id = $result[0];

  if($user_id == "") {
    print "Invalid account name: [$user_id] $quoted_username (skipping)\n";
    $sth->finish;
    next;
  }

  print "Processing --> [$user_id] $username ($filename)\n";

  $sth->finish;

  # Prepare file for binary insertion
  open(IMG, "<$filename");
  read(IMG, $filestuff, 100000);
  close(IMG);

  $quoted_bindata = $dbh->quote($filestuff);
  $quoted_filename = $dbh->quote($filename);

  # Grab current time
  $currtime = time();

  # Insert the user's original avatar into the customavatar table
  $q = "INSERT into customavatar (userid,avatardata,dateline,filename) VALUES ($user_id, $quoted_bindata, $currtime, $quoted_filenam
e)";
  $sth = $dbh->prepare($q);

  $sth->execute || print "ERROR INSERTING ROW!\n";

  $sth->finish;
}

exit;
Paste this into a script, chmod 755, and run it from the directory containing your avatars.

You may need to play with a bit to work with your directory of avatars - every hacked-up UBB (or whatever) is different. But it should be a good start at least ...

Voila.

Cheers.

Show Your Support

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

Comments
  #2  
Old 06-19-2001, 08:48 PM
CoolaShacka CoolaShacka is offline
 
Join Date: Dec 2001
Posts: 29
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Nice easy hack..

I will try it..
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 11:29 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.04063 seconds
  • Memory Usage 2,203KB
  • Queries Executed 17 (?)
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
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (2)post_thanks_box
  • (2)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (2)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (2)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_postinfo_query
  • fetch_postinfo
  • 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
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • postbit_imicons
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete