## Tips

Most of the questions are already answered in the FAQ's: http://www.okler.net/forums/forums/template-porto/faqs/
Due to local security restrictions, some things will not work locally, especially in Chrome. But everything will work once the files have been uploaded to your website/server.
Use Firebug or Chrome Developer Tools.
Do not start from scratch, use an existing page from the demo and modify it to learn how it works.
Getting an error message? Someone might have seen it too, try a google search for a quick fix.
Explore the live demo for pages ideas and sample code.

## Files Structure

- `/HTML`
  - `/css` (Template CSS)
  - `/fonts` (Font Faces, Font Awesome, etc..)
  - `/skins`
    - `default.css`
    - `...` (Create your own skin)
  - `/img` (All Images)
  - `/js` (Template JS)
  - `/views` (JS to run in specific pages. I.E: Home or Contact Us)
  - `/master` (You don't need to include that folder in your project, it has only the Style Switcher functions)
  - `/php` (PHP Helpers - I.E: Contact Us form.)
  - `/vendor` (All external libs. We keep all of them in this folder to make updates easily.)
  - `/video` (All Videos)

## Javascript

It's possible to change the JS settings by extending the defaults from the template, that way is so much easier to update the theme changing only one JS file.
Here are a few samples on how to do that:

#### Changing Settings

1) Changing the "scroll to top" icon: (js/custom.js)

    $.extend(theme.PluginScrollToTop.defaults, {
    	iconClass: 'fa fa-chevron-up'
    });

2) Changing the "word rotate" default delay: (js/custom.js)

    $.extend(theme.PluginWordRotate.defaults, {
    	delay: 3000
    });

You can find all the defaults of the plugins and partials in the file js/theme.js as you can see here:

#### Changing Plugins Options

The template includes a very simple way to configure the elements that are initialized automatically, such as the sliders, you just need to put the settings in the "data-plugin-options" attribute, as you can see below:

    <div class="slider" data-plugin-revolution-slider data-plugin-options='{"startheight": 700}'>

It works the same way for most of the plugins included in the template: owlCarousel, Word Rotate, Twitter Feed, etc...
If you want to disable the auto initialization you can just add a class "manual" or remove the data-plugin-* attribute:

    <div class="slider manual" id="myRevolutionSlider">

So now you can initialize that using the standard JS mode:

    $(document).ready(function() {
    	$('#myRevolutionSlider').revolution({
    		delay:9000,
    		startwidth:960,
    		...
    		...
    	});
    });

#### Remove/Disable a Plugin or Partial

If you want to remove/disable a plugin or partial that has a "initialize" function completely, follow this example: (js/custom.js)

    theme.PluginScrollToTop.initialize = function() {};

You can find all the available plugins and partials in the file js/theme.init.js as you can see here:

#### Manually Initializing a Plugin

Some of the plugins/elements are initialized automatically, if you want to disabled that and call the plugin via Javascript, follow these steps:
FROM (HTML):

    <div class="owl-carousel" data-plugin-options='{"items": 6, "singleItem": false, "autoPlay": true}'>

TO (HTML):

    <div class="owl-carousel manual" id="owl-example">

(Javascript):

    $(document).ready(function() {
    	$("#owl-example").owlCarousel({
    		"items": 6,
    		"singleItem": false,
    		"autoPlay": true
    	});
    });

## HTML Structure

The template is based on Bootstrap 3 Framework - http://getbootstrap.com

Bootstrap includes a responsive, mobile first fluid grid system that appropriately scales up to 12 columns as the device or viewport size increases.

    <div class="row">
    	<div class="col-md-12">
    		Level 1 column
    		<div class="row">
    			<div class="col-md-6">Level 2</div>
    			<div class="col-md-6">Level 2</div>
    		</div>
    	</div>
    </div>

If you need more information, please visit this site: http://getbootstrap.com/css/#grid

## CSS Structure

The organization of the CSS is one of our priorities.

These are the CSS file we're using in the template:

- `theme.css` - (The basic layout structure styles)
- `theme-elements.css` - (Elements such as sliders, boxes, titles, etc...)
- `theme-shop.css` - (Shop Pages styles)
- `theme-blog.css` (Blog Pages styles)
- `theme-animate.css` (CSS Animations)
- `custom.css` (Add all customizations into this file)
- `ie.css` (Internet Explorer fixes)

## Customization & Styles

#### Colors

The style switcher was made to support unlimited skin colors, for that we use Less (http://www.lesscss.org/) to process the CSS dinamically in the demo and show the color right away.
You don't need to use LESS in your project, after you done customizing your skin you may want to grab the generated code and save it in a file in the folder: /css/skins/(skin-name).css
Learn More: How to change the Skin

#### Layout Style (Normal/Boxed)

The template has two different layout modes, Wide and Boxed. The wide one is the default option, if you want to use the Boxed version, add the following class in the <html>:

    <html class="boxed">

You can also customize the background color or image.

#### Background Color (Light/Dark)

The template has two different background colors, Light and Dark. The light one is the default option, if you want to use the Dark version, add the following class in the <html>:

    <html class="dark">

#### Fonts

To change the embedded font, please take a look in the head part of the website and you will find this tag:

    <link href="http://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800|Shadows+Into+Light" rel="stylesheet" type="text/css">

To change the font, first go to http://www.google.com/webfonts choose a font and use the generated code.

## Skin

You can generate your own skin color:

Copy that and save as a css skin file `css/skins/default.css`

## RTL

To activate the RTL mode please follow the steps:

1) Add the "dir" attribute in the HTML tag:
2) Add the Bootstrap RTL version after the default Bootstrap file in the HTML:
3) Move and Replace all the files from the folder: `HTML/master/rtl/css` to the default css folder `HTML/css`.

## Social Media - Icons

Here's the css classes of the available social media icons in the template:

- digg
- dribbble
- facebook
- flickr
- forrst
- googleplus
- html5
- icloud
- lastfm
- linkedin
- myspace
- paypal
- picasa
- pinterest
- reddit
- rss
- skype
- stumbleupon
- tumblr
- twitter
- vimeo
- wordpress
- yahoo
- youtube

## Icons

Font Awesome is a @font-face iconset that you can change size and color of the icons using CSS.
If you need more information, please visit this site: http://fontawesome.io/

    <i class="fa fa-edit"></i>
    <i class="fa fa-search"></i>
    ...

## Lightbox

The lightbox is driven by Magnific Popup script.

Here's an example of usage:

    <a class="img-thumbnail lightbox" title="Open Lightbox" href="img/projects/project-4.jpg" data-plugin-options='{"type":"image"}'>
    	<img class="img-responsive" src="img/projects/project-4.jpg">
    </a>

For more information check the documentation.

http://dimsemenov.com/plugins/magnific-popup/

## Video Background

The video background are driven by the Vide Plugin - https://github.com/VodkaBears/Vide
Here's an example of usage:

    <section class="video" data-video-path="video/dark" data-plugin-video-background data-plugin-options='{"posterType": "jpg", "position": "50% 50%"}'>

Prepare your video in several formats like '.webm', '.mp4' for cross browser compatability, also add a poster with `.jpg`, `.png` or `.gif` extension and set in the attribute data-video-path.

## Newsletter

If you want to use the newsletter you need to have a MailChimp account (the funcional Newsletter works only with MailChimp - http://mailchimp.com/). Once you have the MailChimp account you have to configure the subscription file with your APIKey, ListID and set the Datacenter. Open the file `/php/newsletter-subscribe.php` and change the variables:

    $apiKey = 'your-api-key';

-How get your Mailchimp API KEY - http://kb.mailchimp.com/article/where-can-i-find-my-api-key

    $listId = 'your-list-id';

- How to get your Mailchimp LIST ID - http://kb.mailchimp.com/article/how-can-i-find-my-list-id

## Twitter Feed

1) Open up the HTML files and put your twitter username.
2) Go to: https://apps.twitter.com/
3) Click on "Create new APP":
4) Enter the information about your website:
5) Click in the API Keys tab and in the button "Create my access token":
(Wait 1 minute and refresh the page)
6) Get the keys and put in the file: php/twitter-feed.php:

## Effects

You can add some Animations / Transitions to the elements which fires when an element scrolls into view, it's pretty simple to use and you can add it in any element.

Usage:

    <div data-appear-animation="bounceIn" data-appear-animation-delay="200">
    ...
    </div>

Heads up: The Attribute data-appear-animation-delay is Optional and is set in Miliseconds.

The animation can be set to:

- flash
- shake
- bounce
- tada
- swing
- wobble
- wiggle
- pulse
- fadeIn
- fadeInUp
- fadeInDown
- fadeInLeft
- fadeInRight
- fadeInUpBig
- fadeInDownBig
- fadeInLeftBig
- fadeInRightBig
- bounceIn
- bounceInUp
- bounceInDown
- bounceInLeft
- bounceInRight
- rotateIn
- rotateInUpLeft
- rotateInDownLeft
- rotateInUpRight
- rotateInDownRight

## Admin Extension

View Topic: How to integrate Porto Admin Extension on Porto

## Source & Credits

The images included in preview are for demonstration purposes and should always be replaced with your own work.

- Images:
  - Photodune: http://photodune.net/
  - Subtle Patterns: http://subtlepatterns.com/
- Fonts:
  - Google Fonts - http://www.google.com/webfonts
  - Icons Font-face - http://fontawesome.io/
- Scripts:
  - jQuery - http://www.jquery.com/
  - Bootstrap 3 - http://getbootstrap.com/
  - Revolution Slider - http://codecanyon.net/item/slider-revolution-responsive-jquery-plugin/2580848
  - Nivo Slider - http://dev7studios.com/nivo-slider/
  - Isotope Jquery plugin - http://isotope.metafizzy.co
  - Modernizr - http://modernizr.com/
  - jQuery gMap 2 - Google Maps API V3 - http://labs.mario.ec/jquery-gmap/
  - Owl Carousel - http://www.owlgraphic.com/owlcarousel2/
  - Respond.js - https://github.com/scottjehl/Respond
  - Twitter JS Api - http://code.google.com/p/twitterjs/
  - Jquery Flickr Plugin - http://www.newmediacampaigns.com/page/jquery-flickr-plugin
  - Jquery Easing - http://gsgd.co.uk/sandbox/jquery/easing/
  - Magnific Popup - http://dimsemenov.com/plugins/magnific-popup/
  - Jquery Validate - http://bassistance.de/jquery-plugins/jquery-plugin-validation/
  - Jquery Cookie - https://github.com/carhartl/jquery-cookie
  - Stellar.JS- http://markdalgleish.com/projects/stellar.js/
  - Jquery Appear - https://github.com/bas2k/jquery.appear/
  - Vide - https://github.com/VodkaBears/Vide

## Changelog

View Changelog