mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-06 16:56:44 +02:00
Re-added GPL disclaimers
git-svn-id: file:///svn/phpbb/trunk@943 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
@@ -1,19 +1,28 @@
|
||||
<?php
|
||||
/***************************************************************************
|
||||
/***************************************************************************
|
||||
* auth.php
|
||||
* -------------------
|
||||
* begin : Saturday, Feb 13, 2001
|
||||
* copyright : (C) 2001 The phpBB Group
|
||||
* email : support@phpbb.com
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*
|
||||
***************************************************************************/
|
||||
* -------------------
|
||||
* 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.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
/*
|
||||
$type's accepted (pre-pend with AUTH_):
|
||||
VIEW, READ, POST, REPLY, EDIT, DELETE, STICKY, ANNOUNCE, VOTE, VOTECREATE,
|
||||
VIEW, READ, POST, REPLY, EDIT, DELETE, STICKY, ANNOUNCE, VOTE, VOTECREATE,
|
||||
ATTACH
|
||||
|
||||
$types pending (for future versions, pre-pend with AUTH_):
|
||||
@@ -21,7 +30,7 @@
|
||||
|
||||
Possible options ($type/forum_id combinations):
|
||||
|
||||
* If you include a type and forum_id then a specific lookup will be done and
|
||||
* If you include a type and forum_id then a specific lookup will be done and
|
||||
the single result returned
|
||||
|
||||
* If you set type to AUTH_ALL and specify a forum_id an array of all auth types
|
||||
@@ -30,8 +39,8 @@
|
||||
* If you provide a forum_id a specific lookup on that forum will be done
|
||||
|
||||
* If you set forum_id to AUTH_LIST_ALL and specify a type an array listing the
|
||||
results for all forums will be returned
|
||||
|
||||
results for all forums will be returned
|
||||
|
||||
* If you set forum_id to AUTH_LIST_ALL and type to AUTH_ALL a multidimensional
|
||||
array containing the auth permissions for all types and all forums for that
|
||||
user is returned
|
||||
@@ -115,8 +124,8 @@ function auth($type, $forum_id, $userdata, $f_access = -1)
|
||||
{
|
||||
$forum_match_sql = ($forum_id != AUTH_LIST_ALL) ? "WHERE a.forum_id = $forum_id" : "";
|
||||
|
||||
$sql = "SELECT a.forum_id, $a_sql
|
||||
FROM " . FORUMS_TABLE . " a
|
||||
$sql = "SELECT a.forum_id, $a_sql
|
||||
FROM " . FORUMS_TABLE . " a
|
||||
$forum_match_sql";
|
||||
$af_result = $db->sql_query($sql);
|
||||
|
||||
@@ -148,23 +157,23 @@ function auth($type, $forum_id, $userdata, $f_access = -1)
|
||||
{
|
||||
$forum_match_sql = ($forum_id != AUTH_LIST_ALL) ? "AND a.forum_id = $forum_id" : "";
|
||||
|
||||
/* $sql = "SELECT au.forum_id, $a_sql, au.auth_mod, g.group_single_user
|
||||
FROM " . AUTH_ACCESS_TABLE . " au, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE. " g
|
||||
WHERE ug.user_id = " . $userdata['user_id'] . "
|
||||
AND g.group_id = ug.group_id
|
||||
AND (
|
||||
( au.user_id = ug.user_id
|
||||
AND g.group_id = 0 )
|
||||
OR
|
||||
/* $sql = "SELECT au.forum_id, $a_sql, au.auth_mod, g.group_single_user
|
||||
FROM " . AUTH_ACCESS_TABLE . " au, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE. " g
|
||||
WHERE ug.user_id = " . $userdata['user_id'] . "
|
||||
AND g.group_id = ug.group_id
|
||||
AND (
|
||||
( au.user_id = ug.user_id
|
||||
AND g.group_id = 0 )
|
||||
OR
|
||||
( au.group_id = ug.group_id
|
||||
AND g.group_id <> 0 )
|
||||
)
|
||||
$forum_match_sql";*/
|
||||
$sql = "SELECT a.forum_id, $a_sql, a.auth_mod, g.group_single_user
|
||||
FROM " . AUTH_ACCESS_TABLE . " a, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g
|
||||
WHERE ug.user_id = ".$userdata['user_id']. "
|
||||
AND g.group_id = ug.group_id
|
||||
AND a.group_id = ug.group_id
|
||||
$sql = "SELECT a.forum_id, $a_sql, a.auth_mod, g.group_single_user
|
||||
FROM " . AUTH_ACCESS_TABLE . " a, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g
|
||||
WHERE ug.user_id = ".$userdata['user_id']. "
|
||||
AND g.group_id = ug.group_id
|
||||
AND a.group_id = ug.group_id
|
||||
$forum_match_sql";
|
||||
$a_result = $db->sql_query($sql);
|
||||
if(!$a_result)
|
||||
@@ -239,12 +248,12 @@ function auth($type, $forum_id, $userdata, $f_access = -1)
|
||||
$auth_user[$key] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_ACL, $key, $u_access, $is_admin) : 0;
|
||||
$auth_user[$key . '_type'] = $lang['Users_granted_access'];
|
||||
break;
|
||||
|
||||
|
||||
case AUTH_MOD:
|
||||
$auth_user[$key] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_MOD, 'auth_mod', $u_access, $is_admin) : 0;
|
||||
$auth_user[$key . '_type'] = $lang['Moderators'];
|
||||
break;
|
||||
|
||||
|
||||
case AUTH_ADMIN:
|
||||
$auth_user[$key] = $is_admin;
|
||||
$auth_user[$key . '_type'] = $lang['Administrators'];
|
||||
@@ -278,12 +287,12 @@ function auth($type, $forum_id, $userdata, $f_access = -1)
|
||||
$auth_user[$f_forum_id][$key] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_ACL, $key, $u_access[$f_forum_id], $is_admin) : 0;
|
||||
$auth_user[$f_forum_id][$key . '_type'] = $lang['Users_granted_access'];
|
||||
break;
|
||||
|
||||
|
||||
case AUTH_MOD:
|
||||
$auth_user[$f_forum_id][$key] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_MOD, 'auth_mod', $u_access[$f_forum_id], $is_admin) : 0;
|
||||
$auth_user[$f_forum_id][$key . '_type'] = $lang['Moderators'];
|
||||
break;
|
||||
|
||||
|
||||
case AUTH_ADMIN:
|
||||
$auth_user[$f_forum_id][$key] = $is_admin;
|
||||
$auth_user[$f_forum_id][$key . '_type'] = $lang['Administrators'];
|
||||
@@ -329,7 +338,7 @@ function auth_check_user($type, $key, $u_access, $is_admin)
|
||||
if(!$single_user)
|
||||
{
|
||||
$single_user = $u_access[$j]['group_single_user'];
|
||||
|
||||
|
||||
$result = 0;
|
||||
switch($type)
|
||||
{
|
||||
@@ -353,7 +362,7 @@ function auth_check_user($type, $key, $u_access, $is_admin)
|
||||
{
|
||||
$auth_user = $is_admin;
|
||||
}
|
||||
|
||||
|
||||
return $auth_user;
|
||||
}
|
||||
|
||||
|
@@ -10,6 +10,15 @@
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
define("BBCODE_UID_LEN", 10);
|
||||
|
||||
/**
|
||||
|
@@ -11,6 +11,15 @@
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* 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
|
||||
//
|
||||
|
@@ -1,15 +1,24 @@
|
||||
<?php
|
||||
/***************************************************************************
|
||||
/***************************************************************************
|
||||
* db.php
|
||||
* -------------------
|
||||
* begin : Saturday, Feb 13, 2001
|
||||
* copyright : (C) 2001 The phpBB Group
|
||||
* email : support@phpbb.com
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*
|
||||
***************************************************************************/
|
||||
* -------------------
|
||||
* 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)
|
||||
{
|
||||
@@ -36,7 +45,7 @@ switch($dbms)
|
||||
|
||||
// Make the database connection.
|
||||
$db = new sql_db($dbhost, $dbuser, $dbpasswd, $dbname, false);
|
||||
if(!$db->db_connect_id)
|
||||
if(!$db->db_connect_id)
|
||||
{
|
||||
message_die(CRITICAL_ERROR, "Could not connect to the database");
|
||||
}
|
||||
|
@@ -10,6 +10,15 @@
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
//
|
||||
// The emailer class has support for attaching files, that isn't implemented
|
||||
// in the 2.0 release but we can probable find some way of using it in a future
|
||||
|
@@ -11,7 +11,6 @@
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@@ -184,8 +183,8 @@ function make_jumpbox()
|
||||
|
||||
function make_forum_box($box_name, $default_forum = -1)
|
||||
{
|
||||
global $db;
|
||||
|
||||
global $db;
|
||||
|
||||
$limit_forums = "";
|
||||
|
||||
$sql = "SELECT forum_id, forum_name
|
||||
@@ -218,7 +217,7 @@ function make_forum_box($box_name, $default_forum = -1)
|
||||
}
|
||||
|
||||
return($boxstring);
|
||||
}
|
||||
}
|
||||
//
|
||||
// Initialise user settings on page load
|
||||
function init_userprefs($userdata)
|
||||
@@ -461,7 +460,7 @@ function generate_pagination($base_url, $num_items, $per_page, $start_item, $add
|
||||
function validate_email($email)
|
||||
{
|
||||
global $db;
|
||||
|
||||
|
||||
if($email != "")
|
||||
{
|
||||
$sql = "SELECT ban_email
|
||||
@@ -480,7 +479,7 @@ function validate_email($email)
|
||||
}
|
||||
}
|
||||
$sql = "SELECT user_email
|
||||
FROM " . USERS_TABLE . "
|
||||
FROM " . USERS_TABLE . "
|
||||
WHERE user_email = '" . $email . "'";
|
||||
if(!$result = $db->sql_query($sql))
|
||||
{
|
||||
@@ -516,10 +515,10 @@ function validate_username($username)
|
||||
// So we have to use two queries
|
||||
case 'mysql':
|
||||
$sql_users = "SELECT u.username, g.group_name
|
||||
FROM " . USERS_TABLE . " u, " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug
|
||||
WHERE ug.user_id = u.user_id
|
||||
AND g.group_id = ug.group_id
|
||||
AND ( LOWER(u.username) = '" . strtolower($username) . "'
|
||||
FROM " . USERS_TABLE . " u, " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug
|
||||
WHERE ug.user_id = u.user_id
|
||||
AND g.group_id = ug.group_id
|
||||
AND ( LOWER(u.username) = '" . strtolower($username) . "'
|
||||
OR LOWER(g.group_name) = '" . strtolower($username) . "' )";
|
||||
$sql_disallow = "SELECT disallow_username
|
||||
FROM " . DISALLOW_TABLE . "
|
||||
@@ -542,12 +541,12 @@ function validate_username($username)
|
||||
|
||||
default:
|
||||
$sql = "SELECT u.username, g.group_name
|
||||
FROM " . USERS_TABLE . " u, " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug
|
||||
WHERE ug.user_id = u.user_id
|
||||
AND g.group_id = ug.group_id
|
||||
AND ( LOWER(u.username) = '" . strtolower($username) . "'
|
||||
FROM " . USERS_TABLE . " u, " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug
|
||||
WHERE ug.user_id = u.user_id
|
||||
AND g.group_id = ug.group_id
|
||||
AND ( LOWER(u.username) = '" . strtolower($username) . "'
|
||||
OR LOWER(g.group_name) = '" . strtolower($username) . "' )
|
||||
UNION
|
||||
UNION
|
||||
SELECT disallow_username, NULL
|
||||
FROM " . DISALLOW_TABLE . "
|
||||
WHERE disallow_username = '$username'";
|
||||
@@ -565,11 +564,11 @@ function validate_username($username)
|
||||
}
|
||||
|
||||
|
||||
function sync($type, $id)
|
||||
function sync($type, $id)
|
||||
{
|
||||
global $db;
|
||||
|
||||
switch($type)
|
||||
|
||||
switch($type)
|
||||
{
|
||||
case 'forum':
|
||||
$sql = "SELECT max(p.post_id) AS last_post FROM ".POSTS_TABLE." p, ".TOPICS_TABLE." t WHERE p.forum_id = $id AND p.topic_id = t.topic_id AND t.topic_status <> ".TOPIC_MOVED;
|
||||
@@ -585,7 +584,7 @@ function sync($type, $id)
|
||||
{
|
||||
$last_post = 0;
|
||||
}
|
||||
|
||||
|
||||
$sql = "SELECT count(post_id) AS total FROM ".POSTS_TABLE." WHERE forum_id = $id";
|
||||
if(!$result = $db->sql_query($sql))
|
||||
{
|
||||
@@ -595,7 +594,7 @@ function sync($type, $id)
|
||||
{
|
||||
$total_posts = $rowset[0]['total'];
|
||||
}
|
||||
|
||||
|
||||
$sql = "SELECT count(topic_id) AS total FROM ".TOPICS_TABLE." WHERE forum_id = $id";
|
||||
if(!$result = $db->sql_query($sql, $db))
|
||||
{
|
||||
@@ -605,7 +604,7 @@ function sync($type, $id)
|
||||
{
|
||||
$total_topics = $rowset[0]['total'];
|
||||
}
|
||||
|
||||
|
||||
$sql = "UPDATE ".FORUMS_TABLE." SET forum_last_post_id = '$last_post', forum_posts = $total_posts, forum_topics = $total_topics WHERE forum_id = $id";
|
||||
if(!$result = $db->sql_query($sql))
|
||||
{
|
||||
@@ -623,7 +622,7 @@ function sync($type, $id)
|
||||
{
|
||||
$last_post = $row[0]["last_post"];
|
||||
}
|
||||
|
||||
|
||||
$sql = "SELECT count(post_id) AS total FROM ".POSTS_TABLE." WHERE topic_id = $id";
|
||||
if(!$result = $db->sql_query($sql))
|
||||
{
|
||||
@@ -729,7 +728,7 @@ function theme_select($default)
|
||||
global $db, $board_config, $lang;
|
||||
|
||||
$sql = "SELECT themes_id, themes_name
|
||||
FROM " . THEMES_TABLE . "
|
||||
FROM " . THEMES_TABLE . "
|
||||
WHERE themes_name LIKE '" . $board_config['default_template'] . "-%'
|
||||
ORDER BY themes_name";
|
||||
if($result = $db->sql_query($sql))
|
||||
@@ -756,7 +755,7 @@ function theme_select($default)
|
||||
}
|
||||
else
|
||||
{
|
||||
$theme_select = "<select name=\"theme\"><option value=\"-1\">" . $lang['No_themes'] . "</option></select>";
|
||||
$theme_select = "<select name=\"theme\"><option value=\"-1\">" . $lang['No_themes'] . "</option></select>";
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -832,7 +831,7 @@ function smilies_pass($message)
|
||||
|
||||
if(empty($smilies))
|
||||
{
|
||||
$sql = "SELECT code, smile_url
|
||||
$sql = "SELECT code, smile_url
|
||||
FROM " . SMILIES_TABLE;
|
||||
if($result = $db->sql_query($sql))
|
||||
{
|
||||
|
@@ -1,20 +1,29 @@
|
||||
<?php
|
||||
/***************************************************************************
|
||||
/***************************************************************************
|
||||
* message.php
|
||||
* -------------------
|
||||
* begin : Saturday, Feb 13, 2001
|
||||
* copyright : (C) 2001 The phpBB Group
|
||||
* email : support@phpbb.com
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*
|
||||
***************************************************************************/
|
||||
* -------------------
|
||||
* 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.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
//
|
||||
// This function gets called to output any message or error
|
||||
// that doesn't require additional output from the calling
|
||||
// page.
|
||||
// that doesn't require additional output from the calling
|
||||
// page.
|
||||
//
|
||||
// $msg_code takes one of four constant values:
|
||||
//
|
||||
@@ -31,12 +40,12 @@
|
||||
// board configuration data is available
|
||||
//
|
||||
// CRITICAL_ERROR -> Used whenever a DB connection cannot be
|
||||
// guaranteed and/or we've been unable to obtain basic board
|
||||
// guaranteed and/or we've been unable to obtain basic board
|
||||
// configuration data. Shouldn't be used in general
|
||||
// pages/functions (it results in a simple echo'd statement,
|
||||
// pages/functions (it results in a simple echo'd statement,
|
||||
// no templates are used)
|
||||
//
|
||||
function message_die($msg_code, $msg_text = "", $msg_title = "", $err_line = "", $err_file = "", $sql = "")
|
||||
function message_die($msg_code, $msg_text = "", $msg_title = "", $err_line = "", $err_file = "", $sql = "")
|
||||
{
|
||||
global $db, $template, $board_config, $theme, $lang, $phpEx, $phpbb_root_path;
|
||||
global $userdata, $user_ip, $session_length;
|
||||
|
@@ -11,6 +11,15 @@
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
define(HEADER_INC, TRUE);
|
||||
|
||||
//
|
||||
@@ -31,14 +40,14 @@ if($board_config['gzip_compress'])
|
||||
else if($phpver > "4.0")
|
||||
{
|
||||
if(strstr($HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'], 'gzip'))
|
||||
{
|
||||
{
|
||||
if(extension_loaded("zlib"))
|
||||
{
|
||||
$do_gzip_compress = TRUE;
|
||||
ob_start();
|
||||
ob_implicit_flush(0);
|
||||
ob_implicit_flush(0);
|
||||
|
||||
header("Content-Encoding: gzip");
|
||||
header("Content-Encoding: gzip");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -71,7 +80,7 @@ $s_last_visit = create_date($board_config['default_dateformat'], $userdata['sess
|
||||
// Get basic (usernames + totals) online
|
||||
// situation
|
||||
//
|
||||
$sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, s.session_logged_in, s.session_ip
|
||||
$sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, s.session_logged_in, s.session_ip
|
||||
FROM ".USERS_TABLE." u, ".SESSIONS_TABLE." s
|
||||
WHERE u.user_id = s.session_user_id
|
||||
AND s.session_time >= ".( time() - 300 );
|
||||
@@ -137,9 +146,9 @@ $online_userlist = ($logged_visible_online > 0) ? $lang['Registered'] . " $l_r_u
|
||||
//
|
||||
if($userdata['session_logged_in'])
|
||||
{
|
||||
$sql = "SELECT COUNT(privmsgs_type) AS new_messages
|
||||
FROM " . PRIVMSGS_TABLE . "
|
||||
WHERE privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
|
||||
$sql = "SELECT COUNT(privmsgs_type) AS new_messages
|
||||
FROM " . PRIVMSGS_TABLE . "
|
||||
WHERE privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
|
||||
AND privmsgs_to_userid = " . $userdata['user_id'];
|
||||
$result_pm = $db->sql_query($sql);
|
||||
if(!$result_pm)
|
||||
@@ -187,7 +196,7 @@ $template->assign_vars(array(
|
||||
"L_PROFILE" => $lang['Profile'],
|
||||
"L_SEARCH" => $lang['Search'],
|
||||
"L_PRIVATEMSGS" => $lang['Private_msgs'],
|
||||
"L_WHO_IS_ONLINE" => $lang['Who_is_Online'],
|
||||
"L_WHO_IS_ONLINE" => $lang['Who_is_Online'],
|
||||
"L_MEMBERLIST" => $lang['Memberlist'],
|
||||
"L_FAQ" => $lang['FAQ'],
|
||||
"L_USERGROUPS" => $lang['Usergroups'],
|
||||
@@ -202,7 +211,7 @@ $template->assign_vars(array(
|
||||
"L_NEWPOSTS" => $lang['New_posts'],
|
||||
"L_NONEWPOSTS_HOT" => $lang['No_new_posts_hot'],
|
||||
"L_NEWPOSTS_HOT" => $lang['New_posts_hot'],
|
||||
"L_TOPIC_IS_LOCKED" => $lang['Topic_is_locked'],
|
||||
"L_TOPIC_IS_LOCKED" => $lang['Topic_is_locked'],
|
||||
"L_POSTED" => $lang['Posted'],
|
||||
"L_JOINED" => $lang['Joined'],
|
||||
"L_AUTO_LOGIN" => $lang['Log_me_in'],
|
||||
@@ -240,21 +249,21 @@ $template->assign_vars(array(
|
||||
"T_TR_COLOR1" => "#".$theme['tr_color1'],
|
||||
"T_TR_COLOR2" => "#".$theme['tr_color2'],
|
||||
"T_TR_COLOR3" => "#".$theme['tr_color3'],
|
||||
"T_TR_CLASS1" => $theme['tr_class1'],
|
||||
"T_TR_CLASS2" => $theme['tr_class2'],
|
||||
"T_TR_CLASS3" => $theme['tr_class3'],
|
||||
"T_TR_CLASS1" => $theme['tr_class1'],
|
||||
"T_TR_CLASS2" => $theme['tr_class2'],
|
||||
"T_TR_CLASS3" => $theme['tr_class3'],
|
||||
"T_TH_COLOR1" => "#".$theme['th_color1'],
|
||||
"T_TH_COLOR2" => "#".$theme['th_color2'],
|
||||
"T_TH_COLOR3" => "#".$theme['th_color3'],
|
||||
"T_TH_CLASS1" => $theme['th_class1'],
|
||||
"T_TH_CLASS2" => $theme['th_class2'],
|
||||
"T_TH_CLASS3" => $theme['th_class3'],
|
||||
"T_TH_CLASS1" => $theme['th_class1'],
|
||||
"T_TH_CLASS2" => $theme['th_class2'],
|
||||
"T_TH_CLASS3" => $theme['th_class3'],
|
||||
"T_TD_COLOR1" => "#".$theme['td_color1'],
|
||||
"T_TD_COLOR2" => "#".$theme['td_color2'],
|
||||
"T_TD_COLOR3" => "#".$theme['td_color3'],
|
||||
"T_TD_CLASS1" => $theme['td_class1'],
|
||||
"T_TD_CLASS2" => $theme['td_class2'],
|
||||
"T_TD_CLASS3" => $theme['td_class3'],
|
||||
"T_TD_CLASS1" => $theme['td_class1'],
|
||||
"T_TD_CLASS2" => $theme['td_class2'],
|
||||
"T_TD_CLASS3" => $theme['td_class3'],
|
||||
"T_FONTFACE1" => $theme['fontface1'],
|
||||
"T_FONTFACE2" => $theme['fontface2'],
|
||||
"T_FONTFACE3" => $theme['fontface3'],
|
||||
@@ -264,8 +273,8 @@ $template->assign_vars(array(
|
||||
"T_FONTCOLOR1" => "#".$theme['fontcolor1'],
|
||||
"T_FONTCOLOR2" => "#".$theme['fontcolor2'],
|
||||
"T_FONTCOLOR3" => "#".$theme['fontcolor3'],
|
||||
"T_SPAN_CLASS1" => $theme['span_class1'],
|
||||
"T_SPAN_CLASS2" => $theme['span_class2'],
|
||||
"T_SPAN_CLASS1" => $theme['span_class1'],
|
||||
"T_SPAN_CLASS2" => $theme['span_class2'],
|
||||
"T_SPAN_CLASS3" => $theme['span_class3'])
|
||||
);
|
||||
|
||||
|
@@ -11,6 +11,15 @@
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
//
|
||||
// Show the overall footer.
|
||||
//
|
||||
@@ -65,17 +74,17 @@ if($do_gzip_compress)
|
||||
//
|
||||
// Borrowed from php.net!
|
||||
//
|
||||
$gzip_contents = ob_get_contents();
|
||||
ob_end_clean();
|
||||
$gzip_contents = ob_get_contents();
|
||||
ob_end_clean();
|
||||
|
||||
$gzip_size = strlen($gzip_contents);
|
||||
$gzip_crc = crc32($gzip_contents);
|
||||
$gzip_size = strlen($gzip_contents);
|
||||
$gzip_crc = crc32($gzip_contents);
|
||||
|
||||
$gzip_contents = gzcompress($gzip_contents, 9);
|
||||
$gzip_contents = substr($gzip_contents, 0, strlen($gzip_contents) - 4);
|
||||
$gzip_contents = gzcompress($gzip_contents, 9);
|
||||
$gzip_contents = substr($gzip_contents, 0, strlen($gzip_contents) - 4);
|
||||
|
||||
echo "\x1f\x8b\x08\x00\x00\x00\x00\x00";
|
||||
echo $gzip_contents;
|
||||
echo "\x1f\x8b\x08\x00\x00\x00\x00\x00";
|
||||
echo $gzip_contents;
|
||||
echo pack("V", $gzip_crc);
|
||||
echo pack("V", $gzip_size);
|
||||
}
|
||||
|
@@ -1,18 +1,27 @@
|
||||
<?php
|
||||
/***************************************************************************
|
||||
/***************************************************************************
|
||||
*
|
||||
* -------------------
|
||||
* begin : Saturday, Feb 13, 2001
|
||||
* copyright : (C) 2001 The phpBB Group
|
||||
* email : support@phpbb.com
|
||||
*
|
||||
* -------------------
|
||||
* 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.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
//
|
||||
// This function will prepare a posted message for
|
||||
// This function will prepare a posted message for
|
||||
// entry into the database.
|
||||
//
|
||||
function prepare_message($message, $html_on, $bbcode_on, $smile_on, $bbcode_uid = 0)
|
||||
@@ -53,7 +62,7 @@ function prepare_message($message, $html_on, $bbcode_on, $smile_on, $bbcode_uid
|
||||
}
|
||||
}
|
||||
|
||||
if($length && !$tagallowed)
|
||||
if($length && !$tagallowed)
|
||||
{
|
||||
$message = str_replace(substr($message, $start, $length), htmlspecialchars(substr($message, $start, $length)), $message);
|
||||
}
|
||||
|
@@ -1,29 +1,38 @@
|
||||
<?php
|
||||
/***************************************************************************
|
||||
* prune.php
|
||||
* -------------------
|
||||
* begin : Thursday, June 14, 2001
|
||||
* copyright : (C) 2001 The phpBB Group
|
||||
* email : support@phpbb.com
|
||||
*
|
||||
* -------------------
|
||||
* begin : Thursday, June 14, 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.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
function prune($forum_id, $prune_date)
|
||||
{
|
||||
global $db, $lang;
|
||||
|
||||
$sql = "SELECT t.topic_id
|
||||
FROM " . POSTS_TABLE . " p, " . TOPICS_TABLE . " t
|
||||
WHERE t.forum_id = $forum_id
|
||||
AND t.topic_type = " . POST_NORMAL . "
|
||||
$sql = "SELECT t.topic_id
|
||||
FROM " . POSTS_TABLE . " p, " . TOPICS_TABLE . " t
|
||||
WHERE t.forum_id = $forum_id
|
||||
AND t.topic_type = " . POST_NORMAL . "
|
||||
AND p.post_id = t.topic_last_post_id";
|
||||
// Do we want to delete everything in the forum?
|
||||
if ($prune_date != FALSE)
|
||||
{
|
||||
$sql .= " AND p.post_time < $prune_date";
|
||||
$sql .= " AND p.post_time < $prune_date";
|
||||
}
|
||||
if(!$result_topics = $db->sql_query($sql))
|
||||
{
|
||||
@@ -31,15 +40,15 @@ function prune($forum_id, $prune_date)
|
||||
}
|
||||
$pruned_topics = $db->sql_numrows($result_topics);
|
||||
|
||||
$sql = "SELECT p.post_id
|
||||
FROM " . POSTS_TABLE . " p, " . TOPICS_TABLE . " t
|
||||
WHERE p.forum_id = $forum_id
|
||||
AND t.topic_id = p.topic_id
|
||||
$sql = "SELECT p.post_id
|
||||
FROM " . POSTS_TABLE . " p, " . TOPICS_TABLE . " t
|
||||
WHERE p.forum_id = $forum_id
|
||||
AND t.topic_id = p.topic_id
|
||||
AND t.topic_type = " . POST_NORMAL;
|
||||
// Do we want to delete everything in the forum?
|
||||
if ($prune_date != FALSE)
|
||||
{
|
||||
$sql .= " AND p.post_time < $prune_date";
|
||||
$sql .= " AND p.post_time < $prune_date";
|
||||
}
|
||||
if(!$result_posts = $db->sql_query($sql))
|
||||
{
|
||||
@@ -95,7 +104,7 @@ function prune($forum_id, $prune_date)
|
||||
}
|
||||
|
||||
$sql_post_text = "DELETE FROM " . POSTS_TEXT_TABLE . " WHERE " . $sql_post_text;
|
||||
$sql_post = "DELETE FROM " . POSTS_TABLE . " WHERE " . $sql_post;
|
||||
$sql_post = "DELETE FROM " . POSTS_TABLE . " WHERE " . $sql_post;
|
||||
|
||||
if(!$result = $db->sql_query($sql_post_text, BEGIN_TRANSACTION))
|
||||
{
|
||||
@@ -110,8 +119,8 @@ function prune($forum_id, $prune_date)
|
||||
}
|
||||
}
|
||||
|
||||
$sql = "UPDATE " . FORUMS_TABLE . "
|
||||
SET forum_topics = forum_topics - $pruned_topics, forum_posts = forum_posts - $pruned_posts
|
||||
$sql = "UPDATE " . FORUMS_TABLE . "
|
||||
SET forum_topics = forum_topics - $pruned_topics, forum_posts = forum_posts - $pruned_posts
|
||||
WHERE forum_id = $forum_id";
|
||||
if(!$result = $db->sql_query($sql))
|
||||
{
|
||||
@@ -138,10 +147,10 @@ function auto_prune($forum_id = 0)
|
||||
|
||||
$one_day = 60 * 60 * 24;
|
||||
|
||||
$sql = "SELECT *
|
||||
FROM " . PRUNE_TABLE . "
|
||||
$sql = "SELECT *
|
||||
FROM " . PRUNE_TABLE . "
|
||||
WHERE forum_id = $forum_id";
|
||||
|
||||
|
||||
if(!$result = $db->sql_query($sql))
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Auto-Prune: Couldn't read auto_prune table.", __LINE__, __FILE__);
|
||||
|
@@ -11,6 +11,15 @@
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
//
|
||||
// session_begin()
|
||||
//
|
||||
|
@@ -10,6 +10,15 @@
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* This script should be included if the admin has configured the board for
|
||||
* smtp mail instead of standard sendmail. It includes a function smtpmail
|
||||
@@ -21,7 +30,7 @@
|
||||
* Description: This funtion processes the smtp server's response codes
|
||||
* Usage: This function is only used interanally by the smtpmail
|
||||
* function. It takes two arguments the first a socket pointer
|
||||
* to the opened socket to the server and the second the
|
||||
* to the opened socket to the server and the second the
|
||||
* response code you are looking for.
|
||||
****************************************************************************/
|
||||
function server_parse($socket, $response)
|
||||
@@ -38,19 +47,19 @@ function server_parse($socket, $response)
|
||||
|
||||
/****************************************************************************
|
||||
* Function: smtpmail
|
||||
* Description: This is a functional replacement for php's builtin mail
|
||||
* Description: This is a functional replacement for php's builtin mail
|
||||
* function, that uses smtp.
|
||||
* Usage: The usage for this function is identical to that of php's
|
||||
* built in mail function.
|
||||
****************************************************************************/
|
||||
function smtpmail($mail_to, $subject, $message, $headers = "")
|
||||
function smtpmail($mail_to, $subject, $message, $headers = "")
|
||||
{
|
||||
// For now I'm using an array based $smtp_vars to hold the smtp server
|
||||
// info, but it should probably change to $board_config...
|
||||
// then the relevant info would be $board_config['smtp_host'] and
|
||||
// then the relevant info would be $board_config['smtp_host'] and
|
||||
// $board_config['smtp_port'].
|
||||
global $board_config;
|
||||
|
||||
|
||||
//
|
||||
// Fix any bare linefeeds in the message to make it RFC821 Compliant.
|
||||
//
|
||||
@@ -63,7 +72,7 @@ function smtpmail($mail_to, $subject, $message, $headers = "")
|
||||
if(sizeof($headers) > 1)
|
||||
{
|
||||
$headers = join("\r\n", $headers);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$headers = $headers[0];
|
||||
@@ -71,7 +80,7 @@ function smtpmail($mail_to, $subject, $message, $headers = "")
|
||||
}
|
||||
$headers = chop($headers);
|
||||
|
||||
// Make sure there are no bare linefeeds in the headers
|
||||
// Make sure there are no bare linefeeds in the headers
|
||||
$headers = ereg_replace("[^\r]\n", "\r\n", $headers);
|
||||
}
|
||||
if(trim($mail_to) == "")
|
||||
@@ -97,13 +106,13 @@ function smtpmail($mail_to, $subject, $message, $headers = "")
|
||||
message_die(GENERAL_ERROR, "Could not connect to smtp host : $errno : $errstr", "", __LINE__, __FILE__);
|
||||
}
|
||||
server_parse($socket, "220");
|
||||
|
||||
|
||||
// Send the RFC821 specified HELO.
|
||||
fputs($socket, "HELO " . $board_config['smtp_host'] . "\r\n");
|
||||
|
||||
// From this point onward most server response codes should be 250
|
||||
server_parse($socket, "250");
|
||||
|
||||
|
||||
// Specify who the mail is from....
|
||||
fputs($socket, "MAIL FROM: $email_from\r\n");
|
||||
server_parse($socket, "250");
|
||||
@@ -116,10 +125,10 @@ function smtpmail($mail_to, $subject, $message, $headers = "")
|
||||
server_parse($socket, "250");
|
||||
$to_header .= "<$mail_to_address>, ";
|
||||
}
|
||||
|
||||
|
||||
// Ok now we tell the server we are ready to start sending data
|
||||
fputs($socket, "DATA\r\n");
|
||||
|
||||
|
||||
// This is the last response code we look for until the end of the message.
|
||||
server_parse($socket, "354");
|
||||
|
||||
@@ -131,7 +140,7 @@ function smtpmail($mail_to, $subject, $message, $headers = "")
|
||||
|
||||
// Now any custom headers....
|
||||
fputs($socket, "$headers\r\n\r\n");
|
||||
|
||||
|
||||
// Ok now we are ready for the message...
|
||||
fputs($socket, "$message\r\n");
|
||||
|
||||
|
@@ -1,21 +1,30 @@
|
||||
<?php
|
||||
/***************************************************************************
|
||||
/***************************************************************************
|
||||
* template.inc
|
||||
* -------------------
|
||||
* begin : Saturday, Feb 13, 2001
|
||||
* copyright : (C) 2001 The phpBB Group
|
||||
* email : support@phpbb.com
|
||||
*
|
||||
* -------------------
|
||||
* 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.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
/**
|
||||
* Template class. By Nathan Codding of the phpBB group.
|
||||
* The interface was originally inspired by PHPLib templates,
|
||||
* and the template file formats are quite similar.
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
class Template {
|
||||
@@ -29,24 +38,24 @@ class Template {
|
||||
// if it's a root-level variable, it'll be like this:
|
||||
// $this->_tpldata[.][0][varname] == value
|
||||
var $_tpldata = array();
|
||||
|
||||
|
||||
// Hash of filenames for each template handle.
|
||||
var $files = array();
|
||||
|
||||
// Root template directory.
|
||||
var $root = "";
|
||||
|
||||
|
||||
// this will hash handle names to the compiled code for that handle.
|
||||
var $compiled_code = array();
|
||||
|
||||
|
||||
// This will hold the uncompiled code for that handle.
|
||||
var $uncompiled_code = array();
|
||||
|
||||
|
||||
/**
|
||||
* Constructor. Simply sets the root dir.
|
||||
*
|
||||
*
|
||||
*/
|
||||
function Template($root = ".")
|
||||
function Template($root = ".")
|
||||
{
|
||||
$this->set_rootdir($root);
|
||||
}
|
||||
@@ -62,39 +71,39 @@ class Template {
|
||||
|
||||
/**
|
||||
* Sets the template root directory for this Template object.
|
||||
*/
|
||||
function set_rootdir($dir)
|
||||
*/
|
||||
function set_rootdir($dir)
|
||||
{
|
||||
if (!is_dir($dir))
|
||||
if (!is_dir($dir))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$this->root = $dir;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* Sets the template filenames for handles. $filename_array
|
||||
* should be a hash of handle => filename pairs.
|
||||
*/
|
||||
function set_filenames($filename_array)
|
||||
function set_filenames($filename_array)
|
||||
{
|
||||
if (!is_array($filename_array))
|
||||
{
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
reset($filename_array);
|
||||
while(list($handle, $filename) = each($filename_array))
|
||||
while(list($handle, $filename) = each($filename_array))
|
||||
{
|
||||
$this->files[$handle] = $this->make_filename($filename);
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Load the file for the handle, compile the file,
|
||||
* and run the compiled code. This will print out
|
||||
@@ -104,26 +113,26 @@ class Template {
|
||||
{
|
||||
if (!$this->loadfile($handle))
|
||||
{
|
||||
die("Template->pparse(): Couldn't load template file for handle $handle");
|
||||
die("Template->pparse(): Couldn't load template file for handle $handle");
|
||||
}
|
||||
|
||||
|
||||
// actually compile the template now.
|
||||
if (!isset($this->compiled_code[$handle]) || empty($this->compiled_code[$handle]))
|
||||
{
|
||||
// Actually compile the code now.
|
||||
$this->compiled_code[$handle] = $this->compile($this->uncompiled_code[$handle]);
|
||||
}
|
||||
|
||||
|
||||
// Run the compiled code.
|
||||
eval($this->compiled_code[$handle]);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Inserts the uncompiled code for $handle as the
|
||||
* value of $varname in the root-level. This can be used
|
||||
* to effectively include a template in the middle of another
|
||||
* to effectively include a template in the middle of another
|
||||
* template.
|
||||
* Note that all desired assignments to the variables in $handle should be done
|
||||
* BEFORE calling this function.
|
||||
@@ -132,33 +141,33 @@ class Template {
|
||||
{
|
||||
if (!$this->loadfile($handle))
|
||||
{
|
||||
die("Template->assign_var_from_handle(): Couldn't load template file for handle $handle");
|
||||
die("Template->assign_var_from_handle(): Couldn't load template file for handle $handle");
|
||||
}
|
||||
|
||||
|
||||
// Compile it, with the "no echo statements" option on.
|
||||
$code = $this->compile($this->uncompiled_code[$handle], true);
|
||||
// turn it into a variable assignment.
|
||||
$code = '$_str = \'' . $code . '\';';
|
||||
|
||||
|
||||
// evaluate the variable assignment.
|
||||
eval($code);
|
||||
|
||||
|
||||
// assign the value of the generated variable to the given varname.
|
||||
$this->assign_var($varname, $_str);
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Block-level variable assignment. Adds a new block iteration with the given
|
||||
* variable assignments. Note that this should only be called once per block
|
||||
* variable assignments. Note that this should only be called once per block
|
||||
* iteration.
|
||||
*/
|
||||
function assign_block_vars($blockname, $vararray)
|
||||
{
|
||||
if (strstr($blockname, '.'))
|
||||
{
|
||||
// Nested block.
|
||||
// Nested block.
|
||||
$blocks = explode('.', $blockname);
|
||||
$blockcount = sizeof($blocks) - 1;
|
||||
$str = '$this->_tpldata';
|
||||
@@ -172,7 +181,7 @@ class Template {
|
||||
// We're adding a new iteration to this block with the given
|
||||
// variable assignments.
|
||||
$str .= '[\'' . $blocks[$blockcount] . '.\'][] = $vararray;';
|
||||
|
||||
|
||||
// Now we evaluate this assignment we've built up.
|
||||
eval($str);
|
||||
}
|
||||
@@ -183,10 +192,10 @@ class Template {
|
||||
// we were given.
|
||||
$this->_tpldata[$blockname . '.'][] = $vararray;
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Root-level variable assignment. Adds to current assignments, overriding
|
||||
* any existing variable assignment with the same name.
|
||||
@@ -196,12 +205,12 @@ class Template {
|
||||
reset ($vararray);
|
||||
while (list($key, $val) = each($vararray))
|
||||
{
|
||||
$this->_tpldata['.'][0][$key] = $val;
|
||||
$this->_tpldata['.'][0][$key] = $val;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Root-level variable assignment. Adds to current assignments, overriding
|
||||
* any existing variable assignment with the same name.
|
||||
@@ -209,38 +218,38 @@ class Template {
|
||||
function assign_var($varname, $varval)
|
||||
{
|
||||
$this->_tpldata['.'][0][$varname] = $varval;
|
||||
|
||||
return true;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
||||
|
||||
/**
|
||||
* Generates a full path+filename for the given filename, which can either
|
||||
* be an absolute name, or a name relative to the rootdir for this Template
|
||||
* object.
|
||||
*/
|
||||
function make_filename($filename)
|
||||
function make_filename($filename)
|
||||
{
|
||||
// Check if it's an absolute or relative path.
|
||||
if (substr($filename, 0, 1) != '/')
|
||||
{
|
||||
$filename = $this->root . '/' . $filename;
|
||||
}
|
||||
|
||||
|
||||
if (!file_exists($filename))
|
||||
{
|
||||
die("Template->make_filename(): Error - file $filename does not exist");
|
||||
}
|
||||
|
||||
|
||||
return $filename;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* If not already done, load the file for the given handle and populate
|
||||
* the uncompiled_code[] hash with its code. Do not compile.
|
||||
*/
|
||||
function loadfile($handle)
|
||||
function loadfile($handle)
|
||||
{
|
||||
// If the file for this handle is already loaded and compiled, do nothing.
|
||||
if (isset($this->uncompiled_code[$handle]) && !empty($this->uncompiled_code[$handle]))
|
||||
@@ -249,31 +258,31 @@ class Template {
|
||||
}
|
||||
|
||||
// If we don't have a file assigned to this handle, die.
|
||||
if (!isset($this->files[$handle]))
|
||||
if (!isset($this->files[$handle]))
|
||||
{
|
||||
die("Template->loadfile(): No file specified for handle $handle");
|
||||
}
|
||||
|
||||
|
||||
$filename = $this->files[$handle];
|
||||
|
||||
$str = implode("", @file($filename));
|
||||
if (empty($str))
|
||||
if (empty($str))
|
||||
{
|
||||
die("Template->loadfile(): File $filename for handle $handle is empty");
|
||||
}
|
||||
|
||||
|
||||
$this->uncompiled_code[$handle] = $str;
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Compiles the given string of code, and returns
|
||||
* the result in a string.
|
||||
* If "do_not_echo" is true, the returned code will not be directly
|
||||
* executable, but can be used as part of a variable assignment
|
||||
* executable, but can be used as part of a variable assignment
|
||||
* for use in assign_code_from_handle().
|
||||
*/
|
||||
function compile($code, $do_not_echo = false)
|
||||
@@ -281,9 +290,9 @@ class Template {
|
||||
// replace \ with \\ and then ' with \'.
|
||||
$code = str_replace('\\', '\\\\', $code);
|
||||
$code = str_replace('\'', '\\\'', $code);
|
||||
|
||||
|
||||
// change template varrefs into PHP varrefs
|
||||
|
||||
|
||||
// This one will handle varrefs WITH namespaces
|
||||
$varrefs = array();
|
||||
preg_match_all('#\{(([a-z0-9\-_]+?\.)+?)([a-z0-9\-_]+?)\}#is', $code, $varrefs);
|
||||
@@ -293,20 +302,20 @@ class Template {
|
||||
$namespace = $varrefs[1][$i];
|
||||
$varname = $varrefs[3][$i];
|
||||
$new = $this->generate_block_varref($namespace, $varname);
|
||||
|
||||
|
||||
$code = str_replace($varrefs[0][$i], $new, $code);
|
||||
}
|
||||
|
||||
|
||||
// This will handle the remaining root-level varrefs
|
||||
$code = preg_replace('#\{([a-z0-9\-_]*?)\}#is', '\' . $this->_tpldata[\'.\'][0][\'\1\'] . \'', $code);
|
||||
|
||||
|
||||
// Break it up into lines.
|
||||
$code_lines = explode("\n", $code);
|
||||
|
||||
|
||||
$block_nesting_level = 0;
|
||||
$block_names = array();
|
||||
$block_names[0] = ".";
|
||||
|
||||
|
||||
// Second: prepend echo ', append ' . "\n"; to each line.
|
||||
$line_count = sizeof($code_lines);
|
||||
for ($i = 0; $i < $line_count; $i++)
|
||||
@@ -332,12 +341,12 @@ class Template {
|
||||
else
|
||||
{
|
||||
// This block is nested.
|
||||
|
||||
|
||||
// Generate a namespace string for this block.
|
||||
$namespace = implode('.', $block_names);
|
||||
// strip leading period from root level..
|
||||
$namespace = substr($namespace, 2);
|
||||
// Get a reference to the data array for this block that depends on the
|
||||
// Get a reference to the data array for this block that depends on the
|
||||
// current indices of all parent blocks.
|
||||
$varref = $this->generate_block_data_ref($namespace, false);
|
||||
// Create the for loop code to iterate over this block.
|
||||
@@ -345,7 +354,7 @@ class Template {
|
||||
$code_lines[$i] .= "\n" . 'for ($_' . $n[1] . '_i = 0; $_' . $n[1] . '_i < $_' . $n[1] . '_count; $_' . $n[1] . '_i++)';
|
||||
$code_lines[$i] .= "\n" . '{';
|
||||
}
|
||||
|
||||
|
||||
// We have the end of a block.
|
||||
unset($block_names[$block_nesting_level]);
|
||||
$block_nesting_level--;
|
||||
@@ -368,19 +377,19 @@ class Template {
|
||||
else
|
||||
{
|
||||
// This block is nested.
|
||||
|
||||
|
||||
// Generate a namespace string for this block.
|
||||
$namespace = implode('.', $block_names);
|
||||
// strip leading period from root level..
|
||||
$namespace = substr($namespace, 2);
|
||||
// Get a reference to the data array for this block that depends on the
|
||||
// Get a reference to the data array for this block that depends on the
|
||||
// current indices of all parent blocks.
|
||||
$varref = $this->generate_block_data_ref($namespace, false);
|
||||
// Create the for loop code to iterate over this block.
|
||||
$code_lines[$i] = '$_' . $m[1] . '_count = sizeof(' . $varref . ');';
|
||||
$code_lines[$i] .= "\n" . 'for ($_' . $m[1] . '_i = 0; $_' . $m[1] . '_i < $_' . $m[1] . '_count; $_' . $m[1] . '_i++)';
|
||||
$code_lines[$i] .= "\n" . '{';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (preg_match('#<!-- END (.*?) -->#', $code_lines[$i], $m))
|
||||
@@ -399,14 +408,14 @@ class Template {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Bring it back into a single string of lines of code.
|
||||
$code = implode("\n", $code_lines);
|
||||
$code = implode("\n", $code_lines);
|
||||
return $code ;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Generates a reference to the given variable inside the given (possibly nested)
|
||||
* block namespace. This is a string of the form:
|
||||
@@ -418,21 +427,21 @@ class Template {
|
||||
{
|
||||
// Strip the trailing period.
|
||||
$namespace = substr($namespace, 0, strlen($namespace) - 1);
|
||||
|
||||
|
||||
// Get a reference to the data block for this namespace.
|
||||
$varref = $this->generate_block_data_ref($namespace, true);
|
||||
// Prepend the necessary code to stick this in an echo line.
|
||||
$varref = '\' . ' . $varref;
|
||||
// Append the variable reference.
|
||||
$varref .= '[\'' . $varname . '\'] . \'';
|
||||
|
||||
|
||||
return $varref;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Generates a reference to the array of data values for the given
|
||||
* Generates a reference to the array of data values for the given
|
||||
* (possibly nested) block namespace. This is a string of the form:
|
||||
* $this->_tpldata['parent'][$_parent_i]['$child1'][$_child1_i]['$child2'][$_child2_i]...['$childN']
|
||||
*
|
||||
@@ -448,7 +457,7 @@ class Template {
|
||||
// Build up the string with everything but the last child.
|
||||
for ($i = 0; $i < $blockcount; $i++)
|
||||
{
|
||||
$varref .= '[\'' . $blocks[$i] . '.\'][$_' . $blocks[$i] . '_i]';
|
||||
$varref .= '[\'' . $blocks[$i] . '.\'][$_' . $blocks[$i] . '_i]';
|
||||
}
|
||||
// Add the block reference for the last child.
|
||||
$varref .= '[\'' . $blocks[$blockcount] . '.\']';
|
||||
@@ -457,7 +466,7 @@ class Template {
|
||||
{
|
||||
$varref .= '[$_' . $blocks[$blockcount] . '_i]';
|
||||
}
|
||||
|
||||
|
||||
return $varref;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user