rendered paste body<?php
/**
* @author Froobe.co.uk - Ryan
* @copyright 2007
* @license XK12-KLSA-SHA9
* @name News Panel
*
*/
/**
* MySQL query stuff, just to make it easy
*/
class sql_connect
{
function sql_login( $username, $password, $sever, $database )
{
if( !@mysql_connect( $sever, $username, $password) && !@mysql_selectdb( $database ) )
{
header( "Location: error.php?id=1001" );
} else {
mysql_connect( $sever, $username, $password );
mysql_selectdb( $database );
}
if( !@mysql_connect( $sever, $username, $password ) )
{
header( "Location: error.php?id=1002" );
} else {
mysql_connect( $sever, $username, $password );
}
if( !@mysql_selectdb( $database ) )
{
header( "Location: error.php?id=1003" );
} else {
mysql_selectdb( $database );
}
}
}
class sql
{
function sql_fetch( $string )
{
$new_string = mysql_fetch_array( mysql_query ( $string ) );
return $new_string;
}
function sql_string ( $fetch )
{
echo $new_string["$fetch"];
}
function sql_num( $string )
{
$new_string = mysql_num_rows( mysql_query( $string ) );
return $new_string;
}
function error ( $errorcode, $error )
{
html::create_main( "default", "sql_error", "", "", $errorcode, $error );
}
}
/**
* Get all the details etc
*/
class details
{
function get_title( )
{
$title = sql::sql_fetch( "SELECT * FROM `details`");
return $title["title"];
}
function get_name ( )
{
$name = sql::sql_fetch( "SELECT * FROM `details`" );
return $name["name"];
}
function get_nav ( )
{
$sql = mysql_query( "SELECT * FROM `nav`" );
while( $nav = mysql_fetch_array( $sql ) )
{
$string .= '<a href="' . $nav["link"] . '.php">' . $nav["name"] . '</a><br />
';
}
return $string;
}
function get_templates ( )
{
$sql = mysql_query( "SELECT * FROM `templates`" );
while( $result = mysql_fetch_array( $sql ) )
{
$string .= '<a href="index.php?template=' . $result["name"] . '">' . $result["name"] . '</a><br />
';
}
return $string;
}
function set_template ( $template )
{
if( $template )
{
$_SESSION['template'] = $template;
return $_SESSION['template'];
}
else
{
$template = sql::sql_fetch("SELECT * FROM `templates` WHERE `default` = 'yes'");
$_SESSION['template'] = $template["name"];
return $_SESSION['template'];
}
}
}
/**
* Login
*/
class login
{
function log( $username, $password )
{
if( isset( $username ) && isset( $password ) )
{
$sql = mysql_query( "SELECT * FROM `users` WHERE `username` = '$username' AND `password` = '$password'");
if( mysql_num_rows( $sql ) == 1 )
{
$_SESSION["username"] = $username;
// Contine your sessions here
}
}
}
function login_check( $username, $password ) // This is to check if a user is logged in on the top of the page
{
if( isset( $username ) && isset( $password ) ) // This will work! USE: login::login_check( $_SESSION["username"]) etc
{
$sql = mysql_query( "SELECT * FROM `users` WHERE `username` = '$username' AND `password` = '$password'");
if( mysql_num_rows( $sql ) == "1" )
{
return true;
} else
{
return false;
}
}
}
}
/**
* Cleaning functions
* Made by Dan!
*/
class cleaning
{
function clean( $string )
{
$string = str_replace( "\"", "", $string );
$string = nl2br( $string );
$string = htmlentities( $string );
$words = array( "UNION",
"SELECT FROM",
"ORDER BY",
"INSERT INTO",
"TRUNCATE",
"DROP TABLE",
"CREATE TABLE",
"DROP DATABASE" ); // All the queries we want to stop
$string = preg_replace( "/$words/i", "", $string );
}
function encode( $string )
{
$string = md5( $string );
$string = sha1( $string );
return $string;
}
}
/**
* News..
*/
class news
{
function display_news( $field, $type = null )
{
if( $type == null )
{
$sql = mysql_query( "SELECT MAX(id) AS total FROM `news`" );
while( $result = mysql_fetch_array( $sql ) )
{
$id = $result['total'];
}
$ok = mysql_query( "SELECT * FROM `news` WHERE `id` = '{$id}'");
$news = mysql_fetch_array( $ok );
if( mysql_num_rows( $ok ) == 1 )
{
if( $field == "news" )
{
if( strlen( $news["news"] ) > "315" )
{
return $news["$field"] . "</p> <div class=\"postbreak\"></div>";
} else
{
return $news["$field"] . "</p> <br /><br /><div class=\"postbreak\"></div>";
}
} else
{
return $news["$field"];
}
}
}
elseif( $type == "1" )
{
$sql = mysql_query( "SELECT MAX(id) AS total FROM `news`" );
while( $result = mysql_fetch_array( $sql ) )
{
$id = $result['total'] - 1;
}
$ok = mysql_query( "SELECT * FROM `news` WHERE `id` = '{$id}'");
$news = mysql_fetch_array( $ok );
if( mysql_num_rows( $ok ) == 1 )
{
if( $field == "news" )
{
if( strlen( $news["news"] ) > "315" )
{
return $news["$field"] . "</p> <div class=\"postbreak\"></div>";
} else
{
return $news["$field"] . "</p> <br /><br /><div class=\"postbreak\"></div>";
}
} else
{
return $news["$field"];
}
}
}
elseif( $type == "2" )
{
$sql = mysql_query( "SELECT MAX(id) AS total FROM `news`" );
while( $result = mysql_fetch_array( $sql ) )
{
$id = $result['total'] - 2;
}
$ok = mysql_query( "SELECT * FROM `news` WHERE `id` = '{$id}'");
$news = mysql_fetch_array( $ok );
if( mysql_num_rows( $ok ) == 1 )
{
if( $field == "news" )
{
if( strlen( $news["news"] ) > "315" )
{
return $news["$field"] . "</p> <div class=\"postbreak\"></div>";
} else
{
return $news["$field"] . "</p> <br /><br /><div class=\"postbreak\"></div>";
}
} else
{
return $news["$field"];
}
}
}
}
function display_news_id( $field, $id )
{
$ok = mysql_query( "SELECT * FROM `news` WHERE `id` = '{$id}'");
$news = mysql_fetch_array( $ok );
if( mysql_num_rows( $ok ) == 1 )
{
if( $field == "news" )
{
return $news["$field"] . "</p> <div class=\"postbreak\"></div>";
} else
{
return $news["$field"];
}
}
}
}
/**
* The date and time stuff
*/
class date_time
{
function get_time ( )
{
$checkdst = date ( "I" );
$date = gmdate( "H:i:s" );
if( $checkdst == 1 )
{
$splittime = split( ":", $date );
$hour = $splittime[0] + 1;
if( $hour > 23) // Are we at 11pm (E.g, is it reporting 24:00 instead of 23:00)
{
$hour = "00";
}
$newdate = $hour . ":" . $splittime[1] . ":". $splittime[2];
return ( "Time (onload):" . symbols::space( ) . $newdate );
}
else
{
return ( "Time (onload):" . symbols::space( ) . $date );
}
}
}
/**
* HTML Bits
*/
class html
{
function create_header( $dir )
{
return ('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta name="author" content="' . details::get_name( ) . '">
<title>' . details::get_title( ) . '</title>
<style type="text/css">
.error
{
font-family: "Trebuchet MS", Verdana;
font-size: 12px;
}
</style>
<link rel="stylesheet" href="' . $url . '/templates/' . $dir . '/style.css" type="text/css" />
</head>
<body>
' );
}
/**
* This template system is off phpfreaks.com - thanks!
*/
function create_main ( $template, $page, $view = null, $id = null )
{
if( $view != "admin" )
{
require( "inc/template_core.php" );
} else
{
require( "../inc/template_core.php" );
}
$tplObj = new tplSys( "./" );
if( $view != "admin" ) // Now you see, we have to do this as I dont want the list getting to populated. I was bored.
{
$tplObj->getFile( array(
$page => 'templates/' . $template . '/' . $page . '.tpl',
)
);
require( "inc/config.php" );
$tplObj->varRef( $page, array(
'TITLE' => news::display_news( "title" ),
'TITLE1' => news::display_news( "title", "1" ),
'TITLE2' => news::display_news( "title", "2" ),
'TITLE_ID' => news::display_news_id( "title", $id ),
'SUB_TITLE' => news::display_news( "subtitle" ),
'SUB_TITLE1' => news::display_news( "subtitle", "1" ),
'SUB_TITLE2' => news::display_news( "subtitle", "2" ),
'SUB_TITLE_ID' => news::display_news_id( "subtitle", $id ),
'POSTED_BY' => news::display_news( "posted_by"),
'POSTED_BY1' => news::display_news( "posted_by", "1"),
'POSTED_BY2' => news::display_news( "posted_by", "2"),
'POSTED_BY_ID' => news::display_news_id( "postedby", $id ),
'AUTHOR' => news::display_news( "author" ),
'AUTHOR1' => news::display_news( "author", "1" ),
'AUTHOR2' => news::display_news( "author", "2" ),
'AUTHOR_ID' => news::display_news_id( "author", $id ),
'NEWS' => news::display_news( "news" ),
'NEWS1' => news::display_news( "news", "1" ),
'NEWS2' => news::display_news( "news", "2" ),
'NEWS_ID' => news::display_news_id( "news", $id ),
'NEWS_TIME' => news::display_news( "time" ),
'NEWS_TIME1' => news::display_news( "time", "1" ),
'NEWS_TIME2' => news::display_news( "time", "2" ),
'NEWS_TIME_ID' => news::display_news_id( "time", $id ),
'URL' => $url . "/view/" . news::display_news( "id" ),
'URL1' => $url . "/view/" . news::display_news( "id", "1" ),
'URL2' => $url . "/view/" . news::display_news( "id", "2" ),
'NAVIGATION' => "Navigation Links",
'NAME' => details::get_name( ),
'HTML_TITLE' => details::get_title( ),
'STYLE' => "templates/" . $template . "/style.css",
'COPYRIGHT' => html::create_footer( ),
'BANNER' => details::get_name( ),
'TIME' => date_time::get_time( ),
'SKIN' => details::get_templates( ),
'LINKS' => details::get_nav( )
)
);
$tplObj->parseDynamic( $page );
} else
{
$tplObj->getFile( array(
$page => '../templates/' . $template . '/admin/' . $page . '.tpl',
)
);
$tplObj->varRef( $page, array(
'TITLE' => news::display_news( "title" ),
'NAVIGATION' => "Navigation Links",
'CONTENT' => "sup dude",
'STYLE' => "../templates/" . $template . "/admin/style.css",
'NEWS_TIME' => news::display_news( "time" ),
'POSTED_BY' => news::display_news( "posted_by"),
'BANNER' => details::get_name( ),
'TIME' => date_time::get_time( ),
'COPYRIGHT' => html::create_footer( ),
'LINKS' => details::get_nav( )
)
);
$tplObj->parseDynamic( $page );
}
}
function create_footer( )
{
return ('
<div class="copyright"> Copyright ' . symbols::symbol( "copyright" ) . symbols::space( ) . date( "Y" ) . ', ' . details::get_name( ) . '
<br />
Powered by Froobe News Panel
</div>
</div>
</body>
</html>');
}
function br( )
{
echo ("
<br />
");
}
}
/**
* Symbols
*/
class symbols
{
function space ( ) // If you cant be bothered to add . " " . again...
{
return " ";
}
function symbol( $type )
{
if( isset( $type ) == "copyright" )
{
return "©";
}
// More to be added..
}
}
?>