diff options
author | Bart van Bragt <bartvb@users.sourceforge.net> | 2001-03-09 23:33:06 +0000 |
---|---|---|
committer | Bart van Bragt <bartvb@users.sourceforge.net> | 2001-03-09 23:33:06 +0000 |
commit | d3d031d9eec485a05afdcc367ca8a8cca24e98e5 (patch) | |
tree | 1a2fd368a3c3292d173e4cffa669538637f484fe /phpBB/includes | |
parent | 6be03b553d19c0598ea4101f1257bdcc2f81ab94 (diff) | |
download | forums-d3d031d9eec485a05afdcc367ca8a8cca24e98e5.tar forums-d3d031d9eec485a05afdcc367ca8a8cca24e98e5.tar.gz forums-d3d031d9eec485a05afdcc367ca8a8cca24e98e5.tar.bz2 forums-d3d031d9eec485a05afdcc367ca8a8cca24e98e5.tar.xz forums-d3d031d9eec485a05afdcc367ca8a8cca24e98e5.zip |
Moved include files
git-svn-id: file:///svn/phpbb/trunk@94 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes')
-rw-r--r-- | phpBB/includes/constants.php | 91 | ||||
-rw-r--r-- | phpBB/includes/db.php | 51 | ||||
-rw-r--r-- | phpBB/includes/page_header.php | 134 | ||||
-rw-r--r-- | phpBB/includes/page_tail.php | 63 | ||||
-rw-r--r-- | phpBB/includes/template.inc | 351 |
5 files changed, 690 insertions, 0 deletions
diff --git a/phpBB/includes/constants.php b/phpBB/includes/constants.php new file mode 100644 index 0000000000..c4cddbf6c2 --- /dev/null +++ b/phpBB/includes/constants.php @@ -0,0 +1,91 @@ +<?php +/*************************************************************************** + * includes.php + * ------------------- + * begin : Saturday, Feb 13, 2001 + * copyright : (C) 2001 The phpBB Group + * email : support@phpbb.com + * + * $Id$ + * + * + ***************************************************************************/ + + +/*************************************************************************** + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * + ***************************************************************************/ + +// Constants +// Debug Level +define(DEBUG, 1); // Debugging on +//define(DEBUG, 0); // Debugging off + +// User Levels +define(ADMIN, 4); +define(SUPERMOD, 3); +define(MODERATOR, 2); +define(USER, 1); +define(DELETED, -1); +define(ANONYMOUS, -1); + +// Forum access levels +define(PUBLIC, 1); +define(PRIVATE, 2); + +// Forum posting levels +define(ANONALLOWED, 2); +define(REGONLY, 1); +define(MODONLY, 3); + +// Topic state +define(UNLOCKED, 0); +define(LOCKED, 1); + +// Ban time types +define(SECONDS, 1); +define(MINUTES, 2); +define(HOURS, 3); +define(DAYS, 4); +define(YEARS, 5); + +// Error codes +define(SQL_CONNECT, 1); +define(BANNED, 2); +define(QUERY_ERROR, 3); +define(SESSION_CREATE, 4); +define(NO_TOPICS, 5); +define(GENERAL_ERROR, 6); +define(LOGIN_FAILED, 7); + +// URL PARAMETERS +define(POST_TOPIC_URL, 't'); +define(POST_FORUM_URL, 'f'); +define(POST_USERS_URL, 'u'); + +define('BANLIST_TABLE', $table_prefix.'banlist'); +define('CATEGORIES_TABLE', $table_prefix.'categories'); +define('CONFIG_TABLE', $table_prefix.'config'); +define('DISALLOW_TABLE', $table_prefix.'disallow'); +define('FORUM_ACCESS_TABLE', $table_prefix.'forum_access'); +define('FORUM_MODS_TABLE', $table_prefix.'forum_mods'); +define('FORUMS_TABLE', $table_prefix.'forums'); +define('HEADERMETAFOOTER_TABLE', $table_prefix.'headermetafooter'); +define('POSTS_TABLE', $table_prefix.'posts'); +define('POSTS_TEXT_TABLE', $table_prefix.'posts_text'); +define('PRIV_MSGS_TABLE', $table_prefix.'priv_msgs'); +define('RANKS_TABLE', $table_prefix.'ranks'); +define('SESSIONS_TABLE', $table_prefix.'sessions'); +define('THEMES_TABLE', $table_prefix.'themes'); +define('TOPICS_TABLE', $table_prefix.'topics'); +define('USERS_TABLE', $table_prefix.'users'); +define('WHOSONLINE_TABLE', $table_prefix.'whosonline'); +define('WORDS_TABLE', $table_prefix.'words'); + +?> diff --git a/phpBB/includes/db.php b/phpBB/includes/db.php new file mode 100644 index 0000000000..874f4a8ac4 --- /dev/null +++ b/phpBB/includes/db.php @@ -0,0 +1,51 @@ +<?php +/*************************************************************************** + * db.php + * ------------------- + * begin : Saturday, Feb 13, 2001 + * copyright : (C) 2001 The phpBB Group + * email : support@phpbb.com + * + * $Id$ + * + * + ***************************************************************************/ + +/*************************************************************************** + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * + ***************************************************************************/ + +switch($dbms) +{ + case 'mysql': + include('db/mysql.'.$phpEx); + break; + case 'postgres': + include('db/postgres7.'.$phpEx); + break; + case 'mssql': + include('db/mssql.'.$phpEx); + break; + case 'odbc': + include('db/odbc.'.$phpEx); + break; + case 'oracle': + include('db/oracle.'.$phpEx); + break; +} + +// Make the database connection. +$db = new sql_db($dbhost, $dbuser, $dbpasswd, $dbname, false); +if(!$db) +{ + $db_error = $db->sql_error(); + error_die($db, SQL_CONNECT, $db_error["message"]); +} + +?> diff --git a/phpBB/includes/page_header.php b/phpBB/includes/page_header.php new file mode 100644 index 0000000000..903ed4dd69 --- /dev/null +++ b/phpBB/includes/page_header.php @@ -0,0 +1,134 @@ +<?php +/*************************************************************************** + * page_header.php + * ------------------- + * begin : Saturday, Feb 13, 2001 + * copyright : (C) 2001 The phpBB Group + * email : support@phpbb.com + * + * $Id$ + * + * + ***************************************************************************/ + + +/*************************************************************************** + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * + ***************************************************************************/ + +// Parse and show the overall header. +$template->set_file(array("overall_header" => "overall_header.tpl", + "overall_footer" => "overall_footer.tpl")); + +if($user_logged_in) +{ + $logged_in_status = "You are logged in as <b>".$userdata["username"]."</b>."; +} +else +{ + $logged_in_status = "You are not logged in."; +} + +$template->set_var(array("SITENAME" => $sitename, + "PHPEX" => $phpEx, + "PAGE_TITLE" => $page_title, + "LOGIN_STATUS" => $logged_in_status, + "META_INFO" => $meta_tags, + "L_USERNAME" => $l_username, + "L_PASSWORD" => $l_password, + "L_WELCOMETO" => $l_welcometo, + "L_REGISTER" => $l_register, + "L_PROFILE" => $l_profile, + "L_SEARCH" => $l_search, + "L_PRIVATEMSGS" => $l_privmsgs, + "L_MEMBERLIST" => $l_memberslist, + "L_FAQ" => $l_faq, + "L_FORUM" => $l_forum, + "L_TOPICS" => $l_topics, + "L_REPLIES" => $l_replies, + "L_VIEWS" => $l_views, + "L_POSTS" => $l_posts, + "L_LASTPOST" => $l_lastpost, + "L_MODERATOR" => $l_moderator, + "L_MESSAGES" => $l_messages, + "L_POSTEDTOTAL" => $l_postedtotal, + "L_WEHAVE" => $l_wehave, + "L_REGUSERS" => $l_regedusers, + "L_NEWESTUSER" => $l_newestuser, + "L_BROWSING" => $l_browsing, + "L_ARECURRENTLY" => $l_arecurrently, + "L_THEFORUMS" => $l_theforums, + "L_NONEWPOSTS" => $l_nonewposts, + "L_NEWPOSTS" => $l_newposts)); + +$template->pparse("output", "overall_header"); + +// Do a switch on page type, this way we only load the templates that we need at the time +switch($pagetype) +{ + case 'index': + $template->set_file(array("header" => "index_header.tpl", + "body" => "index_body.tpl", + "footer" => "index_footer.tpl")); + + $template->set_var(array("TOTAL_POSTS" => $total_posts, + "TOTAL_USERS" => $total_users, + "NEWEST_USER" => $newest_user, + "NEWEST_UID" => $newest_uid, + "USERS_BROWSING" => $users_browsing)); + + $template->pparse("output", "header"); + break; + + case 'viewforum': + $template->set_file(array("header" => "viewforum_header.tpl", + "body" => "viewforum_body.tpl", + "jumpbox" => "jumpbox.tpl", + "footer" => "viewforum_footer.tpl")); + + $jumpbox = make_jumpbox($db); + $template->set_var(array("JUMPBOX_LIST" => $jumpbox, + "JUMPBOX_ACTION" => "viewforum.".$phpEx, + "SELECT_NAME" => "forum_id")); + $template->parse("JUMPBOX","jumpbox"); + + $template->set_var(array("FORUM_ID" => $forum_id, + "FORUM_NAME" => $forum_name, + "MODERATORS" => $forum_moderators)); + + $template->pparse("output", "header"); + break; + case 'viewtopic': + $template->set_file(array("header" => "viewtopic_header.tpl", + "body" => "viewtopic_body.tpl", + "jumpbox" => "jumpbox.tpl", + "footer" => "viewtopic_footer.tpl")); + $jumpbox = make_jumpbox($db); + $template->set_var(array("JUMPBOX_LIST" => $jumpbox, + "JUMPBOX_ACTION" => "viewforum.".$phpEx, + "SELECT_NAME" => "forum_id")); + $template->parse("JUMPBOX","jumpbox"); + + $template->set_var(array("FORUM_ID" => $forum_id, + "FORUM_NAME" => $forum_name, + "TOPIC_ID" => $topic_id, + "TOPIC_TITLE" => $topic_title)); + $template->pparse("output", "header"); + break; + case 'newtopic': + $template->set_file(array("header" => "newtopic_header.tpl", + "body" => "posting_body.tpl")); + $template->set_var(array("FORUM_ID" => $forum_id, + "FORUM_NAME" => $forum_name, + "L_POSTNEWIN" => $l_postnewin)); + $template->pparse("output", "header"); + break; +} + +?> diff --git a/phpBB/includes/page_tail.php b/phpBB/includes/page_tail.php new file mode 100644 index 0000000000..a9f5ee8086 --- /dev/null +++ b/phpBB/includes/page_tail.php @@ -0,0 +1,63 @@ +<?php +/*************************************************************************** + * page_tail.php + * ------------------- + * begin : Saturday, Feb 13, 2001 + * copyright : (C) 2001 The phpBB Group + * email : support@phpbb.com + * + * $Id$ + * + * + ***************************************************************************/ + + +/*************************************************************************** + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * + ***************************************************************************/ + +// Load/parse the footer template we need based on pagetype. +switch($pagetype) +{ + case 'index': + $template->pparse("output", "footer"); + break; + + case 'viewforum': + + $template->set_var(array("PHPEX" => $phpEx, + "FORUM_ID" => $forum_id)); + $template->pparse("output", "footer"); + break; + case 'viewtopic': + $template->pparse("output", "footer"); + break; +} + +// Show the overall footer. +if($user_logged_in) +{ + $admin_link = "<a href=\"admin/index.php\">Administration Panel</a>"; +} +$template->set_var(array("PHPBB_VERSION" => "2.0-alpha", + "ADMIN_LINK" => $admin_link)); +$template->pparse("output", "overall_footer"); + +// Close our DB connection. +$db->sql_close(); + +$mtime = microtime(); +$mtime = explode(" ",$mtime); +$mtime = $mtime[1] + $mtime[0]; +$endtime = $mtime; +$totaltime = ($endtime - $starttime); + +printf("<center><font size=-2>phpBB Created this page in %f seconds.</font></center>", $totaltime); + +?> diff --git a/phpBB/includes/template.inc b/phpBB/includes/template.inc new file mode 100644 index 0000000000..a6d4e1a22b --- /dev/null +++ b/phpBB/includes/template.inc @@ -0,0 +1,351 @@ +<?php +/* + * Session Management for PHP3 + * + * (C) Copyright 1999-2000 NetUSE GmbH + * Kristian Koehntopp + * + * $Id$ + * + * This code was NOT written by the phpBB group. It is part of the PHPLib + * package written by NetUSE GmbH and Kristian Koehntopp. + * This code is released under the GNU General Public Licence and used in + * accordance with said licence. + */ + +class Template { + var $classname = "Template"; + + /* if set, echo assignments */ + var $debug = false; + + /* $file[handle] = "filename"; */ + var $file = array(); + + /* relative filenames are relative to this pathname */ + var $root = ""; + + /* $varkeys[key] = "key"; $varvals[key] = "value"; */ + var $varkeys = array(); + var $varvals = array(); + + /* "remove" => remove undefined variables + * "comment" => replace undefined variables with comments + * "keep" => keep undefined variables + */ + var $unknowns = "remove"; + + /* "yes" => halt, "report" => report error, continue, "no" => ignore error quietly */ + var $halt_on_error = "yes"; + + /* last error message is retained here */ + var $last_error = ""; + + + /***************************************************************************/ + /* public: Constructor. + * root: template directory. + * unknowns: how to handle unknown variables. + */ + function Template($root = ".", $unknowns = "remove") { + $this->set_root($root); + $this->set_unknowns($unknowns); + } + + /* public: setroot(pathname $root) + * root: new template directory. + */ + function set_root($root) { + if (!is_dir($root)) { + $this->halt("set_root: $root is not a directory."); + return false; + } + + $this->root = $root; + return true; + } + + /* public: set_unknowns(enum $unknowns) + * unknowns: "remove", "comment", "keep" + * + */ + function set_unknowns($unknowns = "keep") { + $this->unknowns = $unknowns; + } + + /* public: set_file(array $filelist) + * filelist: array of handle, filename pairs. + * + * public: set_file(string $handle, string $filename) + * handle: handle for a filename, + * filename: name of template file + */ + function set_file($handle, $filename = "") { + if (!is_array($handle)) { + if ($filename == "") { + $this->halt("set_file: For handle $handle filename is empty."); + return false; + } + $this->file[$handle] = $this->filename($filename); + } else { + reset($handle); + while(list($h, $f) = each($handle)) { + $this->file[$h] = $this->filename($f); + } + } + } + + /* public: set_block(string $parent, string $handle, string $name = "") + * extract the template $handle from $parent, + * place variable {$name} instead. + */ + function set_block($parent, $handle, $name = "") { + if (!$this->loadfile($parent)) { + $this->halt("subst: unable to load $parent."); + return false; + } + if ($name == "") + $name = $handle; + + $str = $this->get_var($parent); + $reg = "/<!--\s+BEGIN $handle\s+-->(.*)\n\s*<!--\s+END $handle\s+-->/sm"; + preg_match_all($reg, $str, $m); + $str = preg_replace($reg, "{" . "$name}", $str); + $this->set_var($handle, $m[1][0]); + $this->set_var($parent, $str); + } + + /* public: set_var(array $values) + * values: array of variable name, value pairs. + * + * public: set_var(string $varname, string $value) + * varname: name of a variable that is to be defined + * value: value of that variable + */ + function set_var($varname, $value = "") { + if (!is_array($varname)) { + if (!empty($varname)) + if ($this->debug) print "scalar: set *$varname* to *$value*<br>\n"; + $this->varkeys[$varname] = "/".$this->varname($varname)."/"; + $this->varvals[$varname] = $value; + } else { + reset($varname); + while(list($k, $v) = each($varname)) { + if (!empty($k)) + if ($this->debug) print "array: set *$k* to *$v*<br>\n"; + $this->varkeys[$k] = "/".$this->varname($k)."/"; + $this->varvals[$k] = $v; + } + } + } + + /* public: subst(string $handle) + * handle: handle of template where variables are to be substituted. + */ + function subst($handle) { + if (!$this->loadfile($handle)) { + $this->halt("subst: unable to load $handle."); + return false; + } + + $str = $this->get_var($handle); + $str = @preg_replace($this->varkeys, $this->varvals, $str); + return $str; + } + + /* public: psubst(string $handle) + * handle: handle of template where variables are to be substituted. + */ + function psubst($handle) { + print $this->subst($handle); + + return false; + } + + /* public: parse(string $target, string $handle, boolean append) + * public: parse(string $target, array $handle, boolean append) + * target: handle of variable to generate + * handle: handle of template to substitute + * append: append to target handle + */ + function parse($target, $handle, $append = false) { + if (!is_array($handle)) { + $str = $this->subst($handle); + if ($append) { + $this->set_var($target, $this->get_var($target) . $str); + } else { + $this->set_var($target, $str); + } + } else { + reset($handle); + while(list($i, $h) = each($handle)) { + $str = $this->subst($h); + $this->set_var($target, $str); + } + } + + return $str; + } + + function pparse($target, $handle, $append = false) { + print $this->parse($target, $handle, $append); + return false; + } + + /* public: get_vars() + */ + function get_vars() { + reset($this->varkeys); + while(list($k, $v) = each($this->varkeys)) { + $result[$k] = $this->varvals[$k]; + } + + return $result; + } + + /* public: get_var(string varname) + * varname: name of variable. + * + * public: get_var(array varname) + * varname: array of variable names + */ + function get_var($varname) { + if (!is_array($varname)) { + return $this->varvals[$varname]; + } else { + reset($varname); + while(list($k, $v) = each($varname)) { + $result[$k] = $this->varvals[$k]; + } + + return $result; + } + } + + /* public: get_undefined($handle) + * handle: handle of a template. + */ + function get_undefined($handle) { + if (!$this->loadfile($handle)) { + $this->halt("get_undefined: unable to load $handle."); + return false; + } + + preg_match_all("/\{([^}]+)\}/", $this->get_var($handle), $m); + $m = $m[1]; + if (!is_array($m)) + return false; + + reset($m); + while(list($k, $v) = each($m)) { + if (!isset($this->varkeys[$v])) + $result[$v] = $v; + } + + if (count($result)) + return $result; + else + return false; + } + + /* public: finish(string $str) + * str: string to finish. + */ + function finish($str) { + switch ($this->unknowns) { + case "keep": + break; + + case "remove": + $str = preg_replace('/{[^ \t\r\n}]+}/', "", $str); + break; + + case "comment": + $str = preg_replace('/{([^ \t\r\n}]+)}/', "<!-- Template $handle: Variable \\1 undefined -->", $str); + break; + } + + return $str; + } + + /* public: p(string $varname) + * varname: name of variable to print. + */ + function p($varname) { + print $this->finish($this->get_var($varname)); + } + + function get($varname) { + return $this->finish($this->get_var($varname)); + } + + /***************************************************************************/ + /* private: filename($filename) + * filename: name to be completed. + */ + function filename($filename) { + if (substr($filename, 0, 1) != "/") { + $filename = $this->root."/".$filename; + } + + if (!file_exists($filename)) + $this->halt("filename: file $filename does not exist."); + + return $filename; + } + + /* private: varname($varname) + * varname: name of a replacement variable to be protected. + */ + function varname($varname) { + return preg_quote("{".$varname."}"); + } + + /* private: loadfile(string $handle) + * handle: load file defined by handle, if it is not loaded yet. + */ + function loadfile($handle) { + if (isset($this->varkeys[$handle]) and !empty($this->varvals[$handle])) + return true; + + if (!isset($this->file[$handle])) { + $this->halt("loadfile: $handle is not a valid handle."); + return false; + } + $filename = $this->file[$handle]; + + $str = implode("", @file($filename)); + if (empty($str)) { + $this->halt("loadfile: While loading $handle, $filename does not exist or is empty."); + return false; + } + + $this->set_var($handle, $str); + + return true; + } + + /***************************************************************************/ + /* public: halt(string $msg) + * msg: error message to show. + */ + function halt($msg) { + $this->last_error = $msg; + + if ($this->halt_on_error != "no") + $this->haltmsg($msg); + + if ($this->halt_on_error == "yes") + die("<b>Halted.</b>"); + + return false; + } + + /* public, override: haltmsg($msg) + * msg: error message to show. + */ + function haltmsg($msg) { + printf("<b>Template Error:</b> %s<br>\n", $msg); + } +} +?> |