diff --git a/src/main/java/org/olat/core/gui/render/StringOutput.java b/src/main/java/org/olat/core/gui/render/StringOutput.java
index bdce8547f97b6cd9e19a554d551a861880de2233..69a8928e35f6907493e4c581bcb60d715749fca5 100644
--- a/src/main/java/org/olat/core/gui/render/StringOutput.java
+++ b/src/main/java/org/olat/core/gui/render/StringOutput.java
@@ -66,6 +66,9 @@ public class StringOutput extends Writer {
 		sb.append(val);
 		return this;
 	}
+	public StringOutput append(String format, Object...args) {
+		return appendFmt(format, args);
+	}
 	
 	/**
 	 * 
@@ -80,6 +83,21 @@ public class StringOutput extends Writer {
 		return this;
 	}
 	
+	public StringOutput ifCond(boolean cond) {
+		if (cond) return this;
+		return new StringOutput();
+	}
+	
+	public StringOutput appendFmt(String format, Object...params) {
+		if(params.length == 0) {
+			sb.append(format);
+		} else {
+			String v = String.format(format, params);
+			sb.append(v);
+		}
+		return this;
+	}
+	
 	/**
 	 * @param val
 	 * @return Itself