├── skin
└── frontend
│ └── magentoboilerplate
│ └── default
│ ├── grunt
│ ├── jshint.js
│ ├── uglify.js
│ ├── sass.js
│ ├── watch.js
│ ├── concat.js
│ └── sprite.js
│ ├── images
│ └── sprites
│ │ ├── sprite.png
│ │ ├── sprite-2x.png
│ │ ├── source
│ │ ├── icon-plus.png
│ │ ├── icon-minus.png
│ │ ├── icon-right.png
│ │ ├── icon-search.png
│ │ ├── icon-minus-white.png
│ │ └── icon-plus-white.png
│ │ └── source-2x
│ │ ├── icon-plus.png
│ │ ├── icon-minus.png
│ │ ├── icon-right.png
│ │ ├── icon-search.png
│ │ ├── icon-minus-white.png
│ │ └── icon-plus-white.png
│ ├── scss
│ ├── utilities
│ │ ├── lib
│ │ │ ├── _owl.autoheight.scss
│ │ │ ├── _owl.lazyload.scss
│ │ │ ├── _owl.theme.default.scss
│ │ │ ├── _owl.animate.scss
│ │ │ ├── _owl.video.scss
│ │ │ ├── _owl.theme.scss
│ │ │ └── _owl.carousel.scss
│ │ ├── _helpers.scss
│ │ ├── _sprites.scss
│ │ ├── functions
│ │ │ ├── _strip-unit.scss
│ │ │ ├── _em.scss
│ │ │ └── _ranges.scss
│ │ ├── _functions.scss
│ │ ├── mixins
│ │ │ ├── _rgba-bg.scss
│ │ │ ├── _image-replacement.scss
│ │ │ ├── _box-sizing.scss
│ │ │ ├── _placeholder.scss
│ │ │ ├── _breakpoint.scss
│ │ │ ├── _if-resolution.scss
│ │ │ ├── _css-triangle.scss
│ │ │ └── _accordion.scss
│ │ ├── _placeholders.scss
│ │ ├── _libs.scss
│ │ ├── _mixins.scss
│ │ ├── sprites.styl.mustache
│ │ ├── _vars.scss
│ │ └── sprites
│ │ │ └── _sprite.scss
│ ├── shame
│ │ └── _index.scss
│ ├── states
│ │ ├── _index.scss
│ │ ├── _print.scss
│ │ └── _touch.scss
│ ├── pages
│ │ ├── product
│ │ │ ├── _product.scss
│ │ │ ├── _related.scss
│ │ │ ├── _gallery.scss
│ │ │ └── _extra.scss
│ │ ├── account
│ │ │ ├── _forgot.scss
│ │ │ ├── _register.scss
│ │ │ ├── _login.scss
│ │ │ ├── _dashboard.scss
│ │ │ └── _navigation.scss
│ │ └── category
│ │ │ └── _category.scss
│ ├── components
│ │ ├── _box-listing.scss
│ │ ├── _product-list.scss
│ │ ├── _notices.scss
│ │ ├── _pagination.scss
│ │ ├── _tables.scss
│ │ ├── _breadcrumbs.scss
│ │ ├── _buttons.scss
│ │ ├── _product-grid.scss
│ │ ├── _toolbar.scss
│ │ ├── _navigation.scss
│ │ ├── _product-item.scss
│ │ ├── _forms.scss
│ │ └── _social.scss
│ ├── styles.scss
│ ├── styles-ie.scss
│ ├── layout
│ │ ├── _header.scss
│ │ ├── _grid.scss
│ │ ├── _pages.scss
│ │ ├── _footer.scss
│ │ └── _bar.scss
│ ├── base
│ │ ├── _typography.scss
│ │ └── _base.scss
│ └── _all.scss
│ ├── Gruntfile.js
│ ├── package.json
│ └── js
│ ├── account.js
│ ├── category.js
│ └── lib
│ ├── owlcarousel
│ ├── owl.support.modernizr.js
│ ├── owl.support.js
│ ├── owl.autoheight.js
│ ├── owl.autorefresh.js
│ ├── owl.hash.js
│ ├── owl.animate.js
│ ├── owl.lazyload.js
│ └── owl.autoplay.js
│ ├── toggle.single.js
│ └── enquire.min.js
├── app
├── design
│ └── frontend
│ │ └── magentoboilerplate
│ │ └── default
│ │ ├── template
│ │ ├── page
│ │ │ ├── html
│ │ │ │ ├── before_body_end_js.phtml
│ │ │ │ ├── footer.phtml
│ │ │ │ ├── head.phtml
│ │ │ │ ├── notices.phtml
│ │ │ │ ├── header.phtml
│ │ │ │ └── pager.phtml
│ │ │ ├── popup.phtml
│ │ │ ├── empty.phtml
│ │ │ ├── switch
│ │ │ │ └── languages.phtml
│ │ │ ├── print.phtml
│ │ │ ├── 1column.phtml
│ │ │ ├── 2columns-right.phtml
│ │ │ ├── 3columns.phtml
│ │ │ └── 2columns-left.phtml
│ │ ├── customer
│ │ │ ├── account
│ │ │ │ ├── dashboard
│ │ │ │ │ ├── hello.phtml
│ │ │ │ │ ├── contact.phtml
│ │ │ │ │ ├── info.phtml
│ │ │ │ │ ├── address.phtml
│ │ │ │ │ ├── newsletter.phtml
│ │ │ │ │ └── wishlist.phtml
│ │ │ │ ├── dashboard.phtml
│ │ │ │ └── navigation.phtml
│ │ │ ├── form
│ │ │ │ └── forgotpassword.phtml
│ │ │ └── address
│ │ │ │ └── book.phtml
│ │ ├── catalog
│ │ │ ├── product
│ │ │ │ ├── view
│ │ │ │ │ ├── description.phtml
│ │ │ │ │ ├── addtocart.phtml
│ │ │ │ │ ├── sharing.phtml
│ │ │ │ │ └── media.phtml
│ │ │ │ └── list
│ │ │ │ │ ├── upsell.phtml
│ │ │ │ │ ├── toolbar.phtml
│ │ │ │ │ └── related.phtml
│ │ │ ├── category
│ │ │ │ └── view.phtml
│ │ │ ├── layer
│ │ │ │ └── view.phtml
│ │ │ └── navigation
│ │ │ │ └── subcategory-listing.phtml
│ │ ├── directory
│ │ │ └── currency.phtml
│ │ ├── newsletter
│ │ │ └── subscribe.phtml
│ │ ├── catalogsearch
│ │ │ └── form.mini.phtml
│ │ ├── sales
│ │ │ └── order
│ │ │ │ └── recent.phtml
│ │ ├── reports
│ │ │ └── product_viewed.phtml
│ │ └── persistent
│ │ │ └── customer
│ │ │ └── form
│ │ │ └── login.phtml
│ │ ├── etc
│ │ └── theme.xml
│ │ ├── locale
│ │ └── en_GB
│ │ │ └── translate.csv
│ │ └── layout
│ │ ├── cms.xml
│ │ └── local.xml
├── etc
│ └── modules
│ │ └── Boilerplate_All.xml
└── code
│ └── local
│ └── Boilerplate
│ └── All
│ ├── Block
│ └── Account
│ │ └── Navigation.php
│ ├── etc
│ ├── adminhtml.xml
│ ├── config.xml
│ └── system.xml
│ └── sql
│ └── boilerplate_all_setup
│ └── mysql4-install-0.0.1.php
├── .gitignore
└── README.md
/skin/frontend/magentoboilerplate/default/grunt/jshint.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | beforeconcat: ['js/*.js']
3 | };
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/page/html/before_body_end_js.phtml:
--------------------------------------------------------------------------------
1 | getCssJsHtml(); ?>
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/etc/theme.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | rwd/default
4 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/grunt/uglify.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | libs: {
3 | src: 'js/build/libs.js',
4 | dest: 'js/build/min/libs.min.js'
5 | }
6 | };
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/images/sprites/sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/sprite.png
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/images/sprites/sprite-2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/sprite-2x.png
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/lib/_owl.autoheight.scss:
--------------------------------------------------------------------------------
1 | /*
2 | * Owl Carousel - Auto Height Plugin
3 | */
4 |
5 | .owl-height {
6 | transition: height, 500ms, ease-in-out;
7 | }
8 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/images/sprites/source/icon-plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source/icon-plus.png
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-plus.png
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/images/sprites/source/icon-minus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source/icon-minus.png
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/images/sprites/source/icon-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source/icon-right.png
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/images/sprites/source/icon-search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source/icon-search.png
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-minus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-minus.png
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-right.png
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-search.png
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/images/sprites/source/icon-minus-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source/icon-minus-white.png
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/images/sprites/source/icon-plus-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source/icon-plus-white.png
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-minus-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-minus-white.png
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-plus-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-plus-white.png
--------------------------------------------------------------------------------
/app/etc/modules/Boilerplate_All.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | true
6 | local
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/code/local/Boilerplate/All/Block/Account/Navigation.php:
--------------------------------------------------------------------------------
1 | _links[$name]);
5 | }
6 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/shame/_index.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Shame because hacks happen ----------------------------------- //
3 | // -------------------------------------------------------------- //
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/states/_index.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // States ------------------------------------------------------- //
3 | // -------------------------------------------------------------- //
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/states/_print.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Print -------------------------------------------------------- //
3 | // -------------------------------------------------------------- //
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/states/_touch.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Touch -------------------------------------------------------- //
3 | // -------------------------------------------------------------- //
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/pages/product/_product.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Product ------------------------------------------------------ //
3 | // -------------------------------------------------------------- //
4 |
5 | // to do
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/locale/en_GB/translate.csv:
--------------------------------------------------------------------------------
1 | "###","- - - - - - - - - - - - - - - - - - - - -"
2 | "###","Custom phrases."
3 | "###","- - - - - - - - - - - - - - - - - - - - -"
4 | "###","Catalog Module"
5 | "Regular Price:","Was:"
6 | "Starting at:","From:"
7 | "As low as:","From:"
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/components/_box-listing.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Box listing -------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | .box-listing {
5 | // to do
6 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/components/_product-list.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Product List ------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | .product-list {
5 | // to do
6 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/pages/product/_related.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Related products --------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | .product-related {
5 | // to do
6 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/grunt/sass.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | dist: {
3 | options: {
4 | outputStyle: 'nested'
5 | },
6 | files: {
7 | 'css/styles.css': 'scss/styles.scss',
8 | 'css/styles-ie.css': 'scss/styles-ie.scss'
9 | }
10 | }
11 | };
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/_helpers.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Helper classes ----------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | .no-display {
5 | display: none !important;
6 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/styles.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Application general import file full mq support -------------- //
3 | // -------------------------------------------------------------- //
4 | $mq-support: true;
5 | $mq-fixed-value: false;
6 |
7 | @import "all";
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/_sprites.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Sprites ------------------------------------------------------ //
3 | // -------------------------------------------------------------- //
4 | @import "sprites/sprite";
5 | @import "sprites/sprite-2x";
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/lib/_owl.lazyload.scss:
--------------------------------------------------------------------------------
1 | /*
2 | * Owl Carousel - Lazy Load Plugin
3 | */
4 |
5 | .owl-carousel {
6 | .owl-item {
7 | .owl-lazy {
8 | opacity: 0;
9 | transition: opacity, 400ms, ease;
10 | }
11 | img{
12 | transform-style: preserve-3d;
13 | }
14 | }
15 | }
16 |
17 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/styles-ie.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Application general import file no mq for lte-IE8 use -------- //
3 | // -------------------------------------------------------------- //
4 | $mq-support: false;
5 | $mq-fixed-value: 64.000em; // 1024px / 16px
6 |
7 | @import "all";
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/functions/_strip-unit.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Strip unit --------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | @function strip-unit($num) {
5 | @return $num / ($num * 0 + 1);
6 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/_functions.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Functions ---------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | @import "functions/ranges";
5 | @import "functions/strip-unit";
6 | @import "functions/em";
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/Gruntfile.js:
--------------------------------------------------------------------------------
1 | module.exports = function(grunt) {
2 | // load grunt config
3 | require('load-grunt-config')(grunt);
4 |
5 | // register task: default
6 | grunt.registerTask('default', [
7 | 'sprite',
8 | 'sass',
9 | 'jshint',
10 | 'concat',
11 | 'uglify',
12 | 'watch'
13 | ]);
14 | };
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/pages/account/_forgot.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Forgot Password ---------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | .account-forgot {
5 | .column {
6 | background-color: $concrete;
7 | padding: em(30);
8 | }
9 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/pages/category/_category.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Category ----------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | .category-description {
5 | margin-bottom: em(20, 13);
6 | font-size: em(13);
7 | color: $boulder;
8 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/mixins/_rgba-bg.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // RGBA with fallback ------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | @mixin rgba-bg($color, $percent: 0.9) {
5 | background: $color;
6 | background: rgba($color, $percent);
7 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/pages/account/_register.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Register ----------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | .account-create {
5 | .column {
6 | background-color: $concrete;
7 | padding: em(30);
8 | }
9 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/pages/product/_gallery.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Gallery ------------------------------------------------------ //
3 | // -------------------------------------------------------------- //
4 | .product-img-box {
5 | // to do
6 | width: em(800);
7 |
8 | .more-views .item.visible {
9 | border: 2px solid red;
10 | }
11 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/layout/_header.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Header ------------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | .page-header {
5 | padding: em(130) 0 em(100);
6 |
7 | .logo {
8 | font-weight: bold;
9 | font-size: em(32);
10 | color: $mine-shaft;
11 | }
12 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/_placeholders.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Clearfix ----------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | %clearfix {
5 | &:before,
6 | &:after {
7 | content: " "; // 1
8 | display: table; // 2
9 | }
10 |
11 | &:after {
12 | clear: both;
13 | }
14 | }
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/customer/account/dashboard/hello.phtml:
--------------------------------------------------------------------------------
1 |
2 |
__('Hello %s!', $this->escapeHtml($this->getCustomerName())) ?>
3 |
__('Welcome to your dashboard. Here you can track your orders, update and share your wishlist, edit billing / shipping info and more.') ?>
4 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/functions/_em.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // px to em conversion ------------------------------------------ //
3 | // -------------------------------------------------------------- //
4 | @function em($target, $context: $base-em) {
5 | $target: strip-unit($target) / strip-unit($context) * 1em;
6 | @if ($target == 0em) { $target: 0; } // Turn 0em into 0
7 | @return $target;
8 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/mixins/_image-replacement.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Image replacement -------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | @mixin image-replacement {
5 | text-indent: -9999px;
6 | }
7 |
8 | // Undo the replacement for child elements
9 | @mixin image-replacement-override {
10 | text-indent: 0;
11 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/_libs.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Libraries from Third Parties --------------------------------- //
3 | // -------------------------------------------------------------- //
4 | @import "lib/owl.carousel";
5 | @import "lib/owl.lazyload";
6 | @import "lib/owl.autoheight";
7 | @import "lib/owl.video";
8 | @import "lib/owl.animate";
9 | @import "lib/owl.theme.default";
10 | @import "lib/owl.theme";
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/mixins/_box-sizing.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Box sizing --------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | @mixin box-sizing($type: border-box) {
5 | -webkit-box-sizing: $type; // Android < 2.3, iOS < 4
6 | -moz-box-sizing: $type; // Firefox < 29
7 | box-sizing: $type; // Chrome, IE 8+, Opera, Safari 5.1
8 | }
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/catalog/product/view/description.phtml:
--------------------------------------------------------------------------------
1 |
8 | getProduct()->getDescription();
10 | ?>
11 |
12 |
13 |
14 | helper('catalog/output')->productAttribute($this->getProduct(), $_description, 'description') ?>
15 |
16 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/_mixins.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Mixins ------------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | @import "mixins/box-sizing";
5 | @import "mixins/breakpoint";
6 | @import "mixins/if-resolution";
7 | @import "mixins/css-triangle";
8 | @import "mixins/placeholder";
9 | @import "mixins/rgba-bg";
10 | @import "mixins/accordion";
11 | @import "mixins/image-replacement";
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/base/_typography.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Typography --------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | h1,
5 | .h1 {
6 | font-size: em(18);
7 | margin-bottom: em(10, 18);
8 | }
9 |
10 | h2,
11 | .h2 {
12 | font-size: em(18);
13 | margin-bottom: em(10, 18);
14 | }
15 |
16 | h3,
17 | .h3 {
18 | font-size: em(15);
19 | margin-bottom: em(10, 15);
20 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/functions/_ranges.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Ranges ------------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | @function lower-bound($range){
5 | @if length($range) <= 0 {
6 | @return 0;
7 | }
8 |
9 | @return nth($range, 1);
10 | }
11 |
12 | @function upper-bound($range) {
13 | @if length($range) < 2 {
14 | @return 999999999999;
15 | }
16 |
17 | @return nth($range, 2);
18 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/components/_notices.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // GLobal site notices ------------------------------------------ //
3 | // -------------------------------------------------------------- //
4 | .global-site-notice {
5 | background-color: $color-secondary;
6 | color: $boulder;
7 | @extend %clearfix;
8 |
9 | p {
10 | float: left;
11 | font-size: em(14);
12 | padding: em(15) em(20);
13 | }
14 |
15 | .first {
16 | border-right: 1px solid $boulder;
17 | }
18 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/mixins/_placeholder.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Placeholder text color --------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | @mixin placeholder($color) {
5 | &::-webkit-input-placeholder { color: $color; } // Safari and Chrome
6 | &:-moz-placeholder { color: $color; opacity: 1 !important; } // Firefox 4-18
7 | &::-moz-placeholder { color: $color; opacity: 1 !important; } // Firefox 19+
8 | &:-ms-input-placeholder { color: $color; } // Internet Explorer 10+
9 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/components/_pagination.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Pagination --------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | .pagination {
5 | li {
6 | float: left;
7 | margin-left: em(4);
8 |
9 | &.current span {
10 | background-color: $concrete;
11 | }
12 | }
13 |
14 | a,
15 | span {
16 | display: block;
17 | font-size: em(14);
18 | padding: 0 em(8, 14);
19 | color: $boulder;
20 | border-radius: 3px;
21 | }
22 | }
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/page/html/footer.phtml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/customer/account/dashboard/contact.phtml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/lib/_owl.theme.default.scss:
--------------------------------------------------------------------------------
1 | /*
2 | * Default theme - Owl Carousel CSS File
3 | */
4 |
5 | $color-base: #869791;
6 | $color-white: #FFF;
7 | $color-gray: #D6D6D6;
8 |
9 | //nav
10 |
11 | $nav-color: $color-white;
12 | $nav-color-hover: $color-white;
13 | $nav-font-size: 14px;
14 | $nav-rounded: 3px;
15 | $nav-margin: 5px;
16 | $nav-padding: 4px 7px;
17 | $nav-background: $color-gray;
18 | $nav-background-hover: $color-base;
19 | $nav-disabled-opacity: 0.5;
20 |
21 | //dots
22 |
23 | $dot-width: 10px;
24 | $dot-height: 10px;
25 | $dot-rounded: 30px;
26 | $dot-margin: 5px 7px;
27 | $dot-background: $color-gray;
28 | $dot-background-active: $color-base;
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/components/_tables.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Tables ------------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | .data-table {
5 | width: 100%;
6 |
7 | th,
8 | td {
9 | font-size: em(14);
10 | }
11 |
12 | thead {
13 | th {
14 | background-color: $concrete;
15 | text-align: left;
16 | padding: em(15, 14) em(20, 14);
17 | }
18 | }
19 |
20 | tbody {
21 | td {
22 | padding: em(10, 14) em(20, 14);
23 | border-bottom: 1px solid $concrete;
24 | }
25 | }
26 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/lib/_owl.animate.scss:
--------------------------------------------------------------------------------
1 | /*
2 | * Owl Carousel - Animate Plugin
3 | */
4 | .owl-carousel{
5 | .animated {
6 | -webkit-animation-duration: 1000ms;
7 | animation-duration: 1000ms;
8 | -webkit-animation-fill-mode: both;
9 | animation-fill-mode: both;
10 | }
11 | .owl-animated-in {
12 | z-index: 0;
13 | }
14 | .owl-animated-out {
15 | z-index: 1;
16 | }
17 | .fadeOut {
18 | -webkit-animation-name: fadeOut;
19 | animation-name: fadeOut;
20 | }
21 | }
22 |
23 | @-webkit-keyframes fadeOut {
24 | 0% {
25 | opacity: 1;
26 | }
27 |
28 | 100% {
29 | opacity: 0;
30 | }
31 | }
32 | @keyframes fadeOut {
33 | 0% {
34 | opacity: 1;
35 | }
36 |
37 | 100% {
38 | opacity: 0;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/customer/account/dashboard.phtml:
--------------------------------------------------------------------------------
1 |
2 | getMessagesBlock()->getGroupedHtml() ?>
3 |
4 | getChildHtml('hello') ?>
5 | getChildHtml('sales'); ?>
6 | getChildHtml('wishlist'); ?>
7 |
8 | getChildHtml('top') ?>
9 |
10 | getChildHtml('customer.account.dashboard.extra') ?>
11 | getChildHtml('info') ?>
12 | getChildHtml('address') ?>
13 | getChildHtml('info1') ?>
14 | getChildHtml('info2') ?>
15 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/grunt/watch.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | grunt: {
3 | files: ['Gruntfile.js'],
4 | options: {
5 | reload: true
6 | }
7 | },
8 | sprite: {
9 | files: ['images/sprites/source/*.png', 'images/sprites/source-2x/*.png'],
10 | tasks: ['sprite'],
11 | options: {
12 | livereload: true
13 | }
14 | },
15 | sass: {
16 | files: 'scss/**/*.scss',
17 | tasks: ['sass'],
18 | options: {
19 | livereload: true
20 | }
21 | },
22 | scripts: {
23 | files: ['js/**/*.js'],
24 | tasks: ['jshint', 'concat', 'uglify'],
25 | options: {
26 | livereload: true
27 | }
28 | }
29 | };
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/grunt/concat.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | libs: {
3 | src: [
4 | 'js/lib/enquire.min.js',
5 | 'js/lib/owlcarousel/owl.carousel.js',
6 | 'js/lib/owlcarousel/owl.autorefresh.js',
7 | 'js/lib/owlcarousel/owl.lazyload.js',
8 | 'js/lib/owlcarousel/owl.autoheight.js',
9 | 'js/lib/owlcarousel/owl.video.js',
10 | 'js/lib/owlcarousel/owl.animate.js',
11 | 'js/lib/owlcarousel/owl.autoplay.js',
12 | 'js/lib/owlcarousel/owl.navigation.js',
13 | 'js/lib/owlcarousel/owl.hash.js',
14 | 'js/lib/owlcarousel/owl.support.js',
15 | 'js/lib/toggle.single.js'
16 | ],
17 | dest: 'js/build/libs.js'
18 | }
19 | };
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/page/html/head.phtml:
--------------------------------------------------------------------------------
1 |
2 |
3 | getTitle() ?>
4 |
5 |
6 |
7 |
8 |
9 |
10 | getCssJsHtml() ?>
11 | getChildHtml() ?>
12 | helper('core/js')->getTranslatorScript() ?>
13 | getIncludes() ?>
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/layout/_grid.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Grid --------------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 |
5 | // Fluid container
6 | .container {
7 | margin-right: auto;
8 | margin-left: auto;
9 | padding-left: em(15);
10 | padding-right: em(15);
11 | max-width: $max-container-width;
12 | @extend %clearfix;
13 | }
14 |
15 | // Rows container and clears the floats of your columns
16 | .row {
17 | margin-left: em(-15);
18 | margin-right: em(-15);
19 | @extend %clearfix;
20 | }
21 |
22 | // Columns
23 | .column {
24 | float: left;
25 | width: 100%;
26 | padding-left: em(15);
27 | padding-right: em(15);
28 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/components/_breadcrumbs.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Breadcrumbs -------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | .breadcrumbs {
5 | background-color: $concrete;
6 | padding: em(10);
7 | text-transform: uppercase;
8 | @extend %clearfix;
9 |
10 | @include bp(max-width, $medium-max) {
11 | display: none;
12 | }
13 |
14 | ul > li {
15 | float: left;
16 | font-size: em(10);
17 | color: $boulder;
18 | }
19 |
20 | a {
21 | float: left;
22 | }
23 |
24 | span {
25 | float: left;
26 | padding: 0 em(10);
27 | }
28 |
29 | strong {
30 | font-weight: normal;
31 | }
32 | }
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/customer/account/dashboard/info.phtml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
10 | escapeHtml($this->getCustomer()->getName()) ?>
11 | escapeHtml($this->getCustomer()->getEmail()) ?>
12 | __('Change Password') ?>
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/app/code/local/Boilerplate/All/etc/adminhtml.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Allow Everything
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | Boilerplate - All
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Ignore everything in the root except the "app, skin" directories.
2 | /*
3 | !.gitignore
4 | !app/
5 | !skin/
6 |
7 | # Ignore everything in the "app, skin" directories, except the "magentoboilerplate"
8 | # directories.
9 | app/*
10 | !app/design/
11 | app/design/adminhtml/
12 | app/design/frontend/*
13 | !app/design/frontend/magentoboilerplate/
14 | app/design/install/
15 |
16 | !app/etc/
17 | app/etc/*
18 | !app/etc/modules/
19 | app/etc/modules/*
20 | !app/etc/modules/Boilerplate_*.xml
21 |
22 | !app/code/
23 | app/code/community/
24 | app/code/core/
25 |
26 | skin/*
27 | !skin/frontend/
28 | skin/frontend/*
29 | !skin/frontend/magentoboilerplate/
30 | skin/frontend/magentoboilerplate/default/css/*
31 |
32 | # Ignore sass cache
33 | .sass-cache
34 |
35 | # Ignore node files
36 | npm-debug.log
37 | node_modules
38 |
39 | # Readme / License
40 | !README.md
41 | !LICENSE-GPL
42 |
43 | # OS generated files
44 | .DS_Store
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/layout/_pages.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Pages -------------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 |
5 | // Two columns with left sidebar
6 | .col2-left-layout {
7 | > .row > .column-left {
8 | @include bp(min-width, $large-min) {
9 | width: 25%;
10 | }
11 | }
12 |
13 | > .row .column-main {
14 | @include bp(min-width, $large-min) {
15 | width: 75%;
16 | }
17 | }
18 | }
19 |
20 | // Two columns with right sidebar
21 | .col2-right-layout {
22 | > .row > .column-right {
23 | @include bp(min-width, $large-min) {
24 | width: 35%;
25 | }
26 | }
27 |
28 | > .row .column-main {
29 | @include bp(min-width, $large-min) {
30 | width: 65%;
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/grunt/sprite.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | build: {
3 | src: 'images/sprites/source/**/*.*',
4 | dest: 'images/sprites/sprite.png',
5 | destCss: 'scss/utilities/sprites/_sprite.scss',
6 | imgPath: '../images/sprites/sprite.png',
7 | cssTemplate: 'scss/utilities/sprites.styl.mustache',
8 | cssVarMap: function (sprite) {
9 | sprite.name = 'sprite__' + sprite.name;
10 | },
11 | padding: 20
12 | },
13 | buildRetina: {
14 | src: 'images/sprites/source-2x/**/*.*',
15 | dest: 'images/sprites/sprite-2x.png',
16 | destCss: 'scss/utilities/sprites/_sprite-2x.scss',
17 | imgPath: '../images/sprites/sprite-2x.png',
18 | cssTemplate: 'scss/utilities/sprites.styl.mustache',
19 | cssVarMap: function (sprite) {
20 | sprite.name = 'sprite-2x__' + sprite.name;
21 | },
22 | padding: 40
23 | }
24 | };
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/mixins/_breakpoint.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Breakpoint --------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | $mq-support: true !default;
5 | $mq-fixed-value: 64.000em !default; // 1024px / 16px
6 |
7 | @mixin bp($feature, $value) {
8 | // Media queries supported
9 | @if $mq-support == true {
10 |
11 | @media #{$screen} and ($feature: $value) {
12 | @content;
13 | }
14 |
15 | // Media queries not supported
16 | } @else {
17 |
18 | @if $feature == 'min-width' {
19 | @if $value <= $mq-fixed-value {
20 | @content;
21 | }
22 | } @else if $feature == 'max-width' {
23 | @if $value >= $mq-fixed-value {
24 | @content;
25 | }
26 | }
27 |
28 | }
29 | }
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/page/html/notices.phtml:
--------------------------------------------------------------------------------
1 |
6 | displayNoscriptNotice()): ?>
7 |
8 |
9 |
__('JavaScript Disabled'); ?>
10 |
__('JavaScript seems to be disabled in your browser. You must have JavaScript enabled in your browser to utilize the functionality of this website.'); ?>
11 |
12 |
13 |
14 | displayDemoNotice()): ?>
15 |
16 |
17 |
__('This is a demo store. Any orders placed through this store will not be honored or fulfilled.') ?>
18 |
19 |
20 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/components/_buttons.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Buttons ------------------------------------------------------ //
3 | // -------------------------------------------------------------- //
4 | .button {
5 | display: inline-block;
6 | background: $color-primary;
7 | border: 0;
8 | border-radius: 3px;
9 | font-size: em(16);
10 | padding: em(8, 16) em(15, 16);
11 | transition: all 0.1s ease-in-out 0s;
12 | color: $white;
13 | height: em(50, 16);
14 | line-height: 2.1;
15 | cursor: pointer;
16 |
17 | &:hover {
18 | background: darken($color-primary, 5%);
19 | color: $white;
20 | }
21 | }
22 |
23 | .buttons-set {
24 | margin-top: em(20);
25 | @extend %clearfix;
26 |
27 | a:not(.button) {
28 | float: left;
29 | font-size: em(14);
30 | margin-top: em(14, 14);
31 | }
32 |
33 | .button {
34 | float: right;
35 | }
36 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/mixins/_if-resolution.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // If resolution ------------------------------------------------ //
3 | // -------------------------------------------------------------- //
4 | @mixin if-min-resolution($dppx) {
5 | @include if-resolution(min, $dppx) {
6 | @content;
7 | }
8 | }
9 |
10 | @mixin if-max-resolution($dppx) {
11 | @include if-resolution(max, $dppx) {
12 | @content;
13 | }
14 | }
15 |
16 | @mixin if-resolution($prefix, $dppx) {
17 | $dpi: $dppx * 96; // 1px = 96dpi
18 | @media
19 | (-webkit-#{$prefix}-device-pixel-ratio: #{$dppx}),
20 | ( #{$prefix}--moz-device-pixel-ratio: #{$dppx}),
21 | ( -o-#{$prefix}-device-pixel-ratio: #{$dppx*2}/2),
22 | ( #{$prefix}-device-pixel-ratio: #{$dppx}),
23 | ( #{$prefix}-resolution: #{$dpi}dpi),
24 | ( #{$prefix}-resolution: #{$dppx}dppx) {
25 | @content;
26 | }
27 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "magento-boilerplate",
3 | "version": "1.0.0",
4 | "description": "RWD Magento Boilerplate",
5 | "repository": {
6 | "type": "git",
7 | "url": "https://github.com/jasonalvis/magento-boilerplate"
8 | },
9 | "keywords": [
10 | "magento",
11 | "rwd",
12 | "sass",
13 | "grunt"
14 | ],
15 | "author": "Jason Alvis",
16 | "license": "MIT",
17 | "bugs": {
18 | "url": "https://github.com/jasonalvis/magento-boilerplate/issues"
19 | },
20 | "homepage": "https://github.com/jasonalvis/magento-boilerplate",
21 | "dependencies": {
22 | "grunt": "^0.4.5",
23 | "grunt-contrib-concat": "^0.5.1",
24 | "grunt-contrib-jshint": "^0.11.2",
25 | "grunt-contrib-uglify": "^0.9.1",
26 | "grunt-contrib-watch": "^0.6.1",
27 | "grunt-sass": "^1.0.0",
28 | "grunt-spritesmith": "^4.7.1",
29 | "load-grunt-config": "^0.17.2",
30 | "node-sass": "^3.2.0"
31 | }
32 | }
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/catalog/product/view/addtocart.phtml:
--------------------------------------------------------------------------------
1 | getProduct();
3 | $buttonTitle = $this->__('Add to Cart');
4 | ?>
5 |
6 | isSaleable()): ?>
7 |
8 | isGrouped()): ?>
9 |
10 | __('Qty:') ?>
11 |
12 |
13 |
14 |
15 |
16 |
17 | getChildHtml('', true, true) ?>
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/js/account.js:
--------------------------------------------------------------------------------
1 | var SiteAccount = (function ($) {
2 | "use strict";
3 |
4 | // private alias to settings
5 | var s;
6 |
7 | return {
8 | settings: function(){
9 | this.bpLarge = 64.0625;
10 | },
11 |
12 | init: function() {
13 | s = new this.settings();
14 |
15 | this.toggleAccountNav();
16 | },
17 |
18 | toggleAccountNav: function(){
19 | enquire.register('(max-width: ' + s.bpLarge + 'em)', {
20 | setup: function () {
21 | this.elements = $j('.block-account-nav .block-subtitle--nav');
22 | },
23 | match: function () {
24 | this.elements.toggleSingle();
25 | },
26 | unmatch: function () {
27 | this.elements.toggleSingle({destruct: true});
28 | }
29 | });
30 | }
31 | };
32 | })(jQuery);
33 |
34 |
35 | $j(document).ready(function() {
36 |
37 | SiteAccount.init();
38 |
39 | });
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/js/category.js:
--------------------------------------------------------------------------------
1 | var SiteCategory = (function ($) {
2 | "use strict";
3 |
4 | // private alias to settings
5 | var s;
6 |
7 | return {
8 | settings: function() {
9 | this.bpLarge = 64.0625;
10 | },
11 |
12 | init: function() {
13 | s = new this.settings();
14 |
15 | this.toggleLayeredNav();
16 | },
17 |
18 | toggleLayeredNav: function(){
19 | enquire.register('(max-width: ' + s.bpLarge + 'em)', {
20 | setup: function () {
21 | this.elements = $j('.column-left .block-layered-nav .block-subtitle--filter');
22 | },
23 | match: function () {
24 | this.elements.toggleSingle();
25 | },
26 | unmatch: function () {
27 | this.elements.toggleSingle({destruct: true});
28 | }
29 | });
30 | }
31 | };
32 | })(jQuery);
33 |
34 |
35 | $j(document).ready(function() {
36 |
37 | SiteCategory.init();
38 |
39 | });
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/page/popup.phtml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | getChildHtml('head') ?>
13 |
14 |
15 |
16 |
17 | getChildHtml('after_body_start') ?>
18 | getChildHtml('content') ?>
19 | getChildHtml('before_body_end_js'); ?>
20 | getChildHtml('before_body_end') ?>
21 |
22 | getAbsoluteFooter() ?>
23 |
24 |
25 |
--------------------------------------------------------------------------------
/app/code/local/Boilerplate/All/sql/boilerplate_all_setup/mysql4-install-0.0.1.php:
--------------------------------------------------------------------------------
1 | startSetup();
4 | $setup = new Mage_Eav_Model_Entity_Setup('core_setup');
5 | $connection = $installer->getConnection();
6 |
7 | // -------------------------------------------------------------- //
8 | // Sub-category listing ----------------------------------------- //
9 | // -------------------------------------------------------------- //
10 |
11 | // Create static cms block
12 | $connection->insert($installer->getTable('cms/block'), array(
13 | 'title' => 'Sub Category Listing',
14 | 'identifier' => 'sub-category-listing',
15 | 'content' => '{{block type="catalog/navigation" template="catalog/navigation/subcategory-listing.phtml"}}',
16 | 'creation_time' => now(),
17 | 'update_time' => now(),
18 | ));
19 |
20 | $connection->insert($installer->getTable('cms/block_store'), array(
21 | 'block_id' => $connection->lastInsertId(),
22 | 'store_id' => 0
23 | ));
24 |
25 | $installer->endSetup();
26 | ?>
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/components/_product-grid.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Product Grid ------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | .products-grid {
5 | &.row {
6 | margin-left: em(-10);
7 | margin-right: em(-10);
8 | }
9 |
10 | .column {
11 | padding: em(10);
12 | width: (100% / 2);
13 |
14 | &:nth-child(2n+1) {
15 | clear: left;
16 | }
17 |
18 | @include bp(min-width, $medium-min) {
19 | width: (100% / 3);
20 |
21 | &:nth-child(2n+1) {
22 | clear: none;
23 | }
24 |
25 | &:nth-child(3n+1) {
26 | clear: left;
27 | }
28 | }
29 |
30 | @include bp(min-width, $large-min) {
31 | width: (100% / 4);
32 |
33 | &:nth-child(3n+1) {
34 | clear: none;
35 | }
36 |
37 | &:nth-child(4n+1) {
38 | clear: left;
39 | }
40 | }
41 | }
42 | }
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/catalog/category/view.phtml:
--------------------------------------------------------------------------------
1 |
8 | helper('catalog/output');
10 | $_category = $this->getCurrentCategory();
11 | ?>
12 |
13 |
15 | categoryAttribute($_category, $_category->getName(), 'name') ?>
16 |
17 | */ ?>
18 |
19 | getMessagesBlock()->getGroupedHtml() ?>
20 |
21 | getCurrentCategory()->getDescription()): ?>
22 |
23 | categoryAttribute($_category, $_description, 'description') ?>
24 |
25 |
26 |
27 | isContentMode()): ?>
28 |
29 | getCmsBlockHtml() ?>
30 |
31 | isMixedMode()): ?>
32 |
33 | getCmsBlockHtml() ?>
34 | getProductListHtml() ?>
35 |
36 |
37 |
38 | getProductListHtml() ?>
39 |
40 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/mixins/_css-triangle.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // CSS triangle ------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | @mixin css-triangle($triangle-size, $triangle-color, $triangle-direction) {
5 | content: "";
6 | display: block;
7 | width: 0;
8 | height: 0;
9 | border: inset $triangle-size;
10 |
11 | @if ($triangle-direction == top) {
12 | border-color: $triangle-color transparent transparent transparent;
13 | border-top-style: solid;
14 | }
15 | @if ($triangle-direction == bottom) {
16 | border-color: transparent transparent $triangle-color transparent;
17 | border-bottom-style: solid;
18 | }
19 | @if ($triangle-direction == left) {
20 | border-color: transparent transparent transparent $triangle-color;
21 | border-left-style: solid;
22 | }
23 | @if ($triangle-direction == right) {
24 | border-color: transparent $triangle-color transparent transparent;
25 | border-right-style: solid;
26 | }
27 | }
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/page/empty.phtml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | getChildHtml('head') ?>
13 |
14 |
15 |
16 |
17 | getChildHtml('after_body_start') ?>
18 | getChildHtml('global_messages') ?>
19 | getChildHtml('content') ?>
20 | getChildHtml('before_body_end_js'); ?>
21 | getChildHtml('before_body_end') ?>
22 | getAbsoluteFooter() ?>
23 |
24 |
25 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/components/_toolbar.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Toolbar ------------------------------------------------------ //
3 | // -------------------------------------------------------------- //
4 | .toolbar {
5 | padding: em(20) 0 em(10);
6 | border-top: 1px solid $concrete;
7 | @extend %clearfix;
8 |
9 | &.toolbar-bottom {
10 | border-bottom: 1px solid $concrete;
11 | }
12 |
13 | p,
14 | label,
15 | select {
16 | font-size: em(14);
17 | color: $boulder;
18 | }
19 |
20 | label {
21 | padding-right: em(5, 14);
22 | }
23 |
24 | // select {
25 | // width: em(100, 14);
26 | // }
27 |
28 | // label,
29 | // select,
30 | // .style-select {
31 | // display: inline-block;
32 | // }
33 |
34 | .amount {
35 | float: left;
36 | }
37 |
38 | .limiter,
39 | .pages,
40 | .sort-by {
41 | float: right;
42 | }
43 |
44 | .sort-by,
45 | .pages {
46 | margin-left: em(20);
47 | }
48 |
49 | .pages {
50 | margin-top: em(2);
51 | }
52 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/pages/account/_login.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Login -------------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | .account-login {
5 | .row {
6 | margin: 0;
7 | }
8 |
9 | .column {
10 | background-color: $white;
11 | padding: 0;
12 | }
13 |
14 | .column-inner {
15 | background-color: $concrete;
16 | padding: em(30);
17 | }
18 |
19 | .registration-open {
20 | .column-left {
21 | @include bp(min-width, $large-min) {
22 | border-right: em(30) solid $white;
23 | width: 51%;
24 | }
25 | }
26 |
27 | .column-right {
28 | margin-top: em(30);
29 |
30 | @include bp(min-width, $large-min) {
31 | width: 49%;
32 | margin-top: 0;
33 | }
34 | }
35 | }
36 |
37 | .account-login-contents {
38 | @include bp(min-width, $large-min) {
39 | background-color: $concrete;
40 | }
41 | }
42 | }
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/directory/currency.phtml:
--------------------------------------------------------------------------------
1 |
8 | getCurrencyCount()>1): ?>
9 |
10 |
11 | getLocale()->currency(Mage::app()->getStore()->getCurrentCurrencyCode())->getSymbol(); ?>
12 |
13 |
14 |
15 |
16 |
17 | getCurrencies() as $_code => $_name): ?>
18 | getCurrentCurrencyCode()): ?> selected="selected">
19 | -
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/newsletter/subscribe.phtml:
--------------------------------------------------------------------------------
1 |
2 |
__('Subscribe to our newsletter to receive news and offers by email. We don\'t do spam, just the good stuff.'); ?>
3 |
4 |
13 |
14 |
19 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/pages/product/_extra.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Product extra ------------------------------------------------ //
3 | // -------------------------------------------------------------- //
4 | .product-extra {
5 | background-color: $concrete;
6 | padding: em(80) 0;
7 |
8 | .tab-nav {
9 | text-align: center;
10 | text-transform: uppercase;
11 | font-weight: bold;
12 | font-size: 0;
13 |
14 | a {
15 | display: inline-block;
16 | font-size: 12px;
17 | padding-bottom: em(13, 12);
18 | border-bottom: 1px solid $boulder;
19 | width: 50%;
20 | color: $color-secondary;
21 |
22 | @include bp(min-width, $medium-min) {
23 | width: 290px;
24 | }
25 | }
26 |
27 | a.open {
28 | border-bottom: 2px solid $color-secondary;
29 | padding-bottom: em(12, 12);
30 | }
31 | }
32 |
33 | .tab-pane {
34 | display: none;
35 | margin-top: em(20);
36 |
37 | &.open {
38 | display: block;
39 | }
40 | }
41 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/lib/_owl.video.scss:
--------------------------------------------------------------------------------
1 | /*
2 | * Owl Carousel - Video Plugin
3 | */
4 |
5 | .owl-carousel{
6 | .owl-video-wrapper {
7 | position: relative;
8 | height: 100%;
9 | background: #000;
10 | }
11 | .owl-video-play-icon {
12 | position: absolute;
13 | height: 80px;
14 | width: 80px;
15 | left: 50%;
16 | top: 50%;
17 | margin-left: -40px;
18 | margin-top: -40px;
19 | background: url("owl.video.play.png") no-repeat;
20 | cursor: pointer;
21 | z-index: 1;
22 | -webkit-backface-visibility: hidden;
23 | transition: scale, 100ms, ease;
24 | }
25 | .owl-video-play-icon:hover {
26 | transition: scale(1.3, 1.3);
27 | }
28 | .owl-video-playing .owl-video-tn,
29 | .owl-video-playing .owl-video-play-icon {
30 | display: none;
31 | }
32 | .owl-video-tn {
33 | opacity: 0;
34 | height: 100%;
35 | background-position: center center;
36 | background-repeat: no-repeat;
37 | -webkit-background-size: contain;
38 | -moz-background-size: contain;
39 | -o-background-size: contain;
40 | background-size: contain;
41 | transition: opacity, 400ms, ease;
42 | }
43 | .owl-video-frame {
44 | position: relative;
45 | z-index: 1;
46 | height: 100%;
47 | width: 100%;
48 | }
49 | }
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/customer/account/navigation.phtml:
--------------------------------------------------------------------------------
1 |
2 |
__('Account Navigation'); ?>
3 |
4 |
5 | getLinks();
7 | $_index = 1;
8 | $_count = count($_links);
9 | ?>
10 |
11 |
12 | = $_count); ?>
13 |
14 | isActive($_link)): ?>
15 |
16 |
17 | getLabel() ?>
18 |
19 |
20 |
21 | >
22 |
23 | getLabel() ?>
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/page/switch/languages.phtml:
--------------------------------------------------------------------------------
1 |
8 | getStores())>1): ?>
9 |
29 |
30 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/customer/account/dashboard/address.phtml:
--------------------------------------------------------------------------------
1 | getCustomer()->getDefaultShipping();
3 | $_billingAdd = Mage::getSingleton('customer/session')->getCustomer()->getDefaultBilling();
4 | ?>
5 |
6 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/components/_navigation.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Layered Navigation ------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | .block-layered-nav {
5 | .block-content {
6 | @include accordion;
7 | }
8 |
9 | li {
10 | margin: em(5) 0;
11 |
12 | .count {
13 | color: #bcbcbc;
14 | }
15 | }
16 |
17 | .block-subtitle--filter {
18 | position: relative;
19 | cursor: pointer;
20 | background-color: $color-secondary;
21 | color: $white;
22 | font-weight: bold;
23 | font-size: em(14);
24 | padding: em(10, 14) em(15, 14);
25 | margin-bottom: 1px;
26 |
27 | span:after {
28 | content: "";
29 | display: block;
30 | position: absolute;
31 | top: 50%;
32 | right: 15px;
33 | margin-top: -5px;
34 | @include sprite-2x($sprite__icon-plus-white, $sprite-2x__icon-plus-white);
35 | }
36 |
37 | &.active span:after {
38 | @include sprite-2x($sprite__icon-minus-white, $sprite-2x__icon-minus-white);
39 | }
40 |
41 | @include bp(min-width, $large-min) {
42 | display: none;
43 | }
44 | }
45 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/pages/account/_dashboard.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Dashboard ---------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | .account-block {
5 | margin-bottom: em(30);
6 |
7 | .account-block-heading {
8 | margin-bottom: em(20);
9 | @extend %clearfix;
10 |
11 | h1,
12 | h2 {
13 | float: left;
14 | margin: 0;
15 | }
16 |
17 | a {
18 | float: right;
19 | }
20 | }
21 |
22 | .column {
23 | margin-bottom: em(30);
24 |
25 | &:last-child {
26 | margin-bottom: 0;
27 | }
28 | }
29 | }
30 |
31 | .account-block-bg {
32 | background-color: $concrete;
33 | padding: em(30);
34 | }
35 |
36 | .account-block-border {
37 | border: 1px solid $concrete;
38 | padding: em(30);
39 | }
40 |
41 | // Wishlist
42 | .account-block-wishlist {
43 | .product-item {
44 | margin-bottom: 0;
45 | }
46 | }
47 |
48 | // Subscribe
49 | .account-block-subscribe {
50 | li {
51 | margin: 0;
52 | }
53 | }
54 |
55 | // Address Book
56 | .account-block-book {
57 | .column {
58 | @include bp(min-width, $medium-min) {
59 | width: 50%;
60 | }
61 | }
62 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/mixins/_accordion.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Accordion ---------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | @mixin accordion(){
5 | border-bottom: 1px solid $concrete;
6 |
7 | dl {
8 | > dt,
9 | > dd {
10 | font-size: em(14);
11 | }
12 |
13 | > dt {
14 | position: relative;
15 | border-top: 1px solid $concrete;
16 | padding: em(15, 14) 0;
17 | cursor: pointer;
18 |
19 | span:after {
20 | content: "";
21 | display: block;
22 | position: absolute;
23 | top: 50%;
24 | right: 5px;
25 | margin-top: -5px;
26 | @include sprite-2x($sprite__icon-plus, $sprite-2x__icon-plus);
27 | }
28 | }
29 |
30 | dd {
31 | display: none;
32 | padding-bottom: em(15, 14);
33 | }
34 | }
35 |
36 | &.accordion-open {
37 | > dl {
38 | > dt.open span:after {
39 | @include sprite-2x($sprite__icon-minus, $sprite-2x__icon-minus);
40 | }
41 |
42 | > dd.open {
43 | display: block;
44 | }
45 | }
46 | }
47 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/lib/_owl.theme.scss:
--------------------------------------------------------------------------------
1 |
2 | .owl-theme {
3 | // Styling Next and Prev buttons
4 | .owl-nav {
5 | margin-top: 10px;
6 | text-align: center;
7 | -webkit-tap-highlight-color: transparent;
8 |
9 | [class*='owl-'] {
10 | color: $nav-color;
11 | font-size: $nav-font-size;
12 | margin: $nav-margin;
13 | padding: $nav-padding;
14 | background: $nav-background;
15 | display: inline-block;
16 | cursor: pointer;
17 | border-radius: $nav-rounded;
18 |
19 | &:hover {
20 | background: $nav-background-hover;
21 | color:$nav-color-hover;
22 | text-decoration: none;
23 | }
24 | }
25 | .disabled {
26 | opacity: $nav-disabled-opacity;
27 | cursor: default;
28 | }
29 | }
30 |
31 | // Styling dots
32 | .owl-nav.disabled + .owl-dots {
33 | margin-top: 10px;
34 | }
35 | .owl-dots {
36 | text-align: center;
37 | -webkit-tap-highlight-color: transparent;
38 |
39 | .owl-dot {
40 | display: inline-block;
41 | zoom: 1;
42 | *display: inline;
43 |
44 | span {
45 | width: $dot-width;
46 | height: $dot-height;
47 | margin: $dot-margin;
48 | background: $dot-background;
49 | display: block;
50 | -webkit-backface-visibility: visible;
51 | transition: opacity, 200ms, ease;
52 | border-radius: $nav-rounded;
53 | }
54 |
55 | &.active,
56 | &:hover {
57 | span {
58 | background: $dot-background-active;
59 | }
60 | }
61 | }
62 | }
63 | }
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/customer/account/dashboard/newsletter.phtml:
--------------------------------------------------------------------------------
1 | getSubscriptionObject()->isSubscribed();
3 | ?>
4 |
5 |
6 |
__('Newsletters'); ?>
7 |
__('Subscribe to our newsletter to receive exclusive news and offers by email.'); ?>
8 |
9 |
21 |
22 |
31 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/catalog/layer/view.phtml:
--------------------------------------------------------------------------------
1 |
8 | canShowBlock()): ?>
9 |
10 |
11 | getStateHtml() ?>
12 |
13 | getLayer()->getState()->getFilters()): ?>
14 |
15 |
16 |
17 | canShowOptions()): ?>
18 |
__('Filter') ?>
19 |
20 |
21 | getFilters() ?>
22 |
23 | getItemsCount()): ?>
24 | __($_filter->getName()) ?>
25 | getHtml() ?>
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/catalogsearch/form.mini.phtml:
--------------------------------------------------------------------------------
1 | helper('catalogsearch');
5 | ?>
6 |
7 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/page/print.phtml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | getChildHtml('head') ?>
13 |
14 |
15 |
16 |
17 |
18 |
19 | getPrintLogoText()):?>
20 |
escapeHtml($this->getPrintLogoText())) ?>
21 |
22 |
23 | getChildHtml('content') ?>
24 |
25 | __('Close Window') ?>
26 |
27 | getAbsoluteFooter() ?>
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/page/1column.phtml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | getChildHtml('head') ?>
13 |
14 |
15 | getBodyClass()?' class="'.$this->getBodyClass().'"':'' ?>>
16 | getChildHtml('after_body_start') ?>
17 | getChildHtml('global_notices') ?>
18 |
19 |
20 | getChildHtml('header') ?>
21 |
22 |
23 | getChildHtml('breadcrumbs') ?>
24 | getChildHtml('global_messages') ?>
25 | getChildHtml('content') ?>
26 |
27 |
28 | getChildHtml('footer_before') ?>
29 | getChildHtml('footer') ?>
30 | getChildHtml('global_cookie_notice') ?>
31 | getChildHtml('before_body_end_js'); ?>
32 | getChildHtml('before_body_end') ?>
33 |
34 |
35 | getAbsoluteFooter() ?>
36 |
37 |
--------------------------------------------------------------------------------
/app/code/local/Boilerplate/All/etc/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 0.0.1
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | boilerplate/all/all.xml
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | boilerplate/all/all.xml
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 | Boilerplate_All_Block_Account_Navigation
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 | Boilerplate_All
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | 1
51 | 1
52 | alvisjason
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/customer/form/forgotpassword.phtml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/js/lib/owlcarousel/owl.support.modernizr.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Modernizr Support Plugin
3 | *
4 | * @version 2.0.0
5 | * @author Vivid Planet Software GmbH
6 | * @author Artus Kolanowski
7 | * @license The MIT License (MIT)
8 | */
9 | ;(function($, Modernizr, window, document, undefined) {
10 |
11 | var events = {
12 | transition: {
13 | end: {
14 | WebkitTransition: 'webkitTransitionEnd',
15 | MozTransition: 'transitionend',
16 | OTransition: 'oTransitionEnd',
17 | transition: 'transitionend'
18 | }
19 | },
20 | animation: {
21 | end: {
22 | WebkitAnimation: 'webkitAnimationEnd',
23 | MozAnimation: 'animationend',
24 | OAnimation: 'oAnimationEnd',
25 | animation: 'animationend'
26 | }
27 | }
28 | };
29 |
30 | if (!Modernizr) {
31 | throw new Error('Modernizr is not loaded.');
32 | }
33 |
34 | $.each([ 'cssanimations', 'csstransitions', 'csstransforms', 'csstransforms3d', 'prefixed' ], function(i, property) {
35 | if (typeof Modernizr[property] == 'undefined') {
36 | throw new Error([ 'Modernizr "', property, '" is not loaded.' ].join(''));
37 | }
38 | });
39 |
40 | if (Modernizr.csstransitions) {
41 | /* jshint -W053 */
42 | $.support.transition = new String(Modernizr.prefixed('transition'))
43 | $.support.transition.end = events.transition.end[ $.support.transition ];
44 | }
45 |
46 | if (Modernizr.cssanimations) {
47 | /* jshint -W053 */
48 | $.support.animation = new String(Modernizr.prefixed('animation'))
49 | $.support.animation.end = events.animation.end[ $.support.animation ];
50 | }
51 |
52 | if (Modernizr.csstransforms) {
53 | /* jshint -W053 */
54 | $.support.transform = new String(Modernizr.prefixed('transform'));
55 | $.support.transform3d = Modernizr.csstransforms3d;
56 | }
57 | })(window.Zepto || window.jQuery, window.Modernizr, window, document);
58 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/js/lib/toggle.single.js:
--------------------------------------------------------------------------------
1 | // ==============================================
2 | // UI Pattern - ToggleSingle
3 | // ==============================================
4 |
5 | // Use this plugin to toggle the visibility of content based on a toggle link/element.
6 | // This pattern differs from the accordion functionality in the Toggle pattern in that each toggle group acts
7 | // independently of the others. It is named so as not to be confused with the Toggle pattern below
8 | //
9 | // This plugin requires a specific markup structure. The plugin expects a set of elements that it
10 | // will use as the toggle link. It then hides all immediately following siblings and toggles the sibling's
11 | // visibility when the toggle link is clicked.
12 | //
13 | // Example markup:
14 | //
15 | //
Trigger
16 | //
Content that should show when
17 | //
18 | //
19 | // JS: jQuery('.block-title').toggleSingle();
20 | //
21 | // Options:
22 | // destruct: defaults to false, but if true, the plugin will remove itself, display content, and remove event handlers
23 | jQuery.fn.toggleSingle = function (options) {
24 | // passing destruct: true allows
25 | var settings = $j.extend({
26 | destruct: false
27 | }, options);
28 |
29 | return this.each(function () {
30 | if (!settings.destruct) {
31 | $j(this).on('click', function () {
32 | $j(this).toggleClass('active').next().toggleClass('no-display');
33 | });
34 |
35 | // Hide the content
36 | $j(this).next().addClass('no-display');
37 | } else {
38 | // Remove event handler so that the toggle link can no longer be used
39 | $j(this).off('click');
40 |
41 | // Remove all classes that were added by this plugin
42 | $j(this).removeClass('active').next().removeClass('no-display');
43 | }
44 | });
45 | };
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/components/_product-item.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Product Item ------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | .product-item {
5 | .product-item-image {
6 | display: block;
7 | position: relative;
8 | }
9 |
10 | .product-item-info {
11 | text-align: center;
12 | padding: em(20) 0 em(10);
13 | }
14 |
15 | .product-item-name {
16 | font-weight: normal;
17 | font-size: em(16);
18 | margin-bottom: em(10, 16);
19 |
20 | a {
21 | color: $color-secondary;
22 | }
23 | }
24 |
25 | .price-box {
26 | font-size: em(14);
27 | color: $boulder;
28 |
29 | p {
30 | display: inline-block;
31 | padding: 0 em(5, 14);
32 | }
33 | }
34 |
35 | .old-price {
36 | .price {
37 | text-decoration: line-through;
38 | }
39 | }
40 |
41 | .product-item-overlay,
42 | .product-item-overlay .link {
43 | position: absolute;
44 | top: 0;
45 | left: 0;
46 | width: 100%;
47 | height: 100%;
48 | }
49 |
50 | .product-item-overlay {
51 | opacity: 0;
52 | transition: opacity 0.5s ease 0s;
53 | background-color: rgba(0, 0, 0, 0.55);
54 | color: $white;
55 | font-size: em(12);
56 | padding: em(20);
57 | text-transform: uppercase;
58 |
59 | a {
60 | color: $white;
61 | }
62 |
63 | a,
64 | span {
65 | position: relative;
66 | display: block;
67 | margin-bottom: em(5, 12);
68 | }
69 |
70 | .button {
71 | position: absolute;
72 | }
73 | }
74 |
75 | .button {
76 | bottom: em(20);
77 | left: em(20);
78 | }
79 |
80 | &:hover {
81 | .product-item-overlay {
82 | opacity: 1;
83 | }
84 | }
85 | }
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/page/2columns-right.phtml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | getChildHtml('head') ?>
13 |
14 |
15 | getBodyClass()?' class="'.$this->getBodyClass().'"':'' ?>>
16 | getChildHtml('after_body_start') ?>
17 | getChildHtml('global_notices') ?>
18 |
19 |
20 | getChildHtml('header') ?>
21 |
22 |
23 | getChildHtml('breadcrumbs') ?>
24 | getChildHtml('content_before') ?>
25 |
26 |
27 |
28 | getChildHtml('global_messages') ?>
29 | getChildHtml('content') ?>
30 |
31 |
32 |
33 | getChildHtml('right') ?>
34 |
35 |
36 |
37 |
38 | getChildHtml('footer_before') ?>
39 | getChildHtml('footer') ?>
40 | getChildHtml('global_cookie_notice') ?>
41 | getChildHtml('before_body_end_js'); ?>
42 | getChildHtml('before_body_end') ?>
43 |
44 |
45 | getAbsoluteFooter() ?>
46 |
47 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/pages/account/_navigation.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Navigation --------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | .block-account-nav {
5 | margin-bottom: em(30);
6 |
7 | .block-subtitle--nav {
8 | position: relative;
9 | cursor: pointer;
10 | background-color: $color-secondary;
11 | color: $white;
12 | font-weight: bold;
13 | font-size: em(14);
14 | padding: em(10, 14) em(15, 14);
15 | margin-bottom: 1px;
16 |
17 | span:after {
18 | content: "";
19 | display: block;
20 | position: absolute;
21 | top: 50%;
22 | right: 15px;
23 | margin-top: -5px;
24 | @include sprite-2x($sprite__icon-plus-white, $sprite-2x__icon-plus-white);
25 | }
26 |
27 | &.active span:after {
28 | @include sprite-2x($sprite__icon-minus-white, $sprite-2x__icon-minus-white);
29 | }
30 |
31 | @include bp(min-width, $large-min) {
32 | display: none;
33 | }
34 | }
35 |
36 | ul {
37 | border-bottom: 1px solid $concrete;
38 | @extend %clearfix;
39 | }
40 |
41 | ul > li {
42 | font-size: em(14);
43 | border-bottom: 1px solid $concrete;
44 |
45 | @include bp(min-width, $large-min) {
46 | float: left;
47 | border-bottom: 0;
48 | padding-right: em(30);
49 | }
50 |
51 | a {
52 | display: block;
53 | position: relative;
54 | padding: em(15, 14) 0;
55 | color: $mine-shaft;
56 | }
57 |
58 | @include bp(max-width, $large-max) {
59 | span:after {
60 | content: "";
61 | display: block;
62 | position: absolute;
63 | top: 50%;
64 | right: 5px;
65 | margin-top: -5px;
66 | @include sprite-2x($sprite__icon-right, $sprite-2x__icon-right);
67 | }
68 | }
69 | }
70 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/js/lib/enquire.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * enquire.js v2.1.2 - Awesome Media Queries in JavaScript
3 | * Copyright (c) 2014 Nick Williams - http://wicky.nillia.ms/enquire.js
4 | * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5 | */
6 | !function(a,b,c){var d=window.matchMedia;"undefined"!=typeof module&&module.exports?module.exports=c(d):"function"==typeof define&&define.amd?define(function(){return b[a]=c(d)}):b[a]=c(d)}("enquire",this,function(a){"use strict";function b(a,b){var c,d=0,e=a.length;for(d;e>d&&(c=b(a[d],d),c!==!1);d++);}function c(a){return"[object Array]"===Object.prototype.toString.apply(a)}function d(a){return"function"==typeof a}function e(a){this.options=a,!a.deferSetup&&this.setup()}function f(b,c){this.query=b,this.isUnconditional=c,this.handlers=[],this.mql=a(b);var d=this;this.listener=function(a){d.mql=a,d.assess()},this.mql.addListener(this.listener)}function g(){if(!a)throw new Error("matchMedia not present, legacy browsers require a polyfill");this.queries={},this.browserIsIncapable=!a("only all").matches}return e.prototype={setup:function(){this.options.setup&&this.options.setup(),this.initialised=!0},on:function(){!this.initialised&&this.setup(),this.options.match&&this.options.match()},off:function(){this.options.unmatch&&this.options.unmatch()},destroy:function(){this.options.destroy?this.options.destroy():this.off()},equals:function(a){return this.options===a||this.options.match===a}},f.prototype={addHandler:function(a){var b=new e(a);this.handlers.push(b),this.matches()&&b.on()},removeHandler:function(a){var c=this.handlers;b(c,function(b,d){return b.equals(a)?(b.destroy(),!c.splice(d,1)):void 0})},matches:function(){return this.mql.matches||this.isUnconditional},clear:function(){b(this.handlers,function(a){a.destroy()}),this.mql.removeListener(this.listener),this.handlers.length=0},assess:function(){var a=this.matches()?"on":"off";b(this.handlers,function(b){b[a]()})}},g.prototype={register:function(a,e,g){var h=this.queries,i=g&&this.browserIsIncapable;return h[a]||(h[a]=new f(a,i)),d(e)&&(e={match:e}),c(e)||(e=[e]),b(e,function(b){d(b)&&(b={match:b}),h[a].addHandler(b)}),this},unregister:function(a,b){var c=this.queries[a];return c&&(b?c.removeHandler(b):(c.clear(),delete this.queries[a])),this}},new g});
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/page/3columns.phtml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | getChildHtml('head') ?>
13 |
14 |
15 | getBodyClass()?' class="'.$this->getBodyClass().'"':'' ?>>
16 | getChildHtml('after_body_start') ?>
17 | getChildHtml('global_notices') ?>
18 |
19 |
20 | getChildHtml('header') ?>
21 |
22 |
23 | getChildHtml('breadcrumbs') ?>
24 | getChildHtml('content_before') ?>
25 |
26 |
27 |
28 | getChildHtml('left_first') ?>
29 |
30 |
31 |
32 | getChildHtml('global_messages') ?>
33 | getChildHtml('content') ?>
34 |
35 |
36 |
37 | getChildHtml('right') ?>
38 |
39 |
40 |
41 |
42 | getChildHtml('footer_before') ?>
43 | getChildHtml('footer') ?>
44 | getChildHtml('global_cookie_notice') ?>
45 | getChildHtml('before_body_end_js'); ?>
46 | getChildHtml('before_body_end') ?>
47 |
48 |
49 | getAbsoluteFooter() ?>
50 |
51 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/catalog/navigation/subcategory-listing.phtml:
--------------------------------------------------------------------------------
1 | load($_currentCat->getId());
5 | $_children = $_catModel->getChildrenCategories();
6 | ?>
7 |
8 | 0): ?>
9 |
10 |
11 |
12 | load($_cat->getId());
14 | $_categoryThumbnail = $_category->getThumbnail();
15 | $_categoryDesc = $_category->getDescription();
16 |
17 | if ($_categoryThumbnail != null) {
18 | $_thumb = Mage::getBaseUrl('media') . 'catalog/category/' . $_categoryThumbnail;
19 | } else {
20 | $_thumb = $this->getSkinUrl("images/catalog/product/placeholder/image.jpg");
21 | }
22 | ?>
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
truncate(strip_tags($_categoryDesc), 130); ?>
31 |
32 |
33 |
34 |
35 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/layout/_footer.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Footer ------------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | .page-footer {
5 | background-color: $color-secondary;
6 | color: $boulder;
7 | margin-top: em(50);
8 | padding: em(40) 0;
9 |
10 | @include bp(min-width, $large-min) {
11 | margin-top: em(100);
12 | padding: em(75) 0;
13 | }
14 |
15 | .column-left {
16 | @include bp(min-width, $large-min) {
17 | float: right;
18 | width: 35%;
19 | }
20 | }
21 |
22 | .column-right {
23 | @include bp(min-width, $large-min) {
24 | width: 60%;
25 | }
26 | }
27 |
28 | ul {
29 | margin-bottom: em(20);
30 |
31 | @include bp(min-width, $medium-min) {
32 | float: left;
33 | margin-right: em(60);
34 | margin-bottom: 0;
35 | }
36 | }
37 |
38 | p,
39 | a,
40 | input,
41 | .button {
42 | font-size: em(14);
43 | line-height: 1.8;
44 | }
45 |
46 | a {
47 | &:hover {
48 | color: $white;
49 | }
50 | }
51 | }
52 |
53 | // Copyright
54 | .page-footer .copyright {
55 | float: left;
56 | width: 100%;
57 | margin: em(20) 0 0;
58 |
59 | @include bp(min-width, $medium-min) {
60 | margin-top: em(40);
61 | }
62 | }
63 |
64 | // Newsletter subscribe
65 | .page-footer .block-subscribe {
66 | margin-bottom: em(40);
67 |
68 | @include bp(min-width, $large-min) {
69 | margin-bottom: 0;
70 | }
71 |
72 | .input-group {
73 | max-width: em(470);
74 | }
75 |
76 | input {
77 | background: $color-secondary;
78 | border-color: lighten($color-secondary, 10%);
79 | color: $boulder;
80 |
81 | &:focus {
82 | border-color: $color-primary;
83 | color: $white;
84 | }
85 | }
86 |
87 | .button {
88 | background: lighten($color-secondary, 10%);
89 | color: $alto;
90 |
91 | &:hover {
92 | background: $color-primary;
93 | color: $white;
94 | }
95 | }
96 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/lib/_owl.carousel.scss:
--------------------------------------------------------------------------------
1 | /*
2 | * Core Owl Carousel CSS File
3 | */
4 | .owl-carousel {
5 | display: none;
6 | width: 100%;
7 | -webkit-tap-highlight-color: transparent;
8 | /* position relative and z-index fix webkit rendering fonts issue */
9 | position: relative;
10 | z-index: 1;
11 |
12 | .owl-stage {
13 | position: relative;
14 | -ms-touch-action: pan-Y;
15 | }
16 |
17 | .owl-stage:after {
18 | content: ".";
19 | display: block;
20 | clear: both;
21 | visibility: hidden;
22 | line-height: 0;
23 | height: 0;
24 | }
25 |
26 | .owl-stage-outer {
27 | position: relative;
28 | overflow: hidden;
29 | /* fix for flashing background */
30 | -webkit-transform: translate3d(0px, 0px, 0px);
31 | }
32 |
33 | .owl-item {
34 | position: relative;
35 | min-height: 1px;
36 | float: left;
37 | -webkit-backface-visibility: hidden;
38 | -webkit-tap-highlight-color: transparent;
39 | -webkit-touch-callout: none;
40 | }
41 | .owl-item img {
42 | display: block;
43 | width: 100%;
44 | -webkit-transform-style: preserve-3d;
45 | }
46 |
47 | .owl-nav.disabled,
48 | .owl-dots.disabled {
49 | display: none;
50 | }
51 |
52 | .owl-nav .owl-prev,
53 | .owl-nav .owl-next,
54 | .owl-dot {
55 | cursor: pointer;
56 | cursor: hand;
57 | -webkit-user-select: none;
58 | -khtml-user-select: none;
59 | -moz-user-select: none;
60 | -ms-user-select: none;
61 | user-select: none;
62 | }
63 |
64 | &.owl-loaded {
65 | display: block;
66 | }
67 |
68 | &.owl-loading {
69 | opacity: 0;
70 | display: block;
71 | }
72 |
73 | &.owl-hidden {
74 | opacity: 0;
75 | }
76 |
77 | &.owl-refresh .owl-item {
78 | display: none;
79 | }
80 |
81 | &.owl-drag .owl-item {
82 | -webkit-user-select: none;
83 | -moz-user-select: none;
84 | -ms-user-select: none;
85 | user-select: none;
86 | }
87 |
88 | &.owl-grab {
89 | cursor: move;
90 | cursor: -webkit-grab;
91 | cursor: -o-grab;
92 | cursor: -ms-grab;
93 | cursor: grab;
94 | }
95 |
96 | &.owl-rtl {
97 | direction: rtl;
98 | }
99 |
100 | &.owl-rtl .owl-item {
101 | float: right;
102 | }
103 | }
104 |
105 | /* No Js */
106 | .no-js .owl-carousel {
107 | display: block;
108 | }
109 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/layout/cms.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
9 | cms_menu
10 |
11 |
12 |
13 |
14 |
15 | CMS Pages (All)
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | CMS Content Wrapper
24 | std
25 |
26 |
27 |
28 |
29 |
30 |
31 | CMS Home Page
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 | page/1column.phtml
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 | CMS No-Route Page
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 | page/1column.phtml
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/js/lib/owlcarousel/owl.support.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Support Plugin
3 | *
4 | * @version 2.0.0
5 | * @author Vivid Planet Software GmbH
6 | * @author Artus Kolanowski
7 | * @license The MIT License (MIT)
8 | */
9 | ;(function($, window, document, undefined) {
10 |
11 | var style = $('').get(0).style,
12 | prefixes = 'Webkit Moz O ms'.split(' '),
13 | events = {
14 | transition: {
15 | end: {
16 | WebkitTransition: 'webkitTransitionEnd',
17 | MozTransition: 'transitionend',
18 | OTransition: 'oTransitionEnd',
19 | transition: 'transitionend'
20 | }
21 | },
22 | animation: {
23 | end: {
24 | WebkitAnimation: 'webkitAnimationEnd',
25 | MozAnimation: 'animationend',
26 | OAnimation: 'oAnimationEnd',
27 | animation: 'animationend'
28 | }
29 | }
30 | },
31 | tests = {
32 | csstransforms: function() {
33 | return !!test('transform');
34 | },
35 | csstransforms3d: function() {
36 | return !!test('perspective');
37 | },
38 | csstransitions: function() {
39 | return !!test('transition');
40 | },
41 | cssanimations: function() {
42 | return !!test('animation');
43 | }
44 | };
45 |
46 | function test(property, prefixed) {
47 | var result = false,
48 | upper = property.charAt(0).toUpperCase() + property.slice(1);
49 |
50 | $.each((property + ' ' + prefixes.join(upper + ' ') + upper).split(' '), function(i, property) {
51 | if (style[property] !== undefined) {
52 | result = prefixed ? property : true;
53 | return false;
54 | }
55 | });
56 |
57 | return result;
58 | }
59 |
60 | function prefixed(property) {
61 | return test(property, true);
62 | }
63 |
64 | if (tests.csstransitions()) {
65 | /* jshint -W053 */
66 | $.support.transition = new String(prefixed('transition'))
67 | $.support.transition.end = events.transition.end[ $.support.transition ];
68 | }
69 |
70 | if (tests.cssanimations()) {
71 | /* jshint -W053 */
72 | $.support.animation = new String(prefixed('animation'))
73 | $.support.animation.end = events.animation.end[ $.support.animation ];
74 | }
75 |
76 | if (tests.csstransforms()) {
77 | /* jshint -W053 */
78 | $.support.transform = new String(prefixed('transform'));
79 | $.support.transform3d = tests.csstransforms3d();
80 | }
81 |
82 | })(window.Zepto || window.jQuery, window, document);
83 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/page/2columns-left.phtml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | getChildHtml('head') ?>
13 |
14 |
15 | getBodyClass()?' class="'.$this->getBodyClass().'"':'' ?>>
16 | getChildHtml('after_body_start') ?>
17 | getChildHtml('global_notices') ?>
18 |
19 |
20 | getChildHtml('header') ?>
21 |
22 |
23 | getChildHtml('breadcrumbs') ?>
24 | getChildHtml('content_before') ?>
25 |
26 |
27 |
28 | getChildHtml('left_first') ?>
29 |
30 |
31 |
32 | getChildHtml('global_messages') ?>
33 | getChildHtml('content') ?>
34 |
35 |
36 |
37 |
38 | getChildHtml('left_first')): ?>
39 |
40 |
41 |
42 |
43 | getChildHtml('footer_before') ?>
44 | getChildHtml('footer') ?>
45 | getChildHtml('global_cookie_notice') ?>
46 | getChildHtml('before_body_end_js'); ?>
47 | getChildHtml('before_body_end') ?>
48 |
49 |
50 | getAbsoluteFooter() ?>
51 |
52 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/js/lib/owlcarousel/owl.autoheight.js:
--------------------------------------------------------------------------------
1 | /**
2 | * AutoHeight Plugin
3 | * @version 2.0.0
4 | * @author Bartosz Wojciechowski
5 | * @license The MIT License (MIT)
6 | */
7 | ;(function($, window, document, undefined) {
8 |
9 | /**
10 | * Creates the auto height plugin.
11 | * @class The Auto Height Plugin
12 | * @param {Owl} carousel - The Owl Carousel
13 | */
14 | var AutoHeight = function(carousel) {
15 | /**
16 | * Reference to the core.
17 | * @protected
18 | * @type {Owl}
19 | */
20 | this._core = carousel;
21 |
22 | /**
23 | * All event handlers.
24 | * @protected
25 | * @type {Object}
26 | */
27 | this._handlers = {
28 | 'initialized.owl.carousel refreshed.owl.carousel': $.proxy(function(e) {
29 | if (e.namespace && this._core.settings.autoHeight) {
30 | this.update();
31 | }
32 | }, this),
33 | 'changed.owl.carousel': $.proxy(function(e) {
34 | if (e.namespace && this._core.settings.autoHeight && e.property.name == 'position'){
35 | this.update();
36 | }
37 | }, this),
38 | 'loaded.owl.lazy': $.proxy(function(e) {
39 | if (e.namespace && this._core.settings.autoHeight
40 | && e.element.closest('.' + this._core.settings.itemClass).index() === this._core.current()) {
41 | this.update();
42 | }
43 | }, this)
44 | };
45 |
46 | // set default options
47 | this._core.options = $.extend({}, AutoHeight.Defaults, this._core.options);
48 |
49 | // register event handlers
50 | this._core.$element.on(this._handlers);
51 | };
52 |
53 | /**
54 | * Default options.
55 | * @public
56 | */
57 | AutoHeight.Defaults = {
58 | autoHeight: false,
59 | autoHeightClass: 'owl-height'
60 | };
61 |
62 | /**
63 | * Updates the view.
64 | */
65 | AutoHeight.prototype.update = function() {
66 | this._core.$stage.parent()
67 | .height(this._core.$stage.children().eq(this._core.current()).height())
68 | .addClass(this._core.settings.autoHeightClass);
69 | };
70 |
71 | AutoHeight.prototype.destroy = function() {
72 | var handler, property;
73 |
74 | for (handler in this._handlers) {
75 | this._core.$element.off(handler, this._handlers[handler]);
76 | }
77 | for (property in Object.getOwnPropertyNames(this)) {
78 | typeof this[property] != 'function' && (this[property] = null);
79 | }
80 | };
81 |
82 | $.fn.owlCarousel.Constructor.Plugins.AutoHeight = AutoHeight;
83 |
84 | })(window.Zepto || window.jQuery, window, document);
85 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/base/_base.scss:
--------------------------------------------------------------------------------
1 | // Must be 100% for off canvas to work
2 | html, body {
3 | height: 100%;
4 | }
5 |
6 | // Set box-sizing globally to handle padding and border widths
7 | *,
8 | *:before,
9 | *:after {
10 | @include box-sizing;
11 | }
12 |
13 | html,
14 | body {
15 | font-size: $base-font-size;
16 | }
17 |
18 | // Default body styles
19 | body {
20 | color: $body-font-color;
21 | padding: 0;
22 | margin: 0;
23 | font-family: $body-font-family;
24 | font-weight: $body-font-weight;
25 | font-style: $body-font-style;
26 | line-height: $base-line-height; // Set to $base-line-height to take on browser default of 150%
27 | position: relative;
28 | }
29 |
30 | img {
31 | // Responsive images
32 | max-width: 100%;
33 | height: auto;
34 |
35 | // IE fix bicubic scaling for images
36 | -ms-interpolation-mode: bicubic;
37 |
38 | // Get rid of gap under images by making them display: inline-block; by default
39 | display: inline-block;
40 | vertical-align: middle;
41 | }
42 |
43 | // Global resets for forms
44 | // Make sure textarea takes on height automatically
45 | textarea {
46 | height: auto;
47 | min-height: 50px;
48 | }
49 |
50 | // Make select elements 100% width by default
51 | select {
52 | width: 100%;
53 | }
54 |
55 | // Typography resets
56 | div,
57 | figure,
58 | dl,
59 | dt,
60 | dd,
61 | ul,
62 | ol,
63 | li,
64 | h1,
65 | h2,
66 | h3,
67 | h4,
68 | h5,
69 | h6,
70 | pre,
71 | form,
72 | p,
73 | blockquote,
74 | th,
75 | td {
76 | margin: 0;
77 | padding: 0;
78 | }
79 |
80 | ul,
81 | ol {
82 | list-style: none;
83 | }
84 |
85 | p {
86 | margin-bottom: em(16);
87 |
88 | &:last-child {
89 | margin-bottom: 0;
90 | }
91 | }
92 |
93 | h1,
94 | h2,
95 | h3,
96 | h4,
97 | h5,
98 | h6 {
99 | font-weight: bold;
100 | }
101 |
102 | address {
103 | margin-bottom: em(10);
104 | }
105 |
106 | // Default Link Styles
107 | a {
108 | color: $boulder;
109 | text-decoration: none;
110 | transition: all 0.1s ease-in-out 0s;
111 |
112 | &:hover,
113 | &:focus {
114 | color: $color-secondary;
115 | text-decoration: none;
116 | }
117 |
118 | &.link {
119 | font-size: em(14);
120 | border-bottom: 2px solid darken($concrete, 10%);
121 | }
122 |
123 | img {
124 | border:none;
125 | }
126 | }
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/sales/order/recent.phtml:
--------------------------------------------------------------------------------
1 | getOrders();
3 | ?>
4 |
5 |
6 |
15 |
16 | getItems()) > 0 ): ?>
17 |
18 |
19 |
20 | __('Order') ?>
21 | __('Date') ?>
22 | __('Ship To') ?>
23 | __('Order Total') ?>
24 | __('Status') ?>
25 |
26 |
27 |
28 |
29 |
30 |
31 | getRealOrderId() ?>
32 | formatDate($_order->getCreatedAtStoreDate()) ?>
33 | getShippingAddress() ? $this->escapeHtml($_order->getShippingAddress()->getName()) : ' ' ?>
34 | formatPrice($_order->getGrandTotal()) ?>
35 | getStatusLabel() ?>
36 |
37 | __('View Order') ?>
38 | helper('sales/reorder')->canReorder($_order)) : ?>
39 | __('Reorder') ?>
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
__('You have placed no orders.'); ?>
48 |
49 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/page/html/header.phtml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 | getChildHtml('store_language') ?>
10 | getChildHtml('currency_switcher') ?>
11 | getChildHtml('topSearch') ?>
12 |
13 |
14 |
15 |
67 |
68 | getChildHtml('topContainer'); ?>
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/catalog/product/view/sharing.phtml:
--------------------------------------------------------------------------------
1 | getProduct();
3 |
4 | $_twitter = Mage::getStoreConfig('boilerplate_all/social_media/twitter_username');
5 | $_facebook = Mage::getStoreConfig('boilerplate_all/social_media/facebook_url');
6 | $_google = Mage::getStoreConfig('boilerplate_all/social_media/google_url');
7 | $_pinterest = Mage::getStoreConfig('boilerplate_all/social_media/pinterest_url');
8 |
9 | $_helper = $this->helper('catalog/output');
10 | $_productName = urlencode(trim($_helper->productAttribute($_product, $_product->getName(), 'name')));
11 | $_productImageUrl = urlencode(trim($this->helper('catalog/image')->init($_product, 'image')));
12 | $_productUrl = urlencode(trim($_product->getProductUrl()));
13 | $_productDesc = urlencode(trim($_helper->productAttribute($_product, nl2br($_product->getShortDescription()), 'short_description')));
14 | ?>
15 |
16 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/js/lib/owlcarousel/owl.autorefresh.js:
--------------------------------------------------------------------------------
1 | /**
2 | * AutoRefresh Plugin
3 | * @version 2.0.0
4 | * @author Artus Kolanowski
5 | * @license The MIT License (MIT)
6 | */
7 | ;(function($, window, document, undefined) {
8 |
9 | /**
10 | * Creates the auto refresh plugin.
11 | * @class The Auto Refresh Plugin
12 | * @param {Owl} carousel - The Owl Carousel
13 | */
14 | var AutoRefresh = function(carousel) {
15 | /**
16 | * Reference to the core.
17 | * @protected
18 | * @type {Owl}
19 | */
20 | this._core = carousel;
21 |
22 | /**
23 | * Refresh interval.
24 | * @protected
25 | * @type {number}
26 | */
27 | this._interval = null;
28 |
29 | /**
30 | * Whether the element is currently visible or not.
31 | * @protected
32 | * @type {Boolean}
33 | */
34 | this._visible = null;
35 |
36 | /**
37 | * All event handlers.
38 | * @protected
39 | * @type {Object}
40 | */
41 | this._handlers = {
42 | 'initialized.owl.carousel': $.proxy(function(e) {
43 | if (e.namespace && this._core.settings.autoRefresh) {
44 | this.watch();
45 | }
46 | }, this)
47 | };
48 |
49 | // set default options
50 | this._core.options = $.extend({}, AutoRefresh.Defaults, this._core.options);
51 |
52 | // register event handlers
53 | this._core.$element.on(this._handlers);
54 | };
55 |
56 | /**
57 | * Default options.
58 | * @public
59 | */
60 | AutoRefresh.Defaults = {
61 | autoRefresh: true,
62 | autoRefreshInterval: 500
63 | };
64 |
65 | /**
66 | * Watches the element.
67 | */
68 | AutoRefresh.prototype.watch = function() {
69 | if (this._interval) {
70 | return;
71 | }
72 |
73 | this._visible = this._core.$element.is(':visible');
74 | this._interval = window.setInterval($.proxy(this.refresh, this), this._core.settings.autoRefreshInterval);
75 | };
76 |
77 | /**
78 | * Refreshes the element.
79 | */
80 | AutoRefresh.prototype.refresh = function() {
81 | if (this._core.$element.is(':visible') === this._visible) {
82 | return;
83 | }
84 |
85 | this._visible = !this._visible;
86 |
87 | this._core.$element.toggleClass('owl-hidden', !this._visible);
88 |
89 | this._visible && (this._core.invalidate('width') && this._core.refresh());
90 | };
91 |
92 | /**
93 | * Destroys the plugin.
94 | */
95 | AutoRefresh.prototype.destroy = function() {
96 | var handler, property;
97 |
98 | window.clearInterval(this._interval);
99 |
100 | for (handler in this._handlers) {
101 | this._core.$element.off(handler, this._handlers[handler]);
102 | }
103 | for (property in Object.getOwnPropertyNames(this)) {
104 | typeof this[property] != 'function' && (this[property] = null);
105 | }
106 | };
107 |
108 | $.fn.owlCarousel.Constructor.Plugins.AutoRefresh = AutoRefresh;
109 |
110 | })(window.Zepto || window.jQuery, window, document);
111 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/sprites.styl.mustache:
--------------------------------------------------------------------------------
1 | {
2 | 'functions': true
3 | }
4 |
5 | {{#items}}
6 | ${{name}}__x : {{px.x}};
7 | ${{name}}__y : {{px.y}};
8 | ${{name}}__offset-x : {{px.offset_x}};
9 | ${{name}}__offset-y : {{px.offset_y}};
10 | ${{name}}__width : {{px.width}};
11 | ${{name}}__height : {{px.height}};
12 | ${{name}}__total-width : {{px.total_width}};
13 | ${{name}}__total-height : {{px.total_height}};
14 | ${{name}}__image : '{{{escaped_image}}}';
15 | ${{name}} : {{px.x}} {{px.y}} {{px.offset_x}} {{px.offset_y}} {{px.width}} {{px.height}} {{px.total_width}} {{px.total_height}} '{{{escaped_image}}}';
16 | {{/items}}
17 |
18 | {{#options.functions}}
19 | @mixin sprite-width($sprite){
20 | width: nth($sprite, 5);
21 | }
22 |
23 | @mixin sprite-height($sprite){
24 | height: nth($sprite, 6);
25 | }
26 |
27 | @mixin sprite-position($sprite, $extra-offset-x: 0, $extra-offset-y: 0){
28 | $sprite-offset-x: nth($sprite, 3) + $extra-offset-x;
29 | $sprite-offset-y: nth($sprite, 4) + $extra-offset-y;
30 | background-position: $sprite-offset-x $sprite-offset-y;
31 | }
32 |
33 | @mixin sprite-image($sprite) {
34 | $sprite-image: nth($sprite, 9);
35 | background-image: url(#{$sprite-image});
36 | }
37 |
38 | @mixin sprite($sprite){
39 | @include sprite-image($sprite);
40 | @include sprite-position($sprite);
41 | @include sprite-width($sprite);
42 | @include sprite-height($sprite);
43 | }
44 |
45 | // -------------------------------------------------------------- //
46 | // Retina ------------------------------------------------------- //
47 | // -------------------------------------------------------------- //
48 |
49 | // @source bensmithett.com/goodbye-compass
50 | // @source https://github.com/Ensighten/spritesmith/issues/19#issuecomment-24843826
51 |
52 | // Retina sprite full works
53 | // @include sprite-2x($sprite__twitter, $sprite-2x__twitter);
54 | @mixin sprite-2x($sprite1x, $sprite2x){
55 | @include sprite($sprite1x);
56 |
57 | @include if-min-resolution (1.5) {
58 | // Use the 2x image...
59 | @include sprite-image($sprite2x);
60 |
61 | // ...but set background-size to the size of the 1x image...
62 | background-size: nth($sprite1x, 7) nth($sprite1x, 8);
63 | }
64 | }
65 |
66 | // Retina sprite background-image only
67 | // Once this is set you can use the position, height & width mixins individually with 1x values
68 | // (e.g. if you only want to set a new background-position on hover, don't need to re-set background-image or you want to adjust the background position)
69 | // @include sprite-2x-image($sprite__twitter, $sprite-2x__twitter);
70 | // @include sprite-position($sprite__twitter, 30, 5);
71 | @mixin sprite-2x-image($sprite1x, $sprite2x){
72 | @include sprite-image($sprite1x);
73 | background-repeat: no-repeat;
74 |
75 | @include if-min-resolution (1.5) {
76 | @include sprite-image($sprite2x);
77 | background-size: nth($sprite1x, 7) nth($sprite1x, 8)
78 | }
79 | }
80 | {{/options.functions}}
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/_vars.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Global variables --------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 |
5 | // Font stacks
6 | $font-family-sans-serif: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif !default;
7 | $font-family-serif: Georgia, Cambria, "Times New Roman", Times, serif !default;
8 | $font-family-monospace: Consolas, "Liberation Mono", Courier, monospace !default;
9 |
10 | // Font weights
11 | $font-weight-normal: normal !default;
12 | $font-weight-bold: bold !default;
13 |
14 | // Global font styles
15 | $base-font-size: 100% !default; // typical default browser font-size is 16px
16 | $base-em: 16px !default;
17 | $base-line-height: 1.5 !default; // $base-line-height is 24px while $base-font-size is 16px
18 | $body-font-color: #262626 !default;
19 | $body-font-family: $font-family-sans-serif !default;
20 | $body-font-weight: $font-weight-normal !default;
21 | $body-font-style: normal !default;
22 |
23 | // Grid
24 | $max-container-width: 1230px;
25 |
26 | // Media Query Ranges
27 | $small-range: (em(479), em(640)) !default;
28 | $medium-range: (em(641), em(1024)) !default;
29 | $large-range: (em(1025), em(1440)) !default;
30 | $xlarge-range: (em(1441), em(1920)) !default;
31 | $xxlarge-range: (em(1921), 99999999em) !default;
32 |
33 | // Media Queries
34 | $screen: "only screen" !default;
35 |
36 | $landscape: "#{$screen} and (orientation: landscape)" !default;
37 | $portrait: "#{$screen} and (orientation: portrait)" !default;
38 |
39 | $small-min: lower-bound($small-range) !default;
40 | $small-max: upper-bound($small-range) !default;
41 |
42 | $medium-min: lower-bound($medium-range) !default;
43 | $medium-max: upper-bound($medium-range) !default;
44 |
45 | $large-min: lower-bound($large-range) !default;
46 | $large-max: upper-bound($large-range) !default;
47 |
48 | $xlarge-min: lower-bound($xlarge-range) !default;
49 | $xlarge-max: upper-bound($xlarge-range) !default;
50 |
51 | $xxlarge-min: lower-bound($xxlarge-range) !default;
52 | $xxlarge-max: upper-bound($xxlarge-range) !default;
53 |
54 | // Colors
55 | $white: #FFFFFF;
56 | $concrete: #F3F3F3;
57 | $alto: #DDDDDD;
58 | $mine-shaft: #202020;
59 | $boulder: #767676;
60 | $mountain-meadow: #1abc9c;
61 | $black: #000000;
62 |
63 | $color-primary: $mountain-meadow;
64 | $color-secondary: $mine-shaft;
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/catalog/product/list/upsell.phtml:
--------------------------------------------------------------------------------
1 | getItemCollection()->getItems())): ?>
2 |
3 |
4 | resetItemsIterator() ?>
5 |
6 | getItemCollection()->getItems() as $_link): ?>
7 |
8 |
37 |
38 |
39 |
44 |
45 | getPriceHtml($_link, true, '-upsell') ?>
46 |
47 |
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/catalog/product/list/toolbar.phtml:
--------------------------------------------------------------------------------
1 |
8 | getCollection()->getSize()): ?>
9 |
66 |
67 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/_all.scss:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";
2 |
3 | // Magento Boilerplate by Jason Alvis
4 | // jasonalvis.co.uk
5 | // Licensed under MIT Open Source
6 |
7 | // Table of Contents
8 | // 01. Utilities
9 | // 02. Base
10 | // 03. Layout
11 | // 04. Components
12 | // 05. States
13 | // 06. Shame
14 |
15 | // -------------------------------------------------------------- //
16 | // Utilities ---------------------------------------------------- //
17 | // -------------------------------------------------------------- //
18 | @import "utilities/functions";
19 | @import "utilities/vars";
20 | @import "utilities/sprites";
21 | @import "utilities/mixins";
22 | @import "utilities/placeholders";
23 | @import "utilities/helpers";
24 | @import "utilities/libs";
25 |
26 | // -------------------------------------------------------------- //
27 | // Base --------------------------------------------------------- //
28 | // -------------------------------------------------------------- //
29 | @import "base/normalize";
30 | @import "base/base";
31 | @import "base/typography";
32 |
33 | // -------------------------------------------------------------- //
34 | // Components --------------------------------------------------- //
35 | // -------------------------------------------------------------- //
36 | @import "components/notices";
37 | @import "components/forms";
38 | @import "components/buttons";
39 | @import "components/tables";
40 | @import "components/social";
41 | @import "components/navigation";
42 | @import "components/breadcrumbs";
43 | @import "components/toolbar";
44 | @import "components/pagination";
45 | @import "components/box-listing";
46 | @import "components/product-grid";
47 | @import "components/product-list";
48 | @import "components/product-item";
49 |
50 | // -------------------------------------------------------------- //
51 | // Layout ------------------------------------------------------- //
52 | // -------------------------------------------------------------- //
53 | @import "layout/grid";
54 | @import "layout/bar";
55 | @import "layout/header";
56 | @import "layout/footer";
57 | @import "layout/pages";
58 |
59 | // -------------------------------------------------------------- //
60 | // Pages -------------------------------------------------------- //
61 | // -------------------------------------------------------------- //
62 | @import "pages/category/category";
63 |
64 | @import "pages/product/product";
65 | @import "pages/product/gallery";
66 | @import "pages/product/related";
67 | @import "pages/product/extra";
68 |
69 | @import "pages/account/login";
70 | @import "pages/account/register";
71 | @import "pages/account/forgot";
72 | @import "pages/account/navigation";
73 | @import "pages/account/dashboard";
74 |
75 | // -------------------------------------------------------------- //
76 | // States ------------------------------------------------------- //
77 | // -------------------------------------------------------------- //
78 | @import "states/index";
79 | @import "states/touch";
80 | @import "states/print";
81 |
82 | // -------------------------------------------------------------- //
83 | // Shame -------------------------------------------------------- //
84 | // -------------------------------------------------------------- //
85 | @import "shame/index";
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/reports/product_viewed.phtml:
--------------------------------------------------------------------------------
1 | getItemsCollection();
3 | ?>
4 |
5 |
6 |
7 |
8 |
9 |
10 |
39 |
40 |
41 |
46 |
47 | getPriceHtml($_item, true); ?>
48 |
49 |
50 |
51 |
52 |
53 |
54 | __('You currently have no recently viewed items.'); ?>
55 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/js/lib/owlcarousel/owl.hash.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Hash Plugin
3 | * @version 2.0.0
4 | * @author Artus Kolanowski
5 | * @license The MIT License (MIT)
6 | */
7 | ;(function($, window, document, undefined) {
8 | 'use strict';
9 |
10 | /**
11 | * Creates the hash plugin.
12 | * @class The Hash Plugin
13 | * @param {Owl} carousel - The Owl Carousel
14 | */
15 | var Hash = function(carousel) {
16 | /**
17 | * Reference to the core.
18 | * @protected
19 | * @type {Owl}
20 | */
21 | this._core = carousel;
22 |
23 | /**
24 | * Hash index for the items.
25 | * @protected
26 | * @type {Object}
27 | */
28 | this._hashes = {};
29 |
30 | /**
31 | * The carousel element.
32 | * @type {jQuery}
33 | */
34 | this.$element = this._core.$element;
35 |
36 | /**
37 | * All event handlers.
38 | * @protected
39 | * @type {Object}
40 | */
41 | this._handlers = {
42 | 'initialized.owl.carousel': $.proxy(function(e) {
43 | if (e.namespace && this._core.settings.startPosition === 'URLHash') {
44 | $(window).trigger('hashchange.owl.navigation');
45 | }
46 | }, this),
47 | 'prepared.owl.carousel': $.proxy(function(e) {
48 | if (e.namespace) {
49 | var hash = $(e.content).find('[data-hash]').andSelf('[data-hash]').attr('data-hash');
50 |
51 | if (!hash) {
52 | return;
53 | }
54 |
55 | this._hashes[hash] = e.content;
56 | }
57 | }, this),
58 | 'changed.owl.carousel': $.proxy(function(e) {
59 | if (e.namespace && e.property.name === 'position') {
60 | var current = this._core.items(this._core.relative(this._core.current())),
61 | hash = $.map(this._hashes, function(item, hash) {
62 | return item === current ? hash : null;
63 | }).join();
64 |
65 | if (!hash || window.location.hash.slice(1) === hash) {
66 | return;
67 | }
68 |
69 | window.location.hash = hash;
70 | }
71 | }, this)
72 | };
73 |
74 | // set default options
75 | this._core.options = $.extend({}, Hash.Defaults, this._core.options);
76 |
77 | // register the event handlers
78 | this.$element.on(this._handlers);
79 |
80 | // register event listener for hash navigation
81 | $(window).on('hashchange.owl.navigation', $.proxy(function(e) {
82 | var hash = window.location.hash.substring(1),
83 | items = this._core.$stage.children(),
84 | position = this._hashes[hash] && items.index(this._hashes[hash]);
85 |
86 | if (position === undefined || position === this._core.current()) {
87 | return;
88 | }
89 |
90 | this._core.to(this._core.relative(position), false, true);
91 | }, this));
92 | };
93 |
94 | /**
95 | * Default options.
96 | * @public
97 | */
98 | Hash.Defaults = {
99 | URLhashListener: false
100 | };
101 |
102 | /**
103 | * Destroys the plugin.
104 | * @public
105 | */
106 | Hash.prototype.destroy = function() {
107 | var handler, property;
108 |
109 | $(window).off('hashchange.owl.navigation');
110 |
111 | for (handler in this._handlers) {
112 | this._core.$element.off(handler, this._handlers[handler]);
113 | }
114 | for (property in Object.getOwnPropertyNames(this)) {
115 | typeof this[property] != 'function' && (this[property] = null);
116 | }
117 | };
118 |
119 | $.fn.owlCarousel.Constructor.Plugins.Hash = Hash;
120 |
121 | })(window.Zepto || window.jQuery, window, document);
122 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/js/lib/owlcarousel/owl.animate.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Animate Plugin
3 | * @version 2.0.0
4 | * @author Bartosz Wojciechowski
5 | * @license The MIT License (MIT)
6 | */
7 | ;(function($, window, document, undefined) {
8 |
9 | /**
10 | * Creates the animate plugin.
11 | * @class The Navigation Plugin
12 | * @param {Owl} scope - The Owl Carousel
13 | */
14 | var Animate = function(scope) {
15 | this.core = scope;
16 | this.core.options = $.extend({}, Animate.Defaults, this.core.options);
17 | this.swapping = true;
18 | this.previous = undefined;
19 | this.next = undefined;
20 |
21 | this.handlers = {
22 | 'change.owl.carousel': $.proxy(function(e) {
23 | if (e.namespace && e.property.name == 'position') {
24 | this.previous = this.core.current();
25 | this.next = e.property.value;
26 | }
27 | }, this),
28 | 'drag.owl.carousel dragged.owl.carousel translated.owl.carousel': $.proxy(function(e) {
29 | if (e.namespace) {
30 | this.swapping = e.type == 'translated';
31 | }
32 | }, this),
33 | 'translate.owl.carousel': $.proxy(function(e) {
34 | if (e.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn)) {
35 | this.swap();
36 | }
37 | }, this)
38 | };
39 |
40 | this.core.$element.on(this.handlers);
41 | };
42 |
43 | /**
44 | * Default options.
45 | * @public
46 | */
47 | Animate.Defaults = {
48 | animateOut: false,
49 | animateIn: false
50 | };
51 |
52 | /**
53 | * Toggles the animation classes whenever an translations starts.
54 | * @protected
55 | * @returns {Boolean|undefined}
56 | */
57 | Animate.prototype.swap = function() {
58 |
59 | if (this.core.settings.items !== 1) {
60 | return;
61 | }
62 |
63 | if (!$.support.animation || !$.support.transition) {
64 | return;
65 | }
66 |
67 | this.core.speed(0);
68 |
69 | var left,
70 | clear = $.proxy(this.clear, this),
71 | previous = this.core.$stage.children().eq(this.previous),
72 | next = this.core.$stage.children().eq(this.next),
73 | incoming = this.core.settings.animateIn,
74 | outgoing = this.core.settings.animateOut;
75 |
76 | if (this.core.current() === this.previous) {
77 | return;
78 | }
79 |
80 | if (outgoing) {
81 | left = this.core.coordinates(this.previous) - this.core.coordinates(this.next);
82 | previous.one($.support.animation.end, clear)
83 | .css( { 'left': left + 'px' } )
84 | .addClass('animated owl-animated-out')
85 | .addClass(outgoing);
86 | }
87 |
88 | if (incoming) {
89 | next.one($.support.animation.end, clear)
90 | .addClass('animated owl-animated-in')
91 | .addClass(incoming);
92 | }
93 | };
94 |
95 | Animate.prototype.clear = function(e) {
96 | $(e.target).css( { 'left': '' } )
97 | .removeClass('animated owl-animated-out owl-animated-in')
98 | .removeClass(this.core.settings.animateIn)
99 | .removeClass(this.core.settings.animateOut);
100 | this.core.onTransitionEnd();
101 | };
102 |
103 | /**
104 | * Destroys the plugin.
105 | * @public
106 | */
107 | Animate.prototype.destroy = function() {
108 | var handler, property;
109 |
110 | for (handler in this.handlers) {
111 | this.core.$element.off(handler, this.handlers[handler]);
112 | }
113 | for (property in Object.getOwnPropertyNames(this)) {
114 | typeof this[property] != 'function' && (this[property] = null);
115 | }
116 | };
117 |
118 | $.fn.owlCarousel.Constructor.Plugins.Animate = Animate;
119 |
120 | })(window.Zepto || window.jQuery, window, document);
121 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/catalog/product/list/related.phtml:
--------------------------------------------------------------------------------
1 | getItems()->getSize()): ?>
2 |
78 |
79 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/layout/_bar.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Site Bar ----------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | .page-bar {
5 | position: fixed;
6 | top: 0;
7 | left: 0;
8 | width: 100%;
9 | border-bottom: 1px solid darken($concrete, 10%);
10 | transition: all 300ms ease-out 0s;
11 | background-color: #fff;
12 | z-index: 9999;
13 | @include rgba-bg(#fff, 0.9);
14 | @extend %clearfix;
15 |
16 | .actions {
17 | float: right;
18 |
19 | > div {
20 | position: relative;
21 | overflow: hidden;
22 | float: right;
23 | line-height: em(70);
24 | width: 0;
25 | min-width: em(70);
26 | border-left: 1px solid darken($concrete, 10%);
27 | transition: width 0.2s ease 0s;
28 | }
29 | }
30 |
31 | label {
32 | float: left;
33 | margin: 0;
34 | text-align: center;
35 | font-weight: bold;
36 | cursor: pointer;
37 | }
38 |
39 | input {
40 | border: 0;
41 | font-size: em(14);
42 | height: em(70, 14);
43 | padding: em(18, 14) em(15, 14) em(18, 14) 0;
44 | background: transparent;
45 | }
46 |
47 | input,
48 | select {
49 | vertical-align: top;
50 | }
51 |
52 | .field-cont {
53 | display: none;
54 | padding-left: em(70);
55 | }
56 |
57 | .style-select {
58 | height: em(70);
59 | line-height: em(70);
60 | border: 0;
61 | background: transparent;
62 |
63 | select {
64 | height: em(70, 14);
65 | line-height: em(70, 14);
66 | padding-left: 0;
67 | }
68 | }
69 |
70 | .active .field-cont {
71 | display: block;
72 | }
73 | }
74 |
75 | // -------------------------------------------------------------- //
76 | // Search Form -------------------------------------------------- //
77 | // -------------------------------------------------------------- //
78 | .page-bar .form-search {
79 | &.active {
80 | width: em(370);
81 | }
82 |
83 | label {
84 | width: em(70);
85 | height: em(70);
86 | text-indent: -9999px;
87 | @include sprite-2x-image($sprite__icon-search, $sprite-2x__icon-search);
88 | @include sprite-position($sprite__icon-search);
89 | }
90 |
91 | button {
92 | display: none;
93 | }
94 | }
95 |
96 | // -------------------------------------------------------------- //
97 | // Currency Switcher -------------------------------------------- //
98 | // -------------------------------------------------------------- //
99 | .page-bar .currency-switcher {
100 | &.active {
101 | width: em(370);
102 | }
103 |
104 | label {
105 | width: em(70);
106 | height: em(70);
107 | }
108 |
109 | .field-cont {
110 | padding-right: em(15);
111 | }
112 | }
113 |
114 | // -------------------------------------------------------------- //
115 | // Language Switcher -------------------------------------------- //
116 | // -------------------------------------------------------------- //
117 | .page-bar .actions .form-language {
118 | min-width: em(100);
119 |
120 | &.active {
121 | width: em(370);
122 | }
123 |
124 | label {
125 | width: em(100);
126 | padding: 0 15px;
127 | }
128 |
129 | .field-cont {
130 | padding-left: em(100);
131 | padding-right: em(20);
132 | }
133 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Magento Boilerplate
2 |
3 | ## Brief
4 | Starting a Magento project the right way is a must for any developer. This project has many benefits and is the base framework for any new project I start. It adheres to the recommended Magento templating hierarchy and has been built from the ground up.
5 | Note: This boilerplate is **NOT** complete, it is an ongoing project and it will take time to finish. The CSS has been written from scratch and I am slowly styling section by section as I go along, sit tight. If your expecting a fully fledged finished framework this is not for you.
6 | A demo site will be added in due course.
7 |
8 | ## Goods
9 |
10 | ### Sass
11 | The CSS has been written completely from scratch and is component based meaning each area is isolated making it highly re-useable. It is based of the [HTML5 boilerplate](http://html5boilerplate.com/) and also includes the latest version of [Normalize](https://necolas.github.io/normalize.css/).
12 |
13 | ### Removes default xml blocks
14 | Magento by default bundles a handful of xml blocks that are rarely used and only causes bloat, so I removed them from within local.xml.
15 | Note: They can be added back in if you need them by simply removing the line of code from local.xml.
16 |
17 | ### Removes unnecessary JS files that are rarely used
18 | Magento by default bundles a handful of JS files that are rarely used and only causes bloat/performance issues, so I removed them from within local.xml.
19 | Note: They can be added back in if you need them by simply removing the line of code from local.xml.
20 |
21 | ### Includes jQuery in no conflict mode
22 | jQuery v1.10.2 minified in no conflict mode is included as default, you can change this to include a more up to date version if you wish. It gets included at the very bottom of the dom just like it should be.
23 | This improves performance issues particularly on mobile devices as when a browser hits a script tag it actually waits for that entire asset to download before it proceeds, if it's in the head your going to block everything that renders visually on your page from starting.
24 |
25 | ### Grunt
26 | Grunt is all setup and ready to go. It comes with the following tasks:
27 |
28 | [Sprite Generation](https://github.com/Ensighten/grunt-spritesmith)
29 | [LibSass](https://github.com/sindresorhus/grunt-sass)
30 | [JSHint](https://github.com/gruntjs/grunt-contrib-jshint)
31 | [Concat](https://github.com/gruntjs/grunt-contrib-concat)
32 | [Uglify](https://github.com/gruntjs/grunt-contrib-uglify)
33 | [Watch](https://github.com/gruntjs/grunt-contrib-watch)
34 |
35 | ## Installation
36 | Drop in the directories app and skin within your Magento hierarchy e.g:
37 | magento > public_html > app
38 | magento > public_html > skin
39 | Then you will need to change the package name in the admin panel to render the new package you have just installed (system > configuration > design > package).
40 |
41 | ## Using Grunt
42 | First off I'm going to assume you have successfully installed Node.js and Grunt, if you haven't you need to do this first.
43 | First install [Node.js](http://nodejs.org/download/) then install [Grunt](http://gruntjs.com/getting-started). Once you've done that proceed below.
44 |
45 | cd into the skin theme directory like so
46 |
47 | ```shell
48 | cd {site_path}/skin/frontend/magentoboilerplate/default
49 | ```
50 |
51 | Install the project dependencies
52 |
53 | ```shell
54 | npm install
55 | ```
56 |
57 | Make changes to your files (sass and js) then you'll want to run grunt to initiate the tasks
58 |
59 | ```shell
60 | grunt
61 | ```
62 |
63 | Take it a step further and install the browser add-on [LiveReload](http://feedback.livereload.com/knowledgebase/articles/86242-how-do-i-install-and-use-the-browser-extensions-). With LiveReload you won’t have to go back to your browser and refresh the page. Page refreshes happen automatically and in the case of CSS, new styles are injected without a page refresh.
64 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/js/lib/owlcarousel/owl.lazyload.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Lazy Plugin
3 | * @version 2.0.0
4 | * @author Bartosz Wojciechowski
5 | * @license The MIT License (MIT)
6 | */
7 | ;(function($, window, document, undefined) {
8 |
9 | /**
10 | * Creates the lazy plugin.
11 | * @class The Lazy Plugin
12 | * @param {Owl} carousel - The Owl Carousel
13 | */
14 | var Lazy = function(carousel) {
15 |
16 | /**
17 | * Reference to the core.
18 | * @protected
19 | * @type {Owl}
20 | */
21 | this._core = carousel;
22 |
23 | /**
24 | * Already loaded items.
25 | * @protected
26 | * @type {Array.}
27 | */
28 | this._loaded = [];
29 |
30 | /**
31 | * Event handlers.
32 | * @protected
33 | * @type {Object}
34 | */
35 | this._handlers = {
36 | 'initialized.owl.carousel change.owl.carousel': $.proxy(function(e) {
37 | if (!e.namespace) {
38 | return;
39 | }
40 |
41 | if (!this._core.settings || !this._core.settings.lazyLoad) {
42 | return;
43 | }
44 |
45 | if ((e.property && e.property.name == 'position') || e.type == 'initialized') {
46 | var settings = this._core.settings,
47 | n = (settings.center && Math.ceil(settings.items / 2) || settings.items),
48 | i = ((settings.center && n * -1) || 0),
49 | position = ((e.property && e.property.value) || this._core.current()) + i,
50 | clones = this._core.clones().length,
51 | load = $.proxy(function(i, v) { this.load(v) }, this);
52 |
53 | while (i++ < n) {
54 | this.load(clones / 2 + this._core.relative(position));
55 | clones && $.each(this._core.clones(this._core.relative(position)), load);
56 | position++;
57 | }
58 | }
59 | }, this)
60 | };
61 |
62 | // set the default options
63 | this._core.options = $.extend({}, Lazy.Defaults, this._core.options);
64 |
65 | // register event handler
66 | this._core.$element.on(this._handlers);
67 | }
68 |
69 | /**
70 | * Default options.
71 | * @public
72 | */
73 | Lazy.Defaults = {
74 | lazyLoad: false
75 | }
76 |
77 | /**
78 | * Loads all resources of an item at the specified position.
79 | * @param {Number} position - The absolute position of the item.
80 | * @protected
81 | */
82 | Lazy.prototype.load = function(position) {
83 | var $item = this._core.$stage.children().eq(position),
84 | $elements = $item && $item.find('.owl-lazy');
85 |
86 | if (!$elements || $.inArray($item.get(0), this._loaded) > -1) {
87 | return;
88 | }
89 |
90 | $elements.each($.proxy(function(index, element) {
91 | var $element = $(element), image,
92 | url = (window.devicePixelRatio > 1 && $element.attr('data-src-retina')) || $element.attr('data-src');
93 |
94 | this._core.trigger('load', { element: $element, url: url }, 'lazy');
95 |
96 | if ($element.is('img')) {
97 | $element.one('load.owl.lazy', $.proxy(function() {
98 | $element.css('opacity', 1);
99 | this._core.trigger('loaded', { element: $element, url: url }, 'lazy');
100 | }, this)).attr('src', url);
101 | } else {
102 | image = new Image();
103 | image.onload = $.proxy(function() {
104 | $element.css({
105 | 'background-image': 'url(' + url + ')',
106 | 'opacity': '1'
107 | });
108 | this._core.trigger('loaded', { element: $element, url: url }, 'lazy');
109 | }, this);
110 | image.src = url;
111 | }
112 | }, this));
113 |
114 | this._loaded.push($item.get(0));
115 | }
116 |
117 | /**
118 | * Destroys the plugin.
119 | * @public
120 | */
121 | Lazy.prototype.destroy = function() {
122 | var handler, property;
123 |
124 | for (handler in this.handlers) {
125 | this._core.$element.off(handler, this.handlers[handler]);
126 | }
127 | for (property in Object.getOwnPropertyNames(this)) {
128 | typeof this[property] != 'function' && (this[property] = null);
129 | }
130 | };
131 |
132 | $.fn.owlCarousel.Constructor.Plugins.Lazy = Lazy;
133 |
134 | })(window.Zepto || window.jQuery, window, document);
135 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/customer/address/book.phtml:
--------------------------------------------------------------------------------
1 |
7 |
8 | getMessagesBlock()->getGroupedHtml() ?>
9 |
10 |
11 |
18 |
19 |
20 |
21 |
22 |
__('Delivery Address') ?>
23 |
24 | getCustomer()->getDefaultShipping()): ?>
25 |
getAddressHtml(Mage::getSingleton('customer/session')->getCustomer()->getAddressById($_pAddsses)) ?>
26 |
27 | __('Change Shipping Address') ?>
28 |
29 |
30 |
__('You have no default shipping address in your address book.') ?>
31 |
32 |
33 |
34 |
35 |
36 |
37 |
__('Billing Address') ?>
38 |
39 | getCustomer()->getDefaultBilling()): ?>
40 |
getAddressHtml(Mage::getSingleton('customer/session')->getCustomer()->getAddressById($_pAddsses)) ?>
41 |
42 | __('Change Billing Address') ?>
43 |
44 |
45 | __('You have no default billing address in your address book.') ?>
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
__('Additional Entries') ?>
54 |
55 | getAdditionalAddresses()): ?>
56 |
67 |
68 |
__('You have no additional address entries in your address book.') ?>
69 |
70 |
71 |
72 |
82 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/catalog/product/view/media.phtml:
--------------------------------------------------------------------------------
1 |
10 | getProduct();
12 | $_helper = $this->helper('catalog/output');
13 | ?>
14 |
15 |
16 |
17 |
18 | getImage() == 'no_selection'): ?>
19 |
20 |
25 |
26 |
27 |
28 | getImage() == 'no_selection'){
30 | $i = 1;
31 | } else {
32 | $i = 0;
33 | }
34 | ?>
35 |
36 | getGalleryImages() as $_image): ?>
37 | helper('catalog/image')
39 | ->init($_product, 'image', $_image->getFile())
40 | ->keepFrame(false)
41 | ->constrainOnly(true)
42 | ->resize(1200);
43 |
44 | $_imageUrlZoom = $this->helper('catalog/image')
45 | ->init($_product, 'image', $_image->getFile())
46 | ->keepFrame(false)
47 | ->constrainOnly(true)
48 | ->resize(1560);
49 | ?>
50 |
51 |
52 |
59 |
60 |
61 |
62 |
63 |
64 | getGalleryImages()) > 0): ?>
65 |
66 |
67 | getImage() == 'no_selection'){
69 | $i = 1;
70 | } else {
71 | $i = 0;
72 | }
73 | ?>
74 |
75 | getGalleryImages() as $_image): ?>
76 | getGalleryFilterHelper()) && ($filterMethod = $this->getGalleryFilterMethod()) && !Mage::helper($filterClass)->$filterMethod($_product, $_image)):
78 | continue;
79 | endif;
80 | ?>
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 | getChildHtml('after'); ?>
90 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/customer/account/dashboard/wishlist.phtml:
--------------------------------------------------------------------------------
1 |
4 |
5 | helper('wishlist')->isAllow()) : ?>
6 | hasWishlistItems()): ?>
7 | getData('wishlist_count');
9 | ?>
10 |
11 |
12 |
19 |
20 |
21 | getWishlistItems() as $_item): ?>
22 | getProduct();
24 | if($i == $_wishlistCount){ break; } // only show so many products set in customer.xml
25 | ?>
26 |
27 |
28 |
55 |
56 |
57 |
62 |
63 | getPriceHtml($product, true) ?>
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/components/_forms.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Forms -------------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | label {
5 | display: block;
6 | margin-bottom: em(10);
7 | }
8 |
9 | label.required em,
10 | span.required em {
11 | display: none;
12 | }
13 |
14 | input[type=email],
15 | input[type=search],
16 | input[type=number],
17 | input[type=password],
18 | input[type=tel],
19 | input[type=text],
20 | textarea,
21 | select {
22 | background: $white;
23 | border: 2px solid $alto;
24 | border-radius: 3px;
25 | font-size: em(16);
26 | padding: em(13, 16) em(15, 16);
27 | transition: all 0.1s ease-in-out 0s;
28 | color: $color-secondary;
29 | width: 100%;
30 |
31 | &:focus {
32 | border-color: $color-primary;
33 | }
34 | }
35 |
36 | input[type=email],
37 | input[type=search],
38 | input[type=number],
39 | input[type=password],
40 | input[type=tel],
41 | input[type=text] {
42 | height: em(50, 16);
43 | }
44 |
45 | input[type=search] {
46 | @include box-sizing(border-box);
47 | }
48 |
49 | select {
50 | font-size: em(14);
51 | padding: em(5, 14) em(10, 14);
52 | }
53 |
54 | .input-group {
55 | display: table;
56 |
57 | input,
58 | textarea,
59 | select {
60 | display: table-cell;
61 | }
62 | }
63 |
64 | .input-group-btn {
65 | display: table-cell;
66 | vertical-align: middle;
67 | width: 1%;
68 | padding-left: em(10);
69 | }
70 |
71 | // Instructions
72 | .form-instructions {
73 | margin-bottom: em(30);
74 | }
75 |
76 | // Remember me
77 | .remember-me-popup {
78 | display: none;
79 | }
80 |
81 | // -------------------------------------------------------------- //
82 | // Styled Select ------------------------------------------------ //
83 | // -------------------------------------------------------------- //
84 | .style-select {
85 | position: relative;
86 | overflow: hidden;
87 | background-color: #fff;
88 | border: 2px solid $alto;
89 | border-radius: 3px;
90 | width: 100%;
91 |
92 | &:after {
93 | @include css-triangle(6px, $boulder, top);
94 | position: absolute;
95 | top: 50%;
96 | right: 10px;
97 | margin-top: -3px;
98 | }
99 |
100 | select {
101 | display: block;
102 | border: 0; // removes border
103 | -webkit-appearance: none; // removes default chrome and safari style
104 | -moz-appearance: none; // removes default firefox style
105 | text-indent: 0.01px; // removes default arrow from firefox
106 | text-overflow: ""; // removes default arrow from firefox
107 | background: transparent;
108 | cursor: pointer;
109 | font-size: 14px;
110 | padding-right: em(32, 14); // larger on the right to take arrow into account
111 | width: 100%;
112 | vertical-align: top;
113 | position: relative;
114 | z-index: 1;
115 |
116 | &::-ms-expand {
117 | display: none;
118 | }
119 |
120 | &:focus {
121 | outline: 0;
122 | }
123 | }
124 | }
125 |
126 | // -------------------------------------------------------------- //
127 | // Small Form --------------------------------------------------- //
128 | // -------------------------------------------------------------- //
129 | .container.form-small {
130 | max-width: em(600);
131 | }
132 |
133 | // -------------------------------------------------------------- //
134 | // Form list ---------------------------------------------------- //
135 | // -------------------------------------------------------------- //
136 | .form-list {
137 | > li,
138 | .field {
139 | margin-bottom: em(20);
140 | }
141 |
142 | li.control {
143 | .input-box {
144 | display: inline;
145 | }
146 |
147 | label {
148 | display: inline-block;
149 | margin: 0 0 0 em(10);
150 | cursor: pointer;
151 | }
152 | }
153 | }
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/js/lib/owlcarousel/owl.autoplay.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Autoplay Plugin
3 | * @version 2.0.0
4 | * @author Bartosz Wojciechowski
5 | * @author Artus Kolanowski
6 | * @license The MIT License (MIT)
7 | */
8 | ;(function($, window, document, undefined) {
9 |
10 | /**
11 | * Creates the autoplay plugin.
12 | * @class The Autoplay Plugin
13 | * @param {Owl} scope - The Owl Carousel
14 | */
15 | var Autoplay = function(carousel) {
16 | /**
17 | * Reference to the core.
18 | * @protected
19 | * @type {Owl}
20 | */
21 | this._core = carousel;
22 |
23 | /**
24 | * The autoplay interval.
25 | * @type {Number}
26 | */
27 | this._interval = null;
28 |
29 | /**
30 | * Indicates whenever the autoplay is paused.
31 | * @type {Boolean}
32 | */
33 | this._paused = false;
34 |
35 | /**
36 | * All event handlers.
37 | * @protected
38 | * @type {Object}
39 | */
40 | this._handlers = {
41 | 'changed.owl.carousel': $.proxy(function(e) {
42 | if (e.namespace && e.property.name === 'settings') {
43 | if (this._core.settings.autoplay) {
44 | this.play();
45 | } else {
46 | this.stop();
47 | }
48 | }
49 | }, this),
50 | 'initialized.owl.carousel': $.proxy(function(e) {
51 | if (e.namespace && this._core.settings.autoplay) {
52 | this.play();
53 | }
54 | }, this),
55 | 'play.owl.autoplay': $.proxy(function(e, t, s) {
56 | if (e.namespace) {
57 | this.play(t, s);
58 | }
59 | }, this),
60 | 'stop.owl.autoplay': $.proxy(function(e) {
61 | if (e.namespace) {
62 | this.stop();
63 | }
64 | }, this),
65 | 'mouseover.owl.autoplay': $.proxy(function() {
66 | if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {
67 | this.pause();
68 | }
69 | }, this),
70 | 'mouseleave.owl.autoplay': $.proxy(function() {
71 | if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {
72 | this.play();
73 | }
74 | }, this)
75 | };
76 |
77 | // register event handlers
78 | this._core.$element.on(this._handlers);
79 |
80 | // set default options
81 | this._core.options = $.extend({}, Autoplay.Defaults, this._core.options);
82 | };
83 |
84 | /**
85 | * Default options.
86 | * @public
87 | */
88 | Autoplay.Defaults = {
89 | autoplay: false,
90 | autoplayTimeout: 5000,
91 | autoplayHoverPause: false,
92 | autoplaySpeed: false
93 | };
94 |
95 | /**
96 | * Starts the autoplay.
97 | * @public
98 | * @param {Number} [timeout] - The interval before the next animation starts.
99 | * @param {Number} [speed] - The animation speed for the animations.
100 | */
101 | Autoplay.prototype.play = function(timeout, speed) {
102 | this._paused = false;
103 |
104 | if (this._core.is('rotating')) {
105 | return;
106 | }
107 |
108 | this._core.enter('rotating');
109 |
110 | this._interval = window.setInterval($.proxy(function() {
111 | if (this._paused || this._core.is('busy') || this._core.is('interacting') || document.hidden) {
112 | return;
113 | }
114 | this._core.next(speed || this._core.settings.autoplaySpeed);
115 | }, this), timeout || this._core.settings.autoplayTimeout);
116 | };
117 |
118 | /**
119 | * Stops the autoplay.
120 | * @public
121 | */
122 | Autoplay.prototype.stop = function() {
123 | if (!this._core.is('rotating')) {
124 | return;
125 | }
126 |
127 | window.clearInterval(this._interval);
128 | this._core.leave('rotating');
129 | };
130 |
131 | /**
132 | * Stops the autoplay.
133 | * @public
134 | */
135 | Autoplay.prototype.pause = function() {
136 | if (!this._core.is('rotating')) {
137 | return;
138 | }
139 |
140 | this._paused = true;
141 | };
142 |
143 | /**
144 | * Destroys the plugin.
145 | */
146 | Autoplay.prototype.destroy = function() {
147 | var handler, property;
148 |
149 | this.stop();
150 |
151 | for (handler in this._handlers) {
152 | this._core.$element.off(handler, this._handlers[handler]);
153 | }
154 | for (property in Object.getOwnPropertyNames(this)) {
155 | typeof this[property] != 'function' && (this[property] = null);
156 | }
157 | };
158 |
159 | $.fn.owlCarousel.Constructor.Plugins.autoplay = Autoplay;
160 |
161 | })(window.Zepto || window.jQuery, window, document);
162 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/persistent/customer/form/login.phtml:
--------------------------------------------------------------------------------
1 |
9 |
10 | getMessagesBlock()->getGroupedHtml() ?>
11 |
12 |
72 |
73 |
78 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/template/page/html/pager.phtml:
--------------------------------------------------------------------------------
1 |
8 | getCollection()->getSize()): ?>
9 | getUseContainer()): ?>
10 |
96 |
97 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/components/_social.scss:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------- //
2 | // Social Icons ------------------------------------------------- //
3 | // -------------------------------------------------------------- //
4 | [class*='social-'] {
5 | span {
6 | display: inline-block;
7 | width: 100%;
8 | background-repeat: no-repeat;
9 | background-position: center center;
10 | @include image-replacement;
11 | }
12 | }
13 |
14 | .social-twitter {
15 | span {
16 | background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjY4OS41NDYgNTg5LjI0MiAyMS4wNjEgMjEuMDYxIiA+PHBhdGggZmlsbD0iIzFFMUUxRSIgZD0iTTcxMC42MDYgNTkzLjQ4NGMtMC43NTggMC4zMDQtMS42NjcgMC42MDYtMi40MjUgMC42MDZjMC45MDktMC40NTQgMS41MTYtMS4zNjMgMS45Ny0yLjQyNCBjLTAuOTA5IDAuNDU0LTEuODE4IDAuOTA5LTIuNzI4IDEuMDYxYy0wLjc1Ny0wLjc1OC0xLjk2OS0xLjM2NC0zLjE4Mi0xLjM2NGMtMi40MjQgMC00LjM5NCAxLjk3LTQuMzk0IDQuMiBjMCAwLjMgMCAwLjYgMC4yIDAuOTA5Yy0zLjYzNy0wLjE1Mi02LjgxOC0xLjgxOC04LjkzOS00LjU0NmMtMC4zMDMgMC42MDYtMC42MDUgMS4zNjMtMC42MDUgMi4xIGMwIDEuNSAwLjggMi43IDIgMy42MzdjLTAuNzU3IDAtMS4zNjMtMC4xNTEtMS45NjktMC42MDZsMCAwYzAgMi4xIDEuNSAzLjggMy41IDQuMiBjLTAuMzAzIDAuMTUyLTAuNzU4IDAuMTUyLTEuMjEyIDAuMTUyYy0wLjMwNCAwLTAuNjA2IDAtMC43NTgtMC4xNTJjMC42MDYgMS43IDIuMSAyLjkgNC4xIDMgYy0xLjUxNSAxLjIxMy0zLjMzMyAxLjgxOC01LjQ1NCAxLjgxOGMtMC4zMDQgMC0wLjc1OCAwLTEuMDYxIDBjMS45NyAxLjIgNC4yIDIgNi43IDIgYzguMDMgMCAxMi40MjUtNi41MTUgMTIuNDI1LTEyLjEyMWMwLTAuMTUxIDAtMC4zMDMgMC0wLjYwNkM3MDkuMjQyIDU5NS4yIDcxMCA1OTQuNCA3MTAuNiA1OTMuNDg0eiIvPjwvc3ZnPg==");
17 | }
18 | }
19 |
20 | .social-facebook {
21 | span {
22 | background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjY4OS40IDU4OS40IDIxLjIgMjEuMiIgPjxwYXRoIGZpbGw9IiMxRTFFMUUiIGQ9Ik02OTcuNTc2IDYxMC42MDZ2LTEwSDY5NXYtMy42MzdoMi41NzZjMCAwIDAtMS41MTYgMC0zLjAzYzAtMi40MjQgMS41MTUtNC41NDYgNS00LjU0NiBjMS4zNjMgMCAyLjQgMC4yIDIuNCAwLjE1MmwtMC4xNTEgMy4zMzNjMCAwLTEuMDYxIDAtMi4yNzIgMGMtMS4yMTMgMC0xLjUxNiAwLjYwNS0xLjUxNiAxLjUxNWMwIDAuOCAwLTEuNjY2IDAgMi42IGgzLjc4OGwtMC4xNTEgMy42MzdoLTMuNjM3djEwSDY5Ny41NzZ6Ii8+PC9zdmc+");
23 | }
24 | }
25 |
26 | .social-google {
27 | span {
28 | background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNDAgNDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDQwIDQwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggZmlsbD0iIzE0MTAwQSIgZD0iTTM2LDEyaC01VjdoLTJ2NWgtNXYyaDV2NWgydi01aDVWMTJ6Ii8+CjxwYXRoIGZpbGw9IiMxNDEwMEEiIGQ9Ik0xOC4xLDIzYy0wLjgtMC41LTIuMi0xLjktMi4yLTIuNmMwLTAuOSwwLjMtMS40LDEuNi0yLjRjMS40LTEuMSwyLjUtMi41LDIuNS00LjNjMC0yLjEtMS0zLjctMi44LTQuN2gyLjcKCWwxLjktMmMwLDAtNi4zLDAtOC40LDBDOS41LDcsNiwxMCw2LDEzLjNjMCwzLjQsMi42LDYuMiw2LjQsNi4yYzAuMywwLDAuNSwwLDAuOCwwYy0wLjIsMC41LTAuNCwxLTAuNCwxLjZjMCwwLjksMC41LDEuNywxLjEsMi4zCgljLTAuNSwwLTEsMC0xLjUsMGMtNC43LDAtOC40LDMtOC40LDYuMWMwLDMsNC4xLDUuMyw4LjgsNS4zYzUuMywwLDguMi0zLjQsOC4yLTYuNUMyMSwyNi4xLDIwLjMsMjQuNiwxOC4xLDIzeiBNMTMuNiwxOC44CgljLTIuMi0wLjEtNC4yLTIuNC00LjYtNS4zYy0wLjQtMi45LDEuMS01LDMuMy01YzIuMiwwLjEsNC4zLDIuNCw0LjcsNS4yQzE3LjMsMTYuNiwxNS44LDE4LjksMTMuNiwxOC44eiBNMTIuNywzMwoJYy0zLjIsMC01LjYtMS44LTUuNi00LjNjMC0yLjQsMi45LTQuNCw2LjEtNC40YzAuOCwwLDEuNSwwLjEsMi4xLDAuM2MxLjgsMS4yLDMsMS45LDMuNCwzLjNjMC4xLDAuMywwLjEsMC42LDAuMSwwLjkKCUMxOC45LDMxLjMsMTcuMywzMywxMi43LDMzeiIvPgo8L3N2Zz4=");
29 | }
30 | }
31 |
32 | .social-pinterest {
33 | span {
34 | background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjY4OS4zOTQgNTg5LjM5NCAyMS4zNjQgMjEuMzY0IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDY4OS4zOTQgNTg5LjM5NCAyMS4zNjQgMjEuMzY0IiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjMUUxRTFFIiBkPSJNNzAwIDU4OS4zOTRjLTUuOTA5IDAtMTAuNjA2IDQuNjk3LTEwLjYwNiAxMC42MDZjMCA0LjQgMi42IDggNi40IDkuNyBjMC0wLjc1OCAwLTEuNjY3IDAuMTUxLTIuNDI1YzAuMTUxLTAuOTA5IDEuMzYzLTUuNzU3IDEuMzYzLTUuNzU3cy0wLjMwMy0wLjYwNi0wLjMwMy0xLjY2N2MwLTEuNTE2IDAuOTA5LTIuNzI4IDIuMTIxLTIuNzI4IGMwLjkwOSAwIDEuNCAwLjggMS40IDEuNjY3cy0wLjYwNSAyLjQyNC0wLjkwOSAzLjc4OGMtMC4zMDMgMS4xIDAuNiAyIDEuNyAxLjk3YzEuOTcgMCAzLjMzNC0yLjU3NiAzLjMzNC01LjYwNiBjMC0yLjI3Mi0xLjUxNi00LjA5MS00LjM5NS00LjA5MWMtMy4xODIgMC01LjE1MSAyLjQyNC01LjE1MSA1LjE1MWMwIDAuOSAwLjMgMS41IDAuOCAyLjEgYzAuMTUxIDAuMyAwLjIgMC4zIDAuMiAwLjYwNmMwIDAuMTUxLTAuMTUxIDAuNjA1LTAuMTUxIDAuOTA5YzAgMC4zMDMtMC4zMDMgMC4zMDMtMC42MDYgMC4zIGMtMS41MTUtMC42MDYtMi4xMjEtMi4yNzItMi4xMjEtNC4wOTFjMC0zLjAzIDIuNTc2LTYuNjY3IDcuNTc2LTYuNjY3YzQuMDkxIDAgNi43IDIuOSA2LjcgNi4xIGMwIDQuMDkxLTIuMjcyIDcuMjcyLTUuNzU3IDcuMjcyYy0xLjIxMyAwLTIuMjczLTAuNjA1LTIuNTc2LTEuMzYzYzAgMC0wLjYwNiAyLjQyNS0wLjc1OCAyLjkgYy0wLjE1MSAwLjc1OC0wLjYwNSAxLjY2Ny0xLjA2MSAyLjI3MmMwLjkwOSAwLjMgMiAwLjUgMyAwLjQ1NWM1LjkwOSAwIDEwLjYwNi00LjY5NyAxMC42MDYtMTAuNjA2IEM3MTAuNjA2IDU5NC4xIDcwNS45IDU4OS40IDcwMCA1ODkuMzk0eiIvPjwvc3ZnPg==");
35 | }
36 | }
--------------------------------------------------------------------------------
/app/code/local/Boilerplate/All/etc/system.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Boilerplate Extensions]]>
6 | boilerplate-extensions-section
7 | 300
8 |
9 |
10 |
11 |
12 | Global Options
13 | boilerplate
14 | text
15 | 1
16 | 1
17 | 1
18 | 0
19 |
20 |
21 | Social Media
22 | text
23 | 2
24 | 1
25 | 1
26 | 0
27 |
28 |
29 | Enable Links
30 | Used to link to profile pages, shown in the footer by default.
31 | select
32 | adminhtml/system_config_source_enabledisable
33 | 1
34 | 1
35 | 1
36 | 1
37 |
38 |
39 |
40 | Enable Sharing
41 | select
42 | Used to share a product, shown on the product page by default.
43 | adminhtml/system_config_source_enabledisable
44 | 2
45 | 1
46 | 1
47 | 1
48 |
49 |
50 |
51 | Twitter Username
52 | text
53 | 3
54 | 1
55 | 1
56 | 1
57 |
58 |
59 |
60 | Facebook URL
61 | text
62 | 4
63 | 1
64 | 1
65 | 1
66 |
67 |
68 |
69 | Google+ URL
70 | text
71 | 5
72 | 1
73 | 1
74 | 1
75 |
76 |
77 |
78 | Pinterest URL
79 | text
80 | 6
81 | 1
82 | 1
83 | 1
84 |
85 |
86 |
87 | YouTube URL
88 | text
89 | 7
90 | 1
91 | 1
92 | 1
93 |
94 |
95 |
96 |
97 |
98 |
99 |
--------------------------------------------------------------------------------
/app/design/frontend/magentoboilerplate/default/layout/local.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | skin_js js/lib/modernizr.custom.min.js
30 |
31 |
32 |
33 |
34 |
35 | Page Content Before
36 | content-before-container
37 |
38 |
39 |
40 |
41 |
42 | skin_js js/lib/enquire.min.js
43 | skin_js js/lib/owlcarousel/owl.carousel.js
44 | skin_js js/lib/owlcarousel/owl.autorefresh.js
45 | skin_js js/lib/owlcarousel/owl.lazyload.js
46 | skin_js js/lib/owlcarousel/owl.autoheight.js
47 | skin_js js/lib/owlcarousel/owl.video.js
48 | skin_js js/lib/owlcarousel/owl.animate.js
49 | skin_js js/lib/owlcarousel/owl.autoplay.js
50 | skin_js js/lib/owlcarousel/owl.navigation.js
51 | skin_js js/lib/owlcarousel/owl.hash.js
52 | skin_js js/lib/owlcarousel/owl.support.js
53 | skin_js js/lib/toggle.single.js
54 | skin_js js/core.js
55 |
56 |
57 |
58 |
59 |
60 | footer_links
61 |
62 |
63 |
64 |
65 |
66 |
67 | skin_js
68 |
69 |
70 |
71 | skin_js js/lib/elevatezoom/jquery.elevateZoom-3.0.8.min.js
72 | skin_js js/product.gallery.js
73 |
74 |
75 |
76 |
77 |
78 | skin_js js/category.js
79 |
80 |
81 |
82 |
83 |
84 | skin_js js/category.js
85 |
86 |
87 |
88 |
89 |
90 | billing_agreements
91 | recurring_profiles
92 | OAuth Customer Tokens
93 | downloadable_products
94 |
95 |
96 |
97 | skin_js js/account.js
98 |
99 |
100 |
--------------------------------------------------------------------------------
/skin/frontend/magentoboilerplate/default/scss/utilities/sprites/_sprite.scss:
--------------------------------------------------------------------------------
1 | $sprite__icon-minus-white__x : 90px;
2 | $sprite__icon-minus-white__y : 0px;
3 | $sprite__icon-minus-white__offset-x : -90px;
4 | $sprite__icon-minus-white__offset-y : 0px;
5 | $sprite__icon-minus-white__width : 9px;
6 | $sprite__icon-minus-white__height : 9px;
7 | $sprite__icon-minus-white__total-width : 99px;
8 | $sprite__icon-minus-white__total-height : 99px;
9 | $sprite__icon-minus-white__image : '../images/sprites/sprite.png';
10 | $sprite__icon-minus-white : 90px 0px -90px 0px 9px 9px 99px 99px '../images/sprites/sprite.png';
11 | $sprite__icon-minus__x : 90px;
12 | $sprite__icon-minus__y : 29px;
13 | $sprite__icon-minus__offset-x : -90px;
14 | $sprite__icon-minus__offset-y : -29px;
15 | $sprite__icon-minus__width : 9px;
16 | $sprite__icon-minus__height : 9px;
17 | $sprite__icon-minus__total-width : 99px;
18 | $sprite__icon-minus__total-height : 99px;
19 | $sprite__icon-minus__image : '../images/sprites/sprite.png';
20 | $sprite__icon-minus : 90px 29px -90px -29px 9px 9px 99px 99px '../images/sprites/sprite.png';
21 | $sprite__icon-plus-white__x : 90px;
22 | $sprite__icon-plus-white__y : 58px;
23 | $sprite__icon-plus-white__offset-x : -90px;
24 | $sprite__icon-plus-white__offset-y : -58px;
25 | $sprite__icon-plus-white__width : 9px;
26 | $sprite__icon-plus-white__height : 9px;
27 | $sprite__icon-plus-white__total-width : 99px;
28 | $sprite__icon-plus-white__total-height : 99px;
29 | $sprite__icon-plus-white__image : '../images/sprites/sprite.png';
30 | $sprite__icon-plus-white : 90px 58px -90px -58px 9px 9px 99px 99px '../images/sprites/sprite.png';
31 | $sprite__icon-plus__x : 0px;
32 | $sprite__icon-plus__y : 90px;
33 | $sprite__icon-plus__offset-x : 0px;
34 | $sprite__icon-plus__offset-y : -90px;
35 | $sprite__icon-plus__width : 9px;
36 | $sprite__icon-plus__height : 9px;
37 | $sprite__icon-plus__total-width : 99px;
38 | $sprite__icon-plus__total-height : 99px;
39 | $sprite__icon-plus__image : '../images/sprites/sprite.png';
40 | $sprite__icon-plus : 0px 90px 0px -90px 9px 9px 99px 99px '../images/sprites/sprite.png';
41 | $sprite__icon-right__x : 29px;
42 | $sprite__icon-right__y : 90px;
43 | $sprite__icon-right__offset-x : -29px;
44 | $sprite__icon-right__offset-y : -90px;
45 | $sprite__icon-right__width : 9px;
46 | $sprite__icon-right__height : 9px;
47 | $sprite__icon-right__total-width : 99px;
48 | $sprite__icon-right__total-height : 99px;
49 | $sprite__icon-right__image : '../images/sprites/sprite.png';
50 | $sprite__icon-right : 29px 90px -29px -90px 9px 9px 99px 99px '../images/sprites/sprite.png';
51 | $sprite__icon-search__x : 0px;
52 | $sprite__icon-search__y : 0px;
53 | $sprite__icon-search__offset-x : 0px;
54 | $sprite__icon-search__offset-y : 0px;
55 | $sprite__icon-search__width : 70px;
56 | $sprite__icon-search__height : 70px;
57 | $sprite__icon-search__total-width : 99px;
58 | $sprite__icon-search__total-height : 99px;
59 | $sprite__icon-search__image : '../images/sprites/sprite.png';
60 | $sprite__icon-search : 0px 0px 0px 0px 70px 70px 99px 99px '../images/sprites/sprite.png';
61 |
62 | @mixin sprite-width($sprite){
63 | width: nth($sprite, 5);
64 | }
65 |
66 | @mixin sprite-height($sprite){
67 | height: nth($sprite, 6);
68 | }
69 |
70 | @mixin sprite-position($sprite, $extra-offset-x: 0, $extra-offset-y: 0){
71 | $sprite-offset-x: nth($sprite, 3) + $extra-offset-x;
72 | $sprite-offset-y: nth($sprite, 4) + $extra-offset-y;
73 | background-position: $sprite-offset-x $sprite-offset-y;
74 | }
75 |
76 | @mixin sprite-image($sprite) {
77 | $sprite-image: nth($sprite, 9);
78 | background-image: url(#{$sprite-image});
79 | }
80 |
81 | @mixin sprite($sprite){
82 | @include sprite-image($sprite);
83 | @include sprite-position($sprite);
84 | @include sprite-width($sprite);
85 | @include sprite-height($sprite);
86 | }
87 |
88 | // -------------------------------------------------------------- //
89 | // Retina ------------------------------------------------------- //
90 | // -------------------------------------------------------------- //
91 |
92 | // @source bensmithett.com/goodbye-compass
93 | // @source https://github.com/Ensighten/spritesmith/issues/19#issuecomment-24843826
94 |
95 | // Retina sprite full works
96 | // @include sprite-2x($sprite__twitter, $sprite-2x__twitter);
97 | @mixin sprite-2x($sprite1x, $sprite2x){
98 | @include sprite($sprite1x);
99 |
100 | @include if-min-resolution (1.5) {
101 | // Use the 2x image...
102 | @include sprite-image($sprite2x);
103 |
104 | // ...but set background-size to the size of the 1x image...
105 | background-size: nth($sprite1x, 7) nth($sprite1x, 8);
106 | }
107 | }
108 |
109 | // Retina sprite background-image only
110 | // Once this is set you can use the position, height & width mixins individually with 1x values
111 | // (e.g. if you only want to set a new background-position on hover, don't need to re-set background-image or you want to adjust the background position)
112 | // @include sprite-2x-image($sprite__twitter, $sprite-2x__twitter);
113 | // @include sprite-position($sprite__twitter, 30, 5);
114 | @mixin sprite-2x-image($sprite1x, $sprite2x){
115 | @include sprite-image($sprite1x);
116 | background-repeat: no-repeat;
117 |
118 | @include if-min-resolution (1.5) {
119 | @include sprite-image($sprite2x);
120 | background-size: nth($sprite1x, 7) nth($sprite1x, 8)
121 | }
122 | }
123 |
--------------------------------------------------------------------------------