Index: includes/common.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/common.inc,v
retrieving revision 1.553
diff -u -F^f -r1.553 common.inc
--- includes/common.inc 9 Aug 2006 07:42:55 -0000 1.553
+++ includes/common.inc 10 Aug 2006 01:54:22 -0000
@@ -1570,3 +1570,116 @@ function drupal_cron_run() {
// Return TRUE so other functions can check if it did run successfully
return TRUE;
}
+
+/**
+ * Renders HTML given a structured array tree. Recursively iterates over each
+ * of the array elements, generating HTML code. This function is usually
+ * called from within a another function, like drupal_get_form() or node_view().
+ *
+ * @param $elements
+ * The structured array describing the data to be rendered.
+ * @return
+ * The rendered HTML.
+ */
+function drupal_render(&$elements) {
+ if (!isset($elements)) {
+ return NULL;
+ }
+ $content = '';
+ uasort($elements, "_element_sort");
+ if (!isset($elements['#children'])) {
+ $children = element_children($elements);
+ /* Render all the children that use a theme function */
+ if (isset($elements['#theme']) && !$elements['#theme_used']) {
+ $elements['#theme_used'] = TRUE;
+
+ $previous_value = $elements['#value'];
+ $previous_type = $elements['#type'];
+ // If we rendered a single element, then we will skip the renderer.
+ if (empty($children)) {
+ $elements['#printed'] = TRUE;
+ }
+ else {
+ $elements['#value'] = '';
+ }
+ $elements['#type'] = 'markup';
+
+ $content = theme($elements['#theme'], $elements);
+
+ $elements['#value'] = $previous_value;
+ $elements['#type'] = $previous_type;
+ unset($elements['#prefix'], $elements['#suffix']);
+ }
+ /* render each of the children using drupal_render and concatenate them */
+ if (!isset($content) || $content === '') {
+ foreach ($children as $key) {
+ $content .= drupal_render($elements[$key]);
+ }
+ }
+ }
+ if (isset($content) && $content !== '') {
+ $elements['#children'] = $content;
+ }
+
+ // Until now, we rendered the children, here we render the element itself
+ if (!isset($elements['#printed'])) {
+ $content = theme(($elements['#type']) ? $elements['#type']: 'markup', $elements);
+ $elements['#printed'] = TRUE;
+ }
+
+ if (isset($content) && $content !== '') {
+ $prefix = isset($elements['#prefix']) ? $elements['#prefix'] : '';
+ $suffix = isset($elements['#suffix']) ? $elements['#suffix'] : '';
+ $content = $prefix . $content . $suffix;
+
+ if (isset($elements['#after_render'])) {
+ foreach ($elements['#after_render'] as $function) {
+ $function($elements, $content);
+ }
+ }
+
+ return $content;
+ }
+}
+
+/**
+ * Function used by uasort in drupal_render() to sort structured arrays
+ * by weight.
+ */
+function _element_sort($a, $b) {
+ $a_weight = (is_array($a) && isset($a['#weight'])) ? $a['#weight'] : 0;
+ $b_weight = (is_array($b) && isset($b['#weight'])) ? $b['#weight'] : 0;
+ if ($a_weight == $b_weight) {
+ return 0;
+ }
+ return ($a_weight < $b_weight) ? -1 : 1;
+}
+
+/**
+ * Check if the key is a property.
+ */
+function element_property($key) {
+ return $key[0] == '#';
+}
+
+/**
+ * Get properties of a structured array element. Properties begin with '#'.
+ */
+function element_properties($element) {
+ return array_filter(array_keys((array) $element), 'element_property');
+}
+
+/**
+ * Check if the key is a child.
+ */
+function element_child($key) {
+ return $key[0] != '#';
+}
+
+/**
+ * Get keys of a structured array tree element that are not properties
+ * (i.e., do not begin with '#').
+ */
+function element_children($element) {
+ return array_filter(array_keys((array) $element), 'element_child');
+}
\ No newline at end of file
Index: includes/form.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/form.inc,v
retrieving revision 1.132
diff -u -F^f -r1.132 form.inc
--- includes/form.inc 5 Aug 2006 00:26:35 -0000 1.132
+++ includes/form.inc 10 Aug 2006 01:54:22 -0000
@@ -15,34 +15,6 @@
*/
/**
- * Check if the key is a property.
- */
-function element_property($key) {
- return $key[0] == '#';
-}
-
-/**
- * Get properties of a form tree element. Properties begin with '#'.
- */
-function element_properties($element) {
- return array_filter(array_keys((array) $element), 'element_property');
-}
-
-/**
- * Check if the key is a child.
- */
-function element_child($key) {
- return $key[0] != '#';
-}
-
-/**
- * Get keys of a form tree element that are not properties (i.e., do not begin with '#').
- */
-function element_children($element) {
- return array_filter(array_keys((array) $element), 'element_child');
-}
-
-/**
* Processes a form array and produces the HTML output of a form.
* If there is input in the $_POST['edit'] variable, this function
* will attempt to validate it, using drupal_validate_form(),
@@ -263,7 +235,7 @@ function drupal_render_form($form_id, &$
}
}
- $output = form_render($form);
+ $output = drupal_render($form);
return $output;
}
@@ -589,82 +561,6 @@ function _form_set_value(&$form_values,
}
/**
- * Renders a HTML form given a form tree. Recursively iterates over each of
- * the form elements, generating HTML code. This function is usually
- * called from within a theme. To render a form from within a module, use
- * drupal_get_form().
- *
- * @param $elements
- * The form tree describing the form.
- * @return
- * The rendered HTML form.
- */
-function form_render(&$elements) {
- if (!isset($elements)) {
- return NULL;
- }
- $content = '';
- uasort($elements, "_form_sort");
- if (!isset($elements['#children'])) {
- $children = element_children($elements);
- /* Render all the children that use a theme function */
- if (isset($elements['#theme']) && !$elements['#theme_used']) {
- $elements['#theme_used'] = TRUE;
-
- $previous_value = $elements['#value'];
- $previous_type = $elements['#type'];
- // If we rendered a single element, then we will skip the renderer.
- if (empty($children)) {
- $elements['#printed'] = TRUE;
- }
- else {
- $elements['#value'] = '';
- }
- $elements['#type'] = 'markup';
-
- $content = theme($elements['#theme'], $elements);
-
- $elements['#value'] = $previous_value;
- $elements['#type'] = $previous_type;
- unset($elements['#prefix'], $elements['#suffix']);
- }
- /* render each of the children using form_render and concatenate them */
- if (!isset($content) || $content === '') {
- foreach ($children as $key) {
- $content .= form_render($elements[$key]);
- }
- }
- }
- if (isset($content) && $content !== '') {
- $elements['#children'] = $content;
- }
-
- // Until now, we rendered the children, here we render the element itself
- if (!isset($elements['#printed'])) {
- $content = theme(($elements['#type']) ? $elements['#type']: 'markup', $elements);
- $elements['#printed'] = TRUE;
- }
-
- if (isset($content) && $content !== '') {
- $prefix = isset($elements['#prefix']) ? $elements['#prefix'] : '';
- $suffix = isset($elements['#suffix']) ? $elements['#suffix'] : '';
- return $prefix . $content . $suffix;
- }
-}
-
-/**
- * Function used by uasort in form_render() to sort form by weight.
- */
-function _form_sort($a, $b) {
- $a_weight = (is_array($a) && isset($a['#weight'])) ? $a['#weight'] : 0;
- $b_weight = (is_array($b) && isset($b['#weight'])) ? $b['#weight'] : 0;
- if ($a_weight == $b_weight) {
- return 0;
- }
- return ($a_weight < $b_weight) ? -1 : 1;
-}
-
-/**
* Retrieve the default properties for the defined element type.
*/
function _element_info($type, $refresh = NULL) {
Index: includes/locale.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/locale.inc,v
retrieving revision 1.84
diff -u -F^f -r1.84 locale.inc
--- includes/locale.inc 7 Aug 2006 15:04:13 -0000 1.84
+++ includes/locale.inc 10 Aug 2006 01:54:22 -0000
@@ -86,12 +86,12 @@ function theme_locale_admin_manage_scree
foreach ($form['name'] as $key => $element) {
// Do not take form control structures.
if (is_array($element) && element_child($key)) {
- $rows[] = array(check_plain($key), form_render($form['name'][$key]), form_render($form['enabled'][$key]), form_render($form['site_default'][$key]), ($key != 'en' ? form_render($form['translation'][$key]) : t('n/a')), ($key != 'en' ? l(t('delete'), 'admin/settings/locale/language/delete/'. $key) : ''));
+ $rows[] = array(check_plain($key), drupal_render($form['name'][$key]), drupal_render($form['enabled'][$key]), drupal_render($form['site_default'][$key]), ($key != 'en' ? drupal_render($form['translation'][$key]) : t('n/a')), ($key != 'en' ? l(t('delete'), 'admin/settings/locale/language/delete/'. $key) : ''));
}
}
$header = array(array('data' => t('Code')), array('data' => t('English name')), array('data' => t('Enabled')), array('data' => t('Default')), array('data' => t('Translated')), array('data' => t('Operations')));
$output = theme('table', $header, $rows);
- $output .= form_render($form);
+ $output .= drupal_render($form);
return $output;
}
Index: modules/aggregator/aggregator.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/aggregator/aggregator.module,v
retrieving revision 1.294
diff -u -F^f -r1.294 aggregator.module
--- modules/aggregator/aggregator.module 7 Aug 2006 15:04:13 -0000 1.294
+++ modules/aggregator/aggregator.module 10 Aug 2006 01:54:23 -0000
@@ -1105,19 +1105,19 @@ function _aggregator_page_list($sql, $op
function theme_aggregator_page_list($form) {
$output = '
';
- $output .= form_render($form['header']);
+ $output .= drupal_render($form['header']);
$rows = array();
if ($form['items']) {
foreach (element_children($form['items']) as $key) {
if (is_array($form['items'][$key])) {
- $rows[] = array(form_render($form['items'][$key]), array('data' => form_render($form['categories'][$key]), 'class' => 'categorize-item'));
+ $rows[] = array(drupal_render($form['items'][$key]), array('data' => drupal_render($form['categories'][$key]), 'class' => 'categorize-item'));
}
}
}
$output .= theme('table', array('', t('Categorize')), $rows);
- $output .= form_render($form['submit']);
+ $output .= drupal_render($form['submit']);
$output .= '
';
- $output .= form_render($form);
+ $output .= drupal_render($form);
return $output;
}
Index: modules/block/block.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/block/block.module,v
retrieving revision 1.212
diff -u -F^f -r1.212 block.module
--- modules/block/block.module 7 Aug 2006 15:04:14 -0000 1.212
+++ modules/block/block.module 10 Aug 2006 01:54:23 -0000
@@ -320,16 +320,16 @@ function theme_block_admin_display($form
// Generate block row
$row = array(
- array('data' => form_render($block['info']), 'class' => 'block'),
- form_render($block['status']) . form_render($block['theme']),
- form_render($block['weight']),
- form_render($block['region'])
+ array('data' => drupal_render($block['info']), 'class' => 'block'),
+ drupal_render($block['status']) . drupal_render($block['theme']),
+ drupal_render($block['weight']),
+ drupal_render($block['region'])
);
if ($throttle) {
- $row[] = form_render($block['throttle']);
+ $row[] = drupal_render($block['throttle']);
}
- $row[] = form_render($block['configure']);
- $row[] = $block['delete'] ? form_render($block['delete']) : '';
+ $row[] = drupal_render($block['configure']);
+ $row[] = $block['delete'] ? drupal_render($block['delete']) : '';
$rows[] = $row;
}
}
@@ -342,10 +342,10 @@ function theme_block_admin_display($form
$header[] = array('data' => t('Operations'), 'colspan' => 2);
$output = theme('table', $header, $rows, array('id' => 'blocks'));
- $output .= form_render($form['submit']);
- // Also render the form_id as there is no form_render($form) call (as form_render does not appear to handle the
+ $output .= drupal_render($form['submit']);
+ // Also render the form_id as there is no drupal_render($form) call (as drupal_render does not appear to handle the
// multi-dimensional block form array very well).
- $output .= form_render($form['form_id']);
+ $output .= drupal_render($form['form_id']);
return $output;
}
Index: modules/blog/blog.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/blog/blog.module,v
retrieving revision 1.255
diff -u -F^f -r1.255 blog.module
--- modules/blog/blog.module 7 Aug 2006 15:04:14 -0000 1.255
+++ modules/blog/blog.module 10 Aug 2006 01:54:24 -0000
@@ -235,7 +235,7 @@ function blog_form(&$node) {
/**
* Implementation of hook_view().
*/
-function blog_view(&$node, $teaser = FALSE, $page = FALSE) {
+function blog_view($node, $teaser = FALSE, $page = FALSE) {
if ($page) {
// Breadcrumb navigation
$breadcrumb[] = array('path' => 'blog', 'title' => t('blogs'));
@@ -243,7 +243,7 @@ function blog_view(&$node, $teaser = FAL
$breadcrumb[] = array('path' => 'node/'. $node->nid);
menu_set_location($breadcrumb);
}
- $node = node_prepare($node, $teaser);
+ return node_prepare($node, $teaser);
}
/**
Index: modules/book/book.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/book/book.module,v
retrieving revision 1.380
diff -u -F^f -r1.380 book.module
--- modules/book/book.module 7 Aug 2006 19:29:38 -0000 1.380
+++ modules/book/book.module 10 Aug 2006 01:54:24 -0000
@@ -440,16 +440,6 @@ function book_content($node, $teaser = F
}
/**
- * Implementation of hook_view().
- *
- * If not displayed on the main page, we render the node as a page in the
- * book with extra links to the previous and next pages.
- */
-function book_view(&$node, $teaser = FALSE, $page = FALSE) {
- $node = node_prepare($node, $teaser);
-}
-
-/**
* Implementation of hook_nodeapi().
*
* Appends book navigation to all nodes in the book.
@@ -472,7 +462,10 @@ function book_nodeapi(&$node, $op, $teas
}
$node->breadcrumb[] = array('path' => 'node/'. $node->nid);
- $node->body .= theme('book_navigation', $node);
+ $node->content['book_navigation'] = array(
+ '#value' => theme('book_navigation', $node),
+ '#weight' => 100,
+ );
if ($page) {
menu_set_location($node->breadcrumb);
@@ -807,7 +800,7 @@ function book_node_visitor_html_pre($nod
$output .= "'. form_render($form[$key]['title']) .'
',
- form_render($form[$key]['weight']),
+ ''. drupal_render($form[$key]['title']) .'
',
+ drupal_render($form[$key]['weight']),
l(t('view'), 'node/'. $nid),
l(t('edit'), 'node/'. $nid .'/edit'),
l(t('delete'), 'node/'. $nid .'/delete', NULL, 'destination=admin/content/book'. (arg(3) == 'orphan' ? '/orphan' : '') . ($pid != $nid ? '/'.$pid : ''))
Index: modules/comment/comment.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment/comment.module,v
retrieving revision 1.472
diff -u -F^f -r1.472 comment.module
--- modules/comment/comment.module 7 Aug 2006 15:04:14 -0000 1.472
+++ modules/comment/comment.module 10 Aug 2006 01:54:24 -0000
@@ -1085,15 +1085,15 @@ function comment_admin_overview_submit($
}
function theme_comment_admin_overview($form) {
- $output = form_render($form['options']);
+ $output = drupal_render($form['options']);
if (isset($form['subject']) && is_array($form['subject'])) {
foreach (element_children($form['subject']) as $key) {
$row = array();
- $row[] = form_render($form['comments'][$key]);
- $row[] = form_render($form['subject'][$key]);
- $row[] = form_render($form['username'][$key]);
- $row[] = form_render($form['timestamp'][$key]);
- $row[] = form_render($form['operations'][$key]);
+ $row[] = drupal_render($form['comments'][$key]);
+ $row[] = drupal_render($form['subject'][$key]);
+ $row[] = drupal_render($form['username'][$key]);
+ $row[] = drupal_render($form['timestamp'][$key]);
+ $row[] = drupal_render($form['operations'][$key]);
$rows[] = $row;
}
}
@@ -1103,10 +1103,10 @@ function theme_comment_admin_overview($f
$output .= theme('table', $form['header']['#value'], $rows);
if ($form['pager']['#value']) {
- $output .= form_render($form['pager']);
+ $output .= drupal_render($form['pager']);
}
- $output .= form_render($form);
+ $output .= drupal_render($form);
return $output;
}
@@ -1580,7 +1580,7 @@ function comment_controls($mode = COMMEN
function theme_comment_controls($form) {
$output .= '';
- $output .= form_render($form);
+ $output .= drupal_render($form);
$output .= '
';
$output .= ''. t('Select your preferred way to display the comments and click "Save settings" to activate your changes.') .'
';
return theme('box', t('Comment viewing options'), $output);
Index: modules/filter/filter.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/filter/filter.module,v
retrieving revision 1.132
diff -u -F^f -r1.132 filter.module
--- modules/filter/filter.module 7 Aug 2006 15:04:14 -0000 1.132
+++ modules/filter/filter.module 10 Aug 2006 01:54:24 -0000
@@ -331,18 +331,18 @@ function theme_filter_admin_overview($fo
foreach ($form as $name => $element) {
if (isset($element['roles']) && is_array($element['roles'])) {
$rows[] = array(
- form_render($form['default'][$element['id']['#value']]),
+ drupal_render($form['default'][$element['id']['#value']]),
check_plain($name),
- form_render($element['roles']),
- form_render($element['configure']),
- form_render($element['delete'])
+ drupal_render($element['roles']),
+ drupal_render($element['configure']),
+ drupal_render($element['delete'])
);
unset($form[$name]);
}
}
$header = array(t('Default'), t('Name'), t('Roles'), array('data' => t('Operations'), 'colspan' => 2));
$output = theme('table', $header, $rows);
- $output .= form_render($form);
+ $output .= drupal_render($form);
return $output;
}
@@ -561,12 +561,12 @@ function theme_filter_admin_order($form)
foreach (element_children($form['names']) as $id) {
// Don't take form control structures
if (is_array($form['names'][$id])) {
- $rows[] = array(form_render($form['names'][$id]), form_render($form['weights'][$id]));
+ $rows[] = array(drupal_render($form['names'][$id]), drupal_render($form['weights'][$id]));
}
}
$output = theme('table', $header, $rows);
- $output .= form_render($form);
+ $output .= drupal_render($form);
return $output;
}
Index: modules/forum/forum.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/forum/forum.module,v
retrieving revision 1.345
diff -u -F^f -r1.345 forum.module
--- modules/forum/forum.module 7 Aug 2006 15:04:14 -0000 1.345
+++ modules/forum/forum.module 10 Aug 2006 01:54:24 -0000
@@ -313,8 +313,11 @@ function forum_view(&$node, $teaser = FA
}
$node = node_prepare($node, $teaser);
-
- $node->body .= theme('forum_topic_navigation', $node);
+ $node->content['forum_navigation'] = array(
+ '#value' => theme('forum_topic_navigation', $node),
+ '#weight' => 100,
+ );
+ return $node;
}
/**
Index: modules/node/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.module,v
retrieving revision 1.668
diff -u -F^f -r1.668 node.module
--- modules/node/node.module 7 Aug 2006 15:04:15 -0000 1.668
+++ modules/node/node.module 10 Aug 2006 01:54:25 -0000
@@ -636,24 +636,6 @@ function node_save(&$node) {
function node_view($node, $teaser = FALSE, $page = FALSE, $links = TRUE) {
$node = (object)$node;
- // Remove the delimiter (if any) that separates the teaser from the body.
- // TODO: this strips legitimate uses of '' also.
- $node->body = str_replace('', '', $node->body);
-
- if ($node->log != '' && !$teaser) {
- $node->body .= '';
- $output .= form_render($form['filters']);
+ $output .= drupal_render($form['filters']);
$output .= '
';
- $output .= form_render($form);
+ $output .= drupal_render($form);
return $output;
}
@@ -1281,25 +1309,25 @@ function theme_node_filters(&$form) {
$output .= '\n";
if (isset($form['node_preview'])) {
- $output .= form_render($form['node_preview']);
+ $output .= drupal_render($form['node_preview']);
}
// Admin form fields and submit buttons must be rendered first, because
// they need to go to the bottom of the form, and so should not be part of
- // the catch-all call to form_render().
+ // the catch-all call to drupal_render().
$admin = '';
if (isset($form['author'])) {
$admin .= "
\n";
- $admin .= form_render($form['author']);
+ $admin .= drupal_render($form['author']);
$admin .= "
\n";
}
if (isset($form['options'])) {
$admin .= "
\n";
- $admin .= form_render($form['options']);
+ $admin .= drupal_render($form['options']);
$admin .= "
\n";
}
- $buttons = form_render($form['preview']);
- $buttons .= form_render($form['submit']);
- $buttons .= isset($form['delete']) ? form_render($form['delete']) : '';
+ $buttons = drupal_render($form['preview']);
+ $buttons .= drupal_render($form['submit']);
+ $buttons .= isset($form['delete']) ? drupal_render($form['delete']) : '';
// Everything else gets rendered here, and is displayed before the admin form
// field and the submit buttons.
$output .= "
\n";
- $output .= form_render($form);
+ $output .= drupal_render($form);
$output .= "
\n";
if (!empty($admin)) {
@@ -2049,6 +2077,10 @@ function theme_node_preview($node) {
return $output;
}
+function theme_node_log_message($log) {
+ return '
'. t('Log') .':
'. $log .'
';
+}
+
function node_form_submit($form_id, $edit) {
global $user;
@@ -2328,15 +2360,10 @@ function node_update_index() {
$last_nid = $node->nid;
$node = node_load($node->nid);
- // Get node output (filtered and with module-specific fields).
- if (node_hook($node, 'view')) {
- node_invoke($node, 'view', FALSE, FALSE);
- }
- else {
- $node = node_prepare($node, FALSE);
- }
- // Allow modules to change $node->body before viewing.
- node_invoke_nodeapi($node, 'view', FALSE, FALSE);
+ // Build the node body.
+ $node = node_load($item->sid);
+ $node = node_build_content($node, FALSE, FALSE);
+ $node->body = drupal_render($node->content);
$text = '
'. check_plain($node->title) .'
'. $node->body;
Index: modules/poll/poll.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/poll/poll.module,v
retrieving revision 1.206
diff -u -F^f -r1.206 poll.module
--- modules/poll/poll.module 7 Aug 2006 15:04:15 -0000 1.206
+++ modules/poll/poll.module 10 Aug 2006 01:54:25 -0000
@@ -56,12 +56,11 @@ function poll_block($op = 'list', $delta
$poll = node_load(array('type' => 'poll', 'created' => $timestamp, 'status' => 1));
if ($poll->nid) {
- // poll_view() dumps the output into $poll->body.
- poll_view($poll, 1, 0, 1);
+ $poll = poll_view($poll, TRUE, FALSE, TRUE);
}
}
$block['subject'] = t('Poll');
- $block['content'] = $poll->body;
+ $block['content'] = drupal_render($poll->content);
return $block;
}
}
@@ -343,12 +342,12 @@ function theme_poll_view_voting($form) {
$output .= '
';
$output .= '
';
- $output .= form_render($form);
+ $output .= drupal_render($form);
$output .= '
';
return $output;
}
@@ -541,14 +540,14 @@ function poll_cancel(&$node) {
* An extra parameter that adapts the hook to display a block-ready
* rendering of the poll.
*/
-function poll_view(&$node, $teaser = FALSE, $page = FALSE, $block = FALSE) {
+function poll_view($node, $teaser = FALSE, $page = FALSE, $block = FALSE) {
global $user;
$output = '';
// Special display for side-block
if ($block) {
// No 'read more' link
- $node->body = $node->teaser = '';
+ $node->readmore = FALSE;
$links = module_invoke_all('link', 'node', $node, 1);
$links[] = array('title' => t('older polls'), 'href' => 'poll', 'attributes' => array('title' => t('View the list of polls on this site.')));
@@ -560,13 +559,16 @@ function poll_view(&$node, $teaser = FAL
}
if ($node->allowvotes && ($block || arg(2) != 'results')) {
- $output .= poll_view_voting($node, $teaser, $page, $block);
+ $node->content['body'] = array(
+ '#value' => poll_view_voting($node, $teaser, $page, $block),
+ );
}
else {
- $output .= poll_view_results($node, $teaser, $page, $block);
+ $node->content['body'] = array(
+ '#value' => poll_view_results($node, $teaser, $page, $block),
+ );
}
-
- $node->body = $node->teaser = $output;
+ return $node;
}
/**
Index: modules/search/search.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/search/search.module,v
retrieving revision 1.189
diff -u -F^f -r1.189 search.module
--- modules/search/search.module 7 Aug 2006 15:04:15 -0000 1.189
+++ modules/search/search.module 10 Aug 2006 01:54:25 -0000
@@ -1062,14 +1062,14 @@ function search_box_form_submit($form_id
* Theme the theme search form.
*/
function theme_search_theme_form($form) {
- return '
'. form_render($form) .'
';
+ return '
'. drupal_render($form) .'
';
}
/**
* Theme the block search form.
*/
function theme_search_block_form($form) {
- return '
'. form_render($form) .'
';
+ return '
'. drupal_render($form) .'
';
}
/**
Index: modules/system/system.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.module,v
retrieving revision 1.340
diff -u -F^f -r1.340 system.module
--- modules/system/system.module 9 Aug 2006 07:42:55 -0000 1.340
+++ modules/system/system.module 10 Aug 2006 01:54:26 -0000
@@ -429,9 +429,9 @@ function theme_system_theme_select_form(
foreach (element_children($form) as $key) {
$row = array();
if (is_array($form[$key]['description'])) {
- $row[] = form_render($form[$key]['screenshot']);
- $row[] = form_render($form[$key]['description']);
- $row[] = form_render($form['theme'][$key]);
+ $row[] = drupal_render($form[$key]['screenshot']);
+ $row[] = drupal_render($form[$key]['description']);
+ $row[] = drupal_render($form['theme'][$key]);
}
$rows[] = $row;
}
@@ -1101,7 +1101,7 @@ function system_themes() {
$form[$info->name]['operations'] = array('#type' => 'markup', '#value' => l(t('configure'), 'admin/build/themes/settings/' . $info->name) );
}
else {
- // Dummy element for form_render. Cleaner than adding a check in the theme function.
+ // Dummy element for drupal_render. Cleaner than adding a check in the theme function.
$form[$info->name]['operations'] = array();
}
}
@@ -1118,12 +1118,12 @@ function theme_system_themes($form) {
foreach (element_children($form) as $key) {
$row = array();
if (is_array($form[$key]['description'])) {
- $row[] = form_render($form[$key]['screenshot']);
- $row[] = form_render($form[$key]['description']);
- $row[] = array('data' => form_render($form['status'][$key]), 'align' => 'center');
+ $row[] = drupal_render($form[$key]['screenshot']);
+ $row[] = drupal_render($form[$key]['description']);
+ $row[] = array('data' => drupal_render($form['status'][$key]), 'align' => 'center');
if ($form['theme_default']) {
- $row[] = array('data' => form_render($form['theme_default'][$key]), 'align' => 'center');
- $row[] = array('data' => form_render($form[$key]['operations']), 'align' => 'center');
+ $row[] = array('data' => drupal_render($form['theme_default'][$key]), 'align' => 'center');
+ $row[] = array('data' => drupal_render($form[$key]['operations']), 'align' => 'center');
}
}
$rows[] = $row;
@@ -1131,7 +1131,7 @@ function theme_system_themes($form) {
$header = array(t('Screenshot'), t('Name'), t('Enabled'), t('Default'), t('Operations'));
$output = theme('table', $header, $rows);
- $output .= form_render($form);
+ $output .= drupal_render($form);
return $output;
}
@@ -1216,12 +1216,12 @@ function system_modules() {
function theme_system_modules($form) {
foreach (element_children($form['name']) as $key) {
$row = array();
- $row[] = form_render($form['name'][$key]);
- $row[] = form_render($form['description'][$key]);
- $row[] = array('data' => form_render($form['status'][$key]), 'align' => 'center');
+ $row[] = drupal_render($form['name'][$key]);
+ $row[] = drupal_render($form['description'][$key]);
+ $row[] = array('data' => drupal_render($form['status'][$key]), 'align' => 'center');
if (module_exist('throttle')) {
- $row[] = array('data' => form_render($form['throttle'][$key]), 'align' => 'center');
+ $row[] = array('data' => drupal_render($form['throttle'][$key]), 'align' => 'center');
}
$rows[] = $row;
}
@@ -1232,7 +1232,7 @@ function theme_system_modules($form) {
}
$output = theme('table', $header, $rows);
- $output .= form_render($form);
+ $output .= drupal_render($form);
return $output;
}
Index: modules/upload/upload.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/upload/upload.module,v
retrieving revision 1.117
diff -u -F^f -r1.117 upload.module
--- modules/upload/upload.module 7 Aug 2006 15:04:15 -0000 1.117
+++ modules/upload/upload.module 10 Aug 2006 01:54:26 -0000
@@ -484,32 +484,36 @@ function upload_nodeapi(&$node, $op, $te
case 'view':
if (isset($node->files) && user_access('view uploaded files')) {
- // Manipulate so that inline references work in preview
- if (!variable_get('clean_url', 0)) {
- $previews = array();
- foreach ($node->files as $file) {
- if (strpos($file->fid, 'upload') !== FALSE) {
- $previews[] = $file;
- }
+ // Add the attachments list to node body with a heavy
+ // weight to ensure they're below other elements
+ if (count($node->files)) {
+ if (!$teaser && user_access('view uploaded files')) {
+ $node->content['files'] = array(
+ '#value' => theme('upload_attachments', $node->files),
+ '#weight' => 50,
+ );
}
-
- // URLs to files being previewed are actually Drupal paths. When Clean
- // URLs are disabled, the two do not match. We perform an automatic
- // replacement from temporary to permanent URLs. That way, the author
- // can use the final URL in the body before having actually saved (to
- // place inline images for example).
- foreach ($previews as $file) {
- $old = file_create_filename($file->filename, file_create_path());
- $new = url($old);
- $node->body = str_replace($old, $new, $node->body);
- $node->teaser = str_replace($old, $new, $node->teaser);
+ // Manipulate so that inline references work in preview
+ if (!variable_get('clean_url', 0)) {
+ $previews = array();
+ foreach ($node->files as $file) {
+ $file = (object)$file;
+ if (strpos($file->fid, 'upload') !== FALSE) {
+ $previews[] = $file;
+ }
+ }
+ // URLs to files being previewed are actually Drupal paths. When Clean
+ // URLs are disabled, the two do not match. We perform an automatic
+ // replacement from temporary to permanent URLs. That way, the author
+ // can use the final URL in the body before having actually saved (to
+ // place inline images for example).
+ foreach ($previews as $file) {
+ $old = file_create_filename($file->filename, file_create_path());
+ $node->content['#upload_urls'][$old] = url($old);
+ }
+ $node->content['#after_render'][] = 'upload_fix_preview_urls';
}
}
-
- // Add the attachments list to node body
- if (count($node->files) && !$teaser) {
- $node->body .= theme('upload_attachments', $node->files);
- }
}
break;
@@ -558,6 +562,18 @@ function upload_nodeapi(&$node, $op, $te
}
}
+function upload_fix_preview_urls($elements, &$content) {
+ if (is_array($elements['#upload_urls'])) {
+ $old_list = array();
+ $new_list = array();
+ foreach ($elements['#upload_urls'] as $old => $new) {
+ $old_list[] = $old;
+ $new_list[] = $new;
+ }
+ $content = str_replace($old_list, $new_list, $content);
+ }
+}
+
/**
* Displays file attachments in table
*/
@@ -797,14 +813,14 @@ function theme_upload_form_current(&$for
foreach (element_children($form) as $key) {
$row = array();
- $row[] = form_render($form[$key]['remove']);
- $row[] = form_render($form[$key]['list']);
- $row[] = form_render($form[$key]['description']);
- $row[] = form_render($form[$key]['size']);
+ $row[] = drupal_render($form[$key]['remove']);
+ $row[] = drupal_render($form[$key]['list']);
+ $row[] = drupal_render($form[$key]['description']);
+ $row[] = drupal_render($form[$key]['size']);
$rows[] = $row;
}
$output = theme('table', $header, $rows);
- $output .= form_render($form);
+ $output .= drupal_render($form);
return $output;
}
@@ -813,7 +829,7 @@ function theme_upload_form_current(&$for
* Note: required to output prefix/suffix.
*/
function theme_upload_form_new($form) {
- $output = form_render($form);
+ $output = drupal_render($form);
return $output;
}
@@ -871,7 +887,7 @@ function upload_js() {
$function('upload_js', $form);
}
$form = form_builder('upload_js', $form);
- $output = theme('status_messages') . form_render($form);
+ $output = theme('status_messages') . drupal_render($form);
// We send the updated file attachments form.
print drupal_to_js(array('status' => TRUE, 'data' => $output));
exit;
Index: modules/user/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.650
diff -u -F^f -r1.650 user.module
--- modules/user/user.module 7 Aug 2006 15:04:16 -0000 1.650
+++ modules/user/user.module 10 Aug 2006 01:54:27 -0000
@@ -1052,7 +1052,7 @@ function user_pass_submit($form_id, $for
function theme_user_pass($form) {
$output = '
'. t('Enter your username or your e-mail address.') .'
';
- $output .= form_render($form);
+ $output .= drupal_render($form);
return $output;
}
@@ -1793,14 +1793,14 @@ function theme_user_admin_perm($form) {
$row = array();
// Module name
if (is_numeric($key)) {
- $row[] = array('data' => form_render($form['permission'][$key]), 'class' => 'module', 'colspan' => count($form['role_names']) + 1);
+ $row[] = array('data' => drupal_render($form['permission'][$key]), 'class' => 'module', 'colspan' => count($form['role_names']) + 1);
// Permissions
}
else {
- $row[] = array('data' => form_render($form['permission'][$key]), 'class' => 'permission');
+ $row[] = array('data' => drupal_render($form['permission'][$key]), 'class' => 'permission');
foreach (element_children($form['checkboxes']) as $rid) {
if (is_array($form['checkboxes'][$rid])) {
- $row[] = array('data' => form_render($form['checkboxes'][$rid][$key]), 'align' => 'center', 'title' => t($key));
+ $row[] = array('data' => drupal_render($form['checkboxes'][$rid][$key]), 'align' => 'center', 'title' => t($key));
}
}
}
@@ -1810,11 +1810,11 @@ function theme_user_admin_perm($form) {
$header[] = (t('Permission'));
foreach (element_children($form['role_names']) as $rid) {
if (is_array($form['role_names'][$rid])) {
- $header[] = form_render($form['role_names'][$rid]);
+ $header[] = drupal_render($form['role_names'][$rid]);
}
}
$output = theme('table', $header, $rows, array('id' => 'permissions'));
- $output .= form_render($form);
+ $output .= drupal_render($form);
return $output;
}
@@ -1904,7 +1904,7 @@ function theme_user_admin_new_role($form
$rows[] = array($name, '
'. t('locked') .'');
}
}
- $rows[] = array(form_render($form['name']), form_render($form['submit']));
+ $rows[] = array(drupal_render($form['name']), drupal_render($form['submit']));
return theme('table', $header, $rows);
}
@@ -1995,17 +1995,17 @@ function theme_user_admin_account($form)
t('Operations')
);
- $output .= form_render($form['options']);
+ $output .= drupal_render($form['options']);
if (isset($form['name']) && is_array($form['name'])) {
foreach (element_children($form['name']) as $key) {
$rows[] = array(
- form_render($form['accounts'][$key]),
- form_render($form['name'][$key]),
- form_render($form['status'][$key]),
- form_render($form['roles'][$key]),
- form_render($form['member_for'][$key]),
- form_render($form['last_access'][$key]),
- form_render($form['operations'][$key]),
+ drupal_render($form['accounts'][$key]),
+ drupal_render($form['name'][$key]),
+ drupal_render($form['status'][$key]),
+ drupal_render($form['roles'][$key]),
+ drupal_render($form['member_for'][$key]),
+ drupal_render($form['last_access'][$key]),
+ drupal_render($form['operations'][$key]),
);
}
}
@@ -2015,10 +2015,10 @@ function theme_user_admin_account($form)
$output .= theme('table', $header, $rows);
if ($form['pager']['#value']) {
- $output .= form_render($form['pager']);
+ $output .= drupal_render($form['pager']);
}
- $output .= form_render($form);
+ $output .= drupal_render($form);
return $output;
}
Index: modules/watchdog/watchdog.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/watchdog/watchdog.module,v
retrieving revision 1.146
diff -u -F^f -r1.146 watchdog.module
--- modules/watchdog/watchdog.module 7 Aug 2006 15:04:16 -0000 1.146
+++ modules/watchdog/watchdog.module 10 Aug 2006 01:54:27 -0000
@@ -152,7 +152,7 @@ function watchdog_overview() {
}
function theme_watchdog_form_overview($form) {
- return '
'. form_render($form) .'
';
+ return '
'. drupal_render($form) .'
';
}
function watchdog_form_overview_submit($form_id, $form) {