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:
<?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)
<?php ssi_recentTopics(); ?>
Code (advanced mode)
<?php ssi_recentTopics($num_recent = 8, $exclude_boards = null, $include_boards = null, $output_method = 'echo'); ?>
Result
| [Monitor/Video Forum] | PC to CRT by spisi | Today at 09:27:28 am |
| [Woodworking] | Need Advice: Reinforcing Particle Board Control Panel for Joystick by MartyKong | Yesterday at 11:52:11 am |
| [Monitor/Video Forum] | Recapping a Billabs BL27CB0P by the_77x42 | Yesterday at 04:06:28 am |
| [Everything Else] | Banned Troll Trivia from 10years ago…who has the answer? by BadMouth | March 18, 2026, 08:00:19 am |
| [Monitor/Video Forum] | GreenAntz RGB to component transcoder by Austin_MVP | March 18, 2026, 01:08:48 am |
| [Project Announcements] | Capcom Mini-er Cute-r Countercade! by mikejkelley | March 17, 2026, 03:07:17 pm |
| [Raspberry Pi & Dev Board] | RPi Pico as a keyboard emulator. (Update) by DaOld Man | March 16, 2026, 04:43:21 pm |
| [Everything Else] | So I've been building an ultralight by Zebidee | March 16, 2026, 04:10:18 am |
Recent Posts Function
Code
<?php ssi_recentPosts(); ?>
Result
| [Monitor/Video Forum] | Re: PC to CRT by spisi | Today at 09:27:28 am |
| [Woodworking] | Re: Need Advice: Reinforcing Particle Board Control Panel for Joystick by MartyKong | Yesterday at 11:52:11 am |
| [Monitor/Video Forum] | Re: PC to CRT by spisi | Yesterday at 09:52:14 am |
| [Monitor/Video Forum] | Re: PC to CRT by buttersoft | Yesterday at 05:50:59 am |
| [Monitor/Video Forum] | Re: Recapping a Billabs BL27CB0P by the_77x42 | Yesterday at 04:06:28 am |
| [Monitor/Video Forum] | Re: PC to CRT by WallaceFLM | March 18, 2026, 11:08:17 am |
| [Monitor/Video Forum] | Re: PC to CRT by spisi | March 18, 2026, 08:59:00 am |
| [Everything Else] | Re: Banned Troll Trivia from 10years ago…who has the answer? by BadMouth | March 18, 2026, 08:00:19 am |
Top Boards Function
Shows top boards by the number of posts.
Code
<?php ssi_topBoards(); ?>
Result
| Board | Topics | Posts |
|---|---|---|
Main Forum ![]() |
48593 | 505012 |
Everything Else ![]() |
13303 | 250309 |
Project Announcements ![]() |
6555 | 198231 |
Software Forum ![]() |
16088 | 130096 |
Buy/Sell/Trade - non-retail ![]() |
17933 | 96747 |
Monitor/Video Forum ![]() |
12485 | 88776 |
Consoles ![]() |
4048 | 58100 |
Miscellaneous Arcade Talk ![]() |
4137 | 46867 |
Artwork ![]() |
5398 | 42275 |
GroovyMAME ![]() |
2940 | 37417 |
Top Topics
Shows top topics by the number of replies or views.
Code (show by number of views)
<?php ssi_topTopicsViews(); ?>
Result
| Views | Replies | |
|---|---|---|
| DemulShooter (Dual light gun on DEMUL, Model2, Dolphin, Silent Hill, etc...) | 2003044 | 3659 |
| Soft-15KHz - slim new tool for 15KHz on normal vga cards | 1178547 | 2420 |
| LEDBlinky - Arcade LED Control software and Animation Editor - v8.2 | 1167773 | 2093 |
| CNC Cut Bartop Kits - Orders Open! New Models Available! | 1062529 | 2633 |
| Control Panel Database: Post a picture of your Control Panel! | 1018069 | 1042 |
| PGA Tour Golf by Global VR & EA Sports Owners Thread | 978753 | 2775 |
| hiscore diff (with no nag/white box removal) | 962636 | 1245 |
| GUN4IR - The Ultimate 4 Points Lightgun System | 839116 | 1130 |
| Mission Control Project: 5 years on, what to do with the leftovers? | 836643 | 1809 |
| Switchres: modeline generator engine | 797444 | 1297 |
Code (show by number of replies)
<?php ssi_topTopicsReplies(); ?>
Result
Top Poster Function
Shows the top poster's name and profile link.Code
<?php ssi_topPoster(); ?>
Result
Latest Member Function
Shows the latest member's name and profile link.
Code
<?php ssi_latestMember(); ?>
Result
Member of the Day
Shows one random member of the day. This changes once a day.
Code
<?php ssi_randomMember('day'); ?>
Result
|
Deathgaze
Candy cab lover |
Who's Online Function
This function shows who are online inside the forum.
Code
<?php ssi_whosOnline(); ?>
Result
atix
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
<?php ssi_logOnline(); ?>
Result
atix
Login Function
Shows a login box only when user is not logged in.
Code
<?php ssi_login(); ?>
Result
Logout Function
Shows a logout link only when user is logged in.
Code
<?php ssi_logout(); ?>
Result
Welcome Function
Greets users or guests, also shows user's messages if logged in.
Code
<?php ssi_welcome(); ?>
Result
Today's Calendar Function
Code
<?php ssi_todaysCalendar(); ?>
Result
Today's Birthdays Function
Code
<?php ssi_todaysBirthdays(); ?>
Result
Today's Holidays Function
Code
<?php ssi_todaysHolidays(); ?>
Result
Today's Events Function
Code
<?php ssi_todaysEvents(); ?>
Result
Forum Stats
Shows some basic forum stats: total members, posts, topics, boards, etc.
Code
<?php ssi_boardStats(); ?>
Result
News Function
Shows random forum news.
Code
<?php ssi_news(); ?>
Result
Shop Amazon Arcade Stuff through our link. Thank you!

SSL certificate renewed today. Let me know if you see anything wonky with SSL access.
Board News Function
Shows the latest posts from read only boards, or a specific board.
Code
<?php ssi_boardNews(); ?>
Result
"Dragon Castle" game for USSR Arcade "Multitron" (1990-1991?)
I'm new to the forum and need expert help.
I've been searching for the "Dragon Castle" game for the Soviet Multitron arcade machine for five years now.
This machine was manufactured by the Vilnius Calculating Machine Plant in 1990-1991. It was a late modification of the Soviet TIA-MC machine, but featured a single board, interchangeable ROM cartridges (like the NEO-GEO), and reduced sound. This machine also featured the already discovered "SOS" and "Fisherman Cat." There was also a game called "Dragon Castle," about which nothing is known.
The Multitron had a smooth, light green case.
The only visual confirmation is an interview with the machine's creator, Mikhail Safyan, and a magazine clipping. https://anatomyofarcades.tilda.ws/michail_safian
https://static.tildacdn.com/tild6438-3338-4631-b866-346265636637/04.jpg
On the left side with the houses is "Fisherman Cat," on the right screen of the machine is the sought-after game "Dragon Castle" (with trees, a forest, and a little man).
I'll also attach descriptions of the gameplay of "Dragon Castle" from eyewitnesses.
"Dragon Island is similar to The Little Humpbacked Horse, also a sidescroller with Pitfall-style missions, but we control Ivan on foot—the blond guy with the headband, apparently wearing a white Russian shirt, blue striped pants, and red boots. He wields a sword—for close-quarters combat like chopping off Gorynych's heads—and a bow. The long one knocks down birds and spiders, and has a jump and crouch. First, he walks through the forest. On the second screen, pine cones fall on him, birds drop apples, and spiders cast snowflakes. He reaches a cliff from which he must jump into a boat. He rows to an island, and along the way, other things rain down on him. On the island, he approaches a castle. A spider with a cross sits on the gate and casts snowflakes. He must shoot it down with his arrow in time. He passes through a castle with enemies, and at the end, the Dragon Gorynych spits fire at him across the screen like Bowser, and behind him stands the princess. He must jump over the fire and crouch, and upon reaching the Dragon, slash it with his sword.
Professional help is desperately needed!
I-Pac4 Help: Hybrid mode? Xinput+Keyboard
I'm working on my first build; mostly done but working on making it as user friendly as possible. I have 4 player pedestal: P1/2 have 7 buttons & P3/4 have 6 buttons. I have 4 'admin' buttons. I'm using an I-pac4 on Firmware 1.56 and have been switching between Mode 1 (keyboard) and Mode 3 (Xinput) and seeing what works best for our setup. I'm a big fan of Mode 3 because this allows for not only arcade emulation but also playing some arcade style windows programs; think Cuphead and TMNT Shredder's Revenge. I've been scouring the interwebs trying to find an answer on how to accomplish this. I've heard (remember it's the internet) that it is possible to use the I-pac4 in xinput mode but still have some buttons mapped to keyboard buttons. The 4 admin buttons are wired to P3/4 buttons 7 and 8. I've found workarounds through scripts in Launch/BigBox but it does not hold up for every emulator and/or game. Would love to have these 4 buttons mapped to Esc, P, F1, etc.
Is this possible or am I dreaming?
I'm trying to stay away from x360ce and keyboard2xinput; trying to keep it simple and I've run into issues trying those out. If this is not possible with the I-pac4 I'm certainly open to other suggestions.
Appreciate any insight!
ideal depth of control panel?
I love the bartop I just finished but am wishing the control panel was deeper so my forearms would rest more comfortably while playing.
A related question might be ideal slope angle as well, just generally how to make it more ergonomic for the player.
I've searched the forum and found a lot of opinions on button placement and joystick angles, etc but not a ton about the panel depth itself.
Thoughts? Thanks!
Daisy chaining joysticks?
Asteroids 6 bullet hack
Recent Attachments Function
Code
<?php ssi_recentAttachments(); ?>
Result
| File | Posted by | Downloads | Filesize |
|---|---|---|---|
| WallaceFLM | 24 | 119.02kB | |
| WallaceFLM | 24 | 97.56kB | |
| WallaceFLM | 26 | 106.47kB | |
| Ivan555 | 58 | 821.84kB | |
| Razmann4k | 283 | 2338.49kB | |
| Razmann4k | 267 | 2482.59kB | |
| Razmann4k | 282 | 2259.84kB | |
| Razmann4k | 288 | 2407.29kB | |
| Deathblow81 | 237 | 3685.02kB | |
| Roboman | 94 | 167.14kB |
Show Single Poll
Shows a poll in the specified topic.
Code
<?php ssi_showPoll($topicID); ?>
Result
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
<?php ssi_fetchPosts($postIDs, $isOverride); ?>
Result
Show Single Member
Shows the specified member's name and profile link.
Code
<?php ssi_fetchMember($memberIDs); ?>
Result
Show Group Members
Shows all members in a specified group.
Code
<?php ssi_fetchGroupMembers($groupIDs); ?>
Result
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
<?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>

Home
Help
Search
Login
Register