Author: xlawrence
Date: Mon Jun 11 12:53:52 2007
New Revision: 17543

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D17543&repname=
=3Djahia
Log:
resolve issue http://www.jahia.net/jira/browse/ATOS-49

Modified:
    branches/JAHIA-5-0-SP-16498-AFD-BRANCH/core/src/java/org/jahia/ajax/sit=
emap/SiteMapAbstractAction.java
    branches/JAHIA-5-0-SP-16498-AFD-BRANCH/core/src/java/org/jahia/data/fie=
lds/JahiaBigTextField.java

Modified: branches/JAHIA-5-0-SP-16498-AFD-BRANCH/core/src/java/org/jahia/aj=
ax/sitemap/SiteMapAbstractAction.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-16498-AFD-BRANCH/core/src/java/org/jahia/ajax/sitemap/SiteMapAbstractActio=
n.java&rev=3D17543&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-16498-AFD-BRANCH/core/src/java/org/jahia/ajax/sit=
emap/SiteMapAbstractAction.java (original)
+++ branches/JAHIA-5-0-SP-16498-AFD-BRANCH/core/src/java/org/jahia/ajax/sit=
emap/SiteMapAbstractAction.java Mon Jun 11 12:53:52 2007
@@ -23,6 +23,8 @@
 import org.jahia.engines.workflow.ActionEntry;
 import org.jahia.engines.workflow.AdvancedWorkflowEngine;
 import org.jahia.engines.workflow.WorkflowHelper;
+import org.jahia.engines.EngineLanguageHelper;
+import org.jahia.engines.JahiaEngine;
 import org.jahia.exceptions.JahiaException;
 import org.jahia.gui.GuiBean;
 import org.jahia.gui.HTMLToolBox;
@@ -162,8 +164,7 @@
                                final int mode) throws JahiaException {
 =

         // Moved page, only show the actual moved page, not where it was p=
reviously
-        if ((page.hasSameParentID() !=3D ContentPage.SAME_PARENT) && (page=
.getParentID(jParams) !=3D parentID)
-                && (page.getID() !=3D parentID) ) {
+        if ((page.getParentID(jParams) !=3D parentID) && (page.getID() !=
=3D parentID)) {
             return;
         }
 =

@@ -192,7 +193,21 @@
             titles =3D page.getTitles(ContentPage.LAST_UPDATED_TITLES);
             opMode =3D EntryLoadRequest.STAGING_WORKFLOW_STATE;
         }
-        String pageTitle1 =3D (String) titles.get(jParams.getLocale().toSt=
ring());
+
+        final Map engineMap =3D (Map) jParams.getSessionState().getAttribu=
te("jahia_session_engineMap");
+        final Locale currentLocale;
+        if (engineMap =3D=3D null) {
+            currentLocale =3D jParams.getLocale();
+
+        } else {
+            EngineLanguageHelper elh =3D (EngineLanguageHelper) engineMap.=
get(JahiaEngine.ENGINE_LANGUAGE_HELPER);
+            if (elh =3D=3D null) {
+                elh =3D new EngineLanguageHelper(jParams.getLocale());
+            }
+            currentLocale =3D elh.getCurrentLocale();
+        }
+
+        String pageTitle1 =3D (String) titles.get(currentLocale.toString()=
);
         final int siteMapTitlesLength =3D Jahia.getSettings().getSiteMapTi=
tlesLength();
         if (pageTitle1 =3D=3D null || pageTitle1.length() =3D=3D 0) {
             pageTitle1 =3D "N.A.";
@@ -203,7 +218,7 @@
         if (! page.isAvailable()) {
             final String labelResourceName =3D "org.jahia.engines.timebase=
dpublishing.timebpstatus." +
             page.getTimeBasedPublishingState() + ".label";
-            pageTitle1 +=3D " (" + JahiaResourceBundle.getEngineResource(l=
abelResourceName, jParams, jParams.getLocale()) + ")";
+            pageTitle1 +=3D " (" + JahiaResourceBundle.getEngineResource(l=
abelResourceName, jParams, currentLocale) + ")";
         }
 =

         if (isLiveMode && "N.A.".equals(pageTitle1)) return;
@@ -212,7 +227,7 @@
         if (moveOp && (String.valueOf(pid).equals(entryPoint))) {
             pageTitle1 +=3D " (" + JahiaResourceBundle.
                     getEngineResource("org.jahia.engines.selectpage.Select=
Page_Engine.insertionPoint.label",
-                            jParams, jParams.getLocale()) + ")";
+                            jParams, currentLocale) + ")";
             item.setAttribute("Disable", "Disable");
         }
 =

@@ -236,7 +251,7 @@
         item.setAttribute("id", String.valueOf(pid));
         item.setAttribute("key", page.getObjectKey().toString());
         item.setAttribute("title", pageTitle1);
-        item.setAttribute("url", getPageURL(jParams, pid, jParams.getLocal=
e().toString()));
+        item.setAttribute("url", getPageURL(jParams, pid, currentLocale.to=
String()));
         item.setAttribute("parentID", String.valueOf(parentID));
 =

         if (! page.getContentPageChilds(currentUser, loadFlags, null, true=
).hasNext()) {
@@ -289,7 +304,8 @@
                         }
                     }
 =

-                    if (languageState =3D=3D null || languageState.intValu=
e() =3D=3D -1) {
+                    final String langTitle =3D (String) titles.get(languag=
eCode);
+                    if (languageState =3D=3D null || languageState.intValu=
e() =3D=3D -1 || langTitle =3D=3D null || langTitle.length() =3D=3D 0) {
                         lang.appendChild(resp.createTextNode("-1"));
                     } else {
                         lang.appendChild(resp.createTextNode(languageState=
.toString()));

Modified: branches/JAHIA-5-0-SP-16498-AFD-BRANCH/core/src/java/org/jahia/da=
ta/fields/JahiaBigTextField.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-16498-AFD-BRANCH/core/src/java/org/jahia/data/fields/JahiaBigTextField.jav=
a&rev=3D17543&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-16498-AFD-BRANCH/core/src/java/org/jahia/data/fie=
lds/JahiaBigTextField.java (original)
+++ branches/JAHIA-5-0-SP-16498-AFD-BRANCH/core/src/java/org/jahia/data/fie=
lds/JahiaBigTextField.java Mon Jun 11 12:53:52 2007
@@ -338,8 +338,6 @@
             final String path =3D buff.append(jParams.getContextPath()).ap=
pend(SERVLET_PATH).toString();
             buff.delete(0, buff.length());
 =

-            logger.debug("path: " + path);
-
             final String mode =3D jParams.getOperationMode();
 =

             final StringTokenizer tokenizer =3D new StringTokenizer(conten=
t, " ");
@@ -351,7 +349,7 @@
                 }
 =

                 final String res;
-                if ((res =3D getURLwithURLKey(path, token, mode, jParams))=
 !=3D null) {
+                if ((res =3D getURLwithURLKey(path, token, mode)) !=3D nul=
l) {
                     content =3D StringUtils.replace(content, token, res);
                 }
             }
@@ -483,7 +481,8 @@
                 token =3D rawToken;
             }
 =

-            if (token.toLowerCase().startsWith("href=3D") && token.length(=
) > 6) {
+            if (token.toLowerCase().startsWith("href=3D") && token.length(=
) > 6 &&
+                    token.toLowerCase().indexOf("javascript:") < 0) {
 =

                 // To know if we have to close the '<a' tag...
                 final boolean close =3D (token.indexOf('>') > -1);
@@ -540,8 +539,9 @@
                 }
                 logger.debug("Link is: " + link);
 =

-                link =3D StringUtils.replace(link, "\"" + processingContex=
t.getContextPath() + SERVLET_PATH, "\"");
-                link =3D StringUtils.replace(link, "'" + processingContext=
.getContextPath() + SERVLET_PATH, "'");
+                link =3D StringUtils.replace(link, "\"" + contextAndServle=
tPath, "\"");
+                link =3D StringUtils.replace(link, "'" + contextAndServlet=
Path, "'");
+                link =3D StringUtils.replace(link, URL_MARKER, "");
 =

                 // All Jahia links are this stage are treated as relative =
URLs
                 if (! link.startsWith("/") && ! link.startsWith("http") &&=
 ! link.startsWith(URL_MARKER)) {
@@ -571,11 +571,9 @@
                 rawResult.append("href=3D\"");
                 displayResult.append("href=3D\"");
 =

-                if (link.toLowerCase().indexOf("http") < 0) {
+                if (link.toLowerCase().indexOf("http:") < 0) {
                     displayResult.append(contextAndServletPath);
-                    if (link.indexOf(URL_MARKER) < 0) {
-                        rawResult.append(URL_MARKER);
-                    }
+                    rawResult.append(URL_MARKER);
 =

                     Integer pageID;
                     if (pid > 0) {
@@ -619,6 +617,13 @@
                 }
                 displayResult.append("\"");
                 rawResult.append(link);
+                if (urlKey !=3D null && urlKey.length() > 0) {
+                    final int index =3D urlKey.indexOf("?");
+                    if (index > -1) {
+                        // Append URL parameters
+                        rawResult.append(urlKey.substring(index));
+                    }
+                }
                 rawResult.append("\"");
 =

                 if (close) {
@@ -638,21 +643,24 @@
                     final int serverNameIndex =3D token.indexOf(serverName=
);
                     logger.debug("image: " + token);
                     if ((token.indexOf("http") > -1 && serverNameIndex > -=
1) ||
-                            token.indexOf("'" + context) > -1) {
+                            (context.length() !=3D 0 && token.indexOf("'" =
+ context) > -1)) {
                         rawResult.append("src=3D'");
                         displayResult.append("src=3D'");
                         if (serverNameIndex > -1) {
                             index =3D token.indexOf(context);
                         }
 =

-                        rawResult.append(URL_MARKER);
-                        displayResult.append(context);
-
                         final String value =3D token.substring(index);
-                        final int index2;
+                        if (!value.startsWith("http://";)) {
+                            rawResult.append(URL_MARKER);
+                            displayResult.append(context);
+                        }
 =

-                        if (!"".equals(context) && token.indexOf("'" + con=
text) > -1) {
+                        final int index2;
+                        if (!"".equals(context) && value.startsWith(contex=
t)) {
                             index2 =3D value.indexOf(context) + context.le=
ngth();
+                        } else if (value.startsWith(URL_MARKER)) {
+                            index2 =3D URL_MARKER.length();
                         } else {
                             index2 =3D 0;
                         }
@@ -671,7 +679,7 @@
                     final int serverNameIndex =3D token.indexOf(serverName=
);
                     logger.debug("image: " + token);
                     if ((token.indexOf("http") > -1 && serverNameIndex > -=
1) ||
-                        token.indexOf(context) > -1) {
+                            token.indexOf(context) > -1) {
                         rawResult.append("src=3D\"");
                         displayResult.append("src=3D\"");
                         if (serverNameIndex > -1) {
@@ -680,13 +688,12 @@
 =

                         final String value =3D token.substring(index);
                         if (!value.startsWith("http://";)) {
-                        rawResult.append(URL_MARKER);
-                        displayResult.append(context);
+                            rawResult.append(URL_MARKER);
+                            displayResult.append(context);
                         }
 =

                         final int index2;
-
-                        if (!"".equals(context) && token.indexOf("\"" + co=
ntext) > -1) {
+                        if (!"".equals(context) && value.startsWith(contex=
t)) {
                             index2 =3D value.indexOf(context) + context.le=
ngth();
                         } else if (value.startsWith(URL_MARKER)) {
                             index2 =3D URL_MARKER.length();
@@ -714,7 +721,6 @@
 =

         result[0] =3D StringUtils.replace(rawResult.toString(), URL_MARKER=
 + contextAndServletPath, URL_MARKER);
         result[1] =3D displayResult.toString();
-        logger.debug("displayResult before: " + result[1]);
         result[1] =3D StringUtils.replace(result[1], contextAndServletPath=
 + contextAndServletPath, contextAndServletPath);
         logger.debug("rawResult: " + result[0]);
         logger.debug("displayResult: " + result[1]);
@@ -751,6 +757,11 @@
         } catch (UnsupportedEncodingException e) {
             urlKey =3D link.substring(link.lastIndexOf('/') + 1);
         }
+
+        final int index =3D urlKey.indexOf("?");
+        if (index > -1) {
+            urlKey =3D urlKey.substring(0, index);
+        }
         logger.debug("urlKey: " + urlKey);
 =

         if (urlKey.length() =3D=3D 0 || Character.isDigit(urlKey.charAt(0)=
)) return -1;
@@ -831,7 +842,7 @@
     protected static String getPID(final String s) {
         logger.debug("Getting PID from: " + s);
         final StringBuffer buff =3D new StringBuffer();
-        final String value;
+        String value;
         final int index;
         if ((index =3D s.indexOf("/pid/")) > -1) {
             value =3D s.substring(index + 5);
@@ -843,6 +854,11 @@
             value =3D s;
         }
 =

+        final int index2 =3D value.indexOf("?");
+        if (index2 > -1) {
+            value =3D value.substring(0, index2);
+        }
+
         if (hasOnlyDigits(value)) {
             return value;
         }
@@ -866,11 +882,19 @@
     protected static String getURLwithURLKey(
             final String path,
             final String rawURL,
-            final String mode,
-            final ProcessingContext jParams) {
+            final String mode) {
         final StringBuffer buff =3D new StringBuffer();
         final String pid =3D rawURL.substring(rawURL.indexOf("/pid/"));
 =

+        final int langIndex =3D rawURL.indexOf("/lang/") + 6;
+        final String langCode;
+        if (langIndex >=3D 6) {
+            final String lang =3D rawURL.substring(langIndex);
+            langCode =3D lang.substring(0, lang.indexOf("/"));
+        } else {
+            langCode =3D null;
+        }
+
         final String urlKey;
         int pageId =3D -1;
         try {
@@ -894,15 +918,30 @@
         } catch (JahiaException e) {
             return null;
         }
+
+        if (langCode !=3D null) {
+            buff.append("/lang/");
+            buff.append(langCode);
+        }
+
         if (! ProcessingContext.NORMAL.equals(mode)) {
             buff.append("/op/").append(mode);
         }
         buff.append("/").append(urlKey);
 =

-        buff.append("\"");
-        final int index =3D rawURL.indexOf(">");
+        final int index =3D rawURL.indexOf("?");
+        final int index2 =3D rawURL.indexOf(">");
         if (index > -1) {
-            buff.append(rawURL.substring(index));
+            if (index2 > -1) {
+                buff.append(rawURL.substring(index, index2));
+            } else {
+                buff.append(rawURL.substring(index));
+            }
+        }
+
+        buff.append("\"");
+        if (index2 > -1) {
+            buff.append(rawURL.substring(index2));
         }
         return buff.toString();
     }

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to