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="domain() ?>/assets/img/getNameImgWebp('club-image.jpg') ?>"