diff options
author | Konrad Kolosowski | 2004-06-30 18:28:23 +0000 |
---|---|---|
committer | Konrad Kolosowski | 2004-06-30 18:28:23 +0000 |
commit | f983223ddbc34a4df62e0fee0de82b2f86b7a5cb (patch) | |
tree | 0733ac21944faacb9b1d2196cf51f3d5d15aee42 /org.eclipse.help.webapp | |
parent | a3ee341f6d28ded2556cd974ea3961d138dff06e (diff) | |
download | eclipse.platform.ua-f983223ddbc34a4df62e0fee0de82b2f86b7a5cb.tar.gz eclipse.platform.ua-f983223ddbc34a4df62e0fee0de82b2f86b7a5cb.tar.xz eclipse.platform.ua-f983223ddbc34a4df62e0fee0de82b2f86b7a5cb.zip |
69055 Topics in the infocenter not indexed by Googlev20040630
Diffstat (limited to 'org.eclipse.help.webapp')
5 files changed, 73 insertions, 2 deletions
diff --git a/org.eclipse.help.webapp/index.jsp b/org.eclipse.help.webapp/index.jsp index 379b9b13e..45cfef8bd 100644 --- a/org.eclipse.help.webapp/index.jsp +++ b/org.eclipse.help.webapp/index.jsp @@ -18,7 +18,22 @@ } RequestData data = new RequestData(application,request, response); - if(data.isAdvancedUI()){ + if(data.isBot()){ + TocData tData = new TocData(application,request, response); + LayoutData lData = new LayoutData(application,request, response); +%> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title><%=lData.getWindowTitle()%></title> +</head> +<body> +<% tData.generateLinks(out); %> +</body> +</html> +<% + }else if(data.isAdvancedUI()){ request.getRequestDispatcher("/advanced/index.jsp").forward(request, response); }else{ request.getRequestDispatcher("/basic/index.jsp").forward(request, response); diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/RequestData.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/RequestData.java index 3d3f2d88d..7a9e873cd 100644 --- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/RequestData.java +++ b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/RequestData.java @@ -55,6 +55,10 @@ public class RequestData { return preferences; } + public boolean isBot() { + return UrlUtil.isBot(request); + } + public boolean isGecko() { return UrlUtil.isGecko(request); } diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/TocData.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/TocData.java index 5507e3599..529520851 100644 --- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/TocData.java +++ b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/TocData.java @@ -535,4 +535,47 @@ public class TocData extends ActivitiesData { } return childTopics; } + private void generateTopicLinks(ITopic topic, Writer w, int indent) { + String topicHref = topic.getHref(); + try { + if (indent == 0) + w.write("<b>"); //$NON-NLS-1$ + for (int tab = 0; tab < indent; tab++) { + w.write(" "); //$NON-NLS-1$ + } + if (topicHref != null && topicHref.length() > 0) { + w.write("<a href=\""); //$NON-NLS-1$ + if ('/' == topicHref.charAt(0)) { + w.write("topic"); //$NON-NLS-1$ + } + w.write(topicHref); + w.write("\">"); //$NON-NLS-1$ + w.write(UrlUtil.htmlEncode(topic.getLabel())); + w.write("</a>"); //$NON-NLS-1$ + } else { + w.write(UrlUtil.htmlEncode(topic.getLabel())); + } + w.write("<br>\n"); //$NON-NLS-1$ + if (indent == 0) + w.write("</b>"); //$NON-NLS-1$ + } catch (IOException ioe) { + } + ITopic[] topics = topic.getSubtopics(); + for (int i = 0; i < topics.length; i++) { + generateTopicLinks(topics[i], w, indent + 1); + } + } + + public void generateLinks(Writer out) { + for (int i = 0; i < tocs.length; i++) { + IToc toc = tocs[i]; + ITopic tocTopic = toc.getTopic(null); + generateTopicLinks(tocTopic, out, 0); + ITopic[] topics = toc.getTopics(); + for (int t = 0; t < topics.length; t++) { + generateTopicLinks(topics[t], out, 1); + } + } + + } } diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/UrlUtil.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/UrlUtil.java index 99ffaeb5a..4afb7eecc 100644 --- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/UrlUtil.java +++ b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/UrlUtil.java @@ -120,6 +120,13 @@ public class UrlUtil { return url; } + public static boolean isBot(HttpServletRequest request) { + String agent = request.getHeader("User-Agent").toLowerCase(); //$NON-NLS-1$ + // sample substring Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) + return agent.indexOf("bot") >= 0 || agent.indexOf("crawl") >= 0//$NON-NLS-1$ //$NON-NLS-2$ + || request.getParameter("bot") != null;//$NON-NLS-1$ + } + public static boolean isGecko(HttpServletRequest request) { String agent = request.getHeader("User-Agent").toLowerCase(); //$NON-NLS-1$ // sample substring Gecko/20020508 diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/FramesetFilter.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/FramesetFilter.java index decb8a0ad..88ce43055 100644 --- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/FramesetFilter.java +++ b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/FramesetFilter.java @@ -15,6 +15,8 @@ import java.io.*; import javax.servlet.http.*; +import org.eclipse.help.internal.webapp.data.*; + /** * This class inserts a script for showing the page inside the appropriate * frameset when bookmarked. @@ -32,7 +34,7 @@ public class FramesetFilter implements IFilter { return out; } - if ("/nftopic".equals(req.getServletPath())) { //$NON-NLS-1$ + if ("/nftopic".equals(req.getServletPath()) || UrlUtil.isBot(req)) { //$NON-NLS-1$ return out; } |