New theme base for SuiteDesk

This commit is contained in:
Manuel Cillero 2017-07-25 13:55:37 +02:00
parent c1bbd9d6f5
commit 8cf3c56044
137 changed files with 12866 additions and 8 deletions

View file

@ -1,8 +0,0 @@
This directory is reserved for core theme files. Custom or contributed
themes should be placed in their own subdirectory of the sites/all/themes
directory. For multisite installations, they can also be placed in a subdirectory
under /sites/{sitename}/themes/, where {sitename} is the name of your site
(e.g., www.example.com). This will allow you to more easily update Drupal core files.
For more details, see: http://drupal.org/node/176043

390
themes/zen/CHANGELOG.txt Normal file
View file

@ -0,0 +1,390 @@
Zen 6.x-2.1, 2011-04-05
-----------------------
- #774836 by hefox: Check if node $title is set before outputting
- #705264 by JohnAlbin, Jehu, mlncn and zenic: Allow Zen (and subthemes) to be used without a database
- #1046090 by daniels and JohnAlbin: $styles is destroyed by rare bug with APC
- #1083700: Add $submitted variable back into node.tpl
- #1086820 by tacituseu: Views classes redundant since Views 6.x-2.9
- #1017062 by adrinux: Block edit links span entire block on RTL pages
- #774838 by bangpound, hefox and JohnAlbin: Add default case for build_mode
- #919838 by saem, rgbivens and JohnAlbin: Theme description links to wrong docs
- #992616 by JohnAlbin and adrinux: Comments in layout RTL stylesheets are incorrect
- #822570 by JohnAlbin and AaronCollier: Add focus styling to tabs
- #1072268: Zen theme doesn't load RTL styles
- #929630 by juan_g and akalata: URL for overriding stylesheets documentation has changed
- #742208: Conflict with domain theme module
- #1063226 by tacituseu, danillonunes and barraponto: Unpublished comment style is not applied
- #962356: Convert region template suggestions into theme hook suggestions
- #978640 by marcvangend: Whitespace before comment causes jQuery error
- #1046394 by n8tron and JohnAlbin: Add first and last classes to blocks
- #870080 by mverbaar: Correction to README.TXT for STARTERKIT
- #707410 by AdrianB: improve detection of Panels pages
- #634552 by JohnAlbin and tim.plunkett: Conflict with context module
- #941714: Modules setting $classes in preprocess functions breaks expected Zen classes
- #932826: mytheme_links__system_main_menu() doesn't work as expected
- Fix PHP warning on maintenance page
- #690026: Cannot override region.tpl.php
Zen 6.x-2.0, 2010-06-26
-----------------------
- #791056 by meatsack and JohnAlbin: Zen clobbers Views 3 classes
- #838338: element-invisible class doesn't fully hide elements
- #723514 by kmonty: Link in STARTERKIT description incorrect
- Skip navigation's ID changed from #skip-to-nav to #skip-link
- Added $block_html_id to block.tpl.php
- #772488 by andreiashu: Fatal error: Call to undefined function
ctools_menu_primary_local_tasks()
- #707410 by agentrickard and JohnAlbin: Add page-views and page-panels body classes
- #691426: Add D7-style named implementations of theme_links in page.tpl
- #683904: SUBTHEME_process functions do not work
- #552156: broken clearfix class causes overlapping containers in IE7
- #593290 by sfyn and JohnAlbin: Chaos Tools/Panels edit tab not working with Zen
- #661628 by Jacine and JohnAlbin: Integration with Skinr module
- by Jacine: Added views-view.tpl.php with support for $classes variables
- by caroltron, gleroux02, _natron, and JohnAlbin: Add panels 3 layouts using
Zen layout method
Zen 6.x-2.0-beta1, 2009-11-10
-----------------------------
- #478134 by mithrill: Improve docs about sites/all/themes and sites/default/themes folders
- #628070 by Aren Cambre: Change "jquery" to "JavaScript" in STARTERKIT.info.txt
- #626868 by alefteris: Replace Bitstream Vera with DejaVu fonts
- #624818 by Aren Cambre and Garrett Albright: Tahoma shouldn't be first font pick
- #600344 by mgifford: Use of absolute font size in block editing links breaks WCAG 2.0
- #546904 by Jennifer_M: List $node as available variable in page.tpl.php
- #583716 by droidenator: Empty title can cause breadcrumbs to display incorrectly
- #600920 by kto.3decb: Fix incorrect comment block class name
- #624046: Replace zen_id_safe() with drupal_html_class() and drupal_html_id()
- Renamed $closure_region region to $page_closure
- #622324: Update page.tpl to use ideas from D7
- Renamed #page and #page-inner to #page-wrapper and #page
- Added <span> around site name
- Moved #skip-to-nav styling to pages.css
- Removed #navigation link anchor
- Renamed div#header-inner to div.section which can be themed with #header .section
- Renamed #main and #main-inner to #main-wrapper and #main
- Renamed div#content-inner to div.section which can be themed with #content .section
- Removed #content-header div
- Added $highlight region
- Renamed #navbar div to #navigation
- Renamed $navbar region to $navigation
- Renamed .with-navbar class to .with-navigation
- Added #navigation .section div
- Removed #sidebar-first, #sidebar-first-inner, #sidebar-second, #sidebar-second-inner and moved styles to .region-sidebar-first, .region-sidebar-first .section, .region-sidebar-second, .region-sidebar-second .section
- Added #footer .section div
- Added region-sidebar.tpl.php template suggestion
- #308254: Make "skip to nav" styling more useful and less intrusive
- #621798: Change sidebar variables to be RTL friendly and $shows_blocks compatible
- #547696: Update node.tpl to use ideas from D7
- Renamed $picture to $user_picture in node.tpl.php
- Renamed .sticky class to .node-sticky in node.tpl.php
- Removed #node-inner div
- Added $display_submitted variable and deprecated $submitted variable
- Renamed the .node-mine class to .node-by-viewer
- #620794: Update block.tpl to use ideas from D7
- Removed .block-inner div
- Renamed $block->subject variable to $title
- Renamed $block->content variable to $content
- #548994: Update comment.tpl and comment-wrapper.tpl to use ideas from D7
- Renamed comment-wrapper's h2#comments-title to #comments h2.title
- Added $created to comment.tpl and deprecated $submitted
- Removed #comment-inner div
- comment div classes changed:
- .comment-by-anon changed to .comment-by-anonymous
- .comment-by-author changed to .comment-by-node-author
- .comment-mine changed to .comment-by-viewer
- .comment-published was removed
- #311458: Search box gets disabled after arbitrary amount of time
- Added $classes and $classes_array to all templates, not just Zen's templates
- Renamed page.tpl's $body_classes and $body_classes_array to $classes and $classes_array
- #564068: Views classes are missing from $classes variable
- Simplified header, content_top, content_bottom, navbar, and footer region markup
- Add region.tpl.php template
- Render $edit_links_array in zen_process_block
- #546858: Add THEME_process_HOOK functions to Zen
- #317417 by JohnAlbin and quicksketch: Fix off-line maintenance page since drupal_get_path('theme', 'zen') won't work
- #549798 by caroltron: page-backgrounds.css missing from .info file
- Remove ie5.css from STARTERKIT and deprecate support for IE5
- #547696: Update node.tpl to use ideas from D7
- Renamed $picture to $user_picture in node.tpl.php
- Renamed sticky class to node-sticky in node.tpl.php
- Added $build_mode variable to node.tpl.php
- #445814: Change primary/secondary link rendering and move secondary menu to footer
- #445822: Simplify wrapper divs around logo, site name, slogan
- #546862: Add D7's element-hidden and element-invisible for accessibility features
- #547382: Rename Zen's reset stylesheet to html-reset.css from html-elements.css
- #527494: Follow Drupal's proposed CSS coding standards
- #480610 by kdebaas: css class .field-type-image does not exist anymore in 6.x version of the module
- #545320 by Deslack: Use of split() generate E_DEPRECATED warnings on PHP 5.3.0
- #542818: Using alternate layout method causes .clearfix class to disappear
- #546828: Move tpl.php files to a templates folder in the root zen directory
- #546792: Remove box.tpl.php
- #513926: Sub-themes cannot reorder the stylesheets of the base theme
- #456136: Move zen stylesheets into STARTERKIT/css
- #544750 by kdebaas: Wrong sidebar class naming in maintenance-page.tpl.php
- #529796: Make block edit links easier to edit/turn off individually
- Added $classes_array variable to node, block and comment templates
- Add layout.css in Zen's .info file to properly position sub-theme's layout.css
- #379902: Make all stylesheets RTL compatible
- #472694: Drupal 6.11 broke Zen's OpenID overrides
- #375976 by JohnAlbin and Amitaibu: Flip sidebar positioning on RTL
- #375953 by Amitaibu and JohnAlbin: Change sidebar names to be RTL friendly
- Updated screenshot.png to use Zen logo since an actual screenshot is boring
- Changed "or" back to "||" in node.tpl.php since themers do need to learn a little PHP
- #254821: Sub-theme's .info file triggers incorrect "out of date" flag in update module
- Added blockquote indent stlying
- Removed navigation-top named anchor from page templates
- #382598: .node div.links ruleset doesn't match html in node template
- #452118: Removed redundant wrapper div around comment links
- #382480 by Ognyan Kulev: #block-menu-2 should be #block-menu-primary-links
- #374349: breadcrumb often broken when zen_breadcrumb_title is on
- #426750: Removed Zen Classic sub theme
- #445830: Rename clear-block CSS class to clearfix
- #445790: Move search box to header
- #445562: q0rban and JohnAlbin: Allow modules to declare their own block edit links
- Added optional node-type-specific preprocess functions
- Added notes about mobile stylesheets to STARTERKIT.info
- #200495 by JohnAlbin, caroltron, and Toe: Split up monolithic zen.css into smaller, logical stylesheets
- #328221 by kmonty and JohnAlbin: Split up ie.css to remove CSS hacks
Zen 6.x-1.2, 2011-02-26
-----------------------
- #593290 by sfyn and JohnAlbin: Chaos Tools/Panels edit tab not working with Zen
Zen 6.x-1.1, 2009-11-10
-----------------------
- #478134 by mithrill: Improve docs about sites/all/themes and sites/default/themes folders
- #600758 by mattyoung: Secondary links run together in one line with primary links
- #600344 by mgifford: Use of absolute font size in block editing links breaks WCAG 2.0
- #546904 by Jennifer_M: List $node as available variable in page.tpl.php
- #583716 by droidenator: Empty title can cause breadcrumbs to display incorrectly
- #600920 by kto.3decb: Fix incorrect comment block class name
- #297084: Remove ctype_lower() from zen_id_safe() to prevent WSOD/Fatal error on some systems
- #317417 by JohnAlbin and quicksketch: Fix off-line maintenance page since drupal_get_path('theme', 'zen') won't work
- #545320 by Deslack: Use of split() generate E_DEPRECATED warnings on PHP 5.3.0
- #472694: Drupal 6.11 broke Zen's OpenID overrides
- Updated screenshot.png to use Zen logo since an actual screenshot is boring
- Changed "or" back to "||" in node.tpl.php since themers do need to learn a little PHP
- #254821: Sub-theme's .info file triggers incorrect "out of date" flag in update module
- #327455 by grendzy and erifneerg: name and id mismatch in named anchor causing validation error
- #382598: .node div.links ruleset doesn't match html in node template
- #382480 by Ognyan Kulev: #block-menu-2 should be #block-menu-primary-links
- #374349: breadcrumb often broken when zen_breadcrumb_title is on
- #426750: Removed Zen Classic sub theme
- #445562: q0rban and JohnAlbin: Allow modules to declare their own block edit links
Zen 6.x-1.0, 2009-02-14
-----------------------
- #342004 by Amitaibu: Add css hint to prevent cramped-looking tables
- #290657: Liquid layout does not have min-width enforced
- #329769 by kmonty: Update zen_id_safe to remove underscores
- #275832: hook_theme implementation breaks maintenance page when database is down
- #362104: layout breaks on Zen-themed maintenance page
- Changed "or" back to "||" in template files since themers do need to learn a little PHP
- #346867 by debonator: navbar-inner is missing the "clear-block" class
- #325610 by Garrett Albright: Site name and logo don't link to frontpage on multilingual site
- #281106: Erroneous whitespace when div.clear-block touches bottom edge of viewport
- #365631: Zen's table-styling-fix breaks update module's styling
- #322480 by grendzy, mr.baileys, Bevan, and JohnAlbin: Make registry rebuild warning less obtrusive
- #325630: Broken link in "Theme registry rebuilt" warning when Clean URLs is off
- #324104 by JohnAlbin and dalin: Broken block editing link for Views 2
- #365205: block editing link doesn't work with Menu Block 6.x-2.1 and later
- #308251 by Garrett Albright: Improve icon placement on status, warning, and error messages
- Added $body_classes_array variable to page template
- #343945: Fix zen_breadcrumb_title setting to use proper menu_get_active_item()
- #279896 by lutegrass: Help prevent double H1 tags on homepage that is not /node
- #310507 by MikeyLikesIt: Footer region not output in Zen Classic
- #347195: Remove theme registry fix that was needed for broken Drupal 6.0 - 6.6
- #346706 by jsaints: Content clipped after page one when printing in Firefox
- #311529: Remove core's page-ARG0 body class, leaving zen's page-PATH
- Simplified body class generation code
- #334956 by hansrossel: Remove no-longer-needed fix for "Flash of Unstyled Content in IE"
- Fixed theme settings CSS for IE6 users
- Added Photoshop file for STARTERKIT screenshot
- Added Photoshop file for messages
- Allow easier CSS rule overriding by including THEMENAME.css file last
- Fixed message styling in Zen Classic
- #308957: html-elements.css not enabled in STARTERKIT
- #288213 by budda: Tabs in IE have a text select cursor rather than hand pointer
- #310818: Auto theme-registry rebuild warns themer multiple times
Zen 6.x-1.0-beta3, 2008-09-15
-----------------------------
- #308251: Add useful styling for status, warning, and error messages
- #307309: Add feature to rebuild theme registry during theme development
- Removed path_to_zentheme() since we're not conditionally including wireframes.css or block-editing.css
- #245832: Add IE conditional stylesheets to .info file
- #263228: Allow sub-themes to override wireframes.css
- #260605: Can't override block-editing.css
- #308266: Don't display footer if no footer message or footer blocks
- Changed $block_classes to $classes and $comment_classes to $classes and $node_classes to $classes
- #290838 by thehong: Only display comments block when comments content is not empty
- Don't display comment wrapper title on forums
- #299397: Synchronize Zen's tpl files with core's tpl files
- #281106 by kmonty: Erroneous whitespace when div.clear-block touches bottom edge of viewport
- Changed "||" to "or" in template files since its more intuitive to PHP newbies
- #279896: Help prevent double H1 tags on homepage that is not /node
- #279896: Moved styles to zen.css that should never have been in layout.css
- #255265 by kmonty: Don't "skip to nav" if there's no nav
- Re-arranged sidebar classes so they are in no-sidebars -> two-sidebars order in the layout CSS files
- #306856: Optimize code by adding conditional includes
- Moved some comments from zen to STARTERKIT where they belong
- Optimized zen_breadcrumb()
- Folded template-menus.php back into template.php since its not conditionally included
- Removed theme_username from STARTERKIT and zen_classic since it was fixed in Drupal 6.3
- Optimized zen_menu_item_link()
- #305311: CSS files makes reference to to drupal5-reference.css
- #299419: Remove empty zen.css in sub-themes
- #284798: PHP warning when settings section of .info file is missing
- #272655: Make STARTERKIT_theme easier to extend
Zen 6.x-1.0-beta2, 2008-05-20
-----------------------------
- #260016: PHP 4 Parse error: syntax error, unexpected '&'
Zen 6.x-1.0-beta1, 2008-05-15
-----------------------------
- #253609 by jjeff: Add 'region' class to regions
- #258123 by jjeff: Rearrange placement of #site-name strong
- #248103: Allow themes to set defaults for settings in their .info files
- #249532: Allow subthemes to have preprocess hooks without tpl files
- #223518: Option to show page title in breadcrumbs
- #253249: zen_id_safe fails when first character is extended latin
- #251632: Make the closure region more useful
- #199682: 'Submitted by' text is shown for content even if setting is disabled
- #222339: Blocks in Zen Classic header and closure lack padding
- #248780: admin table styles override update_status styling
- #232840: OpenID login block displaying incorrectly
- #246110 by jjeff: zen.css breaks .container-inline
- #229661: Search Box doesn't return any results or warnings
- #244023 by jjeff: Make block editing links go to actual menu edit pages
- #245968 by jjeff: Put the word "Comments" above comments
- #238387: Update README on how to edit the .info file
- #227297 by Aragorn450: CSS Include for wireframes broken
- Prevented "notice: Undefined variable: edit_links" for anonymous users
- Made block-editing.css a "theme"-type CSS file
- #224416 by sykora: <span> displaying on mouse over on block heading
- Added complete Drupal 6 CSS for easy reference by theme developers
- Added Photoshop file for tabs
- #222299: Block editing link in Zen Classic footer is white on white
Zen 5.x-1.2, 2009-02-15
-----------------------
- #342004 by Amitaibu: Add css hint to prevent cramped-looking tables
- #290657: Liquid layout does not have min-width enforced
- #279896 by lutegrass: Help prevent double H1 tags on homepage that is not /node
- #346706 by jsaints: Content clipped after page one when printing in Firefox
- Added $body_classes_array variable to page template
- Simplified body class generation code
- Fixed theme settings CSS for IE6 users
- #288213 by budda: Tabs in IE have a text select cursor rather than hand pointer
- #249823: Add options to toggle display of primary and secondary links
- #281106 by kmonty: Erroneous whitespace when div.clear-block touches bottom edge of viewport
- #279896: Help prevent double H1 tags on homepage that is not /node
- #279896: Moved styles to zen.css that should never have been in layout.css
- #255265 by kmonty: Don't "skip to nav" if there's no nav
- #263228: Allow sub-themes to override wireframes.css
- Added sample override template file for search block's form
- Fixed _zen_hook() to look in sub-theme directory when $hook is not valid PHP function name
- #223518: Option to show page title in breadcrumbs
- #255263: Don't call preprocess functions twice when Zen is active theme
- #253249: zen_id_safe fails when first character is extended latin
Zen 5.x-1.1, 2008-04-21
-----------------------
- #246109: Add MODULE_preprocess_HOOK functions to Zen
- #199682: 'Submitted by' text is shown for content even if setting is disabled
- #247960: Add THEME_preprocess() hook to Zen
- #222339: Blocks in Zen Classic header and closure lack padding
- #248720 by matt@antinomia: Only UPDATE {system} table WHERE type = 'theme'
- #248780: admin table styles override update_status styling
- #246110 by jjeff: zen.css breaks .container-inline
- Prevented "notice: Undefined variable: edit_links" for anonymous users
- Made block-editing.css a "theme"-type CSS file
- Added Photoshop file for tabs
- #222299: Block editing link in Zen Classic footer is white on white
Zen 5.x-1.0, 2008-02-14
-----------------------
- #220161: Change SUBTHEME to STARTERKIT to prevent accidental WSOD
- #221545 by jjeff: Add theme_comment_wrapper() and theme_username() from Zengine
- #220551: IE6: sidebars disappear when resizing window
- Added body classes: section-node-add, section-node-edit, section-node-delete
- Prevented display of empty help from node_help()
- #219401: Add theme override examples for all functions used in Zen core
Zen 5.x-1.0-beta2, 2008-01-29
-----------------------------
- #214777: sub-theme's search-theme-form.tpl is ignored
- #206707: tr.even/odd border-bottom is missing in IE
- #207743 by jjeff: Added translatable "Unpublished" text as background
- #207743 by jjeff: Added block editing links on hover
- Added extended block classes (zebra class by jjeff)
- #207743 by jjeff: Allow a sub-theme to add/alter block variables
- #110897: oversize content causes IE6 layout breakage (now fixed in Zen Classic)
- #211156 by jjeff: $subtheme_directory variable in page.tpl.php never gets populated
- #206060: changed inline styling method for navbar links from inline to float
Zen 5.x-1.0-beta1, 2008-01-06
-----------------------------
- Removed named anchors from doc flow to prevent any styles from appearing
- #203213 by kdebaas: Add node-teaser class to nodes displayed as teasers
- #203112 by kdebaas: Un-localizable string in search-theme-form.tpl.php
- #201793: Fixed fatal error when no settings are added to a sub-theme's settings
- #196181: _phptemplate_callback doesn't look in sub-theme folder for .tpl.php files
- Added sample override template file for drupal search form
- Added SUBTHEME directory as a starter sub-theme for developers
- #199036 by joachim: Make padding on #squeeze conditional
- #199578: Fatal error on Zen Classic theme settings when using admin theme
- #200380 by psynaptic: missing semi-colon in layout-fixed.css
- #196230: Tabs broken in IE5 and IE6
- #199682: 'Submitted by' text is shown even if setting is disabled
- #171201: Remove un-localizable date/time format from base theme
- Added theme settings to control layout method and wireframes inclusion
- Added fixed layout stylesheet
Zen 5.x-0.8, 2007-11-29
-----------------------
- #196223: IE5 always loads @import print stylesheet
- #184232: Add README documentation
- #121991: Source rendering order needs adjustment
- #110897: oversize content causes IE6 layout breakage
- Added unique classes for each page and website section
- Added customizable breadcrumb settings
- Split template.php into multiple files to ease theme developer overload
- Add prettier tab styling
- #141784: Add conditional IE stylesheets
- Merge zen-fixed with zen_classic
- Add optional Theme Settings API integration
- #169359: Base CSS and tpl files don't get loaded (sub-theme with page.tpl.php)
- #171464: Create starter theme; migrate current style to a sub-theme
- Add ability to change regions in a sub-theme
- Add complete Drupal 5 CSS for easy reference by theme developers
- #183936: Backport Drupal 6 $body_classes
Zen 5.x-0.7, 2007-10-15
-----------------------
- #100894: For SEO, H1#site-name should be div#site-name strong
- #118467 by leandrosiow: Screen redraw errors with resizable textareas in Firefox
- #154937 by msonnabaum: add skip navigation for screen readers/mobility impaired
- #122592: Ability to theme each primary link
- #178560 by incognito: Shifting avatars in the comment blocks
- #110553 by rport: Use png instead of gif for images
- #120052: Add linux fonts
- #183360: Empty H2 appears on blocks with no titles
- #121101: zen.css does not validate
- #110902: IE6: text falls outside and to the left of content area
- #183354: Add a div around the feed icons
- #120341: Sidebar has unwanted 5em bottom margin
- #122938: Enabling CSS aggregation messes up the CSS in Safari
- #110897: oversize content causes IE6 layout breakage
- #119270: profile pictures indenting
- #118170 by mr700: blockquote css border has two widths
- #110810: change .submitted span to div
- #100899: don't use sidebar class for widths
- #182130 by joachim: links in h2 and h3 different sizes
- #182556: Added CHANGELOG
Zen 5.x-0.6, 2007-01-17
-----------------------
- Initial pre-release

274
themes/zen/LICENSE.txt Normal file
View file

@ -0,0 +1,274 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave,
Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute
verbatim copies of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your freedom to
share and change it. By contrast, the GNU General Public License is
intended to guarantee your freedom to share and change free software--to
make sure the software is free for all its users. This General Public License
applies to most of the Free Software Foundation's software and to any other
program whose authors commit to using it. (Some other Free Software
Foundation software is covered by the GNU Library General Public License
instead.) You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our
General Public Licenses are designed to make sure that you have the
freedom to distribute copies of free software (and charge for this service if
you wish), that you receive source code or can get it if you want it, that you
can change the software or use pieces of it in new free programs; and that
you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to
deny you these rights or to ask you to surrender the rights. These restrictions
translate to certain responsibilities for you if you distribute copies of the
software, or if you modify it.
For example, if you distribute copies of such a program, whether gratis or for
a fee, you must give the recipients all the rights that you have. You must make
sure that they, too, receive or can get the source code. And you must show
them these terms so they know their rights.
We protect your rights with two steps: (1) copyright the software, and (2)
offer you this license which gives you legal permission to copy, distribute
and/or modify the software.
Also, for each author's protection and ours, we want to make certain that
everyone understands that there is no warranty for this free software. If the
software is modified by someone else and passed on, we want its recipients
to know that what they have is not the original, so that any problems
introduced by others will not reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software patents. We
wish to avoid the danger that redistributors of a free program will individually
obtain patent licenses, in effect making the program proprietary. To prevent
this, we have made it clear that any patent must be licensed for everyone's
free use or not licensed at all.
The precise terms and conditions for copying, distribution and modification
follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
MODIFICATION
0. This License applies to any program or other work which contains a notice
placed by the copyright holder saying it may be distributed under the terms
of this General Public License. The "Program", below, refers to any such
program or work, and a "work based on the Program" means either the
Program or any derivative work under copyright law: that is to say, a work
containing the Program or a portion of it, either verbatim or with
modifications and/or translated into another language. (Hereinafter, translation
is included without limitation in the term "modification".) Each licensee is
addressed as "you".
Activities other than copying, distribution and modification are not covered
by this License; they are outside its scope. The act of running the Program is
not restricted, and the output from the Program is covered only if its contents
constitute a work based on the Program (independent of having been made
by running the Program). Whether that is true depends on what the Program
does.
1. You may copy and distribute verbatim copies of the Program's source
code as you receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice and
disclaimer of warranty; keep intact all the notices that refer to this License
and to the absence of any warranty; and give any other recipients of the
Program a copy of this License along with the Program.
You may charge a fee for the physical act of transferring a copy, and you
may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it,
thus forming a work based on the Program, and copy and distribute such
modifications or work under the terms of Section 1 above, provided that you
also meet all of these conditions:
a) You must cause the modified files to carry prominent notices stating that
you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in whole or in
part contains or is derived from the Program or any part thereof, to be
licensed as a whole at no charge to all third parties under the terms of this
License.
c) If the modified program normally reads commands interactively when run,
you must cause it, when started running for such interactive use in the most
ordinary way, to print or display an announcement including an appropriate
copyright notice and a notice that there is no warranty (or else, saying that
you provide a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this License.
(Exception: if the Program itself is interactive but does not normally print such
an announcement, your work based on the Program is not required to print
an announcement.)
These requirements apply to the modified work as a whole. If identifiable
sections of that work are not derived from the Program, and can be
reasonably considered independent and separate works in themselves, then
this License, and its terms, do not apply to those sections when you distribute
them as separate works. But when you distribute the same sections as part
of a whole which is a work based on the Program, the distribution of the
whole must be on the terms of this License, whose permissions for other
licensees extend to the entire whole, and thus to each and every part
regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your rights to
work written entirely by you; rather, the intent is to exercise the right to
control the distribution of derivative or collective works based on the
Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of a
storage or distribution medium does not bring the other work under the scope
of this License.
3. You may copy and distribute the Program (or a work based on it, under
Section 2) in object code or executable form under the terms of Sections 1
and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable source
code, which must be distributed under the terms of Sections 1 and 2 above
on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years, to give
any third party, for a charge no more than your cost of physically performing
source distribution, a complete machine-readable copy of the corresponding
source code, to be distributed under the terms of Sections 1 and 2 above on
a medium customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to distribute
corresponding source code. (This alternative is allowed only for
noncommercial distribution and only if you received the program in object
code or executable form with such an offer, in accord with Subsection b
above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source code
means all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation and
installation of the executable. However, as a special exception, the source
code distributed need not include anything that is normally distributed (in
either source or binary form) with the major components (compiler, kernel,
and so on) of the operating system on which the executable runs, unless that
component itself accompanies the executable.
If distribution of executable or object code is made by offering access to
copy from a designated place, then offering equivalent access to copy the
source code from the same place counts as distribution of the source code,
even though third parties are not compelled to copy the source along with the
object code.
4. You may not copy, modify, sublicense, or distribute the Program except as
expressly provided under this License. Any attempt otherwise to copy,
modify, sublicense or distribute the Program is void, and will automatically
terminate your rights under this License. However, parties who have received
copies, or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
5. You are not required to accept this License, since you have not signed it.
However, nothing else grants you permission to modify or distribute the
Program or its derivative works. These actions are prohibited by law if you
do not accept this License. Therefore, by modifying or distributing the
Program (or any work based on the Program), you indicate your acceptance
of this License to do so, and all its terms and conditions for copying,
distributing or modifying the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the original
licensor to copy, distribute or modify the Program subject to these terms and
conditions. You may not impose any further restrictions on the recipients'
exercise of the rights granted herein. You are not responsible for enforcing
compliance by third parties to this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues), conditions
are imposed on you (whether by court order, agreement or otherwise) that
contradict the conditions of this License, they do not excuse you from the
conditions of this License. If you cannot distribute so as to satisfy
simultaneously your obligations under this License and any other pertinent
obligations, then as a consequence you may not distribute the Program at all.
For example, if a patent license would not permit royalty-free redistribution
of the Program by all those who receive copies directly or indirectly through
you, then the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply and
the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or
other property right claims or to contest validity of any such claims; this
section has the sole purpose of protecting the integrity of the free software
distribution system, which is implemented by public license practices. Many
people have made generous contributions to the wide range of software
distributed through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing to
distribute software through any other system and a licensee cannot impose
that choice.
This section is intended to make thoroughly clear what is believed to be a
consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in certain
countries either by patents or by copyrighted interfaces, the original copyright
holder who places the Program under this License may add an explicit
geographical distribution limitation excluding those countries, so that
distribution is permitted only in or among countries not thus excluded. In such
case, this License incorporates the limitation as if written in the body of this
License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will be
similar in spirit to the present version, but may differ in detail to address new
problems or concerns.
Each version is given a distinguishing version number. If the Program specifies
a version number of this License which applies to it and "any later version",
you have the option of following the terms and conditions either of that
version or of any later version published by the Free Software Foundation. If
the Program does not specify a version number of this License, you may
choose any version ever published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free programs
whose distribution conditions are different, write to the author to ask for
permission. For software which is copyrighted by the Free Software
Foundation, write to the Free Software Foundation; we sometimes make
exceptions for this. Our decision will be guided by the two goals of
preserving the free status of all derivatives of our free software and of
promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT
PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR
ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
ARISING OUT OF THE USE OR INABILITY TO USE THE
PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
OR DATA BEING RENDERED INACCURATE OR LOSSES
SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN
IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS

View file

@ -0,0 +1,79 @@
WHERE TO START
--------------
Yay! You opened the correct file first. The first thing that people notice when
they download the Zen theme is that there are A LOT of files -- way more than
other themes.
Don't worry! You don't need to learn everything all at once in order to make a
drupal theme. Zen will do the bits you haven't learned and patiently wait for
you to discover the documentation and inline comments about them.
SUGGESTED READING
-----------------
Installation
If you don't know how to install a Drupal theme, there is a quick primer later
in this document.
Building a sub-theme
See the STARTERKIT/README.txt file for full instructions.
Theme .info file
Your sub-theme's .info file holds the basic information about your theme that
Drupal needs to know: its name, description, features, template regions, CSS
files, and JavaScript. Don't worry about all these lines just yet.
CSS
Once you have created your sub-theme, look at the README.txt in your
sub-theme's css folder.
Templates
Now take a look at the README.txt in your sub-theme's templates folder.
ONLINE READING
--------------
Full documentation on the Zen theme can be found in Drupal's Handbook:
http://drupal.org/node/193318
Excellent documentation on Drupal theming can be found in the Theme Guide:
http://drupal.org/theme-guide
INSTALLATION
------------
1. Download Zen from http://drupal.org/project/zen
2. Unpack the downloaded file, take the entire zen folder and place it in your
Drupal installation under one of the following locations:
sites/all/themes
making it available to the default Drupal site and to all Drupal sites
in a multi-site configuration
sites/default/themes
making it available to only the default Drupal site
sites/example.com/themes
making it available to only the example.com site if there is a
sites/example.com/settings.php configuration file
Please note: you will need to create the "theme" folder under "sites/all/"
or "sites/default/".
For more information about acceptable theme installation directories, read
the sites/default/default.settings.php file in your Drupal installation.
3. Log in as an administrator on your Drupal site and go to Administer > Site
building > Themes (admin/build/themes). You will see the Zen theme there
with links on how to create your own sub-theme. You can optionally make Zen
the default theme.
4. Now build your own sub-theme by reading the STARTERKIT/README.txt file.
5. Internet explorer has a nasty bug that limits you to 31 stylsheets total. To
get around this limitation during theme development, download, install and
configure the "IE CSS Optimizer" module.
http://drupal.org/project/ie_css_optimizer

View file

@ -0,0 +1,127 @@
BUILD YOUR OWN SUB-THEME
------------------------
*** IMPORTANT ***
* In Drupal 6, the theme system caches template files and which theme functions
should be called. What that means is if you add a new theme or preprocess
function to your template.php file or add a new template (.tpl.php) file to
your sub-theme, you will need to rebuild the "theme registry." See
http://drupal.org/node/173880#theme-registry
* Drupal 6 also stores a cache of the data in .info files. If you modify any
lines in your sub-theme's .info file, you MUST refresh Drupal 6's cache by
simply visiting the admin/build/themes page.
The base Zen theme is designed to be easily extended by its sub-themes. You
shouldn't modify any of the CSS or PHP files in the zen/ folder; but instead you
should create a sub-theme of zen which is located in a folder outside of the
root zen/ folder. The examples below assume zen and your sub-theme will be
installed in sites/all/themes/, but any valid theme directory is acceptable
(read the sites/default/default.settings.php for more info.)
Why? To learn why you shouldn't modify any of the files in the zen/ folder,
see http://drupal.org/node/245802
1. Copy the STARTERKIT folder out of the zen/ folder and rename it to be your
new sub-theme. IMPORTANT: The name of your sub-theme must start with an
alphabetic character and can only contain lowercase letters, numbers and
underscores.
For example, copy the sites/all/themes/zen/STARTERKIT folder and rename it
as sites/all/themes/foo.
Why? Each theme should reside in its own folder. To make it easier to
upgrade Zen, sub-themes should reside in a folder separate from their base
theme.
2. In your new sub-theme folder, rename the STARTERKIT.info.txt file to include
the name of your new sub-theme and remove the ".txt" extension. Then edit
the .info file by editing the name and description field.
For example, rename the foo/STARTERKIT.info.txt file to foo/foo.info. Edit
the foo.info file and change "name = Zen Sub-theme Starter Kit" to
"name = Foo" and "description = Read..." to "description = A Zen sub-theme".
Why? The .info file describes the basic things about your theme: its
name, description, features, template regions, CSS files, and JavaScript
files. See the Drupal 6 Theme Guide for more info:
http://drupal.org/node/171205
Then, visit your site's admin/build/themes to refresh Drupal 6's cache of
.info file data.
3. By default your new sub-theme is using a fixed-width layout. If you want a
liquid layout for your theme, delete the unneeded layout-fixed.css and
layout-fixed-rtl.css files and edit your sub-theme's .info file and replace
the reference to layout-fixed.css with layout-liquid.css.
For example, edit foo/foo.info and change this line:
stylesheets[all][] = css/layout-fixed.css
to:
stylesheets[all][] = css/layout-liquid.css
Why? The "stylesheets" lines in your .info file describe the media type
and path to the CSS file you want to include. The format for these lines
is: stylesheets[MEDIA][] = path/to/file.css
Then, visit your site's admin/build/themes to refresh Drupal 6's cache of
.info file data.
Alternatively, if you are more familiar with a different CSS layout method,
such as Blueprint or 960.gs, you can replace the "css/layout-fixed.css" line
in your .info file with a line pointing at your choice of layout CSS file.
4. Edit the template.php and theme-settings.php files in your sub-theme's
folder; replace ALL occurrences of "STARTERKIT" with the name of your
sub-theme.
For example, edit foo/template.php and foo/theme-settings.php and replace
every occurrence of "STARTERKIT" with "foo".
It is recommended to use a text editing application with search and
"replace all" functionality.
5. Log in as an administrator on your Drupal site and go to Administer > Site
building > Themes (admin/build/themes) and enable your new sub-theme.
6. Internet explorer has a nasty bug that limits you to 31 stylsheets total. To
get around this limitation during theme development, download, install and
configure the "IE CSS Optimizer" module.
http://drupal.org/project/ie_css_optimizer
On a production server, you should enable full optimization of the "Optimize
CSS files" option on the Admin Performance page at
admin/settings/performance.
Optional:
7. MODIFYING ZEN CORE TEMPLATE FILES:
If you decide you want to modify any of the .tpl.php template files in the
zen folder, copy them to your sub-theme's folder before making any changes.
And then rebuild the theme registry.
For example, copy zen/templates/page.tpl.php to foo/templates/page.tpl.php.
8. THEMEING DRUPAL'S SEARCH FORM:
Copy the search-theme-form.tpl.php template file from the modules/search/
folder and place it in your sub-theme's folder. And then rebuild the theme
registry.
You can find a full list of Drupal templates that you can override in the
templates/README.txt file or http://drupal.org/node/190815
Why? In Drupal 6 theming, if you want to modify a template included by a
module, you should copy the template file from the module's directory to
your sub-theme's directory and then rebuild the theme registry. See the
Drupal 6 Theme Guide for more info: http://drupal.org/node/173880
9. FURTHER EXTENSIONS OF YOUR SUB-THEME:
Discover further ways to extend your sub-theme by reading Zen's
documentation online at:
http://drupal.org/node/193318
and Drupal 6's Theme Guide online at:
http://drupal.org/theme-guide

View file

@ -0,0 +1,96 @@
; The name and description of the theme used on the admin/build/themes page.
name = Zen Sub-theme Starter Kit
description = Read the <a href="http://drupal.org/node/629510">online docs</a> or the included README.txt on how to create a Zen sub-theme.
; The screenshot used on the admin/build/themes page.
screenshot = screenshot.png
; "core" specifies the version of Drupal that this theme is compatible with.
; "base theme" specifies that this is a theme that uses the "zen" theme as its
; base theme. Its unlikely you will ever need to change these, but they are
; required fields for a Zen sub-theme. The "engine" field is not used in a
; sub-theme since the engine is inherited from its base theme.
core = 6.x
base theme = zen
; This section adds CSS files to your theme. The media type is specified in
; the brackets. Typical CSS media types include "all", "screen", "print", and
; "handheld". See http://www.w3.org/TR/CSS21/media.html#media-types for a full
; list of stylesheet media types in CSS 2.1. The iPhone's preferred media type
; is based on the CSS3 Media queries. http://www.w3.org/TR/css3-mediaqueries/
;
; You can also override any of Zen's stylesheets or any module's stylesheets,
; an /extremely/ useful feature. See the excellent Drupal 6 Theme Guide at
; http://drupal.org/node/263967 for more details.
stylesheets[all][] = css/html-reset.css
stylesheets[all][] = css/wireframes.css
stylesheets[all][] = css/layout-fixed.css
stylesheets[all][] = css/page-backgrounds.css
stylesheets[all][] = css/tabs.css
stylesheets[all][] = css/messages.css
stylesheets[all][] = css/pages.css
stylesheets[all][] = css/block-editing.css
stylesheets[all][] = css/blocks.css
stylesheets[all][] = css/navigation.css
stylesheets[all][] = css/panels-styles.css
stylesheets[all][] = css/views-styles.css
stylesheets[all][] = css/nodes.css
stylesheets[all][] = css/comments.css
stylesheets[all][] = css/forms.css
stylesheets[all][] = css/fields.css
stylesheets[print][] = css/print.css
; stylesheets[handheld][] = css/mobile.css
; stylesheets[only screen and (max-device-width: 480px)][] = css/iphone.css
; Set the conditional stylesheets that are processed by IE.
conditional-stylesheets[if IE][all][] = css/ie.css
conditional-stylesheets[if lte IE 6][all][] = css/ie6.css
; Optionally add some JavaScripts to your theme.
; scripts[] = js/script.js
; The regions defined in Zen's default page.tpl.php file. The name in
; brackets is the name of the variable in the page.tpl.php file, (e.g.
; "[content_top]" in the .info file means there should be a $content_top
; variable in the page.tpl.php file.) The text after the equals sign is a
; descriptive text used on the admin/build/blocks page.
;
; To add a new region, copy Zen's page.tpl.php to your sub-theme's directory,
; add a line line to this file, and then add the new variable to your
; page.tpl.php template.
regions[sidebar_first] = First sidebar
regions[sidebar_second] = Second sidebar
regions[navigation] = Navigation bar
regions[highlight] = Highlighted content
regions[content_top] = Content top
regions[content_bottom] = Content bottom
regions[header] = Header
regions[footer] = Footer
regions[page_closure] = Page closure
; Various page elements output by the theme can be toggled on and off. The
; "features" control which of these check boxes display on the
; admin/build/themes config page. This is useful for suppressing check boxes
; for elements not used by your sub-theme. To suppress a check box, omit the
; entry for it below. See the Drupal 6 Theme Guide for more info:
; http://drupal.org/node/171205#features
features[] = logo
features[] = name
features[] = slogan
features[] = mission
features[] = node_user_picture
features[] = comment_user_picture
features[] = search
features[] = favicon
features[] = primary_links
features[] = secondary_links
; Set the default settings to be used in theme-settings.php
settings[zen_block_editing] = 1
settings[zen_breadcrumb] = yes
settings[zen_breadcrumb_separator] = ' '
settings[zen_breadcrumb_home] = 1
settings[zen_breadcrumb_trailing] = 1
settings[zen_breadcrumb_title] = 0
settings[zen_rebuild_registry] = 1
settings[zen_wireframes] = 0

View file

@ -0,0 +1,134 @@
ZEN'S STYLESHEETS
-----------------
Don't panic!
There are 28 CSS files in this sub-theme, but its not as bad as it first seems:
- The drupal6-reference.css is just a reference file and isn't used directly by
your sub-theme. See below.
- There are 9 CSS files whose names end in "-rtl.css". Those are CSS files
needed to style content written in Right-to-Left languages, such as Arabic and
Hebrew. If your website doesn't use such languages, you can safely delete all
of those CSS files.
- If you aren't using this theme while doing wireframes of the functionality of
your sub-theme, you can remove wireframes.css from your sub-theme's .info file
and delete the file as well.
That leaves just 17 CSS files. (Okay, still quite a few, but better than 28.)
- Instead of one monolithic stylesheet, your sub-theme's CSS files are organized
into several smaller stylesheets that are grouped to allow cascading across
common Drupal template files.
- The order of the stylesheets is designed to allow CSS authors to use the
lowest specificity possible to achieve the required styling.
ORDER AND PURPOSE OF DEFAULT STYLESHEETS
----------------------------------------
First off, if you find you don't like this organization of stylesheets, you are
free to change it; simply edit the stylesheet declarations in your sub-theme's
.info file. This structure was crafted based on several years of experience
theming Drupal websites.
- html-reset.css:
This is the place where you should set the default styling for all HTML
elements and standardize the styling across browsers. If you prefer a specific
reset method, feel free to add it.
- layout-fixed.css:
- layout-liquid.css:
Zen's default layout is based on the Zen Columns layout method. The
layout-fixed.css file is used by default and can be swapped with the
layout-liquid.css file. These files are designed to be easily replaced. If you
are more familiar with a different CSS layout method, such as Blueprint or
960.gs, you can replace these files with your choice of layout CSS file.
- page-backgrounds.css:
Layered backgrounds across scattered divs can be easier to manage if they are
centralized in one location.
- tabs.css:
- messages.css:
While most of the CSS rulesets in your sub-theme are guidelines without any
actual properties, the tabs and messages stylesheets contain actual styling
for Drupal tabs and Drupal status messages; two common Drupal elements that
are often neglected by site desiners. Zen provides some basic styling which
you are free to use or to rip out and replace.
- pages.css:
Page styling for the markup in the page.tpl.php template.
- blocks.css:
Block styling for the markup in the block.tpl.php template.
- navigation.css:
The styling for your site's menus can get quite bulky and its easier to see
all the styles if they are grouped together rather then across the
header/footer sections of pages.css and in blocks.css.
- views-styles.css:
Views styling for the markup in various views templates. You'll notice this
stylesheet isn't called "views.css" as that would override (remove) the Views
module's stylesheet.
- nodes.css:
Node styling for the markkup in the node.tpl.php template.
- comments.css:
Comment styling for the markup in the comment-wrapper.tpl.php and
comments.tpl.php templates.
- forms.css:
Form styling for the markup in various Drupal forms.
- fields.css:
Field styling for the markup produced by theme_field().
- print.css:
The print styles for all markup.
- ie.css:
- ie6.css:
The Internet Explorer stylesheets are added via conditional comments. Many CSS
authors find using IE "conditional stylesheets" much easier then writing
rulesets with CSS hacks that are known to only apply to various versions of
IE. An alternative method presented by Paul Irish can be found at
http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/
In these stylesheets, we have included all of the classes and IDs from this
theme's tpl.php files. We have also included many of the useful Drupal core
styles to make it easier for theme developers to see them.
DRUPAL CORE'S STYLESHEETS
-------------------------
Many of these styles are over-riding Drupal's core stylesheets, so if you remove
a declaration from them, the styles may still not be what you want since
Drupal's core stylesheets are still styling the element. See the
drupal6-reference.css file for a complete list of all Drupal 6.x core styles.
In addition to the style declarations in these stylesheets, other Drupal styles
that you might want to override or augment are those for:
Book Navigation See line 74 of drupal6-reference.css file
Forum See line 197 of drupal6-reference.css file
Menus See line 667 of drupal6-reference.css file
News Aggregator See line 20 of drupal6-reference.css file
Polls See line 287 of drupal6-reference.css file
Search See line 320 of drupal6-reference.css file
User Profiles See line 945 of drupal6-reference.css file
INTERNET EXLORER HATES YOU
--------------------------
All versions of IE limit you to 31 stylesheets total. What that means is that
only the first 31 stylesheets will load, ignoring the others. So you'll have
missing styles in IE7 and later and a broken layout in IE6.
This is a known bug in IE: http://support.microsoft.com/kb/262161
Please read http://john.albin.net/css/ie-stylesheets-not-loading for the gory
details.

View file

@ -0,0 +1,10 @@
/**
* @file
* RTL companion for the block-editing.css file.
*/
div.block.with-block-editing div.edit {
left: 0;
right: auto;
}

View file

@ -0,0 +1,25 @@
/**
* @file
* Zen's rollover edit links for blocks.
*/
div.block.with-block-editing {
position: relative;
}
div.block.with-block-editing div.edit {
display: none;
position: absolute;
right: 0; /* LTR */
top: 0;
z-index: 40;
border: 1px solid #eee;
padding: 0 2px;
font-size: 0.75em;
background-color: #fff;
}
div.block.with-block-editing:hover div.edit {
display: block;
}

View file

@ -0,0 +1,96 @@
/**
* @file
* Block Styling
*/
.block /* Block wrapper */ {
margin-bottom: 1em;
}
.block.first /* The first block in the region */ {
}
.block.last /* The last block in the region */ {
}
.block.region-odd /* Zebra striping for each block in the region */ {
}
.block.region-even /* Zebra striping for each block in the region */ {
}
.block.odd /* Zebra striping independent of each region */ {
}
.block.even /* Zebra striping independent of each region */ {
}
.region-count-1 /* Incremental count for each block in the region */ {
}
.count-1 /* Incremental count independent of each region */ {
}
.block h2.title /* Block title */ {
}
.block .content /* Block's content wrapper */ {
}
#block-aggregator-category-1 /* Block for the latest news items in the first category */ {
}
#block-aggregator-feed-1 /* Block for the latest news items in the first feed */ {
}
#block-block-1 /* First administrator-defined block */ {
}
#block-blog-0 /* "Recent blog posts" block */ {
}
#block-book-0 /* "Book navigation" block for the current book's table of contents */ {
}
#block-comment-0 /* "Recent comments" block */ {
}
#block-forum-0 /* "Active forum topics" block */ {
}
#block-forum-1 /* "New forum topics" block */ {
}
#block-menu-primary-links /* "Primary links" block */ {
}
#block-menu-secondary-links /* "Secondary links" block */ {
}
#block-node-0 /* "Syndicate" block for primary RSS feed */ {
}
#block-poll-0 /* "Most recent poll" block */ {
}
#block-profile-0 /* "Author information" block for the profile of the page's author */ {
}
#block-search-0 /* "Search form" block */ {
}
#block-statistics-0 /* "Popular content" block */ {
}
#block-user-0 /* "User login form" block */ {
}
#block-user-1 /* "Navigation" block for Drupal navigation menu */ {
}
#block-user-2 /* "Who's new" block for a list of the newest users */ {
}
#block-user-3 /* "Who's online" block for a list of the online users */ {
}

View file

@ -0,0 +1,79 @@
/**
* @file
* Comment Styling
*/
#comments /* Wrapper for the list of comments and its title */ {
margin: 1em 0;
}
#comments h2.title /* Heading for the list of comments */ {
}
.comment /* Wrapper for a single comment */ {
}
.comment-preview /* Preview of the comment before submitting new or updated comment */ {
}
.comment.new /* A new comment since the user last viewed the page. */ {
}
.comment.first /* The first comment in the list of comments */ {
}
.comment.last /* The last comment in the list of comments */ {
}
.comment.odd /* An odd-numbered comment in the list of comments */ {
}
.comment.even /* An even-numbered comment in the list of comments */ {
}
.comment-unpublished /* Unpublished comments */ {
/* background-color: #fff4f4; */ /* Drupal core uses a #fff4f4 background */
}
.comment-unpublished div.unpublished /* The word "Unpublished" displayed underneath the content. See also the div.unpublished declaration in the nodes.css. */ {
}
.comment-by-anonymous /* A comment created by an anonymous user */ {
}
.comment-by-node-author /* A comment created by the node's author */ {
}
.comment-by-viewer /* A comment created by the current user */ {
}
.comment h3.title /* Comment title */ {
}
.new /* "New" marker for comments that are new for the current user */ {
color: #c00;
}
.comment .picture /* The picture of the comment author */ {
}
.comment .submitted /* The "posted by" information */ {
}
.comment .content /* Comment's content wrapper */ {
}
.comment .user-signature /* The user's signature */ {
}
.comment ul.links /* Comment links. See also the ul.links declaration in the pages.css. */ {
}
.indented /* Nested comments are indented */ {
/* margin-left: 25px; */ /* Drupal core uses a 25px left margin */
}
.preview .comment /* Preview of the comment before submitting new or updated comment */ {
/* background-color: #ffffea; */ /* Drupal core uses a #ffffea background */
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,44 @@
/**
* @file
* Field Styling
*/
/*
* Field types
*/
.field /* Wrapper for any CCK field. */ {
}
.field-type-datetime /* Always use "datetime" when creating new CCK date fields. "date" and "datestamp" are legacy types. */ {
}
.field-type-filefield /* Field from filefield module */ {
}
.field-type-nodereference {
}
.field-type-number-decimal {
}
.field-type-number-float {
}
.field-type-number-integer {
}
.field-type-text {
}
.field-type-userreference {
}
/*
* Named fields
*/
.field-field-FIELDNAME /* Underscores in field name are replaced with dashes. */ {
}

View file

@ -0,0 +1,46 @@
/**
* @file
* RTL companion for the forms.css file.
*/
/*
* Drupal's default login form block
*/
#user-login-form {
text-align: right;
}
/*
* OpenID
*
* The default styling for the OpenID login link seems to assume Garland's
* styling of list items.
*/
#user-login-form li.openid-link /* The "Log in using OpenID" link. */ {
margin-left: 0;
margin-right: -20px; /* Un-do some of the padding on the ul list. */
}
#user-login li.openid-link,
#user-login li.user-link /* The OpenID links on the /user form. */ {
margin-left: 0;
margin-right: -2em; /* Un-do all of the padding on the ul list. */
}
/*
* Drupal admin tables
*
* We overrode these styles in html-elements.css, but restore them for the admin
* section of the site.
*/
form th,
form thead th {
text-align: right;
padding-left: 1em;
padding-right: 0;
}

View file

@ -0,0 +1,134 @@
/**
* @file
* Form Styling
*/
.form-item,
.form-checkboxes,
.form-radios /* Wrapper for a form element (or group of form elements) and its label */ {
margin: 1em 0;
}
.form-item input.error,
.form-item textarea.error,
.form-item select.error /* Highlight the form elements that caused a form submission error */ {
border: 2px solid #c00;
}
.form-item label /* The label for a form element */ {
display: block;
font-weight: bold;
}
.form-item label.option /* The label for a radio button or checkbox */ {
display: inline;
font-weight: normal;
}
.form-required /* The part of the label that indicates a required field */ {
color: #c00;
}
.form-item .description /* The descriptive help text (separate from the label) */ {
font-size: 0.85em;
}
.form-checkboxes .form-item,
.form-radios .form-item /* Pack groups of checkboxes and radio buttons closer together */ {
margin: 0.4em 0;
}
.form-submit /* The submit button */ {
}
.container-inline div,
.container-inline label /* Inline labels and form divs */ {
display: inline;
}
.tips /* Tips for Drupal's input formats */ {
}
/*
* Search (search-theme-form.tpl.php)
*/
#search-box /* Wrapper for the search form */ {
}
#edit-search-theme-form-1-wrapper label /* Label that says "Search this site:" */ {
display: none;
}
/*
* Search (search-block-form.tpl.php)
*/
#search-block-form /* Wrapper for the search form */ {
}
#edit-search-block-form-1-wrapper label /* Label that says "Search this site:" */ {
display: none;
}
/*
* Drupal's default login form block
*/
#user-login-form {
text-align: left; /* LTR */
}
/*
* OpenID
*
* The default styling for the OpenID login link seems to assume Garland's
* styling of list items.
*/
#user-login-form ul /* OpenID creates a new ul above the login form's links. */ {
margin-bottom: 0; /* Position OpenID's ul next to the rest of the links. */
}
#user-login-form li.openid-link /* The "Log in using OpenID" link. */ {
margin-top: 1em;
margin-left: -20px; /* LTR */ /* Un-do some of the padding on the ul list. */
}
#user-login-form li.user-link /* The "Cancel OpenID login" link. */ {
margin-top: 1em;
}
#user-login ul {
margin: 1em 0;
}
#user-login li.openid-link,
#user-login li.user-link /* The OpenID links on the /user form. */ {
margin-left: -2em; /* LTR */ /* Un-do all of the padding on the ul list. */
}
/*
* Drupal admin tables
*
* We overrode these styles in html-elements.css, but restore them for the admin
* section of the site.
*/
form tbody {
border-top: 1px solid #ccc;
}
form th,
form thead th {
text-align: left; /* LTR */
padding-right: 1em; /* LTR */
border-bottom: 3px solid #ccc;
}
form tbody th {
border-bottom: 1px solid #ccc;
}

View file

@ -0,0 +1,37 @@
/**
* @file
* RTL companion for the html-reset.css file.
*/
/*
* Lists
*
* We need to standardize the list item indentation.
*/
ul,
ol {
padding-left: 0;
padding-right: 2em;
}
.block ul,
.item-list ul /* Drupal overrides */ {
padding: 0 2em 0 0;
}
dd {
margin: 0 2em 0 0;
}
/*
* Tables
*
* Drupal provides table styling which is only useful for its admin section
* forms, so we override this default CSS. (We set it back in forms.css.)
*/
th,
thead th,
tbody th {
text-align: right;
}

View file

@ -0,0 +1,291 @@
/**
* @file
* HTML Element Styling
*
* Ok, I admit it. I fooled you. This isn't a "reset" stylesheet. Instead this
* is the place where you should set (not reset) the default styling for all
* HTML elements.
*
* @see http://meiert.com/en/blog/20080419/reset-style-sheets-are-bad/
* @see http://snook.ca/archives/html_and_css/no_css_reset/
*/
/*
* Fonts
*
* Our font size and line height declarations are based on the following ALA
* article:
* http://www.alistapart.com/articles/howtosizetextincss
*
* All modern browsrs use a 16px default font size. Specifying the font-size
* and line-height in ems (relative to the 16px default font) allows the user
* to resize the font in the browser and produces the most consistent results
* across different browsers.
*/
body {
font-size: 100%; /* Fixes exaggerated text resizing in IE6 and IE7 */
}
#skip-link,
#page {
/*
* To use a 12px font size on the page, delete the 14px declarations.
* to use a 14px font size on the page, delete the 12px declarations.
*/
/* Use a 12px base font size with a 16px line height */
font-size: 0.75em; /* 16px x .75 = 12px */
line-height: 1.333em; /* 12px x 1.333 = 16px */
/* Use a 14px base font size with a 18px line height */
font-size: 0.875em; /* 16px x .875 = 14px */
line-height: 1.286em; /* 14px x 1.286 = 18px */
}
body,
caption,
th,
td,
input,
textarea,
select,
option,
legend,
fieldset {
/* The following font family declarations are based on the Microsoft core web
* fonts which are common fonts available on most computer systems. The DejaVu
* fonts are commonly available on Linux systems where the MS fonts are less
* common. Tahoma and Helvetica are also widely available.
*
* A user's web browser will look at the comma-separated list and will
* attempt to use each font in turn until it finds one that is available
* on the user's computer. The final "generic" font (sans-serif or serif)
* hints at what type of font to use if the web browser doesn't find any
* of the fonts in the list.
font-family: "Times New Roman", Times, Georgia, "DejaVu Serif", serif;
font-family: Times, "Times New Roman", Georgia, "DejaVu Serif", serif;
font-family: Georgia, "Times New Roman", "DejaVu Serif", serif;
font-family: Verdana, Tahoma, "DejaVu Sans", sans-serif;
font-family: Tahoma, Verdana, "DejaVu Sans", sans-serif;
font-family: Helvetica, Arial, "Nimbus Sans L", sans-serif;
font-family: Arial, Helvetica, "Nimbus Sans L", sans-serif;
font-family: "Courier New", "DejaVu Sans Mono", monospace;
*/
font-family: Verdana, Tahoma, "DejaVu Sans", sans-serif;
}
pre,
code {
font-size: 1.1em; /* Monospace fonts can be hard to read */
font-family: "Courier New", "DejaVu Sans Mono", monospace;
}
/*
* Headings
*/
h1 {
font-size: 2em;
line-height: 1.3em;
margin-top: 0;
margin-bottom: 0.5em; /* 0.5em is equavalent to 1em in the page's base font.
Remember, a margin specified in ems is relative to
the element's font-size, not to the pages' base
font size. So, for example, if we want a 1em margin
(relative to the base font), we have to divide that
length by the element's font-size:
1em / 2em = 0.5em */
}
h2 {
font-size: 1.5em;
line-height: 1.3em;
margin-top: 0.667em; /* Equivalent to 1em in the page's base font: 1 / 1.5 = 0.667em */
margin-bottom: 0.667em;
}
h3 {
font-size: 1.3em;
line-height: 1.3em;
margin-top: 0.769em; /* Equivalent to 1em in the page's base font: 1 / 1.3 = 0.769 */
margin-bottom: 0.769em;
}
h4,
h5,
h6 {
font-size: 1.1em;
line-height: 1.3em;
margin-top: 0.909em; /* Equivalent to 1em in the page's base font: 1 / 1.1 = 0.909 */
margin-bottom: 0.909em;
}
/*
* Block-level elements
*/
p,
ul,
ol,
dl,
pre,
table,
fieldset {
margin: 1em 0;
}
blockquote {
margin: 1em 2em;
}
/*
* Lists
*
* We need to standardize the list item indentation.
*/
ul,
ol {
margin-left: 0;
padding-left: 2em; /* LTR */
}
.block ul,
.item-list ul /* Drupal overrides */ {
margin: 1em 0;
padding: 0 0 0 2em; /* LTR */
}
ul ul, ul ol,
ol ol, ol ul,
.block ul ul, .block ul ol,
.block ol ol, .block ol ul,
.item-list ul ul, .item-list ul ol,
.item-list ol ol, .item-list ol ul {
margin: 0;
}
li {
margin: 0;
padding: 0;
}
.item-list ul li /* Drupal override */ {
margin: 0;
padding: 0;
list-style: inherit;
}
ul.menu li,
li.expanded,
li.collapsed,
li.leaf /* Drupal override */ {
margin: 0;
padding: 0;
}
ul { list-style-type: disc; }
ul ul { list-style-type: circle; }
ul ul ul { list-style-type: square; }
ul ul ul ul { list-style-type: circle; }
ol { list-style-type: decimal; }
ol ol { list-style-type: lower-alpha; }
ol ol ol { list-style-type: decimal; }
dt {
margin: 0;
padding: 0;
}
dd {
margin: 0 0 0 2em;
padding: 0;
}
/*
* Links
*
* The order of link states are based on Eric Meyer's article:
* http://meyerweb.com/eric/thoughts/2007/06/11/who-ordered-the-link-states
*/
a:link {
}
a:visited {
}
a:hover,
a:focus {
}
a:active {
}
/*
* Tables
*
* Drupal provides table styling which is only useful for its admin section
* forms, so we override this default CSS. (We set it back in forms.css.)
*/
table {
border-collapse: collapse;
/* width: 100%; */ /* Prevent cramped-looking tables */
}
th,
thead th,
tbody th {
text-align: left; /* LTR */
padding: 0;
border-bottom: none;
}
tbody {
border-top: none;
}
/*
* Abbreviations
*/
abbr {
border-bottom: 1px dotted #666;
cursor: help;
white-space: nowrap;
}
abbr.created /* Date-based "abbreviations" show computer-friendly timestamps which are not human-friendly. */ {
border: none;
cursor: auto;
white-space: normal;
}
/*
* Images
*/
img {
border: 0;
}
/*
* Horizontal rules
*/
hr {
height: 1px;
border: 1px solid #666;
}
/*
* Forms
*/
form {
margin: 0;
padding: 0;
}
fieldset {
margin: 1em 0;
padding: 0.5em;
}

View file

@ -0,0 +1,47 @@
/**
* @file
* CSS targeted specifically for Internet Explorer for Windows.
*
* Any CSS in this file will apply to all versions of IE. You can target
* specific versions of IE by using conditional comments. See your sub-theme's
* .info file for an easy way to use them.
*
* While building your theme, you should be aware that IE limits Drupal to 31
* stylesheets total. The work-around for the bug is to enable CSS aggregation
* under: admin / settings / performance.
*/
/*
* Tabs
*/
ul.primary li a,
ul.primary li a .tab,
ul.secondary li a,
ul.secondary li a .tab {
cursor: pointer;
}
/*
* Drupal nodes
*/
.node-unpublished .node-inner>* {
position: relative; /* Otherwise these elements will appear below the "Unpublished" text. */
}
/*
* Drupal admin tables
*/
tr.even th,
tr.even td,
tr.odd th,
tr.odd td {
border-bottom: 1px solid #ccc; /* IE doesn't display borders on table rows */
}
/*
* Markup free clearing
*/
.clearfix {
zoom: 1;
}

View file

@ -0,0 +1,12 @@
/**
* @file
* RTL companion for the ie6.css file.
*/
/*
* Layout CSS
*/
#page {
text-align: right; /* 2nd part of IE5/IE6quirks centering hack */
}

View file

@ -0,0 +1,105 @@
/**
* @file
* CSS targeted specifically for Internet Explorer 5 and 6 for Windows.
*
* Any CSS in this file will override the rules specified in the ie.css file.
*/
/*
* Layout CSS
*/
body {
text-align: center; /* 1st part of IE5/IE6quirks centering hack */
}
#page {
text-align: left; /* LTR */ /* 2nd part of IE5/IE6quirks centering hack */
}
#main-wrapper {
zoom: 1; /* Otherwise with a liquid layout, sidebars disappear when resizing the windows in IE6 */
}
#content,
#navigation,
.region-sidebar-first,
.region-sidebar-second /* Floating divs */ {
display: inline; /* display inline or double your floated margin! [1] */
overflow: hidden; /* in ie6, overflow auto is broken [2] and so is overflow visible [3] */
overflow-y: visible;
}
/*
* Tabs - IE 5 and 6 don't support PNGs with alpha transparency.
*/
ul.primary li a,
ul.primary li a .tab,
ul.secondary li a,
ul.secondary li a .tab {
display: inline-block; /* Otherwise the blocks mistakenly get 100% width in IE6 */
}
ul.primary li a {
background: url(../images/tab-left-ie6.png) no-repeat left -38px;
}
ul.primary li a .tab {
background: url(../images/tab-right-ie6.png) no-repeat right -38px;
}
ul.primary li a:hover,
ul.primary li a:focus {
background: url(../images/tab-left-ie6.png) no-repeat left -76px;
}
ul.primary li a:hover .tab,
ul.primary li a:focus .tab {
background: url(../images/tab-right-ie6.png) no-repeat right -76px;
}
ul.primary li.active a,
ul.primary li.active a:hover,
ul.primary li.active a:focus {
background: url(../images/tab-left-ie6.png) no-repeat left 0;
}
ul.primary li.active a .tab,
ul.primary li.active a:hover .tab,
ul.primary li.active a:focus .tab {
background: url(../images/tab-right-ie6.png) no-repeat right 0;
}
/*
* Messages - IE 5 and 6 don't support PNGs with alpha transparency.
*/
div.messages,
div.status,
div.warning,
div.error /* Important messages (status, warning, and error) for the user */ {
background-image: url(../images/messages-status-ie6.png);
}
div.warning /* Medium priority messages */ {
background-image: url(../images/messages-warning-ie6.png);
}
div.error /* High priority messages. See also the .error declaration below. */ {
background-image: url(../images/messages-error-ie6.png);
}
/*
* REFERENCES
*
1. http://www.positioniseverything.net/explorer/doubled-margin.html
2. http://browservulsel.blogspot.com/2005/04/ie-overflow-auto-scrollbar-overlap.html
3. http://www.howtocreate.co.uk/wrongWithIE/?chapter=overflow%3Avisible%3B
4. http://www.ryanbrill.com/archives/multiple-classes-in-ie
*
*/

View file

@ -0,0 +1,74 @@
/**
* @file
* RTL companion for the layout-fixed.css file.
*/
/*
* Content
*/
#content,
.no-sidebars #content {
float: right;
margin-left: -960px; /* Negative value of #content's width + right margin. */
margin-right: 0;
}
.sidebar-first #content {
margin-left: -960px; /* Negative value of #content's width + right margin. */
margin-right: 200px; /* The width of .region-sidebar-first. */
}
.sidebar-second #content {
margin-left: -760px; /* Negative value of #content's width + right margin. */
margin-right: 0;
}
.two-sidebars #content {
margin-left: -760px; /* Negative value of #content's width + right margin. */
margin-right: 200px; /* The width of .region-sidebar-first */
}
/*
* Navigation
*/
#navigation {
float: right;
margin-left: -100%; /* Negative value of #navigation's width + right margin. */
margin-right: 0;
}
#navigation ul /* Primary and secondary links */ {
text-align: right;
}
#navigation li /* A simple method to get navigation links to appear in one line. */ {
float: right;
padding: 0 0 0 10px;
}
/*
* First sidebar
*/
.region-sidebar-first {
float: right;
margin-left: -200px; /* Negative value of .region-sidebar-first's width + right margin. */
margin-right: 0;
}
.region-sidebar-first .section {
margin: 0 0 0 20px;
}
/*
* Second sidebar
*/
.region-sidebar-second {
float: right;
margin-left: -960px; /* Negative value of .region-sidebar-second's width + right margin. */
margin-right: 760px; /* Width of content + sidebar-first. */
}
.region-sidebar-second .section {
margin: 0 20px 0 0;
}

View file

@ -0,0 +1,212 @@
/**
* @file
* Layout Styling (DIV Positioning)
*
* Define CSS classes to create a table-free, 3-column, 2-column, or single
* column layout depending on whether blocks are enabled in the left or right
* columns.
*
* This layout is based on the Zen Columns layout method.
* http://drupal.org/node/201428
*
* Only CSS that affects the layout (positioning) of major elements should be
* listed here. Such as:
* display, position, float, clear, width, height, min-width, min-height
* margin, border, padding, overflow
*/
/*
* Body
*/
body {
}
#page-wrapper,
.region-page-closure {
/*
* If you want to make the page a fixed width and centered in the viewport,
* this is the standards-compliant way to do that. See also the ie6.css file
* for the necessary IE5/IE6quirks hack to center a div.
*/
margin-left: auto;
margin-right: auto;
width: 960px;
}
#page {
}
/*
* Header
*/
#header {
}
#header .section {
}
#search-box {
}
.region-header {
clear: both; /* Clear the logo */
}
/*
* Main (container for everything else)
*/
#main-wrapper {
position: relative;
}
#main {
}
/*
* Content
*/
#content,
.no-sidebars #content {
float: left; /* LTR */
width: 960px;
margin-left: 0; /* LTR */
margin-right: -960px; /* LTR */ /* Negative value of #content's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #content .section. */
}
.sidebar-first #content {
width: 760px;
margin-left: 200px; /* LTR */ /* The width of .region-sidebar-first. */
margin-right: -960px; /* LTR */ /* Negative value of #content's width + left margin. */
}
.sidebar-second #content {
width: 760px;
margin-left: 0; /* LTR */
margin-right: -760px; /* LTR */ /* Negative value of #content's width + left margin. */
}
.two-sidebars #content {
width: 560px;
margin-left: 200px; /* LTR */ /* The width of .region-sidebar-first */
margin-right: -760px; /* LTR */ /* Negative value of #content's width + left margin. */
}
#content .section {
margin: 0;
padding: 0;
}
/*
* Navigation
*/
#navigation {
float: left; /* LTR */
width: 100%;
margin-left: 0; /* LTR */
margin-right: -100%; /* LTR */ /* Negative value of #navigation's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #navigation .section. */
height: 2.3em; /* The navigation can have any arbritrary height. We picked one
that is the line-height plus 1em: 1.3 + 1 = 2.3
Set this to the same value as the margin-top below. */
}
.with-navigation #content,
.with-navigation .region-sidebar-first,
.with-navigation .region-sidebar-second {
margin-top: 2.3em; /* Set this to the same value as the navigation height above. */
}
#navigation .section {
}
#navigation ul /* Primary and secondary links */ {
margin: 0;
padding: 0;
text-align: left; /* LTR */
}
#navigation li /* A simple method to get navigation links to appear in one line. */ {
float: left; /* LTR */
padding: 0 10px 0 0; /* LTR */
}
/*
* First sidebar
*/
.region-sidebar-first {
float: left; /* LTR */
width: 200px;
margin-left: 0; /* LTR */
margin-right: -200px; /* LTR */ /* Negative value of .region-sidebar-first's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to .region-sidebar-first .section. */
}
.region-sidebar-first .section {
margin: 0 20px 0 0; /* LTR */
padding: 0;
}
/*
* Second sidebar
*/
.region-sidebar-second {
float: left; /* LTR */
width: 200px;
margin-left: 760px; /* LTR */ /* Width of content + sidebar-first. */
margin-right: -960px; /* LTR */ /* Negative value of .region-sidebar-second's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to .region-sidebar-second .section. */
}
.region-sidebar-second .section {
margin: 0 0 0 20px; /* LTR */
padding: 0;
}
/*
* Footer
*/
#footer {
}
#footer .section {
}
/*
* Closure
*/
.region-page-closure /* See also the #page-wrapper declaration above that this div shares. */ {
}
/*
* Prevent overflowing content
*/
#header,
#content,
#navigation,
.region-sidebar-first,
.region-sidebar-second,
#footer,
.region-page-closure {
overflow: visible;
word-wrap: break-word; /* A very nice CSS3 property */
}
#navigation {
overflow: hidden; /* May need to be removed if using a dynamic drop-down menu */
}
/*
* If a div.clearfix doesn't have any content after it and its bottom edge
* touches the bottom of the viewport, Firefox and Safari will mistakenly
* place several pixels worth of space between the bottom of the div and the
* bottom of the viewport. Uncomment this CSS property to fix this.
* Note: with some over-large content, this property might cause scrollbars
* to appear on the #page-wrapper div.
*/
/*
#page-wrapper {
overflow-y: hidden;
}
*/

View file

@ -0,0 +1,68 @@
/**
* @file
* RTL companion for the layout-liquid.css file.
*/
/*
* Content
*/
#content {
float: right;
margin-left: -100%; /* Negative value of #content's width + right margin. */
margin-right: 0;
}
.sidebar-first #content .section {
padding-left: 0;
padding-right: 200px; /* The width + right margin of .region-sidebar-first. */
}
.sidebar-second #content .section {
padding-left: 200px; /* The width + left margin of .region-sidebar-second. */
padding-right: 0;
}
/*
* Navigation
*/
#navigation {
float: right;
margin-left: -100%; /* Negative value of #navigation's width + right margin. */
margin-right: 0;
}
#navigation ul /* Primary and secondary links */ {
text-align: right;
}
#navigation li /* A simple method to get navigation links to appear in one line. */ {
float: right;
padding: 0 0 0 10px;
}
/*
* First sidebar
*/
.region-sidebar-first {
float: right;
margin-left: -200px; /* Negative value of .region-sidebar-first's width + right margin. */
margin-right: 0;
}
.region-sidebar-first .section {
margin: 0 0 0 20px;
}
/*
* Second sidebar
*/
.region-sidebar-second {
float: left;
margin-left: 0;
margin-right: -200px; /* Negative value of .region-sidebar-second's width + left margin. */
}
.region-sidebar-second .section {
margin: 0 20px 0 0;
}

View file

@ -0,0 +1,202 @@
/**
* @file
* Layout Styling (DIV Positioning)
*
* Define CSS classes to create a table-free, 3-column, 2-column, or single
* column layout depending on whether blocks are enabled in the left or right
* columns.
*
* This layout is based on the Zen Columns layout method.
* http://drupal.org/node/201428
*
* Only CSS that affects the layout (positioning) of major elements should be
* listed here. Such as:
* display, position, float, clear, width, height, min-width, min-height
* margin, border, padding, overflow
*/
/*
* Body
*/
body {
}
#page-wrapper,
.region-page-closure {
min-width: 960px; /* Don't allow the browser to make the site unreadable. */
}
#page {
}
/*
* Header
*/
#header {
}
#header .section {
}
#search-box {
}
.region-header {
clear: both; /* Clear the logo */
}
/*
* Main (container for everything else)
*/
#main-wrapper {
position: relative;
}
#main {
}
/*
* Content
*/
#content {
float: left; /* LTR */
width: 100%;
margin-left: 0; /* LTR */
margin-right: -100%; /* LTR */ /* Negative value of #content's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #content .section. */
}
#content .section,
.no-sidebars #content .section {
margin: 0;
padding: 0;
}
.sidebar-first #content .section {
padding-left: 200px; /* LTR */ /* The width + left margin of .region-sidebar-first. */
padding-right: 0; /* LTR */
}
.sidebar-second #content .section {
padding-left: 0; /* LTR */
padding-right: 200px; /* LTR */ /* The width + right margin of .region-sidebar-second. */
}
.two-sidebars #content .section {
padding-left: 200px; /* The width + left margin of .region-sidebar-first. */
padding-right: 200px; /* The width + right margin of .region-sidebar-second. */
}
/*
* Navigation
*/
#navigation {
float: left; /* LTR */
width: 100%;
margin-left: 0; /* LTR */
margin-right: -100%; /* LTR */ /* Negative value of #navigation's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #navigation .section. */
height: 2.3em; /* The navigation can have any arbritrary height. We picked one
that is the line-height plus 1em: 1.3 + 1 = 2.3
Set this to the same value as the margin-top below. */
}
.with-navigation #content,
.with-navigation .region-sidebar-first,
.with-navigation .region-sidebar-second {
margin-top: 2.3em; /* Set this to the same value as the navigation height above. */
}
#navigation .section {
}
#navigation ul /* Primary and secondary links */ {
margin: 0;
padding: 0;
text-align: left; /* LTR */
}
#navigation li /* A simple method to get navigation links to appear in one line. */ {
float: left; /* LTR */
padding: 0 10px 0 0; /* LTR */
}
/*
* First sidebar
*/
.region-sidebar-first {
float: left; /* LTR */
width: 200px;
margin-left: 0; /* LTR */
margin-right: -200px; /* LTR */ /* Negative value of .region-sidebar-first's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to .region-sidebar-first .section. */
}
.region-sidebar-first .section {
margin: 0 20px 0 0; /* LTR */
padding: 0;
}
/*
* Second sidebar
*/
.region-sidebar-second {
float: right; /* LTR */
width: 200px;
margin-left: -200px; /* LTR */ /* Negative value of .region-sidebar-second's width + right margin. */
margin-right: 0; /* LTR */
padding: 0; /* DO NOT CHANGE. Add padding or margin to .region-sidebar-second .section. */
}
.region-sidebar-second .section {
margin: 0 0 0 20px; /* LTR */
padding: 0;
}
/*
* Footer
*/
#footer {
}
#footer .section {
}
/*
* Closure
*/
.region-page-closure /* See also the #page-wrapper declaration above that this div shares. */ {
}
/*
* Prevent overflowing content
*/
#header,
#content,
#navigation,
.region-sidebar-first,
.region-sidebar-second,
#footer,
.region-page-closure {
overflow: visible;
word-wrap: break-word; /* A very nice CSS3 property */
}
#navigation {
overflow: hidden; /* May need to be removed if using a dynamic drop-down menu */
}
/*
* If a div.clearfix doesn't have any content after it and its bottom edge
* touches the bottom of the viewport, Firefox and Safari will mistakenly
* place several pixels worth of space between the bottom of the div and the
* bottom of the viewport. Uncomment this CSS property to fix this.
* Note: with some over-large content, this property might cause scrollbars
* to appear on the #page-wrapper div.
*/
/*
#page-wrapper {
overflow-y: hidden;
}
*/

View file

@ -0,0 +1,13 @@
/**
* @file
* RTL companion for the messages.css file.
*/
div.messages,
div.status,
div.warning,
div.error /* Important messages (status, warning, and error) for the user */ {
padding: 5px 35px 5px 5px;
background-position: 99.5% 5px;
}

View file

@ -0,0 +1,53 @@
/**
* @file
* Message Styling
*
* Sensible styling for Drupal's error/warning/status messages.
*/
div.messages,
div.status,
div.warning,
div.error /* Important messages (status, warning, and error) for the user */ {
min-height: 21px;
margin: 0 1em 5px 1em;
border: 2px solid #ff7;
padding: 5px 5px 5px 35px; /* LTR */
color: #000;
background-color: #ffc;
background-image: url(../images/messages-status.png);
background-repeat: no-repeat;
background-position: 5px 5px; /* LTR */
}
div.status /* Normal priority messages */ {
}
div.warning /* Medium priority messages */ {
border-color: #fc0;
background-image: url(../images/messages-warning.png);
}
div.warning,
tr.warning {
color: #000; /* Drupal core uses #220 */
background-color: #ffc;
}
div.error /* High priority messages. See also the .error declaration in pages.css. */ {
/* border: 1px solid #d77; */ /* Drupal core uses: 1px solid #d77 */
border-color: #c00;
background-image: url(../images/messages-error.png);
}
div.error,
tr.error {
color: #900; /* Drupal core uses #200 */
background-color: #fee;
}
div.messages ul {
margin-top: 0;
margin-bottom: 0;
}

View file

@ -0,0 +1,44 @@
/**
* @file
* Navigation Styling
*
* Default menu styling (ul.menu) is defined in system-menus.css.
*/
/*
* The active item in a Drupal menu
*/
li a.active {
color: #000;
}
/*
* Navigation bar
*/
#navigation {
}
.region-navigation {
}
/*
* Primary and Secondary menu links
*/
#main-menu {
}
#secondary-menu {
}
/*
* Menu blocks
*/
.block-menu {
}
/*
* "Menu block" blocks. See http://drupal.org/project/menu_block
*/
.block-menu_block {
}

View file

@ -0,0 +1,81 @@
/**
* @file
* Node Styling
*
* Style anything that isn't in the $content variable.
*/
.node /* Node wrapper */ {
}
.node-sticky /* A sticky node (displayed before others in a list) */ {
}
.node-unpublished /* Unpublished nodes */ {
/* background-color: #fff4f4; */ /* Drupal core uses a #fff4f4 background */
}
.node-unpublished div.unpublished,
.comment-unpublished div.unpublished /* The word "Unpublished" displayed underneath the content. */ {
height: 0;
overflow: visible;
color: #d8d8d8;
font-size: 75px;
line-height: 1;
font-family: Impact, "Arial Narrow", Helvetica, sans-serif;
font-weight: bold;
text-transform: uppercase;
text-align: center;
word-wrap: break-word; /* A very nice CSS3 property */
}
.node-by-viewer /* A node created by the current user */ {
}
.node-teaser /* A node displayed as teaser */ {
}
/* All nodes are given a node-type-FOO class that describes the type of
* content that it is. If you create a new content type called
* "my-custom-type", it will receive a "node-type-my-custom-type" class.
*/
.node-type-page /* Page content node */ {
}
.node-type-story /* Story content node */ {
}
.node h2.title /* Node title */ {
}
.marker /* "New" or "Updated" marker for content that is new or updated for the current user */ {
color: #c00;
}
.node .picture /* The picture of the node author */ {
}
.node.node-unpublished .picture,
.comment.comment-unpublished .picture {
position: relative; /* Otherwise floated pictures will appear below the "Unpublished" text. */
}
.node .meta /* Wrapper for submitted and terms data */ {
}
.node .submitted /* The "posted by" information */ {
}
.node .terms /* Node terms (taxonomy) */ {
}
.node .content /* Node's content wrapper */ {
}
.node ul.links /* Node links. See also the ul.links declaration in the pages.css. */ {
}
.preview .node /* Preview of the content before submitting new or updated content */ {
/* background-color: #ffffea; */ /* Drupal core uses a #ffffea background */
}

View file

@ -0,0 +1,38 @@
/**
* @file
* Page Background Styling
*
* The default layout method of Zen doesn't give themers equal-height columns.
* However, equal-height columns are difficult to achieve and totally
* unnecessary. Instead, use the Faux Columns method described in the following
* ALA article:
* http://www.alistapart.com/articles/fauxcolumns/
*/
body {
}
#page-wrapper {
}
#page {
}
#header {
}
#header .section {
}
#main-wrapper {
}
#main {
}
#footer {
}
#footer .section {
}

View file

@ -0,0 +1,19 @@
/**
* @file
* RTL companion for the pages.css file.
*/
/*
* Header
*/
#logo /* Wrapping link for logo */ {
float: right;
}
/*
* Content
*/
.more-link /* Aggregator, blog, and forum more link */ {
text-align: left;
}

View file

@ -0,0 +1,314 @@
/**
* @file
* Page Styling
*
* Style the markup found in page.tpl.php. Also includes some styling of
* miscellaneous Drupal elements that appear in the $content variable, such as
* ul.links, .pager, .more-link, etc.
*/
/*
* Body
*/
body {
margin: 0;
padding: 0;
}
#page-wrapper {
}
#page {
}
/*
* The skip navigation link will be completely hidden until a user tabs to the
* link. See http://www.webaim.org/techniques/skipnav/
*/
#skip-link a,
#skip-link a:visited {
position: absolute;
display: block;
left: 0;
top: -500px;
width: 1px;
height: 1px;
overflow: hidden;
text-align: center;
background-color: #666;
color: #fff;
}
#skip-link a:hover,
#skip-link a:active,
#skip-link a:focus {
position: static;
width: 100%;
height: auto;
padding: 2px 0 3px 0;
}
/*
* Header
*/
#header {
}
#header .section {
}
#logo /* Wrapping link for logo */ {
float: left; /* LTR */
margin: 0;
padding: 0;
}
#logo img {
vertical-align: bottom;
}
#name-and-slogan /* Wrapper for website name and slogan */ {
}
h1#site-name,
div#site-name /* The name of the website */ {
margin: 0;
font-size: 2em;
line-height: 1.3em;
}
#site-name a:link,
#site-name a:visited {
color: #000;
text-decoration: none;
}
#site-name a:hover,
#site-name a:focus {
text-decoration: underline;
}
#site-slogan /* The slogan (or tagline) of a website */ {
}
.region-header /* Wrapper for any blocks placed in the header region */ {
}
/*
* Main (container for everything else)
*/
#main-wrapper {
}
#main {
}
/*
* Content
*/
#content {
}
#content .section {
}
#mission /* The mission statement of the site (displayed on homepage) */ {
}
.region-content-top /* Wrapper for any blocks placed in the "content top" region */ {
}
.breadcrumb /* The path to the current page in the form of a list of links */ {
padding-bottom: 0; /* Undo system.css */
}
h1.title, /* The title of the page */
h2.title, /* Block title or the title of a piece of content when it is given in a list of content */
h3.title /* Comment title */ {
margin: 0;
}
tr.even /* Some tables have rows marked even or odd. */ {
/* background-color: #eee; */ /* Drupal core uses a #eee background */
}
tr.odd {
/* background-color: #eee; */ /* Drupal core uses a #eee background */
}
div.messages /* Important messages (status, warning, and error) for the user. See also the declarations in messages.css. */ {
}
div.status /* Normal priority messages */ {
}
div.warning,
tr.warning /* Medium priority messages */ {
/* border: 1px solid #f0c020; */ /* Drupal core uses: 1px solid #f0c020 */
}
div.error,
tr.error /* High priority messages. See also the .error declaration below. */ {
}
.error /* Errors that are separate from div.messages status messages. */ {
/* color: #e55; */ /* Drupal core uses a #e55 background */
}
.warning /* Warnings that are separate from div.messages status messages. */ {
/* color: #e09010; */ /* Drupal core uses a #e09010 background */
}
div.tabs /* See also the tabs.css file. */ {
}
.help /* Help text on a page */ {
margin: 1em 0;
}
.more-help-link /* Link to more help */ {
font-size: 0.85em;
text-align: right;
}
#content-area /* Wrapper for the actual page content */ {
}
ul.links /* List of links */ {
margin: 1em 0;
padding: 0;
}
ul.links.inline {
margin: 0;
display: inline;
}
ul.links li {
display: inline;
list-style-type: none;
padding: 0 0.5em;
}
.pager /* A list of page numbers when more than 1 page of content is available */ {
clear: both;
margin: 1em 0;
text-align: center;
}
.pager a,
.pager strong.pager-current /* Each page number in the pager list */ {
padding: 0.5em;
}
.feed-icons /* The links to the RSS or Atom feeds for the current list of content */ {
margin: 1em 0;
}
.more-link /* Aggregator, blog, and forum more link */ {
text-align: right; /* LTR */
}
.region-content-bottom /* Wrapper for any blocks placed in the "content bottom" region */ {
}
/*
* First sidebar (on left in LTR languages, on right in RTL)
*
* Remember to NOT add padding or margin to your .region-sidebar-first
* (see the layout.css file.)
*/
.region-sidebar-first {
}
.region-sidebar-first .section {
}
/*
* Second sidebar (on right in LTR languages, on left in RTL)
*
* Remember to NOT add padding or margin to your .region-sidebar-second
* (see the layout.css file.)
*/
.region-sidebar-second {
}
.region-sidebar-second .section {
}
/*
* Footer
*/
#footer {
}
#footer .section {
}
#footer-message /* Wrapper for the footer message from Drupal's "Site information"
and for any blocks placed in the footer region */ {
}
.region-footer {
}
/*
* Closure
*/
.region-page-closure /* Wrapper for any blocks placed in the closure region */ {
}
/*
* Drupal boxes
*
* Wrapper for Comment form, Comment viewing options, Menu admin, and
* Search results.
*/
.box /* Wrapper for box */ {
}
.box h2 /* Box title */ {
}
.box .content /* Box's content wrapper */ {
}
/*
* Markup free clearing (See: http://www.positioniseverything.net/easyclearing.html )
*/
.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
/**
* Hide elements from all users.
*
* Used for elements which should not be immediately displayed to any user. An
* example would be a collapsible fieldset that will be expanded with a click
* from a user. The effect of this class can be toggled with the jQuery show()
* and hide() functions.
*/
.element-hidden {
display: none;
}
/**
* Hide elements visually, but keep them available for screen-readers.
*
* Used for information required for screen-reader users to understand and use
* the site where visual display is undesirable. Information provided in this
* manner should be kept concise, to avoid unnecessary burden on the user. Must
* not be used for focusable elements (such as links and form elements) as this
* causes issues for keyboard only or voice recognition users. "!important" is
* used to prevent unintentional overrides.
*/
.element-invisible {
position: absolute !important;
clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
clip: rect(1px, 1px, 1px, 1px);
}

View file

@ -0,0 +1,6 @@
/**
* @file
* Panels Styling
*/

View file

@ -0,0 +1,73 @@
/**
* @file
* Print styling
*
* We provide some sane print styling for Drupal using Zen's layout method.
*/
/* underline all links */
a:link,
a:visited {
text-decoration: underline !important;
}
/* Don't underline header */
#site-name a:link,
#site-name a:visited {
text-decoration: none !important;
}
/* CSS2 selector to add visible href after links */
#content a:link:after,
#content a:visited:after {
content: " (" attr(href) ") ";
font-size: 0.8em;
font-weight: normal;
}
/* Un-float the content */
#content,
#content .section {
float: none;
width: 100%;
margin: 0 !important;
padding: 0 !important;
}
/* Turn off any background colors or images */
body,
#page-wrapper,
#page,
#main-wrapper,
#main,
#content,
#content .section {
color: #000;
background-color: transparent !important;
background-image: none !important;
}
/* Hide sidebars and nav elements */
#skip-link,
#navigation,
.region-sidebar-first,
.region-sidebar-second,
#footer,
.breadcrumb,
div.tabs,
.links,
.taxonomy,
.book-navigation,
.forum-topic-navigation,
.pager,
.feed-icons {
visibility: hidden;
display: none;
}
/* If you un-comment the "page { overflow-y: hidden; }" ruleset, Firefox clips
the content after the first page. */
#page-wrapper {
overflow-y: visible;
}

View file

@ -0,0 +1,22 @@
/**
* @file
* RTL companion for the tabs.css file.
*/
ul.primary {
padding: 0 10px 0 0;
}
ul.primary li {
float: right;
}
ul.secondary {
padding: 0 5px 0 0;
}
ul.secondary li {
float: right;
border-left: none;
}

View file

@ -0,0 +1,128 @@
/**
* @file
* Tabs Styling
*
* Adds styles for the primary and secondary tabs.
*
* Compare this with default CSS found in the system module's stylesheet (a copy
* of which is in drupal6-reference.css, line 510.)
*/
div.tabs {
margin: 0 0 5px 0;
}
ul.primary {
margin: 0;
padding: 0 0 0 10px; /* LTR */
border-width: 0;
list-style: none;
white-space: nowrap;
line-height: normal;
background: url(../images/tab-bar.png) repeat-x left bottom;
}
ul.primary li {
float: left; /* LTR */
margin: 0;
padding: 0;
}
ul.primary li a {
display: block;
height: 24px;
margin: 0;
padding: 0 0 0 5px; /* width of tab-left.png */
border-width: 0;
font-weight: bold;
text-decoration: none;
color: #777;
background-color: transparent;
background: url(../images/tab-left.png) no-repeat left -38px;
}
ul.primary li a .tab {
display: block;
height: 20px; /* 24px (parent) - 4px (padding) */
margin: 0;
padding: 4px 13px 0 6px;
border-width: 0;
line-height: 20px;
background: url(../images/tab-right.png) no-repeat right -38px;
}
ul.primary li a:hover,
ul.primary li a:focus {
border-width: 0;
background-color: transparent;
background: url(../images/tab-left.png) no-repeat left -76px;
}
ul.primary li a:hover .tab,
ul.primary li a:focus .tab {
background: url(../images/tab-right.png) no-repeat right -76px;
}
ul.primary li.active a,
ul.primary li.active a:hover,
ul.primary li.active a:focus {
border-width: 0;
color: #000;
background-color: transparent;
background: url(../images/tab-left.png) no-repeat left 0;
}
ul.primary li.active a .tab,
ul.primary li.active a:hover .tab,
ul.primary li.active a:focus .tab {
background: url(../images/tab-right.png) no-repeat right 0;
}
ul.secondary {
margin: 0;
padding: 0 0 0 5px; /* LTR */
border-bottom: 1px solid #c0c0c0;
list-style: none;
white-space: nowrap;
background: url(../images/tab-secondary-bg.png) repeat-x left bottom;
}
ul.secondary li {
float: left; /* LTR */
margin: 0 5px 0 0;
padding: 5px 0;
border-right: none; /* LTR */
}
ul.secondary a {
display: block;
height: 24px;
margin: 0;
padding: 0;
border: 1px solid #c0c0c0;
text-decoration: none;
color: #777;
background: url(../images/tab-secondary.png) repeat-x left -56px;
}
ul.secondary a .tab {
display: block;
height: 18px; /* 24px (parent) - 6px (padding) */
margin: 0;
padding: 3px 8px;
line-height: 18px;
}
ul.secondary a:hover,
ul.secondary a:focus {
background: url(../images/tab-secondary.png) repeat-x left bottom;
}
ul.secondary a.active,
ul.secondary a.active:hover,
ul.secondary a.active:focus {
border: 1px solid #c0c0c0;
color: #000;
background: url(../images/tab-secondary.png) repeat-x left top;
}

View file

@ -0,0 +1,6 @@
/**
* @file
* Views Styling
*/

View file

@ -0,0 +1,24 @@
/**
* @file
* Wireframes Styling
*
* Add wireframes to the basic layout elements.
*/
.with-wireframes #header .section,
.with-wireframes #content .section,
.with-wireframes #navigation .section,
.with-wireframes .region-sidebar-first .section,
.with-wireframes .region-sidebar-second .section,
.with-wireframes #footer .section {
margin: 1px;
padding: 2px;
border: 1px solid #ccc;
}
.with-wireframes .region-page-closure {
margin-top: 1px;
padding: 2px;
border: 1px solid #ccc;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 719 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 727 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 610 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 560 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 693 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 664 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 473 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 685 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 B

View file

@ -0,0 +1,14 @@
Your theme can add JavaScript files in two ways:
1. To add a JavaScript file to all pages on your website, edit your sub-theme's
.info file and add a line like this one:
scripts[] = js/my-jquery-script.js
2. To add a JavaScript file depending on a certain condition, you can add it
using some PHP code in a preprocess function:
drupal_add_js('js/my-jquery-script.js', 'theme');
For the full documentation of drupal_add_js(), see:
http://api.drupal.org/api/function/drupal_add_js

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,155 @@
<?php
/**
* @file
* Contains theme override functions and preprocess functions for the theme.
*
* ABOUT THE TEMPLATE.PHP FILE
*
* The template.php file is one of the most useful files when creating or
* modifying Drupal themes. You can add new regions for block content, modify
* or override Drupal's theme functions, intercept or make additional
* variables available to your theme, and create custom PHP logic. For more
* information, please visit the Theme Developer's Guide on Drupal.org:
* http://drupal.org/theme-guide
*
* OVERRIDING THEME FUNCTIONS
*
* The Drupal theme system uses special theme functions to generate HTML
* output automatically. Often we wish to customize this HTML output. To do
* this, we have to override the theme function. You have to first find the
* theme function that generates the output, and then "catch" it and modify it
* here. The easiest way to do it is to copy the original function in its
* entirety and paste it here, changing the prefix from theme_ to STARTERKIT_.
* For example:
*
* original: theme_breadcrumb()
* theme override: STARTERKIT_breadcrumb()
*
* where STARTERKIT is the name of your sub-theme. For example, the
* zen_classic theme would define a zen_classic_breadcrumb() function.
*
* If you would like to override any of the theme functions used in Zen core,
* you should first look at how Zen core implements those functions:
* theme_breadcrumbs() in zen/template.php
* theme_menu_item_link() in zen/template.php
* theme_menu_local_tasks() in zen/template.php
*
* For more information, please visit the Theme Developer's Guide on
* Drupal.org: http://drupal.org/node/173880
*
* CREATE OR MODIFY VARIABLES FOR YOUR THEME
*
* Each tpl.php template file has several variables which hold various pieces
* of content. You can modify those variables (or add new ones) before they
* are used in the template files by using preprocess functions.
*
* This makes THEME_preprocess_HOOK() functions the most powerful functions
* available to themers.
*
* It works by having one preprocess function for each template file or its
* derivatives (called template suggestions). For example:
* THEME_preprocess_page alters the variables for page.tpl.php
* THEME_preprocess_node alters the variables for node.tpl.php or
* for node-forum.tpl.php
* THEME_preprocess_comment alters the variables for comment.tpl.php
* THEME_preprocess_block alters the variables for block.tpl.php
*
* For more information on preprocess functions and template suggestions,
* please visit the Theme Developer's Guide on Drupal.org:
* http://drupal.org/node/223440
* and http://drupal.org/node/190815#template-suggestions
*/
/**
* Implementation of HOOK_theme().
*/
function STARTERKIT_theme(&$existing, $type, $theme, $path) {
$hooks = zen_theme($existing, $type, $theme, $path);
// Add your theme hooks like this:
/*
$hooks['hook_name_here'] = array( // Details go here );
*/
// @TODO: Needs detailed comments. Patches welcome!
return $hooks;
}
/**
* Override or insert variables into all templates.
*
* @param $vars
* An array of variables to pass to the theme template.
* @param $hook
* The name of the template being rendered (name of the .tpl.php file.)
*/
/* -- Delete this line if you want to use this function
function STARTERKIT_preprocess(&$vars, $hook) {
$vars['sample_variable'] = t('Lorem ipsum.');
}
// */
/**
* Override or insert variables into the page templates.
*
* @param $vars
* An array of variables to pass to the theme template.
* @param $hook
* The name of the template being rendered ("page" in this case.)
*/
/* -- Delete this line if you want to use this function
function STARTERKIT_preprocess_page(&$vars, $hook) {
$vars['sample_variable'] = t('Lorem ipsum.');
// To remove a class from $classes_array, use array_diff().
//$vars['classes_array'] = array_diff($vars['classes_array'], array('class-to-remove'));
}
// */
/**
* Override or insert variables into the node templates.
*
* @param $vars
* An array of variables to pass to the theme template.
* @param $hook
* The name of the template being rendered ("node" in this case.)
*/
/* -- Delete this line if you want to use this function
function STARTERKIT_preprocess_node(&$vars, $hook) {
$vars['sample_variable'] = t('Lorem ipsum.');
// Optionally, run node-type-specific preprocess functions, like
// STARTERKIT_preprocess_node_page() or STARTERKIT_preprocess_node_story().
$function = __FUNCTION__ . '_' . $vars['node']->type;
if (function_exists($function)) {
$function($vars, $hook);
}
}
// */
/**
* Override or insert variables into the comment templates.
*
* @param $vars
* An array of variables to pass to the theme template.
* @param $hook
* The name of the template being rendered ("comment" in this case.)
*/
/* -- Delete this line if you want to use this function
function STARTERKIT_preprocess_comment(&$vars, $hook) {
$vars['sample_variable'] = t('Lorem ipsum.');
}
// */
/**
* Override or insert variables into the block templates.
*
* @param $vars
* An array of variables to pass to the theme template.
* @param $hook
* The name of the template being rendered ("block" in this case.)
*/
/* -- Delete this line if you want to use this function
function STARTERKIT_preprocess_block(&$vars, $hook) {
$vars['sample_variable'] = t('Lorem ipsum.');
}
// */

View file

@ -0,0 +1,82 @@
TEMPLATES
---------
Drupal 6 contains the following template files which you can override and modify
by copying them to your sub-theme. The Zen theme overrides a handful of Drupal's
templates. In order to override those templates, you should copy them from the
zen/templates folder to your sub-theme's templates folder.
As always, when adding a new template file to your sub-theme, you will need to
rebuild the "theme registry" in order for Drupal to see it. For more info, see:
http://drupal.org/node/173880#theme-registry
Located in zen/templates:
page.tpl.php
maintenance-page.tpl.php
node.tpl.php
block.tpl.php
comment-wrapper.tpl.php
comment.tpl.php
views-view.tpl.php
Located in /modules/aggregator:
aggregator-feed-source.tpl.php
aggregator-item.tpl.php
aggregator-summary-item.tpl.php
aggregator-summary-items.tpl.php
aggregator-wrapper.tpl.php
Located in /modules/block:
block-admin-display-form.tpl.php
Located in /modules/book:
book-all-books-block.tpl.php
book-export-html.tpl.php
book-navigation.tpl.php
book-node-export-html.tpl.php
Located in /modules/comment:
comment-folded.tpl.php
comment-wrapper.tpl.php (overridden by Zen)
comment.tpl.php (overridden by Zen)
Located in /modules/forum:
forum-icon.tpl.php
forum-list.tpl.php
forum-submitted.tpl.php
forum-topic-list.tpl.php
forum-topic-navigation.tpl.php
forums.tpl.php
Located in /modules/node:
node.tpl.php (overridden by Zen)
Located in /modules/poll:
poll-bar-block.tpl.php
poll-bar.tpl.php
poll-results-block.tpl.php
poll-results.tpl.php
poll-vote.tpl.php
Located in /modules/profile:
profile-block.tpl.php
profile-listing.tpl.php
profile-wrapper.tpl.php
Located in /modules/search:
search-block-form.tpl.php
search-result.tpl.php
search-results.tpl.php
search-theme-form.tpl.php
Located in /modules/system:
block.tpl.php (overridden by Zen)
box.tpl.php
maintenance-page.tpl.php (overridden by Zen)
page.tpl.php (overridden by Zen)
Located in /modules/user:
user-picture.tpl.php
user-profile-category.tpl.php
user-profile-item.tpl.php
user-profile.tpl.php

View file

@ -0,0 +1,43 @@
<?php
// Include the definition of zen_settings() and zen_theme_get_default_settings().
include_once './' . drupal_get_path('theme', 'zen') . '/theme-settings.php';
/**
* Implementation of THEMEHOOK_settings() function.
*
* @param $saved_settings
* An array of saved settings for this theme.
* @return
* A form array.
*/
function STARTERKIT_settings($saved_settings) {
// Get the default values from the .info file.
$defaults = zen_theme_get_default_settings('STARTERKIT');
// Merge the saved variables and their default values.
$settings = array_merge($defaults, $saved_settings);
/*
* Create the form using Forms API: http://api.drupal.org/api/6
*/
$form = array();
/* -- Delete this line if you want to use this setting
$form['STARTERKIT_example'] = array(
'#type' => 'checkbox',
'#title' => t('Use this sample setting'),
'#default_value' => $settings['STARTERKIT_example'],
'#description' => t("This option doesn't do anything; it's just an example."),
);
// */
// Add the base theme's settings.
$form += zen_settings($saved_settings, $defaults);
// Remove some of the base theme's settings.
unset($form['themedev']['zen_layout']); // We don't need to select the base stylesheet.
// Return the form
return $form;
}

View file

@ -0,0 +1,5 @@
To build your own Panels layout follow the documentation provided by Panels:
http://drupal.org/node/495654
* Please note: These panels layouts will only show up if Zen is enabled. A
bugfix is in the works for this issue: http://drupal.org/node/657720

View file

@ -0,0 +1,41 @@
/**
* @file
* Page manager layout
*
* We are using percentages in the admin instead of fixed widths so that the
* admin can work nicely in different admin themes.
*/
#panels-dnd-main div.panels-display h2.label {
padding-left: 24px;
text-align: left;
}
#page-manager-edit .zen-one-sidebar-first .panel-content {
float: left; /* LTR */
width: 66%;
margin-left: 34%; /* LTR */
margin-right: -100%; /* LTR */ /* Negative value of #content's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #content-inner. */
}
#page-manager-edit .zen-one-sidebar-first .panel-content .inside {
margin-right: 0px;
}
#page-manager-edit .zen-one-sidebar-first .panel-header {
height: auto;
margin-bottom: 10px;
}
#page-manager-edit .zen-one-sidebar-first .panel-sidebar-first {
float: left; /* LTR */
width: 34%;
margin-left: 0px; /* LTR */ /* Width of #content. */
margin-right: -34%; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
}
#page-manager-edit .zen-one-sidebar-first .panel-sidebar-first .panel-sidebar-first-inner {
margin-right: 10px;
}

View file

@ -0,0 +1,36 @@
/**
* @file
* Zen panel layout
*
* This layout does include the standar Zen navbar, content and right sidebar
* layout. Markup has been reordered for Accessibility and SEO optimizations.
* The markup order is: content, sidebar but the display will show sidebar,
* content.
*/
.zen-one-sidebar-first {
/* overflow: hidden; */
position: relative;
margin-top: 0;
padding-top: 0;
}
.zen-one-sidebar-first .panel-content {
float: left; /* LTR */
width: 640px;
margin-left: 320px; /* LTR */
margin-right: -960px; /* LTR */ /* Negative value of #content's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #content-inner. */
}
.zen-one-sidebar-first .panel-sidebar-first {
float: left; /* LTR */
width: 320px;
margin-left: 0px; /* LTR */ /* Width of #content. */
margin-right: -320px; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
}
.zen-one-sidebar-first .panel-sidebar-first .panel-sidebar-first-inner {
margin-right: 20px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 813 B

View file

@ -0,0 +1,20 @@
<?php
/**
* Implements hook_panels_layouts().
*/
function zen_one_sidebar_first_panels_layouts() {
$items['one_sidebar_first'] = array(
'title' => t('Zen Layout: one sidebar before content'),
'icon' => 'one-sidebar-first.png',
'theme' => 'zen_one_sidebar_first',
'admin theme' => 'zen_one_sidebar_first_admin',
'css' => 'one-sidebar-first.css',
'admin css' => 'one-sidebar-first-admin.css',
'panels' => array(
'content' => t('Content'),
'sidebar_first' => t('First sidebar'),
),
);
return $items;
}

View file

@ -0,0 +1,28 @@
<?php
/**
* @file
* Template for a 1 row, 2 column Zen-based panel layout.
*
* This template provides a two column panel display layout, with
* additional areas for the top and the bottom.
*
* Variables:
* - $css_id: An optional CSS id to use for the layout.
* - $content: An array of content, each item in the array is keyed to one
* panel of the layout. This layout supports the following sections:
* - $content['content']: Content in the main column.
* - $content['sidebar_first']: Content in the first column.
*/
?>
<div class="panel-display zen-one-sidebar-first clear-block" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
<div class="panel-content"><div class="panel-content-inner inside panel-panel">
<?php print $content['content']; ?>
</div></div> <!-- /.panel-content-inner, /.panel-content -->
<div class="panel-sidebar-first"><div class="panel-sidebar-first-inner inside panel-panel">
<?php print $content['sidebar_first']; ?>
</div></div> <!-- /.panel-sidebar-first-inner, /.panel-sidebar-first -->
</div> <!-- /.panel-zencontentfirst-inner, /.panel-zencontentfirst -->

View file

@ -0,0 +1,28 @@
<?php
/**
* @file
* Template for a 1 row, 2 column Zen-based panel layout.
*
* This template provides a two column panel display layout, with
* additional areas for the top and the bottom.
*
* Variables:
* - $css_id: An optional CSS id to use for the layout.
* - $content: An array of content, each item in the array is keyed to one
* panel of the layout. This layout supports the following sections:
* - $content['content']: Content in the main column.
* - $content['sidebar_first']: Content in the first column.
*/
?>
<div class="panel-display zen-one-sidebar-first clearfix" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
<div class="panel-content"><div class="panel-content-inner inside panel-panel">
<?php print $content['content']; ?>
</div></div> <!-- /.panel-content-inner, /.panel-content -->
<div class="panel-sidebar-first"><div class="panel-sidebar-first-inner inside panel-panel">
<?php print $content['sidebar_first']; ?>
</div></div> <!-- /.panel-sidebar-first-inner, /.panel-sidebar-first -->
</div> <!-- /.zen-one-sidebar-first -->

View file

@ -0,0 +1,42 @@
/**
* @file
* Page manager layout
*
* We are using percentages in the admin instead of fixed widths so that the
* admin can work nicely in different admin themes.
*/
#page-manager-edit .zen-one-sidebar-second .panel-header {
height: auto;
margin-bottom: 10px;
}
#page-manager-edit .zen-one-sidebar-second .panel-content {
float: left; /* LTR */
width: 66%;
margin-left: 0; /* LTR */
margin-right: -66%; /* LTR */ /* Negative value of #content's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #content-inner. */
margin-top: 0px;
}
#page-manager-edit .zen-one-sidebar-second .panel-content .inside {
margin-right: 10px;
}
#page-manager-edit .zen-one-sidebar-second .with-panel-header .panel-content,
#page-manager-edit .zen-one-sidebar-second .with-panel-header .panel-sidebar-first {
margin-top: 0; /* Set this to the same value as the navbar height above. */
}
#page-manager-edit .zen-one-sidebar-second .panel-sidebar-first {
float: left; /* LTR */
width: 34%;
margin-left: 66%; /* LTR */ /* Width of #content. */
margin-right: -100%; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
}
.zen-one-sidebar-second .panel-sidebar-first .panel-sidebar-first-inner {
margin: 0 0 0 0;
}

View file

@ -0,0 +1,50 @@
/**
* @file
* Zen panel layout
*
* This layout does include the standar Zen navbar, content and right sidebar
* layout. Markup has been reordered for Accessibility and SEO optimizations.
*/
.zen-one-sidebar-second {
/* overflow: hidden; */
position: relative;
margin-top: 0;
padding-top: 0;
}
.zen-one-sidebar-second .panel-navbar {
width: 100%;
float: left; /* LTR */
margin-left: 0; /* LTR */
margin-right: -100%; /* LTR */ /* Negative value of #navbar's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to .region-navbar. */
height: 8.3em; /* The navbar can have any arbritrary height. We picked one
that is the line-height plus 1em: 1.3 + 1 = 2.3
Set this to the same value as the margin-top below. */
}
.zen-one-sidebar-second .with-panel-header .panel-content,
.zen-one-sidebar-second .with-panel-header .panel-sidebar-first {
margin-top: 8.3em; /* Set this to the same value as the navbar height above. */
}
.zen-one-sidebar-second .panel-content {
float: left; /* LTR */
width: 640px;
margin-left: 0; /* LTR */
margin-right: -640px; /* LTR */ /* Negative value of #content's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #content-inner. */
}
.zen-one-sidebar-second .panel-sidebar-first {
float: left; /* LTR */
width: 320px;
margin-left: 640px; /* LTR */ /* Width of #content. */
margin-right: -960px; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
}
.zen-one-sidebar-second .panel-sidebar-first .panel-sidebar-first-inner {
margin-left: 20px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 812 B

View file

@ -0,0 +1,20 @@
<?php
/**
* Implements hook_panels_layouts().
*/
function zen_one_sidebar_second_panels_layouts() {
$items['one_sidebar_second'] = array(
'title' => t('Zen Layout: one sidebar after content'),
'icon' => 'one-sidebar-second.png',
'theme' => 'zen_one_sidebar_second',
'admin theme' => 'zen_one_sidebar_second_admin',
'css' => 'one-sidebar-second.css',
'admin css' => 'one-sidebar-second-admin.css',
'panels' => array(
'content' => t('Content'),
'sidebar_first' => t('First sidebar'),
),
);
return $items;
}

View file

@ -0,0 +1,28 @@
<?php
/**
* @file
* Template for a 1 row, 2 column Zen-based panel layout.
*
* This template provides a two column panel display layout, with
* additional areas for the top and the bottom.
*
* Variables:
* - $css_id: An optional CSS id to use for the layout.
* - $content: An array of content, each item in the array is keyed to one
* panel of the layout. This layout supports the following sections:
* - $content['content']: Content in the main column.
* - $content['sidebar_first']: Content in the first column.
*/
?>
<div class="panel-display zen-one-sidebar-second clear-block" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
<div class="panel-content"><div class="panel-content-inner inside panel-panel">
<?php print $content['content']; ?>
</div></div> <!-- /.panel-content-inner, /.panel-content -->
<div class="panel-sidebar-first"><div class="panel-sidebar-first-inner inside panel-panel">
<?php print $content['sidebar_first']; ?>
</div></div> <!-- /.panel-sidebar-first-inner, /.panel-sidebar-first -->
</div> <!-- /.zen-one-sidebar-second -->

View file

@ -0,0 +1,28 @@
<?php
/**
* @file
* Template for a 1 row, 2 column Zen-based panel layout.
*
* This template provides a two column panel display layout, with
* additional areas for the top and the bottom.
*
* Variables:
* - $css_id: An optional CSS id to use for the layout.
* - $content: An array of content, each item in the array is keyed to one
* panel of the layout. This layout supports the following sections:
* - $content['content']: Content in the main column.
* - $content['sidebar_first']: Content in the first column.
*/
?>
<div class="panel-display zen-one-sidebar-second clearfix" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
<div class="panel-content"><div class="panel-content-inner inside panel-panel">
<?php print $content['content']; ?>
</div></div> <!-- /.panel-content-inner, /.panel-content -->
<div class="panel-sidebar-first"><div class="panel-sidebar-first-inner inside panel-panel">
<?php print $content['sidebar_first']; ?>
</div></div> <!-- /.panel-sidebar-first-inner, /.panel-sidebar-first -->
</div> <!-- /.zen-one-sidebar-second -->

View file

@ -0,0 +1,53 @@
/**
* @file
* Page manager layout
*
* We are using percentages in the admin instead of fixed widths so that the
* admin can work nicely in different admin themes.
*/
#panels-dnd-main div.panels-display h2.label {
padding-left: 24px;
text-align: left;
}
#page-manager-edit .zen-two-sidebars .panel-content .inside {
margin-right: 10px;
}
#page-manager-edit .zen-two-sidebars .panel-content {
float: left; /* LTR */
width: 50%;
margin-left: 25%; /* LTR */
margin-right: -75%; /* LTR */ /* Negative value of #content's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #content-inner. */
}
#page-manager-edit .zen-two-sidebars .panel-header {
height: auto;
margin-bottom: 10px;
}
#page-manager-edit .zen-two-sidebars .panel-sidebar-first {
float: left; /* LTR */
width: 25%;
margin-left: 0px; /* LTR */ /* Width of #content. */
margin-right: -25%; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
}
#page-manager-edit .zen-two-sidebars .panel-sidebar-first-inner {
margin-right: 10px;
}
#page-manager-edit .zen-two-sidebars .panel-sidebar-second {
float: left; /* LTR */
width: 25%;
margin-left: 75%; /* LTR */ /* Width of #content. */
margin-right: -100%; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
}
#page-manager-edit .zen-two-sidebars .panel-sidebar-second-inner {
margin-left: 0px;
}

View file

@ -0,0 +1,51 @@
/**
* @file
* Zen panel layout
*
* This layout does include the standar Zen navbar, content and right sidebar
* layout. Markup has been reordered for Accessibility and SEO optimizations.
* The markup order is: content, sidebar, sidebar but the display will show
* sidebar, content, sidebar.
*/
.zen-two-sidebars {
/* overflow: hidden; */
position: relative;
margin-top: 0;
padding-top: 0;
}
.zen-two-sidebars .panel-sidebar-first {
}
.zen-two-sidebars .panel-content {
float: left; /* LTR */
width: 460px;
margin-left: 250px; /* LTR */
margin-right: -960px; /* LTR */ /* Negative value of #content's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #content-inner. */
}
.zen-two-sidebars .panel-sidebar-first {
float: left; /* LTR */
width: 250px;
margin-left: 0px; /* LTR */ /* Width of #content. */
margin-right: -250px; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
}
.zen-two-sidebars .panel-sidebar-first .panel-sidebar-first-inner {
margin-right: 20px;
}
.zen-two-sidebars .panel-sidebar-second {
float: left; /* LTR */
width: 250px;
margin-left: 710px; /* LTR */ /* Width of #content. */
margin-right: -960px; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
}
.zen-two-sidebars .panel-sidebar-second .panel-sidebar-second-inner {
margin-left: 20px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 817 B

View file

@ -0,0 +1,21 @@
<?php
/**
* Implements hook_panels_layouts().
*/
function zen_two_sidebars_panels_layouts() {
$items['two_sidebars'] = array(
'title' => t('Zen Layout: two sidebars with content'),
'icon' => 'two-sidebars.png',
'theme' => 'zen_two_sidebars',
'admin theme' => 'zen_two_sidebars_admin',
'css' => 'two-sidebars.css',
'admin css' => 'two-sidebars-admin.css',
'panels' => array(
'content' => t('Content'),
'sidebar_first' => t('First sidebar'),
'sidebar_second' => t('Second sidebar'),
),
);
return $items;
}

View file

@ -0,0 +1,33 @@
<?php
/**
* @file
* Template for a 1 row, 2 column Zen-based panel layout.
*
* This template provides a two column panel display layout, with
* additional areas for the top and the bottom.
*
* Variables:
* - $css_id: An optional CSS id to use for the layout.
* - $content: An array of content, each item in the array is keyed to one
* panel of the layout. This layout supports the following sections:
* - $content['content']: Content in the main column.
* - $content['sidebar_first']: Content in the first column.
* - $content['sidebar_second']: Content in the second column.
*/
?>
<div class="panel-display zen-two-sidebars clear-block"<?php if (!empty($css_id)) { print ' id="' . $css_id . '"'; } ?>>
<div class="panel-content"><div class="panel-content-inner inside panel-panel">
<?php print $content['content']; ?>
</div></div> <!-- /.panel-content-inner, /.panel-content -->
<div class="panel-sidebar-first"><div class="panel-sidebar-first-inner inside panel-panel">
<?php print $content['sidebar_first']; ?>
</div></div> <!-- /.panel-sidebar-first-inner, /.panel-sidebar-first -->
<div class="panel-sidebar-second"><div class="panel-sidebar-second-inner inside panel-panel">
<?php print $content['sidebar_second']; ?>
</div></div> <!-- /.panel-sidebar-second-inner, /.panel-sidebar-second -->
</div> <!-- /.zen-two-sidebars -->

View file

@ -0,0 +1,33 @@
<?php
/**
* @file
* Template for a 1 row, 2 column Zen-based panel layout.
*
* This template provides a two column panel display layout, with
* additional areas for the top and the bottom.
*
* Variables:
* - $css_id: An optional CSS id to use for the layout.
* - $content: An array of content, each item in the array is keyed to one
* panel of the layout. This layout supports the following sections:
* - $content['content']: Content in the main column.
* - $content['sidebar_first']: Content in the first column.
* - $content['sidebar_second']: Content in the second column.
*/
?>
<div class="panel-display zen-two-sidebars clearfix"<?php if (!empty($css_id)) { print ' id="' . $css_id . '"'; } ?>>
<div class="panel-content"><div class="panel-content-inner inside panel-panel">
<?php print $content['content']; ?>
</div></div> <!-- /.panel-content-inner, /.panel-content -->
<div class="panel-sidebar-first"><div class="panel-sidebar-first-inner inside panel-panel">
<?php print $content['sidebar_first']; ?>
</div></div> <!-- /.panel-sidebar-first-inner, /.panel-sidebar-first -->
<div class="panel-sidebar-second"><div class="panel-sidebar-second-inner inside panel-panel">
<?php print $content['sidebar_second']; ?>
</div></div> <!-- /.panel-sidebar-second-inner, /.panel-sidebar-second -->
</div> <!-- /.zen-two-sidebars -->

View file

@ -0,0 +1,53 @@
/**
* @file
* Page manager layout
*
* Because we're using fixed widths and not percentages, we need to adjust the
* panel page editing layout to fit reasonably on screen. We're assuming a
* 960px page width, leaving the main panel manager content well at 769px.
*/
#panels-dnd-main div.panels-display h2.label {
padding-left: 24px;
text-align: left;
}
#page-manager-edit .zen-two-sidebars-first .panel-content .inside {
margin-right: 0px;
}
#page-manager-edit .zen-two-sidebars-first .panel-content {
float: left; /* LTR */
width: 50%;
margin-left: 50%; /* LTR */
margin-right: -100%; /* LTR */ /* Negative value of #content's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #content-inner. */
}
#page-manager-edit .zen-two-sidebars-first .panel-header {
height: auto;
margin-bottom: 10px;
}
#page-manager-edit .zen-two-sidebars-first .panel-sidebar-first {
float: left; /* LTR */
width: 25%;
margin-left: 0px; /* LTR */ /* Width of #content. */
margin-right: -25%; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
}
#page-manager-edit .zen-two-sidebars-first .panel-sidebar-first-inner {
margin-right: 10px;
}
#page-manager-edit .zen-two-sidebars-first .panel-sidebar-second {
float: left; /* LTR */
width: 25%;
margin-left: 25%; /* LTR */ /* Width of #content. */
margin-right: -50%; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
}
#page-manager-edit .zen-two-sidebars-first .panel-sidebar-second-inner {
margin-right: 10px;
}

View file

@ -0,0 +1,51 @@
/**
* @file
* Zen panel layout
*
* This layout does include the standar Zen navbar, content and right sidebar
* layout. Markup has been reordered for Accessibility and SEO optimizations.
* The markup order is: content, sidebar, sidebar but the display will show
* sidebar, sidebar, content.
*/
.zen-two-sidebars-first {
/* overflow: hidden; */
position: relative;
margin-top: 0;
padding-top: 0;
}
.zen-two-sidebars-first .panel-sidebar-first {
}
.zen-two-sidebars-first .panel-content {
float: left; /* LTR */
width: 460px;
margin-left: 500px; /* LTR */
margin-right: -960px; /* LTR */ /* Negative value of #content's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #content-inner. */
}
.zen-two-sidebars-first .panel-sidebar-first {
float: left; /* LTR */
width: 250px;
margin-left: 0px; /* LTR */ /* Width of #content. */
margin-right: -250px; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
}
.zen-two-sidebars-first .panel-sidebar-first .panel-sidebar-first-inner {
margin-right: 20px;
}
.zen-two-sidebars-first .panel-sidebar-second {
float: left; /* LTR */
width: 250px;
margin-left: 250px; /* LTR */ /* Width of #content. */
margin-right: -500px; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
}
.zen-two-sidebars-first .panel-sidebar-second .panel-sidebar-second-inner {
margin-right: 20px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 812 B

View file

@ -0,0 +1,21 @@
<?php
/**
* Implements hook_panels_layouts().
*/
function zen_two_sidebars_first_panels_layouts() {
$items['two_sidebars_first'] = array(
'title' => t('Zen Layout: two sidebars before content'),
'icon' => 'two-sidebars-first.png',
'theme' => 'zen_two_sidebars_first',
'admin theme' => 'zen_two_sidebars_first_admin',
'css' => 'two-sidebars-first.css',
'admin css' => 'two-sidebars-first-admin.css',
'panels' => array(
'content' => t('Content'),
'sidebar_first' => t('First sidebar'),
'sidebar_second' => t('Second sidebar'),
),
);
return $items;
}

View file

@ -0,0 +1,33 @@
<?php
/**
* @file
* Template for a 1 row, 2 column Zen-based panel layout.
*
* This template provides a two column panel display layout, with
* additional areas for the top and the bottom.
*
* Variables:
* - $css_id: An optional CSS id to use for the layout.
* - $content: An array of content, each item in the array is keyed to one
* panel of the layout. This layout supports the following sections:
* - $content['content']: Content in the main column.
* - $content['sidebar_first']: Content in the first column.
* - $content['sidebar_second']: Content in the second column.
*/
?>
<div class="panel-display zen-two-sidebars-first clear-block" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
<div class="panel-content"><div class="panel-content-inner inside panel-panel">
<?php print $content['content']; ?>
</div></div> <!-- /.panel-content-inner, /.panel-content -->
<div class="panel-sidebar-first"><div class="panel-sidebar-first-inner inside panel-panel">
<?php print $content['sidebar_first']; ?>
</div></div> <!-- /.panel-sidebar-first-inner, /.panel-sidebar-first -->
<div class="panel-sidebar-second"><div class="panel-sidebar-second-inner inside panel-panel">
<?php print $content['sidebar_second']; ?>
</div></div> <!-- /.panel-sidebar-second-inner, /.panel-sidebar-second -->
</div> <!-- /.zen-two-sidebars-first -->

View file

@ -0,0 +1,33 @@
<?php
/**
* @file
* Template for a 1 row, 2 column Zen-based panel layout.
*
* This template provides a two column panel display layout, with
* additional areas for the top and the bottom.
*
* Variables:
* - $css_id: An optional CSS id to use for the layout.
* - $content: An array of content, each item in the array is keyed to one
* panel of the layout. This layout supports the following sections:
* - $content['content']: Content in the main column.
* - $content['sidebar_first']: Content in the first column.
* - $content['sidebar_second']: Content in the second column.
*/
?>
<div class="panel-display zen-two-sidebars-first clearfix" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
<div class="panel-content"><div class="panel-content-inner inside panel-panel">
<?php print $content['content']; ?>
</div></div> <!-- /.panel-content-inner, /.panel-content -->
<div class="panel-sidebar-first"><div class="panel-sidebar-first-inner inside panel-panel">
<?php print $content['sidebar_first']; ?>
</div></div> <!-- /.panel-sidebar-first-inner, /.panel-sidebar-first -->
<div class="panel-sidebar-second"><div class="panel-sidebar-second-inner inside panel-panel">
<?php print $content['sidebar_second']; ?>
</div></div> <!-- /.panel-sidebar-second-inner, /.panel-sidebar-second -->
</div> <!-- /.zen-two-sidebars-first -->

View file

@ -0,0 +1,55 @@
/**
* @file
* Page manager layout
*
* We are using percentages in the admin instead of fixed widths so that the
* admin can work nicely in different admin themes.
*/
.zen-two-sidebars-second .admin-row {
float: left;
width: 100%;
}
#panels-dnd-main div.panels-display h2.label {
padding-left: 24px;
padding-right: 0px;
text-align: left;
}
#page-manager-edit .zen-two-sidebars-second .panel-content {
float: left; /* LTR */
width: 51%;
margin-left: 0; /* LTR */
margin-right: -51%; /* LTR */ /* Negative value of #content's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #content-inner. */
}
#page-manager-edit .zen-two-sidebars-second .panel-header {
height: auto;
margin-bottom: 10px;
}
#page-manager-edit .zen-two-sidebars-second .panel-sidebar-first {
float: left; /* LTR */
width: 24%;
margin-left: 51%; /* LTR */ /* Width of #content. */
margin-right: -75%; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
}
#page-manager-edit .zen-two-sidebars-second .panel-sidebar-first-inner {
margin-left: 5px;
}
#page-manager-edit .zen-two-sidebars-second .panel-sidebar-second {
float: left; /* LTR */
width: 24%;
margin-left: 75%; /* LTR */ /* Width of #content. */
margin-right: -99%; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
}
#page-manager-edit .zen-two-sidebars-second .panel-sidebar-second-inner {
margin-left: 5px;
}

View file

@ -0,0 +1,62 @@
/**
* @file
* Zen panel layout
*
* This layout does include the standar Zen navbar, content and right sidebar
* layout. Markup has been reordered for Accessibility and SEO optimizations.
*/
.zen-two-sidebars-second {
/* overflow: hidden; */
position: relative;
margin-top: 0;
padding-top: 0;
}
.zen-two-sidebars-second .panel-content {
float: left; /* LTR */
width: 460px;
margin-left: 0; /* LTR */
margin-right: -460px; /* LTR */ /* Negative value of #content's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #content-inner. */
}
.zen-two-sidebars-second .panel-header {
float: left; /* LTR */
width: 100%;
margin-left: 0; /* LTR */
margin-right: -100%; /* LTR */ /* Negative value of #navigation's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #navigation .section. */
height: 3.3em; /* The navigation can have any arbritrary height. We picked one
that is the line-height plus 1em: 1.3 + 1 = 2.3
Set this to the same value as the margin-top below. */
}
.zen-two-sidebars-second .with-panel-header .panel-content,
.zen-two-sidebars-second .with-panel-header .panel-sidebar-first,
.zen-two-sidebars-second .with-panel-header .panel-sidebar-second {
margin-top: 3.3em; /* Set this to the same value as the navigation height above. */
}
.zen-two-sidebars-second .panel-sidebar-first {
float: left; /* LTR */
width: 250px;
margin-left: 460px; /* LTR */ /* Width of #content. */
margin-right: -710px; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
}
.zen-two-sidebars-second .panel-sidebar-first .panel-sidebar-first-inner {
margin-left: 20px;
}
.zen-two-sidebars-second .panel-sidebar-second {
float: left; /* LTR */
width: 250px;
margin-left: 710px; /* LTR */ /* Width of #content. */
margin-right: -960px; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
}
.zen-two-sidebars-second .panel-sidebar-second .panel-sidebar-second-inner {
margin-left: 20px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 814 B

View file

@ -0,0 +1,21 @@
<?php
/**
* Implements hook_panels_layouts().
*/
function zen_two_sidebars_second_panels_layouts() {
$items['two_sidebars_second'] = array(
'title' => t('Zen Layout: two sidebars after content'),
'icon' => 'two-sidebars-second.png',
'theme' => 'zen_two_sidebars_second',
'admin theme' => 'zen_two_sidebars_second_admin',
'css' => 'two-sidebars-second.css',
'admin css' => 'two-sidebars-second-admin.css',
'panels' => array(
'content' => t('Content'),
'sidebar_first' => t('First sidebar'),
'sidebar_second' => t('Second sidebar'),
),
);
return $items;
}

View file

@ -0,0 +1,33 @@
<?php
/**
* @file
* Template for a 1 row, 2 column Zen-based panel layout.
*
* This template provides a two column panel display layout, with
* additional areas for the top and the bottom.
*
* Variables:
* - $css_id: An optional CSS id to use for the layout.
* - $content: An array of content, each item in the array is keyed to one
* panel of the layout. This layout supports the following sections:
* - $content['content']: Content in the main column.
* - $content['sidebar_first']: Content in the first column.
* - $content['sidebar_second']: Content in the second column.
*/
?>
<div class="panel-display zen-two-sidebars-second clear-block" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
<div class="panel-content"><div class="panel-content-inner inside panel-panel">
<?php print $content['content']; ?>
</div></div> <!-- /.panel-content-inner, /.panel-content -->
<div class="panel-sidebar-first"><div class="panel-sidebar-first-inner inside panel-panel">
<?php print $content['sidebar_first']; ?>
</div></div> <!-- /.panel-sidebar-first-inner, /.panel-sidebar-first -->
<div class="panel-sidebar-second"><div class="panel-sidebar-second-inner inside panel-panel">
<?php print $content['sidebar_second']; ?>
</div></div> <!-- /.panel-sidebar-second-inner, /.panel-sidebar-second -->
</div> <!-- /.zen-two-sidebars-second -->

View file

@ -0,0 +1,33 @@
<?php
/**
* @file
* Template for a 1 row, 2 column Zen-based panel layout.
*
* This template provides a two column panel display layout, with
* additional areas for the top and the bottom.
*
* Variables:
* - $css_id: An optional CSS id to use for the layout.
* - $content: An array of content, each item in the array is keyed to one
* panel of the layout. This layout supports the following sections:
* - $content['content']: Content in the main column.
* - $content['sidebar_first']: Content in the first column.
* - $content['sidebar_second']: Content in the second column.
*/
?>
<div class="panel-display zen-two-sidebars-second clearfix" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
<div class="panel-content"><div class="panel-content-inner inside panel-panel">
<?php print $content['content']; ?>
</div></div> <!-- /.panel-content-inner, /.panel-content -->
<div class="panel-sidebar-first"><div class="panel-sidebar-first-inner inside panel-panel">
<?php print $content['sidebar_first']; ?>
</div></div> <!-- /.panel-sidebar-first-inner, /.panel-sidebar-first -->
<div class="panel-sidebar-second"><div class="panel-sidebar-second-inner inside panel-panel">
<?php print $content['sidebar_second']; ?>
</div></div> <!-- /.panel-sidebar-second-inner, /.panel-sidebar-second -->
</div> <!-- /.zen-two-sidebars-second -->

BIN
themes/zen/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

668
themes/zen/template.php Normal file
View file

@ -0,0 +1,668 @@
<?php
/**
* @file
* Contains theme override functions and preprocess functions for the Zen theme.
*
* IMPORTANT WARNING: DO NOT MODIFY THIS FILE.
*
* The base Zen theme is designed to be easily extended by its sub-themes. You
* shouldn't modify this or any of the CSS or PHP files in the root zen/ folder.
* See the online documentation for more information:
* http://drupal.org/node/193318
*/
// Auto-rebuild the theme registry during theme development.
if (theme_get_setting('zen_rebuild_registry')) {
drupal_rebuild_theme_registry();
}
/**
* Implements HOOK_theme().
*/
function zen_theme(&$existing, $type, $theme, $path) {
// When #341140 is fixed, replace _zen_path() with drupal_get_path().
include_once './' . _zen_path() . '/zen-internals/template.theme-registry.inc';
return _zen_theme($existing, $type, $theme, $path);
}
/**
* Return a themed breadcrumb trail.
*
* @param $breadcrumb
* An array containing the breadcrumb links.
* @return
* A string containing the breadcrumb output.
*/
function zen_breadcrumb($breadcrumb) {
// Determine if we are to display the breadcrumb.
$show_breadcrumb = theme_get_setting('zen_breadcrumb');
if ($show_breadcrumb == 'yes' || $show_breadcrumb == 'admin' && arg(0) == 'admin') {
// Optionally get rid of the homepage link.
$show_breadcrumb_home = theme_get_setting('zen_breadcrumb_home');
if (!$show_breadcrumb_home) {
array_shift($breadcrumb);
}
// Return the breadcrumb with separators.
if (!empty($breadcrumb)) {
$breadcrumb_separator = theme_get_setting('zen_breadcrumb_separator');
$trailing_separator = $title = '';
if (theme_get_setting('zen_breadcrumb_title')) {
if ($title = drupal_get_title()) {
$trailing_separator = $breadcrumb_separator;
}
}
elseif (theme_get_setting('zen_breadcrumb_trailing')) {
$trailing_separator = $breadcrumb_separator;
}
return '<div class="breadcrumb">' . implode($breadcrumb_separator, $breadcrumb) . "$trailing_separator$title</div>";
}
}
// Otherwise, return an empty string.
return '';
}
/**
* Return a themed set of links.
*
* @param $links
* A keyed array of links to be themed.
* @param $attributes
* A keyed array of attributes
* @param $heading
* An optional keyed array or a string for a heading to precede the links.
* When using an array the following keys can be used:
* - text: the heading text
* - level: the heading level (e.g. 'h2', 'h3')
* - class: (optional) a string of the CSS classes for the heading
* When using a string it will be used as the text of the heading and the
* level will default to 'h2'.
* Headings should be used on navigation menus and any list of links that
* consistently appears on multiple pages. To make the heading invisible
* use the 'element-invisible' CSS class. Do not use 'display:none', which
* removes it from screen-readers and assistive technology. Headings allow
* screen-reader and keyboard only users to navigate to or skip the links.
* See http://juicystudio.com/article/screen-readers-display-none.php
* and http://www.w3.org/TR/WCAG-TECHS/H42.html for more information.
* @return
* A string containing an unordered list of links.
*/
function zen_links($links, $attributes = array('class' => 'links'), $heading = '') {
global $language;
$output = '';
if (count($links) > 0) {
// Treat the heading first if it is present to prepend it to the
// list of links.
if (!empty($heading)) {
if (is_string($heading)) {
// Prepare the array that will be used when the passed heading
// is a string.
$heading = array(
'text' => $heading,
// Set the default level of the heading.
'level' => 'h2',
);
}
$output .= '<' . $heading['level'];
if (!empty($heading['class'])) {
$output .= drupal_attributes(array('class' => $heading['class']));
}
$output .= '>' . check_plain($heading['text']) . '</' . $heading['level'] . '>';
}
$output .= '<ul'. drupal_attributes($attributes) .'>';
$num_links = count($links);
$i = 1;
foreach ($links as $key => $link) {
$class = $key;
// Add first, last and active classes to the list of links to help out themers.
if ($i == 1) {
$class .= ' first';
}
if ($i == $num_links) {
$class .= ' last';
}
if (isset($link['href']) && ($link['href'] == $_GET['q'] || ($link['href'] == '<front>' && drupal_is_front_page()))
&& (empty($link['language']) || $link['language']->language == $language->language)) {
$class .= ' active';
}
$output .= '<li'. drupal_attributes(array('class' => $class)) .'>';
if (isset($link['href'])) {
// Pass in $link as $options, they share the same keys.
$output .= l($link['title'], $link['href'], $link);
}
else if (!empty($link['title'])) {
// Some links are actually not links, but we wrap these in <span> for adding title and class attributes
if (empty($link['html'])) {
$link['title'] = check_plain($link['title']);
}
$span_attributes = '';
if (isset($link['attributes'])) {
$span_attributes = drupal_attributes($link['attributes']);
}
$output .= '<span'. $span_attributes .'>'. $link['title'] .'</span>';
}
$i++;
$output .= "</li>\n";
}
$output .= '</ul>';
}
return $output;
}
/**
* Implements theme_menu_item_link()
*/
function zen_menu_item_link($link) {
if (empty($link['localized_options'])) {
$link['localized_options'] = array();
}
// If an item is a LOCAL TASK, render it as a tab
if ($link['type'] & MENU_IS_LOCAL_TASK) {
$link['title'] = '<span class="tab">' . check_plain($link['title']) . '</span>';
$link['localized_options']['html'] = TRUE;
}
return l($link['title'], $link['href'], $link['localized_options']);
}
/**
* Duplicate of theme_menu_local_tasks() but adds clearfix to tabs.
*/
function zen_menu_local_tasks() {
$output = '';
// CTools requires a different set of local task functions.
if (module_exists('ctools')) {
ctools_include('menu');
$primary = ctools_menu_primary_local_tasks();
$secondary = ctools_menu_secondary_local_tasks();
}
else {
$primary = menu_primary_local_tasks();
$secondary = menu_secondary_local_tasks();
}
if ($primary) {
$output .= '<ul class="tabs primary clearfix">' . $primary . '</ul>';
}
if ($secondary) {
$output .= '<ul class="tabs secondary clearfix">' . $secondary . '</ul>';
}
return $output;
}
/**
* Return a set of blocks available for the current user.
*
* @param $region
* Which set of blocks to retrieve.
* @param $show_blocks
* A boolean to determine whether to render sidebar regions or not. Should be
* the same value as passed to theme_page.
* @return
* A string containing the themed blocks for this region.
*
* @see zen_show_blocks_discovery()
*/
function zen_blocks($region, $show_blocks = NULL) {
// Since Drupal 6 doesn't pass $show_blocks to theme_blocks, we manually call
// theme('blocks', NULL, $show_blocks) so that this function can remember the
// value on later calls.
static $render_sidebars = TRUE;
if (!is_null($show_blocks)) {
$render_sidebars = $show_blocks;
}
// If zen_blocks was called with a NULL region, its likely we were just
// setting the $render_sidebars static variable.
if ($region) {
$output = '';
// If $renders_sidebars is FALSE, don't render any region whose name begins
// with "sidebar_".
if ($render_sidebars || (strpos($region, 'sidebar_') !== 0)) {
// Allow context module to set blocks.
if (function_exists('context_blocks')) {
$output = context_blocks($region);
}
else {
foreach (block_list($region) as $key => $block) {
// $key == module_delta
$output .= theme('block', $block);
}
}
}
// Add any content assigned to this region through drupal_set_content() calls.
$output .= drupal_get_content($region);
$elements['#children'] = $output;
$elements['#region'] = $region;
// Set the theme hook suggestions.
$hook = array('region_' . $region);
if (strpos($region, 'sidebar_') === 0) {
$hook[] = 'region_sidebar';
}
$hook[] = 'region';
return $output ? theme($hook, $elements) : '';
}
}
/**
* Examine the $show_blocks variable before template_preprocess_page() is called.
*
* @param $vars
* An array of variables to pass to the page template.
*
* @see zen_blocks()
*/
function zen_show_blocks_discovery(&$vars) {
if ($vars['show_blocks'] == FALSE) {
// Allow zen_blocks() to statically cache the $show_blocks variable. A TRUE
// value is assumed, so we only need to override when $show_blocks is FALSE.
theme('blocks', NULL, FALSE);
}
}
/**
* Override or insert variables into templates before other preprocess functions have run.
*
* @param $vars
* An array of variables to pass to the theme template.
* @param $hook
* The name of the template being rendered.
*/
function zen_preprocess(&$vars, $hook) {
// In D6, the page.tpl uses a different variable name to hold the classes.
$key = ($hook == 'page' || $hook == 'maintenance_page') ? 'body_classes' : 'classes';
// Create a D7-standard classes_array variable.
if (array_key_exists($key, $vars)) {
// Views (and possibly other modules) have templates with a $classes
// variable that isn't a string, so we leave those variables alone.
if (is_string($vars[$key])) {
$vars['classes_array'] = explode(' ', $hook . ' ' . $vars[$key]);
unset($vars[$key]);
}
}
else {
$vars['classes_array'] = array($hook);
}
// Add support for Skinr
if (!empty($vars['skinr']) && array_key_exists('classes_array', $vars)) {
$vars['classes_array'][] = $vars['skinr'];
}
}
/**
* Override or insert variables into the page templates.
*
* @param $vars
* An array of variables to pass to the theme template.
* @param $hook
* The name of the template being rendered ("page" in this case.)
*/
function zen_preprocess_page(&$vars, $hook) {
// If the user is silly and enables Zen as the theme, add some styles.
if ($GLOBALS['theme'] == 'zen') {
include_once './' . _zen_path() . '/zen-internals/template.zen.inc';
_zen_preprocess_page($vars, $hook);
}
// Add conditional stylesheets.
elseif (!module_exists('conditional_styles')) {
$language = $GLOBALS['language']->direction == LANGUAGE_RTL ? '_rtl' : '';
$vars['conditional_styles'] = variable_get('conditional_styles_' . $GLOBALS['theme'] . $language, '');
$vars['styles'] .= $vars['conditional_styles'];
}
// Classes for body element. Allows advanced theming based on context
// (home page, node of certain type, etc.)
// Remove the mostly useless page-ARG0 class.
if ($index = array_search(preg_replace('![^abcdefghijklmnopqrstuvwxyz0-9-_]+!s', '', 'page-'. drupal_strtolower(arg(0))), $vars['classes_array'])) {
unset($vars['classes_array'][$index]);
}
if (!$vars['is_front']) {
// Add unique class for each page.
$path = drupal_get_path_alias($_GET['q']);
$vars['classes_array'][] = drupal_html_class('page-' . $path);
// Add unique class for each website section.
list($section, ) = explode('/', $path, 2);
if (arg(0) == 'node') {
if (arg(1) == 'add') {
$section = 'node-add';
}
elseif (is_numeric(arg(1)) && (arg(2) == 'edit' || arg(2) == 'delete')) {
$section = 'node-' . arg(2);
}
}
$vars['classes_array'][] = drupal_html_class('section-' . $section);
}
if (theme_get_setting('zen_wireframes')) {
$vars['classes_array'][] = 'with-wireframes'; // Optionally add the wireframes style.
}
// We need to re-do the $layout and body classes because
// template_preprocess_page() assumes sidebars are named 'left' and 'right'.
$vars['layout'] = 'none';
if (!empty($vars['sidebar_first'])) {
$vars['layout'] = 'first';
}
if (!empty($vars['sidebar_second'])) {
$vars['layout'] = ($vars['layout'] == 'first') ? 'both' : 'second';
}
// If the layout is 'none', then template_preprocess_page() will already have
// set a 'no-sidebars' class since it won't find a 'left' or 'right' sidebar.
if ($vars['layout'] != 'none') {
// Remove the incorrect 'no-sidebars' class.
if ($index = array_search('no-sidebars', $vars['classes_array'])) {
unset($vars['classes_array'][$index]);
}
// Set the proper layout body classes.
if ($vars['layout'] == 'both') {
$vars['classes_array'][] = 'two-sidebars';
}
else {
$vars['classes_array'][] = 'one-sidebar';
$vars['classes_array'][] = 'sidebar-' . $vars['layout'];
}
}
// Store the menu item since it has some useful information.
$vars['menu_item'] = menu_get_item();
switch ($vars['menu_item']['page_callback']) {
case 'views_page':
// Is this a Views page?
$vars['classes_array'][] = 'page-views';
break;
case 'page_manager_page_execute':
case 'page_manager_node_view':
case 'page_manager_contact_site':
// Is this a Panels page?
$vars['classes_array'][] = 'page-panels';
break;
}
}
/**
* Override or insert variables into the maintenance page template.
*
* @param $vars
* An array of variables to pass to the theme template.
* @param $hook
* The name of the template being rendered ("maintenance_page" in this case.)
*/
function zen_preprocess_maintenance_page(&$vars, $hook) {
// If Zen is the maintenance theme, add some styles.
if ($GLOBALS['theme'] == 'zen') {
include_once './' . _zen_path() . '/zen-internals/template.zen.inc';
_zen_preprocess_page($vars, $hook);
}
// Add conditional stylesheets.
elseif (!module_exists('conditional_styles')) {
$language = $GLOBALS['language']->direction == LANGUAGE_RTL ? '_rtl' : '';
$vars['conditional_styles'] = variable_get('conditional_styles_' . $GLOBALS['theme'] . $language, '');
$vars['styles'] .= $vars['conditional_styles'];
}
}
/**
* Override or insert variables into the node templates.
*
* @param $vars
* An array of variables to pass to the theme template.
* @param $hook
* The name of the template being rendered ("node" in this case.)
*/
function zen_preprocess_node(&$vars, $hook) {
// Create the build_mode variable.
switch ($vars['node']->build_mode) {
case NODE_BUILD_NORMAL:
if ($vars['node']->build_mode === NODE_BUILD_NORMAL) {
$vars['build_mode'] = $vars['teaser'] ? 'teaser' : 'full';
}
else {
$vars['build_mode'] = $vars['node']->build_mode;
}
break;
case NODE_BUILD_PREVIEW:
$vars['build_mode'] = 'preview';
break;
case NODE_BUILD_SEARCH_INDEX:
$vars['build_mode'] = 'search_index';
break;
case NODE_BUILD_SEARCH_RESULT:
$vars['build_mode'] = 'search_result';
break;
case NODE_BUILD_RSS:
$vars['build_mode'] = 'rss';
break;
case NODE_BUILD_PRINT:
$vars['build_mode'] = 'print';
break;
default:
$vars['build_mode'] = $vars['node']->build_mode;
}
// Create the user_picture variable.
$vars['user_picture'] = $vars['picture'];
// Create the Drupal 7 $display_submitted variable.
$vars['display_submitted'] = theme_get_setting('toggle_node_info_' . $vars['node']->type);
// Special classes for nodes.
// Class for node type: "node-type-page", "node-type-story", "node-type-my-custom-type", etc.
$vars['classes_array'][] = drupal_html_class('node-type-' . $vars['type']);
if ($vars['promote']) {
$vars['classes_array'][] = 'node-promoted';
}
if ($vars['sticky']) {
$vars['classes_array'][] = 'node-sticky';
}
if (!$vars['status']) {
$vars['classes_array'][] = 'node-unpublished';
$vars['unpublished'] = TRUE;
}
else {
$vars['unpublished'] = FALSE;
}
if ($vars['uid'] && $vars['uid'] == $GLOBALS['user']->uid) {
$vars['classes_array'][] = 'node-by-viewer'; // Node is authored by current user.
}
if ($vars['teaser']) {
$vars['classes_array'][] = 'node-teaser'; // Node is displayed as teaser.
}
if (isset($vars['preview'])) {
$vars['classes_array'][] = 'node-preview';
}
$vars['classes_array'][] = 'build-mode-' . $vars['build_mode'] ;
}
/**
* Override or insert variables into the comment templates.
*
* @param $vars
* An array of variables to pass to the theme template.
* @param $hook
* The name of the template being rendered ("comment" in this case.)
*/
function zen_preprocess_comment(&$vars, $hook) {
include_once './' . _zen_path() . '/zen-internals/template.comment.inc';
_zen_preprocess_comment($vars, $hook);
}
/**
* Preprocess variables for region.tpl.php
*
* Prepare the values passed to the theme_region function to be passed into a
* pluggable template engine.
*
* @see region.tpl.php
*/
function zen_preprocess_region(&$vars, $hook) {
// Create the $content variable that templates expect.
$vars['content'] = $vars['elements']['#children'];
$vars['region'] = $vars['elements']['#region'];
// Setup the default classes.
$vars['classes_array'] = array('region', 'region-' . str_replace('_', '-', $vars['region']));
// Sidebar regions get a couple extra classes.
if (strpos($vars['region'], 'sidebar_') === 0) {
$vars['classes_array'][] = 'column';
$vars['classes_array'][] = 'sidebar';
}
}
/**
* Override or insert variables into the block templates.
*
* @param $vars
* An array of variables to pass to the theme template.
* @param $hook
* The name of the template being rendered ("block" in this case.)
*/
function zen_preprocess_block(&$vars, $hook) {
$block = $vars['block'];
// Drupal 7 uses a $content variable instead of $block->content.
$vars['content'] = $block->content;
// Drupal 7 should use a $title variable instead of $block->subject.
$vars['title'] = $block->subject;
// Special classes for blocks.
$vars['classes_array'][] = 'block-' . $block->module;
// Classes describing the position of the block within the region.
if ($vars['block_id'] == 1) {
$vars['classes_array'][] = 'first';
}
if (!function_exists('context_blocks') && count(block_list($vars['block']->region)) == $vars['block_id']) {
$vars['classes_array'][] = 'last';
}
$vars['classes_array'][] = 'region-' . $vars['block_zebra'];
$vars['classes_array'][] = $vars['zebra'];
$vars['classes_array'][] = 'region-count-' . $vars['block_id'];
$vars['classes_array'][] = 'count-' . $vars['id'];
// Create the block ID.
$vars['block_html_id'] = 'block-' . $block->module . '-' . $block->delta;
$vars['edit_links_array'] = array();
if (theme_get_setting('zen_block_editing') && user_access('administer blocks')) {
include_once './' . _zen_path() . '/zen-internals/template.block-editing.inc';
zen_preprocess_block_editing($vars, $hook);
$vars['classes_array'][] = 'with-block-editing';
}
}
/**
* Override or insert variables into templates after preprocess functions have run.
*
* @param $vars
* An array of variables to pass to the theme template.
* @param $hook
* The name of the template being rendered.
*/
function zen_process(&$vars, $hook) {
// Don't clobber Views 3 classes.
if (array_key_exists('classes_array', $vars) && !array_key_exists('classes', $vars)) {
$vars['classes'] = implode(' ', $vars['classes_array']);
}
}
/**
* Override or insert variables into the block templates after preprocess functions have run.
*
* @param $vars
* An array of variables to pass to the theme template.
* @param $hook
* The name of the template being rendered ("block" in this case.)
*/
function zen_process_block(&$vars, $hook) {
$vars['edit_links'] = !empty($vars['edit_links_array']) ? '<div class="edit">' . implode(' ', $vars['edit_links_array']) . '</div>' : '';
}
if (!function_exists('drupal_html_class')) {
/**
* Prepare a string for use as a valid class name.
*
* Do not pass one string containing multiple classes as they will be
* incorrectly concatenated with dashes, i.e. "one two" will become "one-two".
*
* @param $class
* The class name to clean.
* @return
* The cleaned class name.
*/
function drupal_html_class($class) {
// By default, we filter using Drupal's coding standards.
$class = strtr(drupal_strtolower($class), array(' ' => '-', '_' => '-', '/' => '-', '[' => '-', ']' => ''));
// http://www.w3.org/TR/CSS21/syndata.html#characters shows the syntax for valid
// CSS identifiers (including element names, classes, and IDs in selectors.)
//
// Valid characters in a CSS identifier are:
// - the hyphen (U+002D)
// - a-z (U+0030 - U+0039)
// - A-Z (U+0041 - U+005A)
// - the underscore (U+005F)
// - 0-9 (U+0061 - U+007A)
// - ISO 10646 characters U+00A1 and higher
// We strip out any character not in the above list.
$class = preg_replace('/[^\x{002D}\x{0030}-\x{0039}\x{0041}-\x{005A}\x{005F}\x{0061}-\x{007A}\x{00A1}-\x{FFFF}]/u', '', $class);
return $class;
}
} /* End of drupal_html_class conditional definition. */
if (!function_exists('drupal_html_id')) {
/**
* Prepare a string for use as a valid HTML ID and guarantee uniqueness.
*
* @param $id
* The ID to clean.
* @return
* The cleaned ID.
*/
function drupal_html_id($id) {
$id = strtr(drupal_strtolower($id), array(' ' => '-', '_' => '-', '[' => '-', ']' => ''));
// As defined in http://www.w3.org/TR/html4/types.html#type-name, HTML IDs can
// only contain letters, digits ([0-9]), hyphens ("-"), underscores ("_"),
// colons (":"), and periods ("."). We strip out any character not in that
// list. Note that the CSS spec doesn't allow colons or periods in identifiers
// (http://www.w3.org/TR/CSS21/syndata.html#characters), so we strip those two
// characters as well.
$id = preg_replace('/[^A-Za-z0-9\-_]/', '', $id);
return $id;
}
} /* End of drupal_html_id conditional definition. */
/**
* Returns the path to the Zen theme.
*
* drupal_get_filename() is broken; see #341140. When that is fixed in Drupal 6,
* replace _zen_path() with drupal_get_path('theme', 'zen').
*/
function _zen_path() {
static $path = FALSE;
if (!$path) {
$matches = drupal_system_listing('zen\.info$', 'themes', 'name', 0);
if (!empty($matches['zen']->filename)) {
$path = dirname($matches['zen']->filename);
}
}
return $path;
}

View file

@ -0,0 +1,66 @@
<?php
/**
* @file
* Theme implementation to display a block.
*
* Available variables:
* - $title: Block title.
* - $content: Block content.
* - $block->module: Module that generated the block.
* - $block->delta: An ID for the block, unique within each module.
* - $block->region: The block region embedding the current block.
* - $edit_links: A list of contextual links for the block. It can be
* manipulated through the variable $edit_links_array from preprocess
* functions.
* - $classes: String of classes that can be used to style contextually through
* CSS. It can be manipulated through the variable $classes_array from
* preprocess functions. The default values can be one or more of the
* following:
* - block: The current template type, i.e., "theming hook".
* - block-[module]: The module generating the block. For example, the user
* module is responsible for handling the default user navigation block. In
* that case the class would be "block-user".
* - first: The first block in the region.
* - last: The last block in the region.
* - region-count-[x]: The position of the block in the list of blocks in the
* current region.
* - region-odd: An odd-numbered block of the list of blocks in the current
* region.
* - region-even: An even-numbered block of the list of blocks in the current
* region.
* - count-[x]: The position of the block in the list of blocks on the current
* page.
* - odd: An odd-numbered block of the list of blocks on the current page.
* - even: An even-numbered block of the list of blocks on the current page.
*
* Helper variables:
* - $classes_array: Array of html class attribute values. It is flattened
* into a string within the variable $classes.
* - $edit_links_array: An array of contextual links for the block.
* - $block_zebra: Outputs 'odd' and 'even' dependent on each block region.
* - $zebra: Same output as $block_zebra but independent of any block region.
* - $block_id: Counter dependent on each block region.
* - $id: Same output as $block_id but independent of any block region.
* - $is_front: Flags true when presented in the front page.
* - $logged_in: Flags true when the current user is a logged-in member.
* - $is_admin: Flags true when the current user is an administrator.
* - $block_html_id: A valid HTML ID and guaranteed unique.
*
* @see template_preprocess()
* @see zen_preprocess()
* @see template_preprocess_block()
* @see zen_preprocess_block()
* @see zen_process()
*/
?>
<div id="<?php print $block_html_id; ?>" class="<?php print $classes; ?>">
<?php if ($title): ?>
<h2 class="title"><?php print $title; ?></h2>
<?php endif; ?>
<div class="content">
<?php print $content; ?>
</div>
<?php print $edit_links; ?>
</div><!-- /.block -->

View file

@ -0,0 +1,45 @@
<?php
/**
* @file
* Default theme implementation to wrap comments.
*
* Available variables:
* - $content: All comments for a given page. Also contains sorting controls
* and comment forms if the site is configured for it.
* - $classes: String of classes that can be used to style contextually through
* CSS. It can be manipulated through the variable $classes_array from
* preprocess functions. The default value has the following:
* - comment-wrapper: The current template type, i.e., "theming hook".
*
* The following variables are provided for contextual information.
* - $node: Node object the comments are attached to.
* The constants below the variables show the possible values and should be
* used for comparison.
* - $display_mode
* - COMMENT_MODE_FLAT_COLLAPSED
* - COMMENT_MODE_FLAT_EXPANDED
* - COMMENT_MODE_THREADED_COLLAPSED
* - COMMENT_MODE_THREADED_EXPANDED
* - $display_order
* - COMMENT_ORDER_NEWEST_FIRST
* - COMMENT_ORDER_OLDEST_FIRST
* - $comment_controls_state
* - COMMENT_CONTROLS_ABOVE
* - COMMENT_CONTROLS_BELOW
* - COMMENT_CONTROLS_ABOVE_BELOW
* - COMMENT_CONTROLS_HIDDEN
*
* Other variables:
* - $classes_array: Array of html class attribute values. It is flattened
* into a string within the variable $classes.
*
* @see template_preprocess_comment_wrapper()
*/
?>
<div id="comments" class="<?php print $classes; ?>">
<?php if ($node->type != 'forum'): ?>
<h2 class="title"><?php print t('Comments'); ?></h2>
<?php endif; ?>
<?php print $content; ?>
</div>

View file

@ -0,0 +1,90 @@
<?php
/**
* @file
* Default theme implementation for comments.
*
* Available variables:
* - $author: Comment author. Can be link or plain text.
* - $content: Body of the comment.
* - $created: Formatted date and time for when the comment was created.
* Preprocess functions can reformat it by calling format_date() with the
* desired parameters on the $comment->timestamp variable.
* - $new: New comment marker.
* - $picture: Authors picture.
* - $signature: Authors signature.
* - $status: Comment status. Possible values are:
* comment-unpublished, comment-published or comment-preview.
* - $title: Linked title.
* - $links: Various operational links.
* - $unpublished: An unpublished comment visible only to administrators.
* - $classes: String of classes that can be used to style contextually through
* CSS. It can be manipulated through the variable $classes_array from
* preprocess functions. The default values can be one or more of the following:
* - comment: The current template type, i.e., "theming hook".
* - comment-by-anonymous: Comment by an unregistered user.
* - comment-by-node-author: Comment by the author of the parent node.
* - comment-preview: When previewing a new or edited comment.
* - first: The first comment in the list of displayed comments.
* - last: The last comment in the list of displayed comments.
* - odd: An odd-numbered comment in the list of displayed comments.
* - even: An even-numbered comment in the list of displayed comments.
* The following applies only to viewers who are registered users:
* - comment-by-viewer: Comment by the user currently viewing the page.
* - comment-unpublished: An unpublished comment visible only to administrators.
* - comment-new: New comment since the last visit.
*
* These two variables are provided for context:
* - $comment: Full comment object.
* - $node: Node object the comments are attached to.
*
* Other variables:
* - $classes_array: Array of html class attribute values. It is flattened
* into a string within the variable $classes.
*
* The following variables are deprecated and will be removed in Drupal 7:
* - $date: Formatted date and time for when the comment was created.
* - $submitted: By line with date and time.
*
* @see template_preprocess()
* @see template_preprocess_comment()
* @see zen_preprocess()
* @see zen_preprocess_comment()
* @see zen_process()
*/
?>
<div class="<?php print $classes; ?> clearfix">
<?php print $picture; ?>
<?php if ($title): ?>
<h3 class="title">
<?php print $title; ?>
<?php if ($new): ?>
<span class="new"><?php print $new; ?></span>
<?php endif; ?>
</h3>
<?php elseif ($new): ?>
<div class="new"><?php print $new; ?></div>
<?php endif; ?>
<?php if ($unpublished): ?>
<div class="unpublished"><?php print t('Unpublished'); ?></div>
<?php endif; ?>
<div class="submitted">
<?php
print t('Submitted by !username on !datetime.',
array('!username' => $author, '!datetime' => $created));
?>
</div>
<div class="content">
<?php print $content; ?>
<?php if ($signature): ?>
<div class="user-signature clearfix">
<?php print $signature; ?>
</div>
<?php endif; ?>
</div>
<?php print $links; ?>
</div><!-- /.comment -->

View file

@ -0,0 +1,107 @@
<?php
/**
* @file maintenance-page.tpl.php
*
* Theme implementation to display a single Drupal page while off-line.
*
* All the available variables are mirrored in page.tpl.php. Some may be left
* blank but they are provided for consistency.
*
*
* @see template_preprocess()
* @see template_preprocess_maintenance_page()
*/
?>
<!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; ?>" dir="<?php print $language->dir; ?>">
<head>
<title><?php print $head_title; ?></title>
<?php print $head; ?>
<?php print $styles; ?>
<?php print $scripts; ?>
</head>
<body class="<?php print $classes; ?>">
<div id="page-wrapper"><div id="page">
<div id="header"><div class="section clearfix">
<?php if ($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; ?>
<?php if ($site_name || $site_slogan): ?>
<div id="name-and-slogan">
<?php if ($site_name): ?>
<div id="site-name"><strong>
<a href="<?php print $base_path; ?>" title="<?php print t('Home'); ?>" rel="home">
<?php print $site_name; ?>
</a>
</strong></div>
<?php endif; ?>
<?php if ($site_slogan): ?>
<div id="site-slogan"><?php print $site_slogan; ?></div>
<?php endif; ?>
</div><!-- /#name-and-slogan -->
<?php endif; ?>
<?php print $header; ?>
</div></div><!-- /.section, /#header -->
<div id="main-wrapper"><div id="main" class="clearfix<?php if ($navigation) { print ' with-navigation'; } ?>">
<div id="content" class="column"><div class="section">
<?php print $highlight; ?>
<?php if ($title): ?>
<h1 class="title"><?php print $title; ?></h1>
<?php endif; ?>
<?php if ($messages): print $messages; endif; ?>
<?php print $content_top; ?>
<div id="content-area">
<?php print $content; ?>
</div>
<?php print $content_bottom; ?>
</div></div><!-- /.section, /#content -->
<?php if ($navigation): ?>
<div id="navigation"><div class="section clearfix">
<?php print $navigation; ?>
</div></div><!-- /.section, /#navigation -->
<?php endif; ?>
<?php print $sidebar_first; ?>
<?php print $sidebar_second; ?>
</div></div><!-- /#main, /#main-wrapper -->
<?php if ($footer || $footer_message): ?>
<div id="footer"><div class="section">
<?php if ($footer_message): ?>
<div id="footer-message"><?php print $footer_message; ?></div>
<?php endif; ?>
<?php print $footer; ?>
</div></div><!-- /.section, /#footer -->
<?php endif; ?>
</div></div><!-- /#page, /#page-wrapper -->
<?php print $page_closure; ?>
<?php print $closure; ?>
</body>
</html>

View file

@ -0,0 +1,104 @@
<?php
/**
* @file
* Theme implementation to display a node.
*
* Available variables:
* - $title: the (sanitized) title of the node.
* - $content: Node body or teaser depending on $teaser flag.
* - $user_picture: The node author's picture from user-picture.tpl.php.
* - $date: Formatted creation date. Preprocess functions can reformat it by
* calling format_date() with the desired parameters on the $created variable.
* - $name: Themed username of node author output from theme_username().
* - $node_url: Direct url of the current node.
* - $terms: the themed list of taxonomy term links output from theme_links().
* - $display_submitted: whether submission information should be displayed.
* - $submitted: Themed submission information output from
* theme_node_submitted().
* - $links: Themed links like "Read more", "Add new comment", etc. output
* from theme_links().
* - $classes: String of classes that can be used to style contextually through
* CSS. It can be manipulated through the variable $classes_array from
* preprocess functions. The default values can be one or more of the
* following:
* - node: The current template type, i.e., "theming hook".
* - node-[type]: The current node type. For example, if the node is a
* "Blog entry" it would result in "node-blog". Note that the machine
* name will often be in a short form of the human readable label.
* - node-teaser: Nodes in teaser form.
* - node-preview: Nodes in preview mode.
* The following are controlled through the node publishing options.
* - node-promoted: Nodes promoted to the front page.
* - node-sticky: Nodes ordered above other non-sticky nodes in teaser
* listings.
* - node-unpublished: Unpublished nodes visible only to administrators.
* The following applies only to viewers who are registered users:
* - node-by-viewer: Node is authored by the user currently viewing the page.
*
* Other variables:
* - $node: Full node object. Contains data that may not be safe.
* - $type: Node type, i.e. story, page, blog, etc.
* - $comment_count: Number of comments attached to the node.
* - $uid: User ID of the node author.
* - $created: Time the node was published formatted in Unix timestamp.
* - $classes_array: Array of html class attribute values. It is flattened
* into a string within the variable $classes.
* - $zebra: Outputs either "even" or "odd". Useful for zebra striping in
* teaser listings.
* - $id: Position of the node. Increments each time it's output.
*
* Node status variables:
* - $build_mode: Build mode, e.g. 'full', 'teaser'...
* - $teaser: Flag for the teaser state (shortcut for $build_mode == 'teaser').
* - $page: Flag for the full page state.
* - $promote: Flag for front page promotion state.
* - $sticky: Flags for sticky post setting.
* - $status: Flag for published status.
* - $comment: State of comment settings for the node.
* - $readmore: Flags true if the teaser content of the node cannot hold the
* main body content.
* - $is_front: Flags true when presented in the front page.
* - $logged_in: Flags true when the current user is a logged-in member.
* - $is_admin: Flags true when the current user is an administrator.
*
* The following variable is deprecated and will be removed in Drupal 7:
* - $picture: This variable has been renamed $user_picture in Drupal 7.
*
* @see template_preprocess()
* @see template_preprocess_node()
* @see zen_preprocess()
* @see zen_preprocess_node()
* @see zen_process()
*/
?>
<div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> clearfix">
<?php print $user_picture; ?>
<?php if (!$page && $title): ?>
<h2 class="title"><a href="<?php print $node_url; ?>"><?php print $title; ?></a></h2>
<?php endif; ?>
<?php if ($unpublished): ?>
<div class="unpublished"><?php print t('Unpublished'); ?></div>
<?php endif; ?>
<?php if ($display_submitted || $terms): ?>
<div class="meta">
<?php if ($display_submitted): ?>
<span class="submitted">
<?php print $submitted; ?>
</span>
<?php endif; ?>
<?php if ($terms): ?>
<div class="terms terms-inline"><?php print $terms; ?></div>
<?php endif; ?>
</div>
<?php endif; ?>
<div class="content">
<?php print $content; ?>
</div>
<?php print $links; ?>
</div><!-- /.node -->

View file

@ -0,0 +1,252 @@
<?php
/**
* @file
* 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 template is located in, e.g. modules/system
* or themes/garland.
* - $is_front: TRUE if the current page is the front page. Used to toggle the mission statement.
* - $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.
* $language->dir contains the language direction. It will either be 'ltr' or 'rtl'.
* - $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.
* - $classes: String of classes that can be used to style contextually through
* CSS. It should be placed within the <body> tag. When selecting through CSS
* it's recommended that you use the body tag, e.g., "body.front". It can be
* manipulated through the variable $classes_array from preprocess functions.
* The default values can be one or more of the following:
* - front: Page is the home page.
* - not-front: Page is not the home page.
* - logged-in: The current viewer is logged in.
* - not-logged-in: The current viewer is not logged in.
* - node-type-[node type]: When viewing a single node, the type of that node.
* For example, if the node is a "Blog entry" it would result in "node-type-blog".
* Note that the machine name will often be in a short form of the human readable label.
* - page-views: Page content is generated from Views. Note: a Views block
* will not cause this class to appear.
* - page-panels: Page content is generated from Panels. Note: a Panels block
* will not cause this class to appear.
* The following only apply with the default 'sidebar_first' and 'sidebar_second' block regions:
* - two-sidebars: When both sidebars have content.
* - no-sidebars: When no sidebar content exists.
* - one-sidebar and sidebar-first or sidebar-second: A combination of the
* two classes when only one of the two sidebars have content.
* - $node: Full node object. Contains data that may not be safe. This is only
* available if the current page is on the node's primary url.
* - $menu_item: (array) A page's menu item. This is only available if the
* current page is in the menu.
*
* Site identity:
* - $front_page: The URL of the front page. Use this instead of $base_path,
* when linking to the front page. This includes the language domain or prefix.
* - $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 the Primary menu links for the
* site, if they have been configured.
* - $secondary_links (array): An array containing the Secondary menu links for
* the site, if they have been configured.
* - $breadcrumb: The breadcrumb trail for the current page.
*
* Page content (in order of occurrence in the default page.tpl.php):
* - $title: The page title, for use in the actual HTML content.
* - $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).
* - $help: Dynamic help text, mostly for admin pages.
* - $content: The main content of the current page.
* - $feed_icons: A string of all feed icons for the current page.
*
* Footer/closing data:
* - $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.
*
* Helper variables:
* - $classes_array: Array of html class attribute values. It is flattened
* into a string within the variable $classes.
*
* Regions:
* - $content_top: Items to appear above the main content of the current page.
* - $content_bottom: Items to appear below the main content of the current page.
* - $navigation: Items for the navigation bar.
* - $sidebar_first: Items for the first sidebar.
* - $sidebar_second: Items for the second sidebar.
* - $header: Items for the header region.
* - $footer: Items for the footer region.
* - $page_closure: Items to appear below the footer.
*
* The following variables are deprecated and will be removed in Drupal 7:
* - $body_classes: This variable has been renamed $classes in Drupal 7.
*
* @see template_preprocess()
* @see template_preprocess_page()
* @see zen_preprocess()
* @see zen_process()
*/
?>
<!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; ?>" dir="<?php print $language->dir; ?>">
<head>
<title><?php print $head_title; ?></title>
<?php print $head; ?>
<?php print $styles; ?>
<?php print $scripts; ?>
</head>
<body class="<?php print $classes; ?>">
<?php if ($primary_links): ?>
<div id="skip-link"><a href="#main-menu"><?php print t('Jump to Navigation'); ?></a></div>
<?php endif; ?>
<div id="page-wrapper"><div id="page">
<div id="header"><div class="section clearfix">
<?php if ($logo): ?>
<a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home" id="logo"><img src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" /></a>
<?php endif; ?>
<?php if ($site_name || $site_slogan): ?>
<div id="name-and-slogan">
<?php if ($site_name): ?>
<?php if ($title): ?>
<div id="site-name"><strong>
<a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home"><span><?php print $site_name; ?></span></a>
</strong></div>
<?php else: /* Use h1 when the content title is empty */ ?>
<h1 id="site-name">
<a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home"><span><?php print $site_name; ?></span></a>
</h1>
<?php endif; ?>
<?php endif; ?>
<?php if ($site_slogan): ?>
<div id="site-slogan"><?php print $site_slogan; ?></div>
<?php endif; ?>
</div><!-- /#name-and-slogan -->
<?php endif; ?>
<?php if ($search_box): ?>
<div id="search-box"><?php print $search_box; ?></div>
<?php endif; ?>
<?php print $header; ?>
</div></div><!-- /.section, /#header -->
<div id="main-wrapper"><div id="main" class="clearfix<?php if ($primary_links || $navigation) { print ' with-navigation'; } ?>">
<div id="content" class="column"><div class="section">
<?php if ($mission): ?>
<div id="mission"><?php print $mission; ?></div>
<?php endif; ?>
<?php print $highlight; ?>
<?php print $breadcrumb; ?>
<?php if ($title): ?>
<h1 class="title"><?php print $title; ?></h1>
<?php endif; ?>
<?php print $messages; ?>
<?php if ($tabs): ?>
<div class="tabs"><?php print $tabs; ?></div>
<?php endif; ?>
<?php print $help; ?>
<?php print $content_top; ?>
<div id="content-area">
<?php print $content; ?>
</div>
<?php print $content_bottom; ?>
<?php if ($feed_icons): ?>
<div class="feed-icons"><?php print $feed_icons; ?></div>
<?php endif; ?>
</div></div><!-- /.section, /#content -->
<?php if ($primary_links || $navigation): ?>
<div id="navigation"><div class="section clearfix">
<?php print theme(array('links__system_main_menu', 'links'), $primary_links,
array(
'id' => 'main-menu',
'class' => 'links clearfix',
),
array(
'text' => t('Main menu'),
'level' => 'h2',
'class' => 'element-invisible',
));
?>
<?php print $navigation; ?>
</div></div><!-- /.section, /#navigation -->
<?php endif; ?>
<?php print $sidebar_first; ?>
<?php print $sidebar_second; ?>
</div></div><!-- /#main, /#main-wrapper -->
<?php if ($footer || $footer_message || $secondary_links): ?>
<div id="footer"><div class="section">
<?php print theme(array('links__system_secondary_menu', 'links'), $secondary_links,
array(
'id' => 'secondary-menu',
'class' => 'links clearfix',
),
array(
'text' => t('Secondary menu'),
'level' => 'h2',
'class' => 'element-invisible',
));
?>
<?php if ($footer_message): ?>
<div id="footer-message"><?php print $footer_message; ?></div>
<?php endif; ?>
<?php print $footer; ?>
</div></div><!-- /.section, /#footer -->
<?php endif; ?>
</div></div><!-- /#page, /#page-wrapper -->
<?php print $page_closure; ?>
<?php print $closure; ?>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show more