Index: /enpraxis.staticsite/trunk/enpraxis/staticsite/utilities/staticsiteutility.py
===================================================================
--- /enpraxis.staticsite/trunk/enpraxis/staticsite/utilities/staticsiteutility.py	(revision 291)
+++ /enpraxis.staticsite/trunk/enpraxis/staticsite/utilities/staticsiteutility.py	(revision 292)
@@ -29,4 +29,7 @@
         dpath = self._getDeploymentPath(ssprops.getProperty('deployment_path'))
         pstates = ssprops.getProperty('published_states')
+        self.base_files = ssprops.base_files
+        self.css_images = ssprops.css_images
+        self.extra_views = ssprops.extra_views
         
         self._deploySiteStructure(context, ssprops, domain, dpath)
@@ -37,8 +40,8 @@
                   'depth':1,},
             review_state=pstates)
-        for x in brains:
-            url = x.getURL()
-            self.deployObject(url, x, dpath, domain)
-            self.traverse(x, dpath, domain, pstates)
+        for brain in brains:
+            url = brain.getURL()
+            self.deployObject(url, brain, dpath, domain)
+            self.traverse(brain, dpath, domain, pstates)
 
     def traverse(self, brain, dpath, domain, pstates):
@@ -47,9 +50,9 @@
             path={'query':brain.getPath(), 'depth':1},
                   review_state=pstates)
-        for x in brains:
-            url = x.getURL()
-            self.deployObject(url, x, dpath, domain)
-            if x.is_folderish:
-                self.traverse(x, dpath, domain, pstates)
+        for brain in brains:
+            url = brain.getURL()
+            self.deployObject(url, brain, dpath, domain)
+            if brain.is_folderish:
+                self.traverse(brain, dpath, domain, pstates)
             
     def deployObject(self, url, brain, dpath, domain):
@@ -66,5 +69,5 @@
             #process document actions
             self._deployDocumentActions(brain, portal_url, path, soup)
-            self.runFilters(brain, soup, portal_url, dpath)
+            self.runFilters(brain, soup, dpath, portal_url)
             self._writeFile(path, soup.prettify())
         elif brain.Type in ['Page']:
@@ -76,13 +79,10 @@
             #process document actions
             self._deployDocumentActions(brain, portal_url, path, soup)            
-            self.runFilters(brain, soup, portal_url, dpath)
+            self.runFilters(brain, soup, dpath, portal_url)
             self._writeFile(path, soup.prettify())
         else:
             #get file object
             path = self._getObjPath(url, portal_url, dpath)
-            self.linkTable[url] = {'dpath':path, 'type' : 'file'}  
             raw = self._httpget(url) 
-            soup = BeautifulSoup(raw)
-            self.runFilters(brain, soup, portal_url, dpath)       
             self._writeFile(path, raw)
         #process rdf for the object
@@ -97,20 +97,17 @@
             self._writeFile(rdfpath, rdfraw)     
 
-    def runFilters(self, brain, soup, portal_url, dpath):
+    def runFilters(self, brain, soup, dpath, portal_url):
         """ Filter content """
         rel_path = './'
         #overwrite file
         soup.base.extract()
-        self._rewriteHREF(brain, soup, dpath)
+        self._rewriteHREF(brain, soup, dpath, portal_url)
 
     def _deploySiteStructure(self, context, ssprops, domain, dpath):
         """ Get the base framework and resources needed to build the chrome locally  """
-        base_files = ssprops.base_files
-        css_images = ssprops.css_images
-        extra_views = ssprops.extra_views
-        
         portal_url = context.portal_url()
-        
-        for x in base_files:
+        portal_catalog = contex.portal_catalog
+        
+        for x in self.base_files:
             #Download files/images that are used sitewide in the chrome
             url = '%s/%s' % (portal_url, x)
@@ -119,5 +116,5 @@
             self._writeFile(path, raw)
             
-        for x in extra_views:
+        for x in self.extra_views:
             #Download zope3 views and/or additional views that are not included in the site catalog search
             url = '%s/%s' % (portal_url, x)
@@ -125,4 +122,8 @@
             path += '.html'
             raw = self._httpget(url)
+            #finish this
+            brain = portal_catalog.searchResults()
+            soup = BeautifulSoup(raw)
+            self.runFilters(brain, soup, dpath, portal_url)
             self._writeFile(path, raw)
 
@@ -141,5 +142,5 @@
                     path = self._deployCompressedResources(url, portal_url, dpath)
                     css_path = os_split(path)[0]
-                for img in css_images:
+                for img in self.css_images:
                     #download css_images
                     url = '%s/%s' % (portal_url, img)
@@ -210,17 +211,41 @@
         return action_url
 
-    def _getURLPath(self, brain, url):
+    def _getURLPath(self, brain, link):
         """ Retrieve the URL path on the filesystem. """
-
-        rel_path = self._getRelativePath('/'.join(brain.getURL().split('/')[:-1]), url)
-        rel_path = rel_path.split('#')[0]
-        urlbrains = brain.portal_catalog.searchResults(query={'path':rel_path,},id=rel_path.split('/')[0])
-        for x in urlbrains:
-            if brains.is_folderish:
-                pass
-            elif brain.Type == 'Page':
-                pass
+        rel_prefix = ''
+        rel_middlefix = ''
+        rel_id = ''
+
+        rel_path = self._getRelativePath('/'.join(brain.getURL().split('/')[:-1]), link)
+        rel_id = rel_path.split('/')[-1]
+        if '#' in rel_path:
+            rel_prefix = rel_path.split('#')[0]
+            rel_middlefix = rel_path.split('#')[-1] 
+            rel_id = rel_id.split('#')[0]
+
+        if rel_id in self.extra_views:
+            #mod link to have +.html
+            if len(rel_prefix) > 0:
+                rel_path = '%s%s.html' % (rel_prefix, rel_middlefix)
             else:
-                pass
+                rel_path += '.html'
+        else:
+            #brain_url = brain.getURL()
+                
+            # rel_path = '../../division/course/page1
+            
+            link_brain = brain.portal_catalog.searchResults(
+                          path={'query':link, 'depth':1, 'id'= rel_id})                                      
+
+            #link_brain = brain.portal_catalog.searchResults(query={'path':rel_path,},id=rel_path.split('/')[0])
+
+
+            if link_brain[0].is_folderish:
+                #mod link to have /index.html
+                link += '/index.html'                
+            elif link_brain[0].Type == 'Page':
+                #mod link to have +.html
+                link += '.html'
+        return link
 
     def _deployCompressedResources(self, url, portal_url, dpath):
@@ -277,8 +302,8 @@
         return rel_path
             
-    def _rewriteHREF(self, brain, soup, dpath):
+    def _rewriteHREF(self, brain, soup, dpath, portal_url):
         tags = soup.findAll('a')
         for tag in tags:
-            if tag.has_key('href'):
+            if tag.has_key('href') and contains portal_url:
                 self._getURLPath(brain, tag['href'])
         return soup
