Miscelánea

Diem Project Día 2.2 (Formulario de Contacto)

1 101

Modificando la página de contacto

Tras seguir los pasos para crear una pagina “Contacto”. Declaramos una nueva vista css en apps/front/config/view.yml. Si no recordáis como hacer una página nueva podéis revisar los entregables anteriores. También hemos de añadir el widget que hemos incluido de contacto en el tutorial anterior. Y por último declaramos la nueva vista para la página creada:

stylesheets:
- layout
- typography
- navigation
- markdown
- form

Y declaramos la css guardándola en web/themeCoolWater/css/form.css:

/* all forms */
label {
display:block;
font-weight:bold;
margin: 7px 0;
}
input {
padding:3px;
border: 1px solid #E5F0FB;
font: normal 1em Verdana, sans-serif;
color:#777;
}
textarea {
width:400px;
padding:3px;
font: normal 1em Verdana, sans-serif;
border: 1px solid #E5F0FB;
height:100px;
display:block;
color:#777;
}
input.submit {
font: bold 12px Arial, Sans-serif;
height: 28px;
margin: 0;
padding: 2px 3px;
color: #fff;
background: #306bc1 url(../images/button-bg.jpg) repeat-x 0 0;
border: 1px solid #306bc1;
cursor: pointer;
}

/* content forms */
#dm_content form {
padding: 10px;
border: 1px solid #E5F0FB;
background: #F4F8FD;
}

#dm_content form .submit_wrap {
margin-top: 15px;
}

#dm_content .error_list,
#dm_content .error_list li {
display: inline;
color: red;
padding: 0;
}

#dm_content .has_error {
border-color: red;
}

#dm_content .form_valid {
margin: 10px 50px;
padding: 10px 0 10px 45px;
font: bold 1.3em/1.5em "Trebuchet MS", Tahoma, arial, Sans-serif;
color: #2361BA;
border: 1px solid #E5F0FB;
background: #F4F8FD url(../images/quote.jpg) no-repeat 8px 6px;
}

Tendremos la página de contacto hecha y podremos ver en la parte de administración los mensajes enviados desde Contenido/Contacto:

Creación de Sistema Blog

Hasta aquí hemos aprendido bastante y llega una de las partes que más me entretiene. Si hemos de crear un contenido administrable muchas veces se ha de programar manualmente todo el mantenimiento (Alta / Modificación / Eliminación). Vamos a implementar un sistema de Blog que nos generará todo el mantenimiento de nuestros artículos.

En primer lugar modificaremos el archivo config/doctrine/schema.yml para declarar nuestro modelo:

Article:
actAs:
DmSortable:
I18n:
fields:         [ title, extract, body, is_active ]
actAs:
Timestampable:
DmVersionable:
columns:
title:            { type: string(120), notnull: true }
extract:          { type: string(2000), notnull: true }
body:             { type: clob, extra: markdown }
image:            { type: integer }
author:           { type: integer, notnull: true }
is_active:        { type: boolean, notnull: true, default: false }
relations:
Image:
class:          DmMedia
local:          image
foreignAlias:   Articles
Author:
class: DmUser
local: author
foreignAlias:   Articles

Podéis encontrar la explicación a lo que implementamos aquí. Como hemos modificado el modelo de datos (los datos de la BBDD) deberemos volver a ejecutar la comparación y creación de tablas:

php symfony doctrine:generate-migrations-diff
php symfony doctrine:migrate
php symfony dm:setup

Ejecutando los 3 comandos anteriores hemos creado el modelo en lib/model/doctrine/Article.class.php, el formulario en lib/form/doctrine/ArticleForm.class.php y tabla artículos en la BBDD.

Modificaremos el archivo config/dm/modules.yml para el modelo:

Content:

Global:

main:
components:
header:
footer:

Blog:

article:

Y generaremos la interficie administrativa:

php symfony dm:setup

Si vamos a apps/admin/modules/article podremos ver que se ha generado un nuevo módulo de administración, apps/admin/modules/article. Ahora ya podemos editar nuestros artículos desde Contenido/Blog/ Artículos

En breve prepararemos la parte vista de nuestros artículos.

Compartir:

Posts relacionados

Deja una contestación

Tu email no será publicado. Los campos obligatorios están marcados *

19 − trece =

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Publicidad

Publicidad

Comentarios recientes

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies