Ignore:
Timestamp:
05.07.2010 21:24:36 (23 months ago)
Author:
zmsdev
Message:

Applied fix for export of relative inline-links as declarative urls.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ZMS/trunk/_exportable.py

    r723 r1083  
    196196    
    197197   # Process declarative URLs 
    198    if self.getConfProperty('ZMS.pathhandler',0) != 0 and \ 
    199       self.getConfProperty('ZMS.export.pathhandler',0) == 1: 
    200      newTmp = '..\\' 
    201      oldTmp = '../' 
    202      # Save links to root. 
    203      html = html.replace( oldTmp, newTmp) 
    204      # Replace 'index' in declarative URLs 
    205      pageexts = ['.html'] 
    206      if 'attr_pageext' in self.getObjAttrs().keys(): 
    207        obj_attr = self.getObjAttr('attr_pageext') 
    208        if obj_attr.has_key('keys') and len(obj_attr.get('keys')) > 0: 
    209          pageexts = obj_attr.get('keys') 
    210      for pageext in pageexts: 
    211        s_new = pageext 
    212        s_old = '/index_%s%s'%(REQUEST['lang'],pageext) 
    213        html = html.replace( s_old, s_new) 
    214        # Replace 'index_print' & 'sitemap' in declarative URLs 
    215        if obj.getLevel() > 0: 
    216          for key in [ 'index_print', 'sitemap']: 
    217            s_old = '"%s_%s%s'%(key,REQUEST['lang'],pageext) 
    218            s_new = '"%s/%s_%s%s'%(obj.getDeclId(REQUEST),key,REQUEST['lang'],pageext) 
    219            html = html.replace( s_old, s_new) 
    220      # Restore links to root. 
    221      html = html.replace( newTmp, oldTmp) 
     198   if self.getConfProperty('ZMS.pathhandler',0): 
     199     for x in html.split('href="./'): 
     200       href = x[:x.find('"')] 
     201       if href.endswith('.html'): 
     202         href = href.split('/') 
     203         new_href = [] 
     204         ob = self 
     205         for ob_id in href[:-1]: 
     206           if ob is not None: 
     207             if ob_id == '..': 
     208               ob = ob.getParentNode() 
     209               if ob is not None: 
     210                 new_href.append(ob_id) 
     211             else: 
     212               ob = getattr(ob,ob_id,None) 
     213               if ob is not None: 
     214                 new_href.append(ob.getDeclId(REQUEST)) 
     215         if ob is not None: 
     216           new_href.append(href[-1]) 
     217           html = html.replace('"./%s"'%('/'.join(href)),'"./%s"'%('/'.join(new_href))) 
     218     if self.getConfProperty('ZMS.export.pathhandler',0): 
     219       newTmp = '..\\' 
     220       oldTmp = '../' 
     221       # Save links to root. 
     222       html = html.replace( oldTmp, newTmp) 
     223       # Replace 'index' in declarative URLs 
     224       pageexts = ['.html'] 
     225       if 'attr_pageext' in self.getObjAttrs().keys(): 
     226         obj_attr = self.getObjAttr('attr_pageext') 
     227         if obj_attr.has_key('keys') and len(obj_attr.get('keys')) > 0: 
     228           pageexts = obj_attr.get('keys') 
     229       for pageext in pageexts: 
     230         s_new = pageext 
     231         s_old = '/index_%s%s'%(REQUEST['lang'],pageext) 
     232         html = html.replace( s_old, s_new) 
     233         # Replace 'index_print' & 'sitemap' in declarative URLs 
     234         if obj.getLevel() > 0: 
     235           for key in [ 'index_print', 'sitemap']: 
     236             s_old = '"%s_%s%s'%(key,REQUEST['lang'],pageext) 
     237             s_new = '"%s/%s_%s%s'%(obj.getDeclId(REQUEST),key,REQUEST['lang'],pageext) 
     238             html = html.replace( s_old, s_new) 
     239       # Restore links to root. 
     240       html = html.replace( newTmp, oldTmp) 
    222241    
    223242   return html 
Note: See TracChangeset for help on using the changeset viewer.