• Welcome to Simple Machines Community Forum. Please login or sign up.
January 20, 2022, 03:42:30 PM

News:

SMF 2.0.19 has been released! Please update. Read more.


nneonneo's Shoutbox

Started by nneonneo, December 26, 2006, 06:58:11 PM

Previous topic - Next topic

ameo

Quote from: zach21uk on January 14, 2009, 06:34:59 AM
Also - Can someone tell me where I can control the overall WIDTH of the shoutbox

Go in index.template.php  - find:

#yshout {
         font-size: 10px;
         overflow: hidden;
         width:420px;            <- add this with width that you want

antechinus:
QuoteIf you are dying for a solution it may be wise to seek medical attention.
Get some Awesome Smileys for your forum

|±(ಠ_ಠ
)±|

nneonneo

@zach21uk: Oops...

The problem with $maxLines is that it affects the chats/home.txt file directly, i.e. that's exactly the number of lines shown in the file, and exactly the number of lines processed by the shoutbox.

In this case, I'm actually not sure how you'd make this work. I know that if the shoutboxes used different $shoutFiles, then this wouldn't be an issue, but since they use the same one they will affect each other when shouts are made via either box.

However, I think I have a fix.

1) In yshout.php, find
function truncateChat($maxLines,$chatPath,$historyPath) {
and add after it
$maxLines = 40;
where 40 is bigger than either $maxLines.

2) Find
function readChat($chatPath=false, $force=false) {
global $user,$reverseShouts;

and replace it by
function readChat($chatPath=false, $force=false) {
global $user,$reverseShouts,$maxLines;


3) Find
if(file_exists($chatPath))
$chatText = file_get_contents($chatPath);

and replace by
if(file_exists($chatPath)) {
require_once("class.tail.php");
$mytail = new tail($chatPath);
$mytail->setGrep(".*");
$mytail->setNumberOfLines($maxLines);
$chatText =$mytail->output(PLAIN);
}


This should allow both shoutboxes to use a different $maxLines without trouble.
Check out the AJAX Shoutbox (my one and only mod to date :P)
Do you like SMF? Are you using ProBoards, InvisionFree, ActiveBoards or some other web-hosted forum? I can help you convert to SMF (without having to purchase a DB conversion)...contact me [nneonneo {at} gmail *dot* com], and see this topic
spammers here!

zach21uk

That nailed it!! Thanks so much for getting that working.  I know its been a pain to get working, but thank you so much nnenneo - and thanks from all the people at www.hailingfrequency.co.uk/boards too, who have been bugging me for this feature for ages.

mewaitin4u

I can't find any permission neither the shoutbox appeared in admin mode

faizulhaque



pl see this image i instal Advace nneonneo's Shoutbox box for board 1.1.7 on Helios Multi Theme:

previous one not working on that and this one not accept the FTP root ID and Pass.

_Anthony_

Quote from: nneonneo on January 12, 2009, 10:25:29 AM
OK. Let me try this...

These are instructions for making an online-users list. They are most definitely alpha instructions, so they might not work 100%.

In yshout/js/yshout.js, change
function unloadChat() {
to
function setStatus(status) {
   new ajax (yshout_php, {
         postBody: 'reqtype=status&status=' + status + '&file=' + shoutFile
      });
}
function unloadChat() {
setStatus("off");


In yshout.php, change
// Load settings
require_once($yshoutdir."settings.php");
global $ban_ips_readpost,$ban_ips_post,$ban_names_readpost,$ban_names_post,$sbMaintenance;

to
if(!file_exists($yshoutdir.'_status.php'))
{
// If _status.php has been deleted, assume it should be reset to defaults
$online_list=array();
$sbMaintenance=false;
writeBanList();
}
// Load settings
require_once($yshoutdir."settings.php");
global $ban_ips_readpost,$ban_ips_post,$ban_names_readpost,$ban_names_post,$sbMaintenance;
require_once($yshoutdir.'_banlist.php');
global $online_list;
require_once($yshoutdir.'_status.php');


Change
case "autoshout":
if(isMod())
processCommand($_POST["shout"]);
break;
}

to
case "autoshout":
if(isMod())
processCommand($_POST["shout"]);
break;
case "status":
setStatus($_POST['status']=='on');
break;
}

function getStatus() {
global $online_list;
$list=$online_list;
if(isset($list[0]) && $list[0] >= 1) {
$list[0] = $list[0] . ' guest' . (($list[0]!=1) ? 's': '');
} else {
unset($list[0]);
}
return '<br /><div id="status">Users currently viewing the shoutbox: '.implode(', ', $list).'</div>';
}

function writeStatus() {
global $online_list, $yshoutdir;
$writeText = "<"."?php\n"; // php header
$writeText .= '$online_list = '.var_export($online_list,true).";\n";
$writeText .= '?'.'>'; // end tag
$handle = fopen($yshoutdir."_status.php", "w");
if($handle===false) die('File error (writeStatus); aborted');
$failcount=0;
while( !flock($handle, LOCK_EX) ) // just IN CASE two bans happen simultaneously
{
usleep(50000);
$failcount++;
if($failcount > 20) die('Write error (writeStatus); aborted'); // one second
}
fwrite($handle, $writeText);
flock($handle, LOCK_UN);
fclose($handle);
}

function setStatus($online) {
global $user, $online_list;
if($user['id']==0) {
if($online)
$online_list[0]++;
elseif($online_list[0] >= 1)
$online_list[0]--;
} else {
if($online && loadMemberData(Array($user['id']),false,'profile')!==false) {
global $user_profile;
$profile=$user_profile[$user['id']];
$a_style = ' class="userclass" style="color: '.(empty($profile['member_group_color']) ? $profile['post_group_color'] : $profile['member_group_color']).'"';
$online_list[$user['id']]="<a$a_style href=\"index.php?action=profile;u=".$user['id'].'">'.$user['name'].'</a>';
} elseif(!$online) {
unset($online_list[$user['id']]);
}
}
writeStatus();
global $chatPath;
touch($chatPath);
}

Change
return $chatText.' '; // hack: totally empty responses can break some browsers
to
return $chatText.getStatus().' '; // hack: totally empty responses can break some browsers
You forgot setStatus('on')

[unplugged]

Quote from: nneonneo on January 12, 2009, 10:25:29 AM
These are instructions for making an online-users list. They are most definitely alpha instructions, so they might not work 100%.

;)
« Next Edit: Tomorrow at 08:34:45 PM by SunKing »   <---- « someone stole my sig... :o »



Don Pepito

Where can i modify the template of shoutbox...??
Tnx...

lorddusk

January 20, 2009, 12:43:47 PM #4928 Last Edit: January 20, 2009, 01:10:12 PM by lorddusk
Is it possible to move the    Today at 18:42:03 in Adv1.22 (smf 2.04) just like the normal one? (smf 1.1.7)

and if yes, tell me how please

so, next to the adminlinks

edit : is there also a way to increase the size of the font in the shout?

blakey

Quote from: SunKing on January 03, 2009, 03:39:39 PM
@Appendix
What version of SMF and what version of Shoutbox are you using?

@blakey
Are you using a custom theme?
Also, what version of SMF and what version of Shoutbox are you using?

@juniorj23
So your problem is solved?

@allart and @Nequil
I'm afraid that will have to be answered by nneonneo. ;)

@zach21uk
The time format is located at the very bottom of the settings.php in your yshout folder.

Im using Dilber MC and Version 1.1.7.

I install the code and see no changes, nothing added in admin, nor the shout box?

ameo

Quote from: Don Pepito on January 20, 2009, 10:27:20 AM
Where can i modify the template of shoutbox...??
Tnx...

In Admin - Current Theme - Modify the index template [main template]

Quote from: lorddusk on January 20, 2009, 12:43:47 PM
edit : is there also a way to increase the size of the font in the shout?

In first code you entered when you installed shoutbox was some .css included
find:         font-size: 10px;    and change 2 your will


@ blakey

You didn't put code in index.template.php / did you? See code in first post and directions what to do.
Or maybe you forgot 2 Apply mod?


antechinus:
QuoteIf you are dying for a solution it may be wise to seek medical attention.
Get some Awesome Smileys for your forum

|±(ಠ_ಠ
)±|

Don Pepito

What i ment is that i want to change the template of displaying shouts....
Something like this...

Poster:Message   [time]

wrbex

Quote from: kabu on December 18, 2008, 04:12:02 PM
Hi I used the search in this topic but I couldn't find the answer.
My problem is I have auto embeded video clips mod installed and whenever someone types a link of say a youtube video the video is embeded onto the shoutbox. When you click the play button the video plays for a while and then stop playing. I'm guessing because the shoutbox is auto refreshed?
Is there anyway to stop the auto embed without removing the auto embed mod?

I have same problem..i have instaled AEVA mod...
Any "fix" for this?

[unplugged]

@wrbex
You can add tags such as [img] to the settings.php in the yhsout folder. This will make shoutbox ignore the included tag.
« Next Edit: Tomorrow at 08:34:45 PM by SunKing »   <---- « someone stole my sig... :o »



I AM Legend

Hey All,
I have 3 questions regarding this shoutbox.

1/ what code edits do I need to do to place it under the news?

2/ What code edits do I need to do to add the smiley bar ? and when the smiley bar is added will it automatically pick up my default forum smiley's?

3/ What edits do I need to do to add a scroll bar to the shoutbox?

Thanks all



nneonneo

@I AM Legend: You should probably read the main mod page; everything you've asked for (and more!) has a link on there.

Check out the AJAX Shoutbox (my one and only mod to date :P)
Do you like SMF? Are you using ProBoards, InvisionFree, ActiveBoards or some other web-hosted forum? I can help you convert to SMF (without having to purchase a DB conversion)...contact me [nneonneo {at} gmail *dot* com], and see this topic
spammers here!

changaroo

ok i did a search, cant really find why this is happening.
i can see the shoutbox, but my users cant once they log in. any reason for this?

also, how can i position the shoutbox to the right like this one? http://bobthepleo.com/forums/ [nofollow]

thanks! great chat box btw.

kuzjnvn

i use SMF 1.1.7 with themes Hobbit . anybody can help me add this chatbox to my site ?? :( ..

my error :

Fatal error: require_once() [function.require]: Failed opening required '/Subs-Post.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/teenp0/public_html/diendan/yshout/yshout.php on line 195

_Anthony_

Quote from: changaroo on January 21, 2009, 01:31:46 AM
ok i did a search, cant really find why this is happening.
i can see the shoutbox, but my users cant once they log in. any reason for this?

also, how can i position the shoutbox to the right like this one? http://bobthepleo.com/forums/

thanks! great chat box btw.
For your first question you have to set the permissions then the second, give me your index.template.php and i'll figure it out.

Quote from: kuzjnvn on January 21, 2009, 01:37:37 AM
i use SMF 1.1.7 with themes Hobbit . anybody can help me add this chatbox to my site ?? :( ..

my error :

Fatal error: require_once() [function.require]: Failed opening required '/Subs-Post.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/teenp0/public_html/diendan/yshout/yshout.php on line 195
It seems as if your missing Sources/Subs-Post.php

changaroo

Thanks, here is my index.template.php attached.
I will look into the permissions right now.

Thanks for your help!

<?php
// Version: 1.1 RC2; index

/* This template is, perhaps, the most important template in the theme. It
contains the main template layer that displays the header and footer of
the forum, namely with main_above and main_below. It also contains the
menu sub template, which appropriately displays the menu; the init sub
template, which is there to set the theme up; (init can be missing.) and
the linktree sub template, which sorts out the link tree.

The init sub template should load any data and set any hardcoded options.

The main_above sub template is what is shown above the main content, and
should contain anything that should be shown up there.

The main_below sub template, conversely, is shown after the main content.
It should probably contain the copyright statement and some other things.

The linktree sub template should display the link tree, using the data
in the $context['linktree'] variable.

The menu sub template should display all the relevant buttons the user
wants and or needs.

For more information on the templating system, please see the site at:
http://www.simplemachines.org/
*/

// Initialize the template... mainly little settings.
function template_init()
{
global $context$settings$options$txt;

/* Use images from default theme when using templates from the default theme?
if this is 'always', images from the default theme will be used.
if this is 'defaults', images from the default theme will only be used with default templates.
if this is 'never' or isn't set at all, images from the default theme will not be used. */
$settings['use_default_images'] = 'never';

/* What document type definition is being used? (for font size and other issues.)
'xhtml' for an XHTML 1.0 document type definition.
'html' for an HTML 4.01 document type definition. */
$settings['doctype'] = 'xhtml';

/* The version this template/theme is for.
This should probably be the version of SMF it was created for. */
$settings['theme_version'] = '1.1 RC2';

/* Set a setting that tells the theme that it can render the tabs. */
$settings['use_tabs'] = false;

/* Use plain buttons - as oppossed to text buttons? */
$settings['use_buttons'] = false;
$settings['use_image_buttons'] = true;
/* Show sticky and lock status seperate from topic icons? */
$settings['seperate_sticky_lock'] = true;

//load font style
if (isset($_SESSION['font-style'])) {
$options['fontstyle'] = $_SESSION['font-style'];
} elseif (isset($_COOKIE['font-style'])) {
$options['fontstyle'] = $_COOKIE['font-style'];
}

//load width style
if (isset($_SESSION['width-style'])) {
$options['widthstyle'] = $_SESSION['width-style'];
} elseif (isset($_COOKIE['width-style'])) {
$options['widthstyle'] = $_COOKIE['width-style'];
}

if (isset($_GET['widthstyle'])) {
$options['widthstyle'] = $_GET['widthstyle'];
$_SESSION['width-style'] = $options['widthstyle'];
setcookie ('width-style'$options['widthstyle'], time()+31536000'/'false);
}
if (isset($_GET['fontstyle'])) {
$options['fontstyle'] = $_GET['fontstyle'];
$_SESSION['font-style'] = $options['fontstyle'];
setcookie ('font-style'$options['fontstyle'], time()+31536000'/'false);
}


}

// The main sub template above the content.
function template_main_above()
{
global $context$settings$options$scripturl$txt$modSettings;


// test for joomla integration
global $wrapped$jsmfConfig$header_style $toolbar_style $footer_style;

if(isset($wrapped) && $wrapped==true)
$context['joomla_wrapped']=true;
elseif(isset($wrapped) && $wrapped==false)
$context['joomla_wrapped']=false;
elseif(isset($jsmfConfig) && $jsmfConfig->wrapped)
$context['joomla_wrapped']=true;
elseif(isset($jsmfConfig) && !$jsmfConfig->wrapped)
$context['joomla_wrapped']=false;
else
$context['joomla_wrapped']=false;

// Show right to left and the character set for ease of translating.
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"'
$context['right_to_left'] ? ' dir="rtl"' '''><head>
<meta http-equiv="Content-Type" content="text/html; charset='
$context['character_set'], '" />
<meta name="description" content="'
$context['page_title'], '" />
<meta name="keywords" content="PHP, MySQL, bulletin, board, free, open, source, smf, simple, machines, forum" />
<script language="JavaScript" type="text/javascript" src="'
$settings['default_theme_url'], '/script.js?rc2p"></script>
<script language="JavaScript" type="text/javascript">
var smf_theme_url = "'
$settings['theme_url'], '";
var smf_images_url = "'
$settings['images_url'], '";
var smf_scripturl = "'
$scripturl'";
</script>
<title>'
$context['page_title'], '</title>';

// The ?rc2 part of this link is just here to make sure browsers don't cache it wrongly.

if(!empty($options['fontstyle']))
$fontstyle=$options['fontstyle'];
else
$fontstyle='f-default';

if(!empty($options['widthstyle']))
$widthstyle=$options['widthstyle'];
else
$widthstyle='w-wide';


// the color choices
if(!empty($settings['header_style']))
$header_style=$settings['header_style'];
else
$header_style='dark';

if(!empty($settings['toolbar_style']))
$toolbar_style=$settings['toolbar_style'];
else
$toolbar_style='blue';

if(!empty($settings['footer_style']))
$footer_style=$settings['footer_style'];
else
$footer_style='dark';

 echo '
<link rel="stylesheet" type="text/css" href="'
$settings['theme_url'], '/css/template_css.css?rc2" />';

 if($context['browser']['is_ie'])
 echo '
<link rel="stylesheet" type="text/css" href="'
$settings['theme_url'], '/css/template_ie.css?rc2" />';

echo '
<link rel="stylesheet" type="text/css" href="'
$settings['theme_url'], '/css/header_'.$header_style.'.css?rc2" />
<link rel="stylesheet" type="text/css" href="'
$settings['theme_url'], '/css/toolbar_'.$toolbar_style.'.css?rc2" />
<link rel="stylesheet" type="text/css" href="'
$settings['theme_url'], '/css/footer_'.$footer_style.'.css?rc2" />
'
;

 echo 
'
<link rel="stylesheet" type="text/css" href="'
$settings['theme_url'], '/style.css?rc2" />
<link rel="stylesheet" type="text/css" href="'
$settings['default_theme_url'], '/print.css?rc2" media="print" />';


/* Internet Explorer 4/5 and Opera 6 just don't do font sizes properly. (they are big...)
Thus, in Internet Explorer 4, 5, and Opera 6 this will show fonts one size smaller than usual.
Note that this is affected by whether IE 6 is in standards compliance mode.. if not, it will also be big.
Standards compliance mode happens when you use xhtml... */
if ($context['browser']['needs_size_fix'])
echo '
<link rel="stylesheet" type="text/css" href="'
$settings['default_theme_url'], '/fonts-compat.css" />';

// Show all the relative links, such as help, search, contents, and the like.
echo '
<link rel="help" href="'
$scripturl'?action=help" target="_blank" />
<link rel="search" href="' 
$scripturl '?action=search" />
<link rel="contents" href="'
$scripturl'" />';

// If RSS feeds are enabled, advertise the presence of one.
if (!empty($modSettings['xmlnews_enable']))
echo '
<link rel="alternate" type="application/rss+xml" title="'
$context['forum_name'], ' - RSS" href="'$scripturl'?type=rss;action=.xml" />';

// If we're viewing a topic, these should be the previous and next topics, respectively.
if (!empty($context['current_topic']))
echo '
<link rel="prev" href="'
$scripturl'?topic='$context['current_topic'], '.0;prev_next=prev" />
<link rel="next" href="'
$scripturl'?topic='$context['current_topic'], '.0;prev_next=next" />';

// If we're in a board, or a topic for that matter, the index will be the board's index.
if (!empty($context['current_board']))
echo '
<link rel="index" href="' 
$scripturl '?board=' $context['current_board'] . '.0" />';






   
// YSHOUT HERE - <head> code
   
global $boardurl,$shoutFile;
   
$shoutFile='home';
   
$scripturlparsed parse_url($scripturl);
   
$scriptpath=isset($scripturlparsed['path'])?$scripturlparsed['path']:'/';
   
$args='';
   foreach(
$_GET as $key => $value// passthrough $_GET
      
$args.='&'.urlencode($key).'='.urlencode($value);
   echo 
'
   <script src="'
,$boardurl,'/yshout/js/moo.ajax.js" type="text/javascript"></script>
   <script src="'
,$boardurl,'/yshout/settings.js" type="text/javascript"></script>
   <script type="text/javascript"><!-- // --><![CDATA[
   window.onload=function(){loadChat();};
   var shoutFile="'
,$shoutFile,'";
   var yshout_php="'
,$scriptpath,'?yshout',$args,'";
   // ]]></script>
   <script src="'
,$boardurl,'/yshout/js/yshout.js?July062008" type="text/javascript"></script>
   <style type="text/css">
      #yshout {
         font-size: 10px;
         overflow: hidden;
      }
      #yshout #yshout-toollinks { /* tool links (History, Commands, etc.) */
      }
      #yshout #shouts { /* main shouts area */
      }
      #yshout .shout { /* one shout */
         margin: 0 0 0; /* Top Bottom Linespacing */
         line-height: 1;
      }
      #yshout .shout-timestamp {
         font-style: normal;
         font-weight: normal;
      }
      #yshout .shout-adminlinks { /* del and ban buttons */
         font-size: 6pt;
         color: #141414;
      }
      #yshout #shout-form {
         margin: 0;
         padding: 0;
      }
      #yshout #shout-form fieldset {
         border: none;
      }
      #yshout #forum-name {
         width: 70px;
         margin-right: 5px;
      }
      #yshout #shout-text {
         width: 310px;
         margin-right: 5px;
      }
      #yshout #shout-button {
         width: 55px;
      }
      #yshout .shout-invalid { /* invalid shout (shout textbox) */
         background: #FFFDD1;
      }
   </style>'
;
   
// YSHOUT END - <head> code




// We'll have to use the cookie to remember the header...
if ($context['user']['is_guest'])
$options['collapse_header'] = !empty($_COOKIE['upshrink']);

// Output any remaining HTML headers. (from mods, maybe?)
echo $context['html_headers'], '

<script language="JavaScript" type="text/javascript">
var current_header = '
, empty($options['collapse_header']) ? 'false' 'true'';

function shrinkHeader(mode)
{'
;

// Guests don't have theme options!!
if ($context['user']['is_guest'])
echo '
document.cookie = "upshrink=" + (mode ? 1 : 0);'
;
else
echo '
smf_setThemeOption("collapse_header", mode ? 1 : 0, null, "'
$context['session_id'], '");';

echo '
document.getElementById("upshrink").src = smf_images_url + (mode ? "/upshrink2.gif" : "/upshrink.gif");

document.getElementById("upshrinkHeader").style.display = mode ? "none" : "";
document.getElementById("upshrinkHeader2").style.display = mode ? "none" : "";

current_header = mode;
}
</script>'
;

// the routine for the info center upshrink
echo '
<script language="JavaScript" type="text/javascript">
var current_header_ic = '
, empty($options['collapse_header_ic']) ? 'false' 'true'';

function shrinkHeaderIC(mode)
{'
;

if ($context['user']['is_guest'])
echo '
document.cookie = "upshrinkIC=" + (mode ? 1 : 0);'
;
else
echo '
smf_setThemeOption("collapse_header_ic", mode ? 1 : 0, null, "'
$context['session_id'], '");';

echo '
document.getElementById("upshrink_ic").src = smf_images_url + (mode ? "/expand.gif" : "/collapse.gif");

document.getElementById("upshrinkHeaderIC").style.display = mode ? "none" : "";

current_header_ic = mode;
}
</script>
</head>'
;

if(!$context['joomla_wrapped']){
echo '
<body id="page_bg" class="'
.$widthstyle.' '.$fontstyle.' header-'.$header_style.' toolbar-'.$toolbar_style.' footer-'.$footer_style.'">
<div id="header">
<div class="wrapper">
<div id="access">
<div id="selectors">
<span class="font-selector">&nbsp;</span>
<span class="width-selector">&nbsp;</span>
</div>
<div id="buttons">
<a href="'
,$scripturl,'?widthstyle=w-fluid" title="fluid width" class="fluid"><span class="button">&nbsp;</span></a>
<a href="'
,$scripturl,'?widthstyle=w-wide" title="wide width" class="wide"><span class="button">&nbsp;</span></a>
<a href="'
,$scripturl,'?widthstyle=w-thin" title="thin width" class="thin"><span class="button">&nbsp;</span></a>
<a href="'
,$scripturl,'?fontstyle=f-larger" title="Increase size" class="lrg"><span class="button">&nbsp;</span></a>
<a href="'
,$scripturl,'?fontstyle=f-default" title="Default size" class="med"><span class="button">&nbsp;</span></a>
<a href="'
,$scripturl,'?fontstyle=f-smaller" title="Decrease size" class="sml"><span class="button">&nbsp;</span></a>
</div>
</div>
<a href="'
.$scripturl.'" title=""><span id="logo">&nbsp;</span></a>';
// Show a random news item? (or you could pick one from news_lines...)
if (!empty($settings['enable_news'])) {
echo '<div id="top">'$context['random_news_line'] , '</div>';
}
echo '
</div>
</div>
<div id="toolbar">
<div class="wrapper">
<div id="nav">'
,template_menu(),'
</div>
</div>
</div>'
;
 echo '
  <div id="showcase">
  <div class="wrapper">
 <div class="padding">
 ' 
leftmenu(), '
 </div>
</div>
</div>
 '
;
 echo '
<div id="mainbody">
<div class="wrapper">
<div id="mainbody-2">
<div id="mainbody-3">
<div id="mainbody-4">
<div id="mainbody-5">
<div id="mainbody-padding">
<table class="mainbody" cellspacing="0">
<tr>
<td valign="top" class="mainbody" id="mainmen">'
;
}
  if (
$context['joomla_wrapped'])
echo '<div class="titlebg" style="overflow: hidden;"><div id="smf_menu">',template_menu2(),'</div></div>';

 }

function 
template_main_below()
{
global $context$settings$options$scripturl$txt;
  if (
$context['joomla_wrapped']) {
 echo'
<div style="padding: 5px; text-align: center;">
<div class="smalltext">' 
,theme_copyright(),'<br />
brought to you by <a href="http://www.changaroo.com">changaroo</a> productions 
</div></div>'
;
}
if(!$context['joomla_wrapped'])
echo '
 <br /><br />
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
  <div id="footer">
<div class="wrapper">
<div class="padding">
 <table class="footer" cellspacing="0">
<tr valign="top">
<td class="footer">
<div class="moduletable center">
  ' 
,theme_copyright(),'<br />
copyright atlshutterbugs.com Â© 2008-200∞
  </div>
</td>
 </tr>
  </table>

</div>
 </div>
  </div>'
;


echo '
</body></html>'
;
}

// Show a linktree. This is that thing that shows "My Community | General Category | General Discussion"..
function theme_linktree()
{
global $context$settings$options;

echo '<span class="pathway">';
// Each tree item has a URL and name. Some may have extra_before and extra_after.
foreach ($context['linktree'] as $link_num => $tree)
{
// Show something before the link?
if (isset($tree['extra_before']))
echo $tree['extra_before'];

// Don't show a separator for the last one.
if ($link_num != count($context['linktree']) - 1)
// Show the link, including a URL if it should have one.
echo $settings['linktree_link'] && isset($tree['url']) ? '<a href="' $tree['url'] . '" class="pathway">' $tree['name'] . '</a>' $tree['name'] , '<img src="'.$settings['images_url'].'/arrow.png" style="margin: 0 12px 0 12px" alt="" />';
else
echo $tree['name'];

// Show something after the link...?
if (isset($tree['extra_after']))
echo $tree['extra_after'];

}

echo '</span>';
}

// Show the menu up top. Something like [home] [help] [profile] [logout]...
function template_menu()
{
global $context$settings$options$scripturl$txt;


echo '
<ul>'
;


// Show the [home] button.
echo '<li><a href="'$scripturl'">' $txt[103] , '</a></li>';

// Show the [help] button.
// echo '<li><a href="', $scripturl, '?action=help">' , $txt[119] , '</a></li>';

// How about the [search] button?
//if ($context['allow_search'])
// echo '<li><a href="', $scripturl, '?action=search">' , $txt[182] , '</a></li>';

// Is the user allowed to administrate at all? ([admin])
if ($context['allow_admin'])
echo '<li><a href="'$scripturl'?action=admin">' $txt[2] , '</a></li>';

// Edit Profile... [profile]
if ($context['allow_edit_profile'])
echo '<li><a href="'$scripturl'?action=profile">' $txt[79] , '</a></li>';

// Go to PM center... [pm]
if ($context['user']['is_logged'] && $context['allow_pm'])
echo '<li><a href="'$scripturl'?action=pm">' $txt['pm_short'] , ' '$context['user']['unread_messages'] > '[<strong>'$context['user']['unread_messages'] . '</strong>]' '' '</a></li>';


// The [calendar]!
if ($context['allow_calendar'])
echo '<li><a href="'$scripturl'?action=calendar">' $txt['calendar24'] , '</a></li>';

// the [member] list button
if ($context['allow_memberlist'])
echo '<li><a href="'$scripturl'?action=mlist">' $txt[331] , '</a></li>';


// If the user is a guest, show [login] button.
if ($context['user']['is_guest'])
echo '<li><a href="'$scripturl'?action=login">' $txt[34] , '</a></li>';


// If the user is a guest, also show [register] button.
if ($context['user']['is_guest'])
echo '<li><a href="'$scripturl'?action=register">' $txt[97] , '</a></li>';


// Otherwise, they might want to [logout]...
if ($context['user']['is_logged'])
echo '<li><a href="'$scripturl'?action=logout;sesc='$context['session_id'], '">' $txt[108] , '</a></li>';

echo '</ul>';


}

// Show the menu up top. Something like [home] [help] [profile] [logout]...
function template_menu2()
{
global $context$settings$options$scripturl$txt;


echo '
<ul>'
;


// Show the [home] button.
echo '<li><a href="'$scripturl'">' $txt[103] , ' | </a></li>';

// How about the [search] button?
//if ($context['allow_search'])
// echo '<li><a href="', $scripturl, '?action=search">' , $txt[182] , ' | </a></li>';

// Is the user allowed to administrate at all? ([admin])
if ($context['allow_admin'])
echo '<li><a href="'$scripturl'?action=admin">' $txt[2] , ' | </a></li>';

// Edit Profile... [profile]
if ($context['allow_edit_profile'])
echo '<li><a href="'$scripturl'?action=profile">' $txt[79] , ' | </a></li>';

// Go to PM center... [pm]
if ($context['user']['is_logged'] && $context['allow_pm'])
echo '<li><a href="'$scripturl'?action=pm">' $txt['pm_short'] , ' '$context['user']['unread_messages'] > '[<strong>'$context['user']['unread_messages'] . '</strong>]' '' ' | </a></li>';


// The [calendar]!
if ($context['allow_calendar'])
echo '<li><a href="'$scripturl'?action=calendar">' $txt['calendar24'] , ' | </a></li>';

// the [member] list button
if ($context['allow_memberlist'])
echo '<li><a href="'$scripturl'?action=mlist">' $txt[331] , ' | </a></li>';

// Show the [help] button.
echo '<li><a href="'$scripturl'?action=help">' $txt[119] , ' | </a></li>';

// If the user is a guest, show [login] button.
if ($context['user']['is_guest'])
echo '<li><a href="'$scripturl'?action=login">' $txt[34] , ' | </a></li>';


// If the user is a guest, also show [register] button.
if ($context['user']['is_guest'])
echo '<li><a href="'$scripturl'?action=register">' $txt[97] , ' </a></li>';


// Otherwise, they might want to [logout]...
if ($context['user']['is_logged'])
echo '<li><a href="'$scripturl'?action=logout;sesc='$context['session_id'], '">' $txt[108] , '</a></li>';

echo '</ul>';


}


// Generate a strip of buttons.
function template_button_strip($button_strip$direction 'top'$force_reset false$custom_td '')
{
global $settings$buttons$context$txt$scripturl;

// Create the buttons...
foreach ($button_strip as $key => $value)
{
if (isset($value['test']) && empty($context[$value['test']]))
{
unset($button_strip[$key]);
continue;
}
elseif (!isset($buttons[$key]) || $force_reset)
$buttons[$key] = '<a href="' $value['url'] . '" ' .( isset($value['custom']) ? $value['custom'] : '') . '>' $txt[$value['text']] . '</a>';

$button_strip[$key] = $buttons[$key];
}

if (empty($button_strip))
return '<td>&nbsp;</td>';

echo '
<td class="'
$direction == 'top' 'main' 'mirror''tab_' $context['right_to_left'] ? 'last' 'first' '">&nbsp;</td>
<td class="'
$direction == 'top' 'main' 'mirror''tab_back">'implode(' &nbsp;|&nbsp; '$button_strip) , '</td>
<td class="'
$direction == 'top' 'main' 'mirror''tab_' $context['right_to_left'] ? 'first' 'last' '">&nbsp;</td>';
}

// Generate a strip of buttons.
function template_button_strip_mill($button_strip$direction 'top'$force_reset false$custom_td '')
{
global $settings$buttons$context$txt$scripturl;

// Create the buttons...
foreach ($button_strip as $key => $value)
{
if (isset($value['test']) && empty($context[$value['test']]))
{
unset($button_strip[$key]);
continue;
}
elseif (!isset($buttons[$key]) || $force_reset)
$buttons[$key] = '<a href="' $value['url'] . '" ' .( isset($value['custom']) ? $value['custom'] : '') . '>'. ($custom_td!='' '<'.$custom_td.'>' '') . $txt[$value['text']] . ($custom_td!='' '</'.$custom_td.'>' '') .'</a>';

$button_strip[$key] = $buttons[$key];
}

if (empty($button_strip))
return '&nbsp;';

echo implode(' &nbsp;|&nbsp; '$button_strip);

}
function 
leftmenu()
{
global $settings$buttons$context$txt$scripturl;
// personal info etc.
echo '<table class="showcase" cellspacing="0">
<tr valign="top">'
;

echo '
<td class="showcase">
<div class="moduletable">'
;

if (!empty($context['user']['avatar']))
echo '<div class="avatar">'$context['user']['avatar']['image'], '</div><div class="profile_info">';

// If the user is logged in, display stuff like their name, new messages, etc.
if ($context['user']['is_logged'])
{
echo '<h3>'$txt['hello_member_ndt'], ' <b>'$context['user']['name'], '</b></h3>';

echo '<ul id="useropts">';
// Only tell them about their messages if they can read their messages!
if ($context['allow_pm'])
echo '<li>'$txt[152], ' <a href="'$scripturl'?action=pm">'$context['user']['messages'], ' '$context['user']['messages'] != $txt[153] : $txt[471], '</a> '$context['user']['unread_messages'], ' '$context['user']['unread_messages'] == $txt['newmessages0'] : $txt['newmessages1'];
echo '.</li>';

// Is the forum in maintenance mode?
if ($context['in_maintenance'] && $context['user']['is_admin'])
echo '<li><b>'$txt[616], '</b></li>';

// Are there any members waiting for approval?
if (!empty($context['unapproved_members']))
echo '<li>'$context['unapproved_members'] == $txt['approve_thereis'] : $txt['approve_thereare'], ' <a href="'$scripturl'?action=viewmembers;sa=browse;type=approve">'$context['unapproved_members'] == $txt['approve_member'] : $context['unapproved_members'] . ' ' $txt['approve_members'], '</a> '$txt['approve_members_waiting'], '</li>';

// Show the total time logged in?
if (!empty($context['user']['total_time_logged_in']))
{
echo '<li>
'
$txt['totalTimeLogged1'];

// If days is just zero, don't bother to show it.
if ($context['user']['total_time_logged_in']['days'] > 0)
echo $context['user']['total_time_logged_in']['days'] . $txt['totalTimeLogged2'];

// Same with hours - only show it if it's above zero.
if ($context['user']['total_time_logged_in']['hours'] > 0)
echo $context['user']['total_time_logged_in']['hours'] . $txt['totalTimeLogged3'];

// But, let's always show minutes - Time wasted here: 0 minutes ;).
echo $context['user']['total_time_logged_in']['minutes'], $txt['totalTimeLogged4'], '</li>';
}

echo '<li><a href="'$scripturl'?action=unread">'$txt['unread_since_visit'], '</a></li>
<li><a href="'
$scripturl'?action=unreadreplies">'$txt['show_unread_replies'], '</a></li>
<li>'
$context['current_time'],'</li>
  </ul>
  </div>
</td>'
;
}
// Otherwise they're a guest - so politely ask them to register or login.
else
{
echo '
'
$txt['welcome_guest'], '
<script language="JavaScript" type="text/javascript" src="'
$settings['default_theme_url'], '/sha1.js"></script>

<form action="'
$scripturl'?action=login2" method="post" style="margin: 4px 0;"', empty($context['disable_login_hashing']) ? ' onsubmit="hashLoginPassword(this, \'' $context['session_id'] . '\');"' '''>
<input type="text" name="user" style="margin-bottom: 4px;" size="10" />
<input type="password" name="passwrd" style="margin-bottom: 4px;" size="10" /><br />
<select name="cookielength">
<option value="60">'
$txt['smf53'], '</option>
<option value="1440">'
$txt['smf47'], '</option>
<option value="10080">'
$txt['smf48'], '</option>
<option value="302400">'
$txt['smf49'], '</option>
<option value="-1" selected="selected">'
$txt['smf50'], '</option>
</select>
<input type="submit" value="'
$txt[34], '" />

<input type="hidden" name="hash_passwrd" value="" />
</form>'
$txt['smf52'], '<br /><br />';
}
if (!empty($context['user']['avatar'])) {
 echo '  </div>';
  }

  echo 
' </div>
  </td>'
;

echo '
  <td class="showcase">
<div class="moduletable">
<form action="'
$scripturl'?action=search2" method="post" style="margin: 4px 0;">
<input type="text" name="search" value="" size="30" style="margin-bottom: 4px;"  />&nbsp;
<input type="submit" name="submit" value="'
$txt[182], '" style="margin-bottom: 4px;"  /><br />
<a href="'
$scripturl'?action=search;advanced">'$txt['smf298'], '</a>
<input type="hidden" name="advanced" value="0" />
'
;

// Search within current topic?
if (!empty($context['current_topic']))
echo '
<input type="hidden" name="topic" value="'
$context['current_topic'], '" />';

// If we're on a certain board, limit it to this board ;).
elseif (!empty($context['current_board']))
echo '
<input type="hidden" name="brd['
$context['current_board'], ']" value="'$context['current_board'], '" />';

echo '
</form><br />
<b>'
$context['common_stats']['total_posts'], '</b> '$txt[95], ' '$txt['smf88'], ' <b>'$context['common_stats']['total_topics'], '</b> '$txt[64], '- '$txt[525], ' <span style="white-space: nowrap;"><b>'$context['common_stats']['total_members'], '</b> '$txt[19], '</span> -
'
$txt[656], ': <b> '$context['common_stats']['latest_member']['link'], '</b>
</div>
 </td>'
;
  echo 
'
  </tr>
</table>'
;
}


?>

Advertisement: