annotate forum/Themes/Vamp/Xml.template.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 * Simple Machines Forum (SMF)
Chris@76 4 *
Chris@76 5 * @package SMF
Chris@76 6 * @author Simple Machines
Chris@76 7 * @copyright 2011 Simple Machines
Chris@76 8 * @license http://www.simplemachines.org/about/smf/license.php BSD
Chris@76 9 *
Chris@76 10 * @version 2.0
Chris@76 11 */
Chris@76 12
Chris@76 13 function template_sendbody()
Chris@76 14 {
Chris@76 15 global $context, $settings, $options, $txt;
Chris@76 16
Chris@76 17 echo '<', '?xml version="1.0" encoding="', $context['character_set'], '"?', '>
Chris@76 18 <smf>
Chris@76 19 <message view="', $context['view'], '">', cleanXml($context['message']), '</message>
Chris@76 20 </smf>';
Chris@76 21 }
Chris@76 22
Chris@76 23 function template_quotefast()
Chris@76 24 {
Chris@76 25 global $context, $settings, $options, $txt;
Chris@76 26
Chris@76 27 echo '<', '?xml version="1.0" encoding="', $context['character_set'], '"?', '>
Chris@76 28 <smf>
Chris@76 29 <quote>', cleanXml($context['quote']['xml']), '</quote>
Chris@76 30 </smf>';
Chris@76 31 }
Chris@76 32
Chris@76 33 function template_modifyfast()
Chris@76 34 {
Chris@76 35 global $context, $settings, $options, $txt;
Chris@76 36
Chris@76 37 echo '<', '?xml version="1.0" encoding="', $context['character_set'], '"?', '>
Chris@76 38 <smf>
Chris@76 39 <subject><![CDATA[', cleanXml($context['message']['subject']), ']]></subject>
Chris@76 40 <message id="msg_', $context['message']['id'], '"><![CDATA[', cleanXml($context['message']['body']), ']]></message>
Chris@76 41 </smf>';
Chris@76 42
Chris@76 43 }
Chris@76 44
Chris@76 45 function template_modifydone()
Chris@76 46 {
Chris@76 47 global $context, $settings, $options, $txt;
Chris@76 48
Chris@76 49 echo '<', '?xml version="1.0" encoding="', $context['character_set'], '"?', '>
Chris@76 50 <smf>
Chris@76 51 <message id="msg_', $context['message']['id'], '">';
Chris@76 52 if (empty($context['message']['errors']))
Chris@76 53 {
Chris@76 54 echo '
Chris@76 55 <modified><![CDATA[', empty($context['message']['modified']['time']) ? '' : cleanXml('&#171; <em>' . $txt['last_edit'] . ': ' . $context['message']['modified']['time'] . ' ' . $txt['by'] . ' ' . $context['message']['modified']['name'] . '</em> &#187;'), ']]></modified>
Chris@76 56 <subject is_first="', $context['message']['first_in_topic'] ? '1' : '0', '"><![CDATA[', cleanXml($context['message']['subject']), ']]></subject>
Chris@76 57 <body><![CDATA[', $context['message']['body'], ']]></body>';
Chris@76 58 }
Chris@76 59 else
Chris@76 60 echo '
Chris@76 61 <error in_subject="', $context['message']['error_in_subject'] ? '1' : '0', '" in_body="', cleanXml($context['message']['error_in_body']) ? '1' : '0', '"><![CDATA[', implode('<br />', $context['message']['errors']), ']]></error>';
Chris@76 62 echo '
Chris@76 63 </message>
Chris@76 64 </smf>';
Chris@76 65 }
Chris@76 66
Chris@76 67 function template_modifytopicdone()
Chris@76 68 {
Chris@76 69 global $context, $settings, $options, $txt;
Chris@76 70
Chris@76 71 echo '<', '?xml version="1.0" encoding="', $context['character_set'], '"?', '>
Chris@76 72 <smf>
Chris@76 73 <message id="msg_', $context['message']['id'], '">';
Chris@76 74 if (empty($context['message']['errors']))
Chris@76 75 {
Chris@76 76 echo '
Chris@76 77 <modified><![CDATA[', empty($context['message']['modified']['time']) ? '' : cleanXml('&#171; <em>' . $txt['last_edit'] . ': ' . $context['message']['modified']['time'] . ' ' . $txt['by'] . ' ' . $context['message']['modified']['name'] . '</em> &#187;'), ']]></modified>';
Chris@76 78 if (!empty($context['message']['subject']))
Chris@76 79 echo '
Chris@76 80 <subject><![CDATA[', cleanXml($context['message']['subject']), ']]></subject>';
Chris@76 81 }
Chris@76 82 else
Chris@76 83 echo '
Chris@76 84 <error in_subject="', $context['message']['error_in_subject'] ? '1' : '0', '"><![CDATA[', cleanXml(implode('<br />', $context['message']['errors'])), ']]></error>';
Chris@76 85 echo '
Chris@76 86 </message>
Chris@76 87 </smf>';
Chris@76 88 }
Chris@76 89
Chris@76 90 function template_post()
Chris@76 91 {
Chris@76 92 global $context, $settings, $options, $txt;
Chris@76 93
Chris@76 94 echo '<', '?xml version="1.0" encoding="', $context['character_set'], '"?', '>
Chris@76 95 <smf>
Chris@76 96 <preview>
Chris@76 97 <subject><![CDATA[', $context['preview_subject'], ']]></subject>
Chris@76 98 <body><![CDATA[', $context['preview_message'], ']]></body>
Chris@76 99 </preview>
Chris@76 100 <errors serious="', empty($context['error_type']) || $context['error_type'] != 'serious' ? '0' : '1', '" topic_locked="', $context['locked'] ? '1' : '0', '">';
Chris@76 101 if (!empty($context['post_error']['messages']))
Chris@76 102 foreach ($context['post_error']['messages'] as $message)
Chris@76 103 echo '
Chris@76 104 <error><![CDATA[', cleanXml($message), ']]></error>';
Chris@76 105 echo '
Chris@76 106 <caption name="guestname" class="', isset($context['post_error']['long_name']) || isset($context['post_error']['no_name']) || isset($context['post_error']['bad_name']) ? 'error' : '', '" />
Chris@76 107 <caption name="email" class="', isset($context['post_error']['no_email']) || isset($context['post_error']['bad_email']) ? 'error' : '', '" />
Chris@76 108 <caption name="evtitle" class="', isset($context['post_error']['no_event']) ? 'error' : '', '" />
Chris@76 109 <caption name="subject" class="', isset($context['post_error']['no_subject']) ? 'error' : '', '" />
Chris@76 110 <caption name="question" class="', isset($context['post_error']['no_question']) ? 'error' : '', '" />', isset($context['post_error']['no_message']) || isset($context['post_error']['long_message']) ? '
Chris@76 111 <post_error />' : '', '
Chris@76 112 </errors>
Chris@76 113 <last_msg>', isset($context['topic_last_message']) ? $context['topic_last_message'] : '0', '</last_msg>';
Chris@76 114
Chris@76 115 if (!empty($context['previous_posts']))
Chris@76 116 {
Chris@76 117 echo '
Chris@76 118 <new_posts>';
Chris@76 119 foreach ($context['previous_posts'] as $post)
Chris@76 120 echo '
Chris@76 121 <post id="', $post['id'], '">
Chris@76 122 <time><![CDATA[', $post['time'], ']]></time>
Chris@76 123 <poster><![CDATA[', cleanXml($post['poster']), ']]></poster>
Chris@76 124 <message><![CDATA[', cleanXml($post['message']), ']]></message>
Chris@76 125 <is_ignored>', $post['is_ignored'] ? '1' : '0', '</is_ignored>
Chris@76 126 </post>';
Chris@76 127 echo '
Chris@76 128 </new_posts>';
Chris@76 129 }
Chris@76 130
Chris@76 131 echo '
Chris@76 132 </smf>';
Chris@76 133 }
Chris@76 134
Chris@76 135 function template_stats()
Chris@76 136 {
Chris@76 137 global $context, $settings, $options, $txt, $modSettings;
Chris@76 138
Chris@76 139 echo '<', '?xml version="1.0" encoding="', $context['character_set'], '"?', '>
Chris@76 140 <smf>';
Chris@76 141 foreach ($context['yearly'] as $year)
Chris@76 142 foreach ($year['months'] as $month);
Chris@76 143 {
Chris@76 144 echo '
Chris@76 145 <month id="', $month['date']['year'], $month['date']['month'], '">';
Chris@76 146 foreach ($month['days'] as $day)
Chris@76 147 echo '
Chris@76 148 <day date="', $day['year'], '-', $day['month'], '-', $day['day'], '" new_topics="', $day['new_topics'], '" new_posts="', $day['new_posts'], '" new_members="', $day['new_members'], '" most_members_online="', $day['most_members_online'], '"', empty($modSettings['hitStats']) ? '' : ' hits="' . $day['hits'] . '"', ' />';
Chris@76 149 echo '
Chris@76 150 </month>';
Chris@76 151 }
Chris@76 152 echo '
Chris@76 153 </smf>';
Chris@76 154 }
Chris@76 155
Chris@76 156 function template_split()
Chris@76 157 {
Chris@76 158 global $context, $settings, $options;
Chris@76 159
Chris@76 160 echo '<', '?xml version="1.0" encoding="', $context['character_set'], '"?', '>
Chris@76 161 <smf>
Chris@76 162 <pageIndex section="not_selected" startFrom="', $context['not_selected']['start'], '"><![CDATA[', $context['not_selected']['page_index'], ']]></pageIndex>
Chris@76 163 <pageIndex section="selected" startFrom="', $context['selected']['start'], '"><![CDATA[', $context['selected']['page_index'], ']]></pageIndex>';
Chris@76 164 foreach ($context['changes'] as $change)
Chris@76 165 {
Chris@76 166 if ($change['type'] == 'remove')
Chris@76 167 echo '
Chris@76 168 <change id="', $change['id'], '" curAction="remove" section="', $change['section'], '" />';
Chris@76 169 else
Chris@76 170 echo '
Chris@76 171 <change id="', $change['id'], '" curAction="insert" section="', $change['section'], '">
Chris@76 172 <subject><![CDATA[', cleanXml($change['insert_value']['subject']), ']]></subject>
Chris@76 173 <time><![CDATA[', cleanXml($change['insert_value']['time']), ']]></time>
Chris@76 174 <body><![CDATA[', cleanXml($change['insert_value']['body']), ']]></body>
Chris@76 175 <poster><![CDATA[', cleanXml($change['insert_value']['poster']), ']]></poster>
Chris@76 176 </change>';
Chris@76 177 }
Chris@76 178 echo '
Chris@76 179 </smf>';
Chris@76 180 }
Chris@76 181
Chris@76 182 // This is just to hold off some errors if people are stupid.
Chris@76 183 if (!function_exists('template_button_strip'))
Chris@76 184 {
Chris@76 185 function template_button_strip($button_strip, $direction = 'top', $strip_options = array())
Chris@76 186 {
Chris@76 187 }
Chris@76 188 function template_menu()
Chris@76 189 {
Chris@76 190 }
Chris@76 191 function theme_linktree()
Chris@76 192 {
Chris@76 193 }
Chris@76 194 }
Chris@76 195
Chris@76 196 function template_results()
Chris@76 197 {
Chris@76 198 global $context, $settings, $options, $txt;
Chris@76 199 echo '<', '?xml version="1.0" encoding="', $context['character_set'], '"?', '>
Chris@76 200 <smf>';
Chris@76 201
Chris@76 202 if (empty($context['topics']))
Chris@76 203 echo '
Chris@76 204 <noresults>', $txt['search_no_results'], '</noresults>';
Chris@76 205 else
Chris@76 206 {
Chris@76 207 echo '
Chris@76 208 <results>';
Chris@76 209
Chris@76 210 while ($topic = $context['get_topics']())
Chris@76 211 {
Chris@76 212 echo '
Chris@76 213 <result>
Chris@76 214 <id>', $topic['id'], '</id>
Chris@76 215 <relevance>', $topic['relevance'], '</relevance>
Chris@76 216 <board>
Chris@76 217 <id>', $topic['board']['id'], '</id>
Chris@76 218 <name>', cleanXml($topic['board']['name']), '</name>
Chris@76 219 <href>', $topic['board']['href'], '</href>
Chris@76 220 </board>
Chris@76 221 <category>
Chris@76 222 <id>', $topic['category']['id'], '</id>
Chris@76 223 <name>', cleanXml($topic['category']['name']), '</name>
Chris@76 224 <href>', $topic['category']['href'], '</href>
Chris@76 225 </category>
Chris@76 226 <messages>';
Chris@76 227 foreach ($topic['matches'] as $message)
Chris@76 228 {
Chris@76 229 echo '
Chris@76 230 <message>
Chris@76 231 <id>', $message['id'], '</id>
Chris@76 232 <subject><![CDATA[', cleanXml($message['subject_highlighted'] != '' ? $message['subject_highlighted'] : $message['subject']), ']]></subject>
Chris@76 233 <body><![CDATA[', cleanXml($message['body_highlighted'] != '' ? $message['body_highlighted'] : $message['body']), ']]></body>
Chris@76 234 <time>', $message['time'], '</time>
Chris@76 235 <timestamp>', $message['timestamp'], '</timestamp>
Chris@76 236 <start>', $message['start'], '</start>
Chris@76 237
Chris@76 238 <author>
Chris@76 239 <id>', $message['member']['id'], '</id>
Chris@76 240 <name>', cleanXml($message['member']['name']), '</name>
Chris@76 241 <href>', $message['member']['href'], '</href>
Chris@76 242 </author>
Chris@76 243 </message>';
Chris@76 244 }
Chris@76 245 echo '
Chris@76 246 </messages>
Chris@76 247 </result>';
Chris@76 248 }
Chris@76 249
Chris@76 250 echo '
Chris@76 251 </results>';
Chris@76 252 }
Chris@76 253
Chris@76 254 echo '
Chris@76 255 </smf>';
Chris@76 256 }
Chris@76 257
Chris@76 258 function template_jump_to()
Chris@76 259 {
Chris@76 260 global $context, $settings, $options;
Chris@76 261
Chris@76 262 echo '<', '?xml version="1.0" encoding="', $context['character_set'], '"?', '>
Chris@76 263 <smf>';
Chris@76 264 foreach ($context['jump_to'] as $category)
Chris@76 265 {
Chris@76 266 echo '
Chris@76 267 <item type="category" id="', $category['id'], '"><![CDATA[', cleanXml($category['name']), ']]></item>';
Chris@76 268 foreach ($category['boards'] as $board)
Chris@76 269 echo '
Chris@76 270 <item type="board" id="', $board['id'], '" childlevel="', $board['child_level'], '"><![CDATA[', cleanXml($board['name']), ']]></item>';
Chris@76 271 }
Chris@76 272 echo '
Chris@76 273 </smf>';
Chris@76 274 }
Chris@76 275
Chris@76 276 function template_message_icons()
Chris@76 277 {
Chris@76 278 global $context, $settings, $options;
Chris@76 279
Chris@76 280 echo '<', '?xml version="1.0" encoding="', $context['character_set'], '"?', '>
Chris@76 281 <smf>';
Chris@76 282 foreach ($context['icons'] as $icon)
Chris@76 283 echo '
Chris@76 284 <icon value="', $icon['value'], '" url="', $icon['url'], '"><![CDATA[', cleanXml($icon['name']), ']]></icon>';
Chris@76 285 echo '
Chris@76 286 </smf>';
Chris@76 287 }
Chris@76 288
Chris@76 289 function template_check_username()
Chris@76 290 {
Chris@76 291 global $context, $settings, $options, $txt;
Chris@76 292
Chris@76 293 echo '<', '?xml version="1.0" encoding="', $context['character_set'], '"?', '>
Chris@76 294 <smf>
Chris@76 295 <username valid="', $context['valid_username'] ? 1 : 0, '">', cleanXml($context['checked_username']), '</username>
Chris@76 296 </smf>';
Chris@76 297 }
Chris@76 298
Chris@76 299 // This prints XML in it's most generic form.
Chris@76 300 function template_generic_xml()
Chris@76 301 {
Chris@76 302 global $context, $settings, $options, $txt;
Chris@76 303
Chris@76 304 echo '<', '?xml version="1.0" encoding="', $context['character_set'], '"?', '>';
Chris@76 305
Chris@76 306 // Show the data.
Chris@76 307 template_generic_xml_recursive($context['xml_data'], 'smf', '', -1);
Chris@76 308 }
Chris@76 309
Chris@76 310 // Recursive function for displaying generic XML data.
Chris@76 311 function template_generic_xml_recursive($xml_data, $parent_ident, $child_ident, $level)
Chris@76 312 {
Chris@76 313 // This is simply for neat indentation.
Chris@76 314 $level++;
Chris@76 315
Chris@76 316 echo "\n" . str_repeat("\t", $level), '<', $parent_ident, '>';
Chris@76 317
Chris@76 318 foreach ($xml_data as $key => $data)
Chris@76 319 {
Chris@76 320 // A group?
Chris@76 321 if (is_array($data) && isset($data['identifier']))
Chris@76 322 template_generic_xml_recursive($data['children'], $key, $data['identifier'], $level);
Chris@76 323 // An item...
Chris@76 324 elseif (is_array($data) && isset($data['value']))
Chris@76 325 {
Chris@76 326 echo "\n", str_repeat("\t", $level), '<', $child_ident;
Chris@76 327
Chris@76 328 if (!empty($data['attributes']))
Chris@76 329 foreach ($data['attributes'] as $k => $v)
Chris@76 330 echo ' ' . $k . '="' . $v . '"';
Chris@76 331 echo '><![CDATA[', cleanXml($data['value']), ']]></', $child_ident, '>';
Chris@76 332 }
Chris@76 333
Chris@76 334 }
Chris@76 335
Chris@76 336 echo "\n", str_repeat("\t", $level), '</', $parent_ident, '>';
Chris@76 337 }
Chris@76 338
Chris@76 339 function template_webslice_header_above()
Chris@76 340 {
Chris@76 341 global $settings;
Chris@76 342
Chris@76 343 echo '
Chris@76 344 <link rel="stylesheet" href="', $settings['default_theme_url'], '/css/wireless.css" type="text/css" />';
Chris@76 345 }
Chris@76 346
Chris@76 347 function template_webslice_header_below()
Chris@76 348 {
Chris@76 349 }
Chris@76 350
Chris@76 351 // This shows a webslice of the recent posts.
Chris@76 352 function template_webslice_recent_posts()
Chris@76 353 {
Chris@76 354 global $context, $scripturl, $txt;
Chris@76 355
Chris@76 356 echo '
Chris@76 357 <div style="width: 100%; height: 100%; border: 1px solid black; padding: 0; margin: 0 0 0 0; font: 100.01%/100% Verdana, Helvetica, sans-serif;">
Chris@76 358 <div style="background-color: #080436; color: #ffffff; padding: 4px;">
Chris@76 359 ', cleanXml($txt['recent_posts']), '
Chris@76 360 </div>';
Chris@76 361
Chris@76 362 $alternate = 0;
Chris@76 363 foreach ($context['recent_posts_data'] as $item)
Chris@76 364 {
Chris@76 365 echo '
Chris@76 366 <div style="background-color: ', $alternate ? '#ECEDF3' : '#F6F6F6', '; font-size: 90%; padding: 2px;">
Chris@76 367 <strong><a href="', $item['link'], '">', cleanXml($item['subject']), '</a></strong> ', cleanXml($txt['by']), ' ', cleanXml(!empty($item['poster']['link']) ? '<a href="' . $item['poster']['link'] . '">' . $item['poster']['name'] . '</a>' : $item['poster']['name']), '
Chris@76 368 </div>';
Chris@76 369 $alternate = !$alternate;
Chris@76 370 }
Chris@76 371
Chris@76 372 echo '
Chris@76 373 </div>
Chris@76 374 <div style="width: 100%; height: 100%; border: 0; padding: 0; margin: 0 0 0 0; font: 100.01%/100% Verdana, Helvetica, sans-serif;">
Chris@76 375 <div style="font-size: xx-small;" class="righttext">';
Chris@76 376
Chris@76 377 if ($context['user']['is_guest'])
Chris@76 378 echo '
Chris@76 379 <a href="', $scripturl, '?action=login">', $txt['login'], '</a>';
Chris@76 380 else
Chris@76 381 echo '
Chris@76 382 ', cleanXml($context['user']['name']), ', ', cleanXml($txt['msg_alert_you_have']), ' <a href="', $scripturl, '?action=pm">', cleanXml($context['user']['messages']), ' ', cleanXml($context['user']['messages'] != 1 ? $txt['msg_alert_messages'] : $txt['message_lowercase']), '</a>', cleanXml($txt['newmessages4'] . ' ' . $context['user']['unread_messages']), ' ', cleanXml($context['user']['unread_messages'] == 1 ? $txt['newmessages0'] : $txt['newmessages1']);
Chris@76 383
Chris@76 384 echo '
Chris@76 385 </div>
Chris@76 386 </div>';
Chris@76 387 }
Chris@76 388
Chris@76 389 ?>