Month: March 2016

Migrating From Other WordPress Servers

For those of you that have been using WordPress elsewhere, there are a few key distinctions you need know about the Aurora server.

Multisite

Aurora is a multisite installation of WordPress, modeled after WordPress.com. Each site has it's own tables, but they are in one database, and share the same library of plugins and themes.

Plugins

Plugins are controlled at the Network level in Aurora. The addition of any new plugins to the network is decided on by the Aurora Governance Committee, and spelled out in the Wishlist.

Themes

Similar to plugins, Themes are also controlled at the network level. Custom themes are permitted, but must pass a Code Audit process before being allowed on production.

Cornerstone

Cornerstone is not a theme that is generally available to Aurora users. Rather, it was designed to be a starting point or a parent theme for all future themes produced by the UITS Web Development Lab. It is also made available to registered Aurora developers. This page is meant to help those developers in using Cornerstone for their own projects.
cornerstone

Built for Developers

Cornerstone was designed from the ground up to be developer-focused. It’s based on the the WordPress _s (‘underscores’) theme mixed with Bootstrap 3. The design philosophy is to enable and turn on every feature we can think of in Cornerstone, and then child themes will need to unregister the features they don’t support. For example, Cornerstone can support header images, background images, and background colors. However, we may not want those features turned on when the site is being administered by someone less familiar with University Brand standards or web accessibility policies regarding color and contrast.

Themes Using Cornerstone

The following is a list a child themes that already use Cornerstone. These themes were developed at the Web Development Lab and best show how versatile Cornerstone is.

Creating Your Own Theme

Cornerstone is a bare-bones theme created to be developed upon. It is possible to create your own theme built upon cornerstones structure. We welcome you to play with the sources files.

Cornerstone Child Theme Starter Kit

The Cornerstone Child Theme Starter Kit is available to help developers get a new project running quickly. You can access it on GitHub.

customize screen
Cornerstone basic mode on customization screen.
basic screen
Cornerstone basic mode screenshot

Child Theming with SASS

Cornerstone is built with SASS, and if you build your child theme with SASS, you’ll be shocked at how fast you can make a ton of changes. Though you are able to use CSS, Cornerstone was optimized for SASS.

Initial Child Theme Setup

To begin you must create the basic file structure like any other WordPress child theme. Below is an example. UITS has already compiled a starter kit for you in your sandbox.

Your Cornerstone Starter kit should consist of:

  • javascripts
    • min
      • starterkit.min.js
    • starterkit.js
  • sass
    • variables.scss (SASS variables are located here)
  • css
    • variables.css
  • screenshot.jpg
  • functions.php
  • README.md
  • style.css
  • style.scss (This is the ideal place to do style changes)

Understanding SASS

The SASS variables available to you come from three possible documents. Cornerstone registers a large number of new variables mostly pertaining to navigation and widgets.

cs-sass-bootstrap
This is the pre-compiled Bootstrap scss in the global directory, and it has hundreds of variables.
cs-sass-cs
Cornerstone registers a large number of new variables, mostly pertaining to navigation and widgets.
cs-sass-sherman
Sherman, a child theme built with SASS, can redefine any of the variable in Bootstrap or Cornerstone before they are compiled. Rather than wrestling with a dizzying number of selectors and tracking down every single place a single color or font may be referenced, you can edit a few variables and be 80% complete with your redesign. It’s fantastic!

Using a Compiler

In order to make changes, you will have to edit style.scss using the SASS variables. You will also need a SASS compiler. A common one is PREPROS.

prepros scrrenshot
Using Prepros

Editing variables.scss

Once you have a general understanding of the variables and the file structure you can start editing variables.scss. This file contains listed default variables from both Bootstrap and Cornerstone. A change is simple: search for your target tag and change the attribute to whatever you would like it to be.

Overview of the variables.scss file
Overview of the variables.scss file

Example

To change the default link color for the navigation bar you would have to scroll down to the “$navbar” variables and make the changes you would like.

Variables we will be changing. The hex codes would be located here.
Variables we will be changing. The hex codes would be located here.
Look before any changes have been made to variables.
Look before any changes have been made to variables.
change variable
Look after changes have been made. Now, the navigation bar links are light blue!

Editing style.scss

In order to edit the style of your theme you will need to edit it using SASS in style.scss. Variables do not go in style.scss.

Example

Below is an example of how you can change the style of your theme’s master header.

Header before a style change.
Header before a style change.
Changes to styles.scss files.
Changes to styles.scss files.
Theme after style.scss change has been applied.
Theme after style.scss change has been applied.

Child Theming with CSS

Cornerstone was built with SASS, but you can still develop with normal CSS.

Don’t use @import in your CSS file, or your site will break in IE8.

Instead, add this to your functions.php file:

<?php
function link_parent_theme_style() {
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
wp_enqueue_style( 'child-style', get_stylesheet_uri() );
}
add_action('wp_enqueue_scripts', 'link_parent_theme_style');
?>

Typically, a child theme will @import the css of the parent theme. Bootstrap 3, the framework which Cornerstone is based on, offers very limited support for Internet Explorer 8. By default, a Bootstrap 3 site in IE8 will render the mobile view. One column of content, and the collapse mobile navigation.

Being that IE8 accounts for a sizable (~7%) of traffic on Aurora, Cornerstone makes use of respond.js, which uses javascript to mimic media queries for IE8. However, respond.js will not work on anything loaded via @import. So this alternate method is required.

Child Themes

Child themes are a way to take an existing theme, such as Sherman, and change a couple of things about it. For developers looking to create something custom, we highly recommend looking into child themes first.

Resources

Hale 2015

hale 2015Hale 2015 was a theme released in August 2015 as a part of Aurora Update 9. The bold blue Sherman theme was released in the summer of 2014, and its advanced features and customization options proved very popular. However, a number of customers requested a theme with all the functionality of Sherman but with the softer tones of the original Hale theme that was released in 2013. Hale 2015 addresses this issue, adapting the popular Hale design and keeping the powerful features of Sherman. A child of the Cornerstone theme, Hale 2015 will continue to benefit from all new features added to Aurora for years to come.

Themes and Plugins

Themes

UConn currently has four central themes as well as a number of custom themes and child themes created for specific UConn sites.

Plugins

To ensure the security and stability of Aurora, plugins are limited to set number determined by the Aurora Governance Committee. Plugins do get added regularly, but must be thoroughly tested and reviewed for compatibility with existing plugins.

Custom Themes and Plugins

Custom development is allowed for the Aurora WordPress server, but each plugin and theme, as well as any update, will have to go through Code Audit before being allowed in the system. Contact webdev@uconn.edu if you're interested in starting a custom project to get a development environment, and to be added to the developer contact lists. You may also want to look at our Live Sites with Custom/Child Themes.

Additional Links