Ik denk persoonlijk dat dit beter thuis hoort in support.
Verder is het zo dat de 'username' field nog steeds van het type varchar is. Verder is het ook zo dat 'BLOB' ook gewoon een 'grote' tekst string is.
Het grootste verschil van phpBB2 ten opzichte van 3 is dat phpBB2 md5() voor wachtwoord encryptie gebruikt en phpBB3 daar de eigen phpbb_hash() functie voor gebruikt.
Om dit allemaal te laten werken, moet je een aantal files includen.
Daarnaast is het ook nog handig om te weten dat het veld 'user_level' niet meer is en dat je dus niet meer kan checken of een persoon admin is of niet.
Wat je naar mijn mening het makkelijkst kan doen op je admin paginas, is gewoon je eigen session management er 'weghalen', en die te vervangen door die van phpBB3.
Daarnaast maak je een nieuwe permissie aan, zodat je kan checken of de personen ook admin zijn.
Eerst het permissie aanmaken.
Hiervoor moeten we een item aan de database toevoegen:
Code: Selecteer alles
INSERT INTO phpbb_acl_options (auth_option, is_global, is_local, founder_only) VALUES ('a_site_admin', 1, 0, 0);
Vervang 'a_site_admin' door een eigen naam.
Nu moet je nog zorgen dat deze ook in je administratie permissies te voorschijn komt.
Maak in je 'language\en\acp\' map de file 'permissions_site.php' aan.
In deze file zet je nu de volgende code:
Code: Selecteer alles
<?php
/**
*
* @package phpBB Blog
* @copyright (c) 2007 Jij zelf
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
* DO NOT CHANGE
*/
if (empty($lang) || !is_array($lang))
{
$lang = array();
}
$lang['permission_cat']['website'] = 'Website';
$lang = array_merge($lang, array(
// User permissions
'acl_a_site_admin' => array('lang' => 'Kan website beheren', 'cat' => 'website'),
));
?>
Clear nu de cache/buffer zodat de nieuwe permissie ook daar ingeladen wordt. Je zult deze permissie nu onder Administration permissions vinden.
Nu moet je alleen nog de sessie management op je site admin paginas uitvoeren, wanneer een admin bij jouw op het forum dan is ingelogd, kan hij ook, mits hij die permissie ervoor heeft.
Dit komt er dan ongeveer zo uit te zien:
Code: Selecteer alles
<?php
/*
* phpBB3 blank example page.
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('common');
// hier nog even kijken of de persoon in kwestie ook ADMIN is.
if (!$auth->acl_get('a_site_admin'))
{
trigger_error('NOT_AUTHORISED');
}
// voeg vanaf hier je eigen code weer toe.
?>
Ik hoop dat het hiermee iets duidelijker wordt. Zoals je het kon checken met phpBB2 dat zit er nu niet meer bij aangezien dingen als 'user_level' er niet meer zijn om te kijken of iemand admin is, of niet. daarnaast kun je nu alles doen met permissies, dit kost ietsje meer moeite, maar op deze manier kan je ook nog zelf extra permissies toevoegen om bijvoorbeeld enkele van je adminpaginas voor een nog beperktere groep toegankelijk te maken, of voor andere mensen.