mirror of
https://github.com/processwire/processwire.git
synced 2025-08-31 10:21:44 +02:00
Initial commit to new repo (carried over from: https://github.com/ryancramerdesign/ProcessWire/tree/devns)
This commit is contained in:
98
site-classic/templates/README.txt
Normal file
98
site-classic/templates/README.txt
Normal file
@@ -0,0 +1,98 @@
|
||||
PROCESSWIRE TEMPLATE FILES
|
||||
==========================
|
||||
|
||||
The files in this directory correspond with the templates list in ProcessWire admin. Template files are just
|
||||
PHP files that output markup. They may also be just basic HTML files (with a .PHP extension). Most pages in
|
||||
the site are assigned to one of the template files in this directory.
|
||||
|
||||
These template files typically comprise the majority of what makes your site unique from any other
|
||||
ProcessWire installation. In keeping with this approach, you'll also see '/scripts/' and '/styles/'
|
||||
directories within this templates directory. They contain the site's javascript and CSS files. Though
|
||||
that is stylistic only, you can certainly place them somewhere else or rename them as desired.
|
||||
|
||||
Templates have full unrestricted access to the ProcessWire API and typically use it for finding pages and
|
||||
referencing their properties for output. If desired, templates may go further than this and call upon other
|
||||
web applications or anything else that you might do with PHP.
|
||||
|
||||
Every template is supplied with a $page object that refers to the current page being viewed. This $page
|
||||
object is locally scoped to the template file. The only thing you need to do to access it is directly
|
||||
refer to it in your PHP code. For instance, if you wanted to output the page's $title field from your
|
||||
template, you would do the following:
|
||||
|
||||
<?php echo $page->title; ?>
|
||||
|
||||
...or short syntax (if supported by your web host):
|
||||
|
||||
<?=$page->title?>
|
||||
|
||||
And likewise for any other fields assigned to the template. Though some fields require more, like
|
||||
files, images, page references and the like.
|
||||
|
||||
For more details about the $page API variable, please see:
|
||||
http://processwire.com/api/variables/page/
|
||||
|
||||
|
||||
LOADING OTHER PAGES FROM YOUR TEMPLATE
|
||||
======================================
|
||||
|
||||
Templates are also supplied with a $pages API variable that provides for loading and finding other pages.
|
||||
The most common methods used in that object are get() and find(), both of which take a selector string to
|
||||
locate and return pages. The only difference between them is that get() always returns 1 page, and find()
|
||||
returns a PageArray. Below are examples:
|
||||
|
||||
// find all pages using the skyscraper template
|
||||
$skyscrapers = $pages->find("template=skyscraper");
|
||||
|
||||
// find all skyscrapers with a height greater than 500 ft, and less than or equal to 1000 ft.
|
||||
$skyscrapers = $pages->find("template=skyscraper, height>500, height<=1000");
|
||||
|
||||
// find all skyscrapers in Chicago with 60+ floors, sorted by floors ascending
|
||||
$skyscrapers = $pages->get("/cities/chicago/")->children("floors>=60, sort=floors");
|
||||
|
||||
// find all skyscrapers built before 1950 with 10+ floors, sorted by year, then floors
|
||||
$skyscrapers = $pages->find("template=skyscraper, year<1950, floors>=10, sort=-year, sort=-floors");
|
||||
|
||||
// find all skyscrapers by architects David Childs or Renzo Piano, and sort by height descending
|
||||
$david = $pages->get("/architects/david-childs/");
|
||||
$renzo = $pages->get("/architects/renzo-piano/");
|
||||
$skyscrapers = $pages->find("architect=$david|$renzo, sort=-height");
|
||||
|
||||
// find all skyscrapers that mention the words "limestone" and "granite" somewhere in their body copy.
|
||||
$skyscrapers = $pages->get("/cities/")->find("template=skyscraper, body~=limestone granite");
|
||||
|
||||
// find all skyscrapers that mention the phrase "empire state building" in their body copy.
|
||||
$skyscrapers = $pages->find("template=skyscraper, body*=empire state building");
|
||||
|
||||
For more about the $pages API variable, please see:
|
||||
http://processwire.com/api/variables/pages/
|
||||
|
||||
|
||||
INCLUDING A TEMPLATE FROM ANOTHER TEMPLATE
|
||||
==========================================
|
||||
|
||||
When you include a template from another template, use the following syntax:
|
||||
|
||||
include("./my-template.php");
|
||||
|
||||
Note the leading "./" above. Do NOT use this syntax:
|
||||
|
||||
include("my-template.php");
|
||||
|
||||
The difference between the second [incorrect] example and the first [correct] example is that the first
|
||||
example starts with: "./". This tells PHP to look in the current directory. Whereas if you omit that part,
|
||||
PHP will search your include path, which could result in an error, or even worse, include the wrong file.
|
||||
So just remember to always precede your included files with "./".
|
||||
|
||||
|
||||
MORE INFORMATION
|
||||
================
|
||||
|
||||
The information in this file is very brief. Please see the official documentation at:
|
||||
http://processwire.com/api/
|
||||
|
||||
The ProcessWire API cheatsheet is especially handy:
|
||||
http://processwire.com/api/cheatsheet/
|
||||
|
||||
Please join the ProcessWire forum and we're always glad to assist with any questions you have:
|
||||
http://processwire.com/talk/
|
||||
|
15
site-classic/templates/admin.php
Normal file
15
site-classic/templates/admin.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php namespace ProcessWire;
|
||||
|
||||
/**
|
||||
* Admin template just loads the admin application controller,
|
||||
* and admin is just an application built on top of ProcessWire.
|
||||
*
|
||||
* This demonstrates how you can use ProcessWire as a front-end
|
||||
* to another application.
|
||||
*
|
||||
* Feel free to hook admin-specific functionality from this file,
|
||||
* but remember to leave the require() statement below at the end.
|
||||
*
|
||||
*/
|
||||
|
||||
require($config->paths->adminTemplates . 'controller.php');
|
13
site-classic/templates/basic-page.php
Normal file
13
site-classic/templates/basic-page.php
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Page template
|
||||
*
|
||||
*/
|
||||
|
||||
include("./head.inc");
|
||||
|
||||
echo $page->body;
|
||||
|
||||
include("./foot.inc");
|
||||
|
11
site-classic/templates/errors/500.html
Normal file
11
site-classic/templates/errors/500.html
Normal file
@@ -0,0 +1,11 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>500 Internal Server Error</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Internal Server Error</h1>
|
||||
<p>The server encountered an internal error or misconfiguration and was unable to complete your request.</p>
|
||||
<p>{message}</p>
|
||||
</body>
|
||||
</html>
|
21
site-classic/templates/errors/README.txt
Normal file
21
site-classic/templates/errors/README.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
When a fatal error occurs, ProcessWire displays the message:
|
||||
|
||||
"Unable to complete this request due to an error."
|
||||
|
||||
The message is intentionally vague for security purposes.
|
||||
Details will be logged to /site/assets/logs/errors.txt.
|
||||
|
||||
When present in this directory, the file 500.html will be
|
||||
displayed instead of the generic error message above. Feel
|
||||
free to modify this file to show whatever you would like.
|
||||
Please note the following:
|
||||
|
||||
* 500.html is plain HTML and has no PHP or API access.
|
||||
|
||||
* You may enter the tag {message} and ProcessWire will
|
||||
replace this with additional details when applicable.
|
||||
When not applicable, it will make it blank.
|
||||
|
||||
* If you are logged in as an admin, ProcessWire will
|
||||
give you a detailed error message rather than 500.html.
|
||||
|
43
site-classic/templates/foot.inc
Normal file
43
site-classic/templates/foot.inc
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
// Output navigation for any children below the bodycopy.
|
||||
// This navigation cycles through the page's children and prints
|
||||
// a link and summary:
|
||||
|
||||
if($page->numChildren) {
|
||||
|
||||
echo "<ul class='nav'>";
|
||||
|
||||
foreach($page->children as $child) {
|
||||
echo "<li><p><a href='{$child->url}'>{$child->title}</a><br />";
|
||||
echo "<span class='summary'>{$child->summary}</span></p></li>";
|
||||
}
|
||||
|
||||
echo "</ul>";
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
</div><!--/bodycopy-->
|
||||
|
||||
</div><!--/container-->
|
||||
|
||||
</div><!--/content-->
|
||||
|
||||
<div id="footer" class="footer">
|
||||
<div class="container">
|
||||
<p>Powered by <a href='http://processwire.com'>ProcessWire Open Source CMS/CMF</a></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
|
||||
// If the page is editable, then output a link that takes us straight to the page edit screen:
|
||||
if($page->editable()) {
|
||||
echo "<a class='nav' id='editpage' href='{$config->urls->admin}page/edit/?id={$page->id}'>Edit</a>";
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
</body>
|
||||
</html>
|
160
site-classic/templates/head.inc
Normal file
160
site-classic/templates/head.inc
Normal file
@@ -0,0 +1,160 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Demo site header include file (HTML5)
|
||||
*
|
||||
* Note that this file has nothing to do with ProcessWire. We just split our common
|
||||
* header and footer markup into separate files (head.inc and foot.inc) like this,
|
||||
* since it was common to all of our templates.
|
||||
*
|
||||
*/
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title><?php echo $page->get("headline|title"); ?></title>
|
||||
|
||||
<meta name="description" content="<?php echo $page->summary; ?>" />
|
||||
|
||||
<meta name="generator" content="ProcessWire <?php echo $config->version; ?>" />
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="<?php echo $config->urls->templates?>styles/main.css" />
|
||||
|
||||
<!--[if IE]>
|
||||
<link rel="stylesheet" type="text/css" href="<?php echo $config->urls->templates?>styles/ie.css" />
|
||||
<![endif]-->
|
||||
|
||||
<!-- This website is powered by ProcessWire CMF/CMS - https://processwire.com -->
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p id='bgtitle'><?php
|
||||
|
||||
// print the section title as big faded text that appears near the top left of the page
|
||||
echo $page->rootParent->title;
|
||||
|
||||
?></p>
|
||||
|
||||
<div id="masthead" class="masthead">
|
||||
|
||||
<div class="container">
|
||||
|
||||
<a href='<?php echo $config->urls->root; ?>'><p id='logo'>ProcessWire</p></a>
|
||||
|
||||
<ul id='topnav'><?php
|
||||
|
||||
// Create the top navigation list by listing the children of the homepage.
|
||||
// If the section we are in is the current (identified by $page->rootParent)
|
||||
// then note it with <a class='on'> so we can style it differently in our CSS.
|
||||
// In this case we also want the homepage to be part of our top navigation,
|
||||
// so we prepend it to the pages we cycle through:
|
||||
|
||||
$homepage = $pages->get("/");
|
||||
$children = $homepage->children;
|
||||
$children->prepend($homepage);
|
||||
|
||||
foreach($children as $child) {
|
||||
$class = $child === $page->rootParent ? " class='on'" : '';
|
||||
echo "<li><a$class href='{$child->url}'>{$child->title}</a></li>";
|
||||
}
|
||||
|
||||
?></ul>
|
||||
|
||||
<ul id='breadcrumb'><?php
|
||||
|
||||
// Create breadcrumb navigation by cycling through the current $page's
|
||||
// parents in order, linking to each:
|
||||
|
||||
foreach($page->parents as $parent) {
|
||||
echo "<li><a href='{$parent->url}'>{$parent->title}</a> > </li>";
|
||||
}
|
||||
|
||||
?></ul>
|
||||
|
||||
<h1 id='title'><?php
|
||||
|
||||
// The statement below asks for the page's headline or title.
|
||||
// Separating multiple fields with a pipe "|" returns the first
|
||||
// one that has a value. So in this case, we print the headline
|
||||
// field if it's there, otherwise we print the title.
|
||||
|
||||
echo $page->get("headline|title");
|
||||
|
||||
?></h1>
|
||||
|
||||
<form id='search_form' action='<?php echo $config->urls->root?>search/' method='get'>
|
||||
<input type='text' name='q' id='search_query' value='<?php echo htmlentities($input->whitelist('q'), ENT_QUOTES, 'UTF-8'); ?>' />
|
||||
<button type='submit' id='search_submit'>Search</button>
|
||||
</form>
|
||||
|
||||
<?php
|
||||
|
||||
// Grab a random image from the homepage and display it.
|
||||
// Note that $homepage was loaded above where we generated the top navigation.
|
||||
|
||||
if(count($homepage->images)) {
|
||||
$image = $homepage->images->getRandom();
|
||||
$thumb = $image->size(232, 176);
|
||||
echo "<a href='{$image->url}'><img id='photo' src='{$thumb->url}' alt='{$thumb->description}' width='{$thumb->width}' height='{$thumb->height}' /></a>";
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="content" class="content">
|
||||
|
||||
<div class="container">
|
||||
|
||||
<div id="sidebar">
|
||||
|
||||
<?php
|
||||
|
||||
// Output subnavigation
|
||||
//
|
||||
// Below we check to see that we're not on the homepage, and that
|
||||
// there are at least one or more pages in this section.
|
||||
//
|
||||
// Note $page->rootParent is always the top level section the page is in,
|
||||
// or to word differently: the first parent page that isn't the homepage.
|
||||
|
||||
if($page->path != '/' && $page->rootParent->numChildren > 0) {
|
||||
|
||||
// We have determined that we're not on the homepage
|
||||
// and that this section has child pages, so make navigation:
|
||||
|
||||
echo "<ul id='subnav' class='nav'>";
|
||||
|
||||
foreach($page->rootParent->children as $child) {
|
||||
$class = $page === $child ? " class='on'" : '';
|
||||
echo "<li><a$class href='{$child->url}'>{$child->title}</a></li>";
|
||||
}
|
||||
|
||||
echo "</ul>";
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<div class='sidebar_item'>
|
||||
|
||||
<?php
|
||||
|
||||
// if the current page has a populated 'sidebar' field, then print it,
|
||||
// otherwise print the sidebar from the homepage
|
||||
|
||||
if($page->sidebar) echo $page->sidebar;
|
||||
else echo $homepage->sidebar;
|
||||
?>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div><!--/sidebar-->
|
||||
|
||||
<div id="bodycopy">
|
||||
|
13
site-classic/templates/home.php
Normal file
13
site-classic/templates/home.php
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Home template
|
||||
*
|
||||
*/
|
||||
|
||||
include("./head.inc");
|
||||
|
||||
echo $page->body;
|
||||
|
||||
include("./foot.inc");
|
||||
|
49
site-classic/templates/search.php
Normal file
49
site-classic/templates/search.php
Normal file
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Search template
|
||||
*
|
||||
*/
|
||||
|
||||
$out = '';
|
||||
|
||||
if($q = $sanitizer->selectorValue($input->get->q)) {
|
||||
|
||||
// Send our sanitized query 'q' variable to the whitelist where it will be
|
||||
// picked up and echoed in the search box by the head.inc file.
|
||||
$input->whitelist('q', $q);
|
||||
|
||||
// Search the title, body and sidebar fields for our query text.
|
||||
// Limit the results to 50 pages.
|
||||
// Exclude results that use the 'admin' template.
|
||||
$matches = $pages->find("title|body|sidebar~=$q, limit=50");
|
||||
|
||||
$count = count($matches);
|
||||
|
||||
if($count) {
|
||||
$out .= "<h2>Found $count pages matching your query:</h2>" .
|
||||
"<ul class='nav'>";
|
||||
|
||||
foreach($matches as $m) {
|
||||
$out .= "<li><p><a href='{$m->url}'>{$m->title}</a><br />{$m->summary}</p></li>";
|
||||
}
|
||||
|
||||
$out .= "</ul>";
|
||||
|
||||
} else {
|
||||
$out .= "<h2>Sorry, no results were found.</h2>";
|
||||
}
|
||||
} else {
|
||||
$out .= "<h2>Please enter a search term in the search box (upper right corner)</h2>";
|
||||
}
|
||||
|
||||
// Note that we stored our output in $out before printing it because we wanted to execute
|
||||
// the search before including the header template. This is because the header template
|
||||
// displays the current search query in the search box (via the $input->whitelist) and
|
||||
// we wanted to make sure we had that setup before including the header template.
|
||||
|
||||
include("./head.inc");
|
||||
|
||||
echo $out;
|
||||
|
||||
include("./foot.inc");
|
28
site-classic/templates/sitemap.php
Normal file
28
site-classic/templates/sitemap.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Site map template
|
||||
*
|
||||
*/
|
||||
|
||||
include("./head.inc");
|
||||
|
||||
function sitemapListPage($page) {
|
||||
|
||||
echo "<li><a href='{$page->url}'>{$page->title}</a> ";
|
||||
|
||||
if($page->numChildren) {
|
||||
echo "<ul>";
|
||||
foreach($page->children as $child) sitemapListPage($child);
|
||||
echo "</ul>";
|
||||
}
|
||||
|
||||
echo "</li>";
|
||||
}
|
||||
|
||||
echo "<ul class='sitemap'>";
|
||||
sitemapListPage($pages->get("/"));
|
||||
echo "</ul>";
|
||||
|
||||
include("./foot.inc");
|
||||
|
5
site-classic/templates/styles/ie.css
Normal file
5
site-classic/templates/styles/ie.css
Normal file
@@ -0,0 +1,5 @@
|
||||
#bgtitle {
|
||||
/* This doesn't render well in IE (any version), so we just exclude it. */
|
||||
display: none;
|
||||
}
|
||||
|
BIN
site-classic/templates/styles/images/bg.gif
Normal file
BIN
site-classic/templates/styles/images/bg.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.7 KiB |
BIN
site-classic/templates/styles/images/btn-search.png
Normal file
BIN
site-classic/templates/styles/images/btn-search.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.8 KiB |
BIN
site-classic/templates/styles/images/logo.gif
Normal file
BIN
site-classic/templates/styles/images/logo.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
BIN
site-classic/templates/styles/images/topnav_a_bg.gif
Normal file
BIN
site-classic/templates/styles/images/topnav_a_bg.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 91 B |
504
site-classic/templates/styles/main.css
Normal file
504
site-classic/templates/styles/main.css
Normal file
@@ -0,0 +1,504 @@
|
||||
@import url(reset.css);
|
||||
|
||||
/**
|
||||
* ProcesssWire.com site template stylesheet. Prepared for use in the basic site profile.
|
||||
*
|
||||
* Please feel free to use and/or modify under the same license as ProcessWire.
|
||||
*
|
||||
* Copyright 2010 by Ryan Cramer Design, LLC
|
||||
*
|
||||
*/
|
||||
|
||||
body {
|
||||
background: #e4ebee url(images/bg.gif) repeat-x;
|
||||
}
|
||||
|
||||
body, input, textarea, table {
|
||||
font-family: Georgia, "Times New Roman", Times, serif;
|
||||
font-size: 14px;
|
||||
color: #2f4248;
|
||||
}
|
||||
|
||||
#masthead,
|
||||
#content,
|
||||
#footer {
|
||||
padding-right: 20px;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.container {
|
||||
position: relative;
|
||||
width: 85%;
|
||||
min-width: 920px;
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
#masthead {
|
||||
background: none;
|
||||
height: 210px;
|
||||
}
|
||||
|
||||
#logo {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 44px;
|
||||
background: url(images/logo.gif);
|
||||
width: 179px;
|
||||
height: 25px;
|
||||
text-indent: -9999px;
|
||||
}
|
||||
|
||||
#title {
|
||||
font-size: 37px;
|
||||
color: #003051;
|
||||
position: absolute;
|
||||
top: 155px;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
#bgtitle {
|
||||
position: absolute;
|
||||
top: 62px;
|
||||
left: 0;
|
||||
font-size: 162px;
|
||||
color: rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
|
||||
#topnav {
|
||||
position: absolute;
|
||||
right: 250px;
|
||||
top: 3px;
|
||||
}
|
||||
|
||||
#topnav li {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
#topnav a,
|
||||
#sidebar ul.nav a,
|
||||
#breadcrumb a,
|
||||
a.nav {
|
||||
font-family: "Helvetica Neue", Arial, sans-serif;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
color: #a7e5f9;
|
||||
}
|
||||
|
||||
#topnav a {
|
||||
display: block;
|
||||
float: left;
|
||||
margin: 0 0 0 1px;
|
||||
padding: 48px 10px 20px 10px;
|
||||
}
|
||||
|
||||
#topnav a:hover,
|
||||
#topnav a.on {
|
||||
color: #fff;
|
||||
background: url(images/topnav_a_bg.gif) top left repeat-x;
|
||||
}
|
||||
|
||||
#breadcrumb {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 97px;
|
||||
}
|
||||
#breadcrumb li {
|
||||
color: #5197ae;
|
||||
font-size: 11px;
|
||||
display: inline;
|
||||
padding: 0 2px 0 0;
|
||||
|
||||
}
|
||||
#breadcrumb a {
|
||||
color: #005f7d;
|
||||
padding: 0 2px 0 0;
|
||||
}
|
||||
#breadcrumb a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#search_form { }
|
||||
|
||||
#search_query {
|
||||
position: absolute;
|
||||
top: 7px;
|
||||
right: 0;
|
||||
width: 222px;
|
||||
padding: 2px 5px;
|
||||
height: 17px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#search_submit {
|
||||
position: absolute;
|
||||
top: 7px;
|
||||
right: 0;
|
||||
border: none;
|
||||
background: url(images/btn-search.png) top left no-repeat;
|
||||
width: 27px;
|
||||
height: 21px;
|
||||
text-indent: -9999px;
|
||||
}
|
||||
#search_submit:hover {
|
||||
background-position: center left;
|
||||
cursor: pointer;
|
||||
}
|
||||
#search_submit:focus {
|
||||
background-position: bottom left;
|
||||
}
|
||||
|
||||
#masthead #photo {
|
||||
position: absolute;
|
||||
top: 34px;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
|
||||
#content {
|
||||
background: #f8f8f8;
|
||||
font-size: 14px;
|
||||
line-height: 1.7em;
|
||||
color: #333;
|
||||
padding-top: 0;
|
||||
padding-bottom: 4em;
|
||||
min-height: 400px;
|
||||
|
||||
}
|
||||
#content p,
|
||||
#content ul,
|
||||
#content ol,
|
||||
#content table {
|
||||
margin: 1em 0 1.5em 0;
|
||||
}
|
||||
|
||||
#content a {
|
||||
color: #f00076;
|
||||
}
|
||||
#content a:hover {
|
||||
background-color: #f00076;
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#content em {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
#content strong {
|
||||
font-family: "Helvetica Neue", Arial, sans-serif;
|
||||
font-weight: bold;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
#content h2,
|
||||
#content h3,
|
||||
#content h4 {
|
||||
margin-top: 1.5em;
|
||||
line-height: 1.3em;
|
||||
}
|
||||
|
||||
#content h2 {
|
||||
color: #006fbb;
|
||||
font-size: 23px;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
#content h3 {
|
||||
color: #690033;
|
||||
font-size: 18px;
|
||||
border-bottom: 1px dotted #ccc;
|
||||
margin-bottom: -0.5em;
|
||||
padding-bottom: 0.25em;
|
||||
}
|
||||
#content h2 + h3 {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
#content h3 + ul,
|
||||
#content h3 + ol {
|
||||
margin-top: 1.5em;
|
||||
}
|
||||
|
||||
#content h4 {
|
||||
font-size: 1em;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
#content ol li {
|
||||
margin: 0 0 0 3em;
|
||||
}
|
||||
|
||||
#content ul li {
|
||||
margin: 0 0 0 3em;
|
||||
display: list-item;
|
||||
list-style: disc;
|
||||
}
|
||||
|
||||
#content ol li {
|
||||
margin: 0 0 0 3em;
|
||||
display: list-item;
|
||||
list-style: decimal;
|
||||
}
|
||||
|
||||
#content ul.nav { }
|
||||
|
||||
#content ul.nav li {
|
||||
display: block;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
border-bottom: 1px dotted #ccc;
|
||||
}
|
||||
#content ul.nav li a {
|
||||
font-family: "Helvetica Neue", Arial, sans-serif;
|
||||
font-weight: bold;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#content ul.nav li p {
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
#content .disclaimer {
|
||||
font-size: 11px;
|
||||
line-height: 17px;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#sidebar {
|
||||
position: relative;
|
||||
float: right;
|
||||
width: 232px;
|
||||
min-height: 200px;
|
||||
padding-bottom: 2em;
|
||||
}
|
||||
#sidebar h3 {
|
||||
border: none;
|
||||
color: #006fbb;
|
||||
font-size: 16px;
|
||||
}
|
||||
#sidebar h3 + ul.nav {
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
#sidebar #photo {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#sidebar ul.nav {
|
||||
margin: 0 0 1em 0;
|
||||
}
|
||||
#sidebar ul.nav li {
|
||||
margin: 0;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#sidebar ul.nav a {
|
||||
display: block;
|
||||
padding: 8px 10px 8px 15px;
|
||||
color: #005f7d;
|
||||
background: #d5e5eb;
|
||||
border-top: 1px solid #fff;
|
||||
}
|
||||
#sidebar ul.nav a:hover,
|
||||
#sidebar ul.nav a.on {
|
||||
background: #db1174;
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#sidebar .sidebar_item {
|
||||
padding: 0 5px 0 14px;
|
||||
margin: 0 0 2em 0;
|
||||
border-left: 1px dotted #ccc;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#bodycopy {
|
||||
padding-right: 265px;
|
||||
padding-top: 1px;
|
||||
margin-top: 0;
|
||||
|
||||
}
|
||||
#bodycopy strong {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
#content #bodycopy > h2:first-child {
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
#bodycopy .video {
|
||||
margin: 1em 0;
|
||||
background: #000;
|
||||
padding: 10px;
|
||||
padding-bottom: 3px;
|
||||
width: 640px;
|
||||
}
|
||||
|
||||
|
||||
#footer {
|
||||
clear: both;
|
||||
border: none;
|
||||
font-size: 11px;
|
||||
padding: 2em 0;
|
||||
}
|
||||
#footer p,
|
||||
#footer a {
|
||||
color: #85aaba;
|
||||
}
|
||||
|
||||
#footer p {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#footer a:hover {
|
||||
text-decoration: underline;
|
||||
color: #db1174;
|
||||
}
|
||||
|
||||
/**
|
||||
* The edit link that appears when you are logged in.
|
||||
* It is recommended that you implement an edit button
|
||||
* in your templates to make it easy to switch to and
|
||||
* from the admin control panel when editing pages.
|
||||
*
|
||||
*/
|
||||
#editpage {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
padding: 5px 6px;
|
||||
background: #db1174;
|
||||
color: #fff;
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
}
|
||||
#editpage:hover {
|
||||
background: #ffffcc;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Alignment styles that are used by the InputfieldTinyMCE for
|
||||
* positioning images in bodycopy. If you are using this field type,
|
||||
* you may want to include these or similar styles in your site.
|
||||
*
|
||||
*/
|
||||
.align_left {
|
||||
float: left;
|
||||
margin: 0 1em 0.25em 0;
|
||||
}
|
||||
|
||||
.align_right {
|
||||
float: right;
|
||||
margin: 0 0 0.25em 1em;
|
||||
}
|
||||
|
||||
.align_center {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Optional CSS classes specific to the FieldtypeComments module
|
||||
* when used in this site design template.
|
||||
*
|
||||
*/
|
||||
|
||||
#content .CommentList {
|
||||
margin: 1em 0 0 0;
|
||||
}
|
||||
|
||||
#content .CommentListItem {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
border-left: 5px solid #ddd;
|
||||
border-top: 1px dotted #ccc;
|
||||
padding: 1em 0 1px 1em;
|
||||
background: #fff;
|
||||
|
||||
}
|
||||
#content .CommentListItem p {
|
||||
margin-top: 0;
|
||||
}
|
||||
#content .CommentHeader,
|
||||
#CommentForm label {
|
||||
margin: 0;
|
||||
font-weight: bold;
|
||||
font-size: 11px;
|
||||
text-transform: uppercase;
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
color: #3786bc;
|
||||
}
|
||||
#content .CommentText {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
#CommentForm { }
|
||||
|
||||
#CommentForm h3 {
|
||||
margin: 0;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#CommentForm label {
|
||||
display: block;
|
||||
color: #f00076;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
#CommentForm p {
|
||||
margin: 0.5em 0;
|
||||
}
|
||||
|
||||
.CommentForm_cite,
|
||||
.CommentForm_email {
|
||||
float: left;
|
||||
}
|
||||
.CommentForm_cite input,
|
||||
.CommentForm_email input {
|
||||
width: 200px;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
.CommentForm_text {
|
||||
clear: left;
|
||||
}
|
||||
.CommentForm_text textarea {
|
||||
padding: 2px;
|
||||
width: 75%;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
#CommentForm .error {
|
||||
background: #a30000;
|
||||
color: #fff;
|
||||
padding: 0.25em 0.5em;
|
||||
}
|
||||
#CommentForm .success {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* WireFatalError is a class that ProcessWire will use to output
|
||||
* fatal errors in the design, but only if debug mode is on, or if
|
||||
* you are logged in as a superuser.
|
||||
*
|
||||
*/
|
||||
.WireFatalError {
|
||||
background: #a30000;
|
||||
color: #fff;
|
||||
padding: 1em;
|
||||
position: relative;
|
||||
z-index: 9999;
|
||||
}
|
||||
|
50
site-classic/templates/styles/reset.css
Normal file
50
site-classic/templates/styles/reset.css
Normal file
@@ -0,0 +1,50 @@
|
||||
/**
|
||||
* Reset stylesheet to normalize styles across browsers
|
||||
*
|
||||
*/
|
||||
|
||||
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,label,input,textarea,p,blockquote,th,td {
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse:collapse;
|
||||
border-spacing:0;
|
||||
}
|
||||
|
||||
fieldset,img {
|
||||
border:0;
|
||||
}
|
||||
|
||||
address,caption,cite,code,dfn,em,strong,th,var {
|
||||
font-style:normal;
|
||||
font-weight:normal;
|
||||
}
|
||||
|
||||
ol,ul,li {
|
||||
list-style:none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
caption,th {
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
font-size:100%;
|
||||
font-weight:normal;
|
||||
}
|
||||
|
||||
q:before,q:after {
|
||||
content:'';
|
||||
}
|
||||
|
||||
abbr,acronym {
|
||||
border:0;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
Reference in New Issue
Block a user