Hueman Theme

Getting started

Looks like you’ve found the documentation for the theme, we’re off to a good start! On the right side you can see the table of contents of this documentation.

Jump to the section you want, or read it all through – your choice.

Let’s move on!

Installation

Installing your theme is pretty easy! After downloading you should have a hueman.zip file. This is a compressed file containing all of the required templates and images required for the theme to function properly.

Upload the theme

  1. Go to Appearance > Themes in the WordPress menu
  2. Click on the Add New button
  3. Click on the Upload link
  4. Select the hueman.zip file
  5. Click Install Now

Activate the theme

  1. Go to Appearance > Themes in the WordPress menu
  2. Hover over the theme thumbnail and press the Activate button
Additional information: WordPress Codex – Using Themes

Adapting existing content

If you are changing theme from another one and have plenty of existing content, menus and widgets on the website already, you need to do the following after having activated the new theme:

  1. Go to Appearance > Menus and add the menu areas back to where you want them. The menus will be hidden until you add links to them. This way you can choose how many menu areas to show on the website.
  2. Go to Appearance > Widgets and add the widgets back to your sidebars, or use some of the new custom widgets.
  3. Install the Regenerate Thumbnails plugin and activate it. Then go to Tools > Regenerate Thumbnails and run it once. This will crop existing thumbnails to the new sizes used in this theme.
  4. If you have not used the Featured Image feature in your other theme, you can use the Easy Add Thumbnail plugin to automatically set featured images for old articles.

Importing demo content

Note: For server bandwidth reasons, I can not supply the demo site data for this theme, although I want to. However you can download the WordPress sample theme test data XML from here.

This step is optional and for new WordPress sites without any content. If you don’t want to import any extra pages and sample data to your site, you can skip to the next section. If you want a base similar to the demo site to work on and edit, then this is for you.

Important: If your site is not a fresh install with no content, but has existing content and pages on it already, it is important to remember that this file will add a lot of pages, posts, categories and tags (and media if you choose to import that) to your site, that you will have to edit or remove after importing.

Importing

  1. Go to Tools > Import in the WordPress menu
  2. Click on the WordPress link
  3. Install the plugin it asks for and activate, if you haven’t already installed it.
  4. Now you should see a select file button on the Tools > Import > WordPress page.
  5. Upload the .XML data file. Choose if you want to import media or not (images).
  6. Wait for the import process to finish. When it’s finished it will say so.
  7. Go to Appearance > Menus and add the menu areas to for example header.
  8. Go to Appearance > Widgets and add some widgets to your sidebars.

Your page should now look similar to the demo page. Refer to the Frontpage guide if you want to use a static page / non-blog home page.

Theme updates

If this is your first-time install or if you use the wordpress.org version of the theme, you can skip this step.

It is a good idea to keep your theme up to date with the latest version, as it often includes important bugfixes or new neat features. If a new version of the theme is available, do the following to update it:

  1. Download the latest version.
  2. Locate the hueman.zip file to upload.
  3. Go to Appearance > Themes in the WordPress menu
  4. Activate a default theme temporarily, such as Twenty Twelve (to be able to delete your current theme)
  5. Click on the theme you wish to update, and press the red delete link bottom right. Your admin panel options should remain saved.
  6. Upload the new hueman.zip, as you did on first-time install, and activate it.

You are now running the latest and best version of the theme!

Important: If you haven’t used a child theme for your theme customizations, you must do the following before each update:

  • Backup your custom.css file if you have used it, it will be overwritten and needs to be re-added after the update.
  • Backup your additional language files if you have created/modified any, they will be removed and need to be re-added after the update.
  • Backup any other custom code.

Theme options

Each option in the admin panel is pretty well described there and easy to use already, so we will just go through the sections in short so you can get an idea of the overall structure – and point out the important things.

General

This is where you will find general options for the whole theme. This typically includes favicon upload, custom RSS feed option, analytics tracking code field and so on.

  • Responsive Layout: If you choose to disable responsive.css, you may need to do further changes in style.css for the site to work completely as un-responsive, as there are some mediaqueries in this file as well – mainly for the menus.

Blog

Here you will find all options that relates to posts – mainly the blog homepage, the single post pages as well as archive pages.

  • Heading & Subheading: This text appears at the top of the posts homepage.
  • Featured Post Count: By adjusting this you turn the slider on / off.
  • Single – Share Buttons: Disable the in-built article sharing buttons if you wish to use a plugin instead.

    Note: If your Google+ button is not appearing, you need to make sure that your server has urlCurl enabled. Ask your webhost to enable cURL, and make sure that safe_mode is not on. Otherwise it will not work.

    If you wish to add more sharing icons, please refer to Sharrre documentation. The file to modify via a child theme would be /inc/sharrre.php.

  • Single – Author Bio: Note that this block will only appear if a description is set for the user writing the article.

Header

  • Custom Logo: The max-height of the logo can be adjusted from styling options. The the uploaded image should always have the double height of the max-height in order to be high resolution – often preferably in PNG format with transparent background.
  • Header Image: This options is for a full centered header image instead of logo.

Footer

  • Footer Widget Columns: This is where you enable footer widgets. Select the column count you wish to use, and then go to Appearance > Widgets and add your widgets to the Footer 1/2/3/4 boxes. Usually 3 columns are recommended in order for it to look best on all screen resolutions.

Layout

Here you can set a specific layout for each one of the standard WordPress page sections. If a specific page or post has another layout set, the single and page options set here will be overridden by that option. If you just want one sidebar layout for the entire website, you only need to modify the Global option.

To set a layout for a specific page or post, you need to go to that page or post and select which layout to use below the large text field.

Sidebars

This is where you can create unlimited sidebar widget areas for your theme! The sidebar title is seen at the top of the widget box in Appearance > Widgets. The sidebar ID is used in template files.

To add a sidebar you have created for a specific page or post, you need to go to that page or post, and select sidebar from the dropdown menu below the large text field.

Important: Make sure that each sidebar area that you create has a unique ID, for example “sidebar-24” or “sidebar-about”. Only use lowercase letters and no spaces for the IDs.

You must save options in order to be able to see the new widget area in the dropdowns below.

Social Links

Here you create and re-order your Social Links as you wish. These links will appear in the header and footer of your theme in most cases.

The icons can be given a specific color if you wish, or you can just leave that option blank and it will use the default setting.

The icon names can be found here – FontAwesome gives you the option to choose between 370 unique icons to use. Example of names to fill in the admin panel would be “fa-facebook”, “fa-twitter” and “fa-google-plus”.

Styling

The dynamic styles in this theme gives you the ability to change color of large parts of theme in seconds.

Important: Make sure to tick the checkbox “Enable to use” at the top of the styling options in order to turn this feature on. You may also need to empty all caches if you use a cache plugin. And finally you may also need to force-refresh the page while viewing it by pressing F5.

Advanced: The dynamic styles will be added directly to the head of your theme. This is according to WordPress best practices, but if you do not want it printed out there, simply inspect the code of your page with the styling options set. Copy the CSS from head into your child theme’s style.css file or this theme’s custom.css (which you need to enable), and disable dynamic styling.

Shortcodes

This theme comes bundled with a few simple shortcodes mainly for content structure. If you want to add additional shortcodes, there are many plugins out there to install.

Here is how to use them:

  • Divider Line
    [hr]
  • Highlight Text
    [highlight]My highlighted text[/highlight]
  • Dropcap (large first letter)
    [dropcap]A[/dropcap]nother dropcap here.

    Note: If you add the dropcap in the beginning of the article, it will disappear from the excerpt. To fix this, when editing the post, click Screen Options top right. Then enable Excerpt and you can write your own custom excerpt in the content box below the main text field.

  • Pullquote Left
    [pullquote-left]Pullquote text[/pullquote-left]
  • Pullquote Right
    [pullquote-right]Pullquote text[/pullquote-right]
  • Responsive Columns
    [column size="one-half"]...[/column]
    [column size="one-half" last="true"]...[/column]
    
    [column size="one-third"]...[/column]
    [column size="one-third"]...[/column]
    [column size="one-third" last="true"]...[/column]
    
    [column size="two-third"]...[/column]
    [column size="one-third" last="true"]...[/column]
    
    [column size="one-fourth"]...[/column]
    [column size="one-fourth"]...[/column]
    [column size="one-fourth"]...[/column]
    [column size="one-fourth" last="true"]...[/column]
    
    [column size="three-fourth"]...[/column]
    [column size="one-fourth" last="true"]...[/column]
    
    [column size="one-fifth"]...[/column]
    [column size="one-fifth"]...[/column]
    [column size="one-fifth"]...[/column]
    [column size="one-fifth"]...[/column]
    [column size="one-fifth" last="true"]...[/column]

Post Formats

This theme makes use of all of WordPress’ 10 post formats to give you plenty of ways to show content in the top section of your articles. You choose type by selecting format in the “Format” box on the right side when you edit or add a new post. Depending on which format you select, new options will appear below the large text field.

Here is how to use each one of the formats, and what each one does:

  • Standard – This is the default option. It will not automatically include a featured image at the top of the post, like the image format does. It’s simply a standard post that shows article text.
  • Audio – Shows an audio player at the top of your post, as well as the featured image. Two audio URL fields will appear once selected. Both audio formats are required for cross-browser compatibility.
  • Aside – Hides the entry title of the article
  • Chat – Shows a chat conversation box at the top of the article. A textarea field to paste the chat conversation in will appear once selected.
  • Gallery – Shows all images attached to the post as a slider at the top of the article. More details how to use will appear below once selected.

    Note: If you want to show an image in the article below the slider, but still not include it in the slider, you need to go to Media > Add New and upload it there. Then go back to the post and insert it. Make sure it’s not attached to the post.

  • Image – Same as Standard format except that it auto-includes the featured image at the top of the article.
  • Link – Shows a big link at the top of the article. Link title and link URL fields will appear once selected.
  • Quote – Shows a big quote box at the top of the article. Fields for the quote text and quote author will appear once selected.
  • Status – Hides the entry title and transforms the entry text into a large status-type style.
  • Video – Shows an embed video at the top of the article. Fields for link embed or code embed will appear once selected.

    You can show self-hosted videos in this field, although it’s not intentionally supported, by using HTML5-video tags in the Embed Code field.

    HTML5 video sample code:

    <video width="320" height="240" controls="controls">
    <source src="http://www.html5rocks.com/en/tutorials/video/basics/Chrome_ImF.webm" type='video/webm; codecs="vp8, vorbis"' />
    <source src="http://www.html5rocks.com/en/tutorials/video/basics/Chrome_ImF.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' />
    <source src="http://www.html5rocks.com/en/tutorials/video/basics/Chrome_ImF.ogv" type='video/ogg; codecs="theora, vorbis"' />
    Your browser does not support the video tag.
    </video>

Theme Customization

This section is very important to read if you plan to edit any files within the theme – whether it is adding custom functions, custom styles, new language files or modifying other function-related files. Spending some extra minutes to read this and do it right from the very beginning can save a lot of time and headaches later on.

Most of the information below can be found and read more about elsewhere on the web a well if you wish to go more in-depth, as it’s common practices. I’ve summarized the core parts of it, which you are likely to use the most.

Let us begin!

Using a Child Theme

If you intend to edit the code of the theme, translate it or place any custom files in the theme folder it is highly recommended to use a child theme. Otherwise all of your modifications will disappear once you update the theme – unless you backup and re-add the files afterwards.

I would only recommend using the custom.css option instead if you are doing minor CSS modifications that can be easily backed up.

  • Download the sample child theme – specifically made for this theme to get you started! Upload the .zip via admin just as with any other theme, rename the folder to anything you wish.
  • Learn more how to use child themes here.

This theme has been built with child themes in mind, and therefore all theme functions are pluggable – which means you can overwrite them by copying a function from the parent theme and pasting it into the child theme’s functions.php, modify it as you wish – and it will use your modified function instead the original one.

Load certain functionality from the child theme instead

This only applies for files loaded from the parent theme’s functions.php. Let’s say we wish to load the responsive.css file from our child theme’s directory instead. We then need to copy the alx_styles() function to functions.php of the child theme (not including add_action, add_filter or !function_exists – just the function).

Now we have this function in our child theme – but it makes absolutely no difference, and still loads all files from the parent theme.

function alx_styles() {
	wp_enqueue_style( 'style', get_stylesheet_uri() );
	if ( !ot_get_option('responsive') ) { wp_enqueue_style( 'responsive', get_template_directory_uri().'/responsive.css' ); }
	if ( ot_get_option('custom') ) { wp_enqueue_style( 'custom', get_template_directory_uri().'/custom.css' ); }
	wp_enqueue_style( 'font-awesome', get_template_directory_uri().'/fonts/font-awesome.min.css' );
}

To load from the child theme instead, change get_template_directory_uri to get_stylesheet_directory_uri for the responsive.css file. The rest of the files will still load from the parent theme, as they use get_template_directory_uri. Like this:

function alx_styles() {
	wp_enqueue_style( 'style', get_stylesheet_uri() );
	if ( !ot_get_option('responsive') ) { wp_enqueue_style( 'responsive', get_stylesheet_directory_uri().'/responsive.css' ); }
	if ( ot_get_option('custom') ) { wp_enqueue_style( 'custom', get_template_directory_uri().'/custom.css' ); }
	wp_enqueue_style( 'font-awesome', get_template_directory_uri().'/fonts/font-awesome.min.css' );
}

The same method would be used to change language files folder. You would then copy over the whole alx_load() function, but only modify this one line in it:

// Load theme languages
load_theme_textdomain( 'themename', get_template_directory().'/languages' );

To this:

// Load theme languages
load_theme_textdomain( 'themename', get_stylesheet_directory().'/languages' );

Now the language files will be loaded from the /language/ folder of your child theme instead. Simple, isn’t it? This way your changes will always stay safe in your child theme folder, no matter how many updates you do to the parent theme. To summarize:

  • get_template_directory – file loads from parent theme
  • get_template_directory_uri – file loads from parent theme
  • get_stylesheet_directory – file loads from child theme
  • get_stylesheet_directory_uri – file loads from child theme

Important: Always copy over the entire function to your child theme, and only modify the part that you wish to change – leave the rest of the function as it is.

If you were to only include the lines you are changing in the function, and leave the rest of the functionality out, those parts would disappear and stop working.

Disabling functions

You can also completely disable functionality with the child theme replacement method. Let’s say you don’t want the plugin installation notice in your admin panel, or the “Install Plugins” item in your menu. All you would need to add is this to your child theme’s functions.php:

function alx_plugins() { }

Simply emptying the function, disabling it completely.

Replacing page templates

Finally, we wish to modify the page.php template with some custom code. All we need to do then is just copy over page.php from the parent theme to the child theme, and now this file will be used instead – and you are free to modify it without having to fear losing it when updating the theme.

Theme File Structure

Here is a quick summary of how the files in this theme are structured. It will hopefully make things easier to find!

Folders

  • /fonts/ – Includes any self-hosted font files and Font Awesome css (icons)
  • /functions/ – This folder contains everything that is admin-panel related
  • /functions/img/ – Admin panel images
  • /functions/js/ – Admin panel javascript
  • /functions/plugins/ – Plugins that are not available on wordpress.org but bundled with the theme for easy installation
  • /functions/widgets/ – The custom widgets included with the theme
  • /img/ – Theme images
  • /img/ie/ – Images used for Internet Explorer compatibility
  • /inc/ – Includes all template-parts (partials) that are non-standard to WordPress, but often are used in several files
  • /js/ – Theme javascript. All custom theme scripts are in scripts.js
  • /js/ie/ – Javascript used for Internet Explorer compatibility
  • /languages/ – Contains a language file that you can use to translate or change texts in the theme
  • /option-tree/ – This folder is the OptionTree framework plugin running in fully-integrated theme mode. It ties in with /functions/meta-boxes.php and /functions/theme-options.php and the ot_get_option() function used in template files. Relates to the admin panel, to create theme options. It’s best to leave this folder alone.
  • /page-templates/ – Contains all page templates for the theme, such as Child Menu

Files

  • custom.css – Used for your custom styles
  • responsive.css – Contains almost all the CSS that creates the responsive layout
  • changelog.txt – Information about changes made in all updates
  • license.txt – The main theme license
  • readme.txt – Contains all additional license information

The rest of the files have a standard WordPress structure.

CSS Styling

Theme related

If you are not using Theme Options > Styling combined with your own custom css, you can skip this part.

If you have issues with your CSS styling changes not showing up or working correctly, remember that this is the order in which the styles are loaded in the theme:

  1. style.css
  2. responsive.css
  3. custom.css
  4. Dynamic CSS output

The dynamic CSS is added at the end of head tag. This means that the dynamic styles will override your custom.css / child theme styles – unless you specify the class/id more or use the !important CSS value.

How to fix CSS override issues

  1. Set your dynamic styles in theme options.
  2. Visit the website, inspect the code, copy the dynamic styles from head of the theme into your child theme’s style.css. Disable dynamic styles.
  3. You now have no more overriding issues.

If you think that responsive.css still overrides styles, use @import to import it at the top of style.css of the child theme and disable it in theme options so it doesn’t load twice.

If you styling changes still do not appear:

  • If you run any cache plugin, make sure to empty all caches.
  • When viewing the webpage, press F5 to force-refresh it.

CSS basics

This is for people who are pretty new to CSS and have never used or heard the word Firebug. It is not theme-related but deals with CSS+Firebug usage, which is essential for easy modification of any styles.

Change styling

You look at your page and say to yourself, “I would like to restyle that element right there on the my page”. But how do you know what the CSS class or id you need to specify in your custom.css? Without tools this would be hard – thankfully both Firefox and Chrome makes it easier.

Enter Firebug

This addon that exist both for Firefox and for Chrome (as a lite version) will save you a lot of time. I use it my development all the time – it’s incredibly useful.

Installed it? Good. Now, go to your website and right click on any element you want. For example, let’s say you want to recolor the dropcap shortcode text color, that you’ve just inserted on your page. To find out what class or ID this element uses, right click on it and select “Inspect Element with Firebug“. This will open up a window at the bottom. To the left side you should see the HTML. On the right, the CSS.

Try hovering over the HTML-section for the button. You will see that the button will be highlighted so that you can easily see what element you are viewing. The HTML would look something like this: <span class="dropcap">L</span>

The CSS should appear on the right side in the Firebug window (If it doesn’t, click on the <span> part of the code, and it will appear). You should see something like this:

.dropcap
{
color: #444444;
display: block;
float: left;
- etc -
}

And there we go! You’ve found the CSS class you are looking for, and all the CSS styling that is currently used for this element.

There are many good Firebug introduction videos out there on YouTube. Here is one short and simple one I found useful: View Video

As shown here, Firebug also allows you to preview styling changes directly in your browser window. It’s great when you want to see how something looks before adding it. It can also be used to test to remove HTML or CSS values, and many other things.

Adding CSS to custom.css

  1. Go to your WordPress dashboard and then Theme Options > General. Tick the checkbox to enable custom.css (this will load the css file in the theme).
  2. Go to Appearance > Editor. Click on custom.css on the right side in the list.
  3. The code in this file will now appear (most likely empty). Just add your css here and save, and you’re done.

Thanks to Firebug, we now know that our dropcap element is called .dropcap. We want to change the text color to red, so all we need to do is to add this to our custom.css file:

.dropcap { color: red; }

Save it, and your dropcap text should now be red!

This method can be used to restyle any element on your website. It is also useful to use for troubleshooting, to see what CSS styling you may have added that breaks the page and so on.

Happy editing!

Embedding

Video

Use the collowing code to embed the video so it adjusts automatically to the screen size

                                           <div class="video-container">
					    Your iframe video embedding code
					   </div>
                                        

Change Thumbnail Size

To modify the custom thumbnail sizes for your theme, you need to copy over the whole function alx_setup() {} to your child theme, using the methods explained above.

Within this function you will find the thumbnail sizes under where it says:

// Thumbnail sizes

Modify the height and width values as you want, using add_image_size codex as guideline to how it works. After that you’ve changed size and saved, you need to run the regenerate thumbnails plugin once before you will see any difference.

Important: If you have trouble with the way thumbnails are upscaling to fit the desired width or height before being cropped, you need to disable the alx_thumbnail_upscale function. You do so by adding function alx_thumbnail_upscale() {} to your child theme’s functions.php, disabling the function completely.

Additional Information

Extra information that you may find useful.

Font Awesome (icon) issues?

If you have trouble with Font Awesome showing strange characters instead of icons, you are most likely using a CDN or external host in some way for the font files. Certain browsers may have issues with that, as they follow certain web standards. (Also make sure that your font files were uploaded correctly, and empty caches)

This can be fixed with for example this sample .htaccess file from MaxCDN. If you wish to read more about this, it relates to CORS headers.

Wrong Facebook and Google+ thumbnails?

If your shared posts show wrong thumbnails on social networks, see the Facebook Thumb Fixer plugin below.

Useful plugins

Many common problems or missing features can usually be solved with plugins. Here is a list of some great ones.

Recommended theme editing software

  • Firefox – The web browser of choice for me, although there are many good ones
  • Firebug – Inspect code directly in the web browser. Lite version for Chrome here. Search on YouTube for video tutorials and you will quickly learn how to use it.
  • PoEdit – Translate your theme. Read how to translate here.
  • Notepad++ – A great text editor to modify theme code
  • FileZilla – Modify or upload theme files via FTP

Link Resources

Learn more and ask about WordPress’ standard features. WordPress is in itself an extremely well-documented open platform. It is recommended to search for answers via Google / DuckDuckGo first if you have questions – it almost always give useful information or at least point you in the right direction.

Troubleshooting 101

Do you have a problem with your theme? This quick troubleshooting guide should be the first thing to check through – it will help you find the root cause of the issue.

A WordPress website issue can come from mainly one of 4 areas:

  • Conflicting plugins
  • Broken WordPress install
  • Incorrect server setup
  • The theme itself

Lets find out where your issue is coming from!

Step 1: Check your plugins

The first thing to do is to see if you have any plugins installed. Do you? If so, go to your admin panel and disable all of them. Now, go back to your site and see if the issue remains. If the problem is gone, then re-activate your plugins one-by-one and check the site between each activation. This way you will directly find the plugin(s) that cause problems.

If your issue remains even with all plugins disabled, go on to the next step.

Step 2: Check your customizations

Have you customized your theme in any way before you noticed the issue? If so, go to the theme demo website of the theme and see if you find the same issue there. If you can not see the issue there, you need to take a look at your customized code and find what may be wrong.

Step 3: Is the issue admin panel related?

If you have problems with media uploads, errors in the WordPress dashboard or other access issues, the likely cause is either an incorrectly setup server or a broken WordPress install.

To see if your problem is related to a broken WordPress install or an incorrect server setup, simply activate a WordPress default theme such as Twenty Twelve. Does the issue remain? Then your issue is not theme related. If the issue goes away with a default theme active, then it’s most likely theme related.

  • Do you think your issue is WordPress related? Re-installing WordPress may be a good idea, or asking for help on the wordpress.org forums.
  • Do you think your issue is server related? Try some Google-searching for the issue, or contact your server provider about it.
  • Do you think the issue is coming from the theme? Make sure to read this documentation through. If the issue remains and you are certain it’s coming from the theme, feel free to report the bug on the wordpress.org support forums for hueman.

Note: Remember cache!

If you apply/repair code to fix issues but see no changes on your website when you save it, check if your website has any cache plugin activated. If so, make sure to empty all caches. Also force-refresh the page when viewing it by pressing F5.

FAQ

Q: Why are social sharing buttons missing Google Plus? — A: You need to enable urlCurl with safe_mode off on your server for G+ to work. Ask your webhost to do so. If you are unable to, you can disable the buttons and use any other plugin instead.

Q: My old thumbnails have different sizes, why? — A: Thumbnails uploaded before changing theme will not be automatically re-cropped. To fix this, you need to run the Regenerate Thumbnails plugin once.

Q: I did not use featured images before and have many posts, what do I do? — A: Use the Easy Add Thumbnail plugin to automatically make the first image uploaded to each post a featured image.

Q: Why is my featured image not appearing on the single post page? — A: You need to use the “Image” format option for it to show up, as not everyone wants to show the featured image at the top for the “Standard” post format.

Q: My gallery format post shows images twice, why? — A: This is because you insert a standard gallery into the post itself. This is not needed, as the gallery format post will auto-display attached images in the slider above.

Q: My slider gallery includes images I only want to show in the content below — A: The gallery format will always show all attached images. For it to not show up, go to Media > Add New and upload it there. Then go back to the post and add it.

Q: How do I make the homepage slider auto-progress? — A: In /inc/featured.php change slideshow: false to true with a child theme.

Thank you for reading!

Written by Alexander Agnarson. Re-use or edit this documentation as you wish (WTFPL).

Do you like this post? Please rate, its just a click :) 1 Star2 Stars3 Stars4 Stars5 Stars (4 votes, average: 3.50 out of 5)
Loading...