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 48596 505042
Everything Else New 13303 250323
Project Announcements New 6558 198283
Software Forum New 16094 130114
Buy/Sell/Trade - non-retail New 17936 96753
Monitor/Video Forum New 12485 88782
Consoles New 4048 58101
Miscellaneous Arcade Talk New 4140 46872
Artwork New 5398 42277
GroovyMAME New 2945 37460

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 VPNbotMr, 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

segagen89
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

7574 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

7574 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: 56466
Total Posts: 1732476
Total Topics: 152663
Total Categories: 7
Total Boards: 47

News Function

Shows random forum news.

Code

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

Result

Support this site
Shop Amazon Video Games through our link. Thank you!


In 2027, BYOAC hits 30 years old. It started in 1997. It has cost saint somewhere between $25,000-$30,000 to host in its lifespan.

Board News Function

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

Code

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

Result

xx save states

April 23, 2026, 07:02:19 pm by spisi
So, just learned how to use the save state function. Loved it, went through both my stand-up and cocktail mame cabs and updated all my shortcuts to bypass those annoying startup screens that a lot of our favorite games have. Alas, there's always something..... The wife and I are playing Gyruss and out of nowhere she goes ballistic and puts up the high score.....she was so excited! Well, the excitement soon turned to disappointment when we re-launched to see if it actually saved.....it did not  :'(.  I was wondering why it didn't save, since the scoreboard had a bunch of our initials on it from previous battles  :o After some testing, I learned that starting the game with the "-savestate 1" prevents Gyruss from saving high scores...bummer!  My question is: Will this apply to all games??? Or do I have to check and see each one individually?
1 comment | Write Comment

clip Solenoid control ideas

April 11, 2026, 09:57:47 pm by Bulliesrevival
I am redoing my skeeball machine, I'm going to be removing the original controls and boards. I'm trying to see what ideas people have to control this solenoid for the ball release. I believe it runs on the full 110v's but with that part removed I'm trying to come up with
A) a way to run 110v to it and control it with a 5v system.
B) a way to release the balls using only 5v
C) some other method I'm not aware of yet

Sent from my Pixel 9 Pro XL using Tapatalk

5 comments | Write Comment

xx Need an Oscars Controls Mouse Board for my spinner

April 02, 2026, 12:06:52 am by Justin
Hi all.  Im hoping someone has an older leftover (not in use) Oscar Controls USB Mouse board to connect my Oscar Controls spinner to.   By board went bad.   Cant find these anymore.

3 comments | Write Comment

clip "Dragon Castle" game for USSR Arcade "Multitron" (1990-1991?)

March 09, 2026, 07:38:26 am by Ivan555
Hello everyone!
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 footthe blond guy with the headband, apparently wearing a white Russian shirt, blue striped pants, and red boots. He wields a swordfor close-quarters combat like chopping off Gorynych's headsand 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!
0 comments | Write Comment

xx I-Pac4 Help: Hybrid mode? Xinput+Keyboard

March 05, 2026, 09:13:54 pm by smileyhowler
Hey All!
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!
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

File Posted by Downloads Filesize
GreenAntz20_proto_PWR3.jpg Zebidee 77 179.1kB
GreenAntz20_proto_PWR2.jpg Zebidee 73 710kB
GreenAntz20_prototypes.jpg Zebidee 75 340.07kB
004.jpg Ond 134 613.78kB
005.jpg Ond 157 772.18kB
pinbot.jpg Ond 142 762.79kB
attack_from_mars.jpg Ond 154 713.82kB
sfa3logfullscreen.txt Sarda 11 28.29kB
IMG_20260424_092135.jpg danny_galaga 32 2282.87kB
20260413_100857.jpg Ond 234 628.6kB

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