mirror of
https://github.com/znc/znc.git
synced 2026-05-15 13:55:48 +02:00
Added Webskin "znc-ation"
This commit is contained in:
@@ -31,5 +31,6 @@ Brian Campbell (bcampbell@splafinga.com)
|
||||
Joshua M. Clulow (http://sysmgr.org)
|
||||
evaryont <colin@evaryont.me>
|
||||
Michael "adgar" Edgar <adgar@carboni.ca>
|
||||
Jens-Andre "vain" Koch <jakoch@web.de>
|
||||
|
||||
If you did something useful and want to be listed here too, add yourself and submit the patch.
|
||||
|
||||
@@ -217,6 +217,8 @@ public:
|
||||
const CString& GetPath() const { return m_sPath; }
|
||||
const CString& GetDescription() const { return m_sDescription; }
|
||||
const CString& GetWikiPage() const { return m_sWikiPage; }
|
||||
const CString& GetArgsHelpText() const { return m_sArgsHelpText; }
|
||||
bool GetHasArgs() const { return m_bHasArgs; }
|
||||
ModLoader GetLoader() const { return m_fLoader; }
|
||||
EModuleType GetDefaultType() const { return m_eDefaultType; }
|
||||
// !Getters
|
||||
@@ -226,6 +228,8 @@ public:
|
||||
void SetPath(const CString& s) { m_sPath = s; }
|
||||
void SetDescription(const CString& s) { m_sDescription = s; }
|
||||
void SetWikiPage(const CString& s) { m_sWikiPage = s; }
|
||||
void SetArgsHelpText(const CString& s) { m_sArgsHelpText = s; }
|
||||
void SetHasArgs(bool b = false) { m_bHasArgs = b; }
|
||||
void SetLoader(ModLoader fLoader) { m_fLoader = fLoader; }
|
||||
void SetDefaultType(EModuleType eType) { m_eDefaultType = eType; }
|
||||
// !Setters
|
||||
@@ -237,6 +241,8 @@ protected:
|
||||
CString m_sPath;
|
||||
CString m_sDescription;
|
||||
CString m_sWikiPage;
|
||||
CString m_sArgsHelpText;
|
||||
bool m_bHasArgs;
|
||||
ModLoader m_fLoader;
|
||||
};
|
||||
|
||||
|
||||
@@ -91,6 +91,8 @@ private:
|
||||
template<> void TModInfo<CAutoReplyMod>(CModInfo& Info) {
|
||||
Info.SetWikiPage("autoreply");
|
||||
Info.AddType(CModInfo::NetworkModule);
|
||||
Info.SetHasArgs(true);
|
||||
Info.SetArgsHelpText("You might specify a reply text. It is used when automatically answering queries, if you are not connected to ZNC.");
|
||||
}
|
||||
|
||||
USERMODULEDEFS(CAutoReplyMod, "Reply to queries when you are away")
|
||||
|
||||
@@ -189,6 +189,8 @@ void CAwayNickTimer::RunJob() {
|
||||
|
||||
template<> void TModInfo<CAwayNickMod>(CModInfo& Info) {
|
||||
Info.SetWikiPage("awaynick");
|
||||
Info.SetHasArgs(true);
|
||||
Info.SetArgsHelpText("This will be your nickname while you are away. Examples: nick_off or zzz_nick.");
|
||||
}
|
||||
|
||||
NETWORKMODULEDEFS(CAwayNickMod, "Change your nick while you are away")
|
||||
|
||||
@@ -168,6 +168,8 @@ private:
|
||||
|
||||
template<> void TModInfo<CBlockUser>(CModInfo& Info) {
|
||||
Info.SetWikiPage("blockuser");
|
||||
Info.SetHasArgs(true);
|
||||
Info.SetArgsHelpText("Enter one or more user names. Seperate them by spaces.");
|
||||
}
|
||||
|
||||
GLOBALMODULEDEFS(CBlockUser, "Block certain users from logging in")
|
||||
|
||||
@@ -76,7 +76,6 @@ private:
|
||||
|
||||
template<> void TModInfo<CChanSaverMod>(CModInfo& Info) {
|
||||
Info.SetWikiPage("chansaver");
|
||||
Info.AddType(CModInfo::NetworkModule);
|
||||
}
|
||||
|
||||
USERMODULEDEFS(CChanSaverMod, "Keep config up-to-date when user joins/parts")
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<div class="sectionbody">
|
||||
<div class="subsection full">
|
||||
<div class="inputlabel">PEM File:</div>
|
||||
<div><textarea name="cert" style="height: 300px;"></textarea></div>
|
||||
<textarea name="cert" style="height: 300px;"></textarea>
|
||||
</div>
|
||||
<div class="subsection submitline">
|
||||
<input type="submit" name="add" value="Update" />
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<div class="sectionbody">
|
||||
<div class="subsection full">
|
||||
<div class="inputlabel">Key:</div>
|
||||
<div><input type="text" name="key" size="40" /></div>
|
||||
<input type="text" name="key" size="40" />
|
||||
</div>
|
||||
<div class="subsection submitline">
|
||||
<input type="submit" name="add" value="Add Key" />
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="sectionbody">
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Last login time:</div>
|
||||
<div><p><? VAR LastSeen DEFAULT="- unknown -" ?></p></div>
|
||||
<p><? VAR LastSeen DEFAULT="- unknown -" ?></p>
|
||||
</div>
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
<div class="sectionbody">
|
||||
<div class="subsection third">
|
||||
<div class="inputlabel">Key:</div>
|
||||
<div><input type="text" name="key" size="8" /></div>
|
||||
<input type="text" name="key" size="8" />
|
||||
</div>
|
||||
<div class="subsection full">
|
||||
<div class="inputlabel">Note:</div>
|
||||
<div><input type="text" name="note" size="40" /></div>
|
||||
<input type="text" name="note" size="40" />
|
||||
</div>
|
||||
<div class="subsection submitline">
|
||||
<input type="submit" name="add" value="Add Note" />
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
<div class="sectionbody">
|
||||
<div class="subsection full">
|
||||
<div class="inputlabel">Perform commands:</div>
|
||||
<div><textarea name="perform" cols="70" rows="5" class="monospace"><? LOOP PerformLoop ?><? VAR Perform ?>
|
||||
<textarea name="perform" cols="70" rows="5" class="monospace"><? LOOP PerformLoop ?><? VAR Perform ?>
|
||||
<? ENDLOOP ?>
|
||||
</textarea></div>
|
||||
</textarea>
|
||||
<br /><span class="info">Commands sent to the IRC server on connect, one per line.</span>
|
||||
</div>
|
||||
<div class="subsection submitline">
|
||||
|
||||
@@ -10,26 +10,24 @@
|
||||
<div class="sectionbody">
|
||||
<div class="subsection third">
|
||||
<div class="inputlabel">User:</div>
|
||||
<div><select name="user">
|
||||
<select name="user">
|
||||
<? LOOP UserLoop?>
|
||||
<option value="<? VAR Username ESC=HTML ?>"><? VAR Username ESC=HTML ?></option>
|
||||
<? ENDLOOP ?>
|
||||
</select></div>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="subsection third">
|
||||
<div class="inputlabel">Send to:</div>
|
||||
<div>
|
||||
<select name="send_to">
|
||||
<option value="client"<? IF to_client ?> selected="yes"<? ENDIF ?>>Client</option>
|
||||
<option value="server"<? IF to_server ?> selected="yes"<? ENDIF ?>>Server</option>
|
||||
</select>
|
||||
</div>
|
||||
<select name="send_to">
|
||||
<option value="client"<? IF to_client ?> selected="yes"<? ENDIF ?>>Client</option>
|
||||
<option value="server"<? IF to_server ?> selected="yes"<? ENDIF ?>>Server</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="subsection full">
|
||||
<div class="inputlabel">Line:</div>
|
||||
<div><input type="text" name="line" value="<? VAR line ?>" /></div>
|
||||
<input type="text" name="line" value="<? VAR line ?>" />
|
||||
</div>
|
||||
|
||||
<div class="subsection submitline">
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<div class="sectionbg">
|
||||
<div class="sectionbody">
|
||||
<div class="subsection">
|
||||
<input type="hidden" name="embed_stickychan_presented" value="1">
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" name="embed_stickychan_sticky" id="opt_embed_stickychan_sticky" value="1"<? IF Sticky ?> checked="checked"<? ENDIF ?> />
|
||||
<label for="opt_embed_stickychan_sticky">Channel is sticky</label>
|
||||
</div>
|
||||
</div>
|
||||
<div style="clear:both;"></div>
|
||||
<div class="subsection">
|
||||
<input type="hidden" name="embed_stickychan_presented" value="1">
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" name="embed_stickychan_sticky" id="opt_embed_stickychan_sticky" value="1"<? IF Sticky ?> checked="checked"<? ENDIF ?> />
|
||||
<label for="opt_embed_stickychan_sticky">Channel is sticky</label>
|
||||
</div>
|
||||
</div>
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -14,23 +14,27 @@
|
||||
<? IF !Edit ?>
|
||||
<div class="subsection half">
|
||||
<div class="inputlabel">Channel Name:</div>
|
||||
<div><input type="text" name="name" value="" /></div>
|
||||
<input type="text" name="name" value=""
|
||||
title="The channel name." />
|
||||
</div>
|
||||
<? ENDIF ?>
|
||||
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Key:</div>
|
||||
<div><input type="text" name="key" value="<? VAR Key ?>" size="10" /></div>
|
||||
<input type="text" name="key" value="<? VAR Key ?>" size="10"
|
||||
title="The password of the channel, if there is one." />
|
||||
</div>
|
||||
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Buffer Count:</div>
|
||||
<div><input type="number" name="buffercount" value="<? VAR BufferCount ?>" size="10" min="0" /></div>
|
||||
<input type="number" name="buffercount" value="<? VAR BufferCount ?>" size="10" min="0"
|
||||
title="The buffer count." />
|
||||
</div>
|
||||
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Default Modes:</div>
|
||||
<div><input type="text" name="defmodes" value="<? VAR DefModes ?>" size="10" /></div>
|
||||
<input type="text" name="defmodes" value="<? VAR DefModes ?>" size="10"
|
||||
title="The default modes of the channel." />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -70,4 +74,4 @@
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<? INC Footer.tmpl ?>
|
||||
<? INC Footer.tmpl ?>
|
||||
@@ -20,28 +20,31 @@
|
||||
<? IF !Edit ?>
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Network Name:</div>
|
||||
<div>
|
||||
<input type="text" name="network" value="<? VAR Name ?>" class="half" maxlength="128" />
|
||||
<input type="text" name="network" value="<? VAR Name ?>" class="half" maxlength="128"
|
||||
title="The name of the IRC network." />
|
||||
</div>
|
||||
</div>
|
||||
<? ENDIF ?>
|
||||
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Nickname:</div>
|
||||
<div><input type="text" name="nick" value="<? VAR Nick ?>" class="half" maxlength="128" /></div>
|
||||
<input type="text" name="nick" value="<? VAR Nick ?>" class="half" maxlength="128"
|
||||
title="Your nickname on IRC." />
|
||||
</div>
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Alt. Nickname:</div>
|
||||
<div><input type="text" name="altnick" value="<? VAR AltNick ?>" class="half" maxlength="128" /></div>
|
||||
<input type="text" name="altnick" value="<? VAR AltNick ?>" class="half" maxlength="128"
|
||||
title="Your secondary nickname, if the first is not available on IRC." />
|
||||
</div>
|
||||
<div style="clear: both;"></div>
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Ident:</div>
|
||||
<div><input type="text" name="ident" value="<? VAR Ident ?>" class="half" maxlength="128" /></div>
|
||||
<input type="text" name="ident" value="<? VAR Ident ?>" class="half" maxlength="128"
|
||||
title="Your ident." />
|
||||
</div>
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Realname:</div>
|
||||
<div><input type="text" name="realname" value="<? VAR RealName ?>" class="full" maxlength="256" /></div>
|
||||
<input type="text" name="realname" value="<? VAR RealName ?>" class="full" maxlength="256"
|
||||
title="Your real name." />
|
||||
</div>
|
||||
|
||||
<div class="subsection">
|
||||
@@ -76,6 +79,8 @@
|
||||
<div class="inputlabel">Flood protection:</div>
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" name="floodprotection" id="floodprotection_checkbox"
|
||||
title="You might enable the flood protection.
|
||||
This prevents "excess flood" errors, which occur, when your IRC bot is command flooded or spammed."
|
||||
onchange="floodprotection_change();"
|
||||
<? IF FloodProtection ?>checked="checked"<? ENDIF ?> />
|
||||
<label for="floodprotection_checkbox">Enabled</label>
|
||||
@@ -83,14 +88,18 @@
|
||||
</div>
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Flood protection rate:</div>
|
||||
<div><input type="number" name="floodrate" min="0.3" step="0.05" id="floodrate"
|
||||
<? IF FloodProtection ?> value="<? VAR FloodRate ?>" <? ELSE ?> value="1.00" <? ENDIF ?> /> seconds per line</div>
|
||||
<input type="number" name="floodrate" min="0.3" step="0.05" id="floodrate"
|
||||
title="The number of seconds per line."
|
||||
<? IF FloodProtection ?> value="<? VAR FloodRate ?>" <? ELSE ?> value="1.00" disabled="disabled" <? ENDIF ?>
|
||||
/> seconds per line
|
||||
</div>
|
||||
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Flood protection burst:</div>
|
||||
<div><input type="number" name="floodburst" min="1" id="floodburst"
|
||||
<? IF FloodProtection ?> value="<? VAR FloodBurst ?>" <? ELSE ?> value="4" <? ENDIF ?> /> lines can be send immediately</div>
|
||||
<input type="number" name="floodburst" min="1" id="floodburst"
|
||||
title="Defines the number of lines, which can immediately be send."
|
||||
<? IF FloodProtection ?> value="<? VAR FloodBurst ?>" <? ELSE ?> value="4" disabled="disabled" <? ENDIF ?>
|
||||
/> lines can be send immediately
|
||||
</div>
|
||||
<script type="text/javascript">floodprotection_change();</script>
|
||||
<div style="clear: both;"></div>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<div class="sectionbody">
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Username:</div>
|
||||
<div>
|
||||
|
||||
<? IF Clone ?>
|
||||
<input type="hidden" name="clone" value="<? VAR CloneUsername ?>" />
|
||||
<? ENDIF ?>
|
||||
@@ -18,23 +18,26 @@
|
||||
<input type="hidden" name="user" value="<? VAR Username ?>" />
|
||||
<input type="text" name="newuser" value="<? VAR Username ?>" class="half" maxlength="128" disabled="disabled" />
|
||||
<? ELSE ?>
|
||||
<input type="text" name="user" value="<? VAR Username ?>" class="half" maxlength="128" />
|
||||
<input type="text" name="user" value="<? VAR Username ?>" class="half" maxlength="128"
|
||||
title="Please enter a username." />
|
||||
<? ENDIF ?>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Password:</div>
|
||||
<div><input type="password" name="password" class="half" /></div>
|
||||
<input type="password" name="password" class="half"
|
||||
title="Please enter a password." />
|
||||
</div>
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Confirm password:</div>
|
||||
<div><input type="password" name="password2" class="half" /></div>
|
||||
<input type="password" name="password2" class="half"
|
||||
title="Please re-type the above password." />
|
||||
</div>
|
||||
<div class="subsection half">
|
||||
<div class="inputlabel">Allowed IPs:</div>
|
||||
<div><textarea name="allowedips" cols="70" rows="5"><? LOOP AllowedHostLoop ?><? VAR Host ?>
|
||||
<textarea name="allowedips" cols="70" rows="5"><? LOOP AllowedHostLoop ?><? VAR Host ?>
|
||||
<? ENDLOOP ?>
|
||||
</textarea></div>
|
||||
</textarea>
|
||||
<br /><span class="info">Leave empty to allow connections from all IPs.<br />
|
||||
Otherwise, one entry per line, wildcards * and ? are available.</span>
|
||||
</div>
|
||||
@@ -52,25 +55,30 @@
|
||||
<div class="sectionbody">
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Nickname:</div>
|
||||
<div><input type="text" name="nick" value="<? VAR Nick ?>" class="half" maxlength="128" /></div>
|
||||
<input type="text" name="nick" value="<? VAR Nick ?>" class="half" maxlength="128"
|
||||
title="This will be your nickname on IRC." />
|
||||
</div>
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Alt. Nickname:</div>
|
||||
<div><input type="text" name="altnick" value="<? VAR AltNick ?>" class="half" maxlength="128" /></div>
|
||||
<input type="text" name="altnick" value="<? VAR AltNick ?>" class="half" maxlength="128"
|
||||
title="If the nickname above is not available anymore, then this will be your nickname on IRC." />
|
||||
</div>
|
||||
<div style="clear: both;"></div>
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Ident:</div>
|
||||
<div><input type="text" name="ident" value="<? VAR Ident ?>" class="half" maxlength="128" /></div>
|
||||
<input type="text" name="ident" value="<? VAR Ident ?>" class="half" maxlength="128"
|
||||
title="The Ident identifies you as one specific user of your host." />
|
||||
</div>
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">StatusPrefix:</div>
|
||||
<div><input type="text" name="statusprefix" value="<? VAR StatusPrefix ?>" class="half" maxlength="5" /></div>
|
||||
<input type="text" name="statusprefix" value="<? VAR StatusPrefix ?>" class="half" maxlength="5"
|
||||
title="This defines the prefix for the status and module queries." />
|
||||
</div>
|
||||
<div style="clear: both;"></div>
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Realname:</div>
|
||||
<div><input type="text" name="realname" value="<? VAR RealName ?>" class="full" maxlength="256" /></div>
|
||||
<input type="text" name="realname" value="<? VAR RealName ?>" class="full" maxlength="256"
|
||||
title="The real name of the user." />
|
||||
</div>
|
||||
<div style="clear: both;"></div>
|
||||
|
||||
@@ -98,7 +106,8 @@
|
||||
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Quit Message:</div>
|
||||
<div><input type="text" name="quitmsg" value="<? VAR QuitMsg ?>" class="full" maxlength="256" /></div>
|
||||
<input type="text" name="quitmsg" value="<? VAR QuitMsg ?>" class="full" maxlength="256"
|
||||
title="You may define a Message shown, when you quit IRC." />
|
||||
</div>
|
||||
<div style="clear: both;"></div>
|
||||
</div>
|
||||
@@ -161,7 +170,13 @@
|
||||
<input type="checkbox" name="loadmod" id="lm_<? VAR Name ?>" value="<? VAR Name ?>"<? IF Checked ?> checked="checked"<? ENDIF ?><? IF Disabled ?> disabled="disabled"<? ENDIF ?> /><label for="lm_<? VAR Name ?>"> <? IF Wiki ?><a href="http://wiki.znc.in/<? VAR Wiki ?>"><? VAR Name ?></a> <? ELSE ?> <? VAR Name ?> <? ENDIF ?></label>
|
||||
</td>
|
||||
<td class="mod_args">
|
||||
<? IF Disabled ?><? VAR Args ?><? ELSE ?><input class="third" type="text" name="modargs_<? VAR Name ?>" value="<? VAR Args ?>" /><? ENDIF ?>
|
||||
<? IF Disabled ?>
|
||||
<? VAR Args ?>
|
||||
<? ELSE ?>
|
||||
<input class="third" type="text" name="modargs_<? VAR Name ?>" value="<? VAR Args ?>"
|
||||
<? IF !HasArgs ?> disabled="disabled"<? ENDIF ?>
|
||||
<? IF ArgsHelpText ?> title="<? VAR ArgsHelpText ?>"<? ENDIF ?> />
|
||||
<? ENDIF ?>
|
||||
</td>
|
||||
<td class="mod_descr"><? VAR Description ?></td>
|
||||
</tr>
|
||||
@@ -179,12 +194,15 @@
|
||||
<div class="sectionbody">
|
||||
<div class="subsection third">
|
||||
<div class="inputlabel">Modes:</div>
|
||||
<div><input type="text" name="chanmodes" value="<? VAR DefaultChanModes ?>" maxlength="32" /></div>
|
||||
<input type="text" name="chanmodes" value="<? VAR DefaultChanModes ?>" maxlength="32"
|
||||
title="These are the default modes ZNC will set when you join an empty channel." />
|
||||
<br /><span class="info">Empty = use standard value</span>
|
||||
</div>
|
||||
<div class="subsection third">
|
||||
<div class="inputlabel">Buffer Size:</div>
|
||||
<div><input type="number" name="bufsize" value="<? VAR BufferCount ?>" min="0" /></div>
|
||||
<input type="number" name="bufsize" value="<? VAR BufferCount ?>" min="0"
|
||||
title="This is the amount of lines that the playback buffer will store before dropping off the oldest line.
|
||||
The buffers are stored in the memory by default." />
|
||||
<br /><span class="info">Empty = use standard value</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -213,22 +231,24 @@
|
||||
<div class="sectionbody">
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Timestamp Format:</div>
|
||||
<div><input type="text" name="timestampformat" value="<? VAR TimestampFormat ?>" class="full" /></div>
|
||||
<input type="text" name="timestampformat" value="<? VAR TimestampFormat ?>" class="full"
|
||||
title="The format for the timestamps used in buffers, for example [%H:%M:%S]." />
|
||||
</div>
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Timezone:</div>
|
||||
<div>
|
||||
<input type="text" name="timezone" value="<? VAR Timezone ?>" class="half" list="timezone_list" />
|
||||
<datalist id="timezone_list">
|
||||
<? LOOP TZLoop ?>
|
||||
<option value="<? VAR TZ ?>"/>
|
||||
<? ENDLOOP ?>
|
||||
</datalist>
|
||||
</div>
|
||||
<input type="text" name="timezone" value="<? VAR Timezone ?>" class="half" list="timezone_list"
|
||||
title="Select your timezone." />
|
||||
<datalist id="timezone_list">
|
||||
<? LOOP TZLoop ?>
|
||||
<option value="<? VAR TZ ?>"/>
|
||||
<? ENDLOOP ?>
|
||||
</datalist>
|
||||
</div>
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Join Tries:</div>
|
||||
<div><input type="number" name="jointries" value="<? VAR JoinTries ?>" class="third" min="0" /></div>
|
||||
<input type="number" name="jointries" value="<? VAR JoinTries ?>" class="third" min="0"
|
||||
title="This defines how often ZNC tries to join, if the first join failed,
|
||||
e.g. due to channel mode +i/+k or if you're banned." />
|
||||
</div>
|
||||
<div class="subsection half">
|
||||
<div class="inputlabel">CTCP Replies:</div>
|
||||
@@ -239,7 +259,7 @@
|
||||
</div>
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Skin:</div>
|
||||
<div>
|
||||
|
||||
<? IF SkinLoop ROWS > 1 ?>
|
||||
<select name="skin">
|
||||
<option value="">- Global -</option>
|
||||
@@ -250,7 +270,7 @@
|
||||
<? ELSE ?>
|
||||
No other skins found
|
||||
<? ENDIF ?>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div style="clear: both;"></div>
|
||||
</div>
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
<? INC Header.tmpl ?>
|
||||
|
||||
<div class="textsection">
|
||||
|
||||
<p>Welcome to the ZNC webadmin module. All changes you make will be in effect immediately after
|
||||
you submitted them.</p>
|
||||
|
||||
<p>Welcome to the ZNC webadmin module.<br/>
|
||||
All changes you make will be in effect immediately after you submitted them.</p>
|
||||
</div>
|
||||
|
||||
<? INC Footer.tmpl ?>
|
||||
<? INC Footer.tmpl ?>
|
||||
@@ -9,7 +9,7 @@
|
||||
<div class="sectionbg">
|
||||
<div class="sectionbody">
|
||||
<div class="subsection">
|
||||
<div>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -36,9 +36,9 @@
|
||||
<? ENDLOOP ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div style="clear: both;"></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -49,70 +49,78 @@
|
||||
<div class="sectionbody">
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Skin:</div>
|
||||
<div>
|
||||
|
||||
<select name="skin">
|
||||
<? LOOP SkinLoop ?>
|
||||
<option value="<? VAR Name ?>"<? IF Checked ?> selected="selected"<? ENDIF ?>><? IF Name == "_default_" ?>Default<? ELSE ?><? VAR Name ?><? ENDIF ?></option>
|
||||
<? ENDLOOP ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div style="clear: both;"></div>
|
||||
|
||||
|
||||
<div class="subsection third">
|
||||
<div class="inputlabel">Status Prefix:</div>
|
||||
<div><input type="text" name="statusprefix" value="<? VAR StatusPrefix ?>" /></div>
|
||||
<input type="text" name="statusprefix" value="<? VAR StatusPrefix ?>"
|
||||
title="The prefix for the status and module queries."/>
|
||||
<br /><span class="info">Default for new users only.</span>
|
||||
</div>
|
||||
<div style="clear: both;"></div>
|
||||
|
||||
|
||||
<div class="subsection half">
|
||||
<div class="inputlabel">Maximum Buffer Size:</div>
|
||||
<div><input type="text" name="maxbufsize" value="<? VAR MaxBufferSize ?>" /></div>
|
||||
<input type="text" name="maxbufsize" value="<? VAR MaxBufferSize ?>"
|
||||
title="Sets the global Max Buffer Size a user can have."/>
|
||||
</div>
|
||||
<div style="clear: both;"></div>
|
||||
|
||||
|
||||
<div class="subsection half">
|
||||
<div class="inputlabel">Connect Delay:</div>
|
||||
<div><input type="text" name="connectdelay" value="<? VAR ConnectDelay ?>" /></div>
|
||||
<input type="text" name="connectdelay" value="<? VAR ConnectDelay ?>"
|
||||
title="The time every connection will be delayed, in seconds.
|
||||
Some servers refuse your connection if you reconnect too fast.
|
||||
This affects the connection between ZNC and the IRC server;
|
||||
not the connection between your IRC client and ZNC. "/>
|
||||
</div>
|
||||
<div style="clear: both;"></div>
|
||||
|
||||
|
||||
<div class="subsection half">
|
||||
<div class="inputlabel">Server Throttle:</div>
|
||||
<div><input type="text" name="serverthrottle" value="<? VAR ServerThrottle ?>" /></div>
|
||||
<input type="text" name="serverthrottle" value="<? VAR ServerThrottle ?>"
|
||||
title="The time between two connect attempts to the same hostname." />
|
||||
</div>
|
||||
<div style="clear: both;"></div>
|
||||
|
||||
|
||||
<div class="subsection half">
|
||||
<div class="inputlabel">Anonymous IP Limit:</div>
|
||||
<div><input type="text" name="anoniplimit" value="<? VAR AnonIPLimit ?>" /></div>
|
||||
<input type="text" name="anoniplimit" value="<? VAR AnonIPLimit ?>"
|
||||
title="Limits the number of unidentified connections per IP." />
|
||||
</div>
|
||||
<div style="clear: both;"></div>
|
||||
|
||||
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Protect Web Sessions:</div>
|
||||
<div class="checkbox"><input type="checkbox" name="protectwebsessions" id="protectwebsessions_checkbox"<? IF ProtectWebSessions ?> checked="checked"<? ENDIF ?> />
|
||||
<label for="protectwebsessions_checkbox">Disallow IP changing during each web session</label></div>
|
||||
</div>
|
||||
<div style="clear: both;"></div>
|
||||
|
||||
|
||||
<div class="subsection twothird">
|
||||
<div class="inputlabel">MOTD:</div>
|
||||
<div><textarea name="motd" cols="70" rows="5" class="monospace"><? LOOP MOTDLoop ?><? VAR Line ?>
|
||||
<textarea name="motd" cols="70" rows="5" class="monospace"><? LOOP MOTDLoop ?><? VAR Line ?>
|
||||
<? ENDLOOP ?>
|
||||
</textarea></div>
|
||||
</textarea>
|
||||
<br /><span class="info">"Message of the Day", sent to all ZNC users on connect.</span>
|
||||
</div>
|
||||
|
||||
<div class="subsection twothird">
|
||||
<div class="inputlabel">BindHosts:</div>
|
||||
<div><textarea name="bindhosts" cols="70" rows="8"><? LOOP BindHostLoop ?><? VAR BindHost ?>
|
||||
<textarea name="bindhosts" cols="70" rows="8"><? LOOP BindHostLoop ?><? VAR BindHost ?>
|
||||
<? ENDLOOP ?>
|
||||
</textarea></div>
|
||||
</textarea>
|
||||
<br /><span class="info">One host name or IP entry per line.</span>
|
||||
</div>
|
||||
<div style="clear: both;"></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -132,8 +140,19 @@
|
||||
<tbody>
|
||||
<? LOOP ModuleLoop ?>
|
||||
<tr class="<? IF __EVEN__ ?>evenrow<? ELSE ?>oddrow<? ENDIF ?>">
|
||||
<td class="mod_name"><input type="checkbox" name="loadmod" id="lm_<? VAR Name ?>" value="<? VAR Name ?>"<? IF Checked ?> checked="checked"<? ENDIF ?><? IF Disabled ?> disabled="disabled"<? ENDIF ?> /><label for="lm_<? VAR Name ?>"> <? IF Wiki ?> <a href="http://wiki.znc.in/<? VAR Wiki ?>"><? VAR Name ?></a> <? ELSE ?> <? VAR Name ?> <? ENDIF ?></label></td>
|
||||
<td class="mod_args"><input type="text" name="modargs_<? VAR Name ?>" value="<? VAR Args ?>" /></td>
|
||||
<td class="mod_name">
|
||||
<input type="checkbox" name="loadmod" id="lm_<? VAR Name ?>" value="<? VAR Name ?>"
|
||||
<? IF Checked ?> checked="checked"<? ENDIF ?>
|
||||
<? IF Disabled ?> disabled="disabled"<? ENDIF ?> />
|
||||
<label for="lm_<? VAR Name ?>">
|
||||
<? IF Wiki ?><a href="http://wiki.znc.in/<? VAR Wiki ?>"><? VAR Name ?></a>
|
||||
<? ELSE ?> <? VAR Name ?> <? ENDIF ?></label>
|
||||
</td>
|
||||
<td class="mod_args">
|
||||
<input type="text" name="modargs_<? VAR Name ?>" value="<? VAR Args ?>"
|
||||
<? IF !HasArgs ?> disabled="disabled"<? ENDIF ?>
|
||||
<? IF ArgsHelpText ?> title="<? VAR ArgsHelpText ?>"<? ENDIF ?> />
|
||||
</td>
|
||||
<td class="mod_descr"><? VAR Description ?></td>
|
||||
</tr>
|
||||
<? ENDLOOP ?>
|
||||
@@ -148,4 +167,4 @@
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<? INC Footer.tmpl ?>
|
||||
<? INC Footer.tmpl ?>
|
||||
@@ -97,6 +97,8 @@ private:
|
||||
|
||||
template<> void TModInfo<CFailToBanMod>(CModInfo& Info) {
|
||||
Info.SetWikiPage("fail2ban");
|
||||
Info.SetHasArgs(true);
|
||||
Info.SetArgsHelpText("Please enter the time in minutes for the IP banning and the number of failed logins before any action is taken.");
|
||||
}
|
||||
|
||||
GLOBALMODULEDEFS(CFailToBanMod, "Block IPs for some time after a failed login")
|
||||
|
||||
@@ -110,6 +110,8 @@ public:
|
||||
|
||||
template<> void TModInfo<CRejoinMod>(CModInfo& Info) {
|
||||
Info.SetWikiPage("kickrejoin");
|
||||
Info.SetHasArgs(true);
|
||||
Info.SetArgsHelpText("Please enter the number of seconds to wait before rejoining.");
|
||||
}
|
||||
|
||||
NETWORKMODULEDEFS(CRejoinMod, "Autorejoin on kick")
|
||||
|
||||
@@ -472,6 +472,8 @@ void CModTclStartTimer::RunJob() {
|
||||
|
||||
template<> void TModInfo<CModTcl>(CModInfo& Info) {
|
||||
Info.SetWikiPage("modtcl");
|
||||
Info.SetHasArgs(true);
|
||||
Info.SetArgsHelpText("The argument is the number of seconds to wait before rejoining.");
|
||||
}
|
||||
|
||||
NETWORKMODULEDEFS(CModTcl, "Loads Tcl scripts as ZNC modules")
|
||||
|
||||
@@ -162,6 +162,8 @@ public:
|
||||
|
||||
template<> void TModInfo<CNickServ>(CModInfo& Info) {
|
||||
Info.SetWikiPage("nickserv");
|
||||
Info.SetHasArgs(true);
|
||||
Info.SetArgsHelpText("Please enter your nickserv password.");
|
||||
}
|
||||
|
||||
NETWORKMODULEDEFS(CNickServ, "Auths you with NickServ")
|
||||
|
||||
@@ -607,6 +607,8 @@ private:
|
||||
|
||||
template<> void TModInfo<CPartylineMod>(CModInfo& Info) {
|
||||
Info.SetWikiPage("partyline");
|
||||
Info.SetHasArgs(true);
|
||||
Info.SetArgsHelpText("You may enter a list of channels the user joins, when entering the internal partyline.");
|
||||
}
|
||||
|
||||
GLOBALMODULEDEFS(CPartylineMod, "Internal channels and queries for users connected to znc")
|
||||
|
||||
@@ -486,6 +486,8 @@ private:
|
||||
|
||||
template<> void TModInfo<CQModule>(CModInfo& Info) {
|
||||
Info.SetWikiPage("Q");
|
||||
Info.SetHasArgs(true);
|
||||
Info.SetArgsHelpText("Please provide your username and password for Q.");
|
||||
}
|
||||
|
||||
NETWORKMODULEDEFS(CQModule, "Auths you with QuakeNet's Q bot.")
|
||||
|
||||
@@ -243,6 +243,8 @@ public:
|
||||
|
||||
template<> void TModInfo<CSampleMod>(CModInfo& Info) {
|
||||
Info.SetWikiPage("sample");
|
||||
Info.SetHasArgs(true);
|
||||
Info.SetArgsHelpText("Please describe the arguments used by your module in one or two sentences.");
|
||||
}
|
||||
|
||||
USERMODULEDEFS(CSampleMod, "To be used as a sample for writing modules")
|
||||
|
||||
@@ -217,6 +217,8 @@ void CSimpleAwayJob::RunJob() {
|
||||
|
||||
template<> void TModInfo<CSimpleAway>(CModInfo& Info) {
|
||||
Info.SetWikiPage("simple_away");
|
||||
Info.SetHasArgs(true);
|
||||
Info.SetArgsHelpText("Please enter 2 or 3 arguments, like -notimer awaymessage or -timer 5 awaymessage.");
|
||||
}
|
||||
|
||||
NETWORKMODULEDEFS(CSimpleAway, "Auto away when last client disconnects")
|
||||
NETWORKMODULEDEFS(CSimpleAway, "This module will automatically set you away on IRC while you are disconnected from the bouncer.")
|
||||
|
||||
@@ -654,6 +654,17 @@ public:
|
||||
l["Description"] = Info.GetDescription();
|
||||
l["Wiki"] = Info.GetWikiPage();
|
||||
|
||||
if(Info.GetHasArgs())
|
||||
{
|
||||
l["HasArgs"] = "true";
|
||||
}
|
||||
else
|
||||
{
|
||||
l["HasArgs"] = "false";
|
||||
}
|
||||
|
||||
l["ArgsHelpText"] = Info.GetArgsHelpText();
|
||||
|
||||
if (pNetwork) {
|
||||
CModule *pModule = pNetwork->GetModules().FindModule(Info.GetName());
|
||||
if (pModule) {
|
||||
@@ -1014,6 +1025,17 @@ public:
|
||||
l["Description"] = Info.GetDescription();
|
||||
l["Wiki"] = Info.GetWikiPage();
|
||||
|
||||
if(Info.GetHasArgs())
|
||||
{
|
||||
l["HasArgs"] = "true";
|
||||
}
|
||||
else
|
||||
{
|
||||
l["HasArgs"] = "false";
|
||||
}
|
||||
|
||||
l["ArgsHelpText"] = Info.GetArgsHelpText();
|
||||
|
||||
CModule *pModule = NULL;
|
||||
if (pUser)
|
||||
pModule = pUser->GetModules().FindModule(Info.GetName());
|
||||
@@ -1325,6 +1347,17 @@ public:
|
||||
l["Name"] = Info.GetName();
|
||||
l["Description"] = Info.GetDescription();
|
||||
l["Wiki"] = Info.GetWikiPage();
|
||||
|
||||
if(Info.GetHasArgs())
|
||||
{
|
||||
l["HasArgs"] = "true";
|
||||
}
|
||||
else
|
||||
{
|
||||
l["HasArgs"] = "false";
|
||||
}
|
||||
|
||||
l["ArgsHelpText"] = Info.GetArgsHelpText();
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
@@ -305,6 +305,7 @@ void CWebSock::SetVars() {
|
||||
m_Template["SessionUser"] = GetUser();
|
||||
m_Template["SessionIP"] = GetRemoteIP();
|
||||
m_Template["Tag"] = CZNC::GetTag(GetSession()->GetUser() != NULL, true);
|
||||
m_Template["Version"] = CZNC::GetVersion();
|
||||
m_Template["SkinName"] = GetSkinName();
|
||||
m_Template["_CSRF_Check"] = GetCSRFCheck();
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
jQuery License - http://jquery.org/license
|
||||
------------------------------------------
|
||||
|
||||
jQuery is dual licensed under MIT and GNU GPL v2 license.
|
||||
|
||||
The ZNC project uses jQuery under the GNU GPL v2 license.
|
||||
|
||||
You may find the license text at
|
||||
http://github.com/jquery/jquery/blob/master/GPL-LICENSE.txt
|
||||
|
||||
|
||||
Sizzle License
|
||||
--------------
|
||||
|
||||
The jQuery library uses the Sizzle selector engine (http://sizzlejs.com/) internally.
|
||||
Sizzle itself is triple-licensed under MIT, GNU GPL v2 and BSD license.
|
||||
|
||||
The ZNC project uses Sizzle under the GNU GPL v2 license.
|
||||
|
||||
You may find the license text at
|
||||
https://github.com/jquery/sizzle/blob/master/LICENSE
|
||||
|
||||
jQuery.PoshyTip License
|
||||
-----------------------
|
||||
|
||||
jQuery.Poshy Tip is dual licensed under the MIT and GPL licenses.
|
||||
@@ -0,0 +1,35 @@
|
||||
The Theme "ZNC-ATION" for "ZNC - Advanced IRC Bouncer"
|
||||
uses icons from the Nuvola Icons Set by David Vignoni (http://icon-king.com).
|
||||
|
||||
Nuvola Icons Set License - GNU LGPL v2.1 and v3
|
||||
-------------------------------------------------
|
||||
This library is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as
|
||||
published by the Free Software Foundation; either version 2.1 of
|
||||
the License, or (at your option) any later version.
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but without any warranty; without even the implied warranty of
|
||||
merchantability or fitness for a particular purpose.
|
||||
See version 2.1 and version 3 of the GNU Lesser General Public
|
||||
License for more details.
|
||||
|
||||
Only a selected set of icons is used.
|
||||
Files are renamed, due to the length of original filenames.
|
||||
|
||||
Our Filename | Original Nuvola Icon Set Filename
|
||||
----------------|----------------------------------
|
||||
key.png | Nuvola_apps_password
|
||||
gears.png | Nuvola_apps_kcmsystem
|
||||
error.png | Nuvola_apps_error
|
||||
user.png | Nuvola_apps_personal
|
||||
|
||||
Icon Set Overview
|
||||
-----------------
|
||||
http://commons.wikimedia.org/wiki/Nuvola/all
|
||||
|
||||
How to get more icons
|
||||
---------------------
|
||||
|
||||
Use the following link and save the image.
|
||||
http://upload.wikimedia.org/wikipedia/commons/thumb/f/f1/Nuvola_devices_blockdevice.png/32px-Nuvola_devices_blockdevice.png
|
||||
You might adjust the pixel size in the link to 24px.
|
||||
@@ -0,0 +1,61 @@
|
||||
/* CSS Stylesheet for jQuery PoshyTip */
|
||||
.tip-yellowsimple {
|
||||
z-index:1000;
|
||||
text-align:left;
|
||||
border:1px solid #c7bf93;
|
||||
border-radius:4px;
|
||||
-moz-border-radius:4px;
|
||||
-webkit-border-radius:4px;
|
||||
padding:6px 8px;
|
||||
min-width:50px;
|
||||
max-width:300px;
|
||||
color:#000;
|
||||
background-color:#fff9c9;
|
||||
/**
|
||||
* - If you set a background-image, border/padding/background-color will be ingnored.
|
||||
* You can set any padding to .tip-inner instead if you need.
|
||||
* - If you want a tiled background-image and border/padding for the tip,
|
||||
* set the background-image to .tip-inner instead.
|
||||
*/
|
||||
}
|
||||
.tip-yellowsimple .tip-inner {
|
||||
font:12px/16px arial,helvetica,sans-serif;
|
||||
}
|
||||
|
||||
/* Configure an arrow image - the script will automatically position it on the correct side of the tip */
|
||||
.tip-yellowsimple .tip-arrow-top {
|
||||
margin-top:-6px;
|
||||
margin-left:-5px; /* approx. half the width to center it */
|
||||
top:0;
|
||||
left:50%;
|
||||
width:9px;
|
||||
height:6px;
|
||||
background:url(../img/tip-yellowsimple_arrows.gif) no-repeat;
|
||||
}
|
||||
.tip-yellowsimple .tip-arrow-right {
|
||||
margin-top:-4px; /* approx. half the height to center it */
|
||||
margin-left:0;
|
||||
top:50%;
|
||||
left:100%;
|
||||
width:6px;
|
||||
height:9px;
|
||||
background:url(../img/tip-yellowsimple_arrows.gif) no-repeat -9px 0;
|
||||
}
|
||||
.tip-yellowsimple .tip-arrow-bottom {
|
||||
margin-top:0;
|
||||
margin-left:-5px; /* approx. half the width to center it */
|
||||
top:100%;
|
||||
left:50%;
|
||||
width:9px;
|
||||
height:6px;
|
||||
background:url(../img/tip-yellowsimple_arrows.gif) no-repeat -18px 0;
|
||||
}
|
||||
.tip-yellowsimple .tip-arrow-left {
|
||||
margin-top:-4px; /* approx. half the height to center it */
|
||||
margin-left:-6px;
|
||||
top:50%;
|
||||
left:0;
|
||||
width:6px;
|
||||
height:9px;
|
||||
background:url(../img/tip-yellowsimple_arrows.gif) no-repeat -27px 0;
|
||||
}
|
||||
@@ -0,0 +1,528 @@
|
||||
/* reset */
|
||||
* {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #F8F8F8;
|
||||
color: #333333;
|
||||
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
|
||||
font-size: 13px;
|
||||
font-weight: normal;
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
/* anchors */
|
||||
a, a:link, a:active, a:visited, a:focus {
|
||||
color: #00008B;
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
a:hover {color: red} /* mouse over link */
|
||||
|
||||
#wrapper {
|
||||
width: 960px;
|
||||
margin: 20px auto;
|
||||
border: 1px solid #BABABA;
|
||||
min-height: 450px;
|
||||
/* box-shadow */
|
||||
-webkit-box-shadow: 1px 1px 2px #ccc;
|
||||
-moz-box-shadow: 1px 1px 2px #ccc;
|
||||
box-shadow: 1px 1px 2px #ccc;
|
||||
}
|
||||
|
||||
.errorbar {
|
||||
background-color: #FFBABA;
|
||||
background-position: 10px center;
|
||||
background-repeat: no-repeat;
|
||||
border: 2px double #C50A1F;
|
||||
color: #D8000C;
|
||||
float: left;
|
||||
margin: 10px 0;
|
||||
padding: 15px 10px 15px 50px;
|
||||
width: 64%;
|
||||
margin-left: 10px;
|
||||
background-image: url('/pub/img/error.png');
|
||||
}
|
||||
|
||||
#main {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
aside {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
#banner_top {
|
||||
background-color: #B8B8B8;
|
||||
}
|
||||
|
||||
.zncversion
|
||||
{
|
||||
padding-right: 30px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
.zncversion a:hover {
|
||||
|
||||
color: white;
|
||||
}
|
||||
|
||||
.zncversion a, .zncversion a:link, .zncversion a:active, .zncversion a:visited, .zncversion a:focus {
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
#breadcrumb {
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
border-bottom: 1px solid #CCCCCC;
|
||||
/* 2/3 of the main content width */
|
||||
width: 67%;
|
||||
margin-bottom: 15px;
|
||||
padding: 0 0 3px 1px;
|
||||
}
|
||||
|
||||
#content {
|
||||
width: 67%;
|
||||
}
|
||||
|
||||
/* raquo vertical alignment in breadcrumb */
|
||||
.raquo {
|
||||
font-size: large;
|
||||
font-weight: normal;
|
||||
line-height: 18px;
|
||||
margin-left: 3px;
|
||||
margin-right: 3px;
|
||||
position: relative;
|
||||
top: -3px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
/* tables */
|
||||
table {
|
||||
font-size: 14px;
|
||||
}
|
||||
thead td, th {
|
||||
background-color: #BEBEBE;
|
||||
}
|
||||
|
||||
tbody td {
|
||||
background-color: #E0E0E0;
|
||||
}
|
||||
|
||||
td, th {
|
||||
min-width: 60px;
|
||||
padding: 4px 12px;
|
||||
}
|
||||
|
||||
tr.evenrow td {
|
||||
background-color: #D3D3D3;
|
||||
}
|
||||
/* sections */
|
||||
.section {
|
||||
border: 1px solid #CCCCCC;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
padding: 10px;
|
||||
margin-bottom: 10px;
|
||||
padding-top: 5px;
|
||||
background-color: #EDEDED;
|
||||
width: 100%; /* of main content */
|
||||
/* box-shadow */
|
||||
-webkit-box-shadow: 1px 1px px #fff; /* inset */
|
||||
-moz-box-shadow: 1px 1px px #fff;
|
||||
box-shadow: 1px 1px px #fff;
|
||||
}
|
||||
|
||||
/* formelements */
|
||||
.sectionbody input, textarea, select {
|
||||
border: 1px solid #CCCCCC;
|
||||
font-family: Tahoma,sans-serif;
|
||||
font-size: 14px;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.subsection { /* groups a div inputlabel (label) and formelement */
|
||||
display: table;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.checkboxandlabel {
|
||||
display: inline-block;
|
||||
width: 150px;
|
||||
margin-right: 50px;
|
||||
}
|
||||
|
||||
.subsection .inputlabel {
|
||||
text-align: left;
|
||||
width: 150px; /* table cell size */
|
||||
display: table-cell; /* input label is displayed as a table cell */
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
input {
|
||||
padding: 3px;
|
||||
width: 80%;
|
||||
border: 1px solid #999999;
|
||||
}
|
||||
|
||||
input[type=checkbox],
|
||||
input[type=radio]
|
||||
{
|
||||
margin: 2px 5px 2px 2px; /* 2nd value is distance between checkbox/radio and labeling text */
|
||||
border: 0px;
|
||||
width: 10%;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
/* formelement focus */
|
||||
input:focus, textarea:focus, select:focus {
|
||||
border: 1px solid #333333;
|
||||
/* the shadow color used is the tooltip border color */
|
||||
/* box-shadow */
|
||||
-webkit-box-shadow: 0px 0px 2px #C7BF93;
|
||||
-moz-box-shadow: 0px 0px 2px #C7BF93;
|
||||
box-shadow: 0px 0px 2px #C7BF93;
|
||||
}
|
||||
|
||||
/* h */
|
||||
h1 {
|
||||
/* transition */
|
||||
-webkit-transition: all 0.2s linear;
|
||||
-moz-transition: all 0.2s linear;
|
||||
-ms-transition: all 0.2s linear;
|
||||
-o-transition: all 0.2s linear;
|
||||
transition: all 0.2s linear;
|
||||
/* color: #000000; black znc branding inset */
|
||||
color: #F8F8F8; /* remove black color, replaced with background col */
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: bold;
|
||||
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.1), 0 0 30px rgba(255, 255, 255, 0.125);
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin: 0 -11px 10px;
|
||||
padding-bottom: 4px;
|
||||
padding-left: 11px;
|
||||
border-bottom: 1px solid #DDDDDD;
|
||||
/* text-shadow */
|
||||
text-shadow: 1px 1px 0px #ffffff;
|
||||
filter: dropshadow(color=#ffffff, offx=1, offy=1);
|
||||
}
|
||||
|
||||
#banner-top {
|
||||
background-color: #999999;
|
||||
}
|
||||
|
||||
td.mod_name {
|
||||
font-size: 13px;
|
||||
width: 120px;
|
||||
}
|
||||
|
||||
/* box */
|
||||
.box {
|
||||
background: none repeat scroll 0 0 #ffffff;
|
||||
border: 5px double #DDDDDD;
|
||||
margin: 0 0 20px;
|
||||
padding: 0;
|
||||
width: 25%;
|
||||
}
|
||||
|
||||
.heading {
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
height: 20px;
|
||||
margin: 0;
|
||||
padding: 5px 10px;
|
||||
width: 50%;
|
||||
/* text-shadow */
|
||||
text-shadow: 1px 1px 1px #000000;
|
||||
filter: dropshadow(color=#00000, offx=1, offy=1);
|
||||
}
|
||||
|
||||
/* icon in box heading */
|
||||
.heading img {
|
||||
position: relative;
|
||||
top: -3px;
|
||||
vertical-align: text-top;
|
||||
padding-right: 3px;
|
||||
}
|
||||
|
||||
.box-inner-content {
|
||||
padding: 10px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* rounded edges */
|
||||
.rounded-top-right {
|
||||
border-radius: 0 20px 0 0;
|
||||
}
|
||||
.rounded-bottom-right {
|
||||
border-radius: 0 0 20px 0;
|
||||
}
|
||||
/* universal background-colors, they are used on the box headings */
|
||||
.blue {
|
||||
background-color: #00A6FC;
|
||||
border: 1px inset #00A6FC;
|
||||
color: #ffffff;
|
||||
}
|
||||
.red {
|
||||
background-color: #E91C21;
|
||||
border: 1px inset #E91C21;
|
||||
color: #ffffff;
|
||||
}
|
||||
.#ffffff {
|
||||
background-color: #E9E9E9;
|
||||
border: 1px inset #E9E9E9;
|
||||
color: #000000;
|
||||
}
|
||||
.black {
|
||||
background-color: #141414;
|
||||
border: 1px inset #141414;
|
||||
color: #333333;
|
||||
}
|
||||
.green {
|
||||
background-color: #7FAE00;
|
||||
border: 1px inset #7FAE00;
|
||||
color: #ffffff;
|
||||
}
|
||||
.yellow {
|
||||
background-color: #fcd400;
|
||||
border: 1px inset #fcd400;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
/* login + logout boxes */
|
||||
.infobar {
|
||||
background-color: #CCCCCC;
|
||||
}
|
||||
|
||||
#infobar_ident, .logoutbox, .loginbox {
|
||||
font-size: 14px;
|
||||
display: block;
|
||||
padding: 4px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.user_name {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
input.full, textarea.full, .full input, .full textarea {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
input.half, textarea.half, .half input, .half textarea {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
input.third, textarea.third, .third input, .third textarea {
|
||||
width: 33%;
|
||||
}
|
||||
|
||||
input.twothird, textarea.twothird, .twothird input, .twothird textarea {
|
||||
width: 80%; /* raised to 82 */
|
||||
}
|
||||
|
||||
input[type="submit"] {
|
||||
/* gradient */
|
||||
background: #e1001a; /* Old browsers */
|
||||
background: -moz-linear-gradient(top, #e1001a 0%, #c50a1f 100%); /* FF3.6+ */
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#e1001a), color-stop(100%,#c50a1f)); /* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(top, #e1001a 0%,#c50a1f 100%); /* Chrome10+,Safari5.1+ */
|
||||
background: -o-linear-gradient(top, #e1001a 0%,#c50a1f 100%); /* Opera 11.10+ */
|
||||
background: -ms-linear-gradient(top, #e1001a 0%,#c50a1f 100%); /* IE10+ */
|
||||
background: linear-gradient(top, #e1001a 0%,#c50a1f 100%); /* W3C */
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e1001a', endColorstr='#c50a1f',GradientType=0 ); /* IE6-9 */
|
||||
/* box-shadow */
|
||||
-webkit-box-shadow: 1px 0 0 #C50A1F, -1px 0 0 #C50A1F, 0 1px 0 #C50A1F, 0 -1px 0 #C50A1F, 0 5px 10px -5px #666666;
|
||||
-moz-box-shadow: 1px 0 0 #C50A1F, -1px 0 0 #C50A1F, 0 1px 0 #C50A1F, 0 -1px 0 #C50A1F, 0 5px 10px -5px #666666;
|
||||
box-shadow: 1px 0 0 #C50A1F, -1px 0 0 #C50A1F, 0 1px 0 #C50A1F, 0 -1px 0 #C50A1F, 0 5px 10px -5px #666666;
|
||||
/* text-shadow */
|
||||
text-shadow: 1px 1px 3px #E35061;
|
||||
filter: dropshadow(color=#E35061, offx=1, offy=1);
|
||||
border: 1px double #E35061;
|
||||
border-radius: 0 0 0 0;
|
||||
color: #FFFFFF;
|
||||
cursor: pointer;
|
||||
padding: 0px 25px;
|
||||
width: auto;
|
||||
heigth: 15px;
|
||||
font-weight: bold;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
input[type="submit"]:hover {
|
||||
background: none repeat scroll 0 0 #C50A1F;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
div.submitline {
|
||||
line-heigth: 15px;
|
||||
}
|
||||
|
||||
/* header banner - 3d css ribbon */
|
||||
header {
|
||||
margin: 0px auto;
|
||||
width: 980px;
|
||||
}
|
||||
|
||||
.ribbon {
|
||||
float: left;
|
||||
position: relative;
|
||||
top: 30px;
|
||||
width: 992px;
|
||||
left: -6px;
|
||||
height: 50px;
|
||||
z-index: 100; /* the stack order: foreground */
|
||||
/* gradient - colors used: red high contrast ( #E1001A, #C50A1F ) - bit darker: #BF3030, #B50A0A; */
|
||||
background: #ca1c21; /* Old browsers */
|
||||
background: -moz-linear-gradient(top, #ca1c21 0%, #b50a0a 100%); /* FF3.6+ */
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ca1c21), color-stop(100%,#b50a0a)); /* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(top, #ca1c21 0%,#b50a0a 100%); /* Chrome10+,Safari5.1+ */
|
||||
background: -o-linear-gradient(top, #ca1c21 0%,#b50a0a 100%); /* Opera 11.10+ */
|
||||
background: -ms-linear-gradient(top, #ca1c21 0%,#b50a0a 100%); /* IE10+ */
|
||||
background: linear-gradient(top, #ca1c21 0%,#b50a0a 100%); /* W3C */
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ca1c21', endColorstr='#b50a0a',GradientType=0 ); /* IE6-9 */
|
||||
/* box shadow */
|
||||
-moz-box-shadow: 0px 0px 4px rgba(0,0,0,0.55);
|
||||
-khtml-box-shadow: 0px 0px 4px rgba(0,0,0,0.55);
|
||||
-webkit-box-shadow: 0px 0px 4px rgba(0,0,0,0.55);
|
||||
}
|
||||
|
||||
.ribbon h1 {
|
||||
background: none repeat scroll 0 0 transparent;
|
||||
font-size: 30px;
|
||||
padding-left: 35px;
|
||||
padding-top: 6px;
|
||||
text-align: left;
|
||||
/* black text 1px inset, kind of a relief look */
|
||||
/*text-shadow: 1px 1px 0 #E1001A, -1px -1px 0 #C50A1F;*/
|
||||
/* white inset, on request */
|
||||
text-shadow: 1px 1px 0 #111111, -1px -1px 0 #777777;
|
||||
width: auto;
|
||||
line-height: 37px;
|
||||
}
|
||||
|
||||
.ribbon small {
|
||||
font-size: 40%;
|
||||
}
|
||||
|
||||
.triangle-left {
|
||||
border-color: transparent #8B0000 transparent transparent;
|
||||
border-style: solid;
|
||||
border-width: 15px;
|
||||
height: 0;
|
||||
left: -21px;
|
||||
position: relative;
|
||||
top: 65px;
|
||||
width: 0;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.triangle-right {
|
||||
border-color: transparent transparent transparent #8B0000;
|
||||
border-style: solid;
|
||||
border-width: 15px;
|
||||
height: 0;
|
||||
left: 971px;
|
||||
position: relative;
|
||||
top: 35px;
|
||||
width: 0;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
/* fake content box above the ribbon */
|
||||
.content-above-ribbon {
|
||||
border: 1px solid #BABABA;
|
||||
margin: 0 auto;
|
||||
position: relative;
|
||||
top: 31px;
|
||||
width: 960px;
|
||||
height: 20px;
|
||||
/* box-shadow */
|
||||
-webkit-box-shadow: 1px 1px 2px #ccc;
|
||||
-moz-box-shadow: 1px 1px 2px #ccc;
|
||||
box-shadow: 1px 1px 2px #ccc;
|
||||
}
|
||||
|
||||
/* float left and right */
|
||||
.float-left {
|
||||
float:left;
|
||||
}
|
||||
.float-right {
|
||||
float:right;
|
||||
}
|
||||
/* paddings */
|
||||
.pad-5 {
|
||||
padding: 5px;
|
||||
}
|
||||
.pad-10 {
|
||||
padding: 10px;
|
||||
}
|
||||
/* margins */
|
||||
.marg-5 {
|
||||
margin: 5px;
|
||||
}
|
||||
.marg-10 {
|
||||
margin: 10px;
|
||||
}
|
||||
.clearfix {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/* ul/li - list styling */
|
||||
ul {
|
||||
font-size: 14px;
|
||||
list-style-type: none; /* remove bullets */
|
||||
margin-left: 20px; /* indention */
|
||||
}
|
||||
|
||||
li {
|
||||
margin: 3px 0; /* space around list items */
|
||||
}
|
||||
|
||||
ul.nav li.active:before {
|
||||
color: red;
|
||||
content: "» ";
|
||||
font-weight: bold;
|
||||
/* element is indented by size of content, so subtract width of content */
|
||||
/* add width of padding-right */
|
||||
margin-left: -16px;
|
||||
padding-right: 4px; /* distance between raqou and element */
|
||||
/* vertical-align: middle; didnt work exact (2px off :( ), workaround: */
|
||||
top: -2px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
ul.nav li .title {
|
||||
font-weight: bold;
|
||||
}
|
||||
ul.nav li .modtitle { /* title of a module */
|
||||
}
|
||||
|
||||
ul.nav li .subitem {
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
ul a:hover:before, ul a:focus:before {
|
||||
content: "» ";
|
||||
color: #000000;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
/* element is indented by size of content, so subtract width of content */
|
||||
/* add width of padding-right */
|
||||
margin-left: -16px;
|
||||
padding-right: 4px; /* distance between raqou and element */
|
||||
/* vertical-align: middle; didnt work exact (2px off :( ), workaround: */
|
||||
top: -2px;
|
||||
position: relative;
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 107 B |
Binary file not shown.
|
After Width: | Height: | Size: 1.9 KiB |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
* ZNC Javascript - http://znc.in
|
||||
*/
|
||||
$(document).ready(function()
|
||||
{
|
||||
/**
|
||||
* jQ.Poshytip
|
||||
* This binds the tooltip to input formelements
|
||||
* and uses "title" attr as source for tooltip text.
|
||||
*/
|
||||
$('input[title]').poshytip({
|
||||
className: 'tip-yellowsimple',
|
||||
showOn: 'focus',
|
||||
alignTo: 'target',
|
||||
alignX: 'inner-left',
|
||||
offsetX: 0,
|
||||
offsetY: 5
|
||||
});
|
||||
})
|
||||
@@ -0,0 +1,11 @@
|
||||
<header>
|
||||
<div class="content-above-ribbon"> </div>
|
||||
<div class="ribbon">
|
||||
<h1>ZNC
|
||||
<small>Advanced IRC Bouncer</small>
|
||||
<small class="zncversion float-right"><? VAR Tag ?></small></small>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="triangle-left"></div>
|
||||
<div class="triangle-right"></div>
|
||||
</header>
|
||||
@@ -0,0 +1,72 @@
|
||||
<!DOCTYPE html>
|
||||
<? INC Options.tmpl ?>
|
||||
<? ADDROW CSSLoop HREF=/pub/css/znc-ation.css ?>
|
||||
<? ADDROW CSSLoop HREF=/pub/css/tip-yellowsimple.css ?>
|
||||
<? ADDROW CSSLoop HREF=/pub/css/jquery.checkbox.css ?>
|
||||
<? ADDROW JSLoop HREF=/pub/js/jquery-1.7.1.min.js ?>
|
||||
<? ADDROW JSLoop HREF=/pub/js/jquery.poshytip.min.js ?>
|
||||
<? ADDROW JSLoop HREF=/pub/js/jquery.checkbox.min.js ?>
|
||||
<? ADDROW JSLoop HREF=/pub/js/znc.js ?>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>ZNC - <? VAR Title DEFAULT="Web Frontend" ?></title>
|
||||
<? LOOP CSSLoop ?>
|
||||
<?IF HREF?><link rel="stylesheet" href="<? VAR HREF ?>" /><?ENDIF?>
|
||||
<?ENDLOOP?>
|
||||
<link rel="shortcut icon" href="/pub/img/favicon.ico" />
|
||||
|
||||
<? LOOP JSLoop ?>
|
||||
<?IF HREF?><script type="text/javascript" src="<? VAR HREF ?>"></script><?ENDIF?>
|
||||
<?ENDLOOP?>
|
||||
|
||||
<? INC ExtraHeader.tmpl ?>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- Banner -->
|
||||
<? INC Banner.tmpl ?>
|
||||
<!-- !Banner -->
|
||||
|
||||
<!-- Wrapper -->
|
||||
<div id="wrapper">
|
||||
|
||||
<!-- MessageBar -->
|
||||
<? INC MessageBar.tmpl ?>
|
||||
<!-- !MessageBar -->
|
||||
|
||||
<!-- InfoBar -->
|
||||
<? INC InfoBar.tmpl ?>
|
||||
<!-- !InfoBar -->
|
||||
|
||||
<? IF LoggedIn ?>
|
||||
<? INC Menu.tmpl ?>
|
||||
<? ENDIF ?>
|
||||
|
||||
<!-- Main -->
|
||||
<div id="main">
|
||||
|
||||
<!-- Content -->
|
||||
<div id="content">
|
||||
|
||||
<!-- BreadCrumbs -->
|
||||
<? INC BreadCrumbs.tmpl ?>
|
||||
<!-- !BreadCrumbs -->
|
||||
|
||||
<div id="subpage">
|
||||
|
||||
<? REM ?>
|
||||
In your subpage (module page or static page) you'll probably want to do something like this...
|
||||
|
||||
<? INC Header.tmpl ?>
|
||||
This is my <b>super</b> cool sub page!
|
||||
<? INC Footer.tmpl ?>
|
||||
|
||||
If you'd like to add your own local css file to be included after the global main.css,
|
||||
you can make your own Header.tmpl like so...
|
||||
|
||||
<? ADDROW CSSLoop HREF=/pub/your_local.css ?>
|
||||
<? ADDROW JSLoop HREF=/pub/your_local.js ?>
|
||||
<? INC BaseHeader.tmpl ?>
|
||||
|
||||
<? ENDREM ?>
|
||||
@@ -0,0 +1,5 @@
|
||||
<div id="breadcrumb">ZNC
|
||||
<? IF ModName ?><span class="raquo">»</span> Module <? VAR ModName ?><? ENDIF ?>
|
||||
<? REM ?><? IF PageName ?><span class="raquo">»</span> <? VAR PageName ?><? ENDIF ?><? ENDREM ?>
|
||||
<? IF Title && Title != *ModName ?><span class="raquo">»</span> <? VAR Title ?><? ENDIF ?>
|
||||
</div>
|
||||
@@ -0,0 +1,18 @@
|
||||
</div>
|
||||
<!-- !SubPage -->
|
||||
</div>
|
||||
<!-- !Content -->
|
||||
</div>
|
||||
<!-- !Main -->
|
||||
|
||||
<!-- FooterBar -->
|
||||
<footer>
|
||||
<? INC FooterTag.tmpl ?>
|
||||
</footer>
|
||||
<!-- !FooterBar -->
|
||||
|
||||
</div>
|
||||
<!-- !Wrapper -->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,22 @@
|
||||
<? REM ?>
|
||||
This REM block disables the loading of the _global_.css intentionally.
|
||||
<? ADDROW CSSLoop HREF=/pub/_default_.css ?>
|
||||
<? ENDREM ?>
|
||||
<? INC BaseHeader.tmpl ?>
|
||||
<? REM ?>
|
||||
|
||||
This is a wrapper file which simply includes BaseHeader.tmpl so that new skins can make
|
||||
a Header.tmpl similar to...
|
||||
|
||||
<? ADDROW CSSLoop HREF=/pub/myskin.css ?>
|
||||
<? INC BaseHeader.tmpl ?>
|
||||
|
||||
...this way a skin can base itself off of the same html as the default skin but still add
|
||||
custom css/js
|
||||
|
||||
@todo In the future I'd like to support something like <? INC File.tmpl SUPER ?> or even
|
||||
just do a current file vs inc'd file comparison to make sure they aren't the same.
|
||||
This way we can <? INC Header.tmpl ?> from the "derived" Header.tmpl and not cause
|
||||
an recursive loop.
|
||||
|
||||
<? ENDREM ?>
|
||||
@@ -0,0 +1,23 @@
|
||||
<div class="box infobar marg-10 float-right">
|
||||
|
||||
<div class="heading green rounded-bottom-right auto-width">
|
||||
<? IF LoggedIn ?>
|
||||
<img src="/pub/img/user.png" alt="user.png">
|
||||
<? VAR SessionUser DEFAULT="-Guest-" ?>
|
||||
<? ELSE ?>
|
||||
<img src="/pub/img/key.png" alt="key.png">
|
||||
Login
|
||||
<? ENDIF ?>
|
||||
</div>
|
||||
|
||||
<div class="box-inner-content">
|
||||
|
||||
<? IF LoggedIn ?>
|
||||
<span id="infobar_ident">From IP <? VAR SessionIP ?></span>
|
||||
<? ENDIF ?>
|
||||
|
||||
<? INC LoginBar.tmpl ?>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,24 @@
|
||||
<? IF LoggedIn ?>
|
||||
<span class="logoutbox">
|
||||
<a href="/logout">Logout</a>
|
||||
</span>
|
||||
<? ELSE IF !ModName && PageName == "login" ?>
|
||||
<span class="logoutbox"> </span>
|
||||
<? ELSE ?>
|
||||
<form action="/login" method="post">
|
||||
<input type="hidden" name="submitted" value="1" />
|
||||
<div class="loginbox">
|
||||
<p>
|
||||
<label for="user">Username</label>
|
||||
<input name="user" id="user" type="text" required
|
||||
title="Please enter your username." />
|
||||
</p>
|
||||
<p>
|
||||
<label for="password">Password</label>
|
||||
<input name="pass" id="password" type="password" required
|
||||
title="Enter the password for the username." />
|
||||
</p>
|
||||
<input type="submit" class="submit" value="Login" />
|
||||
</div>
|
||||
</form>
|
||||
<? ENDIF ?>
|
||||
@@ -0,0 +1,72 @@
|
||||
<menu class="box rounded-top-right marg-10 float-right clearfix">
|
||||
|
||||
<div class="heading blue rounded-bottom-right">
|
||||
<img src="/pub/img/gears.png" alt="gears.png">
|
||||
Menu
|
||||
</div>
|
||||
|
||||
<div class="box-inner-content">
|
||||
<ul class="nav">
|
||||
<li class="topitem<? IF !ModName && PageName == "index" ?> active<? ENDIF ?>">
|
||||
<a href="/">Home</a>
|
||||
</li>
|
||||
|
||||
<? IF GlobalModLoop ?>
|
||||
<li class="topitem parent">
|
||||
<span class="title">Global Modules</span>
|
||||
<ul>
|
||||
<? LOOP GlobalModLoop SORTASC=ModName ?>
|
||||
<li class="modtitle<? IF Active ?> active<? ENDIF ?>">
|
||||
<a href="<? VAR ModPath ?>"><? VAR Title ?></a>
|
||||
</li>
|
||||
<? LOOP SubPageLoop ?>
|
||||
<li class="subitem<? IF Active ?> active<? ENDIF ?>">
|
||||
<a href="<? VAR ModPath ?>/<? VAR PageName ?><? IF Params ?>?<? VAR Params ?><? ENDIF ?>"><? VAR Title ?></a>
|
||||
</li>
|
||||
<? ENDLOOP ?>
|
||||
<? ENDLOOP ?>
|
||||
</ul>
|
||||
</li>
|
||||
<? ENDIF ?>
|
||||
|
||||
<? IF UserModLoop ?>
|
||||
<li class="topitem parent">
|
||||
<span class="title">User Modules</span>
|
||||
<ul>
|
||||
<? LOOP UserModLoop SORTASC=ModName ?>
|
||||
<li class="modtitle<? IF Active ?> active<? ENDIF ?>">
|
||||
<a href="<? VAR ModPath ?>"><? VAR Title ?></a>
|
||||
</li>
|
||||
<? LOOP SubPageLoop ?>
|
||||
<li class="subitem<? IF Active ?> active<? ENDIF ?>">
|
||||
<a href="<? VAR ModPath ?>/<? VAR PageName ?><? IF Params ?>?<? VAR Params ?><? ENDIF ?>"><? VAR Title ?></a>
|
||||
</li>
|
||||
<? ENDLOOP ?>
|
||||
<? ENDLOOP ?>
|
||||
</ul>
|
||||
</li>
|
||||
<? ENDIF ?>
|
||||
|
||||
<? IF NetworkModLoop ?>
|
||||
<? LOOP NetworkModLoop SORTASC=NetworkName ?>
|
||||
<? IF ModLoop ?>
|
||||
<li class="topitem parent"><span class="title">Network Modules (<? VAR NetworkName ?>)</span>
|
||||
<ul>
|
||||
<? LOOP ModLoop SORTASC=ModName ?>
|
||||
<li class="modtitle<? IF Active ?> active<? ENDIF ?>">
|
||||
<a href="<? VAR ModPath ?>"><? VAR Title ?></a>
|
||||
</li>
|
||||
<? LOOP SubPageLoop ?>
|
||||
<li class="subitem<? IF Active ?> active<? ENDIF ?>">
|
||||
<a href="<? VAR ModPath ?>/<? VAR PageName ?><? IF Params ?>?<? VAR Params ?><? ENDIF ?>"><? VAR Title ?></a>
|
||||
</li>
|
||||
<? ENDLOOP ?>
|
||||
<? ENDLOOP ?>
|
||||
</ul>
|
||||
</li>
|
||||
<? ENDIF ?>
|
||||
<? ENDLOOP ?>
|
||||
<? ENDIF ?>
|
||||
</ul>
|
||||
</div>
|
||||
</menu>
|
||||
Reference in New Issue
Block a user