... | ... | @@ -21,6 +21,8 @@ Para definir un nuevo atributo para este layout es necesario modificar los sigui |
|
|
|
|
|
Supongamos que queremos agregar un jumbotron en el `header-default.jsp`. Dichi jumbotron contendrá el título de la página actual y un posible subtitulo (opcional). Actualmente, el archivo `dspace-tags.tld` no contiene la definición para el subtitulo del elemento.
|
|
|
|
|
|
#### Definir una variable para el dspace:layout
|
|
|
|
|
|
1. Agregamos el atributo subtitle al archivo `dspace-tags.tld`. De esta forma, ya estará declarado y no nos aparecerá ninguna advertencia o error al incluirlo posteriormente en el tag dspace:layout.
|
|
|
|
|
|
```xml
|
... | ... | @@ -70,3 +72,51 @@ public void setSubtitle(String subtitle) |
|
|
this.subtitle = subtitle;
|
|
|
}
|
|
|
```
|
|
|
|
|
|
4. En el método `doStartTag()` preguntamos si el atributo subtitle que nos envían a través del dspace:layout esta vacío. Si es nulo, le seteamos el valor "off".
|
|
|
|
|
|
```java
|
|
|
// Set subtitle
|
|
|
if (subtitle != null) {
|
|
|
request.setAttribute("dspace.layout.subtitle", subtitle);
|
|
|
} else {
|
|
|
request.setAttribute("dspace.layout.subtitle", "off");
|
|
|
}
|
|
|
```
|
|
|
|
|
|
5. Por último, en el método `doEndTag()` inicializamos o reseteamos la variable creada (antes del `return EVAL_PAGE;`).
|
|
|
|
|
|
```java
|
|
|
subtitle = null;
|
|
|
```
|
|
|
|
|
|
#### Utilizar la variable
|
|
|
|
|
|
Cómo ejemplo utilizaremos el community-home. Si queremos hacer uso de la variable que creamos, sólo resta con ponerla en el tag dspace:layout
|
|
|
|
|
|
```jsp
|
|
|
<dspace:layout navbar="off" title="<%= name %>" subtitle="Página de inicio de la comunidad" feedData="<%= feedData %>">
|
|
|
```
|
|
|
|
|
|
Luego, en el header la atrapamos de la siguiente manera
|
|
|
|
|
|
```jsp
|
|
|
String subtitle = (String) request.getAttribute("dspace.layout.subtitle");
|
|
|
```
|
|
|
|
|
|
Y lo utilizamos para gererar o no el jumbotron
|
|
|
|
|
|
```jsp
|
|
|
<% if (!subtitle.equals("off")) { %>
|
|
|
<section>
|
|
|
<div class="jumbotron j-rid text-center">
|
|
|
<h2><%=title%></h2>
|
|
|
<% if (!subtitle.equals("on")) { %>
|
|
|
<p class="container"><%=subtitle%></p>
|
|
|
<% } %>
|
|
|
</div>
|
|
|
</section>
|
|
|
<% } %>
|
|
|
```
|
|
|
|
|
|
> En el caso anterior propuse 3 formas de utilizar la variable subtitle. Por defecto, la variable subtitle será "off" y no generará el jumbotron. Por otro lado, si seteamos la variable con el texto "on", el jumbotron se generará únicamente con el título de la página de la comunidad. Por último, si seteamos la variable con cualquier otro texto (diferente a "off" y "on"), el jumbotron se generará con un título y un subtítulo. |