Example #1
0
 /**
  * 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();
         }
     }
 }