Commit c70b19a9 authored by Dries's avatar Dries
Browse files

- Patch #163723 by Eaton and Frando: fix default page.tpl markup (and removed some whitespace).

parent bb7d1395
......@@ -102,6 +102,12 @@ INSTALLATION
administrator account with total control. Login as the administrator and
complete the initial configuration steps on the "Welcome" page.
If the default Drupal theme is not diplaying properly and links on the page
result in "Page Not Found" errors, try manually setting the $base_url variable
in the settings.php file if not already set. It's currently known that servers
running FastCGI can run into problems if the $base_url variable is left
commented out (see http://bugs.php.net/bug.php?id=19656).
Consider creating a "files" subdirectory in your Drupal installation
directory. This subdirectory stores files such as custom logos, user avatars,
and other media associated with your new site. The sub-directory requires
......
......@@ -2650,10 +2650,6 @@ function drupal_common_themes() {
'help' => array(
'arguments' => array(),
),
'node' => array(
'arguments' => array('node' => NULL, 'teaser' => FALSE, 'page' => FALSE),
'file' => 'node',
),
'submenu' => array(
'arguments' => array('links' => NULL),
),
......
......@@ -1611,6 +1611,7 @@ function template_preprocess_page(&$variables) {
$variables['layout'] = $layout;
global $theme;
global $user;
// Populate the rest of the regions.
$regions = system_region_list($theme);
// Load all region content assigned via blocks.
......@@ -1661,6 +1662,38 @@ function template_preprocess_page(&$variables) {
$variables['node'] = node_load(arg(1));
}
// Compile a list of classes that are going to be applied to the body element.
// This allows advanced theming based on context (home page, node of certain type, etc.).
$body_classes = array();
// Add a class that tells us whether we're on the front page or not.
$body_classes[] = (drupal_is_front_page()) ? 'front' : 'not-front';
// Add a class that tells us whether the page is viewed by an authenticated user or not.
$body_classes[] = ($user->uid > 0) ? 'logged-in' : 'not-logged-in';
// Add arg(0) to make it possible to theme the page depending on the current page
// type (e.g. node, admin, user, etc.). To avoid illegal characters in the class,
// we're removing everything disallowed. We are not using 'a-z' as that might leave
// in certain international characters (e.g. German umlauts).
$body_classes[] = preg_replace('![^abcdefghijklmnopqrstuvwxyz0-9-_]+!s', '', 'page-' . form_clean_id(drupal_strtolower(arg(0))));
// If on an individual node page, add the node type.
if (isset($variables['node']) && $variables['node']->type) {
$body_classes[] = 'node-type-'. form_clean_id($variables['node']->type);
}
// Add information about the number of sidebars.
if ($variables['sidebar_left'] && $variables['sidebar_right']) {
$body_classes[] = 'two-sidebars';
}
elseif ($variables['sidebar_left']) {
$body_classes[] = 'one-sidebar sidebar-left';
}
elseif ($variables['sidebar_right']) {
$body_classes[] = 'one-sidebar sidebar-right';
}
else {
$body_classes[] = 'no-sidebars';
}
// Implode with spaces.
$variables['body_classes'] = implode(' ', $body_classes);
// Build a list of suggested template files in order of specificity. One
// suggestion is made for every element of the current path, though
// numeric elements are not carried to subsequent suggestions. For example,
......
......@@ -691,9 +691,9 @@ function node_save(&$node) {
// Split off revisions data to another structure
$revisions_table_values = array('nid' => &$node->nid,
'title' => $node->title, 'body' => $node->body,
'title' => $node->title, 'body' => isset($node->body) ? $node->body : '',
'teaser' => $node->teaser, 'timestamp' => $node->changed,
'uid' => $user->uid, 'format' => $node->format);
'uid' => $user->uid, 'format' => isset($node->format) ? $node->format : FILTER_FORMAT_DEFAULT);
$revisions_table_types = array('nid' => '%d',
'title' => "'%s'", 'body' => "'%s'",
'teaser' => "'%s'", 'timestamp' => '%d',
......@@ -1166,7 +1166,7 @@ function node_link($type, $node = NULL, $teaser = FALSE) {
$links = array();
if ($type == 'node') {
if ($teaser == 1 && $node->teaser && $node->readmore) {
if ($teaser == 1 && $node->teaser && !empty($node->readmore)) {
$links['node_read_more'] = array(
'title' => t('Read more'),
'href' => "node/$node->nid",
......@@ -1966,7 +1966,7 @@ function node_feed($nids = array(), $channel = array()) {
break;
case 'teaser':
$item_text = $item->teaser;
if ($item->readmore) {
if (!empty($item->readmore)) {
$item_text .= '<p>'. l(t('read more'), 'node/'. $item->nid, array('absolute' => TRUE)) .'</p>';
}
break;
......
......@@ -11,7 +11,7 @@
* - $links: Links in the poll.
* - $nid: The nid of the poll
* - $cancel_form: A form to cancel the user's vote, if allowed.
* - $raw_links: The raw array of links. Should be run through theme('links')
* - $raw_links: The raw array of links. Should be run through theme('links')
* if used.
* - $vote: The choice number of the current user's vote.
*
......
......@@ -427,7 +427,7 @@ function poll_page() {
}
/**
* Creates a simple teaser that lists all the choices.
* Creates a simple teaser that lists all the choices.
*
* This is primarily used for RSS.
*/
......@@ -460,9 +460,9 @@ function poll_view_voting(&$form_state, $node, $block) {
'#options' => $list,
);
}
$form['vote'] = array(
'#type' => 'submit',
'#type' => 'submit',
'#value' => t('Vote'),
'#submit' => array('poll_vote'),
);
......@@ -594,7 +594,7 @@ function poll_cancel_form(&$form_state, $nid) {
$form['#nid'] = $nid;
$form['submit'] = array(
'#type' => 'submit',
'#type' => 'submit',
'#value' => t('Cancel your vote'),
'#submit' => array('poll_cancel')
);
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="<?php print $language->language ?>" xml:lang="<?php print $language->language ?>">
<?php
// $Id$
/**
* @file page.tpl.php
*
* Theme implementation to display a single Drupal page.
*
* Available variables:
*
* General utility variables:
* - $base_path: The base URL path of the Drupal installation. At the very
* least, this will always default to /.
* - $css: An array of CSS files for the current page.
* - $directory: The directory the theme is located in, e.g. themes/garland or
* themes/garland/minelli.
* - $is_front: TRUE if the current page is the front page.
* - $logged_in: TRUE if the user is registered and signed in.
* - $is_admin: TRUE if the user has permission to access administration pages.
*
* Page metadata:
* - $language: (object) The language the site is being displayed in.
* $language->language contains its textual representation.
* - $head_title: A modified version of the page title, for use in the TITLE tag.
* - $head: Markup for the HEAD section (including meta tags, keyword tags, and
* so on).
* - $styles: Style tags necessary to import all CSS files for the page.
* - $scripts: Script tags necessary to load the JavaScript files and settings
* for the page.
* - $body_classes: A set of CSS classes for the BODY tag. This contains flags
* indicating the current layout (multiple columns, single column), the current
* path, whether the user is logged in, and so on.
* - $is_front: True if the front page is currently being displayed. Used to
* toggle the mission.
*
* Site identity:
* - $logo: The path to the logo image, as defined in theme configuration.
* - $site_name: The name of the site, empty when display has been disabled
* in theme settings.
* - $site_slogan: The slogan of the site, empty when display has been disabled
* in theme settings.
* - $mission: The text of the site mission, empty when display has been disabled
* in theme settings.
*
* Navigation:
* - $search_box: HTML to display the search box, empty if search has been disabled.
* - $primary_links (array): An array containing primary navigation links for the
* site, if they have been configured.
* - $secondary_links (array): An array containing secondary navigation links for
* the site, if they have been configured.
*
* Page content (in order of occurrance in the default page.tpl.php):
* - $sidebar_left: The HTML for the left sidebar.
*
* - $breadcrumb: The breadcrumb trail for the current page.
* - $title: The page title, for use in the actual HTML content.
* - $help: Dynamic help text, mostly for admin pages.
* - $messages: HTML for status and error messages. Should be displayed prominently.
* - $tabs: Tabs linking to any sub-pages beneath the current page (e.g., the view
* and edit tabs when displaying a node).
*
* - $content: The main content of the current Drupal page.
*
* - $sidebar_right: The HTML for the right sidebar.
*
* Footer/closing data:
* - $feed_icons: A string of all feed icons for the current page.
* - $footer_message: The footer message as defined in the admin settings.
* - $closure: Final closing markup from any modules that have altered the page.
* This variable should always be output last, after all other dynamic content.
*
* @see template_preprocess_page()
* @see phptemplate_engine_preprocess()
*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language->language ?>" lang="<?php print $language->language ?>">
<head>
<title><?php print $head_title ?></title>
<?php print $head ?>
<?php print $styles ?>
<?php print $scripts ?>
<script type="text/javascript"><?php /* Needed to avoid Flash of Unstyle Content in IE */ ?> </script>
<title><?php print $head_title; ?></title>
<?php print $head; ?>
<?php print $styles; ?>
<?php print $scripts; ?>
<script type="text/javascript"><?php /* Needed to avoid Flash of Unstyled Content in IE */ ?> </script>
</head>
<body class="<?php print $body_classes; ?>">
<div id="page">
<div id="header">
<div id="logo-title">
<?php if (!empty($logo)): ?>
<a href="<?php print $base_path; ?>" title="<?php print t('Home'); ?>" rel="home" id="logo">
<img src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" />
</a>
<?php endif; ?>
<div id="name-and-slogan">
<?php if (!empty($site_name)): ?>
<h1 id="site-name">
<a href="<?php print $base_path ?>" title="<?php print t('Home'); ?>" rel="home"><span><?php print $site_name; ?></span></a>
</h1>
<?php endif; ?>
<?php if (!empty($site_slogan)): ?>
<div id="site-slogan"><?php print $site_slogan; ?></div>
<?php endif; ?>
</div> <!-- /name-and-slogan -->
</div> <!-- /logo-title -->
<?php if (!empty($search_box)): ?>
<div id="search-box"><?php print $search_box; ?></div>
<?php endif; ?>
<div id="navigation" class="menu <?php if (!empty($primary_links)) { print "withprimary"; } if (!empty($secondary_links)) { print " withsecondary"; } ?> ">
<?php if (!empty($primary_links)): ?>
<div id="primary" class="clear-block">
<?php print theme('menu_links', $primary_links); ?>
</div>
<?php endif; ?>
<?php if (!empty($secondary_links)): ?>
<div id="secondary" class="clear-block">
<?php print theme('menu_links', $secondary_links); ?>
</div>
<?php endif; ?>
</div> <!-- /navigation -->
<?php if (!empty($header)): ?>
<div id="header-region">
<?php print $header; ?>
</div>
<?php endif; ?>
</div> <!-- /header -->
<div id="container" class="clear-block">
<?php if (!empty($sidebar_left)): ?>
<div id="sidebar-left" class="column sidebar">
<?php print $sidebar_left; ?>
</div> <!-- /sidebar-left -->
<?php endif; ?>
<div id="main" class="column"><div id="main-squeeze">
<?php if (!empty($breadcrumb)): ?><div id="breadcrumb"><?php print $breadcrumb; ?></div><?php endif; ?>
<?php if (!empty($mission)): ?><div id="mission"><?php print $mission; ?></div><?php endif; ?>
<div id="content">
<?php if (!empty($title)): ?><h1 class="title" id="page-title"><?php print $title; ?></h1><?php endif; ?>
<?php if (!empty($tabs)): ?><div class="tabs"><?php print $tabs; ?></div><?php endif; ?>
<?php if (!empty($messages)): print $messages; endif; ?>
<?php if (!empty($help)): print $help; endif; ?>
<div id="content-content" class="clear-block">
<?php print $content; ?>
</div> <!-- /content-content -->
<?php print $feed_icons; ?>
</div> <!-- /content -->
</div></div> <!-- /main-squeeze /main -->
<?php if (!empty($sidebar_right)): ?>
<div id="sidebar-right" class="column sidebar">
<?php print $sidebar_right; ?>
</div> <!-- /sidebar-right -->
<?php endif; ?>
</div> <!-- /container -->
<div id="footer-wrapper">
<div id="footer">
<?php print $footer_message; ?>
</div> <!-- /footer -->
</div> <!-- /footer-wrapper -->
<?php print $closure; ?>
</div> <!-- /page -->
<body>
<table border="0" cellpadding="0" cellspacing="0" id="header">
<tr>
<td id="logo">
<?php if ($logo) { ?><a href="<?php print $base_path ?>" title="<?php print t('Home') ?>"><img src="<?php print $logo ?>" alt="<?php print t('Home') ?>" /></a><?php } ?>
<?php if ($site_name) { ?><h1 class='site-name'><a href="<?php print $base_path ?>" title="<?php print t('Home') ?>"><?php print $site_name ?></a></h1><?php } ?>
<?php if ($site_slogan) { ?><div class='site-slogan'><?php print $site_slogan ?></div><?php } ?>
</td>
<td id="menu">
<?php if (isset($secondary_links)) { ?><?php print theme('links', $secondary_links, array('class' =>'links', 'id' => 'subnavlist')) ?><?php } ?>
<?php if (isset($primary_links)) { ?><?php print theme('links', $primary_links, array('class' =>'links', 'id' => 'navlist')) ?><?php } ?>
<?php print $search_box ?>
</td>
</tr>
<tr>
<td colspan="2"><div><?php print $header ?></div></td>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" id="content">
<tr>
<?php if ($sidebar_left) { ?><td id="sidebar-left">
<?php print $sidebar_left ?>
</td><?php } ?>
<td valign="top">
<?php if ($mission) { ?><div id="mission"><?php print $mission ?></div><?php } ?>
<div id="main">
<?php print $breadcrumb ?>
<h1 class="title"><?php print $title ?></h1>
<div class="tabs"><?php print $tabs ?></div>
<?php print $help ?>
<?php if ($show_messages) { print $messages; }?>
<?php print $content; ?>
<?php print $feed_icons; ?>
</div>
</td>
<?php if ($sidebar_right) { ?><td id="sidebar-right">
<?php print $sidebar_right ?>
</td><?php } ?>
</tr>
</table>
<div id="footer">
<?php print $footer_message ?>
</div>
<?php print $closure ?>
</body>
</html>
......@@ -36,6 +36,7 @@ function phptemplate_theme($existing, $type, $theme, $path) {
* The name of the theme function being executed.
*/
function phptemplate_engine_preprocess(&$variables, $hook) {
global $user;
static $count = array();
// Create variables so anything which is themed can be zebra striped automatically.
......@@ -46,4 +47,7 @@ function phptemplate_engine_preprocess(&$variables, $hook) {
// Tell all templates where they are located.
$variables['directory'] = path_to_theme();
$variables['is_front'] = drupal_is_front_page();
// Tell all templates by which kind of user they're viewed.
$variables['logged_in'] = ($user->uid > 0);
$variables['is_admin'] = user_access('access administration pages');
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment