$form is not a global variable, and is therefor not available in other methods and classes than the one you are working in. $form is not sent to the parent method, and it's redefined (overwritten) in the parent method, so wouldn't work if it did.
You can either define it in the skin file, or run temporarily save it to the cache.
$IPBHTML .= <<<HTML;
<-- other form elements -->
HTML;
$form['value'] = $this->registry->output->formYesNo('value', ( isset($this->request['value']) AND $this->request['value'] ) ? $this->request['value'] : $forum['value'] );
$IPBHTML .= <<<HTML;
<li>
<label>My Text?<span class='desctext'>My description.</span></label>
{$form['value']}
</li>
Or save to cache:
public function forumForm( $type='edit', $changetype=0 )
{
$myForm = $this->registry->output->formYesNo('value', ( isset($this->request['value']) AND $this->request['value'] ) ? $this->request['value'] : $forum['value'] );
$this->cache->updateCacheWithoutSaving( 'myFormData', $myForm );
return parent::forumForm( $type, $changetype );
}
Now you can use "$this->caches['myFormData']" in the skin to print the form.