--- TreeTag.py.orig Thu Nov 18 17:30:57 1999 +++ TreeTag.py Thu Nov 18 18:35:46 1999 @@ -111,7 +111,7 @@ header=None, footer=None, branches=None, branches_expr=None, sort=None, reverse=1, skip_unauthorized=1, - id=None, single=1, url=None, + id=None, single=1, url=None, store_session=0, # opened_decoration=None, # closed_decoration=None, # childless_decoration=None, @@ -135,6 +135,8 @@ if not has_key('childless_decoration'): args['childless_decoration']='' + if not args.has_key('store_state'): args['store_state']=0 + self.__name__ = name self.section=section.blocks self.args=args @@ -209,7 +211,16 @@ elif md.has_key('expand_all'): state=[id, tpValuesIds(self, args['branches'], args)], else: - if md.has_key('tree-s'): + if args.has_key('store_session') and args['store_session']: + sess=md['SESSION'] + if sess.has_key('tree-s'): + state=sess['tree-s'] + state=decode_seq(state) + try: + if state[0][0] != id: state=[id,[]], + except IndexError: state=[id,[]], + else: state=[id,[]], + elif md.has_key('tree-s'): state=md['tree-s'] state=decode_seq(state) try: @@ -248,7 +259,10 @@ if state is substate and not (args.has_key('single') and args['single']): state=state or ([id],) state=encode_seq(state) - md['RESPONSE'].setCookie('tree-s',state) + if args.has_key('store_session') and args['store_session']: + md['SESSION'].set('tree-s',state) + else: + md['RESPONSE'].setCookie('tree-s',state) return join(data,'')