New theme base for SuiteDesk
|
@ -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
|
@ -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
|
@ -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
|
79
themes/zen/README-FIRST.txt
Normal 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
|
127
themes/zen/STARTERKIT/README.txt
Normal 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
|
96
themes/zen/STARTERKIT/STARTERKIT.info.txt
Normal 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
|
134
themes/zen/STARTERKIT/css/README.txt
Normal 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.
|
10
themes/zen/STARTERKIT/css/block-editing-rtl.css
Normal 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;
|
||||
}
|
25
themes/zen/STARTERKIT/css/block-editing.css
Normal 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;
|
||||
}
|
96
themes/zen/STARTERKIT/css/blocks.css
Normal 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 */ {
|
||||
}
|
79
themes/zen/STARTERKIT/css/comments.css
Normal 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 */
|
||||
}
|
1983
themes/zen/STARTERKIT/css/drupal6-reference.css
Normal file
44
themes/zen/STARTERKIT/css/fields.css
Normal 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. */ {
|
||||
}
|
46
themes/zen/STARTERKIT/css/forms-rtl.css
Normal 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;
|
||||
}
|
134
themes/zen/STARTERKIT/css/forms.css
Normal 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;
|
||||
}
|
37
themes/zen/STARTERKIT/css/html-reset-rtl.css
Normal 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;
|
||||
}
|
291
themes/zen/STARTERKIT/css/html-reset.css
Normal 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;
|
||||
}
|
47
themes/zen/STARTERKIT/css/ie.css
Normal 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;
|
||||
}
|
12
themes/zen/STARTERKIT/css/ie6-rtl.css
Normal 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 */
|
||||
}
|
105
themes/zen/STARTERKIT/css/ie6.css
Normal 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
|
||||
|
||||
*
|
||||
*/
|
74
themes/zen/STARTERKIT/css/layout-fixed-rtl.css
Normal 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;
|
||||
}
|
212
themes/zen/STARTERKIT/css/layout-fixed.css
Normal 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;
|
||||
}
|
||||
*/
|
68
themes/zen/STARTERKIT/css/layout-liquid-rtl.css
Normal 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;
|
||||
}
|
202
themes/zen/STARTERKIT/css/layout-liquid.css
Normal 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;
|
||||
}
|
||||
*/
|
13
themes/zen/STARTERKIT/css/messages-rtl.css
Normal 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;
|
||||
}
|
53
themes/zen/STARTERKIT/css/messages.css
Normal 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;
|
||||
}
|
44
themes/zen/STARTERKIT/css/navigation.css
Normal 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 {
|
||||
}
|
81
themes/zen/STARTERKIT/css/nodes.css
Normal 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 */
|
||||
}
|
38
themes/zen/STARTERKIT/css/page-backgrounds.css
Normal 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 {
|
||||
}
|
19
themes/zen/STARTERKIT/css/pages-rtl.css
Normal 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;
|
||||
}
|
314
themes/zen/STARTERKIT/css/pages.css
Normal 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);
|
||||
}
|
6
themes/zen/STARTERKIT/css/panels-styles.css
Normal file
|
@ -0,0 +1,6 @@
|
|||
/**
|
||||
* @file
|
||||
* Panels Styling
|
||||
*/
|
||||
|
||||
|
73
themes/zen/STARTERKIT/css/print.css
Normal 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;
|
||||
}
|
22
themes/zen/STARTERKIT/css/tabs-rtl.css
Normal 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;
|
||||
}
|
128
themes/zen/STARTERKIT/css/tabs.css
Normal 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;
|
||||
}
|
6
themes/zen/STARTERKIT/css/views-styles.css
Normal file
|
@ -0,0 +1,6 @@
|
|||
/**
|
||||
* @file
|
||||
* Views Styling
|
||||
*/
|
||||
|
||||
|
24
themes/zen/STARTERKIT/css/wireframes.css
Normal 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;
|
||||
}
|
BIN
themes/zen/STARTERKIT/favicon.ico
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
themes/zen/STARTERKIT/images-source/messages.psd
Normal file
BIN
themes/zen/STARTERKIT/images-source/panels-layouts.psd
Normal file
BIN
themes/zen/STARTERKIT/images-source/screenshot.psd
Normal file
BIN
themes/zen/STARTERKIT/images-source/tabs.psd
Normal file
BIN
themes/zen/STARTERKIT/images/messages-error-ie6.png
Normal file
After Width: | Height: | Size: 719 B |
BIN
themes/zen/STARTERKIT/images/messages-error.png
Normal file
After Width: | Height: | Size: 727 B |
BIN
themes/zen/STARTERKIT/images/messages-status-ie6.png
Normal file
After Width: | Height: | Size: 610 B |
BIN
themes/zen/STARTERKIT/images/messages-status.png
Normal file
After Width: | Height: | Size: 560 B |
BIN
themes/zen/STARTERKIT/images/messages-warning-ie6.png
Normal file
After Width: | Height: | Size: 693 B |
BIN
themes/zen/STARTERKIT/images/messages-warning.png
Normal file
After Width: | Height: | Size: 664 B |
BIN
themes/zen/STARTERKIT/images/tab-bar.png
Normal file
After Width: | Height: | Size: 160 B |
BIN
themes/zen/STARTERKIT/images/tab-left-ie6.png
Normal file
After Width: | Height: | Size: 331 B |
BIN
themes/zen/STARTERKIT/images/tab-left.png
Normal file
After Width: | Height: | Size: 303 B |
BIN
themes/zen/STARTERKIT/images/tab-right-ie6.png
Normal file
After Width: | Height: | Size: 473 B |
BIN
themes/zen/STARTERKIT/images/tab-right.png
Normal file
After Width: | Height: | Size: 685 B |
BIN
themes/zen/STARTERKIT/images/tab-secondary-bg.png
Normal file
After Width: | Height: | Size: 166 B |
BIN
themes/zen/STARTERKIT/images/tab-secondary.png
Normal file
After Width: | Height: | Size: 195 B |
14
themes/zen/STARTERKIT/js/README.txt
Normal 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
|
BIN
themes/zen/STARTERKIT/logo.png
Normal file
After Width: | Height: | Size: 1 KiB |
BIN
themes/zen/STARTERKIT/screenshot.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
155
themes/zen/STARTERKIT/template.php
Normal 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.');
|
||||
}
|
||||
// */
|
82
themes/zen/STARTERKIT/templates/README.txt
Normal 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
|
43
themes/zen/STARTERKIT/theme-settings.php
Normal 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;
|
||||
}
|
5
themes/zen/layouts/README.txt
Normal 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
|
|
@ -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;
|
||||
}
|
36
themes/zen/layouts/one_sidebar_first/one-sidebar-first.css
Normal 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;
|
||||
}
|
BIN
themes/zen/layouts/one_sidebar_first/one-sidebar-first.png
Normal file
After Width: | Height: | Size: 813 B |
20
themes/zen/layouts/one_sidebar_first/one_sidebar_first.inc
Normal 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;
|
||||
}
|
|
@ -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 -->
|
|
@ -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 -->
|
|
@ -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;
|
||||
}
|
50
themes/zen/layouts/one_sidebar_second/one-sidebar-second.css
Normal 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;
|
||||
}
|
BIN
themes/zen/layouts/one_sidebar_second/one-sidebar-second.png
Normal file
After Width: | Height: | Size: 812 B |
20
themes/zen/layouts/one_sidebar_second/one_sidebar_second.inc
Normal 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;
|
||||
}
|
|
@ -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 -->
|
|
@ -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 -->
|
53
themes/zen/layouts/two_sidebars/two-sidebars-admin.css
Normal 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;
|
||||
}
|
51
themes/zen/layouts/two_sidebars/two-sidebars.css
Normal 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;
|
||||
}
|
BIN
themes/zen/layouts/two_sidebars/two-sidebars.png
Normal file
After Width: | Height: | Size: 817 B |
21
themes/zen/layouts/two_sidebars/two_sidebars.inc
Normal 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;
|
||||
}
|
|
@ -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 -->
|
33
themes/zen/layouts/two_sidebars/zen-two-sidebars.tpl.php
Normal 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 -->
|
|
@ -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;
|
||||
}
|
51
themes/zen/layouts/two_sidebars_first/two-sidebars-first.css
Normal 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;
|
||||
}
|
BIN
themes/zen/layouts/two_sidebars_first/two-sidebars-first.png
Normal file
After Width: | Height: | Size: 812 B |
21
themes/zen/layouts/two_sidebars_first/two_sidebars_first.inc
Normal 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;
|
||||
}
|
|
@ -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 -->
|
|
@ -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 -->
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
BIN
themes/zen/layouts/two_sidebars_second/two-sidebars-second.png
Normal file
After Width: | Height: | Size: 814 B |
|
@ -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;
|
||||
}
|
|
@ -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 -->
|
|
@ -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
After Width: | Height: | Size: 1 KiB |
668
themes/zen/template.php
Normal 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;
|
||||
}
|
66
themes/zen/templates/block.tpl.php
Normal 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 -->
|
45
themes/zen/templates/comment-wrapper.tpl.php
Normal 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>
|
90
themes/zen/templates/comment.tpl.php
Normal 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 -->
|
107
themes/zen/templates/maintenance-page.tpl.php
Normal 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>
|
104
themes/zen/templates/node.tpl.php
Normal 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 -->
|
252
themes/zen/templates/page.tpl.php
Normal 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>
|