Advertisement:

Author Topic: SMF Coding  (Read 4294 times)

Offline Luis-

  • Semi-Newbie
  • *
  • Posts: 92
  • Gender: Male
SMF Coding
« on: August 12, 2011, 09:32:26 PM »
Hello, I have been wanting to get my SA:MP server information into SMF but it just isn't working.

Here is my code:
Code: [Select]
'<br />' . 'Latest Forum Member' . ': <strong> ' . $context['common_stats']['latest_member']['link'] . '</strong>' : '' . 'Latest Server Member' . ': <strong> ' . $name . '</strong>' : '', '<br />',As you can see it has been made to show right next to the "Latest Forum Member" and it does but it doesn't echo to variable.

I also have this at the very top of the BoardIndex.template.php.
Code: [Select]
mysql_connect("213.5.176.155", "1661_luis", "") or die(mysql_error());
mysql_select_db("1661_luis") or die(mysql_error());

Here is the full code.
Code: [Select]
<?php

// Version: 2.0 RC3; BoardIndex

mysql_connect("213.5.176.155""1661_luis""") or die(mysql_error());
mysql_select_db("1661_luis") or die(mysql_error());
$name mysql_result(mysql_query('SELECT name FROM accounts ORDER BY RegisterDate DESC LIMIT 0,1'), 0); 

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

// Show some statistics if stat info is off.
if (!$settings['show_stats_index'])
echo '
<div id="index_common_stats">
'
$txt['members'], ': '$context['common_stats']['total_members'], ' &nbsp;&#38;#8226;&nbsp; '$txt['posts_made'], ': '$context['common_stats']['total_posts'], ' &nbsp;&#38;#8226;&nbsp; '$txt['topics'], ': '$context['common_stats']['total_topics'], '
'
, ($settings['show_latest_member'] ? ' ' $txt['welcome_member'] . ' <strong>' $context['common_stats']['latest_member']['link'] . '</strong>' $txt['newest_member'] : '') , '
</div>'
;

// Show the news fader?  (assuming there are things to show...)
if ($settings['show_newsfader'] && !empty($context['fader_news_lines']))
{
echo '
<div id="newsfader">
<div class="cat_bar">
<h3 class="catbg">
<img id="newsupshrink" src="'
$settings['images_url'], '/collapse.gif" alt="*" title="'$txt['upshrink_description'], '" align="bottom" style="display: none;" />
'
$txt['news'], '
</h3>
</div>
<ul class="reset" id="smfFadeScroller"'
, empty($options['collapse_news_fader']) ? '' ' style="display: none;"''>';

foreach ($context['news_lines'] as $news)
echo '
<li>'
$news'</li>';

echo '
</ul>
</div>
<script type="text/javascript" src="'
$settings['default_theme_url'], '/scripts/fader.js"></script>
<script type="text/javascript"><!-- // --><![CDATA[

// Create a news fader object.
var oNewsFader = new smf_NewsFader({
sSelf: \'oNewsFader\',
sFaderControlId: \'smfFadeScroller\',
sItemTemplate: '
JavaScriptEscape('<strong>%1$s</strong>'), ',
iFadeDelay: '
, empty($settings['newsfader_time']) ? 5000 $settings['newsfader_time'], '
});

// Create the news fader toggle.
var smfNewsFadeToggle = new smc_Toggle({
bToggleEnabled: true,
bCurrentlyCollapsed: '
, empty($options['collapse_news_fader']) ? 'false' 'true'',
aSwappableContainers: [
\'smfFadeScroller\'
],
aSwapImages: [
{
sId: \'newsupshrink\',
srcExpanded: smf_images_url + \'/collapse.gif\',
altExpanded: '
JavaScriptEscape($txt['upshrink_description']), ',
srcCollapsed: smf_images_url + \'/expand.gif\',
altCollapsed: '
JavaScriptEscape($txt['upshrink_description']), '
}
],
oThemeOptions: {
bUseThemeSettings: '
$context['user']['is_guest'] ? 'false' 'true'',
sOptionName: \'collapse_news_fader\',
sSessionVar: '
JavaScriptEscape($context['session_var']), ',
sSessionId: '
JavaScriptEscape($context['session_id']), '
},
oCookieOptions: {
bUseCookie: '
$context['user']['is_guest'] ? 'true' 'false'',
sCookieName: \'newsupshrink\'
}
});
// ]]></script>'
;
}

echo '
<div id="boardindex_table">
<table class="table_list">'
;

/* 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 image),
and boards. (see below.) */
foreach ($context['categories'] as $category)
{
// If theres no parent boards we can see, avoid showing an empty category (unless its collapsed)
if (empty($category['boards']) && !$category['is_collapsed'])
continue;

echo '
<tbody class="header">
<tr>
<td colspan="5" class="catbg"><span class="left"></span>'
;

// If this category even can collapse, show a link to collapse it.
if ($category['can_collapse'])
echo '
<a class="collapse" href="'
$category['collapse_href'], '">'$category['collapse_image'], '</a>';

if (!$context['user']['is_guest'] && !empty($category['show_unread']))
echo '
<a class="unreadlink" href="'
$scripturl'?action=unread;c='$category['id'], '">'$txt['view_unread_category'], '</a>';

echo '
'
$category['link'], '
</td>
</tr>
</tbody>
<tbody class="content">'
;

// Assuming the category hasn't been collapsed...
if (!$category['is_collapsed'])
{

/* 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 class="windowbg2">
<td class="icon windowbg"'
, !empty($board['children']) ? ' rowspan="2"' '''>
<a href="'
, ($board['is_redirect'] || $context['user']['is_guest'] ? $board['href'] : $scripturl '?action=unread;board=' $board['id'] . '.0;children'), '">';

// If the board or children is new, show an indicator.
if ($board['new'] || $board['children_new'])
echo '
<img src="'
$settings['images_url'], '/'$context['theme_variant'], '/on'$board['new'] ? '' '2''.png" alt="'$txt['new_posts'], '" title="'$txt['new_posts'], '" />';
// Is it a redirection board?
elseif ($board['is_redirect'])
echo '
<img src="'
$settings['images_url'], '/'$context['theme_variant'], '/redirect.png" alt="*" title="*" />';
// No new posts at all! The agony!!
else
echo '
<img src="'
$settings['images_url'], '/'$context['theme_variant'], '/off.png" alt="'$txt['old_posts'], '" title="'$txt['old_posts'], '" />';

echo '
</a>
</td>
<td class="info">
<a class="subject" href="'
$board['href'], '" name="b'$board['id'], '">'$board['name'], '</a>';

// Has it outstanding posts for approval?
if ($board['can_approve_posts'] && ($board['unapproved_posts'] || $board['unapproved_topics']))
echo '
<a href="'
$scripturl'?action=moderate;area=postmod;sa=', ($board['unapproved_topics'] > $board['unapproved_posts'] ? 'topics' 'posts'), ';brd='$board['id'], ';'$context['session_var'], '='$context['session_id'], '" title="'sprintf($txt['unapproved_posts'], $board['unapproved_topics'], $board['unapproved_posts']), '" class="moderation_link">(!)</a>';

echo '

<p>'
$board['description'] , '</p>';

// Show the "Moderators: ". Each has name, href, link, and id. (but we're gonna use link_moderators.)
if (!empty($board['moderators']))
echo '
<p class="moderators">'
count($board['moderators']) == $txt['moderator'] : $txt['moderators'], ': 'implode(', '$board['link_moderators']), '</p>';

// Show some basic information about the number of posts, etc.
echo '
</td>'
;
if (!$board['is_redirect'])
echo '
<td class="windowbg stats">
'
$board['posts'], '<br />'$txt['posts'], '
</td>
<td class="windowbg stats">
'
$board['topics'], '<br />'$txt['topics'], '
</td>'
;

else
echo '
<td class="windowbg" valign="middle" align="center" colspan="2" width="14%">'
$board['posts'], ' '$txt['redirects'], '</td>';

echo '
<td class="lastpost">'
;

/* 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 '
<p><strong>'
$txt['last_post'], '</strong>  '$txt['by'], ' '$board['last_post']['member']['link'] , '<br />
'
$txt['in'], ' '$board['last_post']['link'], '<br />
<span class="smalltext">'
$txt['on'], ' '$board['last_post']['time'],'</span>
</p>'
;
echo '
</td>
</tr>'
;
// 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)
{
if (!$child['is_redirect'])
$child['link'] = '<a href="' $child['href'] . '" ' . ($child['new'] ? 'class="new_posts" ' '') . 'title="' . ($child['new'] ? $txt['new_posts'] : $txt['old_posts']) . ' (' $txt['board_topics'] . ': ' comma_format($child['topics']) . ', ' $txt['posts'] . ': ' comma_format($child['posts']) . ')">' $child['name'] . ($child['new'] ? '</a> <a href="' $child['href'] . '" title="' $txt['new_posts'] . ' (' $txt['board_topics'] . ': ' comma_format($child['topics']) . ', ' $txt['posts'] . ': ' comma_format($child['posts']) . ')"><img src="' $settings['lang_images_url'] . '/new.gif" class="new_posts" alt="" />' '') . '</a>';
else
$child['link'] = '<a href="' $child['href'] . '" title="' comma_format($child['posts']) . ' ' $txt['redirects'] . '">' $child['name'] . '</a>';

// Has it posts awaiting approval?
if ($child['can_approve_posts'] && ($child['unapproved_posts'] | $child['unapproved_topics']))
$child['link'] .= ' <a href="' $scripturl '?action=moderate;area=postmod;sa=' . ($child['unapproved_topics'] > $child['unapproved_posts'] ? 'topics' 'posts') . ';brd=' $child['id'] . ';' $context['session_var'] . '=' $context['session_id'] . '" title="' sprintf($txt['unapproved_posts'], $child['unapproved_topics'], $child['unapproved_posts']) . '" class="moderation_link">(!)</a>';

$children[] = $child['new'] ? '<strong>' $child['link'] . '</strong>' $child['link'];
}
echo '
<tr><td colspan="4" class="children windowbg"><strong>'
$txt['parent_boards'], '</strong>: 'implode(', '$children), '</td></tr>';
}
}
}
echo '
</tbody>
<tbody class="divider">
<tr>
<td colspan="5"></td>
</tr>
</tbody>'
;
}
echo '
</table>
</div>'
;

if ($context['user']['is_logged'])
{
echo '
<div id="posting_icons" class="align_left">'
;

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

echo '
<ul class="reset">
<li class="align_left"><img src="'
$settings['images_url'], '/'$context['theme_variant'], '/new_some.png" alt="" /> '$txt['new_posts'], '</li>
<li class="align_left"><img src="'
$settings['images_url'], '/'$context['theme_variant'], '/new_none.png" alt="" /> '$txt['old_posts'], '</li>
<li class="align_left"><img src="'
$settings['images_url'], '/'$context['theme_variant'], '/new_redirect.png" alt="" /> '$txt['redirect_board'], '</li>
</ul>
</div>'
;

// Show the mark all as read button?
if ($settings['show_mark_read'] && !empty($context['categories']))
echo '<div class="mark_read">'template_button_strip($mark_read_button'right'), '</div>';
}
else
{
echo '
<div id="posting_icons" class="flow_hidden">
<ul class="reset">
<li class="align_left"><img src="'
$settings['images_url'], '/new_none.png" alt="" /> '$txt['old_posts'], '</li>
<li class="align_left"><img src="'
$settings['images_url'], '/new_redirect.png" alt="" /> '$txt['redirect_board'], '</li>
</ul>
</div>'
;
}

template_info_center();
}

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

// Here's where the "Info Center" starts...
echo '
<span class="clear upperframe"><span></span></span>
<div class="roundframe"><div class="innerframe">
<div class="cat_bar">
<h3 class="catbg">
<img class="icon" id="upshrink_ic" src="'
$settings['images_url'], '/collapse.gif" alt="*" title="'$txt['upshrink_description'], '" style="display: none;" />
'
sprintf($txt['info_center_title'], $context['forum_name_html_safe']), '
</h3>
</div>
<div id="upshrinkHeaderIC"'
, empty($options['collapse_header_ic']) ? '' ' style="display: none;"''>';

// This is the "Recent Posts" bar.
if (!empty($settings['number_recent_posts']))
{
echo '
<div class="title_barIC">
<h4 class="titlebg">
<span class="ie6_header floatleft">
<a href="'
$scripturl'?action=recent"><img class="icon" src="'$settings['images_url'], '/post/xx.gif" alt="'$txt['recent_posts'], '" /></a>
'
$txt['recent_posts'], '
</span>
</h4>
</div>
<div class="hslice" id="recent_posts_content">
<div class="entry-title" style="display: none;">'
$context['forum_name_html_safe'], ' - '$txt['recent_posts'], '</div>
<div class="entry-content" style="display: none;">
<a rel="feedurl" href="'
$scripturl'?action=.xml;type=webslice">'$txt['subscribe_webslice'], '</a>
</div>'
;

// 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 '
<strong><a href="'
$scripturl'?action=recent">'$txt['recent_posts'], '</a></strong>
<p id="infocenter_onepost" class="middletext">
'
$txt['recent_view'], ' &quot;'$context['latest_post']['link'], '&quot; '$txt['recent_updated'], ' ('$context['latest_post']['time'], ')<br />
</p>'
;
}
// Show lots of posts.
elseif (!empty($context['latest_posts']))
{
echo '
<dl id="ic_recentposts" class="middletext">'
;

/* 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 '
<dt><strong>'
$post['link'], '</strong> '$txt['by'], ' '$post['poster']['link'], ' ('$post['board']['link'], ')</dt>
<dd>'
$post['time'], '</dd>';
echo '
</dl>'
;
}
echo '
</div>'
;
}

// Show information about events, birthdays, and holidays on the calendar.
if ($context['show_calendar'])
{
echo '
<div class="title_barIC">
<h4 class="titlebg">
<span class="ie6_header floatleft">
<a href="'
$scripturl'?action=calendar' '"><img class="icon" src="'$settings['images_url'], '/icons/calendar.gif''" alt="'$context['calendar_only_today'] ? $txt['calendar_today'] : $txt['calendar_upcoming'], '" /></a>
'
$context['calendar_only_today'] ? $txt['calendar_today'] : $txt['calendar_upcoming'], '
</span>
</h4>
</div>
<p class="smalltext">'
;

// Holidays like "Christmas", "Chanukah", and "We Love [Unknown] Day" :P.
if (!empty($context['calendar_holidays']))
echo '
<span class="holiday">'
$txt['calendar_prompt'], ' 'implode(', '$context['calendar_holidays']), '</span><br />';

// People's birthdays. Like mine. And yours, I guess. Kidding.
if (!empty($context['calendar_birthdays']))
{
echo '
<span class="birthday">'
$context['calendar_only_today'] ? $txt['birthdays'] : $txt['birthdays_upcoming'], '</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'] ? '<strong>' ''$member['name'], $member['is_today'] ? '</strong>' '', isset($member['age']) ? ' (' $member['age'] . ')' '''</a>'$member['is_last'] ? '<br />' ', ';
}
// Events like community get-togethers.
if (!empty($context['calendar_events']))
{
echo '
<span class="event">'
$context['calendar_only_today'] ? $txt['events'] : $txt['events_upcoming'], '</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'] . '" title="' $txt['calendar_edit'] . '"><img src="' $settings['images_url'] . '/icons/modify_small.gif" alt="*" /></a> ' ''$event['href'] == '' '' '<a href="' $event['href'] . '">'$event['is_today'] ? '<strong>' $event['title'] . '</strong>' $event['title'], $event['href'] == '' '' '</a>'$event['is_last'] ? '<br />' ', ';
}
echo '
</p>'
;
}

// Show statistical style information...
if ($settings['show_stats_index'])
{
echo '
<div class="title_barIC">
<h4 class="titlebg">
<span class="ie6_header floatleft">
<a href="'
$scripturl'?action=stats"><img class="icon" src="'$settings['images_url'], '/icons/info.gif" alt="'$txt['forum_stats'], '" /></a>
'
$txt['forum_stats'], '
</span>
</h4>
</div>
<p>
'
$context['common_stats']['total_posts'], ' '$txt['posts_made'], ' '$txt['in'], ' '$context['common_stats']['total_topics'], ' '$txt['topics'], ' '$txt['by'], ' '$context['common_stats']['total_members'], ' '$txt['members'], '. ', !empty($settings['show_latest_member']) ? '<br />' 'Latest Forum Member' ': <strong> ' $context['common_stats']['latest_member']['link'] . '</strong>' '''<br />' ' ' ' ' 'Latest Server Member' ': <strong> ' $name '</strong>' '''<br />',

(!empty($context['latest_post']) ? $txt['latest_post'] . ': <strong>&quot;' $context['latest_post']['link'] . '&quot;</strong>  ( ' $context['latest_post']['time'] . ' )<br />' ''), '
<a href="'
$scripturl'?action=recent">'$txt['recent_view'], '</a>'$context['show_stats'] ? '<br />
<a href="' 
$scripturl '?action=stats">' $txt['more_stats'] . '</a>' '''
</p>'
;
}

// "Users online" - in order of activity.
echo '
<div class="title_barIC">
<h4 class="titlebg">
<span class="ie6_header floatleft">
'
$context['show_who'] ? '<a href="' $scripturl '?action=who' '">' '''<img class="icon" src="'$settings['images_url'], '/icons/online.gif''" alt="'$txt['online_users'], '" />'$context['show_who'] ? '</a>' '''
'
$txt['online_users'], '
</span>
</h4>
</div>
<p class="inline stats">
'
$context['show_who'] ? '<a href="' $scripturl '?action=who">' ''comma_format($context['num_guests']), ' '$context['num_guests'] == $txt['guest'] : $txt['guests'], ', ' comma_format($context['num_users_online']), ' '$context['num_users_online'] == $txt['user'] : $txt['users'];

// Handle hidden users and buddies.
$bracketList = array();
if ($context['show_buddies'])
$bracketList[] = comma_format($context['num_buddies']) . ' ' . ($context['num_buddies'] == $txt['buddy'] : $txt['buddies']);
if (!empty($context['num_spiders']))
$bracketList[] = comma_format($context['num_spiders']) . ' ' . ($context['num_spiders'] == $txt['spider'] : $txt['spiders']);
if (!empty($context['num_users_hidden']))
$bracketList[] = comma_format($context['num_users_hidden']) . ' ' $txt['hidden'];

if (!empty($bracketList))
echo ' (' implode(', '$bracketList) . ')';

echo $context['show_who'] ? '</a>' '''
</p>
<p class="inline 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 '
'
sprintf($txt['users_active'], $modSettings['lastActive']), ':<br />'implode(', '$context['list_users_online']);

// Showing membergroups?
if (!empty($settings['show_group_key']) && !empty($context['membergroups']))
echo '
<br />[' 
implode(']&nbsp;&nbsp;['$context['membergroups']) . ']';
}

echo '
</p>
<p class="last smalltext">
'
$txt['most_online_today'], ': <strong>'comma_format($modSettings['mostOnlineToday']), '</strong>.
'
$txt['most_online_ever'], ': 'comma_format($modSettings['mostOnline']), ' ('timeformat($modSettings['mostDate']), ')
</p>'
;

// If they are logged in, but statistical information is off... show a personal message bar.
if ($context['user']['is_logged'] && !$settings['show_stats_index'])
{
echo '
<div class="title_barIC">
<h4 class="titlebg">
<span class="ie6_header floatleft">
'
$context['allow_pm'] ? '<a href="' $scripturl '?action=pm">' '''<img class="icon" src="'$settings['images_url'], '/message_sm.gif" alt="'$txt['personal_message'], '" />'$context['allow_pm'] ? '</a>' '''
<span>'
$txt['personal_message'], '</span>
</span>
</h4>
</div>
<p class="pminfo">
<strong><a href="'
$scripturl'?action=pm">'$txt['personal_message'], '</a></strong>
<span class="smalltext">
'
$txt['you_have'], ' 'comma_format($context['user']['messages']), ' '$context['user']['messages'] == $txt['message_lowercase'] : $txt['msg_alert_messages'], '.... '$txt['click'], ' <a href="'$scripturl'?action=pm">'$txt['here'], '</a> '$txt['to_view'], '
</span>
</p>'
;
}

echo '
</div>
</div></div>
<span class="lowerframe"><span></span></span>'
;

// Info center collapse object.
echo '
<script type="text/javascript"><!-- // --><![CDATA[
var oInfoCenterToggle = new smc_Toggle({
bToggleEnabled: true,
bCurrentlyCollapsed: '
, empty($options['collapse_header_ic']) ? 'false' 'true'',
aSwappableContainers: [
\'upshrinkHeaderIC\'
],
aSwapImages: [
{
sId: \'upshrink_ic\',
srcExpanded: smf_images_url + \'/collapse.gif\',
altExpanded: '
JavaScriptEscape($txt['upshrink_description']), ',
srcCollapsed: smf_images_url + \'/expand.gif\',
altCollapsed: '
JavaScriptEscape($txt['upshrink_description']), '
}
],
oThemeOptions: {
bUseThemeSettings: '
$context['user']['is_guest'] ? 'false' 'true'',
sOptionName: \'collapse_header_ic\',
sSessionVar: '
JavaScriptEscape($context['session_var']), ',
sSessionId: '
JavaScriptEscape($context['session_id']), '
},
oCookieOptions: {
bUseCookie: '
$context['user']['is_guest'] ? 'true' 'false'',
sCookieName: \'upshrinkIC\'
}
});
// ]]></script>'
;
}
?>

Thanks.
« Last Edit: August 12, 2011, 10:04:06 PM by Luis- »

Offline IchBin™

  • SMF Friend
  • SMF Super Hero
  • *
  • Posts: 11,115
  • Gender: Male
  • I don't speak German.
Re: SMF Coding
« Reply #1 on: August 13, 2011, 12:08:18 AM »
Are you putting $name as a global so you can use it in the function?
IchBin™        TinyPortal
Coding Guidelines       

Offline Luis-

  • Semi-Newbie
  • *
  • Posts: 92
  • Gender: Male
Re: SMF Coding
« Reply #2 on: August 13, 2011, 12:16:58 AM »
Yes, as you can see in the bottom code I have added $name as a global variable.

Offline IchBin™

  • SMF Friend
  • SMF Super Hero
  • *
  • Posts: 11,115
  • Gender: Male
  • I don't speak German.
Re: SMF Coding
« Reply #3 on: August 13, 2011, 12:25:43 AM »
No, I don't see that you've added it to the global line. Not in the code you posted.
IchBin™        TinyPortal
Coding Guidelines       

Offline Luis-

  • Semi-Newbie
  • *
  • Posts: 92
  • Gender: Male
Re: SMF Coding
« Reply #4 on: August 13, 2011, 12:37:02 AM »
Isn't this the global line?
Code: [Select]
mysql_connect("213.5.176.155", "1661_luis", "") or die(mysql_error());
mysql_select_db("1661_luis") or die(mysql_error());
$name = mysql_result(mysql_query('SELECT name FROM accounts ORDER BY RegisterDate DESC LIMIT 0,1'), 0);

Offline Matthew K.

  • SMF Super Hero
  • *******
  • Posts: 12,430
  • Gender: Male
    • matthew.kerle on Facebook
    • @matthew_kerle on Twitter
Re: SMF Coding
« Reply #5 on: August 13, 2011, 12:58:22 AM »
You also shouldn't have queries directly in templates as it defeats the purpose of template/source separation.

Offline IchBin™

  • SMF Friend
  • SMF Super Hero
  • *
  • Posts: 11,115
  • Gender: Male
  • I don't speak German.
Re: SMF Coding
« Reply #6 on: August 13, 2011, 11:34:52 AM »
Isn't this the global line?
Code: [Select]
mysql_connect("213.5.176.155", "1661_luis", "") or die(mysql_error());
mysql_select_db("1661_luis") or die(mysql_error());
$name = mysql_result(mysql_query('SELECT name FROM accounts ORDER BY RegisterDate DESC LIMIT 0,1'), 0);

No, the global line begins with the actual word "global". If you have a variable outside of the function, PHP doesn't have a way for you to reference that variable unless you put it in the global line. So at the top of the function where you put your code you should add your variable to the global line.

Code: [Select]
global $context, $settings, $options, $txt, $scripturl, $modSettings;
IchBin™        TinyPortal
Coding Guidelines       

Offline Luis-

  • Semi-Newbie
  • *
  • Posts: 92
  • Gender: Male
Re: SMF Coding
« Reply #7 on: August 13, 2011, 02:20:37 PM »
You also shouldn't have queries directly in templates as it defeats the purpose of template/source separation.
May I ask how it should be set up then?

Isn't this the global line?
Code: [Select]
mysql_connect("213.5.176.155", "1661_luis", "") or die(mysql_error());
mysql_select_db("1661_luis") or die(mysql_error());
$name = mysql_result(mysql_query('SELECT name FROM accounts ORDER BY RegisterDate DESC LIMIT 0,1'), 0);

No, the global line begins with the actual word "global". If you have a variable outside of the function, PHP doesn't have a way for you to reference that variable unless you put it in the global line. So at the top of the function where you put your code you should add your variable to the global line.

Code: [Select]
global $context, $settings, $options, $txt, $scripturl, $modSettings;
I have tried to add it to the global line with and without the mysql_result it only works without. I would like to know how I can set it to work.

Offline IchBin™

  • SMF Friend
  • SMF Super Hero
  • *
  • Posts: 11,115
  • Gender: Male
  • I don't speak German.
Re: SMF Coding
« Reply #8 on: August 13, 2011, 03:35:34 PM »
SMF tries to separate the display (view) from the business logic by putting all the display code into templates, and all the business code into the Source files.

What I would do, is put your code into a file (call it whatever you want). Something like Accounts.php Put all your code into that file. Make sure you can hit that file directly and that your code works in that file before you try pulling the information into your template. Once that works, it would probably be easiest to then just include the file with a require_once() and call the variable inside the function where you want to call $name.
IchBin™        TinyPortal
Coding Guidelines       

Offline Luis-

  • Semi-Newbie
  • *
  • Posts: 92
  • Gender: Male
Re: SMF Coding
« Reply #9 on: August 13, 2011, 04:15:43 PM »
I am very sorry about this, I am still learning PHP.

I am now getting this error I have no idea if I coded it write.
Code: [Select]
Fatal error: require_once() [function.require]: Failed opening required 'www.foxxrp.com/testucp/newuser.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/luis/public_html/forums/Sources/Load.php(2151) : eval()'d code on line 387
Here is the code which I added.
Code: [Select]
$name = require_once('www.foxxrp.com/testucp/newuser.php') : '', '<br />',
Which is underneath all the "Latest Forum Member" codes.

I have made a separate file called "newuser.php".

Offline IchBin™

  • SMF Friend
  • SMF Super Hero
  • *
  • Posts: 11,115
  • Gender: Male
  • I don't speak German.
Re: SMF Coding
« Reply #10 on: August 13, 2011, 06:44:20 PM »
It shouldn't be necessary to use a URL to pull your file in, use a relative or absolute path. In your template just do this:

require_once($sourcedir.'/newuser.php);

If $sourcedir is not on the global for the function in the template, add it.

Or just type the full path which is usually something like this:
require_once('/home/user_name/www/path_to_forum/Sources/newuser.php');
IchBin™        TinyPortal
Coding Guidelines       

Offline Luis-

  • Semi-Newbie
  • *
  • Posts: 92
  • Gender: Male
Re: SMF Coding
« Reply #11 on: August 13, 2011, 06:54:15 PM »
Can I ask how the require_once should be set out in the template?

I have it like this:
Code: [Select]
require_once($sourcedir.'/newusers.php'); '<br />',

which seems to give me this error when I attempt to load the forums.
Code: [Select]
syntax error, unexpected ','
I just can't seem to find out how it works.

Offline IchBin™

  • SMF Friend
  • SMF Super Hero
  • *
  • Posts: 11,115
  • Gender: Male
  • I don't speak German.
Re: SMF Coding
« Reply #12 on: August 13, 2011, 07:01:10 PM »
You can't break an echo statement like that. In SMF an echo statement looks like this:

echo 'starts and ends with single quotes and then a semi-colon. And any text in side the quotes is output to the browser';

If you want to output a variable inside an echo statement you have to escape it like this:
echo 'output a variable by escaping with single quote/comma in this order ', $variable ,' and then end the echo statement';

If you put a require statement in your template it is best to make sure you put it between other echo statements so that you are not inside an echo''; statement.
IchBin™        TinyPortal
Coding Guidelines       

Offline Luis-

  • Semi-Newbie
  • *
  • Posts: 92
  • Gender: Male
Re: SMF Coding
« Reply #13 on: August 13, 2011, 07:29:03 PM »
Alright, I think I am getting the hang of it now.

I have added a "$name = require_once($sourcedir.'/newuser.php);" at the top where the global line is
Code: [Select]
global $context, $settings, $options, $txt, $scripturl, $modSettings, $sourcedir;
        $name = require_once($sourcedir.'/newusers.php');

but I have done this where I want it to echo the newest member '$name' but for some reason it actually echos the $name.

Code: [Select]
'Latest Server Member: ' . '<strong>', '$name' ,'</strong>', '<br />',

Offline IchBin™

  • SMF Friend
  • SMF Super Hero
  • *
  • Posts: 11,115
  • Gender: Male
  • I don't speak German.
Re: SMF Coding
« Reply #14 on: August 13, 2011, 07:33:23 PM »
You shouldn't assign a variable to an include like that.


require_once($sourcedir.'/newusers.php);

After that, you should just be able to call $name somewhere in your code. Assuming you have already set $name to something in your newusers.php file.
IchBin™        TinyPortal
Coding Guidelines       

Offline Luis-

  • Semi-Newbie
  • *
  • Posts: 92
  • Gender: Male
Re: SMF Coding
« Reply #15 on: August 13, 2011, 07:41:37 PM »
Alright, now the only thing that worries me is how the require_once should be and where it should go.

Offline IchBin™

  • SMF Friend
  • SMF Super Hero
  • *
  • Posts: 11,115
  • Gender: Male
  • I don't speak German.
Re: SMF Coding
« Reply #16 on: August 13, 2011, 07:48:26 PM »
You can call it anywhere as long as it's in the same function where you are using the $name variable.
IchBin™        TinyPortal
Coding Guidelines       

Offline Luis-

  • Semi-Newbie
  • *
  • Posts: 92
  • Gender: Male
Re: SMF Coding
« Reply #17 on: August 13, 2011, 07:59:48 PM »
Oh my god! Thanks mate. I am really really happy now.

Offline IchBin™

  • SMF Friend
  • SMF Super Hero
  • *
  • Posts: 11,115
  • Gender: Male
  • I don't speak German.
Re: SMF Coding
« Reply #18 on: August 13, 2011, 08:09:57 PM »
Now you know. Those are some little things that make a world of difference to understand. :) You are well on your way. Keep reading and experimenting with code. There's some amazing things to learn!
IchBin™        TinyPortal
Coding Guidelines       

Offline Luis-

  • Semi-Newbie
  • *
  • Posts: 92
  • Gender: Male
Re: SMF Coding
« Reply #19 on: August 13, 2011, 08:30:42 PM »
Your right, before I opened this topic I had no idea how to use the "global line" or how to edit the "echo tags". You really are a life saver mate :). And thanks for those kind words!