129 lines
4.5 KiB
Markdown
129 lines
4.5 KiB
Markdown
Current state of Rubik for Drupal 7
|
|
-----------------------------------
|
|
Rubik has undergone a slight visual overhaul and structural refactoring to
|
|
accommodate some key changes in D7. In particular:
|
|
|
|
- Page wrapper and styles have been simplified to work both in page context
|
|
and overlay context.
|
|
- New page elements like action links, removed page elements like generic
|
|
footer.
|
|
- New icons for the admin path restructuring and nicer button styles for
|
|
indicating actions.
|
|
|
|
Because these changes represent a departure from the previous visual look of
|
|
Rubik, D7 will be using the 4.x version series. There are plans to backport
|
|
many of these changes to D6 in a 4.x branch as well.
|
|
|
|
### @TODO
|
|
|
|
- Update RTL stylesheets, sprites
|
|
- Browser testing
|
|
|
|
|
|
Rubik
|
|
-----
|
|
Rubik is a clean admin theme designed for use with the admin module. It features
|
|
a set of icons for admin pages provided by Drupal core and aggressive styling to
|
|
reduce visual noise wherever possible.
|
|
|
|
|
|
Requirements
|
|
------------
|
|
You must install the [Tao][1] base theme for Rubik to operate properly.
|
|
|
|
|
|
Overview for subthemers
|
|
-----------------------
|
|
Rubik can be used quite successfully as a base for non-admin themes. Here are
|
|
some reasons you might want to use Rubik as a base theme:
|
|
|
|
- You want to inherit its styling for form and other major page elements.
|
|
- You want to inherit its admin-element styling, e.g. you want to use the same
|
|
theme for both the frontend and backend.
|
|
- You want to inherit form layouts and preprocess routing that Rubik provides.
|
|
|
|
Before beginning to subtheme based on Rubik, please read the README included
|
|
with Tao. As Rubik is a subtheme of Tao, many of the principle and ideas in Tao
|
|
apply to subtheming Rubik as well.
|
|
|
|
|
|
### Form theming
|
|
|
|
To work with form theming in Rubik (and Drupal in general) you should become
|
|
familiar with [`drupal_render()`][2]. Form rendering in Rubik is done in the
|
|
**template file**, not the preprocess, allowing any additional preprocessors to
|
|
alter the form in its structured state.
|
|
|
|
Rubik pushes many system forms through a series of additional preprocess
|
|
functions before templating.
|
|
|
|
- `rubik_preprocess_form_buttons()` detects any root level submit and button
|
|
type elements and groups them together under `$form['buttons']` so they can be
|
|
placed in a wrapping element.
|
|
- `rubik_preprocess_form_legacy()` handles legacy theme function-based forms
|
|
that use a declared theme function. It will first render the form using the
|
|
function specified by `#theme` and then generate a form array that can be used
|
|
with `drupal_render()` in templates.
|
|
|
|
|
|
### Icon classes
|
|
|
|
The admin icons in Rubik are displayed using a CSS sprite and corresponding CSS
|
|
class. The class that refers to each icon is based on a link path to the admin
|
|
page. For a path at `admin/settings/foo`, the classes added to the containing
|
|
element of `span.icon` are:
|
|
|
|
- `path-admin-settings-foo`
|
|
- `path-admin-settings`
|
|
- `path-admin`
|
|
|
|
This allows for your element to fallback to a more generic, placeholder icon if
|
|
the most specific class cannot be used.
|
|
|
|
|
|
### Object & form template layouts
|
|
|
|
Rubik groups elements in the tao object template and various forms into two
|
|
columns.
|
|
|
|
- For object templates (`theme('node')`, `theme('comment')`, etc.) you can
|
|
switch to a typical 1-column layout in you preprocess function:
|
|
|
|
$vars['layout'] = FALSE;
|
|
|
|
- For form templates, you should use `hook_theme()` to and declare the form's
|
|
template as `form-simple`. If a prior preprocess has moved form elements in
|
|
`$vars['sidebar']` for the form, you will need to move them back to the
|
|
`$vars['form']` element.
|
|
|
|
// Switch comment form back to simple layout.
|
|
function mysubtheme_theme() {
|
|
$items['comment_form'] = array(
|
|
'arguments' => array('form' => array()),
|
|
'path' => drupal_get_path('theme', 'rubik') .'/templates',
|
|
'template' => 'form-simple',
|
|
);
|
|
return $items;
|
|
}
|
|
|
|
|
|
### Stylesheets
|
|
|
|
- `core.css` provides styles for standard Drupal core markup elements, in
|
|
particular form elements, list items, pagers, etc. It does not style any "page
|
|
wrapper" or "design elements" like the site logo, navigation, etc.
|
|
- `icons.css` provides styles for the admin icons provided by Rubik.
|
|
- `style.css` provides styles for the Rubik admin theme page wrapper and other
|
|
aesthetic elements. This includes the site title, tabs, navigation, breadcrumb,
|
|
etc. **This is the file you will most likely want to override to begin your
|
|
subtheme.**
|
|
|
|
|
|
Maintainer
|
|
----------
|
|
- yhahn (Young Hahn)
|
|
|
|
|
|
[1]: http://drupal.org/project/tao
|
|
[2]: http://api.drupal.org/api/function/drupal_render/6
|