r1143 - in xwiki/trunk/src/main/java/com/xpn/xwiki: . doc store web

Ludovic Dubost ludovic at users.forge.objectweb.org
Sat Aug 12 10:35:56 CEST 2006


Author: ludovic
Date: 2006-08-12 10:35:55 +0200 (Sat, 12 Aug 2006)
New Revision: 1143

Modified:
   xwiki/trunk/src/main/java/com/xpn/xwiki/XWiki.java
   xwiki/trunk/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java
   xwiki/trunk/src/main/java/com/xpn/xwiki/store/XWikiHibernateStore.java
   xwiki/trunk/src/main/java/com/xpn/xwiki/web/XWikiServletURLFactory.java
Log:
Fixes allowing to use a skin from a different hosted wiki

Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/XWiki.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/XWiki.java	2006-08-11 19:24:38 UTC (rev 1142)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/XWiki.java	2006-08-12 08:35:55 UTC (rev 1143)
@@ -1102,7 +1102,7 @@
                 if (object != null) {
                     String content = object.getStringValue(filename);
                     if ((content != null) && (!content.equals(""))) {
-                        URL url = urlf.createSkinURL(filename, doc.getWeb(), doc.getName(), context);
+                        URL url = urlf.createSkinURL(filename, doc.getWeb(), doc.getName(), doc.getDatabase(), context);
                         return urlf.getURL(url, context);
 
                     }
@@ -1115,7 +1115,7 @@
                 attachment = doc.getAttachment(shortname);
 
                 if (attachment != null) {
-                    URL url = urlf.createSkinURL(filename, doc.getWeb(), doc.getName(), context);
+                    URL url = urlf.createSkinURL(filename, doc.getWeb(), doc.getName(), doc.getDatabase(), context);
                     return urlf.getURL(url, context);
                 }
             }
@@ -3830,6 +3830,6 @@
         BaseClass bclass = context.getWiki().getClass(className, context);
         BaseObject newobject = (BaseObject) bclass.fromMap(map, context);
         return newobject;
-    }    
+    }
 }
 

Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java	2006-08-11 19:24:38 UTC (rev 1142)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java	2006-08-12 08:35:55 UTC (rev 1143)
@@ -1203,6 +1203,7 @@
             // This should not happen
         }
 
+        doc.setDatabase(getDatabase());
         doc.setRCSVersion(getRCSVersion());
         doc.setDocumentArchive(getDocumentArchive());
         doc.setAuthor(getAuthor());

Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/store/XWikiHibernateStore.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/store/XWikiHibernateStore.java	2006-08-11 19:24:38 UTC (rev 1142)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/store/XWikiHibernateStore.java	2006-08-12 08:35:55 UTC (rev 1143)
@@ -341,6 +341,7 @@
 
             try {
                 session.load(doc, new Long(doc.getId()));
+                doc.setDatabase(context.getDatabase());
                 doc.setNew(false);
             } catch (ObjectNotFoundException e)
             { // No document

Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/web/XWikiServletURLFactory.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/web/XWikiServletURLFactory.java	2006-08-11 19:24:38 UTC (rev 1142)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/web/XWikiServletURLFactory.java	2006-08-12 08:35:55 UTC (rev 1143)
@@ -115,15 +115,21 @@
         if (xwikidb==null)
             return serverURL;
 
-        if (xwikidb.equals(context.getOriginalDatabase()))
+        if (xwikidb.equals(context.getOriginalDatabase())) {
             return serverURL;
-        else {
-            URL url = context.getWiki().getServerURL(xwikidb, context);
-            if (url==null)
-             return serverURL;
-            else
-             return url;
         }
+
+        if (xwikidb.equals("xwiki")) {
+            String surl = context.getWiki().Param("xwiki.home", "");
+            if (!surl.equals(""))
+                return new URL(surl);
+        }
+
+        URL url = context.getWiki().getServerURL(xwikidb, context);
+        if (url==null)
+            return serverURL;
+        else
+            return url;
     }
 
     public URL createURL(String web, String name, String action, boolean redirect, XWikiContext context) {





More information about the Xwiki-notifications mailing list