WordPress.org

Make WordPress Core

Changeset 17761


Ignore:
Timestamp:
04/29/2011 12:19:02 AM (9 years ago)
Author:
lancewillett
Message:

Twenty Eleven: style.css cleanup and Showcase template improvements, props matveb - see #17198

  • Add full support for the featured slider powered by JS (except auto-slide)
  • Change the title hover state of large stickies to white
  • Prevent plain text posts from being displayed transparently over images
  • Update slider featured image size to 500x300
  • Add comment blocks to showcase.php
Location:
trunk/wp-content/themes/twentyeleven
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-content/themes/twentyeleven/functions.php

    r17739 r17761  
    129129
    130130    // Add Twenty Eleven's custom image sizes
    131     add_image_size( 'large-feature', HEADER_IMAGE_WIDTH, 500, true ); // Used for large feature images
    132     add_image_size( 'small-feature', 500, 500 ); // Used for featured posts if a large-feature doesn't exist
     131    add_image_size( 'large-feature', HEADER_IMAGE_WIDTH, HEADER_IMAGE_HEIGHT, true ); // Used for large feature images
     132    add_image_size( 'small-feature', 500, 300 ); // Used for featured posts if a large-feature doesn't exist
    133133
    134134    // Add a way for the custom header to be styled in the admin panel that controls
  • trunk/wp-content/themes/twentyeleven/showcase.php

    r17717 r17761  
    44 * Description: A Page Template that showcases Sticky Posts, Asides, and Blog Posts
    55 *
     6 * The showcase template in Twenty Eleven consists of a featured posts section using sticky posts,
     7 * another recent posts area (with the latest post shown in full and the rest as a list)
     8 * and a left sidebar holding aside posts.
     9 *
     10 * We are creating two queries to fetch the proper posts and a custom widget for the sidebar.
     11 *
    612 * @package WordPress
    713 * @subpackage Twenty Eleven
    814 */
    915
     16// Enqueue showcase script for the slider
     17wp_enqueue_script( 'twentyeleven-showcase', get_template_directory_uri() . '/js/showcase.js', array( 'jquery' ), '2011-04-28' );
     18
    1019get_header(); ?>
    1120
     
    1625
    1726                <?php
    18                     // If we have content for this page, let's display it.
     27                    /**
     28                     * We are using a heading by rendering the_content
     29                     * If we have content for this page, let's display it.
     30                     */
    1931                    if ( '' != get_the_content() )
    2032                        get_template_part( 'content', 'intro' );
     
    2234
    2335                <?php
    24                     // See if we have any sticky posts and use the latest to create a featured post
     36                    /**
     37                     * Begin the featured posts section.
     38                     *
     39                     * See if we have any sticky posts and use them to create our featured posts.
     40                     */
    2541                    $sticky = get_option( 'sticky_posts' );
    2642                    $featured_args = array(
    27                         'posts_per_page' => 1,
     43                        'posts_per_page' => 4,
    2844                        'post__in' => $sticky,
    2945                    );
    3046
     47                    // The Featured Posts query.
    3148                    $featured = new WP_Query();
    3249                    $featured->query( $featured_args );
    3350
     51                    /**
     52                     * We will need to count featured posts starting from zero
     53                     * to create the slider navigation.
     54                     */
     55                    $counter_slider = 0;
     56
     57                    ?>
     58
     59                <div class="featured-posts">
     60                    <h1 class="showcase-heading"><?php _e( 'Featured Post', 'twentyeleven' ); ?></h1>
     61
     62                <?php
    3463                    // Let's roll.
    35                     if ( $sticky ) :
    36 
    37                     $featured->the_post();
    38 
    39                     // We're going to add a class to our featured post for featured images
    40                     // by default it'll have no class though
     64                    while ( $featured->have_posts() ) : $featured->the_post();
     65
     66                    // Increase the counter.
     67                    $counter_slider++;
     68
     69                    /**
     70                     * We're going to add a class to our featured post for featured images
     71                     * by default it'll have no class though.
     72                     */
    4173                    $feature_class = '';
    4274
    4375                    if ( has_post_thumbnail() ) {
    44                         // but if it has a featured image let's add some class
     76                        // ... but if it has a featured image let's add some class
    4577                        $feature_class = 'feature-image small';
    4678
     
    5082                        // Is it bigger than or equal to our header?
    5183                        if ( $image[1] >= HEADER_IMAGE_WIDTH ) {
    52                             // Let's add a BIGGER class. It's EXTRA classy now.
     84                            // If bigger, let's add a BIGGER class. It's EXTRA classy now.
    5385                            $feature_class = 'feature-image large';
    5486                        }
    5587                    }
    56                     ?>
     88                ?>
    5789
    5890                <?php if ( has_post_thumbnail() ) : ?>
    59                 <section class="featured-post <?php echo $feature_class; ?>">
     91                <section class="featured-post <?php echo $feature_class; ?>" id="featured-post-<?php echo $counter_slider; ?>">
    6092                <?php else : ?>
    61                 <section class="featured-post">
     93                <section class="featured-post" id="featured-post-<?php echo $counter_slider; ?>">
    6294                <?php endif; ?>
    63                     <h1 class="showcase-heading"><?php _e( 'Featured Post', 'twentyeleven' ); ?></h1>
     95
    6496                    <?php
    65                         // Dynamic thumbnails!
     97                        /**
     98                         * If the thumbnail is as big as the header image
     99                         * make it a large featured post, otherwise render it small
     100                         */
    66101                        if ( has_post_thumbnail() ) {
    67102                            if ( $image[1] >= HEADER_IMAGE_WIDTH ) { ?>
     
    74109                    <?php get_template_part( 'content', 'featured' ); ?>
    75110                </section>
    76                 <?php endif; ?>
     111                <?php endwhile; ?>
     112
     113                <nav class="feature-slider">
     114                    <ul>
     115                    <?php
     116                        /**
     117                         * We need to query the same set of posts again
     118                         * to populate the navigation dots
     119                         */
     120                        $featured->query( $featured_args );
     121
     122                        // Reset the counter so that we end up with matching elements
     123                        $counter_slider = 0;
     124
     125                        // Begin from zero
     126                        rewind_posts();
     127
     128                        // Let's roll again.
     129                        while ( $featured->have_posts() ) : $featured->the_post();
     130                            $counter_slider++;
     131                    ?>
     132                        <li><a href="#featured-post-<?php echo $counter_slider; ?>" title="<?php printf( esc_attr__( 'Featuring: %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" <?php
     133                        if ( 1 == $counter_slider ) :
     134                            echo 'class="active"';
     135                        endif;
     136                        ?>></a></li>
     137                    <?php endwhile; ?>
     138                    </ul>
     139                </nav>
     140                </div>
    77141
    78142                <section class="recent-posts">
     
    81145                    <?php
    82146
    83                     // Display our recent posts, showing full content for the very latest, ignoring Aside posts
     147                    // Display our recent posts, showing full content for the very latest, ignoring Aside posts.
    84148                    $recent_args = array(
    85149                        'order' => 'DESC',
     
    94158                        ),
    95159                    );
     160                    // Our new query for the Recent Posts section.
    96161                    $recent = new WP_Query();
    97162                    $recent->query( $recent_args );
     
    99164
    100165                    while ( $recent->have_posts() ) : $recent->the_post();
    101                         // set $more to 0 in order to only get the first part of the post
     166                        // Set $more to 0 in order to only get the first part of the post.
    102167                        global $more;
    103168                        $more = 0;
  • trunk/wp-content/themes/twentyeleven/style.css

    r17756 r17761  
    604604    z-index: 1;
    605605}
    606 #branding .with-image #searchform {
    607     bottom: -27px;
    608     top: auto;
    609 }
    610606#branding .only-search #s {
    611607    background-color: #666;
     
    615611#branding .only-search #s:focus {
    616612    background-color: #bbb;
     613}
     614#branding .with-image #searchform {
     615    bottom: -27px;
     616    top: auto;
    617617}
    618618
     
    680680    font-weight: bold;
    681681}
    682 .entry-meta a:focus,
    683 .entry-meta a:active,
    684 .entry-meta a:hover {
    685 }
    686682.entry-content,
    687683.entry-summary {
     
    702698    line-height: 2.6em;
    703699    text-transform: uppercase;
    704 }
    705 .entry-content a {
    706 }
    707 .entry-content a:hover {
    708700}
    709701.entry-content table,
     
    768760.entry-meta .edit-link a {
    769761    background: #aaa;
    770     color: #fff;
    771762    -moz-border-radius: 3px;
    772763    border-radius: 3px;
     764    color: #fff;
    773765    float: right;
    774766    font-size: 12px;
     
    810802    -moz-border-radius: 3px;
    811803    border-radius: 3px;
    812     padding: 3px;
    813804    -webkit-box-shadow: 0 1px 2px #bbb;
    814805    -moz-box-shadow: 0 1px 2px #bbb;
    815806    box-shadow: 0 1px 2px #bbb;
     807    padding: 3px;
    816808}
    817809#author-description {
     
    834826    color: #777;
    835827    font-size: 18px;
     828    font-weight: 300;
    836829    height: 48px;
     830    line-height: 46px; 
    837831    overflow: hidden;
    838832    position: absolute;
     833    text-align: center;
     834    text-decoration: none;
    839835    top: 0;
    840836    right: 0;
    841     text-align: center;
    842     text-decoration: none;
    843837    width: 48px;
    844     font-weight: 300;
    845     line-height: 46px;
    846838}
    847839.entry-header .comments-link a:hover {
    848840    background: #777;
     841    border-color: #555;
    849842    color: #fff;
    850     border-color: #555;
    851843}
    852844.entry-header .comments-link .leave-reply {
     
    876868    padding-right: 0;
    877869}
    878 
    879870.singular .entry-header .entry-meta {
    880871    position: absolute;
     
    882873    left: 0;
    883874}
    884 .singular .entry-header a {
    885 }
    886 .singular .entry-header a:hover {
    887 }
    888 .singular footer.entry-meta {
    889 }
    890875.singular blockquote.pull {
    891876    font-size: 21px;
     
    905890}
    906891.singular .entry-meta .edit-link a {
     892    bottom: auto;
    907893    color: #fff;
     894    left: 50px;
    908895    position: absolute;
    909     bottom: auto;
    910     left: 50px;
    911896    right: auto;
    912897    top: 80px;
     
    1005990    border-width: 1px 0;
    1006991    margin: 0 -8.9% 1.625em;
     992    overflow: hidden;
    1007993    padding: 1.625em 8.9%;
    1008     overflow: hidden;
    1009994}
    1010995.error404 #main #s {
     
    10621047    position: absolute;
    10631048    background: #aaa;
    1064     color: #fff;
    10651049    -moz-border-radius: 3px;
    10661050    border-radius: 3px;
     1051    color: #fff;
    10671052    padding: 0px 8px;
    10681053    font-size: 12px;
     
    10771062/* Featured post */
    10781063section.featured-post {
    1079     border-bottom: 1px solid #e8e8e8;
    10801064    float: left;
    10811065    margin: -1.625em -8.9% 1.625em;
     
    10871071    border: none;
    10881072    color: #666;
    1089     font-size: 13px;
    10901073    margin: 0;
    10911074}
     
    11041087    max-width: 59%;
    11051088    position: relative;
    1106     right: -20px;
     1089    right: -35px;
    11071090}
    11081091section.featured-post .attachment-small-feature:hover {
     
    11141097    width: 45%;
    11151098}
     1099article.feature-image.small .entry-summary {
     1100    color: #555;
     1101    font-size: 13px;
     1102}
    11161103article.feature-image.small .entry-summary p a {
    11171104    background: #222;
    11181105    color: #eee;
    11191106    display: block;
    1120     left: -19.8%;
    1121     padding: 4px 26px 4px 75px;
     1107    left: -23.8%;
     1108    padding: 4px 26px 4px 85px;
    11221109    position: relative;
    11231110    text-decoration: none;
    11241111    top: 20px;
    1125     width: 120px;
     1112    width: 180px;
    11261113}
    11271114article.feature-image.small .entry-summary p a:hover {
     
    11421129section.feature-image.large .hentry {
    11431130    border-bottom: none;
     1131    left: 9%;
    11441132    margin: 1.625em 9% 0 0;
    11451133    position: absolute;
    11461134    top: 0;
    1147     left: 9%;
    11481135}
    11491136article.feature-image.large .entry-title a {
     
    11531140    border-radius: 3px;
    11541141    color: #fff;
     1142    display: inline-block;
    11551143    font-weight: 300;
    1156     display: inline-block;
    11571144    padding: .2em 20px;
    11581145}
    11591146section.feature-image.large:hover .entry-title a,
    11601147section.feature-image.large .entry-title:hover a {
    1161     background: #1b8be0;
    1162     background: rgba(0,145,255,0.8);
    1163     color: #bfddF3;
     1148    background: #eee;
     1149    background: rgba(255,255,255,0.8);
     1150    color: #222;
    11641151}
    11651152article.feature-image.large .entry-summary {
     
    11701157    display: block;
    11711158    height: auto;
     1159    max-width: 117.9%;
    11721160    padding: 0 0 6px;
    1173     max-width: 117.9%;
     1161}
     1162
     1163/* Featured Slider */
     1164.featured-posts {
     1165    border-bottom: 1px solid #e8e8e8;
     1166    display: block;
     1167    height: 340px;
     1168    margin: 1.625em -8.9% 20px;
     1169    max-width: 1000px;
     1170    padding: 0;
     1171    position: relative;
     1172}
     1173.featured-posts .showcase-heading {
     1174    padding-left: 8.9%;
     1175}
     1176.featured-posts section.featured-post {
     1177    background: #fff;
     1178    height: 300px;
     1179    left: 0;
     1180    margin: 0;
     1181    position: absolute;
     1182    top: 30px;
     1183    width: auto;
     1184}
     1185.featured-posts section.featured-post.large {
     1186    overflow: hidden;
     1187}
     1188.featured-posts section.featured-post {
     1189    -webkit-transition-duration: 200ms;
     1190    -webkit-transition-property: opacity visibility;
     1191    -webkit-transition-timing-function: ease;
     1192    -moz-transition-duration: 200ms;
     1193    -moz-transition-property: opacity visibility;
     1194    -moz-transition-timing-function: ease;
     1195}
     1196.featured-posts section.featured-post {
     1197    opacity: 0;
     1198    visibility: hidden;
     1199}
     1200.featured-posts #featured-post-1 {
     1201    opacity: 1;
     1202    visibility: visible;
     1203}
     1204#content .feature-slider {
     1205    bottom: 0;
     1206    left: 8.9%;
     1207    overflow: visible;
     1208    position: absolute;
     1209}
     1210.feature-slider ul {
     1211    list-style-type: none;
     1212    margin: 0;
     1213}
     1214.feature-slider li {
     1215    float: left;
     1216    margin: 0 6px;
     1217}
     1218.feature-slider a {
     1219    background: #3c3c3c;
     1220    background: rgba(60,60,60,0.9);
     1221    -moz-border-radius: 12px;
     1222    border-radius: 12px;
     1223    -webkit-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.5), inset 0 0 2px rgba(255,255,255,0.5);
     1224    -moz-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.5), inset 0 0 2px rgba(255,255,255,0.5);
     1225    box-shadow: inset 1px 1px 5px rgba(0,0,0,0.5), inset 0 0 2px rgba(255,255,255,0.5);
     1226    display: block;
     1227    height: 14px;
     1228    width: 14px;
     1229}
     1230.feature-slider a.active {
     1231    background: #fff;
     1232    background: rgba(255,255,255,0.8);
     1233    -webkit-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.4), inset 0 0 2px rgba(255,255,255,0.8);
     1234    -moz-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.4), inset 0 0 2px rgba(255,255,255,0.8);
     1235    box-shadow: inset 1px 1px 5px rgba(0,0,0,0.4), inset 0 0 2px rgba(255,255,255,0.8);
    11741236}
    11751237
     
    12101272section.recent-posts .other-recent-posts .comments-link > span {
    12111273    border-bottom: 2px solid #999;
    1212     display: block;
     1274    bottom: -2px;
    12131275    color: #444;
    1214     text-align: right;
     1276    display: block;
    12151277    font-size: 10px;
    12161278    font-weight: 500;
     
    12181280    padding: 0.3125em 0 0.3125em 1em;
    12191281    position: absolute;
    1220     bottom: -2px;
    12211282    right: 0;
     1283    text-align: right;
    12221284    text-transform: uppercase;
    12231285    z-index: 1;
     
    12481310    border-width: 1px 0;
    12491311    margin: 0 -8.9% 1.625em;
     1312    overflow: hidden;
    12501313    padding: 1.625em 1.625em 0;
    12511314    text-align: center;
    1252     overflow: hidden;
    12531315}
    12541316.image-attachment div.attachment img {
     
    12731335img.size-medium,
    12741336img.size-thumbnail {
     1337    height: auto;
    12751338    max-width: 100%;
    1276     height: auto;
    12771339}
    12781340img.wp-smiley {
     
    12861348.wp-caption {
    12871349    background: #f4f2ed;
     1350    margin-bottom: 1.625em;
    12881351    max-width: 96%;
    1289     margin-bottom: 1.625em;
    12901352    padding: 12px;
    12911353}
     
    13311393    line-height: 2.2em;
    13321394}
    1333 #content nav a:focus,
    1334 #content nav a:active,
    1335 #content nav a:hover {
    1336 }
    13371395#nav-above {
    13381396    padding: 0 0 1.625em;
     
    13551413    top: -4px;
    13561414    right: 0;
    1357     z-index: 1000;
    13581415}
    13591416#nav-single .nav-previous,
     
    13701427----------------------------------------------- */
    13711428
    1372 #secondary {
    1373 }
    13741429.widget-area {
    13751430    font-size: 12px;
     
    14131468}
    14141469.widget_search #searchsubmit {
    1415     -webkit-box-shadow: rgba(0, 0, 0, 0.09) 0px -1px 1px inset;
    1416     background: #DDD;
    1417     border: 1px solid #CCC;
     1470    background: #ddd;
     1471    border: 1px solid #ccc;
     1472    -webkit-box-shadow: inset 0px -1px 1px rgba(0, 0, 0, 0.09);
     1473    -moz-box-shadow: inset 0px -1px 1px rgba(0, 0, 0, 0.09);
     1474    box-shadow: inset 0px -1px 1px rgba(0, 0, 0, 0.09);
    14181475    color: #888;
    14191476    font-size: 13px;
     
    14241481.widget_search #searchsubmit:active {
    14251482    background: #1b8be0;
    1426     color: #BFDDF3;
    1427     border-color: #0861A5;
    1428     -webkit-box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 1px inset;
     1483    border-color: #0861a5;
     1484    -webkit-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1);
     1485    -moz-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1);
     1486    box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1);
     1487    color: #bfddf3;
    14291488}
    14301489
     
    15791638    -moz-border-radius: 3px;
    15801639    border-radius: 3px;
     1640    -webkit-box-shadow: 0 1px 2px #ccc;
     1641    -moz-box-shadow: 0 1px 2px #ccc;
     1642    box-shadow: 0 1px 2px #ccc;
     1643    left: -102px;
    15811644    padding: 0;
    15821645    position: absolute;
    15831646    top: 0;
    1584     left: -102px;
    1585     -webkit-box-shadow: 0 1px 2px #ccc;
    1586     -moz-box-shadow: 0 1px 2px #ccc;
    1587     box-shadow: 0 1px 2px #ccc;
    15881647}
    15891648.commentlist > li:before {
    15901649    content: url(images/comment-arrow.png) no-repeat;
     1650    left: -21px;
    15911651    position: absolute;
    1592     left: -21px;
    15931652}
    15941653.commentlist > li.pingback:before {
     
    15971656.commentlist .children .avatar {
    15981657    background: none;
    1599     padding: 0;
    1600     top: 2.2em;
    1601     left: 2.2em;
    16021658    -webkit-box-shadow: none;
    16031659    -moz-box-shadow: none;
    16041660    box-shadow: none;
    1605 }
    1606 .commentlist .children .bypostauthor > article .comment-meta .vcard .avatar {
     1661    left: 2.2em;
     1662    padding: 0;
     1663    top: 2.2em;
    16071664}
    16081665a.comment-reply-link {
    16091666    font-size: 12px;
    16101667    font-weight: bold;
    1611 }
    1612 .comment-reply-link:hover,
    1613 .comment-reply-link:active,
    1614 .comment-reply-link:focus {
    16151668}
    16161669
     
    16971750    position: relative;
    16981751    width: 68.9%;
    1699 }
    1700 #respond a {
    1701 }
    1702 #respond a:focus,
    1703 #respond a:active,
    1704 #respond a:hover {
    17051752}
    17061753#respond input[type="text"],
     
    17341781    display: inline-block;
    17351782    font-size: 13px;
     1783    left: 4px;
     1784    min-width: 60px;
    17361785    padding: 4px 10px;
    17371786    position: relative;
    17381787    top: 41px;
    1739     left: 4px;
    1740     min-width: 60px;
    17411788    z-index: 1;
    1742     /*text-shadow: 1px 1px 1px #fff; */
    17431789}
    17441790#respond input[type="text"]:focus,
     
    17551801    font-size: 22px;
    17561802    font-weight: bold;
     1803    left: 68%;
    17571804    position: absolute;
    17581805    top: 52px;
    1759     left: 68%;
    17601806    z-index: 1;
    17611807}
     
    17631809#respond .logged-in-as {
    17641810    font-size: 13px;
    1765 }
    1766 #respond .logged-in-as a {
    17671811}
    17681812#respond p {
     
    17841828    cursor: pointer;
    17851829    font-size: 15px;
     1830    left: 30px;
    17861831    margin: 20px 0;
    17871832    padding: 5px 42px 5px 22px;
     1833    position: relative;
    17881834    text-shadow: 0 -1px 0 rgba(0,0,0,0.3);
    1789     position: relative;
    1790     left: 30px;
    17911835}
    17921836#respond input#submit:active {
     
    18211865    letter-spacing: 0.05em;
    18221866    position: absolute;
    1823     top: 1.1em;
    18241867    right: 1.625em;
    18251868    text-decoration: none;
    18261869    text-transform: uppercase;
     1870    top: 1.1em;
    18271871}
    18281872#cancel-comment-reply-link:focus,
     
    18941938    font-weight: bold;
    18951939}
    1896 #site-generator a:focus,
    1897 #site-generator a:active,
    1898 #site-generator a:hover {
    1899 }
    19001940
    19011941
     
    19371977        display: block;
    19381978        float: none;
     1979        height: auto;
    19391980        margin: 0.625em auto 1.025em;
    19401981        max-width: 100%;
    1941         height: auto;
    19421982        position: static;
    19431983    }
     
    19682008    }
    19692009    .singular .entry-meta .edit-link a {
     2010        left: 0px;
    19702011        position: absolute;
    1971         left: 0px;
    19722012        top: 40px;
    19732013    }
     
    20252065    }
    20262066    .commentlist .children .avatar {
     2067        background: none;
     2068        left: 2.2em;
     2069        padding: 0;
    20272070        position: absolute;
    2028         background: none;
    2029         padding: 0;
    20302071        top: 2.2em;
    2031         left: 2.2em;
    20322072    }
    20332073}
     
    20572097        display: block !important;
    20582098        float: none !important;
     2099        max-width: 100%;
    20592100        position: relative !important;
    2060         max-width: 100%;
    20612101    }
    20622102    #branding {
     
    21092149    .singular footer.entry-meta,
    21102150    .singular #comments-title {
     2151        margin: 0;
    21112152        width: 100%;
    2112         margin: 0;
    21132153    }
    21142154    .singular .hentry {
     
    21482188    .commentlist > li.comment {
    21492189        background: none;
    2150         border: 1px solid #DDDDDD;
     2190        border: 1px solid #ddd;
     2191        -moz-border-radius: 3px 3px 3px 3px;
    21512192        border-radius: 3px 3px 3px 3px;
    21522193        margin: 0 auto 1.625em;
     
    21562197    }
    21572198    .commentlist .avatar {
    2158         width: 39px;
    21592199        height: 39px;
    21602200        left: 2.2em;
    21612201        top: 2.2em;
     2202        width: 39px;
    21622203    }
    21632204    .commentlist li.comment .comment-meta {
Note: See TracChangeset for help on using the changeset viewer.