--- PackagePages.old.py	2009-03-14 14:22:44.000000000 +0100
+++ PackagePages.py	2009-03-27 04:05:33.000000000 +0100
@@ -69,6 +69,7 @@
         # Get new name from form and normalize.
         pagelist = self.request.values.get('pagelist', u'')
         packagename = self.request.values.get('packagename', u'')
+        searchpattern = self.request.values.get('searchpattern', [u''])
         include_attachments = self.request.values.get('include_attachments', False)
 
         if not self.request.values.get('submit'):
@@ -83,7 +84,15 @@
 
         request = self.request
         filelike = cStringIO.StringIO()
-        package = self.collectpackage(unpackLine(pagelist, ","), filelike, target, include_attachments)
+
+        # Determine where to get pages from - list or pattern search
+        if not searchpattern:
+            package = self.collectpackage(unpackLine(pagelist, ","), filelike, target, include_attachments)
+        else:
+            searchpages = self.searchpackage(self.request, searchpattern)
+            package = self.collectpackage(searchpages, filelike, target, include_attachments)
+            pagelist = "".join([item.join(" ,") for item in searchpages]).strip(",")
+
         request.content_type = 'application/zip'
         request.content_length = filelike.tell()
         request.headers.add('Content-Disposition', 'inline; filename="%s"' % target)
@@ -111,6 +120,7 @@
             'cancel': _('Cancel'),
             'newname_label': _("Package name"),
             'list_label': _("List of page names - separated by a comma"),
+            'searchpattern_label': _("Search pattern - takes priority over list of page names if specified"),
         }
         form = '''
 %(error)s
@@ -124,15 +134,23 @@
         </td>
     </tr>
     <tr>
+        <td class="label"><label>%(searchpattern_label)s</label></td>
+        <td class="content">
+            <input type="text" name="searchpattern" size="80" maxlength="200" value="">
+        </td>
+    </tr>
+    <tr>
+
         <td class="label"><label>%(list_label)s</label></td>
         <td class="content">
             <input type="text" name="pagelist" size="80" maxlength="200" value="%(pagename)s">
         </td>
     </tr>
     <tr>
-        <td class="label">
-        %(include_attachments_label)s<input type="checkbox" name="include_attachments" value="0" %(include_attachments_label)s>
-    </td>
+        <td class="label"> %(include_attachments_label)s </td>
+        <td class="content">
+           <input type="checkbox" name="include_attachments" value="0" %(include_attachments_label)s>
+        </td>
     </tr>
     <tr>
         <td></td>
@@ -149,7 +167,9 @@
     def searchpackage(self, request, searchkey):
         """ Search MoinMoin for the string specified and return a list of
         matching pages, provided they are not system pages and not
-        present in the underlay.
+        present in the underlay. The search is being performed only based on
+        titles
+
 
         @param request: current request
         @param searchkey: string to search for
@@ -157,7 +177,7 @@
         @return: list of pages matching searchkey
         """
 
-        pagelist = searchPages(request, searchkey)
+        pagelist = searchPages(request, searchkey, titlesearch=1)
 
         titles = []
         for title in pagelist.hits:
