<?php
class bdMedal_Listener {
public static function load_class($class, array &$extend) {
static $classes = array(
[COLOR=#ff9900] 'XenForo_ControllerAdmin_User',[/COLOR]
[COLOR=#ff9900] 'XenForo_ControllerPublic_Member',[/COLOR]
[COLOR=#ff9900] 'XenForo_ControllerPublic_Help',[/COLOR]
[COLOR=#ff9900] 'XenForo_Model_Import',[/COLOR]
);
if (in_array($class, $classes)) {
$extend[] = str_replace('XenForo_', 'bdMedal_Extend_', $class);
}
}
public static function load_class_importer($class, array &$extend) {
if (strpos($class, 'vBulletin') != false AND !defined('bdMedal_Extend_Importer_vBulletin_LOADED')) {
$extend[] = 'bdMedal_Extend_Importer_vBulletin';
}
}
public static function init_dependencies(XenForo_Dependencies_Abstract $dependencies, array $data) {
XenForo_Template_Helper_Core::$helperCallbacks['medalimage'] = array('bdMedal_Model_Medal', 'helperMedalImage');
XenForo_Template_Helper_Core::$helperCallbacks['medalimagesize'] = array('bdMedal_Model_Medal', 'helperMedalImageSize');
}
public static function template_create($templateName, array &$params, XenForo_Template_Abstract $template) {
[COLOR=#ff0000] if ($templateName == 'message') {[/COLOR]
[COLOR=#ff0000] $template->preloadTemplate('bdmedal_message_medals');[/COLOR]
}
elseif ($templateName == 'member_view') {
$template->preloadTemplate('bdmedal_member_view_sidebar_middle1');
$template->preloadTemplate('bdmedal_member_view_tabs_heading');
$template->preloadTemplate('bdmedal_member_view_tabs_content');
}
elseif ($templateName == 'PAGE_CONTAINER') {
$template->preloadTemplate('bdmedal_navigation_tabs_help');
}
}
public static function template_hook($hookName, &$contents, array $hookParams, XenForo_Template_Abstract $template) {
$positionInPost = XenForo_Application::get('options')->get('bdMedal_positionInPost');
if ($positionInPost != 'manual') {
if (strpos($positionInPost, $hookName) === 0) {
// found the position
$hookParams['user']['xf_bdmedal_awarded_cached'] = @unserialize($hookParams['user']['xf_bdmedal_awarded_cached']);
$ourTemplate = $template->create('bdmedal_message_medals', $hookParams);
$rendered = $ourTemplate->render();
// output
$positionInternal = trim(str_replace($hookName, '', $positionInPost), '_');
switch ($positionInternal) {
case 'top':
$contents = $rendered . $contents;
break;
case 'bottom':
$contents .= $rendered;
break;
}
}
}
if ($hookName == 'member_view_sidebar_middle1') {
$ourTemplate = $template->create('bdmedal_member_view_sidebar_middle1', $template->getParams());
$rendered = $ourTemplate->render();
$contents .= $rendered;
}
elseif ($hookName == 'member_view_tabs_heading') {
$ourTemplate = $template->create('bdmedal_member_view_tabs_heading', $template->getParams());
$rendered = $ourTemplate->render();
$contents .= $rendered;
}
elseif ($hookName == 'member_view_tabs_content') {
$ourTemplate = $template->create('bdmedal_member_view_tabs_content', $template->getParams());
$rendered = $ourTemplate->render();
$contents .= $rendered;
}
elseif ($hookName == 'navigation_tabs_help') {
$ourTemplate = $template->create('bdmedal_navigation_tabs_help');
$rendered = $ourTemplate->render();
$contents .= $rendered;
}
[COLOR=#ff0000] elseif ($hookName == 'message_content') {[/COLOR]
[COLOR=#ff0000] $ourTemplate = $template->create('bdmedal_message_medals');[/COLOR]
[COLOR=#ff0000] $rendered = $ourTemplate->render();[/COLOR]
[COLOR=#ff0000] $contents .= $rendered;[/COLOR]
}
}
}