Skip to content

Instantly share code, notes, and snippets.

Created Jan 16, 2014
What would you like to do?
Example method to remove simple $form['#prefix'] and $form['#suffix'] elements from rendered markup in a Drupal 6 page preprocess function using SimpleXMLElement.
* Page preprocess.
function phptemplate_preprocess_page(&$variables) {
// Return the fully rendered search block, and its SimpleXMLElement equivalent.
$block = theme('block', (object) module_invoke('google_appliance', 'block', 'view', 'google_search'));
$block_xml = new SimpleXMLElement($block);
// Parse out $form['#prefix'] and $form['#suffix']
$prefix = $block_xml->xpath('//form/preceding-sibling::*[1]');
$suffix = $block_xml->xpath('//form/following-sibling::*[1]');
// Replace relevant XML bits in the rendered markup.
$to_be_replaced = array($prefix[0]->asXML(), $suffix[0]->asXML());
$replacements = array('', '');
$block = str_replace($to_be_replaced, $replacements, $block);
// Assign the final, processed block HTML.
$variables['search_box'] = $block;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment