Synopsis

Bootstrap Mint is a mobile-first Drupal 8 theme, built on the powerful Bootstrap 3.x Framework.
screenshot - Bootstrap Mint theme
THEME FEATURES
-----------------
* Mobile-first clean & modern design
* HTML5 & CSS3
* Powerful grid system - Bootstrap 3.x
* Retina-ready icons - Font Awesome 4.x
* Google Font - Exo 2
* Responsive multi-level navigation menu
* Bootstrap carousel for slideshow
* Four columns layout
* Intelligent dynamic columns
* Customizable theme setting
and more..

THEME REGIONS
----------------
Bootstrap Mint encapsulates these 25 regions:

Sliding Header Left
Sliding Header Right
Header
Primary Menu
Slideshow
Search
Promotion Banner
Highlighted
Help
Top Widget - Left
Top Widget - Middle
Top Widget - Right
Content Top
Breadcrumbs
Page Title
Content
Left Sidebar
Right Sidebar
Content Bottom
Footer Top Widget - One
Footer Top Widget - Two
Footer Top Widget - Three
Footer Top Widget - Four
Footer
Footer Menu

INSTALLATION
--------------
1. Drupal 8 site (preferrably using Standard installation profile).
2. Place "bootstrap_mint" folder to the root /themes directory.
3. Login to the site and click on "Appearance" in the top administration menu.
4. Click on "Install and set as default" next to Bootstrap Mint theme.

Requirements

Bootstrap Mint theme does not require anything beyond Drupal 8 core to work.

Credits

Current maintainer:
* Binu Varghese - https://www.drupal.org/user/1111950

LIVE DEMO

Project page

git clone --branch 8.x-1.x https://git.drupal.org/sandbox/Binu_Varghese/2752631.git bootstrap_mint
cd bootstrap_mint 

Manual reviews of other projects:

https://www.drupal.org/node/2750383#comment-11341277
https://www.drupal.org/node/2662738#comment-11340813
https://www.drupal.org/node/2648590#comment-11341333
https://www.drupal.org/node/2669792#comment-11340725
https://www.drupal.org/node/2667458#comment-11340635
https://www.drupal.org/node/2662738#comment-11344347

Files: 
CommentFileSizeAuthor
screenshot-bootstrapMint.png440.62 KBBinu Varghese

Comments

Binu Varghese created an issue. See original summary.

Binu Varghese’s picture

Issue summary: View changes
Binu Varghese’s picture

Issue summary: View changes
PA robot’s picture

We are currently quite busy with all the project applications and we prefer projects with a review bonus. Please help reviewing and put yourself on the high priority list, then we will take a look at your project right away :-)

Also, you should get your friends, colleagues or other community members involved to review this application. Let them go through the review checklist and post a comment that sets this issue to "needs work" (they found some problems with the project) or "reviewed & tested by the community" (they found no major flaws).

I'm a robot and this is an automated message from Project Applications Scraper.

manojapare’s picture

Status: Needs review » Needs work

@binu-varghese:

Please resolve the issue listed below:

  1. Followed the installation steps in README.txt. But I am getting error message
    Only local images are allowed.
Binu Varghese’s picture

Issue summary: View changes
Binu Varghese’s picture

Status: Needs work » Needs review

@manojapare, thanks for the review. have made the necessary changes. that should fix it!

manojapare’s picture

Hi @binu-varghese,

Manual Review

Individual user account

Yes: Follows the guidelines for individual user accounts.

No duplication

Yes: Does not cause module duplication and/or fragmentation.

Master Branch

Yes: Follows the guidelines for master branch.

Licensing

Yes: Follows the licensing requirements.

3rd party assets/code

Yes: Follows the guidelines for 3rd party assets/code.

README.txt/README.md

Yes: Follows the guidelines for in-project documentation and/or the README Template.

Code long/complex enough for review

Yes: Follows the guidelines for project length and complexity.

Secure code

Yes: Meets the security requirements.

Coding style & Drupal API usage

1. Composer.json file in theme directory is not needed. Please check it. Anyway this is not a blocker.

Binu Varghese’s picture

@manojapare, thanks for your time and manual review.. yes, I was of the same opinion regarding Composer.json file.. recently @ericpugh via https://www.drupal.org/node/2669792#comment-11130775 had recommended that.. so..

PA robot’s picture

Status: Needs review » Needs work

Git clone failed for https://git.drupal.org/sandbox/Binu_Varghese/2752631.git while invoking http://pareview.sh/pareview/httpsgitdrupalorgsandboxBinu_Varghese2752631git

Git clone failed. Aborting.

I'm a robot and this is an automated message from Project Applications Scraper.

Binu Varghese’s picture

Status: Needs work » Needs review

false positives here..

check: http://pareview.sh/pareview/httpgitdrupalorgsandboxbinuvarghese2752631git instead!

Moving back to needs review.

userium’s picture

Reviewed this, and didn't find anything major. There is a small spelling error in ./README.txt:102: preferrably => preferably, which pareview.sh also finds.

Great looking theme!

Martijn de Wit’s picture

Hello @binu-varghese,

Manual Review
Made a git clone of your sandbox.

Secure code
No:

  1. (*) The theme settings, 5 social media links are input fields that are directly used in the page template without using any Twig filter or utility function. So these fields can be abused to enter scripted code.

Coding style & Drupal API usage

  1. There is no Base theme key in your bootstrap_mint.info.yml. It is not required, but if you don't deliver all possible twig templates in your theme, you're theme can break functionality when Drupal can't find the proper twig template(s). If you use Classy as a base theme your theme will always have a fall back for twig templates. If you don't want to use the css of classy you can disable it with a libraries-override. See Defining a theme with an .info.yml file

There are not a lot of possibilities to make an advanced subtheme for this theme but for small sites that would not be the case.
For the rest, it's a nice looking theme.

Binu Varghese’s picture

Thanks @Martijn de Wit for the review!

1. Have now added the 'base theme' key to the info.yml file.

2. As for the 5 social media links, these gets outputted from the page.html.twig file via {{ }} so sanitized automatically.

"The Twig theme engine now auto escapes everything by default. That means that every string printed from a Twig template (e.g. anything between {{ }}) gets automatically sanitized if no filters are used."

- https://www.drupal.org/docs/8/security/writing-secure-code-for-drupal-8

If you have any specific filter to suggest, I shall be happy to incorporate it.

Binu Varghese’s picture

Also, this project been lying here for more than 3 months from last review in-spite of PAReview: review bonus for no apparent reason.

How do we proceed from here? Thanks in advance!

Martijn de Wit’s picture

Hello @binu-varghese,

Thank you, I didn't know everything between the {{ }} is now sanitized.

Binu Varghese’s picture

Hi @Martijn de Wit, that's all right!

RTBC anyone :)

Binu Varghese’s picture

Assigned: Unassigned » Binu Varghese
Binu Varghese’s picture

Assigned: Binu Varghese » Unassigned
klausi’s picture

Status: Needs review » Fixed

manual review:

  • bootstrap_mint_preprocess_page(): the (bool) casts don't make sense here. >You are adding up numbers, so you should cast to numbers instead, right? Did you mean to cast to (int)?

Otherwise looks good to me.

Thanks for your contribution, Binu!

I updated your account so you can promote this to a full project and also create new projects as either a sandbox or a "full" project.

Here are some recommended readings to help with excellent maintainership:

You can find lots more contributors chatting on IRC in #drupal-contribute. So, come hang out and stay involved!

Thanks, also, for your patience with the review process. Anyone is welcome to participate in the review process. Please consider reviewing other projects that are pending review. I encourage you to learn more about that process and join the group of reviewers.

Thanks to the dedicated reviewer(s) as well.

Binu Varghese’s picture

Thanks @klausi for granting the "full" project status.

The (bool) casts used here is on purpose. This is basically to cast to either '0' or '1' (in the event of a region being used or not).

e.g. If we use only 2 of the 4 regions, say 'footer_top_one' and 'footer_top_two' then:

$blocks_n_footer_top = (bool) $variables['page']['footer_top_one'] + (bool) $variables['page']['footer_top_two'] + (bool) $variables['page']['footer_top_three'] + (bool) $variables['page']['footer_top_four']

= 1 + 1 + 0 + 0
= 2

I would also like to thank @manojapare, @userium and @Martijn de Wit for their time in reviewing my project.
Thanks all!

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.