This commit is contained in:
2020-02-27 19:09:54 -03:00
parent 17b62d528e
commit 467fab3716
35 changed files with 478 additions and 0 deletions

3
.gitignore vendored
View File

@ -1,3 +1,6 @@
# Composer # Composer
/vendor/ /vendor/
composer.lock composer.lock
# Blade
/resources/cache/

45
bootstrap/app.php Normal file
View File

@ -0,0 +1,45 @@
<?php
use DI\Bridge\Slim\Bridge;
include_once 'composer.php';
$container_builder = new DI\ContainerBuilder();
$folders = [
'common'
];
if (isset($_ENV)) {
$folders []= $_ENV;
}
$file = 'config.php';
foreach ($folders as $folder) {
$filename = implode(DIRECTORY_SEPARATOR, [__DIR__, $folder, $file]);
if (file_exists($filename)) {
$container_builder->addDefinitions($filename);
}
}
$file = 'setup.php';
foreach ($folders as $folder) {
$filename = implode(DIRECTORY_SEPARATOR, [__DIR__, $folder, $file]);
if (file_exists($filename)) {
$container_builder->addDefinitions($filename);
}
}
$container = $container_builder->build();
$app = Bridge::create($container);
$app->setBasePath($container->get('urls.base'));
$app->addRoutingMiddleware();
$app->addErrorMiddleware(true, true, true);
$file = 'middleware.php';
foreach ($folders as $folder) {
$filename = implode(DIRECTORY_SEPARATOR, [__DIR__, $folder, $file]);
if (file_exists($filename)) {
include_once $filename;
}
}
include_once implode(DIRECTORY_SEPARATOR, [$app->getContainer()->get('folders.routes'), 'router.php']);

View File

@ -0,0 +1,13 @@
<?php
return [
'folders.base' => dirname(__DIR__, 2),
'folders.resources' => DI\string(implode(DIRECTORY_SEPARATOR, [
'{folders.base}',
'resources'
])),
'folders.routes' => DI\string(implode(DIRECTORY_SEPARATOR, [
'{folders.resources}',
'routes'
])),
'urls.base' => '/provm/raby'
];

6
bootstrap/composer.php Normal file
View File

@ -0,0 +1,6 @@
<?php
require_once implode(DIRECTORY_SEPARATOR, [
dirname(__DIR__),
'vendor',
'autoload.php'
]);

3
bootstrap/web.php Normal file
View File

@ -0,0 +1,3 @@
<?php
$_ENV = 'web';
include_once 'app.php';

35
bootstrap/web/config.php Normal file
View File

@ -0,0 +1,35 @@
<?php
return [
'folders.templates' => DI\string(implode(DIRECTORY_SEPARATOR, [
'{folders.resources}',
'views'
])),
'folders.cache' => DI\string(implode(DIRECTORY_SEPARATOR, [
'{folders.resources}',
'cache'
])),
'blade_template_path' => DI\get('folders.templates'),
'blade_cache_path' => DI\get('folders.cache'),
'urls.assets' => DI\string(implode('/', [
'{urls.base}',
'assets'
])),
'urls.images' => DI\string(implode('/', [
'{urls.assets}',
'images'
])),
'assets' => (object) [
(object) [
'script' => 'https://code.jquery.com/jquery-3.4.1.min.js'
],
(object) [
'script' => 'https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.8.4/semantic.min.js',
'style' => 'https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.8.4/semantic.min.css',
'fonts' => [
'https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.8.4/themes/default/assets/fonts/brand-icons.woff2',
'https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.8.4/themes/default/assets/fonts/icons.woff2',
'https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.8.4/themes/default/assets/fonts/outline-icons.woff2'
]
]
]
];

View File

@ -0,0 +1,2 @@
<?php
//$app->add(new Zeuxisoo\Whoops\Slim\WhoopsMiddleware);

21
bootstrap/web/setup.php Normal file
View File

@ -0,0 +1,21 @@
<?php
use Psr\Container\ContainerInterface;
return [
Slim\Views\Blade::class => function(ContainerInterface $container) {
return new Slim\Views\Blade(
$container->get('blade_template_path'),
$container->get('blade_cache_path'),
null,
[
'urls' => (object) [
'base' => $container->get('urls.base'),
'assets' => (object) [
'images' => $container->get('urls.images')
]
],
'assets' => $container->get('assets')
]
);
}
];

View File

@ -0,0 +1,12 @@
<?php
namespace ProVM\NotariaRaby\Common\Controller\Web;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Slim\Views\Blade as View;
class Consultas {
public function __invoke(Request $request, Response $response, View $view): Response {
return $view->render($response, 'consultas');
}
}

View File

@ -0,0 +1,12 @@
<?php
namespace ProVM\NotariaRaby\Common\Controller\Web;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Slim\Views\Blade as View;
class Contacto {
public function __invoke(Request $request, Response $response, View $view): Response {
return $view->render($response, 'contacto');
}
}

View File

@ -0,0 +1,12 @@
<?php
namespace ProVM\NotariaRaby\Common\Controller\Web;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Slim\Views\Blade as View;
class Home {
public function __invoke(Request $request, Response $response, View $view): Response {
return $view->render($response, 'home');
}
}

View File

@ -0,0 +1,12 @@
<?php
namespace ProVM\NotariaRaby\Common\Controller\Web;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Slim\Views\Blade as View;
class Notaria {
public function __invoke(Request $request, Response $response, View $view): Response {
return $view->render($response, 'notaria');
}
}

View File

@ -0,0 +1,12 @@
<?php
namespace ProVM\NotariaRaby\Common\Controller\Web;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Slim\Views\Blade as View;
class Servicios {
public function __invoke(Request $request, Response $response, View $view): Response {
return $view->render($response, 'servicios');
}
}

32
composer.json Normal file
View File

@ -0,0 +1,32 @@
{
"name": "provm/notaria_raby",
"description": "Pagina web de Notaria Raby",
"type": "project",
"require": {
"slim/slim": "^4.4",
"nyholm/psr7": "^1.2",
"nyholm/psr7-server": "^0.4.1",
"rubellum/slim-blade-view": "^0.1.1",
"php-di/slim-bridge": "^3.0",
"zeuxisoo/slim-whoops": "^0.7.2",
"whoops/soap": "^1.0",
"symfony/var-dumper": "^5.0"
},
"require-dev": {
"phpunit/phpunit": "^8.5",
"kint-php/kint": "^3.3"
},
"license": "UNLICENSED",
"authors": [
{
"name": "Aldarien",
"email": "aldarien85@gmail.com"
}
],
"autoload": {
"psr-4": {
"ProVM\\NotariaRaby\\Common\\": "common",
"ProVM\\Common\\": "provm/common"
}
}
}

View File

@ -0,0 +1,19 @@
<?php
namespace ProVM\Common\Basic;
use Psr\Http\Message\ResponseInterface as Response;
use ProVM\Common\Definition\Controller as ControllerInterface;
abstract class Controller implements ControllerInterface {
public function withJSON(Response $response, string $data): Response {
$response->getBody()->write(json_encode($data));
return $response
->withHeader('Content-Type', 'application/json')
->withStatus(201);
}
public function withRedirect(string $uri): Response {
return $response
->withHeader('Location', $uri)
->withStatus(303);
}
}

View File

@ -0,0 +1,9 @@
<?php
namespace ProVM\Common\Definition;
use Psr\Http\Message\ResponseInterface as Response;
interface Controller {
public function withJSON(Response $response, string $data): Response;
public function withRedirect(string $uri): Response;
}

4
public/.htaccess Normal file
View File

@ -0,0 +1,4 @@
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]

8
public/index.php Normal file
View File

@ -0,0 +1,8 @@
<?php
include_once implode(DIRECTORY_SEPARATOR, [
dirname(__DIR__),
'bootstrap',
'web.php'
]);
$app->run();

View File

@ -0,0 +1,7 @@
<?php
$folder = implode(DIRECTORY_SEPARATOR, [
__DIR__,
$_ENV
]);
$filename = $_ENV . '.php';
include_once $filename;

16
resources/routes/web.php Normal file
View File

@ -0,0 +1,16 @@
<?php
use ProVM\NotariaRaby\Common\Controller\Web\Home;
$folder = implode(DIRECTORY_SEPARATOR, [
__DIR__,
'web'
]);
$files = new DirectoryIterator($folder);
foreach ($files as $file) {
if ($file->isDir()) {
continue;
}
include_once $file->getRealPath();
}
$app->get('/', Home::class);

View File

View File

View File

@ -0,0 +1,9 @@
@extends('layout.base')
@section('page_content')
@include('home.banner')
@include('home.suplente')
@include('home.numero')
@include('home.links')
@include('home.horario')
@endsection

View File

@ -0,0 +1,28 @@
<div class="banner">
<div class="mensaje">
<p>
<strong>
5&deg; NOTAR&Iacute;A DE SANTIAGO
<br />
PATRICIO RABY BENAVENTE
</strong>
</p>
<p>
Gertrudis Echenique 30, of. 32, El Golf
<br />
<img class="ui icon" src="{{$urls->assets->images}}/logo_metro_blanco.png" />
Metro Alcantara
</p>
</div>
</div>
@push('styles')
<style type="text/css">
.banner {
background-image: url('{{$urls->assets->images}}/img_banner.png')
}
.banner .mensaje {
padding: 3em;
}
</style>
@endpush

View File

@ -0,0 +1 @@
Horario

View File

@ -0,0 +1,45 @@
<div class="ui grid">
<div class="three columns row">
<div class="row">
<div class="center aligned column">
<table class="ui table">
<thead>
<tr>
<th>DOCUMENTOS ONLINE</th>
</tr>
</thead>
<tbody>
<tr>
<td>Autorizaciones</td>
</tr>
<tr>
<td>Declaraciones</td>
</tr>
<tr>
<td>Certificados</td>
</tr>
<tr>
<td>Poderes</td>
</tr>
<tr>
<td>Contratos</td>
</tr>
<tr>
<td>Otros</td>
</tr>
</tbody>
</table>
</div>
<div class="column">
<table class="ui table">
<thead>
<tr>
<th>LINKS DE CONSULTA</th>
</tr>
</thead>
</table>
</div>
<div class="column"></div>
</div>
</div>
</div>

View File

@ -0,0 +1,11 @@
<div class="ui center aligned grid">
<div class="row">
<div class="three wide column">
<div class="ui inverted black center aligned segment">
N&Uacute;MERO DE ATENCI&Oacute;N ONLINE
<br />
<img src="{{$urls->assets->images}}/logo_play_store.png" />
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,37 @@
<div class="ui grid">
<div class="row">
<div class="five wide column" style="padding: 2em;">
<h4>
Horario lunes a viernes
<br />
9:30 - 13:30 | 15:30 - 18:00
</h4>
<p>
La atención dentro del horario, puede verse
afectada circunstancialmente y sin previo
aviso, por encontrarse el notario cumpliendo
funciones fuera de la Notaría.
</p>
<button class="ui inverted dark-blue button">
NOTAR&Iacute;A DE TURNO
</button>
</div>
<div class="nine wide column" style="background-image: url('{{$urls->assets->images}}/img_suplente.png')">
<div class="ui center aligned grid">
<div class="row">
<div class="four wide column">
<div class="ui center aligned segment">
<h4 style="padding: 0; margin: 0;">NOTARIO SUPLENTE</h4>
<p style="font-size: 8pt;">DEL 1 DE ABRIL AL 15 DE MAYO</p>
<p class="center aligned">
MARIA VIRGINIA
<br />
WIELANDT COVARRUBIAS
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,8 @@
<!DOCTYPE html>
<html lang="es">
@include('layout.head')
<body>
@include('layout.header')
@yield('page_content')
@include('layout.footer')
</body>

View File

@ -0,0 +1,2 @@
<footer></footer>
@include('layout.scripts')

View File

@ -0,0 +1,8 @@
<head>
<meta charset="utf-8" />
<title>
Notar&iacute;a Patricio Raby
@yield('page_title')
</title>
@include('layout.styles')
</head>

View File

@ -0,0 +1,21 @@
<header>
<nav class="ui menu dark-blue inverted">
<a class="left aligned item" href="{{$urls->base}}">
NOTAR&Iacute;A RABY
</a>
<div class="right menu">
<a class="item" href="{{$urls->base}}/notaria">
NOTAR&Iacute;A
</a>
<a class="item" href="{{$urls->base}}/servicios">
SERVICIOS
</a>
<a class="item" href="{{$urls->base}}/consultas">
CONSULTAS
</a>
<a class="item" href="{{$urls->base}}/contacto">
CONTACTO
</a>
</div>
</nav>
</header>

View File

@ -0,0 +1,7 @@
@foreach ($assets as $asset)
@if (isset($asset->script))
<script type="text/javascript" src="{{$asset->script}}"></script>
@endif
@endforeach
@stack('scripts')

View File

@ -0,0 +1,18 @@
<link rel="shortcut icon" type="image/png" href="{{$urls->assets->images}}/favicon.png" />
@foreach ($assets as $asset)
@if (isset($asset->style))
<link rel="stylesheet" type="text/css" href="{{$asset->style}}" />
@endif
@if (isset($asset->fonts))
@foreach ($asset->fonts as $font)
<link rel="stylesheet" href="{{$font}}" />
@endforeach
@endif
@endforeach
<style type="text/css">
.inverted.dark-blue {
background-color: #003662 !important;
}
</style>
@stack('styles')

View File