} } $options['return'] .= '</ul>' . "\n"; if (!(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.0') || $_SESSION['disablesteve'] == 1)) { $options['output'] .= '<img src="' . IMAGE_URL . 'steve/icon_gun.gif" id="steve_gun" />' . "\n"; } function recurse_forum_category_specialgrej($categories, $depth) { foreach ($categories as $category) { if ($category['handle'] == 'hamsterpajs_artiklar' || $category['handle'] == 'forum_error') { continue; } $indent = ''; for ($i = 0; $i < $depth; $i++) { $indent .= ' '; } $category['title'] = strlen($category['title']) > 21 ? substr($category['title'], 0, 19) . '...' : $category['title']; $style = $depth == 0 ? ' style="font-weight: bold;"' : ''; $output .= '<option value="' . $category['handle'] . '"' . $style . '>' . $indent . $category['title'] . '</option>' . "\n"; $output .= recurse_forum_category_specialgrej($category['children'], $depth + 1); } return $output; } $categories = discussion_forum_categories_fetch(array('parent' => 0)); if ($_SESSION['login']['id'] == 3) { } if (login_checklogin()) { $options['output'] .= '<select id="threads_module_create_thread" onchange="threads_module_create_thread()"><option value="false">Starta ny tråd</option>' . "\n"; $options['output'] .= recurse_forum_category_specialgrej($categories, 0); $options['output'] .= '</select>'; }
function discussion_forum_parse_request($url) { $url = strtolower($url); $url_query_parts = explode('?', $url); $url_anchor_parts = explode('#', $url_query_parts[0]); $url = $url_anchor_parts[0]; if (substr($url, -1) == '/') { $url = substr($url, 0, -1); } if ($url == '/diskussionsforum') { $request['action'] = 'index'; } elseif ($url == '/diskussionsforum/flytta_traad.php' && is_numeric($_POST['new_category'])) { $request['action'] = 'move_thread'; $request['thread'] = array_pop(discussion_forum_post_fetch(array('post_id' => $_POST['thread_id']))); $request['new_category'] = array_pop(discussion_forum_categories_fetch(array('id' => $_POST['new_category']))); } elseif ($url == '/diskussionsforum/nytt_inlaegg.php') { $request['action'] = 'new_post'; } elseif ($url == '/diskussionsforum/soek.php') { $request['action'] = 'search'; $request['freetext'] = substr($url_query_parts[1], 9); } elseif ($url == '/diskussionsforum/nya_traadar.php') { $request['action'] = 'latest_threads'; } elseif ($url == '/diskussionsforum/dina_traadar.php') { $request['action'] = 'threads_by_user'; $request['user_id'] = $_SESSION['login']['id']; } elseif ($url == '/diskussionsforum/notiser.php') { $request['action'] = 'view_notices'; } elseif ($url == '/diskussionsforum/notiser.new.php') { $request['action'] = 'view_new_notices'; } elseif (substr($url, -4) == '.php' && substr($url, strrpos($url, '/'), 11) != '/traadsida_') { // Note: This does NOT have to be a thread, it could also be a help-page such as regler.php // AND, the url might be fomatted like this: /discussionsforum/traad_handtag/sida_1.php $explosion = explode('/', $url); $page_count_start = strrpos($url, '/sida_') + 6; $page_count_end = strrpos($url, '.'); $page_count_length = $page_count_end - $page_count_start; $request['page_num'] = substr($url, $page_count_start, $page_count_length); $request['action'] = 'view_thread'; $request['thread_handle'] = $explosion[count($explosion) - 2]; /*//trace('datamirk', print_r($explosion, true)); $request['category'] = array_pop(discussion_forum_categories_fetch(array('handle' => $explosion[count($explosion)-3]))); if(!in_array($explosion[count($explosion)-3], array('hamsterpaj', 'nyheter', 'buggar_och_fel', 'spel_och_film', 'mellan_himmel_och_jord', 'mat', 'klaeder_och_utseende', 'djur_och_husdjur', 'historier_och_skaemt', 'mobiltelefoner', 'tonaaring', 'relationer', 'kropp_och_pubertet', 'sex', 'familjen', 'vaenner', 'skola', 'pengar', 'fritid', 'sport', 'traening', 'foereningsliv', 'motor', 'musik', 'film_och_tv', 'foto', 'litteratur', 'spel', 'datorspel', 'counter_strike', 'world_of_warcraft', 'xbox', 'playstation', 'nintendo', 'retrokonsoller', 'lajv_och_rollspel', 'datorer', 'support_och_hjaelp', 'haardvara', 'mjukvara', 'operativsystem', 'lan_och_naetverk', 'programmering', 'php_scripting', 'webbdesign', 'min_hemsida', 'vetenskap', 'fysik', 'kemi', 'biologi', 'matematik', 'teknik', 'elektronik', 'astronomi', 'psykologi', 'debatt', 'politik', 'religion', 'jaemstaelldhet', 'miljoe', 'filosofi', 'alkohol_tobak_droger', 'historia', 'oevrigt', 'koep_och_saelj', 'efterlysningar', 'forumlekar', 'listor_omroestningar', 'skraep_och_spam', 'teknik', 'kaerlek', 'open_source', 'presentationsteman', 'forum_error', 'ordningsvaktsforum'))) { if($explosion[count($explosion)-3] != 'diskussionsforum') { trace('extreme_datamirk', $_SESSION['login']['username'] . ':' . $explosion[count($explosion)-3] . ' = ' . print_r($explosion, true)); } }*/ } else { $request['action'] = 'view_category'; $explosion = explode('/', $url); $last_piece = $explosion[count($explosion) - 1]; if (substr($last_piece, 0, 10) == 'traadsida_' && substr($last_piece, -4) == '.php' && is_numeric(substr($last_piece, 10, -4)) && intval(substr($last_piece, 10, -4)) > 0) { $request['page_offset'] = intval(substr(array_pop($explosion), 10, -4)) - 1; } else { $request['page_offset'] = 0; } $handle = array_pop($explosion); if ($handle == url_secure_string($handle)) { $viewers_userlevel = login_checklogin() ? $_SESSION['login']['userlevel'] : 0; $request['category'] = array_pop(discussion_forum_categories_fetch(array('handle' => $handle, 'viewers_userlevel' => $viewers_userlevel, 'disable_query_caching' => true))); $request['category_handle'] = $handle; if (count($request['category']) < 1) { $request['action'] = 'forum_not_found'; } } else { $request['action'] = 'forum_not_found'; } } return $request; }
$ui_options['menu_path'][] = 'notices'; $ui_options['title'] = 'Bevakade trådar - Hamsterpaj.net'; $output .= discussion_forum_locator(array('page' => 'notices')); $output .= discussion_forum_list_notices(); $output .= '<h1>Bevakade trådar</h1>' . "\n"; $options['notice_listing'] = true; $output .= discussion_forum_thread_list($_SESSION['forum']['subscriptions'], $options); foreach ($_SESSION['forum']['categories'] as $category) { if ($category['subscribing'] == 1) { $subscribing_categories[] = $category['category_id']; } } if (count($subscribing_categories) > 0) { $output .= '<h1 style="margin-top: 20px;">Kategorier du prenumererar på</h1>' . "\n"; $viewers_userlevel = login_checklogin() ? $_SESSION['login']['userlevel'] : 0; $categories = discussion_forum_categories_fetch(array('id' => $subscribing_categories, 'max_levels' => 0, 'viewers_userlevel' => $viewers_userlevel)); foreach ($categories as $category) { $options['show_new_threads'] = true; $options['forum_id'] = $category['id']; $threads = discussion_forum_post_fetch($options); $output .= '<h2><a href="' . $category['url'] . '">' . $category['title'] . '</a></h2>' . "\n"; if (count($threads) > 0) { // next row gave lef a lot of spokenotices, so that has to be checked before release! // $output .= '<a href="/ajax_gateways/discussion_forum.php?action=set_category_read&category=' . $category['id'] . '&return=' . $_SERVER['REQUEST_URI'] . '">Markera kategori som läst</a>' . "\n"; $options['notice_listing'] = false; $output .= discussion_forum_thread_list($threads, $options); } else { $output .= '<p>Inga nya trådar i kategorin :(</p>' . "\n"; } } }
$out .= '<tr>' . "\n"; $out .= '<th><label for="create_post">Svara i trådar <strong>*</strong></label></th>' . "\n"; $out .= '<td><select name="create_post">' . "\n"; $out .= '<option ' . ($category['create_post'] == 'no_one' ? 'selected="selected"' : '') . ' value="no_one">Ingen</option>' . "\n"; $out .= '<option ' . ($category['create_post'] == 'logged_in' ? 'selected="selected"' : '') . ' value="logged_in">Inloggade</option>' . "\n"; $out .= '<option ' . ($category['create_post'] == 'ov' ? 'selected="selected"' : '') . ' value="ov">Ordningsvakter</option>' . "\n"; $out .= '<option ' . ($category['create_post'] == 'joshua' ? 'selected="selected"' : '') . ' value="joshua">Joshua</option>' . "\n"; $out .= '</select></td>' . "\n"; $out .= '</tr>' . "\n"; $out .= '</table>' . "\n"; $out .= '<input type="submit" value="Spara" />' . "\n"; $out .= '</form>'; break; case 'list_categories': default: $categories = discussion_forum_categories_fetch(array('disable_query_caching' => true, 'parent' => 0)); $out .= '<fieldset>' . "\n"; $out .= '<legend>Forumkategorier</legend>' . "\n"; $out .= '<table class="form">' . "\n"; $out .= '<tr>' . "\n"; $out .= '<th>Titel</th>' . "\n"; $out .= '<th>Ändra</th>' . "\n"; $out .= '<th>Ta bort</th>' . "\n"; $out .= '</tr>' . "\n"; $out .= forum_admin_category_recursive_list($categories, 0); $out .= '</table>' . "\n"; $out .= '</fieldset>' . "\n"; break; } ui_top($ui_options); echo rounded_corners_tabs_top($rounded_corners_tabs_options, true);
function render_full_article($article) { if (empty($article)) { $out .= rounded_corners_top(array('color' => 'red')); $out .= '<h1>Den här artikeln kunde tyvärr inte hittas</h1>' . "\n"; $out .= '<a href="?action=list"><< Gå till listan över artiklar</a>' . "\n"; $out .= rounded_corners_bottom(array('color' => 'red')); } else { $out .= render_article($article); if ($article['photo_category_id'] > 0) { $options['category'] = $article['photo_category_id']; $photos = photos_fetch($options); $out .= '<h2>Tillhörande bilder</h2>' . "\n"; $out .= photos_list($photos); } if ($article['showauthor'] == 1) { $out .= render_author($article['author']); } if (isset($article['forum_category_id']) && $article['forum_category_id'] != 0) { $all_categories_list = discussion_forum_categories_fetch(array('id' => $article['forum_category_id'])); $category = array_pop($all_categories_list); $forum_security = forum_security(array('action' => 'view_category', 'category' => $category)); if ($forum_security == true) { $path_to_category = discussion_forum_path_to_category(array('id' => $category['id'])); $locator_options['categories'] = $path_to_category; unset($options); $options['max_levels'] = 0; $options['parent'] = $category['id']; $categories = discussion_forum_categories_fetch($options); $out .= discussion_forum_categories_list($categories); $out .= '<h2>Trådar</h2>' . "\n"; $post_options['forum_id'] = $category['id']; $post_options['threads_only'] = true; $post_options['order_by_sticky'] = true; $post_options['page_offset'] = $request['page_offset']; $post_options['url_lookup'] = true; $threads = discussion_forum_post_fetch($post_options); //$threads['url'] = $path_to_trailing_category = array_pop($path_to_category) . '/' . $thread['handle'] . '/sida_1.php'; $out .= discussion_forum_thread_list($threads); $path_to_trailing_category = array_pop($path_to_category); $out .= '<a href="' . $path_to_trailing_category['url'] . '">Skapa en egen tråd länkad till artikeln</a>' . '<br style="clear: both;" />'; forum_update_category_session(array('category' => $category, 'threads' => $threads)); } } if ($article['commentable'] == 1) { $out .= rounded_corners_top(array('color' => 'blue_deluxe')); if ($article['rankable'] == 1) { $out .= rank_input_draw($article['id'], 'articles'); } $out .= comments_input_draw($article['id'], 'articles'); $out .= '<div style="clear: both;"></div>' . "\n"; $out .= rounded_corners_bottom(); $out .= comments_list($article['id'], 'articles'); } } if (is_privilegied('articles_admin')) { $out .= '<a href="/artiklar/index.php?action=admin&article=edit&id=' . $article['id'] . '">Ändra i artikeln</a>' . "\n"; } return $out; }
/* Renaming posts (threads). Fix a function for this later on... */ if ($_GET['action'] == 'rename_post' && is_privilegied('discussion_forum_rename_threads') && is_numeric($_GET['post_id'])) { $posts = discussion_forum_post_fetch(array('post_id' => $_GET['post_id'])); $post = array_pop($posts); $message = 'Hej, din tråd i forumet med titeln "%TITLE%" har blivit omdöpt till %NEW_TITLE% Ordningsvakten som döpte om din tråd var: %RENAMERS_USERNAME%.' . "\n" . ' Har du frågor så är du välkommen att fråga honom/henne, annars, may the force be with you! '; $guestbook_message = array('sender' => 2348, 'recipient' => intval($post['author']), 'message' => mysql_real_escape_string(str_replace(array('%TITLE%', '%CONTENT%', '%RENAMERS_USERNAME%', '%NEW_TITLE%'), array($post['title'], $post['content'], $_SESSION['login']['username'], $_GET['new_title']), $message))); guestbook_insert($guestbook_message); $query = 'UPDATE forum_posts SET title = "' . $_GET['new_title'] . '" WHERE id = "' . $_GET['post_id'] . '" LIMIT 1'; mysql_query($query) or report_sql_error($query, __FILE__, __LINE__); log_admin_event('forum rename post', $post['title'] . ' -> ' . $_GET['new_title'], $_SESSION['login']['id'], $post['author'], $_GET['post_id']); } /* Remove answer to notice */ if ($_GET['action'] == 'remove_answer_notice' && is_numeric($_GET['post_id']) && login_checklogin()) { $query = 'DELETE FROM forum_notices WHERE post_id = ' . $_GET['post_id'] . ' AND user = "******" LIMIT 1'; mysql_query($query) or report_sql_error($query, __FILE__, __LINE__); } /* Category read */ if ($_GET['action'] == 'set_category_read') { $category = discussion_forum_categories_fetch(array('id' => $_GET['category'])); $options['show_new_threads'] = true; $options['forum_id'] = $_GET['category']; $threads = discussion_forum_post_fetch($options); forum_update_category_session(array('category' => $category[0], 'threads' => $threads)); discussion_forum_reload_category_subscriptions(); if (!empty($_GET['return'])) { header('Location: ' . $_GET['return'] . ''); } }