The Arcive of vBulletin Modifications Site. |
|
Details »»
|
|||||||||||||||||||||||||
This hack allows the user to specify an image from anywhere on the internet to appear under their user name. It was initially requested here.
This is my first public hack that serves a purpose, so be gentle. It's a little rough around the edges, possibly my good friends Mike or freddie could take a look and see if I forgot anything. Here is an example: http://www.bronx-bombers.com/vb114/s...php?threadid=2 Here is the code: First, run the following SQL query to create a new field in the user table: ALTER TABLE user ADD imgurl VARCHAR (100) not null Next, open showthread.php: Find: Code:
$temps=$DB_site->query("SELECT title,template
FROM template
WHERE title='error_invalidid' OR title='error_nopermission' OR
title='$foruminfo[rulestemplate]'
OR title='forumrules' OR title='error_forumclosed' OR
title='showthread_numpages'
OR title='postbit_useremail' OR title='icq' OR title='aim' OR
title='yahoo'
OR title='postbit_homepage' OR title='postbit_profile' OR
title='$usetemplatebit'
OR title='firstunread' OR title='showthread_nextnewestthread'
OR title='showthread_nextoldestthread' OR
title='$foruminfo[headertemplate]'
OR title='$foruminfo[footertemplate]' OR title='$usetemplate'");
while ($temp=$DB_site->fetch_array($temps)) {
$templatecache["$temp[title]"]=$temp[template];
}
Code:
$temps=$DB_site->query("SELECT title,template
FROM template
WHERE title='error_invalidid' OR title='error_nopermission' OR
title='$foruminfo[rulestemplate]'
OR title='forumrules' OR title='error_forumclosed' OR
title='showthread_numpages'
OR title='postbit_useremail' OR title='icq' OR title='aim' OR
title='yahoo' OR title='custom_img'
OR title='postbit_homepage' OR title='postbit_profile' OR
title='$usetemplatebit'
OR title='firstunread' OR title='showthread_nextnewestthread'
OR title='showthread_nextoldestthread' OR
title='$foruminfo[headertemplate]'
OR title='$foruminfo[footertemplate]' OR title='$usetemplate'");
while ($temp=$DB_site->fetch_array($temps)) {
$templatecache["$temp[title]"]=$temp[template];
}
Find: Code:
$posts=$DB_site->query("SELECT post.dateline as dateline,post.postid as postid,post.pagetext as
pagetext,
post.allowsmilie as allowsmilie,post.signature AS
showsignature,post.title as title,
post.ipaddress as ipaddress,post.iconid as iconid,post.username as
fakename,
post.userid as userid,
user.userid as userid,user.email as email,user.username as username,
user.usertitle as usertitle,user.signature as
signature,user.showemail as showemail,
user.homepage as homepage,user.icq as icq,user.aim as aim,user.yahoo
as yahoo,
user.joindate as joindate,user.posts as posts
FROM post
LEFT JOIN user ON (user.userid = post.userid)
WHERE post.threadid=$threadid AND visible=1
ORDER BY dateline $postorder
LIMIT $limitlower,$perpage");
Code:
$posts=$DB_site->query("SELECT post.dateline as dateline,post.postid as postid,post.pagetext
as pagetext,
post.allowsmilie as allowsmilie,post.signature AS
showsignature,post.title as title,
post.ipaddress as ipaddress,post.iconid as iconid,post.username as
fakename,
post.userid as userid,
user.userid as userid,user.email as email,user.username as username,
user.usertitle as usertitle,user.signature as
signature,user.showemail as showemail,
user.homepage as homepage,user.icq as icq,user.aim as aim,user.yahoo
as yahoo,user.imgurl as imgurl,
user.joindate as joindate,user.posts as posts
FROM post
LEFT JOIN user ON (user.userid = post.userid)
WHERE post.threadid=$threadid AND visible=1
ORDER BY dateline $postorder
LIMIT $limitlower,$perpage");
Find: Code:
if ($userinfo[icq]!="") {
$icqnumber=$userinfo[icq];
eval("\$icq = \"".gettemplate("icq")."\";");
} else {
$icqnumber="";
$icq="";
}
Code:
if ($userinfo[imgurl]!="") {
$custom_img=$userinfo[imgurl];
eval("\$imgurl = \"".gettemplate("custom_img")."\";");
} else {
$custom_img="";
$imgurl="";
}
Save and close showthread.php. Open member.php In the "Modify Profile" function, find: Code:
$timezoneoffset=$userinfo[timezoneoffset]; Code:
$imgurl=htmlspecialchars($userinfo[imgurl]); In the "Update Profile" Section, Find: Code:
$DB_site->query("UPDATE user
SET password='".addslashes($password)."',email='".addslashes($email)."',
parentemail='".addslashes($parentemail)."',coppauser=$coppauser,homepage='".addslashes($homepage)."
',
icq='".addslashes($icq)."',aim='".addslashes($aim)."',yahoo='".addslashes($yahoo)."',
biography='".addslashes($biography)."',signature='".addslashes($signature)."',adminemail=$adminemai
l,
showemail=$showemail,invisible=$invisible,cookieuser=$cookieuser,daysprune=$prunedays,
timezoneoffset=$timezoneoffset,emailnotification=$emailnotification
WHERE userid=$userid");
Code:
$DB_site->query("UPDATE user
SET password='".addslashes($password)."',email='".addslashes($email)."',
parentemail='".addslashes($parentemail)."',coppauser=$coppauser,homepage='".addslashes($homepage)."
',
icq='".addslashes($icq)."',aim='".addslashes($aim)."',yahoo='".addslashes($yahoo)."',
biography='".addslashes($biography)."',signature='".addslashes($signature)."',adminemail=$adminemai
l,imgurl='".addslashes($imgurl)."',
showemail=$showemail,invisible=$invisible,cookieuser=$cookieuser,daysprune=$prunedays,
timezoneoffset=$timezoneoffset,emailnotification=$emailnotification
WHERE userid=$userid");
Open the "modifyprofile" template, and put the following code in there somewhere: Code:
<tr bgcolor="#DEDEDE"> <td><B><FONT face="verdana, arial, helvetica" size="2" >Custom Image URL:</font></B></td> <td><INPUT TYPE="TEXT" NAME="imgurl" VALUE="$imgurl" SIZE=30 MAXLENGTH=100></td> </tr> Open the "postbit" template, and add this wherever you want to put the image, specifying the proper height and width: Code:
<img src="$custom_img" height="xx" width="xx"> I just noticed that for users that don't specify an image, you get an red x - I'll try to fix that now. Other than that, I can't provide a lot of support, because I forgot half of what I did .-jim Show Your Support
|
|||||||||||||||||||||||||
| Comments |
|
#2
|
|||
|
|||
|
How about setting a default image for everybody then all they have to do is change it. that way you wouldn't get a red x
|
|
#3
|
|||
|
|||
|
I could do that, but I want to have it so it only appears if there is a URL specified, like the way the homepage link is setup.
-jim |
|
#4
|
|||
|
|||
|
Quote:
BTW tnx for this great hack JimF!!!! :thumbup: |
|
#5
|
|||
|
|||
|
Quote:
Also, instead of the image I got a broken image URL linked to my board url (like "http://www.mydomain.com/forums/"). |
|
#6
|
|||
|
|||
|
Also
I noticed that the URL image cannot be saved on the profile: everytime I go back to my profile, the "Custom Image URL" field is empty. Maybe does it depend on the missing MySQL table field? |
|
#7
|
|||
|
|||
|
Is this on your site, or on my demo site?
You need to create the row in MySQL or it won't work. -jim |
|
#8
|
|||
|
|||
|
Quote:
|
|
#9
|
|||
|
|||
|
OK, le't say I made clear that the DB is still working properly. I've only a strange phpMyAdmin problem which is not reporting all tables...
![]() Anyway, I can remember that when I inserted your MySQL command I got a confirm message that everything went fine. ![]() Now, the only thing is the fact that instead of the image I get that broken img linked to my board index... |
|
#10
|
|||
|
|||
|
There is always my Avatar hack which sets a default of no image, instructions for using it w 1.1.4 are at the end of the thread
http://www.vbulletin.com/forum/showt...?threadid=2127 |
![]() |
|
|
| X vBulletin 3.8.12 by vBS Debug Information | |
|---|---|
|
|
More Information |
|
|
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|