PDA

View Full Version : My really dummy's guide to custom hooks


markp_2000
17 Jul 2006, 00:28
I was really struggling getting my head around the whole hook think. I read all of the tutes and it was still not sinking in.

But then eureka! To get the hook to display have it evaluate to the template variable. DO NOT echo anything in the hook! Have all of the results feed the variable. In the example below it is $mycustomstuff in the template.

So when the hook fires it will put the results into the $mycustomstuff variable and then when the page is rendered the templating system will display the results where ever the $mycustomstuff variable is in the template.

Mark

test.php

<?php

// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'coupon'); // change this depending on your filename

// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array(

);

// get special data templates from the datastore
$specialtemplates = array(

);

// pre-cache templates used by all actions
$globaltemplates = array(
'TEST',
);

// pre-cache templates used by specific actions
$actiontemplates = array(

);

// ######################### REQUIRE BACK-END ############################
require_once('./global.php');

if (!( $vbulletin->userinfo['userid']==1) )
{
print_no_permission();
}



// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################

$navbits = array();
$navbits[$parent] = 'Coupon Database';

$navbits = construct_navbits($navbits);
eval('$navbar = "' . fetch_template('navbar') . '";');
($hook = vBulletinHook::fetch_hook('my_custom_hook_1')) ? eval($hook) : false;
eval('print_output("' . fetch_template('TEST') . '");');


?>


Template

$stylevar[htmldoctype]
<html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
$headinclude
<title>$pagetitle</title>
</head>
<body>
$header
$navbar

$mycustomstuff

$footer
</body>
</html>


plugin/hook

Hook Location: my_custom_hook_1
Name: My First Hook
Code:
$mycustomstuff = '<h1>Hook is here</h1>';