Code: Selecteer alles
<?php
/**
* @package ReIMG Image Resizer
* @copyright (c) 2011 DavidIQ.com
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*/
/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
exit;
}
/**
* A hook that is used to change the behavior of phpBB just before the templates
* are displayed.
* @param phpbb_hook $hook the phpBB hook object
* @return void
*/
function hook_filter(&$hook)
{
global $db, $template, $config, $phpEx, $phpbb_root_path, $user;
$page_name = substr($user->page['page_name'], 0, strpos($user->page['page_name'], '.'));
if (!function_exists('filter_username'))
{
include($phpbb_root_path . 'includes/functions_filter.' . $phpEx);
}
$user->add_lang('mods/filter');
//Grab founder
$sql = 'SELECT user_id, username, user_colour
FROM ' . USERS_TABLE . '
WHERE user_type = ' . USER_FOUNDER;
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$founder_name = get_username_string('username', $row['user_id'], $row['username'], $row['user_colour'], $user->lang['GUEST']);
$founder_full = get_username_string('full', $row['user_id'], $row['username'], $row['user_colour'], $user->lang['GUEST']);
//Now we need to handle some pages
switch ($page_name)
{
case 'memberlist':
//Viewing user profile
if (request_var('mode', '') == 'viewprofile')
{
if (isset($template->_tpldata['.'][0]['SIGNATURE']))
{
$your_username = get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$my_username = $template->_tpldata['.'][0]['USERNAME_FULL'];
$template->_tpldata['.'][0]['SIGNATURE'] = filter_username($your_username, $my_username, $template->_tpldata['.'][0]['SIGNATURE']);
$template->assign_var('SIGNATURE', $template->_tpldata['.'][0]['SIGNATURE']);
}
}
break;
case 'posting':
if (!empty($template->_tpldata['navlinks']))
{
foreach ($template->_tpldata['navlinks'] as $row => $data)
{
$your_username = get_username_string('username', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$my_username = get_username_string('username', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$data['FORUM_NAME'] = filter_username($your_username, $my_username, $data['FORUM_NAME']);
// Alter the array
$template->alter_block_array('navlinks', array(
'FORUM_NAME' => $data['FORUM_NAME'],
), $row, 'change');
}
}
if (isset($template->_tpldata['.'][0]['TOPIC_TITLE']))
{
$your_username = get_username_string('username', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
if(!empty($template->_tpldata['topic_review_row']))
{
$my_username = $template->_tpldata['topic_review_row'][0]['POST_AUTHOR'];
}
$template->_tpldata['.'][0]['TOPIC_TITLE'] = filter_username($your_username, $my_username, $template->_tpldata['.'][0]['TOPIC_TITLE']);
$template->assign_var('TOPIC_TITLE', $template->_tpldata['.'][0]['TOPIC_TITLE']);
}
//Topic review area shown when posting a reply
if (!empty($template->_tpldata['topic_review_row']))
{
$your_userfull = get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$your_username = get_username_string('username', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
foreach ($template->_tpldata['topic_review_row'] as $row => $data)
{
$my_userfull = $template->_tpldata['topic_review_row'][0]['POST_AUTHOR_FULL'];
$my_username = $template->_tpldata['topic_review_row'][0]['POST_AUTHOR'];
$data['MESSAGE'] = filter_username($your_userfull, $my_userfull, $data['MESSAGE']);
$data['POST_SUBJECT'] = filter_username($your_username, $my_username, $data['POST_SUBJECT']);
// Alter the array
$template->alter_block_array('topic_review_row', array(
'MESSAGE' => $data['MESSAGE'],
'POST_SUBJECT' => $data['POST_SUBJECT'],
), $row, 'change');
}
}
//Message preview
if (isset($template->_tpldata['.'][0]['PREVIEW_MESSAGE']))
{
$your_username = get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$my_username = get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$template->_tpldata['.'][0]['PREVIEW_MESSAGE'] = filter_username($your_username, $my_username, $template->_tpldata['.'][0]['PREVIEW_MESSAGE']);
$template->assign_var('PREVIEW_MESSAGE', $template->_tpldata['.'][0]['PREVIEW_MESSAGE']);
}
//Signature in post preview
if (isset($template->_tpldata['.'][0]['PREVIEW_SIGNATURE']))
{
$your_username = get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$my_username = get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$template->_tpldata['.'][0]['PREVIEW_SIGNATURE'] = filter_username($your_username, $my_username, $template->_tpldata['.'][0]['PREVIEW_SIGNATURE']);
$template->assign_var('PREVIEW_SIGNATURE', $template->_tpldata['.'][0]['PREVIEW_SIGNATURE']);
}
break;
case 'ucp':
//Signature editing area
if (request_var('mode', '') == 'signature')
{
if (isset($template->_tpldata['.'][0]['SIGNATURE_PREVIEW']))
{
$your_username = get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$my_username = get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$template->_tpldata['.'][0]['SIGNATURE_PREVIEW'] = filter_username($your_username, $my_username, $template->_tpldata['.'][0]['SIGNATURE_PREVIEW']);
$template->assign_var('SIGNATURE_PREVIEW', $template->_tpldata['.'][0]['SIGNATURE_PREVIEW']);
}
}
$prefix = '';
//Test to see if we're in preview mode
if (isset($template->_tpldata['.'][0]['PREVIEW_MESSAGE']) || request_var('d', '') == true)
{
$prefix = 'PREVIEW_';
}
//Message's subject
if (isset($template->_tpldata['.'][0][$prefix . 'SUBJECT']))
{
$your_username = get_username_string('username', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$my_username = get_username_string('username', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$template->_tpldata['.'][0][$prefix . 'SUBJECT'] = filter_username($your_username, $my_username, $template->_tpldata['.'][0][$prefix . 'SUBJECT']);
$template->assign_var($prefix . 'SUBJECT', $template->_tpldata['.'][0][$prefix . 'SUBJECT']);
}
//The actual message
if (isset($template->_tpldata['.'][0][$prefix . 'MESSAGE']))
{
$your_username = get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$my_username = get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$template->_tpldata['.'][0][$prefix . 'MESSAGE'] = filter_username($your_username, $my_username, $template->_tpldata['.'][0][$prefix . 'MESSAGE']);
$template->assign_var($prefix . 'MESSAGE', $template->_tpldata['.'][0][$prefix . 'MESSAGE']);
}
//Message's signature
if (isset($template->_tpldata['.'][0][$prefix . 'SIGNATURE']))
{
$your_username = get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$my_username = get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$template->_tpldata['.'][0][$prefix . 'SIGNATURE'] = filter_username($your_username, $my_username, $template->_tpldata['.'][0][$prefix . 'SIGNATURE']);
$template->assign_var($prefix . 'SIGNATURE', $template->_tpldata['.'][0][$prefix . 'SIGNATURE']);
}
//Message history section
if (!empty($template->_tpldata['history_row']))
{
$your_username = get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
foreach ($template->_tpldata['history_row'] as $row => $data)
{
$my_username = $template->_tpldata['history_row'][0]['MESSAGE_AUTHOR_FULL'];
$data['MESSAGE'] = filter_username($my_username, $my_username, $data['MESSAGE']);
// Alter the array
$template->alter_block_array('history_row', array(
'MESSAGE' => $data['MESSAGE'],
), $row, 'change');
}
}
break;
case 'viewtopic':
if (!empty($template->_tpldata['navlinks']))
{
foreach ($template->_tpldata['navlinks'] as $row => $data)
{
$your_username = get_username_string('username', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$my_username = $founder_name;
$data['FORUM_NAME'] = filter_username($your_username, $my_username, $data['FORUM_NAME']);
// Alter the array
$template->alter_block_array('navlinks', array(
'FORUM_NAME' => $data['FORUM_NAME'],
), $row, 'change');
}
}
if (!empty($template->_tpldata['postrow']))
{
foreach ($template->_tpldata['postrow'] as $row => $data)
{
$your_username = get_username_string('username', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$my_username = $data['POST_AUTHOR'];
$your_userfull = get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$my_userfull = $data['POST_AUTHOR_FULL'];
$data['MESSAGE'] = filter_username($your_userfull, $my_userfull, $data['MESSAGE']);
$data['SIGNATURE'] = filter_username($your_userfull, $my_userfull, $data['SIGNATURE']);
$data['POST_SUBJECT'] = filter_username($your_username, $my_username, $data['POST_SUBJECT']);
// Alter the array
$template->alter_block_array('postrow', array(
'MESSAGE' => $data['MESSAGE'],
'SIGNATURE' => $data['SIGNATURE'],
'POST_SUBJECT' => $data['POST_SUBJECT'],
), $row, 'change');
}
}
if (isset($template->_tpldata['.'][0]['TOPIC_TITLE']))
{
$your_username = get_username_string('username', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$my_username = $template->_tpldata['.'][0]['TOPIC_AUTHOR'];
$template->_tpldata['.'][0]['TOPIC_TITLE'] = filter_username($your_username, $my_username, $template->_tpldata['.'][0]['TOPIC_TITLE']);
$template->assign_var('TOPIC_TITLE', $template->_tpldata['.'][0]['TOPIC_TITLE']);
}
if (isset($template->_tpldata['.'][0]['FORUM_NAME']))
{
$your_username = get_username_string('username', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$my_username = $founder_name;
$template->_tpldata['.'][0]['FORUM_NAME'] = filter_username($your_username, $my_username, $template->_tpldata['.'][0]['FORUM_NAME']);
$template->assign_var('FORUM_NAME', $template->_tpldata['.'][0]['FORUM_NAME']);
}
if (!empty($template->_tpldata['jumpbox_forums']))
{
foreach ($template->_tpldata['jumpbox_forums'] as $row => $data)
{
$your_username = get_username_string('username', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$my_username = $founder_name;
$data['FORUM_NAME'] = filter_username($your_userfull, $my_userfull, $data['FORUM_NAME']);
// Alter the array
$template->alter_block_array('jumpbox_forums', array(
'FORUM_NAME' => $data['FORUM_NAME'],
), $row, 'change');
}
}
break;
case 'viewforum':
case 'index':
if (!empty($template->_tpldata['navlinks']))
{
foreach ($template->_tpldata['navlinks'] as $row => $data)
{
$your_username = get_username_string('username', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$my_username = $founder_name;
$data['FORUM_NAME'] = filter_username($your_username, $my_username, $data['FORUM_NAME']);
// Alter the array
$template->alter_block_array('navlinks', array(
'FORUM_NAME' => $data['FORUM_NAME'],
), $row, 'change');
}
}
if (!empty($template->_tpldata['topicrow']))
{
foreach ($template->_tpldata['topicrow'] as $row => $data)
{
$your_username = get_username_string('username', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$my_username = $data['TOPIC_AUTHOR'];
$data['TOPIC_TITLE'] = filter_username($your_username, $my_username, $data['TOPIC_TITLE']);
// Alter the array
$template->alter_block_array('topicrow', array(
'TOPIC_TITLE' => $data['TOPIC_TITLE'],
), $row, 'change');
}
}
if (!empty($template->_tpldata['forumrow']))
{
foreach ($template->_tpldata['forumrow'] as $row => $data)
{
$your_username = get_username_string('username', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$my_username = $founder_name;
$your_userfull = get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$my_userfull = $founder_full;
$data['FORUM_DESC'] = filter_username($your_userfull, $my_userfull, $data['FORUM_DESC']);
$data['FORUM_NAME'] = filter_username($your_username, $my_username, $data['FORUM_NAME']);
if(isset($data['S_SUBFORUMS']))
{
$data['SUBFORUMS'] = filter_username($your_username, $my_username, $data['SUBFORUMS']);
}
else
{
$data['SUBFORUMS'] = '';
}
// Alter the array
$template->alter_block_array('forumrow', array(
'FORUM_DESC' => $data['FORUM_DESC'],
'FORUM_NAME' => $data['FORUM_NAME'],
'SUBFORUMS' => $data['SUBFORUMS'],
), $row, 'change');
}
}
if (isset($template->_tpldata['.'][0]['FORUM_NAME']))
{
$your_username = get_username_string('username', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->lang['GUEST']);
$my_username = $founder_name;
$template->_tpldata['.'][0]['FORUM_NAME'] = filter_username($your_username, $my_username, $template->_tpldata['.'][0]['FORUM_NAME']);
$template->assign_var('FORUM_NAME', $template->_tpldata['.'][0]['FORUM_NAME']);
}
break;
}
}
/**
* Only register the hook for normal pages, not administration pages.
*/
if (!defined('ADMIN_START'))
{
$phpbb_hook->register(array('template', 'display'), 'hook_filter');
}