Salut Thomas,
Tu peux faire ça via un eventlistner. Il faut
juste créer un fichier eventlistener.jsp que tu
pose à la racine de tes templates. Vouci un
exemple, avec une date par défaut si rien n'est rentré:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.*" %>
<%@ page import="org.jahia.content.*" %>
<%@ page import="org.jahia.data.*" %>
<%@ page import="org.jahia.data.containers.*" %>
<%@ page import="org.jahia.data.fields.*" %>
<%@ page import="org.jahia.data.events.*" %>
<%@ page import="org.jahia.engines.*" %>
<%@ page import="org.jahia.engines.categories.*" %>
<%@ page import="org.jahia.engines.selectpage.*" %>
<%@ page import="org.jahia.engines.shared.*" %>
<%@ page import="org.jahia.params.*" %>
<%@ page import="org.jahia.registries.*" %>
<%@ page import="org.jahia.services.categories.*" %>
<%@ page import="org.jahia.services.containers.*" %>
<%@ page import="org.jahia.services.database.*" %>
<%@ page import="org.jahia.services.fields.*" %>
<%@ page import="org.jahia.services.pages.*" %>
<%@ page import="org.jahia.services.version.*" %>
<jsp:useBean id="eventsToTrap" class="java.util.Vector" scope="application"/>
<%// loads the events to trap
if (eventsToTrap.size() == 0) {
eventsToTrap.add("addContainerEngineAfterInit");
eventsToTrap.add("addContainerEngineBeforeSave");
eventsToTrap.add("containerAdded");
eventsToTrap.add("containerUpdated");
}
String eventName = (String) request.getAttribute("eventName");
JahiaEvent jahiaEvent = (JahiaEvent) request.getAttribute("jahiaEvent");
ParamBean jParams = jahiaEvent.getParams();
if ( eventsToTrap.contains(eventName)){
HashMap engineMap = (HashMap)
jParams.getSession().getAttribute( "jahia_session_engineMap" );
if (engineMap == null) { return; }
String languageCode = (String)engineMap.get("languageCode");
HashSet updatedFields = (HashSet)engineMap.get("updated.fields");
if (updatedFields == null) {
updatedFields = new HashSet();
engineMap.put("updated.fields", updatedFields);
}
JahiaContainer theContainer = (JahiaContainer)jahiaEvent.getObject();
if ( "news".equals(theContainer.getDefinition().getName()) ){
if ( "addContainerEngineAfterInit".equals(eventName) ) {
JahiaField theField = theContainer.getField("startDate");
if (theField.getObject() == null) {
Calendar cal =
Calendar.getInstance(TimeZone.getTimeZone("UTC"));
long now = cal.getTime().getTime();
String nowStr = String.valueOf(now);
theField.setObject(nowStr);
updatedFields.add(new Integer(theField.getID()));
}
}
}
}
%>
At 14.03.2006 14:06, you wrote:
Bonjour,
Est-il possible d'affecter une valeur par défaut
à un champ date ? J'ai fait des essais mais cela n'a pas l'air de fonctionner :
<content:textField name="date"
display="false" valueId="date"
defaultValue="<%= String.valueOf(new java.util.Date().getTime()) %>" />
<content:textField name="date"
display="false" valueId="date" defaultValue="31/12/2999" />
Je définis mon champ comme ceci :
<content:declareField
name = "date"
title = "Date de publication"
titleKey = "c.dateDePublication"
bundleKey = "<%= resBundleID %>"
type = "Date"
value="<jahia_calendar[dd/mm/yyyy]>"
/>
Merci.
Thomas
-------=[ pvollenweider at jahia dot com ]=---------
Jahia : A collaborative source CMS and Portal Server
www.jahia.org Community and product web site
www.jahia.com Commercial services company