vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   PHP Help with widgets (https://vborg.vbsupport.ru/showthread.php?t=236957)

Amit86 02-26-2010 06:00 PM

PHP Help with widgets
 
Hey all,
im trying to code something that will echo text and vars into a widgts, while using echo it works but it outputs at the begining of the page instead of inside th wigit it self,
could you try and assit me in altering the code so it would work?

PHP Code:

$Hostname "SERVER";
$Username "USER";
$Password "PASS";
$CharacterDatabase 'characters';
$RealmDatabase 'realmd';
$WorldDatabase 'world';
$CharacterDatabaseEncoding 'utf8'
$toutput=''
$conn mysql_connect($Hostname$Username$Password);

mysql_select_db($CharacterDatabase$conn);

$sql "SELECT * FROM `characters` WHERE `online` = 1 ORDER BY `name`";
$result mysql_query($sql$conn);

$count 0;



$realm_db mysql_connect($Hostname$Username$Password);
mysql_select_db($RealmDatabase$realm_db);
$db_result mysql_query("SET NAMES $CharacterDatabaseEncoding"$realm_db);

$world_db mysql_connect($Hostname$Username$PasswordTRUE);
mysql_select_db($CharacterDatabase$world_db);
$db_result mysql_query("SET NAMES $CharacterDatabaseEncoding"$world_db);
 
$uptime_query mysql_query("SELECT * FROM $RealmDatabase.`uptime` ORDER BY `starttime` DESC LIMIT 1"$realm_db); 
$uptime_results mysql_fetch_array($uptime_query); 
$maxplayers =  $uptime_results['maxplayers'];
if (
$uptime_results['uptime'] > 86400) { //days
    
$uptime =  round(($uptime_results['uptime'] / 24 60 60),2)." ימים";
}
elseif(
$uptime_results['uptime'] > 3600) { //hours
    
$uptime =  round(($uptime_results['uptime'] / 60 60),2)." שעות";
}
else { 
//minutes
    
$uptime =  round(($uptime_results['uptime'] / 60),2)." דקות";
}

$player_query mysql_query("SELECT (SELECT COUNT(guid) FROM $CharacterDatabase.`characters` WHERE race IN(2,5,6,8,10) AND `online`='1') as horde, (SELECT COUNT(guid) FROM $CharacterDatabase.`characters` WHERE race IN(1,3,4,7,11) AND `online`='1') as alliance FROM $CharacterDatabase.`characters`"$world_db); 
$player_results mysql_fetch_array($player_query); 
$horde =  $player_results['horde'];
$alliance =  $player_results['alliance'];
$total $horde $alliance;

echo 
"<table width=\"100%\" border=0 cellspacing=0 cellpadding=3 class=\"alt2\">
  <tr>
    <td class=\"alt2\">פעילות:</td>
    <td class=\"alt2\">
$uptime</td>
  <tr>
    <td class=\"alt2\">מחוברים:</td>
    <td class=\"alt2\">
$total</td>
  </tr>
  </tr>
  <tr>
    <td class=\"alt2\">אלליאנס:</td>
    <td class=\"alt2\">
$alliance</td>
  </tr>
  <tr>
    <td class=\"alt2\">הורד:</td>
    <td class=\"alt2\">
$horde</td>
  </tr>
</table>"



Lynne 02-26-2010 06:17 PM

You cannot use echo in the widget. You need to assign all your output to the variable $output.

Amit86 02-26-2010 11:43 PM

so how do i assign those to a var and still keep the things i want to disaply inside dynamic?

Lynne 02-27-2010 03:18 AM

Not sure what you mean - like this?

PHP Code:

$output .= "<td class=\"alt2\">".$uptime."</td>"


Vaupell 02-27-2010 09:38 AM

well i would if i was you 2 ways i see this done

1)
create all the var's in the widget as php then register them into a array
and instead of using the default template, i would create my own then
use that to display the var's.

2)
create all the output as lynne said, and you add each line one at a time
then in the end you assign it all to output then it displays in the default template
but it takes ALOT of repetetive codeing.

Personally i do both, but i made the WoW recruitment widget i used option 2,
i created it all in php in the widget then at the end i turned it over to $output
then it will get rendered on default template, but it requires all formatting to be
done in php before $output.

-----

Maybe you should download some widgets first and see how they are buildt..
There are several doing what your trying to achive there, just using other data
than wow online players..

Amit86 02-27-2010 10:05 AM

Thanks!
i was able to use $output and it worked perfect!


All times are GMT. The time now is 04:43 PM.

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.01048 seconds
  • Memory Usage 1,747KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (6)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete