diff -r e3d7322305bf -r 5e1f1e916419 plugins/PunBB.php --- a/plugins/PunBB.php Sun Sep 02 11:00:57 2007 -0400 +++ b/plugins/PunBB.php Sat Apr 05 23:56:45 2008 -0400 @@ -4,15 +4,15 @@ Plugin URI: http://enanocms.org/PunBB_plugin Description: Provides a complete forum solution in PunBB, a separately maintained and very lightweight GPL forum. Author: Dan Fuhry -Version: 0.1.12.15 +Version: 1.3-beta Author URI: http://enanocms.org/ */ /* * PunBB Plugin for Enano CMS - * Version 0.1.12.15 - * Copyright (C) 2006-2007 Dan Fuhry - * Copyright (C) 2002-2007 Rickard Andersson + * Version 1.3-beta + * Copyright (C) 2006-2008 Dan Fuhry + * Copyright (C) 2002-2008 Rickard Andersson * * This program is Free Software; you can redistribute 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. @@ -36,17 +36,19 @@ $plugins->attachHook('session_started', ' $pid = RenderMan::strToPageId($paths->get_pageid_from_url()); - if ( getConfig("punbb_installed") == "yes" && getConfig("punbb_version") == PUNANO_VERSION && $pid[0] == "Forum" && $pid[1] == "Special" ) + $is_style_or_script = ( strpos($_SERVER["REQUEST_URI"], "/style/") || strpos($_SERVER["REQUEST_URI"], "/include/js/") ); + if ( getConfig("punbb_installed") == "yes" && getConfig("punbb_version") == PUNANO_VERSION && $pid[0] == "Forum" && $pid[1] == "Special" && !$is_style_or_script ) { require( "punbb/include/common.php" ); } '); -define('PUNANO_VERSION', '0.1.12.15'); -define('PUNBB_VERSION', '1.2.15'); +define('PUNANO_VERSION', '0.1.3-beta'); +define('PUNBB_VERSION', '1.3-beta'); define('PUN_ROOT', ENANO_ROOT . '/punbb/'); define('PUN', ''); define('PUN_DISABLE_BUFFERING', ''); +// define('PUN_SHOW_QUERIES', ''); function page_Special_Forum() { @@ -59,10 +61,22 @@ { punano_upgrade(); } - else if ( preg_match('/^admin_/i', $paths->getParam(0)) ) + else if ( $paths->getParam(0) == 'admin' ) { punano_admin_console(); } + else if ( $paths->getParam(0) == 'style' ) + { + $path = $paths->getAllParams(); + header('Location: ' . scriptPath . '/punbb/' . $path); + exit(); + } + else if ( $paths->getParam(0) == 'include' && $paths->getParam(1) == 'js' ) + { + $path = $paths->getAllParams(); + header('Location: ' . scriptPath . '/punbb/' . $path); + exit(); + } else { punano_main(); @@ -80,7 +94,7 @@ else if ( $session->auth_level < USER_LEVEL_ADMIN ) { $url = makeUrlNS('Special', 'Login/' . $paths->page, 'level=' . USER_LEVEL_ADMIN, true); - redirect($url, 'Permission denied', 'You need to have an active high-privilege session to set up Punano.', 4); + pun_redirect($url, 'Permission denied', 'You need to have an active high-privilege session to set up Punano.', 4); } $template->header(); @@ -115,11 +129,13 @@ function _punano_perform_install() { global $db, $session, $paths, $template, $plugins; // Common objects + global $dbdriver; + $db_prefix = table_prefix . 'pun_'; $admin_email = getConfig('contact_email'); $pun_version = PUNBB_VERSION; - $schema = file_get_contents( ENANO_ROOT . '/punbb/schema.sql' ); + $schema = file_get_contents( ENANO_ROOT . "/punbb/install-$dbdriver.sql" ); if ( empty($schema) ) { echo 'ERROR: cannot load schema file!'; @@ -129,7 +145,8 @@ $replace = array( '{{TABLE_PREFIX}}' => $db_prefix, '{{ENANO_ADMIN_EMAIL}}' => $admin_email, - '{{PUN_VERSION}}' => $pun_version + '{{PUN_VERSION}}' => $pun_version, + '{{NOW}}' => strval(time()) ); $schema = strtr($schema, $replace); @@ -214,6 +231,7 @@ // At this point, the PunBB API is already loaded // So we'll include one of the Pun frontend files + /* $valid = array('delete', 'edit', 'extern', 'help', 'index', 'misc', 'moderate', 'post', 'profile', 'search', 'userlist', 'viewforum', 'viewtopic'); $file = 'index'; @@ -225,26 +243,28 @@ $file = strtolower($x); } } + */ + $file = 'rewrite'; // Don't worry. This is sanitized. - require PUN_ROOT . $file . '.php'; - + $file = PUN_ROOT . $file . '.php'; + require $file; } function punano_admin_console() { global $db, $session, $paths, $template, $plugins; // Common objects - $valid = array('categories', 'censoring', 'forums', 'groups', 'index', 'loader', 'maintenance', 'options', 'permissions', 'prune', 'ranks', 'reports', 'users'); - $mod = array('bans', 'censoring', 'index', 'loader', 'reports', 'users'); + $valid = array('bans', 'categories', 'censoring', 'extensions', 'forums', 'groups', 'index', 'options', 'prune', 'ranks', 'reindex', 'reports', 'users'); + $mod = array(); $file = 'index'; - if ( $x = $paths->getParam(0) ) + if ( $x = $paths->getParam(1) ) { $x = preg_replace('/\.php$/', '', $x); $x = preg_replace('/^admin_/i', '', $x); - if ( in_array(strtolower($x), $valid) ) + if ( in_array(strtolower($x), $valid) || in_array(strtolower($x), $mod) ) { $file = strtolower($x); } @@ -265,7 +285,7 @@ } // Don't worry. This is sanitized. - require PUN_ROOT . 'admin_' . $file . '.php'; + require PUN_ROOT . 'admin/' . $file . '.php'; }