SMF SSI.php Functions

Current Version: 2.0

This file is used to demonstrate the capabilities of SSI.php using PHP include functions. The examples show the include tag, then the results of it.

Include Code

To use SSI.php in your page add at the very top of your page before the <html> tag on line 1 of your php file:

Code: [Select]
<?php require("SSI.php"); ?>

Some notes on usage

All the functions have an output method parameter. This can either be "echo" (the default) or "array"

If it is "echo", the function will act normally - otherwise, it will return an array containing information about the requested task. For example, it might return a list of topics for ssi_recentTopics.

This functionality can be used to allow you to present the information in any way you wish.

Additional Guides & FAQ

Need more information on using SSI.php? Check out Using SSI.php article or the SSI FAQ.

Recent Topics Function

Code (simple mode)

Code: [Select]
<?php ssi_recentTopics(); ?>

Code (advanced mode)

Code: [Select]
<?php ssi_recentTopics($num_recent = 8, $exclude_boards = null, $include_boards = null, $output_method = 'echo'); ?>

Result

Recent Poll Function

Code

Code: [Select]
<?php ssi_recentPoll(); ?>

Result

Top Boards Function

Shows top boards by the number of posts.

Code

Code: [Select]
<?php ssi_topBoards(); ?>

Result

Board Topics Posts
Main Forum New 48577 504911
Everything Else New 13300 250330
Project Announcements New 6554 198210
Software Forum New 16084 130086
Buy/Sell/Trade - non-retail New 17931 96745
Monitor/Video Forum New 12481 88752
Consoles New 4048 58100
Miscellaneous Arcade Talk New 4137 46867
Artwork New 5398 42273
GroovyMAME New 2937 37382

Top Topics

Shows top topics by the number of replies or views.

Code (show by number of views)

Code: [Select]
<?php ssi_topTopicsViews(); ?>

Result

Code (show by number of replies)

Code: [Select]
<?php ssi_topTopicsReplies(); ?>

Result

Top Poll Function

Shows the most-voted-in poll.

Code

Code: [Select]
<?php ssi_topPoll(); ?>

Result

Top Poster Function

Shows the top poster's name and profile link.

Code

Code: [Select]
<?php ssi_topPoster(); ?>

Result

Latest Member Function

Shows the latest member's name and profile link.

Code

Code: [Select]
<?php ssi_latestMember(); ?>

Result

Please welcome Omero, our newest member.

Member of the Day

Shows one random member of the day. This changes once a day.

Code

Code: [Select]
<?php ssi_randomMember('day'); ?>

Result

derole
I want to build my own arcade controls!

Who's Online Function

This function shows who are online inside the forum.

Code

Code: [Select]
<?php ssi_whosOnline(); ?>

Result

1612 Guests, 0 Users

Log Online Presence

This function logs the SSI page's visitor, then shows the Who's Online list. In other words, this function shows who are online inside and outside the forum.

Code

Code: [Select]
<?php ssi_logOnline(); ?>

Result

1612 Guests, 0 Users

Login Function

Shows a login box only when user is not logged in.

Code

Code: [Select]
<?php ssi_login(); ?>

Result

 
 

Logout Function

Shows a logout link only when user is logged in.

Code

Code: [Select]
<?php ssi_logout(); ?>

Result

Welcome Function

Greets users or guests, also shows user's messages if logged in.

Code

Code: [Select]
<?php ssi_welcome(); ?>

Result

Welcome, Guest. Please login or register.
Did you miss your activation email?

Today's Calendar Function

Code

Code: [Select]
<?php ssi_todaysCalendar(); ?>

Result

Today's Birthdays Function

Code

Code: [Select]
<?php ssi_todaysBirthdays(); ?>

Result

Today's Holidays Function

Code

Code: [Select]
<?php ssi_todaysHolidays(); ?>

Result

Today's Events Function

Code

Code: [Select]
<?php ssi_todaysEvents(); ?>

Result

Recent Calendar Events Function

Code

Code: [Select]
<?php ssi_recentEvents(); ?>

Result

Forum Stats

Shows some basic forum stats: total members, posts, topics, boards, etc.

Code

Code: [Select]
<?php ssi_boardStats(); ?>

Result

Total Members: 55988
Total Posts: 1731906
Total Topics: 152581
Total Categories: 7
Total Boards: 47

News Function

Shows random forum news.

Code

Code: [Select]
<?php ssi_news(); ?>

Result

Support this site
Shop Amazon Arcade Stuff through our link. Thank you!




Well, that was weird. Outage sorted out. Thank you SirWoogie for saving the day!

Board News Function

Shows the latest posts from read only boards, or a specific board.

Code

Code: [Select]
<?php ssi_boardNews(); ?>

Result

xx Atari Recharged all in one cab???

January 08, 2026, 01:42:01 am by SORHP
Starting to think about making an all in one Atari Recharged cab, am I crazy? will the control panel be too crowded?  or maybe just pick a few games and combine just a few ?? 
My favs are Asteroids, Centipede, Quantum, Tempest 4000 ( I know this one isn't official, but it deserves attention)  I feel like these games could cover Breakout, Gravitar, missile command and others
I dont care for Black Widow, mostly because I have a Robotron... plus I can omit joysticks if I don't consider doing ANY joystick games.

anyone else thinking of this same thing?

any further Ideas?
1 comment | Write Comment

xx "Wobbly" trackball?

January 05, 2026, 02:30:31 pm by CmdandCtrl
I've got an Ultimarc trackball and for lack of a better way to describe it, it has some "play" or "wobble".  A video (with sound) says a thousand words so made this little recording to demonstrate the issue.  I have tried cleaning it and adjusting it in the past with no luck.  I'm guessing the experts here might have some sage advice for me?

Video:
https://imgur.com/a/9hAOy3O
(Sound up for best effect)
2 comments | Write Comment

xx Trying to run a build, but can't get any roms to run. i7, gtx 950.

January 04, 2026, 11:41:41 pm by lettice
Can't get groovy mame to run any roms. Started with i7, 1GB SSD, 16 GB RAM, NVDA GTX 950 PC with its monitor. Used Balena to create a groovy arcade USB install disk. Installed groovy arcade and groovy Mame.  Found ROMS version 0.284. Double checked the correct ROM path for groovy Mame. No ROMS would run. Updated groovy Mame from 0.277 to 0.283. Updated the OS from the menu. Tried 0.284, 0.282, and 0.281 ROMS and none of them would run. Now even the desktop component of the groovy arcade won't start. Is there a path to victory? I'm trying to install groovy arcade, groovy Mame, test ROMs on the monitor, then take this setup and put it into an arcade cabinet with (what I think is) a Wells Gardner 92000 CRT.
Trying to figure out what's best for running this setup. What's the best OS : Linux(Ubuntu), groovy arcade, or windows? What's the best emulator: Mame vs groovy Mame? What's the best front end software?
0 comments | Write Comment

xx I-PAC Ultimate I/O: Unintended Mode Swapping and Config Loss

December 30, 2025, 09:42:36 am by RowleyBirkinQC
I am running an I-PAC Ultimate I/O in a 4-player cabinet setup (50/50 MAME/Steam). I am struggling with two critical issues regarding mode persistence and stability:

Unintended Mode Swapping: While playing in X-Input mode (Mode 3), the board frequently drops back into Keyboard mode (Mode 1) at random. This occurs without holding the 10-second "Start+B1" shortcut.

Configuration Wipe: Whenever this unintended swap happens—or even when I manually swap back to Keyboard mode to make edits—my custom mappings are lost. The board appears to revert to a default/blank state, forcing me to reload my .ipc backup and "Write to Board" to restore functionality.

Programming Errors: I cannot "Write to Board" while in X-Input mode (getting "Failed to Configure" errors); I must be in Keyboard mode to save, but the settings aren't remaining persistent across mode changes.

Hardware/Testing Done:

Verified no stuck keys in Keyboard Checker.
Fixed a previously loose pin on the P3 harness (seated correctly now).
Using WinIPAC V2 for configuration.

Questions:
- What could trigger an unintended mode swap from X-input back to Keyboard during gameplay?
- Why are the Keyboard and X-Input mapping lost when this switch occurs?
- Is the above a well known issue, if so is there a fix or is this likely faulty hardware?
0 comments | Write Comment

xx Seeking Advice: Using a 12-inch LVDS LCD for Flight Simulators

December 17, 2025, 10:36:11 pm by Alan
Seeking Advice: Using a 12-inch LVDS LCD for Flight Simulators

Hi everyone,

I'm currently exploring options for building a flight simulator cockpit and came across a 12-inch 1200×1600 40-pin LVDS LCD module (https://www.aptusdisplay.com/products/12-inch-1200x1600-40pin-lvds-lcd-module) that seems interesting from a technical standpoint. It has high brightness and a wide operating temperature range, which I thought could be useful for both visibility and reliability in a simulator environment.

Before I commit to using it, I wanted to ask for advice from people who have experience with similar setups:

Do you think a 12-inch LVDS LCD would provide enough clarity and response for flight instruments?

Are there any integration challenges with LVDS panels in DIY or professional flight simulators?

How does the brightness and temperature tolerance of these modules actually impact usability in a cockpit setup?

I’d really appreciate any insights or experiences from members who have worked with LVDS LCDs in simulation projects or related applications. My goal is to balance visual clarity, responsiveness, and reliability, and I’m hoping your expertise can help me decide if this module is suitable.

Thanks in advance for your input!
1 comment | Write Comment

Menubar Function

Displays a menu bar, like one displayed at the top of the forum.

Code

Code: [Select]
<?php ssi_menubar(); ?>

Result

Quick Search Function

Code

Code: [Select]
<?php ssi_quickSearch(); ?>

Result

Recent Attachments Function

Code

Code: [Select]
<?php ssi_recentAttachments(); ?>

Result

Show Single Poll

Shows a poll in the specified topic.

Code

Code: [Select]
<?php ssi_showPoll($topicID); ?>

Result

Not shown because it needs specific topic ID that contains a poll.

Show Single Post

Fetches a post with a particular IDs. By default will only show if you have permission to the see the board in question. This can be overriden by passing the 2nd parameter as true.

Code

Code: [Select]
<?php ssi_fetchPosts($postIDs, $isOverride); ?>

Result

Not shown because it needs a specific post ID.

Show Single Member

Shows the specified member's name and profile link.

Code

Code: [Select]
<?php ssi_fetchMember($memberIDs); ?>

Result

Not shown because it needs a specific member ID.

Show Group Members

Shows all members in a specified group.

Code

Code: [Select]
<?php ssi_fetchGroupMembers($groupIDs); ?>

Result

Not shown because it needs specific membergroup IDs.

Home Page Sample

This sample uses the following features: ssi_recentTopics(), ssi_logOnline(), ssi_welcome(), and ssi_boardNews(). ssi_recentTopics() is fetched using the array method, to allow further customizations on the output.

Code

Code: [Select]
<?php require("SSI.php"); ?> <!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"> <head> <title>SSI.php example for home page</title> <style type="text/css"> body { font-family: Arial, Tahoma, sans-serif; font-size: 80%; background: #DFDFDF; color: #FFFFFF; margin: 0 } ul,ol { padding-left: 19px; margin: 0; } li { font-size: 11px; } h1,h2,h3 { margin: 0; padding: 0; } h3 { font-size: 15px; } a:link,a:visited { color: #FF9000; text-decoration: none; } a:hover { text-decoration: underline; } #container { background: #52514E; width: 100%; border: 1px solid midnightblue; line-height: 150%; margin: 0; } #header,#footer { color: lightgray; background-color: #2A2825; clear: both; padding: .5em; } #leftbar { background: #DF7E00; float: left; width: 160px; margin: 0; padding: 1em; } #leftbar a { color: #000000; text-decoration: underline; } #content { margin-left: 190px; padding: 1em; } #navigation { float: right; } #navigation a:link,#navigation a:visited { color: #FF9000; } </style> </head> <body> <div id="container"> <div id="header"> <div id="navigation"> <a href="#">Link</a> | <a href="#">Link</a> | <a href="#">Link</a> | <a href="#">Link</a> | <a href="#">Link</a> </div> <h1 class="header">YourWebsite.com</h1> </div> <div id="leftbar"> <h3>Recent Forum Topics</h3> <ul> <?php // Using array method to show shorter display style. $topics = ssi_recentTopics(8, null, null, 'array'); foreach ($topics as $topic) { // Uncomment the following code to get a listing of array elements that SMF provides for this function. // echo '<pre>', print_r($topic), '</pre>'; echo ' <li><a href=\"', $topic['href'], '\">', $topic['subject'], '</a> ', $txt['by'], ' ', $topics[$i]['poster']['link'], '</li>'; } unset($topics); ?> </ul><br /> <h3>Online Users</h3> <?php ssi_logOnline(); ?> </div> <div id="content"> <?php ssi_welcome(); ?><br /><br /> <h2>News</h2> <?php ssi_boardNews(); ?> </div> <div id="footer"> <a target="_blank" rel="license" href="http://creativecommons.org/licenses/publicdomain/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/publicdomain/88x31.png" /></a> This sample website layout is dedicated to the <a target="_blank" rel="license" href="http://creativecommons.org/licenses/publicdomain/">Public Domain</a>. </div> </div> </body> </html>

Result