/** * Return debugging information, as XHTML. If a field name is passed, * it will show debugging information on that field, otherwise it will show * information on all methods and fields. * @var string $field The field name. * @return string */ function forTemplate($field = null) { if ($field) { return "<b>Info on {$field}:<br/>" . ($this->obj->hasMethod($field) ? "Has method '{$field}'. " : "") . ($this->obj->hasField($field) ? "Has field '{$field}'. " : ""); } else { echo "<b>Debug: all methods available in {$this->obj->class}</b><br/>"; echo "<ul>"; $names = $this->obj->allMethodNames(); foreach ($names as $name) { if (strtoupper($name[0]) == $name[0] && $name[0] != "_") { echo "<li>\${$name}</li>"; } } echo "</ul>"; if ($this->obj->hasMethod('getAllFields')) { echo "<b>Debug: all fields available in {$this->obj->class}</b><br/>"; echo "<ul>"; $data = $this->obj->getAllFields(); foreach ($data as $key => $val) { echo "<li>\${$key}</li>"; } echo "</ul>"; } } if ($this->obj->hasMethod('data')) { if ($this->obj->data() != $this->obj) { $d = new ViewableData_Debugger($this->obj->data()); echo $d->forTemplate(); } } }