HTACCESS Kodları
<IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^game/([0-9]+)/.+\.html$ file.php?f=$1 RewriteRule ^category/([0-9]+)/.+/([0-9]+)\.html$ browse.php?c=$1&p=$2 RewriteRule ^category/([0-9]+)/.+/?$ browse.php?c=$1 RewriteRule ^profile/([0-9]+)/.+\.html$ profile.php?u=$1 RewriteRule ^page/([0-9]+)\.html$ page.php?p=$1 RewriteRule ^scores/([0-9]+)/([0-9]+)\.html$ scores.php?f=$1&p=$2 RewriteRule ^game/[0-9]+/(newscore|index)\.php$ $1.php RewriteRule ^game/[0-9]+/arcade/gamedata/(.*)$ arcade/gamedata/$1 [L] </IfModule>
Functions.php Kodları
<?php
/**
* onArcade 2.2.0
* Copyright © 2006-2009 Hans Mäesalu & Eveterm OÜ, All Rights Reserved
**
* ONARCADE IS NOT FREE SOFTWARE!
* http://www.onarcade.com
**
* Global onArcade functions are located here.
**/
// Strip HTML dags
function nohtml($message) {
$message = preg_replace("#&(?!\#[0-9]+;)#si", "&", $message);
$message = str_replace("<","<", $message);
$message = str_replace(">",">", $message);
$message = str_replace("\"",""", $message);
return $message;
}
// Generate file URL
function fileurl($file_id, $file_title) {
global $settings;
if ($settings['sefriendly'] == 1) {
$replace = array(' ', '\'', ':', '(', ')', '&', 'ä', 'ö', 'ü', 'ğ', 'ş', 'ç', 'ı', 'Ö', 'Ü', 'Ğ', 'Ş', 'Ç', 'İ', );
$replacement = array('_', '', '-', '8', '9', 'and', 'a', 'o', 'u', 'g', 's', 'c', 'i', 'O', 'U', 'G', 'S', 'C', 'I');
$file_title = str_replace($replace, $replacement, $file_title);
return $settings['siteurl'] .'/'. $settings['fileurl'] .'/'. $file_id .'/'. $file_title .'.html';
} else
return $settings['siteurl'] .'/file.php?f='. $file_id;
}
// Generate category URL
function categoryurl($category_id, $category_title, $page = 1) {
global $settings;
if ($settings['sefriendly'] == 1) {
$replace=array ("!","^","'","%","&","[","]","(",")","?","=","*",",",".","~","%","#","@","ç","Ç","ş","Ş","ğ","Ğ","ü","Ü","İ","ı","ö","Ö","ı","Å?","ü","ç","ö","Ä?","ÅŸ","Ç","İ","ÄŸ","Å?","Ö","Ü","ı","Å?","ç","ö","Ä?","ÅŸ","Ç","İ","ÄŸ","Å?","Ö","Ü","ü","ÄŸ","@",";","~","=");
$replacement=array("","","","","","","","","","","","","","","","","","","c","C","s","S","g","G","u","U","i","i","o","O","i","s","u","c","o","g","s","C","i","g","S","O","U","i","s","c","o","g","s","C","i","g","S","o","U","u","g","","","","-");
$category_title = str_replace($replace, $replacement, $category_title);
return $settings['siteurl'] .'/'. $settings['categoryurl'] .'/'. $category_id .'/'. $category_title .'/'. $page .'.html';
} else
return $settings['siteurl'] .'/browse.php?c='. $category_id .'&p='. $page;
}
// Generate profile URL
function profileurl($userid,$username) {
global $settings;
if ($settings['sefriendly'] == 1) {
$replace=array ("!","^","'","%","&","[","]","(",")","?","=","*",",",".","~","%","#","@","ç","Ç","ş","Ş","ğ","Ğ","ü","Ü","İ","ı","ö","Ö","ı","Å?","ü","ç","ö","Ä?","ÅŸ","Ç","İ","ÄŸ","Å?","Ö","Ü","ı","Å?","ç","ö","Ä?","ÅŸ","Ç","İ","ÄŸ","Å?","Ö","Ü","ü","ÄŸ","@",";","~","=");
$replacement=array("","","","","","","","","","","","","","","","","","","c","C","s","S","g","G","u","U","i","i","o","O","i","s","u","c","o","g","s","C","i","g","S","O","U","i","s","c","o","g","s","C","i","g","S","o","U","u","g","","","","-");
$username = str_replace($replace, $replacement, $username);
$profileurl = $settings['siteurl'] .'/'. $settings['profileurl'] .'/'. $userid .'/'. $username .'.html';
} else {
$profileurl = $settings['siteurl'] .'/profile.php?u='. $userid;
}
return $profileurl;
}
// Generate score URL
function scoresurl($scores_id, $scores_page = 1) {
global $settings;
if ($settings['sefriendly'] == 1)
return $settings['siteurl'] .'/'. $settings['scoresurl'] .'/'. $scores_id .'/'. $scores_page .'.html';
else
return $settings['siteurl'] .'/scores.php?f='. $scores_id .'&p='. $scores_page;
}
// Get avatar URL
function avatar_url($avatar, $avatar_uploaded) {
global $settings;
if (empty($avatar))
$avatar_url = $settings['siteurl'] .'/images/noavatar.gif';
else {
if ($avatar_uploaded == '1')
$avatar_url = $settings['siteurl'] .'/images/avatars/'. $avatar;
elseif ($avatar_uploaded == '2')
$avatar_url = $settings['siteurl'] .'/images/avatars/galleries/'. $avatar;
else
$avatar_url = $avatar;
}
return $avatar_url;
}
// file image URL
function file_image_url($image_name, $image_location) {
global $settings;
if ($image_location == 1)
return $settings['siteurl'] .'/files/image/'. $image_name;
else
return $image_name;
}
// BB Code
function bbcode($text, $extended = false) {
global $settings;
$text = preg_replace('/\[b\](.*?)\[\/b\]/is', '<b>$1</b>', $text);
$text = preg_replace('/\[u\](.*?)\[\/u\]/is', '<u>$1</u>', $text);
$text = preg_replace('/\[i\](.*?)\[\/i\]/is', '<i>$1</i>', $text);
$text = preg_replace('/\[s\](.*?)\[\/s\]/is', '<s>$1</s>', $text);
$text = str_replace(':)','<img src="'. $settings['siteurl'] .'/images/happy.gif" alt="" />',$text);
$text = str_replace(':(','<img src="'. $settings['siteurl'] .'/images/sad.gif" alt="" />',$text);
$text = str_replace(';)','<img src="'. $settings['siteurl'] .'/images/wink.gif" alt="" />',$text);
$text = str_replace(':@:','<img src="'. $settings['siteurl'] .'/images/@.gif" alt="" />',$text);
$text = str_replace(':8','<img src="'. $settings['siteurl'] .'/images/cool.gif" alt="" />',$text);
$text = str_replace(':wave:','<img src="'. $settings['siteurl'] .'/images/wave.gif" alt="" />',$text);
$text = str_replace(':think:','<img src="'. $settings['siteurl'] .'/images/think.gif" alt="" />',$text);
$text = str_replace(':clap:','<img src="'. $settings['siteurl'] .'/images/clap.gif" alt="" />',$text);
// some extra BB code, we only want this on some pages
if ($extended == true) {
while (preg_match('/\[quote\](.*?)\[\/quote\]/is', $text))
$text = preg_replace('/\[quote\](.*?)\[\/quote\]/is', '<div class="quote">$1</div>', $text);
$text = preg_replace('/\[img\]([a-z0-9_\-?\/:\.]*?)\[\/img\]/is', '<img src="$1" />', $text);
$text = preg_replace('/\[url=([a-z0-9_\-?\/:\.]*?)\](.*?)\[\/url\]/is', '<a href="$1" target="_blank">$2</a>', $text);
}
return $text;
}
// Filter bad words
function word_filter($text) {
global $settings;
if ($settings['bad_word_filter'] == 1) {
$text = preg_replace('/('. $settings['bad_words'] .')/i', '***', $text);
}
return $text;
}
// shorten file description
function shorten_description($description, $length) {
if (strlen($description) > $length)
return substr($description , 0, ($length - 3)) .'...';
else
return $description;
}
// Generate real date from UNIX timestamp
function mod_date($time, $format = 1) {
global $lang;
switch ($format) {
case 1:
$day = date('j', $time);
$month = $lang['datetime'][date('F', $time)];
$year = date('Y', $time);
return $day .' '. $month .' '. $year;
break;
case 2:
$day = date('j', $time);
$month = $lang['datetime'][date('F', $time)];
return $day .' '. $month .' '. date('Y G:i', $time);
break;
case 3:
return date('r', $time);
break;
case 4:
return date('d-m-Y G:i', $time);
break;
}
}
// generate stars
function rating_stars($rating) {
global $settings;
$rating_b = $rating + 0.25;
$rating_c = (int)($rating + 0.75);
$stars = '';
for ($i = 1; $i <= 5; ++$i) {
if ($i <= $rating_b)
$stars .= '<img src="'. $settings['siteurl'] .'/images/star.png" id="rate_'. $i .'" alt="'. $rating .'" /> ';
elseif ($i == $rating_c)
$stars .= '<img src="'. $settings['siteurl'] .'/images/star_half.png" id="rate_'. $i .'" alt="'. $rating .'" /> ';
else
$stars .= '<img src="'. $settings['siteurl'] .'/images/star_empty.png" id="rate_'. $i .'" alt="'. $rating .'" /> ';
}
return $stars;
}
// Get the number of stars (index page)
function stars($stars) {
if ($stars < 0.50)
$stars = 0;
elseif ($stars < 1.50)
$stars = 1;
elseif ($stars < 2.50)
$stars = 2;
elseif ($stars < 3.50)
$stars = 3;
elseif ($stars < 4.50)
$stars = 4;
else
$stars = 5;
return $stars;
}
// Load categories
function menu_categories() {
global $tbl_prefix, $settings, $session;
$menu_categories = get_cache('menu_categories_'. $session->info['status']);
if (!$menu_categories) {
if ($session->info['status'] == 1)
$categories_menu_query = mysql_query("SELECT name, catid FROM ". $tbl_prefix ."categories WHERE status = '1' && parentcategory = 0 ORDER BY catorder, name");
else
$categories_menu_query = mysql_query("SELECT name, catid FROM ". $tbl_prefix ."categories WHERE status = '1' && permissions = '1' && parentcategory = 0 ORDER BY catorder, name");
$menu_categories = array();
while ($categories_menu_row = mysql_fetch_assoc($categories_menu_query)) {
$menu_categories[] = array (
'url' => categoryurl($categories_menu_row['catid'], $categories_menu_row['name'], 1),
'title' => $categories_menu_row['name'],
'last' => false
);
}
// last category in array
$last = count($menu_categories) - 1;
if ($last >= 0)
$menu_categories[$last]['last'] = true;
// Write cache file
write_cache('menu_categories_'. $session->info['status'], $menu_categories);
}
return $menu_categories;
}
// Get news
function news() {
global $tbl_prefix, $settings;
$news = get_cache('news');
if (!$news) {
if ($settings['news'] == 2)
$news_query = mysql_query("
SELECT
r.title, r.message, r.date_posted AS date
FROM
". $tbl_prefix ."forums_topics AS t
LEFT JOIN ". $tbl_prefix ."forums_replies AS r ON (t.topic_id = r.topic_id && first_post = 1)
WHERE
t.forum_id = ". $settings['news_forum'] ."
ORDER BY t.topic_id DESC
LIMIT ". $settings['news_index']
);
else
$news_query = mysql_query("SELECT title, message, date FROM ". $tbl_prefix ."news WHERE status = '1' ORDER BY newsid DESC LIMIT ". $settings['news_index']);
$news = array();
while ($news_row = mysql_fetch_assoc($news_query)) {
$news[] = array (
'title' => nohtml($news_row['title']),
'text' => bbcode(nl2br(nohtml($news_row['message'])), true),
'date' => mod_date($news_row['date'])
);
}
write_cache('news', $news);
}
return $news;
}
/**
* onArcade 2.2 cache engine
**/
function get_cache($file_name) {
global $settings, $u_time;
$cache_file = 'cache/'. $file_name .'.cache';
if ($settings['cache'] == 1 && file_exists($cache_file) && filemtime($cache_file) > ($u_time - ($settings['cache_expire'] * 60))) {
return unserialize(file_get_contents($cache_file));
} else
return false;
}
function write_cache($file_name, $file_content) {
global $settings;
if ($settings['cache'] == 1) {
// Some important variables
$cache_file = 'cache/'. $file_name .'.cache';
$file_content = serialize($file_content);
// And lets write the file
$open_cache_file = fopen($cache_file, "w");
fwrite($open_cache_file, $file_content);
fclose($open_cache_file);
}
}
// make sure username is valid
function verify_username($username) {
if (preg_match('#^[a-zA-Z0-9._-]{3,25}$#', $username))
return true;
else
return false;
}
// make sure email is valid
function verify_email($email) {
if (preg_match('#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z]{2,4}$#', $email))
return true;
else
return false;
}
// new PM notification
function new_pm() {
global $lang, $session, $header_add, $tbl_prefix;
if ($session->info['newpm'] == 1) {
$header_add .= '
<script type="text/javascript">
addLoadEvent(function() { if (window.confirm("'. $lang['new_pm_click_ok_cancel'] .'")) window.location = siteurl + "/privatemessages.php"; });
</script>';
mysql_query("UPDATE ". $tbl_prefix ."users SET newpm = '0' WHERE userid = ". $session->info['id'] ." LIMIT 1");
}
if ($session->info['new_friend'] == 1) {
$header_add .= '
<script type="text/javascript">
addLoadEvent(function() { if (window.confirm("'. $lang['new_friend_ok_cancel'] .'")) window.location = siteurl + "/usercp.php?a=friends&type=invites"; });
</script>';
mysql_query("UPDATE ". $tbl_prefix ."users SET new_friend = '0' WHERE userid = ". $session->info['id'] ." LIMIT 1");
}
}
// check if we have correct HTTP_REFERER
function http_referer($alternative = '') {
global $settings;
if (substr($_SERVER['HTTP_REFERER'], 0, strlen($settings['siteurl'])) == $settings['siteurl'])
return $_SERVER['HTTP_REFERER'];
else
return $settings['siteurl'] . $alternative;
}
// count the number of rows in database
function count_rows($table_name, $variables = null) {
if ($variables == NULL)
$sql = "SELECT count(*) FROM ". $table_name;
else
$sql = "SELECT count(*) FROM ". $table_name ." WHERE ". $variables;
$query = mysql_query($sql);
$row = mysql_fetch_assoc($query);
return $row['count(*)'];
}
// make "unserializing" easier
function unserialize2($data) {
if (strlen($data))
return unserialize($data);
else
return array();
}
// convert json data to array
function json_array($json) {
$json = str_replace('\\/', '/', $json);
$json = str_replace(array('":', '{', '}', '[', ']'), array('"=>', 'array(', ')', 'array(', ')'), $json);
@eval("\$json_array = ". $json .";");
return $json_array;
}
// JSON output
function json_o($json_array) {
header("Content-type: text/json; charset=utf-8"); // header
echo json_encode($json_array); // output
exit(); // and exit
}
?>