Jens A. Koch

ZNC Templating

ZNC (http://znc.in) is an advanced IRC bouncer that is left connected so an IRC client can disconnect/reconnect without losing the chat session.

These are my notes on templating for ZNC.
You may find them also in the offical ZNC Wiki: http://wiki.znc.in/index.php?title=ZNC_Templating.

I (jakoch) made them while creating the “znc-ation” skin for ZNC.
I’ve committed the skin as a replacement for the old and worn skins of ZNC, but unfortunately
my request was denied by Alexey Sokolov (DarkGandalf).

I had to figure the stuff out by reading the C source or asking around.
Its a work in progress and others should/may contribute and enhance the pieces of information provided here.
I hope it saves you some time, when doing templates for ZNC.

All template commands are placed in shorttags: <? … ?>.

How to print a variable on template side?

<? VAR variablename ?>

Comparisons and Expressions

There are the following comparisons and expressions available:

IF AND (&&)

<? IF varA && varB ?> BOOLEAN AND <? ENDIF ?>

IF OR (||)

<? IF varA || varB ?> BOOLEAN OR <? ENDIF ?>

IF NOT (!)

Example usage on form input fields:
<? IF !variablename ?> disabled=”disabled” <? ENDIF ?>

More Expressions

!=

==

>=

<= >

<

Template Commands

INC – Includes a file
<? INC myfile.tmp ?>

SETOPTION

ADDROW

SET

JOIN

ESC – Escape

<? VAR VARIABLE ESC=ASCII ?>

SETBLOCK
ENDSETBLOCK

EXPAND

LT – <? GT – ?>

BREAK

CONTINUE

EXIT

DEBUG

LOOP
ENDLOOP

REVERSE

SORT
ASC
DESC

REM – Comment inside Templates
ENDREM

IF
ELSE
ENDIF

LOOP

Documentation of variables assigned to the template

Set by /znc/src/webmodules.cpp – CWebSock::SetVars()
Variable name Getter for the data Description
SessionUser GetUser() Prints username
SessionIP GetRemoteIP() Prints users IP .
Tag CZNC::GetTag() Prints ZNC Version and Website Link.
Version CZNC::GetVersion() Prints ZNC Version Number.
SkinName GetSkinName() Prints name of the active theme.
CSRF_Check GetCSRFCheck() Prints a md5 hash of the user session id. You won’t really need this… Just use <? INC _csrf_check.tmpl ?> inside <form>s which use POST
IsAdmin GetSession()->IsAdmin() Is true, when the user is administrator.
LoggedIn IsLoggedIn() Is true, when the user is logged in.
Comments Off on ZNC Templating

Comments are closed.