- fixed database updater

- fixed hook function call in database updater
- fixed bot agent detection (we used a wildcard within the w3c-agent, therefore we should really support this. ;))


git-svn-id: file:///svn/phpbb/trunk@8131 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Meik Sievertsen 2007-10-04 12:03:05 +00:00
parent 92f554e38a
commit 07f6a6b5f3
6 changed files with 48 additions and 15 deletions

View file

@ -8,6 +8,14 @@
* *
*/ */
/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
exit;
}
/** /**
* @package acp * @package acp
*/ */

View file

@ -1577,7 +1577,7 @@ function append_sid($url, $params = false, $is_amp = true, $session_id = false)
// Developers using the hook function need to globalise the $_SID and $_EXTRA_URL on their own and also handle it appropiatly. // Developers using the hook function need to globalise the $_SID and $_EXTRA_URL on their own and also handle it appropiatly.
// They could mimick most of what is within this function // They could mimick most of what is within this function
if ($phpbb_hook->call_hook(__FUNCTION__, $url, $params, $is_amp, $session_id)) if (!empty($phpbb_hook) && $phpbb_hook->call_hook(__FUNCTION__, $url, $params, $is_amp, $session_id))
{ {
if ($phpbb_hook->hook_return(__FUNCTION__)) if ($phpbb_hook->hook_return(__FUNCTION__))
{ {
@ -4463,7 +4463,7 @@ function phpbb_user_session_handler()
{ {
global $phpbb_hook; global $phpbb_hook;
if ($phpbb_hook->call_hook(__FUNCTION__)) if (!empty($phpbb_hook) && $phpbb_hook->call_hook(__FUNCTION__))
{ {
if ($phpbb_hook->hook_return(__FUNCTION__)) if ($phpbb_hook->hook_return(__FUNCTION__))
{ {

View file

@ -1,10 +1,10 @@
<?php <?php
/** /**
* *
* @package phpBB3 * @package phpBB3
* @version $Id$ * @version $Id$
* @copyright (c) 2007 phpBB Group * @copyright (c) 2007 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License * @license http://opensource.org/licenses/gpl-license.php GNU Public License
* *
*/ */
@ -111,7 +111,7 @@ class phpbb_hook
if (!empty($this->hooks[$class][$function])) if (!empty($this->hooks[$class][$function]))
{ {
// Developer tries to call a hooked function within the hooked function... // Developer tries to call a hooked function within the hooked function...
if ($this->current_hook !== NULL && $this->current_hook['class'] === $class && $this->current_hook['function'] === $function) if ($this->current_hook !== NULL && $this->current_hook['class'] === $class && $this->current_hook['function'] === $function)
{ {
return false; return false;

View file

@ -8,6 +8,14 @@
* *
*/ */
/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
exit;
}
/** /**
* Session class * Session class
* @package phpBB3 * @package phpBB3
@ -367,7 +375,7 @@ class session
foreach ($active_bots as $row) foreach ($active_bots as $row)
{ {
if ($row['bot_agent'] && strpos(strtolower($this->browser), strtolower($row['bot_agent'])) !== false) if ($row['bot_agent'] && preg_match('#' . str_replace('\*', '.*?', preg_quote($row['bot_agent'], '#')) . '#i', $this->browser))
{ {
$bot = $row['user_id']; $bot = $row['user_id'];
} }
@ -644,7 +652,7 @@ class session
$sql = 'SELECT COUNT(session_id) AS sessions $sql = 'SELECT COUNT(session_id) AS sessions
FROM ' . SESSIONS_TABLE . ' FROM ' . SESSIONS_TABLE . '
WHERE session_user_id = ' . (int) $this->data['user_id'] . ' WHERE session_user_id = ' . (int) $this->data['user_id'] . '
AND session_time >= ' . ($this->time_now - $config['form_token_lifetime']); AND session_time >= ' . ($this->time_now - $config['form_token_lifetime']);
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result); $row = $db->sql_fetchrow($result);
@ -837,7 +845,7 @@ class session
$sql = 'SELECT DISTINCT c.session_id $sql = 'SELECT DISTINCT c.session_id
FROM ' . CONFIRM_TABLE . ' c FROM ' . CONFIRM_TABLE . ' c
LEFT JOIN ' . SESSIONS_TABLE . ' s ON (c.session_id = s.session_id) LEFT JOIN ' . SESSIONS_TABLE . ' s ON (c.session_id = s.session_id)
WHERE s.session_id IS NULL' . WHERE s.session_id IS NULL' .
((empty($type)) ? '' : ' AND c.confirm_type = ' . (int) $type); ((empty($type)) ? '' : ' AND c.confirm_type = ' . (int) $type);
$result = $db->sql_query($sql); $result = $db->sql_query($sql);

View file

@ -1,14 +1,15 @@
<?php <?php
/** /**
* *
* @package phpBB3 * @package phpBB3
* @version $Id$ * @version $Id$
* @copyright (c) 2005 phpBB Group, sections (c) 2001 ispi of Lincoln Inc * @copyright (c) 2005 phpBB Group, sections (c) 2001 ispi of Lincoln Inc
* @license http://opensource.org/licenses/gpl-license.php GNU Public License * @license http://opensource.org/licenses/gpl-license.php GNU Public License
* *
*/ */
/** /**
* @ignore
*/ */
if (!defined('IN_PHPBB')) if (!defined('IN_PHPBB'))
{ {
@ -149,7 +150,7 @@ class template
{ {
global $user, $phpbb_hook; global $user, $phpbb_hook;
if ($phpbb_hook->call_hook(array(__CLASS__, __FUNCTION__), $handle, $include_once)) if (!empty($phpbb_hook) && $phpbb_hook->call_hook(array(__CLASS__, __FUNCTION__), $handle, $include_once))
{ {
if ($phpbb_hook->hook_return(array(__CLASS__, __FUNCTION__))) if ($phpbb_hook->hook_return(array(__CLASS__, __FUNCTION__)))
{ {
@ -408,10 +409,10 @@ class template
* *
* If key is false the position is set to 0 * If key is false the position is set to 0
* If key is true the position is set to the last entry * If key is true the position is set to the last entry
* *
* @param string $mode Mode to execute (valid modes are 'insert' and 'change') * @param string $mode Mode to execute (valid modes are 'insert' and 'change')
* *
* If insert, the vararray is inserted at the given position (position counting from zero). * If insert, the vararray is inserted at the given position (position counting from zero).
* If change, the current block gets merged with the vararray (resulting in new key/value pairs be added and existing keys be replaced by the new value). * If change, the current block gets merged with the vararray (resulting in new key/value pairs be added and existing keys be replaced by the new value).
* *
* Since counting begins by zero, inserting at the last position will result in this array: array(vararray, last positioned array) * Since counting begins by zero, inserting at the last position will result in this array: array(vararray, last positioned array)

View file

@ -79,6 +79,22 @@ $user = new user();
$cache = new cache(); $cache = new cache();
$db = new $sql_db(); $db = new $sql_db();
// Add own hook handler, if present. :o
if (file_exists($phpbb_root_path . 'includes/hooks/index.' . $phpEx))
{
require($phpbb_root_path . 'includes/hooks/index.' . $phpEx);
$phpbb_hook = new phpbb_hook(array('exit_handler', 'phpbb_user_session_handler', 'append_sid', array('template', 'display')));
foreach ($cache->obtain_hooks() as $hook)
{
@include($phpbb_root_path . 'includes/hooks/' . $hook . '.' . $phpEx);
}
}
else
{
$phpbb_hook = false;
}
// Connect to DB // Connect to DB
$db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, false); $db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, false);
@ -428,7 +444,7 @@ $database_update_info = array(
'3.0.RC5' => array( '3.0.RC5' => array(
// Add the following columns // Add the following columns
'add_columns' => array( 'add_columns' => array(
USER_TABLE => array( USERS_TABLE => array(
'user_form_salt' => array('VCHAR_UNI:32', ''), 'user_form_salt' => array('VCHAR_UNI:32', ''),
), ),
), ),