Do It The jAPS Way
Copyright © 2010 Tzente s.r.l.
Legal Notice
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the Appendix entitled "GNU Free Documentation License".
2011-02-22
| Diario delle Revisioni | ||
|---|---|---|
| Revisione 0.9 | 2011-02-22 | MEM |
|
Revisione per jAPS 2.2.0 version eversione plugin 1.3. | ||
| Revisione 0.8 | 2010-02-24 | GC |
|
Revisione per jAPS versione 2.0.10, e versione plugin 1.2. | ||
| Revisione 0.7 | 2009-10-13 | GC |
|
Revisione per jAPS versione 2.0.8, e versione plugin 1.1. | ||
| Revisione 0.6 | 2009-09-14 | GC |
|
Revisione pre rilascio. | ||
| Revisione 0.5 | 2009-07-06 | RB |
|
Cambio struttura capitoli | ||
| Revisione 0.4 | 2009-07-01 | RB |
|
Aggiunto tabella riassuntiva caratteristiche plugin come richiesto da standard. Modificato impaginazione script db | ||
| Revisione 0.3 | 2009-06-22 | RB |
|
Cambio PROJECT_NAME in mioportale utilizzo del tag filename | ||
| Revisione 0.2 | 2009-06-22 | RB |
|
Seconda Versione docbook | ||
Estratto
Lo scopo di questo documento è quello di fornire una descrizione completa della struttura del Plugin “jpcalendar”.
Sommario
Lista delle Tabelle
Lista degli Esempi
Lo scopo di questo documento è quello di fornire una descrizione completa della struttura del Plugin “jpcalendar”.
Questo documento è destinato a chi intende conoscere le funzionalità del jAPSPlugin “jpcalendar”, e sta prendendo in considerazione la eventuale integrazione in un Ambiente di Produzione già funzionante o nel proprio Ambiente di Sviluppo (Progetto in IDE Eclipse).
Il documento è indirizzato sia a Sistemisti (responsabili di installazioni di Applicazioni su base jAPS2) che a Java Developers (con una conoscenza base del Framework jAPS2).
Per poter utilizzare efficacemente le informazioni contenute in questo documento, occorre un po' di esperienza su alcune tecnologie del web base: la piattaforma Java, gli strumenti di sviluppo Eclipse, il servlet engine Apache Tomcat, il database PostgreSQL, e del Framework jAPS2.
Ulteriori informazioni possono essere richieste attraverso la mailing list ufficiale Google Group "japs-platform".
Per mandare un messaggio ai membri della lista, invia una mail a <japs-platform@googlegroups.com>.
È inoltre possibile consultare la documentazione presente in:
Sommario
Il Plugin jpcalendar visualizza un calendario mensile. I giorni del mese vengono visualizzati con i seguenti criteri:
la data odierna viene visualizzata in formato bold
i giorni senza eventi sono visualizzati in formato normale
i giorni con eventi sono visualizzati in formato sottolineato
Questi giorni puntano alla pagina preposta alla visualizzazione degli eventi delle giornata selezionata.
data odierna
Se la data odierna ha degli eventi essa verrà visualizzata in formato bold e sottolineato
Tabella 2.1. Riassunto delle caratteristiche
| Codice | Nome | Tipo | Versione del Plugin | Versione di jAPS 2.0 entando |
|---|---|---|---|---|
| jpcalendar | Calendar | PurePlugin | 1.3 | 2.2.0 - |
| jpcalendar | Calendar | PurePlugin | 1.2 | 2.0.8 - 2.0.10 |
| jpcalendar | Calendar | PurePlugin | 1.1 | 2.0.8 |
Sommario
Il plugin ha la caratteristica di PurePlugin, la sua installazione non modifica nessuna funzionalità presente nel sistema. Il modulo presenta una serie di interfacce per il Front-End, erogabili attraverso la Showlet External Framework. Tali interfacce non contengono nessun elemento di presentazione per consentirne la vestizione in una qualunque istanza specifica di jAPS 2.0 entando.
Il pacchetto è composto dai seguenti componenti:
- Readme
- Contiene una breve descrizione del Plugin e la licenza
- doc
-
Nella directory
docè presente la documentazione del Plugin - src/sql
-
La directory
src/sqlcontiene gli script SQL da eseguire nel database del proprio portale - src/java
-
La directory
src/javacontiene le sorgenti java complete e i test jUnit del Plugin - src/webapp
-
Nella directory
src/webappsono presenti i file da integrare nel proprio portale
Le successive attività sono da eseguire nell'applicazione a freddo, successivamente all'arresto del container.
Per eseguire l'installazione in una applicazione Web, da adesso in poi, chiameremo il nostro nuovo portale col nome di mioportale ,
in produzione basata sulla versione di jAPS 2.0 entando dichiarata compatibile con il plugin, i passi da eseguire sono i seguenti:
Copiare il contenuto della directory
src/webapp/WEB-INF/libdel pacchetto dato in dotazione, all'interno della directorymioportale/WebContent/WEB-INF/lib/in produzione.Copiare il contenuto della directory
src/webapp/WEB-INF/pluginsdel pacchetto dato in dotazione, all'interno della directorymioportale/WebContent/WEB-INF/plugins/in produzione. Creare la directorypluginsse non è presente.Dopo aver modificato i parametri CONTENT_TYPE_ID, NOME_ATTRIBUTO_DATA_INIZIO e NOME_ATTRIBUTO_DATA_FINE, secondo le necessità, ed aver verificato il valore del campo version (deve essere uguale al valore di configVersion dei systemParams, lo script è stato scritto assumendo come versione production), eseguire le query contenute nel file
portScript.sql(contenuto nella directorysrc/sqldel pacchetto dato in dotazione) nel proprio dbport, in una configurazione standard il database a nomemioportalePort.
Per eseguire l'installazione in un progetto Eclipse basato sulla versione di jAPS 2.0 entando dichiarata compatibile con il plugin,
i passi da eseguire sono i seguenti (da adesso in poi, chiameremo il nostro nuovo progetto col nome di mioprogetto) :
Copiare il contenuto della directory
src/webapp/WEB-INF/pluginsdel pacchetto dato in dotazione, all'interno della directorymioprogetto/WebContent/WEB-INF/plugins/.Dopo aver modificato i parametri CONTENT_TYPE_ID, NOME_ATTRIBUTO_DATA_INIZIO e NOME_ATTRIBUTO_DATA_FINE, secondo le necessità, ed aver verificato il valore del campo version (deve essere uguale al valore di configVersion dei systemParams, lo script è stato scritto assumendo come versione production), eseguire le query contenute nel file
portScript.sql(contenuto nella directorysrc/sqldel pacchetto dato in dotazione) nel proprio dbport, in una configurazione standard il database a nomemioprogettoPort.Eseguire i task contenuti nel file
portTestScript.sql(contenuto nella directorysrc/sqldel pacchetto dato in dotazione) nel proprio dbportdi test , in una configurazione standard il database a nomemioprogettotestPort.Copiare il contenuto della directory
src/java/main/com/agiletec/plugins/nella directorymioprogetto/src/com/agiletec/plugins/del proprio progetto, (creare la directorypluginsse non esiste).Copiare il contenuto della directory
src/java/test/test/com/agiletec/plugins/nella directorymioprogetto/src/test/com/agiletec/plugins/del proprio progetto, (creare la directorypluginsse non esiste).
Nei prossimi paragrafi vedremmo i passi di configurazione del plugin.
Configurare opportunamente un contentType (DB nomePortalePort, tabella sysconfig, item 'contentTypes') contenente 2 attributi di tipo Date, per la data di inizio e per quella di fine.
Modificare opportunamente la seguente query in relazione al contentType inserito (vedi punto precedente) ed eseguirla nel DB nomeportalePort oppure editare direttamente la configurazione sul db
INSERT INTO sysconfig (version, item, descr, config)
VALUES ('production', 'jpcalendar_Config', 'Configurazione Calendario',
'<calendarConfig>
<contentType code="<CONTENT_TYPE_ID>" />
<dateAttributes>
<start name="<NOME_ATTRIBUTO_DATA_INIZIO>" />
<end name="<NOME_ATTRIBUTO_DATA_FINE>" />
</dateAttributes>
</calendarConfig>');
Esempio 4.1. Esempio di configurazione
Supponiamo di avere all'interno del nostro portale il seguente contentType
<contenttype typecode="EVN" typedescr="Evento" viewpage="newsview"
listmodel="12" defaultmodel="2">
<attributes>
<attribute name="DataInizio" attributetype="Date" indexingtype="text"
searcheable="true" required="true" />
<attribute name="DataFine" attributetype="Date" indexingtype="text"
searcheable="true" required="true" />
<attribute name="Luogo" attributetype="Longtext" indexingtype="text"
searcheable="true"/>
<attribute name="Oggetto" attributetype="Hypertext" indexingtype="text"
searcheable="true"/>
<attribute name="CorpoTesto" attributetype="Hypertext"
indexingtype="text" searcheable="true"/>
<attribute name="Immagine" attributetype="Image"/>
<list name="ListaLinkCorrelati" attributetype="Monolist"
nestedtype="Link"/>
<list name="ListaAllegati" attributetype="Monolist"
nestedtype="Attach"/>
</attributes>
</contenttype>
La query sarà dunque:
INSERT INTO sysconfig (version, item, descr, config)
VALUES ('production', 'jpcalendar_Config', 'Configurazione Calendario',
'<calendarConfig>
<contentType code="EVN" />
<dateAttributes>
<start name="DataInizio" />
<end name="DataFine" />
</dateAttributes>
</calendarConfig>');
Nella tabella showletcatalog del database nomeportalePort, creare i record delle showlet.
INSERT INTO showletcatalog(
code, titles, parameters, plugincode,
parenttypecode, defaultconfig, locked)
VALUES ('jpcalendar_calendar', '<?xml version="1.0" encoding="UTF-8"?>
<properties>
<property key="en">Calendar</property>
<property key="it">Calendario</property>
</properties>', NULL, 'jpcalendar', NULL, NULL, 1);
INSERT INTO showletcatalog(
code, titles, parameters, plugincode,
parenttypecode, defaultconfig, locked)
VALUES ('jpcalendar_dailyEvents', '<?xml version="1.0" encoding="UTF-8"?>
<properties>
<property key="en">Events of the Day</property>
<property key="it">Eventi del giorno</property>
</properties>', NULL, 'jpcalendar', NULL, NULL, 1);
Per il funzionamento del plugin jpcalendar è necessario creare una pagina contentente la showlet jpcalendar_calendar e un altra pagina contenente la showlet jpcalendar_dailyEvents. La showlet jpcalendar_calendar deve essere opportunamente modificata:
Esempio 4.2. Esempio di modifica della showlet jpcalendar_calendar.jsp
nel file originale jpcalendar_calendar.jsp, modificare la riga
<c:if test="${giorno.hasEvents}">
<a href="<wp:url page="codice_pagina_eventi_del_giorno" >...
In:
<c:if test="${giorno.hasEvents}"><a href="<wp:url page="listaEventi" >
La pagina listaEventi dovrà avere al suo interno la showlet Events of the Day
(jpcalendar_dailyEvents.jsp).
Vanno inoltre eventualmente personalizzate le etichette presenti nelle jsp, utilizzate coi tag “wp:i18n”.
Nella riga
<wp:content contentId="${content}" modelId="XX"/>
della pagina Events of the Day è necessario configurare l'opportuno modelId (XX) per una lista di eventi.
