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

Répondre à