[MOD] Neue Shoutbox

Started by Deep, February 28, 2006, 09:58:53 AM

Previous topic - Next topic

mbirth

Hab die neue Version ersteinmal veröffentlicht.

http://mods.simplemachines.org/index.php?mod=412


Grüße,
  -mARKUS


NEVER contact me via ICQ/MSN/whatever for support inquiries unless I told you to do so! Use the forum threads instead.
Only send PMs if you need to tell me sensitive data.

Aleana

#81
also ich hab die Shoutbox v1.10 von mbirth installiert und die funktioniert im default theme auch super. mein Problem ist, daß nicht finde, wo ich das im BoardIndex.template.php des von mir im Moment genutzen Theme einbauen muß, daß es über den eigentlichen Boards erscheint. ich verwende momentan Dilber Multicolor als Theme. hat irgendwer ne Ahnung, wie ich das machen muß, daß die Shoutbox hier erscheint.

ach ja, noch was. es werden alle Smilies angezeigt, die für mein Forum verfügbar sind. ist das normal??? wenn ja, wie kann ich das ändern, daß es bei der Shoutbox nur ein paar ausgewählte anzeigt, da es doch ein paar viele sind.

schon mal Danke für die Hilfe

Kettu

@Aleana
Poste doch mal bitte den Code deiner BoardIndex.template.php.

@mbirth
Ich werd mir die neue Shoutbox jetzt auch mal installieren, damit ich supportmäßig auch auf dem Laufenden bleibe (unter anderem)  ;) Ähm, wie sieht das aus, hast du die nächsten Tage größere Veränderungen vor? Wenn ja, machst du die Update-fähig? Ich hab nämlich ehrlich gesagt keine Lust, die jedes Mal neu zu installieren ;D
Main Forum: SMF 2.0.6
Co-Forum: SMF 2.0.6

Aleana

Quote from: Kettu on August 14, 2006, 03:13:00 AM
@Aleana
Poste doch mal bitte den Code deiner BoardIndex.template.php.

klar...

<?php
// Version: 1.1 RC2; BoardIndex

function template_main()
{
global $context, $settings, $options, $txt, $scripturl, $modSettings;

// Show some statistics next to the link tree if SP1 info is off.
echo '
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td valign="bottom">'
, theme_linktree(), '</td>
<td align="right">'
;
if (!$settings['show_sp1_info'])
echo '
'
, $txt[19], ': ', $context['common_stats']['total_members'], ' &nbsp;&#8226;&nbsp; ', $txt[95], ': ', $context['common_stats']['total_posts'], ' &nbsp;&#8226;&nbsp; ', $txt[64], ': ', $context['common_stats']['total_topics'], '
'
, ($settings['show_latest_member'] ? '<br />' . $txt[201] . ' <b>' . $context['common_stats']['latest_member']['link'] . '</b>' . $txt[581] : '');
echo '
</td>
</tr>
</table>'
;

// Show the news fader?  (assuming there are things to show...)
if ($settings['show_newsfader'] && !empty($context['fader_news_lines']))
{
echo '
<table border="0" width="100%" class="tborder" cellspacing="'
, ($context['browser']['is_ie'] || $context['browser']['is_opera6']) ? '1' : '0' , '" cellpadding="4" style="margin-bottom: 2ex;">
<tr>
<td valign="middle" align="center" height="60" class="windowbg2">'
;

// Prepare all the javascript settings.
echo '
<div id="smfFadeScroller" style="width: 90%; padding: 2px;"><b>'
, $context['news_lines'][0], '</b></div>
<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
// The fading delay (in ms.)
var smfFadeDelay = '
, empty($settings['newsfader_time']) ? 5000 : $settings['newsfader_time'], ';
// Fade from... what text color? To which background color?
var smfFadeFrom = {"r": 0, "g": 0, "b": 0}, smfFadeTo = {"r": 255, "g": 255, "b": 255};
// Surround each item with... anything special?
var smfFadeBefore = "<b>", smfFadeAfter = "</b>";

var foreColor, backEl, backColor;

if (typeof(document.getElementById(\'smfFadeScroller\').currentStyle) != "undefined")
{
foreColor = document.getElementById(\'smfFadeScroller\').currentStyle.color.match(/#([\da-f][\da-f])([\da-f][\da-f])([\da-f][\da-f])/);
smfFadeFrom = {"r": parseInt(foreColor[1]), "g": parseInt(foreColor[2]), "b": parseInt(foreColor[3])};

backEl = document.getElementById(\'smfFadeScroller\');
while (backEl.currentStyle.backgroundColor == "transparent" && typeof(backEl.parentNode) != "undefined")
backEl = backEl.parentNode;

backColor = backEl.currentStyle.backgroundColor.match(/#([\da-f][\da-f])([\da-f][\da-f])([\da-f][\da-f])/);
smfFadeTo = {"r": eval("0x" + backColor[1]), "g": eval("0x" + backColor[2]), "b": eval("0x" + backColor[3])};
}
else if (typeof(window.opera) == "undefined" && typeof(document.defaultView) != "undefined")
{
foreColor = document.defaultView.getComputedStyle(document.getElementById(\'smfFadeScroller\'), null).color.match(/rgb\((\d+), (\d+), (\d+)\)/);
smfFadeFrom = {"r": parseInt(foreColor[1]), "g": parseInt(foreColor[2]), "b": parseInt(foreColor[3])};

backEl = document.getElementById(\'smfFadeScroller\');
while (document.defaultView.getComputedStyle(backEl, null).backgroundColor == "transparent" && typeof(backEl.parentNode) != "undefined" && typeof(backEl.parentNode.tagName) != "undefined")
backEl = backEl.parentNode;

backColor = document.defaultView.getComputedStyle(backEl, null).backgroundColor.match(/rgb\((\d+), (\d+), (\d+)\)/);
smfFadeTo = {"r": parseInt(backColor[1]), "g": parseInt(backColor[2]), "b": parseInt(backColor[3])};
}

// List all the lines of the news for display.
var smfFadeContent = new Array(
"'
, implode('",
"'
, $context['fader_news_lines']), '"
);
// ]]></script>
<script language="JavaScript" type="text/javascript" src="'
, $settings['default_theme_url'], '/fader.js"></script>
</td>
</tr>
</table>'
;
}

/* Each category in categories is made up of:
id, href, link, name, is_collapsed (is it collapsed?), can_collapse (is it okay if it is?),
new (is it new?), collapse_href (href to collapse/expand), collapse_image (up/down iamge),
and boards. (see below.) */
$first = true;
foreach ($context['categories'] as $category)
{
echo '
<div class="tborder" style="margin-top: '
, $first ? '0;' : '1ex;' , '' , $context['browser']['needs_size_fix'] && !$context['browser']['is_ie6'] ? 'width: 100%;' : '', '">
<div class="catbg'
, $category['new'] ? '2' : '', '" style="padding: 5px 5px 5px 10px;">';
$first = false;

// If this category even can collapse, show a link to collapse it.
if ($category['can_collapse'])
echo '
<span style="float:right; margin-right:15px;"><a href="'
, $category['collapse_href'], '"><img src="', $settings['images_url'] . '/'. $settings['theme_main_color'], '/', !$category['is_collapsed'] ? 'collapse.gif' : 'expand.gif', '" alt="*" /></a></span>';

echo '
<span style="margin-left:80px;">'
, $category['link'], '</span>
</div>'
;




// Assuming the category hasn't been collapsed...
if (!$category['is_collapsed'])
{
echo '
<table border="0" width="100%" cellspacing="1" cellpadding="5" class="bordercolor" style="margin-top: 0px;">

'
,
empty($settings['boardname_posts_lastposts_nodisplay']) ? '<tr>
<td class="titlebg3" width="51" align="center" valign="middle">

</td>
<td class="titlebg3">
'
. $txt[20].'
</td>
<td class="titlebg3" valign="middle" align="center" style="width: 12ex;">
'
. $txt[21].'
</td>
<td class="titlebg3" valign="middle" align="center" width="22%">
'
. $txt[22].'
</td>
</tr>'
: '' ;

/* Each board in each category's boards has:
new (is it new?), id, name, description, moderators (see below), link_moderators (just a list.),
children (see below.), link_children (easier to use.), children_new (are they new?),
topics (# of), posts (# of), link, href, and last_post. (see below.) */
foreach ($category['boards'] as $board)
{
echo '
<tr>
<td class="windowbg" width="51" align="center" valign="middle"><a href="'
, $scripturl, '?action=unread;board=', $board['id'], '.0">';

// If the board is new, show a strong indicator.
if ($board['new'])
echo '<img src="', $settings['images_url'] . '/'. $settings['theme_main_color'], '/on.gif" alt="', $txt[333], '" title="', $txt[333], '" />';
// This board doesn't have new posts, but its children do.
elseif ($board['children_new'])
echo '<img src="', $settings['images_url'] . '/'. $settings['theme_main_color'], '/on2.gif" alt="', $txt[333], '" title="', $txt[333], '" />';
// No new posts at all! The agony!!
else
echo '<img src="', $settings['images_url'] . '/'. $settings['theme_main_color'], '/off.gif" alt="', $txt[334], '" title="', $txt[334], '" />';

echo '</a>
</td>
<td class="windowbg2" style="padding-top:12px; padding-bottom:12px;">
<b><a href="'
, $board['href'], '" name="b', $board['id'], '">', $board['name'], '</a></b><br />
'
, $board['description'];

// Show the "Moderators: ". Each has name, href, link, and id. (but we're gonna use link_moderators.)
if (!empty($board['moderators']))
echo '
<div style="padding-top: 1px;" class="smalltext"><br/><i>'
, count($board['moderators']) == 1 ? $txt[298] : $txt[299], ': ', implode(', ', $board['link_moderators']), '</i></div>';

// Show the "Child Boards: ". (there's a link_children but we're going to bold the new ones...)
if (!empty($board['children']))
{
// Sort the links into an array with new boards bold so it can be imploded.
$children = array();
/* Each child in each board's children has:
id, name, description, new (is it new?), topics (#), posts (#), href, link, and last_post. */
foreach ($board['children'] as $child)
{
$child['link'] = '<a href="' . $child['href'] . '" title="' . ($child['new'] ? $txt[333] : $txt[334]) . ' (' . $txt[330] . ': ' . $child['topics'] . ', ' . $txt[21] . ': ' . $child['posts'] . ')">' . $child['name'] . '</a>';
$children[] = $child['new'] ? '<img style="margin-right:5px;" src="' . $settings['images_url'] . '/' . $settings['theme_main_color'] . '/onk.gif" alt="' . $txt[333] . '"/><b>' . $child['link'] . '</b>' : '<img style="margin-right:5px;" src="' . $settings['images_url'] . '/' . $settings['theme_main_color'] . '/offk.gif" alt="' . $txt[334] . '"/>' . $child['link'];
}

echo '
<table style="float:right; margin-top: 15px;" width="100%" cellspacing="0" cellpadding="3" border="0">
<tr>
<td class="middletext" valign="middle" align="center" width="30%">
<b>'
, $txt['parent_boards'], ':</b>
'
;

$child_counter = 0;

if(empty($settings['child_boards_rows']))
{
echo '
</td>
<td class="middletext" valign="top">'
;

for(; $child_counter < ceil(count($children)/2); $child_counter++)
echo $children[$child_counter], '<br/>';
}

echo '
</td>
<td class="middletext" valign="top">'
;
for(; $child_counter < count($children); $child_counter++)
echo $children[$child_counter], '<br/>';
echo '
</td>
</tr>
</table>'
;
}
// Show some basic information about the number of posts, etc.
echo '
</td>
<td class="windowbg" valign="middle" align="center" style="width: 12ex;"><span class="smalltext">
'
, $board['posts'], ' ', $txt[21], ' <br />
'
, $board['topics'],' ', $txt[330], '
</span></td>
<td class="windowbg2" valign="middle" width="22%">
<span class="smalltext">'
;

/* The board's and children's 'last_post's have:
time, timestamp (a number that represents the time.), id (of the post), topic (topic id.),
link, href, subject, start (where they should go for the first unread post.),
and member. (which has id, name, link, href, username in it.) */
if (!empty($board['last_post']['id']))
echo '
<b>'
, $txt[22], '</b>  ', $txt[525], ' ', $board['last_post']['member']['link'] , '<br />
'
, $txt['smf88'], ' ', $board['last_post']['link'], '<br />
'
, $txt[30], ' ', $board['last_post']['time'];
echo '
</span>
</td>
</tr>'
;
}
echo '
</table>'
;
}
echo '
</div>'
;
}

if ($context['user']['is_logged'])
{
echo '
<table border="0" width="100%" cellspacing="0" cellpadding="5">
<tr>
<td align="'
, !$context['right_to_left'] ? 'left' : 'right', '" class="smalltext">
<img src="'
. $settings['images_url'] . '/'. $settings['theme_main_color'] . '/new_some.gif" alt="" align="middle" /> ', $txt[333], '
<img src="'
. $settings['images_url'] . '/'. $settings['theme_main_color'] . '/new_none.gif" alt="" align="middle" style="margin-left: 4ex;" /> ', $txt[334], '
</td>
<td align="'
, !$context['right_to_left'] ? 'right' : 'left', '">';

// Mark read button.
$mark_read_button = array('markread' => array('text' => 452, 'image' => 'markread.gif', 'lang' => true, 'url' => $scripturl . '?action=markasread;sa=all;sesc=' . $context['session_id']));

// Show the mark all as read button?
if ($settings['show_mark_read'])
echo '
<table cellpadding="0" cellspacing="0" border="0" style="position: relative; top: 0px;">
<tr>
'
, template_button_strip($mark_read_button, 'top'), '
</tr>
</table>'
;
echo '
</td>
</tr>
</table>'
;
}

// Here's where the "Info Center" starts...
echo '<br />
<div class="tborder" '
, $context['browser']['needs_size_fix'] && !$context['browser']['is_ie6'] ? 'style="width: 100%;"' : '', '>
<div class="catbg" style="padding: 6px; vertical-align: middle; text-align: center; ">
<a href="#" onclick="shrinkHeaderIC(!current_header_ic); return false;"><img id="upshrink_ic" src="'
, $settings['images_url'] . '/'. $settings['theme_main_color'], '/', empty($options['collapse_header_ic']) ? 'collapse.gif' : 'expand.gif', '" alt="*" title="', $txt['upshrink_description'], '" style="margin-right: 2ex;" align="right" /></a>
'
, $txt[685], '
</div>
<div id="upshrinkHeaderIC"'
, empty($options['collapse_header_ic']) ? '' : ' style="display: none;"', '>
<table border="0" width="100%" cellspacing="1" cellpadding="4" class="bordercolor">'
;

// This is the "Recent Posts" bar.
if (!empty($settings['number_recent_posts']))
{
echo '
<tr>
<td class="titlebg" colspan="2">'
, $txt[214], '</td>
</tr>
<tr>
<td class="windowbg" width="20" valign="middle" align="center">
<a href="'
, $scripturl, '?action=recent"><img src="', $settings['images_url'], '/post/xx.gif" alt="', $txt[214], '" /></a>
</td>
<td class="windowbg2">'
;

// Only show one post.
if ($settings['number_recent_posts'] == 1)
{
// latest_post has link, href, time, subject, short_subject (shortened with...), and topic. (its id.)
echo '
<b><a href="'
, $scripturl, '?action=recent">', $txt[214], '</a></b>
<div class="smalltext">
'
, $txt[234], ' &quot;', $context['latest_post']['link'], '&quot; ', $txt[235], ' (', $context['latest_post']['time'], ')<br />
</div>'
;
}
// Show lots of posts.
elseif (!empty($context['latest_posts']))
{
echo '
<table cellpadding="0" cellspacing="0" width="100%">'
;

/* Each post in latest_posts has:
board (with an id, name, and link.), topic (the topic's id.), poster (with id, name, and link.),
subject, short_subject (shortened with...), time, link, and href. */
foreach ($context['latest_posts'] as $post)
echo '
<tr>
<td class="windowbg" valign="middle" width="40%" style="padding-left: 10px; font-size:85%">'
, $post['link'], '</td>
<td class="windowbg" valign="middle" width="15%" style="padding-left: 10px; font-size:85%" nowrap="nowrap">'
, $post['poster']['link'], '</td>
<td class="windowbg" valign="middle" width="25%" style="padding-left: 10px; font-size:85%" nowrap="nowrap">'
, $post['board']['link'], '</td>
<td class="windowbg" valign="middle" width="20%" style="padding-left: 10px; font-size:85%" nowrap="nowrap">'
, $post['time'], '</td>

</tr>'
;
echo '
</table>'
;
}
echo '
</td>
</tr>'
;
}

// Show information about events, birthdays, and holidays on the calendar.
if ($context['show_calendar'])
{
echo '
<tr>
<td class="titlebg" colspan="2">'
, $context['calendar_only_today'] ? $txt['calendar47b'] : $txt['calendar47'], '</td>
</tr><tr>
<td class="windowbg" width="20" valign="middle" align="center">
<a href="'
, $scripturl, '?action=calendar"><img src="', $settings['images_url'], '/icons/calendar.gif" alt="', $txt['calendar24'], '" /></a>
</td>
<td class="windowbg2" width="100%">
<span class="smalltext">'
;

// Holidays like "Christmas", "Chanukah", and "We Love [Unknown] Day" :P.
if (!empty($context['calendar_holidays']))
echo '
<span style="color: #'
, $modSettings['cal_holidaycolor'], ';">', $txt['calendar5'], ' ', implode(', ', $context['calendar_holidays']), '</span><br />';

// People's birthdays. Like mine. And yours, I guess. Kidding.
if (!empty($context['calendar_birthdays']))
{
echo '
<span style="color: #'
, $modSettings['cal_bdaycolor'], ';">', $context['calendar_only_today'] ? $txt['calendar3'] : $txt['calendar3b'], '</span> ';
/* Each member in calendar_birthdays has:
id, name (person), age (if they have one set?), is_last. (last in list?), and is_today (birthday is today?) */
foreach ($context['calendar_birthdays'] as $member)
echo '
<a href="'
, $scripturl, '?action=profile;u=', $member['id'], '">', $member['is_today'] ? '<b>' : '', $member['name'], $member['is_today'] ? '</b>' : '', isset($member['age']) ? ' (' . $member['age'] . ')' : '', '</a>', $member['is_last'] ? '<br />' : ', ';
}
// Events like community get-togethers.
if (!empty($context['calendar_events']))
{
echo '
<span style="color: #'
, $modSettings['cal_eventcolor'], ';">', $context['calendar_only_today'] ? $txt['calendar4'] : $txt['calendar4b'], '</span> ';
/* Each event in calendar_events should have:
title, href, is_last, can_edit (are they allowed?), modify_href, and is_today. */
foreach ($context['calendar_events'] as $event)
echo '
'
, $event['can_edit'] ? '<a href="' . $event['modify_href'] . '" style="color: #FF0000;">*</a> ' : '', $event['href'] == '' ? '' : '<a href="' . $event['href'] . '">', $event['is_today'] ? '<b>' . $event['title'] . '</b>' : $event['title'], $event['href'] == '' ? '' : '</a>', $event['is_last'] ? '<br />' : ', ';

// Show a little help text to help them along ;).
if ($context['calendar_can_edit'])
echo '
(<a href="'
, $scripturl, '?action=helpadmin;help=calendar_how_edit" onclick="return reqWin(this.href);">', $txt['calendar_how_edit'], '</a>)';
}
echo '
</span>
</td>
</tr>'
;
}


// Show YaBB SP1 style information...
if ($settings['show_sp1_info'])
{
echo '
<tr>
<td class="titlebg" colspan="2">'
, $txt[645], '</td>
</tr>
<tr>
<td class="windowbg" width="20" valign="middle" align="center">
<a href="'
, $scripturl, '?action=stats"><img src="', $settings['images_url'], '/icons/info.gif" alt="', $txt[645], '" /></a>
</td>
<td class="windowbg2" width="100%">
<span class="middletext">
'
, $context['common_stats']['total_posts'], ' ', $txt[95], ' ', $txt['smf88'], ' ', $context['common_stats']['total_topics'], ' ', $txt[64], ' ', $txt[525], ' ', $context['common_stats']['total_members'], ' ', $txt[19], '. ', $txt[656], ': <b> ', $context['common_stats']['latest_member']['link'], '</b>
<br /> '
. $txt[659] . ': <b>&quot;' . $context['latest_post']['link'] . '&quot;</b>  ( ' . $context['latest_post']['time'] . ' )<br />
<a href="'
, $scripturl, '?action=recent">', $txt[234], '</a>', $context['show_stats'] ? '<br />
<a href="'
. $scripturl . '?action=stats">' . $txt['smf223'] . '</a>' : '', '
</span>
</td>
</tr>'
;
}

// "Users online" - in order of activity.
echo '
<tr>
<td class="titlebg" colspan="2">'
, $txt[158], '</td>
</tr><tr>
<td rowspan="2" class="windowbg" width="20" valign="middle" align="center">
'
, $context['show_who'] ? '<a href="' . $scripturl . '?action=who">' : '', '<img src="', $settings['images_url'], '/icons/online.gif" alt="', $txt[158], '" />', $context['show_who'] ? '</a>' : '', '
</td>
<td class="windowbg2" width="100%">'
;

echo '
'
, $context['show_who'] ? '<a href="' . $scripturl . '?action=who">' : '', $context['num_guests'], ' ', $context['num_guests'] == 1 ? $txt['guest'] : $txt['guests'], ', ' . $context['num_users_online'], ' ', $context['num_users_online'] == 1 ? $txt['user'] : $txt['users'];

// Handle hidden users and buddies.
if (!empty($context['num_users_hidden']) || ($context['show_buddies'] && !empty($context['show_buddies'])))
{
echo ' (';

// Show the number of buddies online?
if ($context['show_buddies'])
echo $context['num_buddies'], ' ', $context['num_buddies'] == 1 ? $txt['buddy'] : $txt['buddies'];

// How about hidden users?
if (!empty($context['num_users_hidden']))
echo $context['show_buddies'] ? ', ' : '', $context['num_users_hidden'] . ' ' . $txt['hidden'];

echo ')';
}

echo $context['show_who'] ? '</a>' : '', '
<div class="smalltext">'
;

// Assuming there ARE users online... each user in users_online has an id, username, name, group, href, and link.
if (!empty($context['users_online']))
echo '
'
, $txt[140], ':<br />', implode(', ', $context['list_users_online']);

echo '
<br />
'
, $context['show_stats'] && !$settings['show_sp1_info'] ? '<a href="' . $scripturl . '?action=stats">' . $txt['smf223'] . '</a>' : '', '
</div>
</td>
</tr>
<tr>
<td class="windowbg2" width="100%">
<span class="middletext">
'
, $txt['most_online_today'], ': <b>', $modSettings['mostOnlineToday'], '</b>.
'
, $txt['most_online_ever'], ': ', $modSettings['mostOnline'], ' (' , timeformat($modSettings['mostDate']), ')
</span>
</td>
</tr>'
;

// If they are logged in, but SP1 style information is off... show a personal message bar.
if ($context['user']['is_logged'] && !$settings['show_sp1_info'])
{
echo '
<tr>
<td class="titlebg" colspan="2">'
, $txt[159], '</td>
</tr><tr>
<td class="windowbg" width="20" valign="middle" align="center">
'
, $context['allow_pm'] ? '<a href="' . $scripturl . '?action=pm">' : '', '<img src="', $settings['images_url'], '/message_sm.gif" alt="', $txt[159], '" />', $context['allow_pm'] ? '</a>' : '', '
</td>
<td class="windowbg2" valign="top">
<b><a href="'
, $scripturl, '?action=pm">', $txt[159], '</a></b>
<div class="smalltext">
'
, $txt[660], ' ', $context['user']['messages'], ' ', $context['user']['messages'] == 1 ? $txt[471] : $txt[153], '.... ', $txt[661], ' <a href="', $scripturl, '?action=pm">', $txt[662], '</a> ', $txt[663], '
</div>
</td>
</tr>'
;
}

// Show the login bar. (it's only true if they are logged out anyway.)
if ($context['show_login_bar'])
{
echo '
<tr>
<td class="titlebg" colspan="2">'
, $txt[34], ' <a href="', $scripturl, '?action=reminder" class="smalltext">(' . $txt[315] . ')</a></td>
</tr>
<tr>
<td class="windowbg" width="20" align="center">
<a href="'
, $scripturl, '?action=login"><img src="', $settings['images_url'], '/icons/login.gif" alt="', $txt[34], '" /></a>
</td>
<td class="windowbg2" valign="middle">
<form action="'
, $scripturl, '?action=login2" method="post" style="margin: 0;">
<table border="0" cellpadding="2" cellspacing="0" align="center" width="100%"><tr>
<td valign="middle" align="left">
<label for="user"><b>'
, $txt[35], ':</b><br />
<input type="text" name="user" id="user" size="15" /></label>
</td>
<td valign="middle" align="left">
<label for="passwrd"><b>'
, $txt[36], ':</b><br />
<input type="password" name="passwrd" id="passwrd" size="15" /></label>
</td>
<td valign="middle" align="left">
<label for="cookielength"><b>'
, $txt[497], ':</b><br />
<input type="text" name="cookielength" id="cookielength" size="4" maxlength="4" value="'
, $modSettings['cookieTime'], '" /></label>
</td>
<td valign="middle" align="left">
<label for="cookieneverexp"><b>'
, $txt[508], ':</b><br />
<input type="checkbox" name="cookieneverexp" id="cookieneverexp" checked="checked" class="check" /></label>
</td>
<td valign="middle" align="left">
<input type="submit" value="'
, $txt[34], '" />
</td>
</tr></table>
</form>
</td>
</tr>'
;
}

echo '
</table>
</div>
</div>'
;
}

?>

Kettu

Hier davor müsste das meines Erachtens nach hin, wenn ich mich jetzt nicht grad total vertue.
// Show the news fader?  (assuming there are things to show...)
if ($settings['show_newsfader'] && !empty($context['fader_news_lines']))



einfach davor
 // display shoutbox
 
if (function_exists('sbox')) sbox();

einfügen.

Das sollte es zumindest sein, wenn du einen ganz normalen Newsfader oberhalb der Kategorien hast.

Warum allerdings die Smilies alle angezeigt werden, keine Ahnung.
Main Forum: SMF 2.0.6
Co-Forum: SMF 2.0.6

Netsnoop


Nabend...


sacht mal, entweder stell ich mich zu blöd an oder gibt es keinen Administrativen Bereich für die Shoutbox?



MfG Netsnoop

Aleana

Quote from: Kettu on August 14, 2006, 01:22:14 PM
Hier davor müsste das meines Erachtens nach hin, wenn ich mich jetzt nicht grad total vertue.
// Show the news fader?  (assuming there are things to show...)
if ($settings['show_newsfader'] && !empty($context['fader_news_lines']))



einfach davor
 // display shoutbox
 
if (function_exists('sbox')) sbox();

einfügen.

Das sollte es zumindest sein, wenn du einen ganz normalen Newsfader oberhalb der Kategorien hast.

Warum allerdings die Smilies alle angezeigt werden, keine Ahnung.

hat funktioniert....super...vielen vielen Dank. und das mit den Smilies hab ich auch geklärt, war meine eigene Blödheit...hab halt nen paar ins Pop-up verfrachtet und schon war das Problem gelöst

Quote from: Netsnoop on August 14, 2006, 03:49:14 PM

Nabend...


sacht mal, entweder stell ich mich zu blöd an oder gibt es keinen Administrativen Bereich für die Shoutbox?



MfG Netsnoop

dadrüber hab ich mich auch schon gewundert...hab nix gefunden, wo man auch nur irgendwas einstellen kann

Kettu

Der Admin-Bereich sollte sich eigentlich unter "Forum Einstellungen" befinden (Reiter SMF Shoubox).
Main Forum: SMF 2.0.6
Co-Forum: SMF 2.0.6

Netsnoop

Aha, in der englischen Sprache ist der Admin-Bereich da...

Habe mir mal die Install-Dateien vorgenommen und alles auf Deutsch angepasst.

Wer will kann sich den Mod in Deutsch hier herunterladen [nofollow].



MfG Netsnoop


P.S. Ist getestet und der Admin-Bereich der SMF-Shoutbox wird dann auch angezeigt... ;)

Balmung

#89
Also was mich an der Shoutbox nach einigen Tagen der Nutzung nun stört ist der doch recht hohe Traffic. Ich hab die Aktualisierungszeit schon auf 30 Sekunden gestellt, dennoch ist die Shoutbox nun auf Platz 1 der am meisten Traffic verursachenden Datei auf meinem Webspace.

Klar wird die Shoutbox so oder so immer reichlich Traffic verursachen, doch wenn ich mir den Quelltext des iFrames ansehe, dann ist da doch noch ein bischen Platz für Optimierungen.

EvenLine, OddLine und Kill als Classname müssen ja schonmal nicht sein, da reichen auch E, O und K, was schonmal einige Zeichen einspart, da die Namen in jeder Zeile auftauchen. Auch KillYesNo() kann man kürzen, "sboxDB.php?action=kill&kill=104" ebenso. Hier gehts ganz klar darum so wenig Zeichen wie nur irgend möglich zu verwenden, das spart auf Dauer extrem viel Traffic, lesbarer Quelltext ist hier total unwichtig. Zumindest seh ich das so. ;)

aktuell (330 Zeichen):
Quote<div class="EvenLine"><a title="Dou you want to kill this shout?" class="Kill" onclick="return killYesNo();" href="sboxDB.php?action=kill&kill=135">[X]</a>[&nbsp;So&nbsp;|&nbsp;12:35&nbsp;]&nbsp;<b>&lt;<a href="http://xxxxxx.de/index.php?action=profile;u=1" target="_top" class="EvenLine">blubb</a>&gt;</b>&nbsp;ein Beispiel</div>

gekürzt (169 Zeichen):
Quote<div class="E"><a class="K" onclick="return k();" href="sboxDB.php?a=k&k=135">[X]</a>[&nbsp;So&nbsp;|&nbsp;12:35&nbsp;]&nbsp;<b>&lt;blubb&gt;</b>&nbsp;ein Beispiel</div>
So würde ich es kürzen, ein title="" in <a> für das [X] ist unnötig, sobald man draufklickt wird man ja eh nochmal gefragt und dann weiss jeder für was das da ist. Ich würde sogar noch den Link zum Userprofil rauslöschen, ist zwar nett, verbraucht aber doch einiges an Zeichen, die man sich hier lieber spart.

dieter4

Wenn man knapp 50Zeichen gelässt, dann hast du insgesammt pro Aufruf ca. 50Byte gespart... Also viel ist das nicht. Das hohe Traffic aufkommen kommt daher, dass die Suer oft lange auf der Seite bleiben und (TabbedBrowsing ist da etwas darn schuld) einfach wo anderes weiter surfen ohne den Tab zu schließen (ob nun vergessen oder Absicht ist jetzt egal). Deine Shoutbox aktualisiert sich aber immer brav weiter. Daher der hohe Traffic.

Balmung

#91
Siehe oberen Beitrag, hab mal ein Beispiel hinzugefügt.

Ja, pro Aufruf 50 Byte (gehn wir einfach mal davon aus, weils weit mehr sind). In 10 Minuten wären das schon 1000 Byte, bei nur einem User (ausgehend von 30 Sekunden Refreshzeit).

Bei meinem Beispiel sind es 161 Byte pro Zeile(!), wenn man nun 20 Zeilen anzeigen lässt, was nicht gerade so viele sind, dann sind das schon allein 3220 Byte bei einem Aufruf und da sind die Bytes bei der Definition der CSS Classen noch gar nicht mit eingerechnet, genauso wenig wie andere Optimierungen. In 10 Minuten wären das schon 62,8 KByte.

Man müsste den Refresh so steuern können, der er nur durchgeführt wird, wenn die Webseite gerade auch angezeigt wird und nicht ausgeführt wird, wenn man gerade auf nem anderen Tab surft.

dieter4

Quote from: Balmung on August 20, 2006, 07:25:42 AM
Man müsste den Refresh so steuern können, der er nur durchgeführt wird, wenn die Webseite gerade auch angezeigt wird und nicht ausgeführt wird, wenn man gerade auf nem anderen Tab surft.

Nochmal JavaScript... ::)

Balmung

Wenn das mit Javascript ginge, würde das aber trotzdem dem Traffic zugute kommen.

Am schönsten wäre natürlich überhaupt wenn der iframe nur dann refreshed wird, wenn Jemand was neues geschrieben hat.

baraba

Quote from: Balmung on August 20, 2006, 08:24:14 AM
Am schönsten wäre natürlich überhaupt wenn der iframe nur dann refreshed wird, wenn Jemand was neues geschrieben hat.

Über sowas würde ich mich auch sehr freuen :)

mbirth

#95
So, nu werd ich hier mal wieder ein paar Fragen beantworten...

Quote from: Netsnoop on August 14, 2006, 03:49:14 PMsacht mal, entweder stell ich mich zu blöd an oder gibt es keinen Administrativen Bereich für die Shoutbox?

Für die ganz neue Version gibt es noch kein deutsches Langpack. Da SMF kein Englisch-Fallback hat, sieht man dann bei deutscher Spracheinstellung keinen Eintrag in der Administration. :-/ Wenn man die Boardsprache für sich auf Englisch stellt, ist der Eintrag da.


Quote from: Balmung on August 20, 2006, 07:05:14 AMKlar wird die Shoutbox so oder so immer reichlich Traffic verursachen, doch wenn ich mir den Quelltext des iFrames ansehe, dann ist da doch noch ein bischen Platz für Optimierungen.

Kannst Du gern bei Deiner Version so umschreiben. Ich muss das Ding aber auch warten können, und wenn da alles kryptisch abgekürzt ist, sieht da niemand mehr durch.... und ehrlich gesagt ist das für mich so, wie, wenn Du Dir einen Porsche kaufst und Dich dann beschwerst, dass der das teure SuperPlus schluckt statt mit Normal-Benzin oder gar Diesel zu fahren. Die Links zum Userprofil könnte ich evtl. noch mit JavaScript abkürzen oder ich mach sie schaltbar - entfernen möchte ich sie nicht. Ich überlege auch, dass man den Refresh komplett abschalten kann, so dass immer nur geladen wird, wenn man die Seite aktualisiert. Allerdings können ungeduldige Shouter so schnell noch mehr Traffic durch die ständigen Reloads der kompletten Seite verursachen.


Quote from: Balmung on August 20, 2006, 07:25:42 AMMan müsste den Refresh so steuern können, der er nur durchgeführt wird, wenn die Webseite gerade auch angezeigt wird und nicht ausgeführt wird, wenn man gerade auf nem anderen Tab surft.

Aus Sicht von JavaScript gibt es keine Tabs. Höchstens mit irgendwelchen fiesen Browser-spezifischen Funktionen, die ich dann aber für jeden Browser anpassen müsste, etc. ... wobei ich bezweifle, dass es sowas überhaupt gibt. Das wär ein Sicherheitsloch hoch drei.

Quote from: Balmung on August 20, 2006, 08:24:14 AMAm schönsten wäre natürlich überhaupt wenn der iframe nur dann refreshed wird, wenn Jemand was neues geschrieben hat.

Das ist genauso utopisch, da dann JavaScript immer noch den Server regelmäßig abfragen müsste und das schon an Web 2.0 grenzt. Außerdem bin ich froh, dass Deep einen stinknormalen META-Refresh benutzt hat, weil der auch bei deaktiviertem JavaScript funktioniert. Ja, es gibt immer noch Menschen, die kein JavaScript aktiviert haben. :-)

Aber was evtl. machbar wäre, dass die Shoutbox sich nur bis ca. 30min nach dem letzten Post des Besuchers aktualisiert. Also quasi: Man loggt sich ein, die Shoutbox wird einmal angezeigt - ohne Aktualisierung. Schreibt man jetzt was, wird die ab sofort 30min lang aktualisiert .... danach nicht mehr. Bei Gästen müsste dann die Aktualisierung komplett wegfallen, damit die den Traffic nicht hochreißen.

Klingt das okay für Dich? ;-)

Grüße,
  -mARKUS

EDIT: So, bald ist ja wieder Weihnachten und als kleinen Vorgeschmack, hab ich gerade das deutsche Sprachpaket für die Shoutbox hochgeladen. Dieses muss ZUSÄTZLICH zur Shoutbox installiert werden - es enthält nur rein die Texte, nicht die Shoutbox selbst. Und das ganze sollte auf der Mod-Seite downloadbar sein. :-)

EDIT2: Und natürlich noch ein dickes DANKE an Kettu für die tatkräftige Unterstützung!


NEVER contact me via ICQ/MSN/whatever for support inquiries unless I told you to do so! Use the forum threads instead.
Only send PMs if you need to tell me sensitive data.

Balmung

#96
QuoteKannst Du gern bei Deiner Version so umschreiben. Ich muss das Ding aber auch warten können, und wenn da alles kryptisch abgekürzt ist, sieht da niemand mehr durch....
Wozu kann man in PHP Kommentare rein schreiben? Das Hilft einem dann schnell wieder auf die Sprünge welche Abkürzung was bedeutet. Vorallem erhöhen derartige Kommentare nicht den Traffic.

Quoteund ehrlich gesagt ist das für mich so, wie, wenn Du Dir einen Porsche kaufst und Dich dann beschwerst, dass der das teure SuperPlus schluckt statt mit Normal-Benzin oder gar Diesel zu fahren.
Der Autovergleich ging ziemlich in die Hose (wie das sehr oft bei solchen Autovergleichen ist), denn ich würde mich sehr wohl beschweren, wenn der Spritverbrauch (nix anderes ist im Grunde Traffic) zu hoch ist, weil die Entwickler das Auto nicht richtig abgestimmt und optimiert haben. ;)

QuoteDie Links zum Userprofil könnte ich evtl. noch mit JavaScript abkürzen oder ich mach sie schaltbar - entfernen möchte ich sie nicht.
Schaltbar ist eine gute Idee.

Wie gesagt, ich finde den Traffic schon etwas hoch, meine Seite ist noch nicht wirklich gut besucht und die Shoutbox können ja eh schon nur Mitglieder sehn, keine Gäste. Ich hab die Shoutbox nun gut 2 Wochen auf meinem Webspace laufen und folgende Daten in der Statistik:

31605 Hits und 360,8MB Traffic bei 32 angezeiten Zeilen in der Shoutbox und 30 Sekunden Refreshzeit. Visits pro Tag liegen im Durchschnitt bei 180, allerdings sind da Gäste mit eingerechnet, die die Shoutbox ja gar nicht sehn können.

QuoteAber was evtl. machbar wäre, dass die Shoutbox sich nur bis ca. 30min nach dem letzten Post des Besuchers aktualisiert.
Das klingt gut, ich würde allerdings die Zeit nehmen, die auch in der Wer ist Online Übersicht genutzt wird, also nicht bis 30 Min nach dem letzten Post, sondern bis 30 Min nach der letzten Aktivität auf der Seite.




Was die Sprachen angeht, wieso die extra in ein Sprachpaket packen? Man kann doch zumindest Deutsch auch gleich dazu packen und dem Mod-Installer von SMF sagen er soll es nur installieren wenn vorhanden. Bei anderen Mods gehts das wunderbar.


mbirth

Quote from: Balmung on August 20, 2006, 12:39:33 PMDer Autovergleich ging ziemlich in die Hose (wie das sehr oft bei solchen Autovergleichen ist), denn ich würde mich sehr wohl beschweren, wenn der Spritverbrauch (nix anderes ist im Grunde Traffic) zu hoch ist, weil die Entwickler das Auto nicht richtig abgestimmt und optimiert haben. ;)

Gut, dann sagen wir's halt so: Man könnte eine spritsparende Variante machen, die in einer Blackbox untergebracht ist und wo Du Dir ein neues Auto kaufen darfst, wenn was kaputt geht. Oder man macht es herkömmlich, so dass man die einzelnen Bauteile klar erkennen und auch selbst mal eine Schraube wieder festziehen kann. ;-)

Aber ein paar Kleinigkeiten werd ich wohl sicher doch noch optimieren.


Quote from: Balmung on August 20, 2006, 12:39:33 PM
QuoteAber was evtl. machbar wäre, dass die Shoutbox sich nur bis ca. 30min nach dem letzten Post des Besuchers aktualisiert.
Das klingt gut, ich würde allerdings die Zeit nehmen, die auch in der Wer ist Online Übersicht genutzt wird, also nicht bis 30 Min nach dem letzten Post, sondern bis 30 Min nach der letzten Aktivität auf der Seite.

Da muss ich mal schauen, ob ich da einfach rankomme, an die Zahlen. Müsste ich aber eigentlich ...

Quote from: Balmung on August 20, 2006, 12:39:33 PMWas die Sprachen angeht, wieso die extra in ein Sprachpaket packen? Man kann doch zumindest Deutsch auch gleich dazu packen und dem Mod-Installer von SMF sagen er soll es nur installieren wenn vorhanden. Bei anderen Mods gehts das wunderbar.

Deep hatte das Package im klassischen Boardmod-Style gemacht, da geht sowas leider nicht. Aber ich hab mir vorgenommen, mich in die XML-Mods einzulesen und das irgendwann umzuschreiben. Dann können die Languagepacks komplett integriert werden.

Grüße,
  -mARKUS


NEVER contact me via ICQ/MSN/whatever for support inquiries unless I told you to do so! Use the forum threads instead.
Only send PMs if you need to tell me sensitive data.

mbirth

So, ich hab mal soeben die Sachen eingebaut:

-Refresh wird jetzt nach Inaktivität deaktiviert und eine Meldung kommt in der Shoutbox.
-Man kann die Verlinkung der Profile abschalten

Das Argument, die title=""-Attribute aus den Löschen-Links zu entfernen, lass ich nicht gelten, weil das eh nur die Mods/Admins sehen. ;-) Außerdem sollte das so jetzt gut umschifft sein.

Ich hab jetzt auch das Language-Pack in das Haupt-Package integriert. Ist zwar keine schöne Lösung so - aber einfach und effektiv. Beim Installieren des Packages, wird das Language-Package einfach in den Package-Ordner geschoben, so dass man es bei Bedarf anwenden kann.

Das Package ist im Mod-Repository. So wie's aussieht, muss da erst jemand drübergucken, bevor das auf die Welt losgelassen wird. Wenn mir da mal jemand mehr Informationen geben kann, wie das abläuft und wie ich das beschleunigen kann, wär ich sehr dankbar. Dazu schweigen sich die Seiten scheinbar aus.

Grüße,
  -mARKUS


NEVER contact me via ICQ/MSN/whatever for support inquiries unless I told you to do so! Use the forum threads instead.
Only send PMs if you need to tell me sensitive data.

Kettu

Quote from: mbirth on August 20, 2006, 11:31:04 AM
Aber was evtl. machbar wäre, dass die Shoutbox sich nur bis ca. 30min nach dem letzten Post des Besuchers aktualisiert. Also quasi: Man loggt sich ein, die Shoutbox wird einmal angezeigt - ohne Aktualisierung. Schreibt man jetzt was, wird die ab sofort 30min lang aktualisiert .... danach nicht mehr. Bei Gästen müsste dann die Aktualisierung komplett wegfallen, damit die den Traffic nicht hochreißen.
Da wäre es vielleicht sinnvoll, wenn da irgendwo die letzte Aktualisierungsuhrzeit angezeigt wird (so wie bei den Shouts eine Uhrzeit steht). Falls das machbar ist. Und die 30 Min könnte man dann auch problemlos auf 15 Min runterschrauben.

Quote from: mbirth on August 20, 2006, 11:31:04 AM
EDIT2: Und natürlich noch ein dickes DANKE an Kettu für die tatkräftige Unterstützung!
Immer wieder gern :)
Main Forum: SMF 2.0.6
Co-Forum: SMF 2.0.6

Advertisement: