SSI.php Functions

Current Version: 1.1

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 ask on the forum.

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

Recent Posts Function

Code

<?php ssi_recentPosts();

Result

Recent Poll Function

Code

<?php ssi_recentPoll();

Result

Top Boards Function

Shows top boards by the number of posts.

Code

<?php ssi_topBoards();

Result

Board Topics Posts
New Exterminated Bugs 760 5,990
New Support 589 4,909
New Feature Discussion 557 4,702
New General ElkArte discussions 297 3,298
New Chit Chat 343 3,192
New Addons 144 2,907
New Exterminated Features 182 1,917
New Theme development 209 1,833
New Site Feedback 114 1,438
New Bug Reports 148 1,232

Top Topics

Shows top topics by the number of replies or views.

Code (show by number of views)

<?php ssi_topTopicsViews();

Result

Code (show by number of replies)

<?php ssi_topTopicsReplies();

Result

Top Poll Function

Shows the most-voted-in poll.

Code

<?php ssi_topPoll();

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

Please welcome ian, our newest member.

Member of the Day

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

Code

<?php ssi_randomMember('day');

Result

Who's Online Function

This function shows who are online inside the forum.

Code

<?php ssi_whosOnline();

Result

63 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

<?php ssi_logOnline();

Result

63 Guests, 0 Users

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

Welcome to ElkArte Community. Please login or register.

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

Recent Calendar Events Function

Code

<?php ssi_recentEvents();

Result

Forum Stats

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

Code

<?php ssi_boardStats();

Result

Total Members: 711
Total Posts: 38,163
Total Topics: 3,904
Total Categories: 5
Total Boards: 32

News Function

Shows random forum news.

Code

<?php ssi_news();

Result

ElkArte 1.1.6 Security and Bug fix patch has been released!
Read more about it here and get your copy Here

Board News Function

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

Code

<?php ssi_boardNews();

Result

xx Attachment hashing

August 22, 2019, 10:49:20 pm by ian
The attachments are currently stored as attach_id-hash.elk Is there a reason for that? My guess is security through obscurity? In my recent sites we follow the laravel model of having a /public/ folder for accessible stuff and everything else is in the directory above. Our sites are all in git and we just use Apache virtual directory to point at where ever the public folder of the repo is on the server. It's pretty sweet. Then only public is exposed and we keep all kinds of development and testing resources in the non accessible upper folder.

So for example attachments would be one directory above public and out of the web root. The script reads them out and dumps to browser. Then instead of all the silly hashing we just use base
4 comments | Write Comment

xx Inline Images

July 28, 2019, 04:31:20 pm by markholley
Good day,

I downloaded and installed ElkArte yesterday and I'm in love with it - so easy to configure and to extend. If any developers or contributors are reading this, I appreciate your work.

On my favorite forum which is a Discourse-type forum I think, there's the option to just drag a JPG from your PC into your post text-box and have that upload somewhere and show automatically when you hit the "Post" button. Is something like this available for ElkArte? I'm using the image tags for inline images, but that means that I have to upload images to whatever host I want to use and then go to the URL and copy it, (even if it's just to make sure I'm getting all the percent 20s for spaces in ther
4 comments | Write Comment

xx Mass email ban

July 19, 2019, 01:44:15 am by kode54
Is there some extension where I can mass add a list of domains to the banned email hosts list? I found a nice gist of disposable email providers, and people who use those typically don't return after they've either spammed the forum or made a drive by post with no intention of checking back for replies. I want to ban the whole lot in one go, instead of sitting there adding thousands of domains manually.
1 comment | Write Comment

xx Tracking an external ban list

May 29, 2019, 03:50:13 am by kode54
I have found this seemingly useful list of throwaway email services, and I want to add them to a mass ban advising users to use a permanent email address, and keep up with future additions to the list.

https://github.com/wesbos/burner-email-providers/blob/master/emails.txt
3 comments | Write Comment

xx Calendar for different languages (countries) ?

April 20, 2019, 07:41:06 pm by mgrde
I miss the possibility to add German holidays in the calendar which are useless for other countries:

Easter, Pentecoast and Christmas have two holidays, the Reunion day (Oct. 3rd) has probably the same meaning for US citizens like the independence day for me: nice to know :)

Making an addon with a additional selector in the database doesn't seem very difficult. Only the overview where it has to be used...
4 comments | Write Comment

Menubar Function

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

Code

<?php ssi_menubar();

Result

Quick Search Function

Code

<?php ssi_quickSearch();

Result

Show Single Poll

Shows a poll in the specified topic.

Code

<?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

<?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

<?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

<?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

<?php require("SSI.php"); ?>
<!DOCTYPE html>
<html>
<head>
	<title>SSI.php example for home page</title>
	<style>
		html {
			width: 99%;
		}
		body {
			font: 87.5%/150% "Segoe UI", -apple-system, BlinkMacSystemFont, "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Droid Sans", "Helvetica Neue", "Trebuchet MS", Arial, sans-serif;
			background: #DFDFDF;
			color: #FFFFFF;
			margin: 0;
		}
		ul, ol {
			padding-left: 1.25em;
			margin: 0;
		}
		li {
			font-size: 1em;
		}
		h1, h2, h3 {
			margin: 0;
			padding: 0;
		}
		h3 {
			font-size: 1em;
		}
		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: #2A2825;
			clear: both;
			padding: .5em;
		}
		#leftbar {
			background: #DF7E00;
			float: left;
			width: 160px;
			margin: 0;
			padding: 1em;
		}
		#leftbar a {
			color: #000;
			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 the system 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: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