Responsive HTM5 Drupal 7 Base Theme
SigmaOne is an advanced theme framework for designed for novice user to advanced user.
It provides easy to use configuration area GUI for novice user to use. The goal is to let user configure the layouts of their site without touching a single php code.
For more advanced user, they can turn off the GUI and use easy syntax similar to Drupal .info files to define their custom layout easily.
Sigma One Features
Custom layouting system
- You can specify different layout for different pages
- Able to store layouts in file or database
- Use easy array structure similar to .info file to construct your layout
area[header][#name] = Header Region Area
area[header][#enabled] = 1
area[header][#disable_empty] = 0
area[header][#wrapper] = 1
area[header][#column] = 12
area[header][#clearfix] = 1
area[header][#newrow] = 1
area[header][#lastrow] = 1
area[header][#weight] = 1
area[header][#tag] = header
area[header][#tag_wrapper] = div
- Layout file honour Drupal template suggestion system.
- Column System as 1140.css grid system
- You can enable or disable any plugin that you don't use, and it won't be loaded when the page renders to optimize performance.
Modular CSS system
- CSS is separated to different files according to the context, editing or overriding all or just a part of the base theme css is possible.
jQueryUI integration through plugin
jQuery theme created via theme roller can be inserted quickly just by copying the theme to certain folder, although you will still required to edit the css file to achieve 100% Drupal and jQuery theme intergration.
Theme and its subtheme can be responsive in layout just by enabling the responsive plugins. Currently the plugin is capable to make all Drupal standard forms responsive. Contrib module may need new css to be responsive.
Drag and Drop Layouting
You can use the RegionArea plugin to drag and drop layouts while editing existing layouts or creating new layouts.
Different layout per page
By creating a layout file either from drag and drop GUI via region manager GUI or creating the file manually, user can achieve different layout per page easily.
User can define custom class or ID for area, region or blocks from layout file.
Table element is responsive using mediaTable.js
Color module extended support
You can wrap color module form item inside a field set for better UI if you got many color options that user can choose along with fixed n floating jQuery color picker for greater user interface.
Version 1.x Known Issue
- PHP 5.3.x (tested with 5.3.10) APC modules for windows has bug that will crash Drupal due to failed to require / include files.
Symptoms : WSOD with error message saying php failed to include files or cannot redeclare class.
Solution : Download the latest APC modules from download.php.net/pierre (make sure you backup the original first) or disable APC from php.ini file by removing line "extension=php_apc.dll"
- SuHosin and PHP 5.3 max_input_vars set too low, Since PHP 5.3.9 a new variable called max_input_vars will limit the number of line in $_POST, this will break regionarea plugin if user has too many blocks or regions.
Symptoms : Upon saving regionarea, layout is broken due to broken or incomplete .layout file
Solution : add max_input_vars = 2000 to php.ini and restart apache
More information : http://www.victheme.com/documentation/sigmaone-suhosin-maximum-post and http://www.victheme.com/documentation/sigmaone-increasing-php-maxinputvars
Version 1.x branch is for maintenance & bug fix only.
Active development is in 2.x branch
Roadmap to 2.x stable release
- Merge jQuery UI plugin to core
- Merge HTML 5 plugin to core & only support HTML 5
- Merge Style plugin to core
- Merge Layout plugin to core
- Merge custom plugin class to core
- Restructure Regionarea plugin php code
- Restructure Regionarea JS
- Regionarea utilize jQueryUI dialog & accordion
- Restructure block rendering
- Revamp CSS manager to support multiple layout
- Use OOP when possible
- Add PHP level browser detection and Revamp Layout to support it
Feel free to suggest more feature to be added to 2.x by submitting an issue in the project issues page.