Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKonrad Kolosowski2004-06-30 18:28:23 +0000
committerKonrad Kolosowski2004-06-30 18:28:23 +0000
commitf983223ddbc34a4df62e0fee0de82b2f86b7a5cb (patch)
tree0733ac21944faacb9b1d2196cf51f3d5d15aee42 /org.eclipse.help.webapp
parenta3ee341f6d28ded2556cd974ea3961d138dff06e (diff)
downloadeclipse.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')
-rw-r--r--org.eclipse.help.webapp/index.jsp17
-rw-r--r--org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/RequestData.java4
-rw-r--r--org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/TocData.java43
-rw-r--r--org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/UrlUtil.java7
-rw-r--r--org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/FramesetFilter.java4
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("&nbsp;&nbsp;"); //$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;
}

Back to the top