Return to list

Référencement sitemap.xml

avatar provided by gravatar.com pierreNKV | Oct 17, 2008 5:24:02 PM

Référencement sitemap.xml

Bonjour,

Y a-t-il un plugin développé ou en cours concernant les sitemaps pour le référencement?

j'ai actuellement mis en place un script pour cela, mais j'aimerai avoir quelque chose de paramétrable et d'inclus dans l'indexation par exemple

[code]
<%@ page import="fr.paris.lutece.util.xml.XmlUtil" %>
<%@ page import="fr.paris.lutece.portal.business.page.Page" %>
<%@ page import="fr.paris.lutece.portal.business.page.PageHome" %>
<%@ page import="javax.servlet.http.HttpServletRequest" %>
<%@ page import="java.lang.StringBuffer" %>
<%@ page import="java.lang.Double" %>
<%@ page import="fr.paris.lutece.util.sql.DAOUtil" %>
<%@ page import="java.io.Writer" %>
<%@ page import="java.io.BufferedWriter" %>
<%@ page import="java.io.FileOutputStream" %>
<%@ page import="java.io.OutputStreamWriter" %>

<%!
	public void findPages( StringBuffer strXmlArborescence, int nPageId, int nLevel, HttpServletRequest request )
	{
		Page page = PageHome.getPage( nPageId );
		Double priority = new Double(1)/(nLevel+1);
		if ( page.isVisible( request ) )
		{
			XmlUtil.beginElement( strXmlArborescence, "url" );
			XmlUtil.addElement( strXmlArborescence, "loc", "http://www.XXX.fr/jsp/site/Portal.jsp?page_id="+page.getId());
			XmlUtil.addElement( strXmlArborescence, "priority", priority.toString() );
			XmlUtil.addElement( strXmlArborescence, "lastmod", pageModificationDate(nPageId) );
			XmlUtil.addElement( strXmlArborescence, "changefreq", "monthly" );
			XmlUtil.endElement( strXmlArborescence, "url" );

			finddocuments(strXmlArborescence, page.getId(), priority, request );

			for ( Page pageChild : PageHome.getChildPages( nPageId ) )
			{
			findPages( strXmlArborescence, pageChild.getId(  ), nLevel + 1, request );
			}
		}
	}

	public String pageModificationDate( int nPageId)
	{
		DAOUtil daoUtil = new DAOUtil( "select date_update from core_page where core_page.id_page = ?" );
	        daoUtil.setInt( 1, nPageId );
        	daoUtil.executeQuery(  );
		
		if ( daoUtil.next(  ) )
		{
			return daoUtil.getString( 1 ).substring(0,10);
		}
		return "2004-12-23";
	}

	public void finddocuments( StringBuffer strXmlArborescence, int nPageId, Double priority, HttpServletRequest request )
	{
		DAOUtil daoUtil = new DAOUtil( "select document_published.id_document, core_portlet.id_portlet , core_portlet.date_update from core_portlet, document_published where core_portlet.id_portlet_type = \"DOCUMENT_PORTLET\" and core_portlet.id_portlet = document_published.id_portlet and core_portlet.id_page = ?" );
	        daoUtil.setInt( 1, nPageId );
        	daoUtil.executeQuery(  );

		while ( daoUtil.next(  ) )
		{
			XmlUtil.beginElement( strXmlArborescence, "url" );
			XmlUtil.addElement( strXmlArborescence, "loc", "http://www.XXX.fr/jsp/site/Portal.jsp?document_id="+daoUtil.getInt( 1 )+"&portlet_id="+daoUtil.getInt( 2 ));
			XmlUtil.addElement( strXmlArborescence, "priority", priority.toString() );
			XmlUtil.addElement( strXmlArborescence, "lastmod", daoUtil.getString( 3 ).substring(0,10) );
			XmlUtil.addElement( strXmlArborescence, "changefreq", "yearly" );
			XmlUtil.endElement( strXmlArborescence, "url" );
		}

        	daoUtil.free(  );
	}
%>
<%
	StringBuffer strArborescenceXml = new StringBuffer(  );
	strArborescenceXml.append( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" );
	strArborescenceXml.append( "<urlset xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\t xsi:schemaLocation=\"http://www.sitemaps.org/schemas/sitemap/0.9\n\t http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd\"\n\t xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n" );
	findPages( strArborescenceXml, 1, 0, request );
	strArborescenceXml.append( "</urlset>" );

	Writer output = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("/var/lib/tomcat5.5/webapps/XXX/sitemap.xml"), "UTF8"));
	try {
	//FileWriter always assumes default encoding is OK!
		output.write( strArborescenceXml.toString(  ));
	}
	finally {
		output.close();
	}
%>
<%="fini"%>[/code]

Vote Score 164

Share

Report

Commentaires (3 )

Posted by : PLE | 26/10/2008 23:49:05
Bonjour Pierre, Voici le nouveau plugin sitemap packagé avec son daemon et son fichier de config. http://dev.lutece.paris.fr/plugins/plugin-sitemap/nightly_build/ Attention dans la JSP ci-dessus si tu l'utilises, il manque un daoUtil.free() au niveau la ligne 44. Merci de ta contribution. Pierre
 
Posted by : pierreNKV | 20/10/2008 15:15:03
le code est fait à moins de 90% car: 1/ il faut le packager (5%) 2/ l'intégrer au demon de lutéce (2%) 3/ aller chercher les paramétre atravers la classes de paramettre de lutéce (2%) 4/ prévoir le référencement des Xpages en fonction des plugins existant(10%) 5/ l'intégrer au coeur de lutéce (10%) j'estime donc qu'un plugin de ce type est prêt à 70%
 
Posted by : lutece | 20/10/2008 13:45:27
Bonjour, C'est une fonction très intéressante, il faudrait juste la packager dans un beau plugin :wink: . Avis aux amateurs. Le code est apparemment déjà fait à 90%.
 

 Top of the page

Return to list