annotate forum/ssi_examples.php @ 76:e3e11437ecea website

Add forum code
author Chris Cannam
date Sun, 07 Jul 2013 11:25:48 +0200
parents
children
rev   line source
Chris@76 1 <?php
Chris@76 2
Chris@76 3 /**
Chris@76 4 * Simple Machines Forum (SMF)
Chris@76 5 *
Chris@76 6 * @package SMF
Chris@76 7 * @author Simple Machines http://www.simplemachines.org
Chris@76 8 * @copyright 2011 Simple Machines
Chris@76 9 * @license http://www.simplemachines.org/about/smf/license.php BSD
Chris@76 10 *
Chris@76 11 * @version 2.0
Chris@76 12 */
Chris@76 13
Chris@76 14 // Special thanks to Spaceman-Spiff for his contributions to this page.
Chris@76 15
Chris@76 16 /* Define $ssi_guest_access variable just before including SSI.php to handle guest access to your script.
Chris@76 17 false: (default) fallback to forum setting
Chris@76 18 true: allow guest access to the script regardless
Chris@76 19 */
Chris@76 20 $ssi_guest_access = false;
Chris@76 21
Chris@76 22 // Include the SSI file.
Chris@76 23 require(dirname(__FILE__) . '/SSI.php');
Chris@76 24
Chris@76 25 // Viewing the homepage sample?
Chris@76 26 if (isset($_GET['view']) && $_GET['view'] == 'home1')
Chris@76 27 {
Chris@76 28 template_homepage_sample1('output');
Chris@76 29 exit;
Chris@76 30 }
Chris@76 31
Chris@76 32 // Load the main template.
Chris@76 33 template_ssi_above();
Chris@76 34 ?>
Chris@76 35
Chris@76 36 <h2>SMF SSI.php Functions</h2>
Chris@76 37 <p><strong>Current Version:</strong> 2.0</p>
Chris@76 38 <p>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.</p>
Chris@76 39
Chris@76 40 <h2>Include Code</h2>
Chris@76 41 <p>To use SSI.php in your page add at the very top of your page before the &lt;html&gt; tag on line 1 of your php file:</p>
Chris@76 42 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php require(&quot;<?php echo addslashes($user_info['is_admin'] ? realpath($boarddir . '/SSI.php') : 'SSI.php'); ?>&quot;); ?&gt;</code>
Chris@76 43
Chris@76 44 <h2>Some notes on usage</h2>
Chris@76 45 <p>All the functions have an output method parameter. This can either be &quot;echo&quot; (the default) or &quot;array&quot;</p>
Chris@76 46 <p>If it is &quot;echo&quot;, 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.</p>
Chris@76 47 <p onclick="if (getInnerHTML(this).indexOf('Bird') == -1) setInnerHTML(this, getInnerHTML(this) + '<br /><img src=&quot;http://www.simplemachines.org/images/chocobo.jpg&quot; title=&quot;Bird-san&quot; alt=&quot;Chocobo!&quot; />'); return false;">This functionality can be used to allow you to present the information in any way you wish.</p>
Chris@76 48
Chris@76 49 <h2>Additional Guides &amp; FAQ</h2>
Chris@76 50 <p>Need more information on using SSI.php? Check out <a href="http://docs.simplemachines.org/index.php?topic=400.0">Using SSI.php article</a> or <a href="http://www.simplemachines.org/community/index.php?topic=14906.0">the SSI FAQ</a>.</p>
Chris@76 51
Chris@76 52 <div id="sidenav" class="windowbg">
Chris@76 53 <span class="topslice"><span></span></span>
Chris@76 54 <div class="content">
Chris@76 55 <h2 id="functionlist">Function List</h2>
Chris@76 56 <h3>Recent Items</h3>
Chris@76 57 <ul>
Chris@76 58 <li><a href="#" onclick="showSSIBlock('ssi_recentTopics'); return false;">Recent Topics</a></li>
Chris@76 59 <li><a href="#" onclick="showSSIBlock('ssi_recentPosts'); return false;">Recent Posts</a></li>
Chris@76 60 <li><a href="#" onclick="showSSIBlock('ssi_recentPoll'); return false;">Recent Poll</a></li>
Chris@76 61 </ul>
Chris@76 62 <h3>Top Items</h3>
Chris@76 63 <ul>
Chris@76 64 <li><a href="#" onclick="showSSIBlock('ssi_topBoards'); return false;">Top Boards</a></li>
Chris@76 65 <li><a href="#" onclick="showSSIBlock('ssi_topTopicsViews'); return false;">Top Topics</a></li>
Chris@76 66 <li><a href="#" onclick="showSSIBlock('ssi_topPoll'); return false;">Top Poll</a></li>
Chris@76 67 <li><a href="#" onclick="showSSIBlock('ssi_topPoster'); return false;">Top Poster</a></li>
Chris@76 68 </ul>
Chris@76 69 <h3>Members</h3>
Chris@76 70 <ul>
Chris@76 71 <li><a href="#" onclick="showSSIBlock('ssi_latestMember'); return false;">Latest Member Function</a></li>
Chris@76 72 <li><a href="#" onclick="showSSIBlock('ssi_randomMember'); return false;">Member of the Day</a></li>
Chris@76 73 <li><a href="#" onclick="showSSIBlock('ssi_whosOnline'); return false;">Who's Online</a></li>
Chris@76 74 </ul>
Chris@76 75 <h3>Authentication</h3>
Chris@76 76 <ul>
Chris@76 77 <li><a href="#" onclick="showSSIBlock('ssi_login'); return false;">Welcome, Login &amp; Logout</a></li>
Chris@76 78 </ul>
Chris@76 79 <h3>Calendar</h3>
Chris@76 80 <ul>
Chris@76 81 <li><a href="#" onclick="showSSIBlock('ssi_todaysCalendar'); return false;">Today's Events</a></li>
Chris@76 82 <li><a href="#" onclick="showSSIBlock('ssi_recentEvents'); return false;">Recent Events</a></li>
Chris@76 83 </ul>
Chris@76 84 <h3>Miscellaneous</h3>
Chris@76 85 <ul>
Chris@76 86 <li><a href="#" onclick="showSSIBlock('ssi_boardStats'); return false;">Forum Stats</a></li>
Chris@76 87 <li><a href="#" onclick="showSSIBlock('ssi_news'); return false;">News</a></li>
Chris@76 88 <li><a href="#" onclick="showSSIBlock('ssi_boardNews'); return false;">Board News</a></li>
Chris@76 89 <li><a href="#" onclick="showSSIBlock('ssi_menubar'); return false;">Menubar</a></li>
Chris@76 90 <li><a href="#" onclick="showSSIBlock('ssi_quickSearch'); return false;">Quick Search Box</a></li>
Chris@76 91 <li><a href="#" onclick="showSSIBlock('ssi_recentAttachments'); return false;">Recent Attachments</a></li>
Chris@76 92 </ul>
Chris@76 93 <?php if ($user_info['is_admin']) { ?>
Chris@76 94 <h3>Advanced Functions <img class="help" title="Functions that require additional tweaking, not just copy and paste." src="<?php echo $settings['images_url']; ?>/helptopics.gif" alt="" /></h3>
Chris@76 95 <ul>
Chris@76 96 <li><a href="#" onclick="showSSIBlock('ssi_showPoll'); return false;">Show Single Poll</a></li>
Chris@76 97 <li><a href="#" onclick="showSSIBlock('ssi_fetchPosts'); return false;">Show Single Post</a></li>
Chris@76 98 <li><a href="#" onclick="showSSIBlock('ssi_fetchMember'); return false;">Show Single Member</a></li>
Chris@76 99 <li><a href="#" onclick="showSSIBlock('ssi_fetchGroupMembers'); return false;">Show Group Members</a></li>
Chris@76 100 </ul>
Chris@76 101 <?php } ?>
Chris@76 102 <h3>Website Samples</h3>
Chris@76 103 <ul>
Chris@76 104 <li><a href="#" onclick="showSSIBlock('htmlhome')">Sample 1</a></li>
Chris@76 105 </ul>
Chris@76 106 <h2 id="other">Other</h2>
Chris@76 107 <ul>
Chris@76 108 <li><a href="#" onclick="toggleVisibleByClass('ssi_preview', false); return false;">Show all examples</a></li>
Chris@76 109 <li><a href="#" onclick="toggleVisibleByClass('ssi_preview', true); return false;">Hide all examples</a></li>
Chris@76 110 </ul>
Chris@76 111 </div>
Chris@76 112 <span class="botslice"><span></span></span>
Chris@76 113 </div>
Chris@76 114
Chris@76 115 <div id="preview" class="windowbg2">
Chris@76 116 <span class="topslice"><span></span></span>
Chris@76 117 <div class="content">
Chris@76 118
Chris@76 119 <!-- RECENT ITEMS -->
Chris@76 120 <div class="ssi_preview" id="ssi_recentTopics">
Chris@76 121 <h2>Recent Topics Function</h2>
Chris@76 122 <h3>Code (simple mode)</h3>
Chris@76 123 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_recentTopics(); ?&gt;</code>
Chris@76 124 <h3>Code (advanced mode)</h3>
Chris@76 125 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_recentTopics($num_recent = 8, $exclude_boards = null, $include_boards = null, $output_method = 'echo'); ?&gt;</code>
Chris@76 126 <h3>Result</h3>
Chris@76 127 <div class="ssi_result"><?php ssi_recentTopics(); flush(); ?></div>
Chris@76 128 </div>
Chris@76 129
Chris@76 130 <div class="ssi_preview" id="ssi_recentPosts">
Chris@76 131 <h2>Recent Posts Function</h2>
Chris@76 132 <h3>Code</h3>
Chris@76 133 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_recentPosts(); ?&gt;</code>
Chris@76 134 <h3>Result</h3>
Chris@76 135 <div class="ssi_result"><?php ssi_recentPosts(); flush(); ?></div>
Chris@76 136 </div>
Chris@76 137
Chris@76 138 <div class="ssi_preview" id="ssi_recentPoll">
Chris@76 139 <h2>Recent Poll Function</h2>
Chris@76 140 <h3>Code</h3>
Chris@76 141 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_recentPoll(); ?&gt;</code>
Chris@76 142 <h3>Result</h3>
Chris@76 143 <div class="ssi_result"><?php ssi_recentPoll(); flush(); ?></div>
Chris@76 144 </div>
Chris@76 145
Chris@76 146 <!-- TOP ITEMS -->
Chris@76 147 <div class="ssi_preview" id="ssi_topBoards">
Chris@76 148 <h2>Top Boards Function</h2>
Chris@76 149 <p>Shows top boards by the number of posts.</p>
Chris@76 150
Chris@76 151 <h3>Code</h3>
Chris@76 152 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_topBoards(); ?&gt;</code>
Chris@76 153 <h3>Result</h3>
Chris@76 154 <div class="ssi_result"><?php ssi_topBoards(); flush(); ?></div>
Chris@76 155 </div>
Chris@76 156
Chris@76 157 <div class="ssi_preview" id="ssi_topTopicsViews">
Chris@76 158 <h2>Top Topics</h2>
Chris@76 159 <p>Shows top topics by the number of replies or views.</p>
Chris@76 160
Chris@76 161 <h3>Code (show by number of views)</h3>
Chris@76 162 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_topTopicsViews(); ?&gt;</code>
Chris@76 163 <h3>Result</h3>
Chris@76 164 <div class="ssi_result"><?php ssi_topTopicsViews(); flush(); ?></div>
Chris@76 165
Chris@76 166 <h3>Code (show by number of replies)</h3>
Chris@76 167 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_topTopicsReplies(); ?&gt;</code>
Chris@76 168 <h3>Result</h3>
Chris@76 169 <div class="ssi_result"><?php ssi_topTopicsReplies(); flush(); ?></div>
Chris@76 170 </div>
Chris@76 171
Chris@76 172 <div class="ssi_preview" id="ssi_topPoll">
Chris@76 173 <h2>Top Poll Function</h2>
Chris@76 174 <p>Shows the most-voted-in poll.</p>
Chris@76 175
Chris@76 176 <h3>Code</h3>
Chris@76 177 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_topPoll(); ?&gt;</code>
Chris@76 178 <h3>Result</h3>
Chris@76 179 <div class="ssi_result"><?php ssi_topPoll(); flush(); ?></div>
Chris@76 180 </div>
Chris@76 181
Chris@76 182 <div class="ssi_preview" id="ssi_topPoster">
Chris@76 183 <h2>Top Poster Function</h2>
Chris@76 184 Shows the top poster's name and profile link.
Chris@76 185
Chris@76 186 <h3>Code</h3>
Chris@76 187 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_topPoster(); ?&gt;</code>
Chris@76 188 <h3>Result</h3>
Chris@76 189 <div class="ssi_result"><?php ssi_topPoster(); flush(); ?></div>
Chris@76 190 </div>
Chris@76 191
Chris@76 192 <!-- MEMBERS -->
Chris@76 193 <div class="ssi_preview" id="ssi_latestMember">
Chris@76 194 <h2>Latest Member Function</h2>
Chris@76 195 <p>Shows the latest member's name and profile link.</p>
Chris@76 196
Chris@76 197 <h3>Code</h3>
Chris@76 198 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_latestMember(); ?&gt;</code>
Chris@76 199 <h3>Result</h3>
Chris@76 200 <div class="ssi_result"><?php ssi_latestMember(); flush(); ?></div>
Chris@76 201 </div>
Chris@76 202
Chris@76 203 <div class="ssi_preview" id="ssi_randomMember">
Chris@76 204 <h2>Member of the Day</h2>
Chris@76 205 <p>Shows one random member of the day. This changes once a day.</p>
Chris@76 206
Chris@76 207 <h3>Code</h3>
Chris@76 208 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_randomMember('day'); ?&gt;</code>
Chris@76 209 <h3>Result</h3>
Chris@76 210 <div class="ssi_result"><?php ssi_randomMember('day'); flush(); ?></div>
Chris@76 211 </div>
Chris@76 212
Chris@76 213 <div class="ssi_preview" id="ssi_whosOnline">
Chris@76 214 <h2>Who's Online Function</h2>
Chris@76 215 <p>This function shows who are online inside the forum.</p>
Chris@76 216
Chris@76 217 <h3>Code</h3>
Chris@76 218 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_whosOnline(); ?&gt;</code>
Chris@76 219 <h3>Result</h3>
Chris@76 220 <div class="ssi_result"><?php ssi_whosOnline(); flush(); ?></div>
Chris@76 221
Chris@76 222 <h2>Log Online Presence</h2>
Chris@76 223 <p>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.</p>
Chris@76 224
Chris@76 225 <h3>Code</h3>
Chris@76 226 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_logOnline(); ?&gt;</code>
Chris@76 227 <h3>Result</h3>
Chris@76 228 <div class="ssi_result"><?php ssi_logOnline(); flush(); ?></div>
Chris@76 229 </div>
Chris@76 230
Chris@76 231 <!-- WELCOME, LOGIN AND LOGOUT -->
Chris@76 232 <div class="ssi_preview" id="ssi_login">
Chris@76 233 <h2>Login Function</h2>
Chris@76 234 <p>Shows a login box only when user is not logged in.</p>
Chris@76 235
Chris@76 236 <h3>Code</h3>
Chris@76 237 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_login(); ?&gt;</code>
Chris@76 238 <h3>Result</h3>
Chris@76 239 <div class="ssi_result"><?php ssi_login(); flush(); ?></div>
Chris@76 240
Chris@76 241 <h2>Logout Function</h2>
Chris@76 242 <p>Shows a logout link only when user is logged in.</p>
Chris@76 243
Chris@76 244 <h3>Code</h3>
Chris@76 245 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_logout(); ?&gt;</code>
Chris@76 246 <h3>Result</h3>
Chris@76 247 <div class="ssi_result"><?php ssi_logout(); flush(); ?></div>
Chris@76 248
Chris@76 249 <h2>Welcome Function</h2>
Chris@76 250 <p>Greets users or guests, also shows user's messages if logged in.</p>
Chris@76 251
Chris@76 252 <h3>Code</h3>
Chris@76 253 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_welcome(); ?&gt;</code>
Chris@76 254 <h3>Result</h3>
Chris@76 255 <div class="ssi_result"><?php ssi_welcome(); flush(); ?></div>
Chris@76 256 </div>
Chris@76 257
Chris@76 258 <!-- CALENDAR -->
Chris@76 259 <div class="ssi_preview" id="ssi_todaysCalendar">
Chris@76 260 <h2>Today's Calendar Function</h2>
Chris@76 261 <h3>Code</h3>
Chris@76 262 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_todaysCalendar(); ?&gt;</code>
Chris@76 263 <h3>Result</h3>
Chris@76 264 <div class="ssi_result"><?php ssi_todaysCalendar(); flush(); ?></div>
Chris@76 265
Chris@76 266 <h2>Today's Birthdays Function</h2>
Chris@76 267 <h3>Code</h3>
Chris@76 268 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_todaysBirthdays(); ?&gt;</code>
Chris@76 269 <h3>Result</h3>
Chris@76 270 <div class="ssi_result"><?php ssi_todaysBirthdays(); flush(); ?></div>
Chris@76 271
Chris@76 272 <h2>Today's Holidays Function</h2>
Chris@76 273 <h3>Code</h3>
Chris@76 274 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_todaysHolidays(); ?&gt;</code>
Chris@76 275 <h3>Result</h3>
Chris@76 276 <div class="ssi_result"><?php ssi_todaysHolidays(); flush(); ?></div>
Chris@76 277
Chris@76 278 <h2>Today's Events Function</h2>
Chris@76 279 <h3>Code</h3>
Chris@76 280 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_todaysEvents(); ?&gt;</code>
Chris@76 281 <h3>Result</h3>
Chris@76 282 <div class="ssi_result"><?php ssi_todaysEvents(); flush(); ?></div>
Chris@76 283 </div>
Chris@76 284
Chris@76 285 <div class="ssi_preview" id="ssi_recentEvents">
Chris@76 286 <h2>Recent Calendar Events Function</h2>
Chris@76 287
Chris@76 288 <h3>Code</h3>
Chris@76 289 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_recentEvents(); ?&gt;</code>
Chris@76 290 <h3>Result</h3>
Chris@76 291 <div class="ssi_result"><?php ssi_recentEvents(); flush(); ?></div>
Chris@76 292 </div>
Chris@76 293
Chris@76 294 <!-- MISCELLANEOUS -->
Chris@76 295 <div class="ssi_preview" id="ssi_boardStats">
Chris@76 296 <h2>Forum Stats</h2>
Chris@76 297 <p>Shows some basic forum stats: total members, posts, topics, boards, etc.</p>
Chris@76 298
Chris@76 299 <h3>Code</h3>
Chris@76 300 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_boardStats(); ?&gt;</code>
Chris@76 301 <h3>Result</h3>
Chris@76 302 <div class="ssi_result"><?php ssi_boardStats(); flush(); ?></div>
Chris@76 303 </div>
Chris@76 304
Chris@76 305 <div class="ssi_preview" id="ssi_news">
Chris@76 306 <h2>News Function</h2>
Chris@76 307 <p>Shows random forum news.</p>
Chris@76 308
Chris@76 309 <h3>Code</h3>
Chris@76 310 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_news(); ?&gt;</code>
Chris@76 311 <h3>Result</h3>
Chris@76 312 <div class="ssi_result"><?php ssi_news(); flush(); ?></div>
Chris@76 313 </div>
Chris@76 314
Chris@76 315 <div class="ssi_preview" id="ssi_boardNews">
Chris@76 316 <h2>Board News Function</h2>
Chris@76 317 <p>Shows the latest posts from read only boards, or a specific board.</p>
Chris@76 318
Chris@76 319 <h3>Code</h3>
Chris@76 320 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_boardNews(); ?&gt;</code>
Chris@76 321 <h3>Result</h3>
Chris@76 322 <div class="ssi_result"><?php ssi_boardNews(); flush(); ?></div>
Chris@76 323 </div>
Chris@76 324
Chris@76 325 <div class="ssi_preview" id="ssi_menubar">
Chris@76 326 <h2>Menubar Function</h2>
Chris@76 327 <p>Displays a menu bar, like one displayed at the top of the forum.</p>
Chris@76 328
Chris@76 329 <h3>Code</h3>
Chris@76 330 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_menubar(); ?&gt;</code>
Chris@76 331 <h3>Result</h3>
Chris@76 332 <div class="ssi_result"><?php ssi_menubar(); flush(); ?></div>
Chris@76 333 </div>
Chris@76 334
Chris@76 335 <div class="ssi_preview" id="ssi_quickSearch">
Chris@76 336 <h2>Quick Search Function</h2>
Chris@76 337
Chris@76 338 <h3>Code</h3>
Chris@76 339 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_quickSearch(); ?&gt;</code>
Chris@76 340 <h3>Result</h3>
Chris@76 341 <div class="ssi_result"><?php ssi_quickSearch(); flush(); ?></div>
Chris@76 342 </div>
Chris@76 343
Chris@76 344 <div class="ssi_preview" id="ssi_recentAttachments">
Chris@76 345 <h2>Recent Attachments Function</h2>
Chris@76 346
Chris@76 347 <h3>Code</h3>
Chris@76 348 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_recentAttachments(); ?&gt;</code>
Chris@76 349 <h3>Result</h3>
Chris@76 350 <div class="ssi_result"><?php ssi_recentAttachments(); flush(); ?></div>
Chris@76 351 </div>
Chris@76 352
Chris@76 353 <!-- ADVANCED FUNCTIONS -->
Chris@76 354 <div class="ssi_preview" id="ssi_showPoll">
Chris@76 355 <h2>Show Single Poll</h2>
Chris@76 356 <p>Shows a poll in the specified topic.</p>
Chris@76 357
Chris@76 358 <h3>Code</h3>
Chris@76 359 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_showPoll($topicID); ?&gt;</code>
Chris@76 360 <h3>Result</h3>
Chris@76 361 <div class="ssi_result"><i>Not shown because it needs specific topic ID that contains a poll.</i></div>
Chris@76 362 </div>
Chris@76 363
Chris@76 364 <div class="ssi_preview" id="ssi_fetchPosts">
Chris@76 365 <h2>Show Single Post</h2>
Chris@76 366 <p>Fetches a post with a particular IDs. By default will only show if you have permission to the see
Chris@76 367 the board in question. This can be overriden by passing the 2nd parameter as <tt>true</tt>.</p>
Chris@76 368
Chris@76 369 <h3>Code</h3>
Chris@76 370 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_fetchPosts($postIDs, $isOverride); ?&gt;</code>
Chris@76 371 <h3>Result</h3>
Chris@76 372 <div class="ssi_result"><i>Not shown because it needs a specific post ID.</i></div>
Chris@76 373 </div>
Chris@76 374
Chris@76 375 <div class="ssi_preview" id="ssi_fetchMember">
Chris@76 376 <h2>Show Single Member</h2>
Chris@76 377 <p>Shows the specified member's name and profile link.</p>
Chris@76 378
Chris@76 379 <h3>Code</h3>
Chris@76 380 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_fetchMember($memberIDs); ?&gt;</code>
Chris@76 381 <h3>Result</h3>
Chris@76 382 <div class="ssi_result"><i>Not shown because it needs a specific member ID.</i></div>
Chris@76 383 </div>
Chris@76 384
Chris@76 385 <div class="ssi_preview" id="ssi_fetchGroupMembers">
Chris@76 386 <h2>Show Group Members</h2>
Chris@76 387 <p>Shows all members in a specified group.</p>
Chris@76 388
Chris@76 389 <h3>Code</h3>
Chris@76 390 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code">&lt;?php ssi_fetchGroupMembers($groupIDs); ?&gt;</code>
Chris@76 391 <h3>Result</h3>
Chris@76 392 <div class="ssi_result"><i>Not shown because it needs specific membergroup IDs.</i></div>
Chris@76 393 </div>
Chris@76 394
Chris@76 395 <div class="ssi_preview" id="htmlhome">
Chris@76 396 <h2>Home Page Sample</h2>
Chris@76 397 This sample uses the following features: ssi_recentTopics(), ssi_logOnline(), ssi_welcome(), and ssi_boardNews().
Chris@76 398 ssi_recentTopics() is fetched using the array method, to allow further customizations on the output.
Chris@76 399
Chris@76 400 <h3>Code</h3>
Chris@76 401 <div class="codeheader">Code: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">[Select]</a></div><code class="bbc_code"><?php echo htmlspecialchars(template_homepage_sample1('source')); ?></code>
Chris@76 402 <h3>Result</h3>
Chris@76 403 <iframe src="?view=home1" width="99%" height="300"></iframe>
Chris@76 404 </div>
Chris@76 405 </div>
Chris@76 406 <span class="botslice"><span></span></span>
Chris@76 407 </div>
Chris@76 408
Chris@76 409 <?php
Chris@76 410
Chris@76 411 template_ssi_below();
Chris@76 412
Chris@76 413 function template_ssi_above()
Chris@76 414 {
Chris@76 415 global $settings, $context, $scripturl;
Chris@76 416
Chris@76 417 echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Chris@76 418 <html xmlns="http://www.w3.org/1999/xhtml">
Chris@76 419 <head>
Chris@76 420 <title>SMF 2.0 SSI.php Examples</title>
Chris@76 421 <link rel="stylesheet" type="text/css" href="', $settings['default_theme_url'], '/css/index.css?fin20" />
Chris@76 422 <script type="text/javascript" src="', $settings['default_theme_url'], '/scripts/script.js"></script>
Chris@76 423 <style type="text/css">
Chris@76 424 #wrapper
Chris@76 425 {
Chris@76 426 width: 90%;
Chris@76 427 }
Chris@76 428 #upper_section .user
Chris@76 429 {
Chris@76 430 height: 4em;
Chris@76 431 }
Chris@76 432 #upper_section .news
Chris@76 433 {
Chris@76 434 height: 80px;
Chris@76 435 }
Chris@76 436 #content_section
Chris@76 437 {
Chris@76 438 position: relative;
Chris@76 439 top: -20px;
Chris@76 440 }
Chris@76 441 #main_content_section h2
Chris@76 442 {
Chris@76 443 font-size: 1.5em;
Chris@76 444 border-bottom: solid 1px #d05800;
Chris@76 445 line-height: 1.5em;
Chris@76 446 margin: 0.5em 0;
Chris@76 447 color: #d05800;
Chris@76 448 }
Chris@76 449 #liftup
Chris@76 450 {
Chris@76 451 position: relative;
Chris@76 452 top: -70px;
Chris@76 453 padding: 1em 2em 1em 1em;
Chris@76 454 line-height: 1.6em;
Chris@76 455 }
Chris@76 456 #footer_section
Chris@76 457 {
Chris@76 458 position: relative;
Chris@76 459 top: -20px;
Chris@76 460 }
Chris@76 461 #sidenav
Chris@76 462 {
Chris@76 463 width: 210px;
Chris@76 464 float: left;
Chris@76 465 margin-right: 20px;
Chris@76 466 }
Chris@76 467 #sidenav ul
Chris@76 468 {
Chris@76 469 margin: 0 0 0 15px;
Chris@76 470 padding: 0;
Chris@76 471 list-style: none;
Chris@76 472 font-size: 90%;
Chris@76 473 }
Chris@76 474 #preview
Chris@76 475 {
Chris@76 476 margin-left: 230px;
Chris@76 477 }
Chris@76 478 .ssi_preview
Chris@76 479 {
Chris@76 480 margin-bottom: 1.5em;
Chris@76 481 }
Chris@76 482 .ssi_preview h3
Chris@76 483 {
Chris@76 484 margin: 1em 0 0.5em 0;
Chris@76 485 }
Chris@76 486 .ssi_result
Chris@76 487 {
Chris@76 488 background-color: #fff;
Chris@76 489 border: 1px solid #99a;
Chris@76 490 padding: 10px;
Chris@76 491 overflow: hidden;
Chris@76 492 }
Chris@76 493 </style>
Chris@76 494 <script type="text/javascript"><!-- // --><![CDATA[
Chris@76 495 var smf_scripturl = "', $scripturl, '";
Chris@76 496 var smf_iso_case_folding = ', $context['server']['iso_case_folding'] ? 'true' : 'false', ';
Chris@76 497 var smf_charset = "', $context['character_set'], '";
Chris@76 498
Chris@76 499 // Sets all ssi_preview class to hidden, then shows the one requested.
Chris@76 500 function showSSIBlock(elementID)
Chris@76 501 {
Chris@76 502 toggleVisibleByClass("ssi_preview", true);
Chris@76 503 document.getElementById(elementID).style.display = "block";
Chris@76 504 }
Chris@76 505
Chris@76 506 // Toggle visibility of all sections.
Chris@76 507 function toggleVisibleByClass(sClassName, bHide)
Chris@76 508 {
Chris@76 509 var oSections = document.getElementsByTagName("div");
Chris@76 510 for (var i = 0; i < oSections.length; i++)
Chris@76 511 {
Chris@76 512 if (oSections[i].className == null || oSections[i].className.indexOf(sClassName) == -1)
Chris@76 513 continue;
Chris@76 514
Chris@76 515 oSections[i].style.display = bHide ? "none" : "block";
Chris@76 516 }
Chris@76 517 }
Chris@76 518 // ]]></script>
Chris@76 519 </head>
Chris@76 520 <body>
Chris@76 521 <div id="wrapper">
Chris@76 522 <div id="header"><div class="frame">
Chris@76 523 <div id="top_section">
Chris@76 524 <h1 class="forumtitle">SMF 2.0 SSI.php Examples</h1>
Chris@76 525 <img id="smflogo" src="Themes/default/images/smflogo.png" alt="Simple Machines Forum" title="Simple Machines Forum" />
Chris@76 526 </div>
Chris@76 527 <div id="upper_section" class="middletext" style="overflow: hidden;">
Chris@76 528 <div class="user"></div>
Chris@76 529 <div class="news normaltext">
Chris@76 530 </div>
Chris@76 531 </div>
Chris@76 532 </div></div>
Chris@76 533 <div id="content_section"><div class="frame">
Chris@76 534 <div id="main_content_section">
Chris@76 535 <div id="liftup" class="flow_auto">';
Chris@76 536 }
Chris@76 537
Chris@76 538 function template_ssi_below()
Chris@76 539 {
Chris@76 540 global $time_start;
Chris@76 541
Chris@76 542 echo '
Chris@76 543 <script type="text/javascript"><!-- // --><![CDATA[
Chris@76 544 showSSIBlock("ssi_recentTopics");
Chris@76 545 // ]]></script>
Chris@76 546 </div>
Chris@76 547 </div>
Chris@76 548 </div></div>
Chris@76 549 <div id="footer_section"><div class="frame">
Chris@76 550 <div class="smalltext"><a href="http://www.simplemachines.org">Simple Machines Forum</a></div>
Chris@76 551 </div></div>
Chris@76 552 </div>
Chris@76 553 </body>
Chris@76 554 </html>';
Chris@76 555 }
Chris@76 556
Chris@76 557 function template_homepage_sample1($method = 'source')
Chris@76 558 {
Chris@76 559 global $user_info, $boarddir;
Chris@76 560
Chris@76 561 $header = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Chris@76 562 <html xmlns="http://www.w3.org/1999/xhtml">
Chris@76 563 <head>
Chris@76 564 <title>SSI.php example for home page</title>
Chris@76 565 <style type="text/css">
Chris@76 566 body { font-family: Arial, Tahoma, sans-serif; font-size: 80%; background: #DFDFDF; color: #FFFFFF; margin: 0 }
Chris@76 567 ul,ol { padding-left: 19px; margin: 0; }
Chris@76 568 li { font-size: 11px; }
Chris@76 569 h1,h2,h3 { margin: 0; padding: 0; }
Chris@76 570 h3 { font-size: 15px; }
Chris@76 571 a:link,a:visited { color: #FF9000; text-decoration: none; }
Chris@76 572 a:hover { text-decoration: underline; }
Chris@76 573
Chris@76 574 #container { background: #52514E; width: 100%; border: 1px solid midnightblue; line-height: 150%; margin: 0; }
Chris@76 575 #header,#footer { color: lightgray; background-color: #2A2825; clear: both; padding: .5em; }
Chris@76 576 #leftbar { background: #DF7E00; float: left; width: 160px; margin: 0; padding: 1em; }
Chris@76 577 #leftbar a { color: #000000; text-decoration: underline; }
Chris@76 578 #content { margin-left: 190px; padding: 1em; }
Chris@76 579 #navigation { float: right; }
Chris@76 580 #navigation a:link,#navigation a:visited { color: #FF9000; }
Chris@76 581 </style>
Chris@76 582 </head>
Chris@76 583 <body>
Chris@76 584 <div id="container">
Chris@76 585 <div id="header">
Chris@76 586 <div id="navigation">
Chris@76 587 <a href="#">Link</a> | <a href="#">Link</a> | <a href="#">Link</a> | <a href="#">Link</a> | <a href="#">Link</a>
Chris@76 588 </div>
Chris@76 589 <h1 class="header">YourWebsite.com</h1>
Chris@76 590 </div>
Chris@76 591 <div id="leftbar">
Chris@76 592 <h3>Recent Forum Topics</h3>
Chris@76 593 <ul>';
Chris@76 594
Chris@76 595 $footer = '
Chris@76 596 <div id="footer">
Chris@76 597 <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>
Chris@76 598 This sample website layout is dedicated to the <a target="_blank" rel="license" href="http://creativecommons.org/licenses/publicdomain/">Public Domain</a>.
Chris@76 599 </div>
Chris@76 600 </div>
Chris@76 601 </body>
Chris@76 602 </html>';
Chris@76 603
Chris@76 604 if ($method == 'source')
Chris@76 605 {
Chris@76 606 $header = '<?php require("' . ($user_info['is_admin'] ? addslashes(realpath($boarddir . '/SSI.php')) : 'SSI.php') . '"); ?>' . "\n" . $header;
Chris@76 607 return $header . template_homepage_sample1_html() . $footer;
Chris@76 608 }
Chris@76 609 else
Chris@76 610 {
Chris@76 611 echo $header;
Chris@76 612 template_homepage_sample1_php();
Chris@76 613 echo $footer;
Chris@76 614 }
Chris@76 615
Chris@76 616 }
Chris@76 617
Chris@76 618 function template_homepage_sample1_php()
Chris@76 619 {
Chris@76 620 global $txt;
Chris@76 621
Chris@76 622 $topics = ssi_recentTopics(8, null, null, 'array');
Chris@76 623
Chris@76 624 foreach ($topics as $topic)
Chris@76 625 echo '
Chris@76 626 <li><a href="', $topic['href'], '">', $topic['subject'], '</a> ', $txt['by'], ' ', $topic['poster']['link'], '</li>';
Chris@76 627
Chris@76 628 unset($topics);
Chris@76 629
Chris@76 630 echo '
Chris@76 631
Chris@76 632 </ul><br />
Chris@76 633
Chris@76 634 <h3>Online Users</h3>';
Chris@76 635 ssi_logOnline();
Chris@76 636
Chris@76 637 echo '
Chris@76 638 </div>
Chris@76 639
Chris@76 640 <div id="content">';
Chris@76 641
Chris@76 642 ssi_welcome();
Chris@76 643 echo '
Chris@76 644 <br /><br />
Chris@76 645
Chris@76 646 <h2>News</h2>';
Chris@76 647
Chris@76 648 ssi_boardNews();
Chris@76 649
Chris@76 650 echo '
Chris@76 651 </div>';
Chris@76 652
Chris@76 653 }
Chris@76 654
Chris@76 655 function template_homepage_sample1_html()
Chris@76 656 {
Chris@76 657 $result = '
Chris@76 658 <?php
Chris@76 659 // Using array method to show shorter display style.
Chris@76 660 $topics = ssi_recentTopics(8, null, null, \'array\');
Chris@76 661
Chris@76 662 foreach ($topics as $topic)
Chris@76 663 {
Chris@76 664 // Uncomment the following code to get a listing of array elements that SMF provides for this function.
Chris@76 665 // echo \'<pre>\', print_r($topic), \'</pre>\';
Chris@76 666
Chris@76 667 echo \'
Chris@76 668 <li><a href=\"\', $topic[\'href\'], \'\">\', $topic[\'subject\'], \'</a> \', $txt[\'by\'], \' \', $topics[$i][\'poster\'][\'link\'], \'</li>\';
Chris@76 669 }
Chris@76 670
Chris@76 671 unset($topics);
Chris@76 672 ?>
Chris@76 673 </ul><br />
Chris@76 674 <h3>Online Users</h3>
Chris@76 675 <?php ssi_logOnline(); ?>
Chris@76 676 </div>
Chris@76 677 <div id="content">
Chris@76 678 <?php ssi_welcome(); ?><br /><br />
Chris@76 679 <h2>News</h2>
Chris@76 680 <?php ssi_boardNews(); ?>
Chris@76 681 </div>';
Chris@76 682
Chris@76 683 return $result;
Chris@76 684 }
Chris@76 685
Chris@76 686 ?>