Crear un proyecto nuevo
Aquí encontrarás los pasos necesarios para construir una plantilla desde cero, definiendo los elementos comunes de tu proyecto, las páginas principales, las landing pages y cualquier otro recurso que necesites para darle estructura y coherencia a tu desarrollo.
$carpeta //Nombre del directorio que contiene los archivos de la estructuta. Ej: En el directorio /struct/front/ se crean los archivos header.php
, navbar.php
y footer.php
que se cargan para el front de la página web.
1. Crear el archivo /struct/{$carpeta}/header.php
que incluirá las metaetiquetas, los enlaces a Bootstrap, los estilos y script comunes.
2. Crear el archivo /struct/{$carpeta}/navbar.php
con la barra de navegación.
3. Crear el archivo /struct/{$carpeta}/footer.php
con el pie de página y los scripts.
4. Crear el archivo /_conf/framework.php
Este archivo contiene los parametros de configuración general del proyecto. Aquí se definen las páginas, variables globales, constantes y demás parámetro generales del proyecto.
/*Configuración general del frameworkConexion a la Base de datos*/
define("HOST", "localhost");
define("USER", "");
define("PASSWORD", "");
define("DATABASE", "");
define("SET_CHARSET", "utf8");
define("SECURE", TRUE);
/* Paginas del frontend */
$__set["pages"]["inicio"] = ["title" => "Inicio", "struct" => "front", "dir" => "/", "auth" => false];
$__set["pages"]["contact"] = ["title" => "Contacto", "struct" => "front", "dir" => "/", "auth" => false];
$__set["pages"]["politica-privacidad"] = ["title" => "Politica de privacidad", "struct" => "front", "dir" => "/", "auth" => false, "no-header" => true];
$__set["pages"]["shopping-cart"] = ["title" => "Carrito de compras", "struct" => "front", "dir" => "/", "auth" => true];
/* Paginas del backend */
$__set["pages"]["lista-precio"] = ["title" => "Sigesad | Lista de precio", "struct" => "app", "dir" => "/iu/app/lista_precio/", "auth" => true, "menu" => true, "group_auth" => 3];
/* Variables de configuración general del frameworkSe debe crear un modulo para configurar los parametros de autenticacion para los usuarios de cada proyecto */
$__set["CONTS"]["ALTA_USUARIO"] = false;
$__set["CONTS"]["RESTAURAR_PASS"] = false;
5. Crea las páginas que necesitas. Las páginas solo deben tener el contenido del main
porque sigesad se encarga de forma automatica de cargar el header.php, navbar.php y footer.php. Recuerda definir la página en el archivo framework para que sigesad la pueda cargar. Los textos de las páginas se deben cargar desde la base de datos usando $core->txt->getTxt("clave_de_texto")
<!-- PAGINA DE INICIO -->
<main>
<!-- Hero Section -->
<section class="hero-section">
<div class="container">
<div class="row">
<div class="col-md-8">
<h1 class="display-3 fw-bold"><?= $core->txt->getTxt("hero_titulo") ?></h1>
<p class="lead"><?= $core->txt->getTxt("hero_subtitulo") ?></p>
<a href="#contact" class="btn btn-primary btn-lg mt-3"><?= $core->txt->getTxt("hero_boton") ?></a>
</div>
</div>
</div>
</section>
<!-- About Section -->
<section class="py-5">
<div class="container">
<div class="row align-items-center">
<div class="col-md-6">
<h2 class="fw-bold mb-4"><?= $core->txt->getTxt("about_titulo") ?></h2>
<p class="lead"><?= $core->txt->getTxt("about_subtitulo") ?></p>
<p><?= $core->txt->getTxt("about_descripcion") ?></p>
<div class="d-flex mt-4">
<div class="me-4 text-center">
<h3 class="text-primary fw-bold"><?= $core->txt->getTxt("about_atletas_numero") ?></h3>
<p><?= $core->txt->getTxt("about_atletas_texto") ?></p>
</div>
<div class="me-4 text-center">
<h3 class="text-primary fw-bold"><?= $core->txt->getTxt("about_anos_numero") ?></h3>
<p><?= $core->txt->getTxt("about_anos_texto") ?></p>
</div>
<div class="text-center">
<h3 class="text-primary fw-bold"><?= $core->txt->getTxt("about_titulos_numero") ?></h3>
<p><?= $core->txt->getTxt("about_titulos_texto") ?></p>
</div>
</div>
</div>
<div class="col-md-6">
<img src="<?= $core->domain() ?>/assets/img/<?= $core->getNameImgWebp('club-image.jpg') ?>" alt="<?= $core->txt->getTxt('about_imagen_alt') ?>" class="img-fluid rounded shadow">
</div>
</div>
</div>
</section>
</main>
6. Crea el script para generar los textos en la base de datos para cargar con $core->txt->getTxt("clave_de_texto")
. Se debe estar autenticado para poder grabar los textos en la base de datos.
$all_textos = [];
$all_textos[] = ["name_txt" => "hero_titulo", "txt"=> "Club Deportivo Unidos", "formato" => false];
$all_textos[] = ["name_txt" => "hero_subtitulo", "txt"=> "Formando atletas y creando campeones desde 1995", "formato" => false];
$all_textos[] = ["name_txt" => "hero_boton", "txt"=> "Únete a nosotros", "formato" => false];
$all_textos[] = ["name_txt" => "about_titulo", "txt"=> "Nuestro Club", "formato" => false];
$all_textos[] = ["name_txt" => "about_subtitulo", "txt"=> "Más de 25 años fomentando el deporte y los valores en nuestra comunidad.", "formato" => false];
$all_textos[] = ["name_txt" => "about_descripcion", "txt"=> "En Club Deportivo Unidos nos dedicamos a desarrollar el potencial de jóvenes talentos a través de disciplinas deportivas de calidad, con entrenadores profesionales y instalaciones de primer nivel.", "formato" => false];
$all_textos[] = ["name_txt" => "about_atletas_numero", "txt"=> "500+", "formato" => false];
$all_textos[] = ["name_txt" => "about_atletas_texto", "txt"=> "Atletas", "formato" => false];
$all_textos[] = ["name_txt" => "about_anos_numero", "txt"=> "25", "formato" => false];
$all_textos[] = ["name_txt" => "about_anos_texto", "txt"=> "Años", "formato" => false];
$all_textos[] = ["name_txt" => "about_titulos_numero", "txt"=> "50+", "formato" => false];
$all_textos[] = ["name_txt" => "about_titulos_texto", "txt"=> "Títulos", "formato" => false];
$all_textos[] = ["name_txt" => "about_imagen_alt", "txt"=> "Nuestro club", "formato" => false];
if(!empty($all_textos)){
foreach($all_textos as $row){
$data_form = [];
$data_form["_f"]["name_txt"] = $row["name_txt"];
$data_form["_f"]["txt"] = $row["txt"];
$data_form["_f"]["formato"] = $row["formato"];
$data_form["_f"]["date_created"] = "now()";
$data_form["_f"]["user_created"] = $core->userId;
$data_form["table"] = "ap_txts";
$data_form["debug"] = false;
$grabar = $core->db->saveDataSigesad($data_form);
}
}
7. El nombre de las imagenes siempre deben cargar usando el método $core->getNameImgWebp('club-image.jpg')
img src="= $core->domain() ?>/assets/img/= $core->getNameImgWebp('club-image.jpg') ?>"