Changeset 26232

Show
Ignore:
Timestamp:
20.09.2012 14:39:43 (7 years ago)
Author:
sjm84
Message:

CL names can now be specified with either dots or slashes in URLs e.g. cl1.2 or cl1/2

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/src/java/org/greenstone/gsdl3/core/URLFilter.java

    r25817 r26232  
    216216                        gRequest.setParameter(GSParams.DOCUMENT, segments[i + 1]); 
    217217 
    218                         additionalParameters = new String[] { GSParams.ACTION}; 
    219                         defaultParamValues = new String[] { "d"}; 
     218                        additionalParameters = new String[] { GSParams.ACTION }; 
     219                        defaultParamValues = new String[] { "d" }; 
    220220                        //additionalParameters = new String[] { GSParams.ACTION, GSParams.DOCUMENT_TYPE }; 
    221221                        //defaultParamValues = new String[] { "d", "hierarchy" }; 
     
    283283                        for (int j = 1; (i + j) < segments.length; j++) 
    284284                        { 
    285                             if (!segments[i + j].matches("^(CL|cl)?\\d+$")) 
    286                             { 
    287                                 break; 
    288                             } 
    289  
    290                             if (j > 1) 
     285                            String currentSegment = segments[i + j].replace("CL", "").replace("cl", ""); 
     286                            if (currentSegment.contains(".")) 
     287                            { 
     288                                String[] subsegments = currentSegment.split("\\."); 
     289                                for (String subsegment : subsegments) 
     290                                { 
     291                                    subsegment = subsegment.replace("CL", "").replace("cl", ""); 
     292 
     293                                    if (cl.length() > 0) 
     294                                    { 
     295                                        cl += "."; 
     296                                    } 
     297 
     298                                    if (subsegment.length() > 0) 
     299                                    { 
     300                                        cl += subsegment; 
     301                                    } 
     302                                } 
     303                                continue; 
     304                            } 
     305                            if (!currentSegment.matches("^(CL|cl)?\\d+$")) 
     306                            { 
     307                                continue; 
     308                            } 
     309 
     310                            if (cl.length() > 0) 
    291311                            { 
    292312                                cl += "."; 
    293313                            } 
    294314 
    295                             cl += segments[i + j].replace("CL", "").replace("cl", ""); 
     315                            cl += currentSegment; 
    296316                        } 
    297317