Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

pirms 14 gadiem
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. class Nav:
  2. """
  3. Build sitemap / navigation tree
  4. """
  5. page_info_template = {
  6. 'description': None,
  7. 'keywords': None,
  8. 'title': 'No Title Set'
  9. }
  10. def __init__(self):
  11. """
  12. write out the nav
  13. """
  14. import json, os
  15. self.data = {}
  16. if os.path.exists('config/sitenav.json'):
  17. nfile = open('config/sitenav.json')
  18. self.data = json.loads(nfile.read())
  19. nfile.close()
  20. def page_info(self):
  21. """
  22. return dict with href as the key
  23. """
  24. ret = {}
  25. import copy
  26. ul = copy.deepcopy(self.data)
  27. for li in ul:
  28. ret[li.get('href')] = li
  29. # has subitems, loop
  30. if li.get('subitems'):
  31. for lia in li.get('subitems'):
  32. if not lia.get('href') in ret.keys():
  33. ul.append(lia)
  34. return ret
  35. def html(self, list_class=''):
  36. """
  37. return nested lists <ul> in html
  38. """
  39. self.list_class = list_class
  40. return self.make_list(self.data)
  41. def make_list(self, ul):
  42. """
  43. return a list with <li> and <a> elements
  44. """
  45. lis = []
  46. link_html = '<a href="%(href)s" title="%(title)s">%(label)s</a>'
  47. for li in ul:
  48. if not 'title' in li:
  49. li['title'] = 'No Title'
  50. if 'subitems' in li:
  51. h = ('\t<li>' + link_html + self.make_list(li['subitems']) +'</li>') % li
  52. else:
  53. h = ('\t<li>' + link_html + '</li>') % li
  54. lis.append(h)
  55. return '\n<ul class="%s">\n%s\n</ul>' % (self.list_class, '\n'.join(lis))