Pensamientos al azar acerca de vBSEO y www.bmwfaq.com
Forum Stats Signature Generator
Posted 11-15-2007 at 06:30 AM by Danny Bembibre
I make a stupid script to generate forum stats in a image template with GD. This is based in a old plugin that come from the earling times of vBulletin2 
What make this
Based in a template image

The script that is executed a scheduled task from the vB adminCP modify the template and put in it your forum stats.

You can modify this script for you own pourposes
Install Instructions
Note: I test this in windows enviroment, i think in linux you need change the variable $Top=22 by $Top=10
The Code
What make this
Based in a template image

The script that is executed a scheduled task from the vB adminCP modify the template and put in it your forum stats.

You can modify this script for you own pourposes
Install Instructions
- Upload the script signature.php to forum-root/includes/cron
- Create a directory called signature in forum-root/images and make wright right (chmod 777 or chown apache:apache) and upload the image sig.jpg (modify as you want to have your own base image)
- Go to vB AdminCP->Scheduled Tasks->Add new Task
- Task Name: Signature Generator
- Includes: ./includes/cron/signature.php
- Time choose what you want, mine is setter to be executed every 3 hours
Note: I test this in windows enviroment, i think in linux you need change the variable $Top=22 by $Top=10
The Code
PHP Code:
[left]<?php
/* Author: Danny Bembibre
* A PHP script to generate dynamic signature with your forum stats
* Put the file as a Task in the vBulletin Cron
* Based in old vbulletin hack
* http://www.vbulletin.org/forum/showthread.php?t=50848
*/
error_reporting(E_ALL & ~E_NOTICE);
if (!is_object($vbulletin->db)){
exit;
}
//*************************
//Configure Image Variables
$TotalHeight=60;
$TotalWidth=260;
$LineSpacing=15;
$Top=22;
$Left=153;
//*************************
$TotalPosts = $vbulletin->db->query_first("SELECT COUNT(postid) AS posts FROM " . TABLE_PREFIX . "post");
$TotalPosts = number_format($TotalPosts['posts']);
$TotalThreads = $vbulletin->db->query_first("SELECT COUNT(threadid) AS threads FROM " . TABLE_PREFIX . "thread");
$TotalThreads = number_format($TotalThreads['threads']);
$TotalUsuarios = $vbulletin->db->query_first("SELECT COUNT(userid) AS usuarios FROM " . TABLE_PREFIX . "user");
$TotalUsuarios = number_format($TotalUsuarios['usuarios']);
$ImgBase = ImageCreateTrueColor($TotalWidth,$TotalHeight);
$Text = "Members:" . $TotalUsuarios . "\nThreads:" . $TotalThreads . "\nPosts:" . $TotalPosts . "\n";
$BGcolor = ImageColorAllocate ($ImgBase, 255, 255, 255);
$TextColor = ImageColorAllocate ($ImgBase, 0, 0, 0);
ImageFilledRectangle ($ImgBase, 0, 0, $TotalWidth, $TotalHeight, $BGcolor);
ImageCopy ($ImgBase, @ImageCreateFromJPEG(DIR . "/Images/signature/sig.jpg"), 0, 0, 0, 0, $TotalWidth, $TotalHeight);
ImageColorTransparent($ImgBase, $BGcolor);
$SplitedText = split("\n", $Text);
$Idx = 0;
while($Idx < Count($SplitedText)){
ImageString($ImgBase, 2, $Left, (($Idx * $LineSpacing) - $LineSpacing + $Top), $SplitedText[$Idx], $TextColor);
$Idx++; }
@ImageJPEG($ImgBase, DIR . "/Images/signature/siggenerated.jpg", 95); //Escribir la imagen al disco
@ImageDestroy($ImgBase); //Limpiar la memoria
//log_cron_action('Signature Stats Generator', $nextitem);[/left]
?> Total Comments 8
Comments
| | Isn't a count(*) faster? It should return the same results no? Either way, thanks for the code |
| Posted 11-15-2007 at 07:16 AM by BamaStangGuy |
| | |
| Posted 11-15-2007 at 07:21 AM by Danny Bembibre |
| | Actually, I think count(*) is slower since it hits all fields instead of just one. I always use the identity column when counting also. |
| Posted 11-15-2007 at 09:06 AM by Keith Cohen |
| | This is what I was referring to: http://www.mysqlperformanceblog.com/...t-vs-countcol/ |
| Posted 11-15-2007 at 07:10 PM by BamaStangGuy |
| | Yes, i understand now, i totally shocked, im 12 years in the programming world and im involved during some years in RDBMS develop. My conclusion is that MyISAM dont work like any RDBMS, in any db always make a count by id or index column is much faster that make by count(*) independent if you has or not a where clausule in the expains you can see how InnoDB work faster make the count by column and how is much slower make count(*). http://www.mysqlperformanceblog.com/...innodb-tables/ |
| Posted 11-16-2007 at 05:24 AM by Danny Bembibre |
| | Thanks for sharing, Danny! |
| Posted 11-16-2007 at 07:28 AM by Philipp Herbers |
| | select count(id) works too. no need for * |
| Posted 11-16-2007 at 01:41 PM by briansol |
| | Possible bug found: PHP Code: |
| Posted 05-22-2008 at 10:07 AM by Tammy |
Total Trackbacks 0
Trackbacks
Recent Blog Entries by Danny Bembibre
- [How To] Funciona el mod_rewrite ? (03-27-2008)
- Setup Sphinx search in vBulletin (11-16-2007)
- Forum Stats Signature Generator (11-15-2007)
- Source Compile PHP 5.2.4 for Plesk 8 (11-13-2007)
- Photos of my new house (11-07-2007)
