OpenCms è 1 content management system veramente ben fatto, è basato su jsp anziche i soliti csm basati su php x cui risulta molto + sicuro, ha 1 sito con le API x tutte le sue classi e secondo me è anche abbastanza semplice da usare!
prima di tutto lo trovate da scaricare qui (l'ultima versione che io ho usato è la 7.0.5):
http://www.opencms.org/en/download/opencms.htmlqui trovate il forum:
http://www.opencms-forum.de/opencms-forum/indexqui trovate il wiki:
http://www.opencms-wiki.org/Main_Pagequi trovate le API:
http://files.opencms.org/javadoc/core/overview-summary.htmlInstallazionePer installare opencms avete bisogno di 1 db (consiglio il solito MySql) e Tomcat (non avviandolo da eclipse, tomcat parte da: cartella di "tomcat.... \bin\startup.bat")
- copiate il file .war contenuto nello zip di opencms in tomcat sotto la cartella webapps
- avviate tomcat
- avviate internet con indirizzo
http://localhost:8580/opencms/setup/ (x il valore corretto da assegnare a localhost vedete in base alle vostra impostazioni)
- seguite le istruzioni del wizard per fare l'installazione
a questo punto avrete installato openCms, l'indirizzo x accedere è:
http://localhost:8580/opencms/opencms/system/login/user: Admin pw: admin
Vediamo l'area di lavoro:in alto a sinistra dal tendino potete scegliere tra "offline" e "online", questo vi permette di scegliere appunto tra le 2 versioni del sito, logicamente le modifiche le potete apportare solo alla versione offline e per poterle vedere su quelle online dovete selezionare "publish";
Site invece permette di spostarsi tra "/" e "/sites/default/":
- "/" = template, element, cioè tutte le parti che compongono le pagine del sito
- "/sites/default/" = pagine e cartelle di cui è effettivamente composto il sito
Viev permette di spostarsi tra "Explorer" dove troviamo le pagine per la creazione/navigazione del sito e "Administratoin" per la gestione del DB, Moduli ecc...
Preferences mostra diverse opzioni tra cui ad es la lingua.
Iniziamo a lavorare:nel pannello Administration create 1 nuovo modulo, e (nella parte in basso) fategli creare anche tutte le cartelle.
Adesso sotto la vista Explorer, nel percorso /system/modules/ avrete la cartella con il vostro modulo appena creato!
sotto "templates" potete creare...si proprio i template selezionando new, selezionate jsp, inserite il nome.jsp , potete togliere il check da "Edit property...".
Per poter modificare questo nuovo template potete clikkare con il destro sull'icona jsp, Edit sourcecode....buona fantasia!
import necessarie:
- Codice:
-
<%@ page session="false" import="org.opencms.jsp.*" %>
<%@ page session="false" import="org.opencms.main.*"%>
<%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms" %>
immagini, css, swf andranno messe invece nella cartella "/vostromodulo/resources"
dal template si accede a queste con:
- Codice:
-
href="<cms:link>../resources/nomecss.css</cms:link>"
altre parti come ad es. i menu, header, footer, body vengono invece messi nella cartella "/vostromodulo/elements" e si richiamano dal template con:
- Codice:
-
<cms:include page="../elements/footer.jsp" />
oppure
<cms:include page="../elements/menu.jsp">
<cms:param name="folder">chisiamo</cms:param>
</cms:include>
il secondo permette di passare 1 parametro
per poter modificare i contenuti della pagina...in realtà la cosa + utile dei cms dovete inserire nella head:
- Codice:
-
<cms:editable />
e nell'include dell'element che vogliamo rendere editabile:
<cms:include element="corpo" editable="true"/>
sotto "resources" si mettono immagini, css, swf, ecc..., per caricarle potete usare il tasto upload.
Sotto "elements" si mettono invece parti aggiuntive come possono essere header, footer, menu, bottoni ecc...
anche questi li creiamo come pagine jsp e dobbiamo importare:
- Codice:
-
<%@ page session="false" import="org.opencms.jsp.*" %>
<%@ page session="false" import="org.opencms.main.*"%>
<%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms" %>
Se negli element vogliamo inserire 1 link interno o 1 immagine o ... usiamo:
- Codice:
-
link:
<%out.println("<a href=\""+cms.link("/index.html")+"\">Home</a>");%>
immagine:
<%out.println("<img src='"+cms.link("../resources/img/freccia_livello1.gif")+"'/>");%>
Questi che abbiamo visto sono gli elementi che costituiscono le pagine, per creare invece le pagine dobbiamo andare sulla sezione "Site":/sites/default/
qui possiamo creare pagine o cartelle, le pagine le creiamo come "Page with free text".
possiamo ad es creare 1 pagina home.html, oppure se vogliamo fare 1 menu possiamo creare diverse cartelle, la navigazione su openCms è strutturata infatti x cartelle.
es:
sitoHome page
Menu left:
- A
- B
- C
disposizione su openCmshome.html
[folder A] --(contiene)--> A.html
[folder B] --(contiene)--> B.html
[folder C] --(contiene)--> C.html
creando la pagina abbiamo poi la possibilità di assegnare ad essa 1 template, ed editando le "Property of new file" possiamo aggiungere il "Navigation Text" (il nome che vedremo nel menù ad es.) ed assegnargli 1 posizione (first position, last position, prima di, dopo di).
Clickando sulla pagina la possiamo vedere, altrimenti selezinando l'icona possiamo andare su "Edit page" e modificarla. Se nella pagina abbiamo 1 element in cui avevamo indicato l'opzione
editable="true" vedremo sulla versione offline del sito in corrispondenza dell'element 1 simbolino tipo "tiro a segno" clickando su questo possiamo andare a modificarne il contenuto scegliendo se farlo da sorgente o da foglio tipo "word"... molto comodo!
Classi base x fare 1 po di tutto su openCms: - Codice:
-
org.opencms.jsp.CmsJspActionElement cms = new CmsJspActionElement(pageContext, request, response);
CmsJspNavElement element = cms.getNavigation().getNavigationForResource();
poi grazie a "element" possiamo recuperare moltissimi dati:
es.
il livello della cartella in cui stiamo navigando (ad es. x i sottomenù)
- Codice:
-
int livello = element.getNavTreeLevel();
il "Navigation Text" della pagina in cui ci troviamo
- Codice:
-
element.getNavText();
il link alla pagina in cui ci troviamo
- Codice:
-
element.getResourceName() + element.getFileName().substring(0,element.getFileName().length()-1) + ".html"
tutta la mappa del sito
- Codice:
-
java.util.List list = cms.getNavigation().getSiteNavigation();