Failure when overwriting theme_form_element
agentrickard - December 27, 2005 - 21:20
| Project: | PHPTemplate |
| Version: | 4.6.x-1.x-dev |
| Component: | Code |
| Category: | bug report |
| Priority: | normal |
| Assigned: | Unassigned |
| Status: | active |
Description
This doesn't seem like it should fail, but it does.
Using Drupal 4.6.3 on PHP 4.3.9 PHPTemplate 1.24.2.4
Added file to themes dir: template.php
<?php
function phptemplate_form_element($title, $value, $description = NULL, $id = NULL, $required = FALSE, $error = FALSE) {
// Pass to phptemplate, including translating the parameters to an associative array. The element names are the names that the variables
// will be assigned within your template.
return _phptemplate_callback('form_element', array('title' => $title, 'value' => $value, 'description' => $description, 'id' => $id, 'required' => $required, 'error' => $error));
}
?>Added form_elememt.tpl.php to themes directory:
<?php
$output ="";
$output = "<div class=\"form-item\">\n";
$required = $required ? '<span class="form-required">*</span>' : '';
if ($title) {
if ($id) {
$output .= "<div class=\"label\"><label for=\"$id\">$title:</label>$required</div>\n";
}
else {
$output .= "<div class=\"label\"><label>$title:</label>$required</div>\n";
}
}
$output .= "<div class=\"value\">$value</div>\n";
if ($description) {
$output .= "<div class=\"description\">$description</div>\n";
}
$output .= "</div>\n";
print $output;
?> Works just great for form display (which was my intent).
But it breaks the site when submitting any form. Now, this is possibly not a PHPTemplate bug, but when I insert the following:
<?php
/**
* Create an form_element function, and redirect through the template api
**/
print "hello";
function phptemplate_form_element($title, $value, $description = NULL, $id = NULL, $required = FALSE, $error = FALSE) {
// Pass to phptemplate, including translating the parameters to an associative array. The element names are the names that the variables
// will be assigned within your template.
return _phptemplate_callback('form_element', array('title' => $title, 'value' => $value, 'description' => $description, 'id' => $id, 'required' => $required, 'error' => $error));
}
?> And then submit a form, I get "hello" and then a page crash (blank white PHP blankness).
Oddly, the form does submit and process correctly AFAIK. It just looks like the redirect function gets broken. If I remove the template.php file, this problem goes away.
Maybe I'm dropping a variable somewhere.
