# Klasse zum Parsen von Templates\r
#\r
# Autor: Patrick Canterino <patrick@patshaping.de>\r
-# Letzte Aenderung: 25.11.2011\r
+# Letzte Aenderung: 26.4.2013\r
#\r
-# Copyright (C) 2002-2011 Patrick Canterino\r
+# Copyright (C) 2002-2013 Patrick Canterino\r
#\r
# Diese Datei kann unter den Bedingungen der "Artistic License 2.0"\r
# weitergegeben und / oder veraendert werden.\r
# Rueckgabe: -nichts- (Template-Objekt wird modifiziert)\r
\r
def set_var(self,var,content):\r
+ if content is None: content = ''\r
self.vars[var] = content\r
\r
# get_var()\r
\r
def get_var(self,var=None):\r
if var is not None:\r
- if self.vars.has_key(var):\r
+ if var in self.vars:\r
return self.vars[var]\r
else:\r
return None\r
# Rueckgabe: -nichts- (Template-Objekt wird modifiziert)\r
\r
def add_loop_data(self,loop,data):\r
- if self.loop_vars.has_key(loop) and type(self.loop_vars[loop]) is list:\r
+ if loop in self.loop_vars and type(self.loop_vars[loop]) is list:\r
self.loop_vars[loop].append(data)\r
else:\r
self.loop_vars[loop] = [data]\r
\r
vars = self.get_var()\r
\r
- if vars is not None and type(vars) is list:\r
+ if vars is not None and len(vars) > 0:\r
self.parse_if_blocks()\r
self.replace_vars()\r
\r
\r
# parse_old()\r
#\r
- # In der Template definierte Variablen auslesen, Variablen\r
+ # In der Template definierte Variablen auslesen, Variablen\r
# ersetzen, {IF}- und {TRIM}-Bloecke parsen\r
# (alte Methode)\r
#\r
\r
# get_defined_vars()\r
#\r
- # In der Template-Datei definierte Variablen auslesen\r
+ # In der Template-Datei definierte Variablen auslesen\r
#\r
# Parameter: -nichts-\r
#\r
# IF-Bloecke verarbeiten\r
#\r
# Parameter: 1. Name des IF-Blocks (das, was nach dem IF steht)\r
- # 2. Status-Code (true => Inhalt anzeigen\r
- # false => Inhalt nicht anzeigen\r
+ # 2. Status-Code (true => Inhalt anzeigen\r
+ # false => Inhalt nicht anzeigen\r
#\r
# Rueckgabe: -nichts- (Template-Objekt wird modifiziert)\r
\r
splitted = tpl_tmp.split('{ENDIF}')\r
\r
block = '' # Kompletter bedingter Block\r
- ifs = 0 # IF-Zaehler (wird fuer jedes IF erhoeht und fuer jedes ENDIF erniedrigt)\r
+ ifs = 0 # IF-Zaehler (wird fuer jedes IF erhoeht und fuer jedes ENDIF erniedrigt)\r
\r
# {IF}\r
\r
\r
ifs += splitted[x].count('{IF ') # Zum Zaehler jedes Vorkommen von IF hinzuzaehlen\r
ifs -= 1 # Zaehler um 1 erniedrigen\r
- block += splitted[x]+'{ENDIF}' # Daten zum Block hinzufuegen\r
+ block += splitted[x]+'{ENDIF}' # Daten zum Block hinzufuegen\r
\r
x += 1\r
\r