Changeset 292
- Timestamp:
- 06/16/09 11:52:32 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
enpraxis.staticsite/trunk/enpraxis/staticsite/utilities/staticsiteutility.py
r291 r292 29 29 dpath = self._getDeploymentPath(ssprops.getProperty('deployment_path')) 30 30 pstates = ssprops.getProperty('published_states') 31 self.base_files = ssprops.base_files 32 self.css_images = ssprops.css_images 33 self.extra_views = ssprops.extra_views 31 34 32 35 self._deploySiteStructure(context, ssprops, domain, dpath) … … 37 40 'depth':1,}, 38 41 review_state=pstates) 39 for xin brains:40 url = x.getURL()41 self.deployObject(url, x, dpath, domain)42 self.traverse( x, dpath, domain, pstates)42 for brain in brains: 43 url = brain.getURL() 44 self.deployObject(url, brain, dpath, domain) 45 self.traverse(brain, dpath, domain, pstates) 43 46 44 47 def traverse(self, brain, dpath, domain, pstates): … … 47 50 path={'query':brain.getPath(), 'depth':1}, 48 51 review_state=pstates) 49 for xin brains:50 url = x.getURL()51 self.deployObject(url, x, dpath, domain)52 if x.is_folderish:53 self.traverse( x, dpath, domain, pstates)52 for brain in brains: 53 url = brain.getURL() 54 self.deployObject(url, brain, dpath, domain) 55 if brain.is_folderish: 56 self.traverse(brain, dpath, domain, pstates) 54 57 55 58 def deployObject(self, url, brain, dpath, domain): … … 66 69 #process document actions 67 70 self._deployDocumentActions(brain, portal_url, path, soup) 68 self.runFilters(brain, soup, portal_url, dpath)71 self.runFilters(brain, soup, dpath, portal_url) 69 72 self._writeFile(path, soup.prettify()) 70 73 elif brain.Type in ['Page']: … … 76 79 #process document actions 77 80 self._deployDocumentActions(brain, portal_url, path, soup) 78 self.runFilters(brain, soup, portal_url, dpath)81 self.runFilters(brain, soup, dpath, portal_url) 79 82 self._writeFile(path, soup.prettify()) 80 83 else: 81 84 #get file object 82 85 path = self._getObjPath(url, portal_url, dpath) 83 self.linkTable[url] = {'dpath':path, 'type' : 'file'}84 86 raw = self._httpget(url) 85 soup = BeautifulSoup(raw)86 self.runFilters(brain, soup, portal_url, dpath)87 87 self._writeFile(path, raw) 88 88 #process rdf for the object … … 97 97 self._writeFile(rdfpath, rdfraw) 98 98 99 def runFilters(self, brain, soup, portal_url, dpath):99 def runFilters(self, brain, soup, dpath, portal_url): 100 100 """ Filter content """ 101 101 rel_path = './' 102 102 #overwrite file 103 103 soup.base.extract() 104 self._rewriteHREF(brain, soup, dpath )104 self._rewriteHREF(brain, soup, dpath, portal_url) 105 105 106 106 def _deploySiteStructure(self, context, ssprops, domain, dpath): 107 107 """ Get the base framework and resources needed to build the chrome locally """ 108 base_files = ssprops.base_files109 css_images = ssprops.css_images110 extra_views = ssprops.extra_views111 112 108 portal_url = context.portal_url() 113 114 for x in base_files: 109 portal_catalog = contex.portal_catalog 110 111 for x in self.base_files: 115 112 #Download files/images that are used sitewide in the chrome 116 113 url = '%s/%s' % (portal_url, x) … … 119 116 self._writeFile(path, raw) 120 117 121 for x in extra_views:118 for x in self.extra_views: 122 119 #Download zope3 views and/or additional views that are not included in the site catalog search 123 120 url = '%s/%s' % (portal_url, x) … … 125 122 path += '.html' 126 123 raw = self._httpget(url) 124 #finish this 125 brain = portal_catalog.searchResults() 126 soup = BeautifulSoup(raw) 127 self.runFilters(brain, soup, dpath, portal_url) 127 128 self._writeFile(path, raw) 128 129 … … 141 142 path = self._deployCompressedResources(url, portal_url, dpath) 142 143 css_path = os_split(path)[0] 143 for img in css_images:144 for img in self.css_images: 144 145 #download css_images 145 146 url = '%s/%s' % (portal_url, img) … … 210 211 return action_url 211 212 212 def _getURLPath(self, brain, url):213 def _getURLPath(self, brain, link): 213 214 """ Retrieve the URL path on the filesystem. """ 214 215 rel_path = self._getRelativePath('/'.join(brain.getURL().split('/')[:-1]), url) 216 rel_path = rel_path.split('#')[0] 217 urlbrains = brain.portal_catalog.searchResults(query={'path':rel_path,},id=rel_path.split('/')[0]) 218 for x in urlbrains: 219 if brains.is_folderish: 220 pass 221 elif brain.Type == 'Page': 222 pass 215 rel_prefix = '' 216 rel_middlefix = '' 217 rel_id = '' 218 219 rel_path = self._getRelativePath('/'.join(brain.getURL().split('/')[:-1]), link) 220 rel_id = rel_path.split('/')[-1] 221 if '#' in rel_path: 222 rel_prefix = rel_path.split('#')[0] 223 rel_middlefix = rel_path.split('#')[-1] 224 rel_id = rel_id.split('#')[0] 225 226 if rel_id in self.extra_views: 227 #mod link to have +.html 228 if len(rel_prefix) > 0: 229 rel_path = '%s%s.html' % (rel_prefix, rel_middlefix) 223 230 else: 224 pass 231 rel_path += '.html' 232 else: 233 #brain_url = brain.getURL() 234 235 # rel_path = '../../division/course/page1 236 237 link_brain = brain.portal_catalog.searchResults( 238 path={'query':link, 'depth':1, 'id'= rel_id}) 239 240 #link_brain = brain.portal_catalog.searchResults(query={'path':rel_path,},id=rel_path.split('/')[0]) 241 242 243 if link_brain[0].is_folderish: 244 #mod link to have /index.html 245 link += '/index.html' 246 elif link_brain[0].Type == 'Page': 247 #mod link to have +.html 248 link += '.html' 249 return link 225 250 226 251 def _deployCompressedResources(self, url, portal_url, dpath): … … 277 302 return rel_path 278 303 279 def _rewriteHREF(self, brain, soup, dpath ):304 def _rewriteHREF(self, brain, soup, dpath, portal_url): 280 305 tags = soup.findAll('a') 281 306 for tag in tags: 282 if tag.has_key('href') :307 if tag.has_key('href') and contains portal_url: 283 308 self._getURLPath(brain, tag['href']) 284 309 return soup
Note: See TracChangeset
for help on using the changeset viewer.
