The quickest way to describe is to illustrate. Save this as a modifications directory file (say, modifications/example.php):
<?php
$pseudomethods[] = 'ismine';
$pseudomethods[] = 'specialformula';
function ismine($object)
{ // determine if the object is owned by the viewing member
global $thismember;
$r = 0;
if ($object->ownerid == $thismember->id && $thismember->isregistered()) $r = 1;
return $r;
}
function specialformula($object)
{
if ($object->objecttype == 'link')
{
if ($object->recipurl && $object->recipurl != 'http://') $recipformula = 0.5;
else $recipformula = -0.5;
$formula = ((((($object->numposts + 2)/($object->numposts + 1)) + (($object->hitsin + 10)/($object->hitsin + 1)) + ($object->rating / 2) + $recipformula) + $object->pagerank) / 2);
$r = $formula;
}
else if ($object->objecttype == 'member')
{
$formula = ($this->submissions() * 2) + $this->postcount();
if ($this->time < time() - (86400*100)) $formula = $formula * 1.75; // extra credit for sticking around more than 100 days
$r = $formula;
}
return $r;
}
?>
$pseudomethods[] = 'ismine';
$pseudomethods[] = 'specialformula';
function ismine($object)
{ // determine if the object is owned by the viewing member
global $thismember;
$r = 0;
if ($object->ownerid == $thismember->id && $thismember->isregistered()) $r = 1;
return $r;
}
function specialformula($object)
{
if ($object->objecttype == 'link')
{
if ($object->recipurl && $object->recipurl != 'http://') $recipformula = 0.5;
else $recipformula = -0.5;
$formula = ((((($object->numposts + 2)/($object->numposts + 1)) + (($object->hitsin + 10)/($object->hitsin + 1)) + ($object->rating / 2) + $recipformula) + $object->pagerank) / 2);
$r = $formula;
}
else if ($object->objecttype == 'member')
{
$formula = ($this->submissions() * 2) + $this->postcount();
if ($this->time < time() - (86400*100)) $formula = $formula * 1.75; // extra credit for sticking around more than 100 days
$r = $formula;
}
return $r;
}
?>
This has added several template variables: {LINKISMINE} (plus {CAT/{COMMENT/{MEMBER versions) and {LINKSPECIALFORMULA} / {MEMBERSPECIALFORMULA}. It's important to note that these functions can apply to all types of objects, so you could actually use {EVENTFUNDSDAYS} as well, though it doesn't make any logical sense so you wouldn't.
Basically all there is to do is write the function, and then add the function name to the $pseudomethods array as shown at the top.
$object will be whatever sort of object it's a template variable for, so to work with multiple types of objects you test $object->objecttype as shown in the example.
The specialformula function is an example for when you have formulas in mind too complicated to do in the topic importance or member rating formula boxes. It provides an illustration of how you test for what type of object you're working with.
Please be careful to ensure that your function name doesn't conflict with any existing object methods, fields or functions. Make it unique. One way to ensure that in a future-proof manner is to use your own prefix, like yourname_functionname.