<%@ page import="java.net.URLEncoder" %> <%@ include file="/Engine/jsp/System.jsp" %> <%@ include file="/Engine/jsp/Errors.jsp" %> <%@ include file="/Engine/jsp/DbAccess.jsp" %> <%@ include file="/Engine/jsp/Utils.jsp" %> <%@ include file="/Engine/jsp/Strings.jsp" %> <%@ include file="comConfig.jsp" %> <%! // DEFINES final static int MESSAGE_QUERY = 0; final static int ANSWER_QUERY = 1; // SESSION VARIABLES String g_strWebSiteID = null; String g_strWebSiteName = null; // PAGE PARAMETERS String g_strClassID = null; // Identifiant de la rubrique à laquelle appartient le message String g_strClassName = null; // Nom de la rubrique à laquelle appartient le message String g_strMessageID = null; // Identifiant du message à consulter String g_strMessageTitle = null; // Titre du message à consulter String g_strMessageAuthor = null; // Auteur du message String g_strMessageDate = null; // Date d'envoi du message // GLOBAL VARIABLES int g_intQueryID; // Identifiant de la requête pour laquelle on obtient le Resultset String g_strSQLQuery = null; // Requête SQL String g_strMessageBody = null; // Corps du message consulté (récupéré en BDD) // URL pour l'affichage du partenaire String g_strPartnerUrl; /** * Initialise les variables globales à partir des paramètres envoyés à cette page. * */ void InitializeParameters() throws NullPointerException { g_strPartnerUrl = "/RootSites/" + getSubDomainName("agevillage") + "/Communicate/partner.jsp"; // SESSION VARIABLES g_strWebSiteID = (String)g_objSession.getValue( "WebSiteID" ); g_strWebSiteName = (String)g_objSession.getValue( "WebSiteName" ); // class_id et class_name doivent être récupérés en premier. g_strClassID = getMandatoryNotEmptyParameter( "class_id" ); g_strClassName = getMandatoryNotEmptyParameter( "class_name" ); g_strMessageID = getMandatoryNotEmptyParameter( "message_id", "Le message sélectionné ne peut être consulté pour des raisons techniques." ); g_strMessageTitle = getMandatoryNotEmptyParameter( "message_title", "Le message sélectionné ne peut être consulté pour des raisons techniques." ); g_strMessageAuthor = getParameterOrAlternative( "message_author", "" ); g_strMessageDate = getMandatoryNotEmptyParameter( "message_date", "Le message sélectionné ne peut être consulté pour des raisons techniques." ); } /** * Callback utilisé par la méthode executeDbQuery() de DbAccess.jsp. * * @param p_objResultset Objet Resultset contenant le résultat de la requête * @param p_objResponse Objet Response pour écrire dans la page */ void queryCallBack( ResultSet p_objResultset ) throws SQLException { assert( p_objResultset, "Méthode queryCallBack : Resultset null." ); try { if( g_intQueryID == MESSAGE_QUERY ) { if( p_objResultset.next() ) { g_strMessageBody = replaceSubString( p_objResultset.getString( "BODY" ), "\n", "
" ); } } else if( g_intQueryID == ANSWER_QUERY ) { String l_strTitre; while( p_objResultset.next() ) { l_strTitre = p_objResultset.getString( "TITLE" ); if( l_strTitre.length() > 1 ) { l_strTitre += ", "; } g_objOut.println( "
Notre réponse: " + l_strTitre + "envoyée le " + p_objResultset.getString( "SEND_DATE" ) + "
" ); g_objOut.println( "
" + replaceSubString( p_objResultset.getString( "BODY" ), "\n", "
") + "
" ); } } } catch( SQLException e ) { throw new SQLException( "
Méthode queryCallBack : Erreur lors de l'utilisation du resultset." ); } catch( IOException e ) { } } %> <% // Initialisation des variables globales avec les paramètres envoyés à la page try { InitializeParameters(); session.setAttribute("wha",new Integer(-1)); } catch ( NullPointerException e ) { String l_strErrorMessage = getMandatoryParameterErrorMessage(); if( l_strErrorMessage == null ) { handleError( e, "Erreur lors de la récupération du paramètre obligatoire " + getMandatoryParameterName() ); } else { redirectError( l_strErrorMessage, "index.jsp?class_id=" + g_strClassID + "&class_name=" + g_strClassName ); } } %> <% String titre = "Communiquer"; %>
Communiquer : <%= g_strClassName %>
<% if ( !g_strWebSiteName.equals("fnadepa")) { %>
<% } %>
<%= g_strMessageTitle %>
<% if( g_strMessageAuthor.length() > 1 ) { out.println( "de " + g_strMessageAuthor + "" ); } %> envoyé le <%= g_strMessageDate %>
<% try { // Connection à la BDD initializeDBConnection(); // Récupération et affichage du corps du message g_intQueryID = MESSAGE_QUERY; g_strSQLQuery = "Select BODY FROM " + g_strMessagesTable + " where ID=" + g_strMessageID; //out.print( g_strSQLQuery ); executeDbQuery( g_strSQLQuery ); g_objOut.println( g_strMessageBody ); %>
<%-- Fin du message --%>
<%-- Fin du messagehead --%> <%-- Affichage du formulaire d'envoi de message --%>
Cliquez ici pour répondre à ce message...
<%-- Récupération et affichage éventuel de la réponse du site --%> <% g_intQueryID = ANSWER_QUERY; g_strSQLQuery = "Select TITLE,BODY,to_char(SEND_DATE, 'DD monthYYYY', 'nls_date_language = French') as SEND_DATE" + " from " + g_strMessagesTable + " where AUTHOR_FIRSTNAME = '14235529'" + " and ID_PARENT=" + g_strMessageID + " and VALIDATED=1" + " order by SEND_DATE desc"; //out.print(g_strSQLQuery); executeDbQuery( g_strSQLQuery ); } catch( SQLException e ) { handleError( e, "Requête SQL : " + g_strSQLQuery + "
" ); } catch( Exception e ) { handleError( e, "" ); } %> <% String l_strHeader = URLEncoder.encode( "Les réponses des visiteurs :" ); String l_strParameters = "listMessages.jsp?class_id=" + g_strClassID + "&class_name=" + g_strClassName + "&message_id=" + g_strMessageID + "&header=" + l_strHeader; %>