Changeset 26232 for main


Ignore:
Timestamp:
2012-09-20T14:39:43+12:00 (12 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

File:
1 edited

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
Note: See TracChangeset for help on using the changeset viewer.