mirror of
https://github.com/ToxicCrack/PrintABrick.git
synced 2025-05-17 04:40:08 -07:00
Add homepage
This commit is contained in:
parent
1f77e126ca
commit
8ad9c14765
24
app/Resources/assets/style/homepage.scss
Normal file
24
app/Resources/assets/style/homepage.scss
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
.hidden.menu {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.masthead.segment {
|
||||||
|
min-height: 500px;
|
||||||
|
padding: 1em 0em;
|
||||||
|
}
|
||||||
|
.masthead .logo.item img {
|
||||||
|
margin-right: 1em;
|
||||||
|
}
|
||||||
|
.masthead .ui.menu .ui.button {
|
||||||
|
margin-left: 0.5em;
|
||||||
|
}
|
||||||
|
.masthead h1.ui.header {
|
||||||
|
margin-top: 1.5em;
|
||||||
|
margin-bottom: 0em;
|
||||||
|
font-size: 4em;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
.masthead h2 {
|
||||||
|
font-size: 1.7em;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
@ -6,7 +6,7 @@
|
|||||||
min-height: calc(100% - 67px);
|
min-height: calc(100% - 67px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.ui.masthead {
|
.ui.head {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
.header {
|
.header {
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
@import "mixins";
|
@import "mixins";
|
||||||
|
|
||||||
@import "main";
|
@import "main";
|
||||||
|
@import "homepage";
|
||||||
@import "modelviewer";
|
@import "modelviewer";
|
||||||
|
|
||||||
@import "part";
|
@import "part";
|
||||||
|
@ -381,4 +381,6 @@ u9209c01: u9209
|
|||||||
2772c02: 2772c01
|
2772c02: 2772c01
|
||||||
2772c03: 2772c01
|
2772c03: 2772c01
|
||||||
|
|
||||||
81294: 3351a
|
81294: 3351a
|
||||||
|
|
||||||
|
61738: 54086
|
@ -68,4 +68,14 @@ page:
|
|||||||
filter:
|
filter:
|
||||||
model:
|
model:
|
||||||
search: Search Model
|
search: Search Model
|
||||||
category: Category
|
category: Category
|
||||||
|
|
||||||
|
homepage:
|
||||||
|
models:
|
||||||
|
title: %count% models
|
||||||
|
text:
|
||||||
|
browse: Browse models
|
||||||
|
sets:
|
||||||
|
title: %count% sets
|
||||||
|
text:
|
||||||
|
browse: Browse sets
|
@ -21,7 +21,7 @@
|
|||||||
{% block page %}
|
{% block page %}
|
||||||
<div class="ui main">
|
<div class="ui main">
|
||||||
<div class="ui container">
|
<div class="ui container">
|
||||||
<div class="ui masthead vertical segment">
|
<div class="ui head vertical segment">
|
||||||
<h1 class="ui header">{% block header %}{% endblock %}</h1>
|
<h1 class="ui header">{% block header %}{% endblock %}</h1>
|
||||||
|
|
||||||
<div class="ui small breadcrumb">
|
<div class="ui small breadcrumb">
|
||||||
|
@ -1,16 +1,51 @@
|
|||||||
{% extends 'base.html.twig' %}
|
{% extends 'base.html.twig' %}
|
||||||
|
|
||||||
{% block page %}
|
{% block body %}
|
||||||
<div class="ui main">
|
<!-- Page Contents -->
|
||||||
<div class="ui grid massive message vertical">
|
<div class="pusher">
|
||||||
|
<div class="ui inverted vertical masthead center aligned segment">
|
||||||
|
|
||||||
<div class="ui container">
|
<div class="ui container">
|
||||||
<div class="row">
|
<div class="ui large secondary inverted pointing menu">
|
||||||
<div class="h1 ui huge header">
|
{{ knp_menu_render('mainMenu') }}
|
||||||
Hello, world!
|
|
||||||
|
<div class="right menu">
|
||||||
|
<div class="ui search item category right aligned">
|
||||||
|
<div class="ui icon input transparent inverted">
|
||||||
|
<input class="prompt" type="text" placeholder="Search..." >
|
||||||
|
<i class="search icon"></i>
|
||||||
|
</div>
|
||||||
|
<div class="results transition"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="ui text container">
|
||||||
|
<h1 class="ui inverted header">
|
||||||
|
PrintABrick
|
||||||
|
</h1>
|
||||||
|
<h2>{{ 'page.home.title.text' | trans }}</h2>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="ui vertical stripe quote segment">
|
||||||
|
<div class="ui equal width stackable internally celled grid">
|
||||||
|
<div class="center aligned row">
|
||||||
|
<div class="column">
|
||||||
|
<h3>{{ 'homepage.models.title' | trans({'%count%' : models})}}</h3>
|
||||||
|
<p>{{ 'homepage.models.text' | trans }}</p>
|
||||||
|
<a class="ui button big primary" href="{{ path('model_index') }}">{{ 'homepage.models.browse' | trans }}</a>
|
||||||
|
</div>
|
||||||
|
<div class="column">
|
||||||
|
<h3>{{ 'homepage.sets.title' | trans({'%count%' : sets}) }}</h3>
|
||||||
|
<p>{{ 'homepage.sets.text' | trans }}</p>
|
||||||
|
<a class="ui button big primary" href="{{ path('set_index') }}">{{ 'homepage.sets.browse' | trans }}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
@ -63,13 +63,13 @@
|
|||||||
{% import _self as blocks %}
|
{% import _self as blocks %}
|
||||||
{{ blocks.setImage(set.id,'set_min') }}
|
{{ blocks.setImage(set.id,'set_min') }}
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<h3 class="header truncate">
|
<h3 title="{{ set.name }}" class="header truncate">
|
||||||
{{ set.name }}
|
{{ set.name }}
|
||||||
</h3>
|
</h3>
|
||||||
<div class="meta">
|
<div class="meta">
|
||||||
<span class="left floated">{{ set.id }}</span>
|
<span class="left floated">{{ set.id }}</span>
|
||||||
<br>
|
<br>
|
||||||
<span class="left floated truncate"><small>{{ set.theme.fullName }}</small></span>
|
<span title="{{ set.theme.fullName }}" class="left floated truncate"><small>{{ set.theme.fullName }}</small></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="description">
|
<div class="description">
|
||||||
<small>
|
<small>
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
namespace AppBundle\Controller;
|
namespace AppBundle\Controller;
|
||||||
|
|
||||||
|
use AppBundle\Repository\LDraw\ModelRepository;
|
||||||
|
use AppBundle\Repository\Rebrickable\SetRepository;
|
||||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
@ -13,7 +15,14 @@ class DefaultController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function indexAction(Request $request)
|
public function indexAction(Request $request)
|
||||||
{
|
{
|
||||||
|
/** @var ModelRepository $modelRepository */
|
||||||
|
$modelRepository = $this->get('repository.ldraw.model');
|
||||||
|
|
||||||
|
/** @var SetRepository $setRepository */
|
||||||
|
$setRepository = $this->get('repository.rebrickable.set');
|
||||||
return $this->render('default/index.html.twig', [
|
return $this->render('default/index.html.twig', [
|
||||||
|
'models' => $modelRepository->count(),
|
||||||
|
'sets' => $setRepository->count(),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,7 @@ class Builder
|
|||||||
'route' => 'homepage',
|
'route' => 'homepage',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$menu->addChild('homepage', [
|
$menu->addChild('Home', [
|
||||||
'route' => 'homepage',
|
'route' => 'homepage',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
@ -106,6 +106,13 @@ class ModelRepository extends BaseRepository
|
|||||||
return $queryBuilder->getQuery()->getResult();
|
return $queryBuilder->getQuery()->getResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function count() {
|
||||||
|
$queryBuilder = $this->createQueryBuilder('model');
|
||||||
|
$queryBuilder->select('count(model)');
|
||||||
|
|
||||||
|
return $queryBuilder->getQuery()->getSingleScalarResult();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create new Model entity with $number or retrieve one.
|
* Create new Model entity with $number or retrieve one.
|
||||||
*
|
*
|
||||||
|
@ -73,6 +73,13 @@ class SetRepository extends BaseRepository
|
|||||||
return $queryBuilder->getQuery()->getSingleScalarResult();
|
return $queryBuilder->getQuery()->getSingleScalarResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function count() {
|
||||||
|
$queryBuilder = $this->createQueryBuilder('s');
|
||||||
|
$queryBuilder->select('count(s)');
|
||||||
|
|
||||||
|
return $queryBuilder->getQuery()->getSingleScalarResult();
|
||||||
|
}
|
||||||
|
|
||||||
public function getMaxYear()
|
public function getMaxYear()
|
||||||
{
|
{
|
||||||
$queryBuilder = $this->createQueryBuilder('s')
|
$queryBuilder = $this->createQueryBuilder('s')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user