aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes
diff options
context:
space:
mode:
authorBart van Bragt <bartvb@users.sourceforge.net>2001-03-09 23:33:06 +0000
committerBart van Bragt <bartvb@users.sourceforge.net>2001-03-09 23:33:06 +0000
commitd3d031d9eec485a05afdcc367ca8a8cca24e98e5 (patch)
tree1a2fd368a3c3292d173e4cffa669538637f484fe /phpBB/includes
parent6be03b553d19c0598ea4101f1257bdcc2f81ab94 (diff)
downloadforums-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.php91
-rw-r--r--phpBB/includes/db.php51
-rw-r--r--phpBB/includes/page_header.php134
-rw-r--r--phpBB/includes/page_tail.php63
-rw-r--r--phpBB/includes/template.inc351
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);
+ }
+}
+?>