Proyectos -> Productos
This commit is contained in:
@ -6,58 +6,58 @@ use Psr\Http\Message\ServerRequestInterface as Request;
|
|||||||
use Psr\Http\Message\ResponseInterface as Response;
|
use Psr\Http\Message\ResponseInterface as Response;
|
||||||
use Slim\Views\Blade as View;
|
use Slim\Views\Blade as View;
|
||||||
|
|
||||||
class Proyectos {
|
class Productos {
|
||||||
public function __invoke(Request $request, Response $response, Container $container, View $view): Response {
|
public function __invoke(Request $request, Response $response, Container $container, View $view): Response {
|
||||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||||
$container->get('folders.data'),
|
$container->get('folders.data'),
|
||||||
'segmentos.json'
|
'segmentos.json'
|
||||||
]);
|
]);
|
||||||
$segmentos = json_decode(trim(file_get_contents($filename)));
|
$segmentos = json_decode(trim(file_get_contents($filename)));
|
||||||
return $view->render($response, 'proyectos.list', compact('segmentos'));
|
return $view->render($response, 'productos.list', compact('segmentos'));
|
||||||
}
|
}
|
||||||
public function show(Request $request, Response $response, Container $container, View $view, $proyecto): Response {
|
public function show(Request $request, Response $response, Container $container, View $view, $producto): Response {
|
||||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||||
$container->get('folders.data'),
|
$container->get('folders.data'),
|
||||||
'proyectos.json'
|
'productos.json'
|
||||||
]);
|
]);
|
||||||
$proyectos = json_decode(trim(file_get_contents($filename)));
|
$productos = json_decode(trim(file_get_contents($filename)));
|
||||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||||
$container->get('folders.data'),
|
$container->get('folders.data'),
|
||||||
'destacados.json'
|
'destacados.json'
|
||||||
]);
|
]);
|
||||||
$destacados = json_decode(trim(file_get_contents($filename)));
|
$destacados = json_decode(trim(file_get_contents($filename)));
|
||||||
$destacado = false;
|
$destacado = false;
|
||||||
if (array_search($proyecto, $destacados) !== false) {
|
if (array_search($producto, $destacados) !== false) {
|
||||||
$destacado = true;
|
$destacado = true;
|
||||||
}
|
}
|
||||||
$id = $proyecto;
|
$id = $producto;
|
||||||
$proyecto = $proyectos[$proyecto];
|
$producto = $productos[$producto];
|
||||||
$proyecto->destacado = $destacado;
|
$producto->destacado = $destacado;
|
||||||
$proyecto->id = $id;
|
$producto->id = $id;
|
||||||
$folder = implode(DIRECTORY_SEPARATOR, [
|
$folder = implode(DIRECTORY_SEPARATOR, [
|
||||||
$container->get('folders.public'),
|
$container->get('folders.public'),
|
||||||
'assets',
|
'assets',
|
||||||
'images',
|
'images',
|
||||||
mb_strtolower($proyecto->edificio)
|
mb_strtolower($producto->nombre)
|
||||||
]);
|
]);
|
||||||
$files = new \DirectoryIterator($folder);
|
$files = new \DirectoryIterator($folder);
|
||||||
$proyecto->images = [];
|
$producto->images = [];
|
||||||
foreach ($files as $file) {
|
foreach ($files as $file) {
|
||||||
if ($file->isDir()) {
|
if ($file->isDir()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$proyecto->images []= $file->getFilename();
|
$producto->images []= $file->getFilename();
|
||||||
}
|
}
|
||||||
return $view->render($response, 'proyectos.show', compact('proyecto'));
|
return $view->render($response, 'productos.show', compact('producto'));
|
||||||
}
|
}
|
||||||
public function segmento(Request $request, Response $response, Container $container, $segmento): Response {
|
public function segmento(Request $request, Response $response, Container $container, $segmento): Response {
|
||||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||||
$container->get('folders.data'),
|
$container->get('folders.data'),
|
||||||
'proyectos.json'
|
'productos.json'
|
||||||
]);
|
]);
|
||||||
$proyectos = json_decode(trim(file_get_contents($filename)));
|
$productos = json_decode(trim(file_get_contents($filename)));
|
||||||
if ($segmento != 'todo') {
|
if ($segmento != 'todo') {
|
||||||
$proyectos = array_filter($proyectos, function($item) use ($segmento) {
|
$productos = array_filter($productos, function($item) use ($segmento) {
|
||||||
return (str_replace(' ', '_', mb_strtolower($item->segmento)) == $segmento);
|
return (str_replace(' ', '_', mb_strtolower($item->segmento)) == $segmento);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -65,7 +65,7 @@ class Proyectos {
|
|||||||
'information' => [
|
'information' => [
|
||||||
'segmento' => $segmento
|
'segmento' => $segmento
|
||||||
],
|
],
|
||||||
'proyectos' => array_keys($proyectos)
|
'productos' => array_keys($productos)
|
||||||
];
|
];
|
||||||
$response->getBody()->write(json_encode($output));
|
$response->getBody()->write(json_encode($output));
|
||||||
return $response
|
return $response
|
||||||
@ -93,25 +93,25 @@ class Proyectos {
|
|||||||
->withHeader('Content-Type', 'application/json')
|
->withHeader('Content-Type', 'application/json')
|
||||||
->withStatus(201);
|
->withStatus(201);
|
||||||
}
|
}
|
||||||
public function ficha(Request $request, Response $response, Container $container, View $view, $proyecto): Response {
|
public function ficha(Request $request, Response $response, Container $container, View $view, $producto): Response {
|
||||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||||
$container->get('folders.data'),
|
$container->get('folders.data'),
|
||||||
'proyectos.json'
|
'productos.json'
|
||||||
]);
|
]);
|
||||||
$proyectos = json_decode(trim(file_get_contents($filename)));
|
$productos = json_decode(trim(file_get_contents($filename)));
|
||||||
$filename = implode(DIRECTORY_SEPARATOR, [
|
$filename = implode(DIRECTORY_SEPARATOR, [
|
||||||
$container->get('folders.data'),
|
$container->get('folders.data'),
|
||||||
'destacados.json'
|
'destacados.json'
|
||||||
]);
|
]);
|
||||||
$destacados = json_decode(trim(file_get_contents($filename)));
|
$destacados = json_decode(trim(file_get_contents($filename)));
|
||||||
$destacado = false;
|
$destacado = false;
|
||||||
if (array_search($proyecto, $destacados) !== false) {
|
if (array_search($producto, $destacados) !== false) {
|
||||||
$destacado = true;
|
$destacado = true;
|
||||||
}
|
}
|
||||||
$id = $proyecto;
|
$id = $producto;
|
||||||
$proyecto = $proyectos[$proyecto];
|
$producto = $productos[$producto];
|
||||||
$proyecto->destacado = $destacado;
|
$producto->destacado = $destacado;
|
||||||
$proyecto->id = $id;
|
$producto->id = $id;
|
||||||
return $view->render($response, 'proyectos.ficha', compact('proyecto'));
|
return $view->render($response, 'productos.ficha', compact('producto'));
|
||||||
}
|
}
|
||||||
}
|
}
|
12
resources/routes/web/productos.php
Normal file
12
resources/routes/web/productos.php
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
use ProVM\KI\Common\Controller\Web\Productos;
|
||||||
|
|
||||||
|
$app->group('/productos', function($app) {
|
||||||
|
$app->get('/segmento/{segmento}', [Productos::class, 'segmento']);
|
||||||
|
$app->get('/destacados/{page}', [Productos::class, 'destacados']);
|
||||||
|
$app->get('[/]', productos::class);
|
||||||
|
});
|
||||||
|
$app->group('/producto/{producto}', function($app) {
|
||||||
|
$app->get('/ficha', [Productos::class, 'ficha']);
|
||||||
|
$app->get('[/]', [Productos::class, 'show']);
|
||||||
|
});
|
@ -1,12 +0,0 @@
|
|||||||
<?php
|
|
||||||
use ProVM\KI\Common\Controller\Web\Proyectos;
|
|
||||||
|
|
||||||
$app->group('/proyectos', function($app) {
|
|
||||||
$app->get('/segmento/{segmento}', [Proyectos::class, 'segmento']);
|
|
||||||
$app->get('/destacados/{page}', [Proyectos::class, 'destacados']);
|
|
||||||
$app->get('[/]', Proyectos::class);
|
|
||||||
});
|
|
||||||
$app->group('/proyecto/{proyecto}', function($app) {
|
|
||||||
$app->get('/ficha', [Proyectos::class, 'ficha']);
|
|
||||||
$app->get('[/]', [Proyectos::class, 'show']);
|
|
||||||
});
|
|
@ -1,54 +1,54 @@
|
|||||||
<div class="ui card ficha">
|
<div class="ui card ficha">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
{{$proyecto->edificio}}
|
{{$producto->nombre}}
|
||||||
</div>
|
</div>
|
||||||
<div class="right floated meta">
|
<div class="right floated meta">
|
||||||
{{$proyecto->segmento}}
|
{{$producto->segmento}}
|
||||||
</div>
|
</div>
|
||||||
<div class="descripcion">
|
<div class="descripcion">
|
||||||
{{$proyecto->comuna}}
|
{{$producto->comuna}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="medium image">
|
<div class="medium image">
|
||||||
@if ($proyecto->destacado)
|
@if ($producto->destacado)
|
||||||
<div class="overlay">Destacado</div>
|
<div class="overlay">Destacado</div>
|
||||||
@endif
|
@endif
|
||||||
<img src="{{$urls->images}}/{{$proyecto->imagen}}" />
|
<img src="{{$urls->images}}/{{$producto->imagen}}" />
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="ui basic segment">
|
<div class="ui basic segment">
|
||||||
<span class="right floated">
|
<span class="right floated">
|
||||||
{{$proyecto->valor}} UF
|
{{$producto->valor}} UF
|
||||||
</span>
|
</span>
|
||||||
Valor depto
|
Valor depto
|
||||||
</div>
|
</div>
|
||||||
<div class="ui basic segment">
|
<div class="ui basic segment">
|
||||||
<span class="right floated">
|
<span class="right floated">
|
||||||
{{$proyecto->bono}} UF
|
{{$producto->bono}} UF
|
||||||
</span>
|
</span>
|
||||||
Bono Pie
|
Bono Pie
|
||||||
</div>
|
</div>
|
||||||
<div class="ui basic segment">
|
<div class="ui basic segment">
|
||||||
<span class="right floated">
|
<span class="right floated">
|
||||||
{{$proyecto->rentabilidad}}%
|
{{$producto->rentabilidad}}%
|
||||||
</span>
|
</span>
|
||||||
Rentabilidad
|
Rentabilidad
|
||||||
</div>
|
</div>
|
||||||
<div class="ui basic segment">
|
<div class="ui basic segment">
|
||||||
<span class="right floated">
|
<span class="right floated">
|
||||||
{{$proyecto->cuota}} UF
|
{{$producto->cuota}} UF
|
||||||
</span>
|
</span>
|
||||||
Valor cuota
|
Valor cuota
|
||||||
</div>
|
</div>
|
||||||
<div class="ui basic segment">
|
<div class="ui basic segment">
|
||||||
<span class="right floated">
|
<span class="right floated">
|
||||||
{{$proyecto->entrega}}
|
{{$producto->entrega}}
|
||||||
</span>
|
</span>
|
||||||
Entrega Estimada
|
Entrega Estimada
|
||||||
</div>
|
</div>
|
||||||
<span class="right floated">
|
<span class="right floated">
|
||||||
<a href="{{$urls->base}}/proyecto/{{$proyecto->id}}">
|
<a href="{{$urls->base}}/producto/{{$producto->id}}">
|
||||||
<button class="ui inverted brand button">
|
<button class="ui inverted brand button">
|
||||||
Ver
|
Ver
|
||||||
</button>
|
</button>
|
@ -1,7 +1,7 @@
|
|||||||
@extends('layout.base')
|
@extends('layout.base')
|
||||||
|
|
||||||
@section('page_content')
|
@section('page_content')
|
||||||
<div id="proyectos">
|
<div id="productos">
|
||||||
<div class="ui container">
|
<div class="ui container">
|
||||||
<div class="ui header titulo">
|
<div class="ui header titulo">
|
||||||
PRODUCTOS
|
PRODUCTOS
|
||||||
@ -29,7 +29,7 @@
|
|||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@push('styles')
|
@push('styles')
|
||||||
<link rel="stylesheet" type="text/css" href="{{$urls->styles}}/proyectos.css" />
|
<link rel="stylesheet" type="text/css" href="{{$urls->styles}}/productos.css" />
|
||||||
@endpush
|
@endpush
|
||||||
|
|
||||||
@push('scripts')
|
@push('scripts')
|
||||||
@ -48,20 +48,20 @@
|
|||||||
if (name.indexOf(' ') > -1) {
|
if (name.indexOf(' ') > -1) {
|
||||||
name = name.replaceAll(' ', '_')
|
name = name.replaceAll(' ', '_')
|
||||||
}
|
}
|
||||||
var url = '{{$urls->base}}/proyectos/segmento/' + name
|
var url = '{{$urls->base}}/productos/segmento/' + name
|
||||||
$(".tab[data-tab='" + segmento + "']").find('.grid').html('')
|
$(".tab[data-tab='" + segmento + "']").find('.grid').html('')
|
||||||
loaded[segmento] = true
|
loaded[segmento] = true
|
||||||
$.getJSON(url, (data) => {
|
$.getJSON(url, (data) => {
|
||||||
$(".tab[data-tab='" + segmento + "']").find('.grid').append(
|
$(".tab[data-tab='" + segmento + "']").find('.grid').append(
|
||||||
$('<div></div>').attr('class', 'ui active centered inline loader')
|
$('<div></div>').attr('class', 'ui active centered inline loader')
|
||||||
)
|
)
|
||||||
$.each(data.proyectos, (i, el) => {
|
$.each(data.productos, (i, el) => {
|
||||||
getProyecto(segmento, el)
|
getProducto(segmento, el)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
function getProyecto(segmento, id_proyecto) {
|
function getProducto(segmento, id_producto) {
|
||||||
var url = '{{$urls->base}}/proyecto/' + id_proyecto + '/ficha'
|
var url = '{{$urls->base}}/producto/' + id_producto + '/ficha'
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: url,
|
url: url,
|
||||||
success: (data) => {
|
success: (data) => {
|
||||||
@ -76,7 +76,7 @@
|
|||||||
}
|
}
|
||||||
$(document).ready(() => {
|
$(document).ready(() => {
|
||||||
loadSegmento('todo')
|
loadSegmento('todo')
|
||||||
$('#proyectos').find('.tabular.menu .item').tab({
|
$('#productos').find('.tabular.menu .item').tab({
|
||||||
onFirstLoad: (tabPath, parameterArray, historyEvent) => {
|
onFirstLoad: (tabPath, parameterArray, historyEvent) => {
|
||||||
if (tabPath == 'todo') {
|
if (tabPath == 'todo') {
|
||||||
return
|
return
|
||||||
@ -86,7 +86,7 @@
|
|||||||
})
|
})
|
||||||
if (window.location.hash) {
|
if (window.location.hash) {
|
||||||
var start = (window.location.hash).replace('#', '').replace('%20', ' ')
|
var start = (window.location.hash).replace('#', '').replace('%20', ' ')
|
||||||
$('#proyectos').find('.tabular.menu .item').tab('change tab', start)
|
$('#productos').find('.tabular.menu .item').tab('change tab', start)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
@ -3,7 +3,7 @@
|
|||||||
<a class="active item" data-tab="informacion">Información</a>
|
<a class="active item" data-tab="informacion">Información</a>
|
||||||
<a class="item" data-tab="mapa">Ver Mapa</a>
|
<a class="item" data-tab="mapa">Ver Mapa</a>
|
||||||
<a class="item" data-tab="video">Video</a>
|
<a class="item" data-tab="video">Video</a>
|
||||||
<a class="item" data-tab="estado">Estado del Proyecto</a>
|
<a class="item" data-tab="estado">Estado del producto</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="ui bottom attached basic segment active tab" data-tab="informacion">
|
<div class="ui bottom attached basic segment active tab" data-tab="informacion">
|
||||||
<div class="ui grid">
|
<div class="ui grid">
|
||||||
@ -14,7 +14,7 @@
|
|||||||
Precio:
|
Precio:
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
{{$proyecto->valor}} UF
|
{{$producto->valor}} UF
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@ -22,7 +22,7 @@
|
|||||||
Estado:
|
Estado:
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
{{$proyecto->estado}}
|
{{$producto->estado}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@ -30,7 +30,7 @@
|
|||||||
Tipo:
|
Tipo:
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
{{$proyecto->segmento}}
|
{{$producto->segmento}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@ -38,7 +38,7 @@
|
|||||||
Ubicación:
|
Ubicación:
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
{{$proyecto->comuna}}, {{$proyecto->ciudad}}
|
{{$producto->comuna}}, {{$producto->ciudad}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@ -46,7 +46,7 @@
|
|||||||
Unidades:
|
Unidades:
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
{{$proyecto->unidades}}
|
{{$producto->unidades}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@ -54,7 +54,7 @@
|
|||||||
Modelos:
|
Modelos:
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
{{$proyecto->modelos}}
|
{{$producto->modelos}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@ -62,13 +62,13 @@
|
|||||||
Tamaño
|
Tamaño
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
{{$proyecto->tamaño}}
|
{{$producto->tamaño}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="twelve wide column">
|
<div class="twelve wide column">
|
||||||
{{$proyecto->descripcion}}
|
{{$producto->descripcion}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
@ -1,15 +1,15 @@
|
|||||||
<div id="galeria">
|
<div id="galeria">
|
||||||
<div class="ui image" data-id="0">
|
<div class="ui image" data-id="0">
|
||||||
<img src="{{$urls->images}}/{{mb_strtolower($proyecto->edificio)}}/{{$proyecto->imagen}}" />
|
<img src="{{$urls->images}}/{{mb_strtolower($producto->nombre)}}/{{$producto->imagen}}" />
|
||||||
</div>
|
</div>
|
||||||
<div class="ui grid" id="thumbnails">
|
<div class="ui grid" id="thumbnails">
|
||||||
@foreach ($proyecto->images as $i => $image)
|
@foreach ($producto->images as $i => $image)
|
||||||
@if ($i == 0)
|
@if ($i == 0)
|
||||||
@continue
|
@continue
|
||||||
@endif
|
@endif
|
||||||
<div class="three wide column">
|
<div class="three wide column">
|
||||||
<div class="ui image" data-id="{{$i}}">
|
<div class="ui image" data-id="{{$i}}">
|
||||||
<img src="{{$urls->images}}/{{mb_strtolower($proyecto->edificio)}}/{{$image}}" />
|
<img src="{{$urls->images}}/{{mb_strtolower($producto->nombre)}}/{{$image}}" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@ -19,8 +19,8 @@
|
|||||||
@push('scripts')
|
@push('scripts')
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var images = [
|
var images = [
|
||||||
@foreach ($proyecto->images as $image)
|
@foreach ($producto->images as $image)
|
||||||
'{{$urls->images}}/{{mb_strtolower($proyecto->edificio)}}/{{$image}}',
|
'{{$urls->images}}/{{mb_strtolower($producto->nombre)}}/{{$image}}',
|
||||||
@endforeach
|
@endforeach
|
||||||
]
|
]
|
||||||
function populateThumbs(current) {
|
function populateThumbs(current) {
|
@ -1,23 +1,23 @@
|
|||||||
@extends('layout.base')
|
@extends('layout.base')
|
||||||
|
|
||||||
@section('page_content')
|
@section('page_content')
|
||||||
<div id="proyecto">
|
<div id="producto">
|
||||||
<div class="ui container">
|
<div class="ui container">
|
||||||
<div class="ui one columns grid">
|
<div class="ui one columns grid">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="titulo">
|
<div class="titulo">
|
||||||
<span class="ui header">
|
<span class="ui header">
|
||||||
{{$proyecto->edificio}}
|
{{$producto->nombre}}
|
||||||
</span>
|
</span>
|
||||||
<span class="direccion">
|
<span class="direccion">
|
||||||
{{$proyecto->direccion}}, {{$proyecto->comuna}}, {{$proyecto->ciudad}}
|
{{$producto->direccion}}, {{$producto->comuna}}, {{$producto->ciudad}}
|
||||||
</span>
|
</span>
|
||||||
<div class="publicado">
|
<div class="publicado">
|
||||||
Publicado el {{$proyecto->publicacion}}
|
Publicado el {{$producto->publicacion}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@include('proyectos.proyecto.galeria')
|
@include('productos.producto.galeria')
|
||||||
@include('proyectos.proyecto.datos')
|
@include('productos.producto.datos')
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -25,5 +25,5 @@
|
|||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@push('styles')
|
@push('styles')
|
||||||
<link rel="stylesheet" type="text/css" href="{{$urls->styles}}/proyecto.css" />
|
<link rel="stylesheet" type="text/css" href="{{$urls->styles}}/producto.css" />
|
||||||
@endpush
|
@endpush
|
Reference in New Issue
Block a user