Both sides previous revisionPrevious revisionNext revision | Previous revision |
custom:ssjs_template [2021/02/19 08:21] – [The SSJS Template Scheme] mortifis | custom:ssjs_template [2021/02/19 11:35] (current) – [The SSJS Template Scheme] beautify (haha) and add useful example mortifis |
---|
| |
<code left_nav> | <code left_nav> |
template.leftnav.push({html: '<li><a href="/members/externals.ssjs">External Programs</a></li><li><a href="/bbs/bbses.ssjs">BBS Links</a></li><li><a href="/members/lastcallers.ssjs">Last Callers</a></li><li><a href="/members/info.ssjs">Information</a></li><li><a href="/members/newpw.ssjs">Change Password</a></li><li><a href="/logout.ssjs">Logout</a></li><li><a href="/msgs/msgs.ssjs?msg_sub=mail">E-mail</a></li>' }); | template.leftnav.push({html: '<li><a href="/members/externals.ssjs">External Programs</a></li><li><a href="logout.ssjs">Logout</a></li><li><a href="/members/lastcallers.ssjs">Last Callers</a></li><li><a href="/members/info.ssjs">Information</a></li><li><a href="/members/newpw.ssjs">Change Password</a></li><li><a href="/logout.ssjs">Logout</a></li><li><a href="/msgs/msgs.ssjs?msg_sub=mail">E-mail</a></li>' }); |
</code> | </code> |
| |
Here we added the link BBS Links to the left side navigation that points to bbses.ssjs. | Here we added the link **Logout** to the left side navigation that points to logout.ssjs. |
Now create the script called ''../web/root/bbs/bbses.ssjs'' | Now create the script called ''../web/root/logout.ssjs'' |
| |
<code bbs> | <code bbs> |
load("../web/lib/template.ssjs"); | <!-- ../web/root/logout.ssjs --> |
| |
template.title= system.name + " - BBS Connect"; | template.logout = '<br><br>'+user.alias+' Logging out ...<br><br><br>'; |
| write('<meta http-equiv="refresh" content="2; url=index.ssjs">'); |
| |
template.whatever = "<br><br> Some kind of stuff will go here, eventually!" | user.number = 0; |
| |
var sub = ''; | |
| |
if(do_header) | if(do_header) |
write_template("header.inc"); | write_template("header.inc"); |
if(do_topnav) | if(do_topnav) |
load(topnav_html); | load(topnav_html); |
if(do_leftnav) | if(do_leftnav) |
load(leftnav_html); | load(leftnav_html); |
if(do_rightnav) | if(do_rightnav) |
write_template("rightnav.inc"); | write_template("rightnav.inc"); |
| write_template("logout.inc"); |
| if(do_footer) |
| write_template("footer.inc"); |
| |
write_template("bbses.inc"); | |
| |
if(do_footer) | |
write_template("footer.inc"); | |
</code> | </code> |
| |
Now you need a corresponding ../web/root/templates/nightshade/bbbes.inc | Now you need a corresponding ../web/root/templates/nightshade/logout.inc |
| |
<code inc> | <code logout> |
<!-- $Id: main.inc,v 1.4 2018/03/14 02:19:55 deuce Exp $ --> | <!-- ../web/templates/nightshade/logout.inc --> |
| |
<!-- Begin BBS Connect Content --> | <div id="contentcontainer"> |
| <div id="content2"> |
| @@logout@@ |
| </div> |
| </div> |
| </code> |
| |
@@whatever@@ | |
| |
<!-- End Main Content --> | |
</code> | |
==== SSJS Theme Support ==== | ==== SSJS Theme Support ==== |
| |
inefficient to have thirty of forty message definitions being loaded when a | inefficient to have thirty of forty message definitions being loaded when a |
user is looking at the statistics page. | user is looking at the statistics page. |
| |
| ===== Embedding fTelnet ===== |
| |
| To add an fTelnet Logon Screen to your Main landing page there are a few steps you can follow |
| |
| 1). Copy ../web/root/ftlnet.ssjs to ftelnet_main.ssjs |
| 2). Edit ../web/root/ftelnet_main.ssjs and **remove** (otherwise just using ftelnet.ssjs there would be a mirroring of the leftnav) |
| <code del_if_do> |
| |
| /* comment out this |
| if(do_header) |
| write_template("header.inc"); |
| if(do_topnav) |
| load(topnav_html); |
| if(do_leftnav) |
| load(leftnav_html); |
| if(do_rightnav) |
| write_template("rightnav.inc"); |
| write_template(templatefile); |
| if(do_footer) |
| write_template("footer.inc"); |
| */ |
| |
| </code> |
| |
| 3). Continuing editing ../web/root/ftelnet_main.ssjs and add contents of the ftelent spalsh screen |
| <code spalsh> |
| |
| template.splash = 'G1swOzQwOzM3bQ0KG1sxOzMwbSQkJCQkyMjIyMjIJCQkJCQkJCQkJMjIyMjIyCQkJCQkJCQkJCQkJCQkJCQkJCQkJLy8vLy8vCQkJCQkJCQkJCQkJCQkJCQkvLy8vLy8JCQNCiQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJLy8vP0nG1szMW0sG1swOzMxbSwsLHl5eXkkJCQkIBtbMTszMG0kJCQkJCS8vLy8vLwkJCQkJCQkJCQkJCQkDQokJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQgG1swOzMxbSQkJCQbWzFt/RtbMDszMW39/f0nJycnJCQkG1sxbSQgG1szMG0kJCQkJCQgG1szMW0kJCQkG1swOzMxbXl5eXksLCwsG1sxOzMwbWD9vLy8JA0KJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkIBtbMzFtJBtbMDszMW0kJBtbMW0kIBtbMzBteXl5JCS8IBtbMzFtJBtbMDszMW0kJBtbMW0kIBtbMzBtJCQkJCQkIBtbMzFtJCQbWzA7MzFtJCRgYGBg/f39/SQkJCQgG1sxOzMwbSQNCiQbWzA7MzFtLnMkJCIiIiIiIiQkcy4bWzE7MzBtICQkJCAbWzA7MzFtLnMkJCIiIiIiIiQkcy4bWzE7MzBtJCQgG1swOzMxbSQkJBtbMW0kIBtbMzBtJCQnYCQgG1szMW0kG1swOzMxbSQkJCAbWzE7MzBteSQkJCQkJCAbWzMxbSQbWzA7MzFtJBtbMW0kJCAbWzMwbSQkJHl5eSAbWzA7MzFtJCQkJCAbWzE7MzBtJA0KJBtbMDszMW0kJCQkG1szN20gG1sxOzMwbSQkJCQbWzBtIBtbMzFtJCQkJBtbMTszMG0gJCQkG1swbSAbWzMxbSQkJCQbWzM3bSAbWzE7MzBtJCQkJBtbMG0gG1szMW0kJCQkG1sxOzMwbSQkIBtbMDszMW0kG1sxbSQkG1swOzMxbSQgG1sxOzMwbcgkLiwkIBtbMzFtJCQbWzA7MzFtJBtbMW0kIBtbMzBtJCQkJCQkJCAbWzMxbSQbWzA7MzFtJBtbMW0kG1swOzMxbSQgG1sxOzMwbcgkJCQkvCAbWzMxbSQbWzA7MzFtJBtbMW0kG1swOzMxbSQgG1sxOzMwbSQNCiQbWzA7MzFtJCQkJBtbMzdtIBtbMTszMG0kICAkG1swbSAbWzMxbSQkJCQbWzM3bSAbWzE7MzBtJCQkG1swbSAbWzMxbSQkJCQbWzM3bSAbWzE7MzBtJCQkJCQkJCQkJCR5IBtbMDszMW0kJBtbMW0kG1swOzMxbSQgG1sxOzMwbSQkJCQgG1szMW0kJCQbWzA7MzFtJCAbWzE7MzBtJCQkJCQkJHkgG1szMW0kG1swOzMxbSQkJCAbWzE7MzBtJCQkJCAbWzA7MzFtJCQbWzFtJCQgG1szMG15JA0KJBtbMDszMW0ksCQkG1szN20gG1sxOzMwbSQkJCQbWzBtIBtbMzFtJLAkJBtbMzdtIBtbMTszMG0kJCQbWzBtIBtbMzFtJCQkJBtbMzdtIBtbMTszMG0kJCQkJCQkJCQkJCQgG1szMW0kG1swOzMxbSQkG1sxbSQgG1szMG0kvLy8c3NzeXl5JCQkJCQkJCQgG1szMW0kG1swOzMxbSQkG1sxbSQgG1szMG0kJCQkIBtbMDszMW0kG1sxbSQkJCAbWzMwbSQkDQokG1swOzMxbSQkJCQiIiIiICAkJCQkG1szN20gG1sxOzMwbSQkJBtbMG0gG1szMW0kJCQkG1szN20gG1sxOzMwbSQkJCQkJCQkJCwkJCAbWzMxbSQkG1swOzMxbSQbWzFtJCAbWzMwbSQgG1swOzMxbSQkJCR5eXl5LCwsLCAbWzE7MzBtJLy8IBtbMzFtJCQbWzA7MzFtJCQgG1sxOzMwbcjIyMhcc3l5eXkkJA0KJBtbMDszMW0kJCQkG1szN20gG1sxOzMwbSQkJCQbWzBtIBtbMzFtJCQkJBtbMzdtIBtbMTszMG0kJCQgG1swOzMxbSSxJCQbWzM3bSAbWzE7MzBtJCQkJCQkJCQkeXkkIBtbMzFtJCQbWzA7MzFtJCQgG1sxOzMwbSR5eXl5IBtbMDszMW0kJCQbWzFtJBtbMDszMW39/f39IBtbMTszMG0kIBtbMDszMW1gYGAbWzFtYP39G1swOzMxbf39JCQkJHl5eXksLCwNChtbMTszMG0kG1swOzMxbSQkJCQbWzM3bSAbWzE7MzBtJCQkJBtbMG0gG1szMW0kJCQkG1szN20gG1sxOzMwbSQkJBtbMG0gG1szMW0kJCQkG1szN20gG1sxOzMwbSQkJCQkJCQkJCQkJCAbWzMxbSQbWzA7MzFtJBtbMW0kG1swOzMxbSQgG1sxOzMwbSQkJCQkIBtbMDszMW0kJCQkIBtbMTszMG3IJCQkJCQkJCQkeXl5eSwsLCwsIBtbMDszMW0kG1sxbSQbWzA7MzFtJCQNChtbMTszMG0kG1swOzMxbSQkJCQbWzM3bSAbWzE7MzBtJCQkJBtbMG0gG1szMW0ksiQkG1szN20gG1sxOzMwbSQkJBtbMG0gG1szMW0kJCQkG1szN20gG1sxOzMwbSQkJCQkJCQkJCQkJCAbWzA7MzFtJBtbMW0kG1swOzMxbSQkIBtbMTszMG3IJCQkJHkgG1szMW0kG1swOzMxbSQkJCAbWzE7MzBtJCQkJCQkvLy8vLy8JCQkJCQkIBtbMDszMW0kJCQkDQobWzE7MzBtJBtbMDszMW0kJCQkG1szN20gG1sxOzMwbSQkJCQbWzBtIBtbMzFtJCQkJBtbMzdtIBtbMTszMG0kJCQbWzBtIBtbMzFtJLIkJBtbMzdtIBtbMTszMG0kJCQkJCQkJCQkJCR5IBtbMDszMW0kJBtbMW0kG1swOzMxbSQgG1sxOzMwbSQkJCQkIBtbMDszMW0kG1sxbSQbWzA7MzFtJCQgG1sxOzMwbSQkJCQkJCAbWzA7MzFtJBtbMW0kJBtbMDszMW0kIBtbMTszMG0kJCQkJLwgG1szMW0kG1swOzMxbSQbWzFtJBtbMDszMW0kDQobWzE7MzBtJBtbMDszMW0kJCQksRtbMzdtIBtbMTszMG0kJCQkG1swbSAbWzMxbSQkJCQbWzM3bSAbWzE7MzBtJCQkG1swbSAbWzMxbSQkJCQbWzM3bSAbWzE7MzBtJCQkJBtbMG0gG1szMW0kJCQkG1sxOzMwbSQkJCAbWzA7MzFtJCQkJCAbWzE7MzBtJCQkJCQgG1szMW0kG1swOzMxbSQbWzFtJBtbMDszMW0kIBtbMzdtIBtbMTszMG3IJCQkvCAbWzMxbSQkG1swOzMxbSQbWzFtJCAbWzMwbSQkJCQkIBtbMDszMW0kJBtbMW0kJCAbWzMwbXkNCiQbWzA7MzFtcy4kJCQgG1sxOzMwbSQkJCQbWzA7MzFtICQkJCQgG1sxOzMwbSQkG1swbSAbWzMxbWD9JCQsLCwsLCwkJP0nG1sxOzMwbSQkJCQgG1swOzMxbSQbWzFtJBtbMDszMW0kJCAbWzE7MzBtyMjIJCR5IBtbMDszMW0kG1sxbSQkG1swOzMxbSQgG1sxOzMwbSQkJCQgG1szMW0kG1swOzMxbSQbWzFtJBtbMDszMW0kIBtbMTszMG15JCQkJCQgG1szMW0kG1swOzMxbSQbWzFtJBtbMDszMW0kIBtbMTszMG0kDQokJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCAbWzA7MzFtJCQkJHl5eRtbMW15G1swOzMxbSwbWzFtLCwbWzA7MzFtLBtbMW0kJBtbMDszMW0kG1sxbSQgG1szMG0kJEkkIBtbMDszMW0kJCQkIBtbMTszMG0kJCS8vLwgG1swOzMxbSQkG1sxbSQkIBtbMzBtJA0KJCQkJCQkG1swbW0bWzE7MzBtJBtbMG1vG1sxOzMwbSQbWzBtchtbMTszMG0kG1swbXQbWzE7MzBtJBtbMG1pG1sxOzMwbSQbWzBtZhtbMTszMG0kG1swbWkbWzE7MzBtJBtbMG1zG1sxOzMwbSQkG1swbTIbWzE7MzBtJBtbMG0wG1sxOzMwbSQbWzBtMhtbMTszMG0kG1swbTEbWzE7MzBtJCQkJCQkJCR5eXl5IBtbMDszMW1gYGBgG1sxbf0bWzA7MzFt/RtbMW39G1swOzMxbf0gG1sxOzMwbXl5eXkkJDskIBtbMDszMW0kJCQkLBtbMW0sG1swOzMxbSwsG1sxbXkbWzA7MzFteRtbMW15eRtbMDszMW0kG1sxbSQkJCAbWzMwbSQNCiQkJCQkJCQkJCQkJCQkJCQkyP39/bwkJCQkJCQkJCQkJCQkJCQkJCQkU7z9/f28UyQkJCQkJCQkJCR8JHl5eXkgG1swOzMxbf39G1sxbf0bWzA7MzFt/ScbWzFtJycnIBtbMzBteXl5eSQNCg=='; |
| |
| </code> |
| |
| 4). optionally you can visit https://embed-v2.ftelnet.ca/ and using their form generate the code using an ansi of your choosing. |
| note: you only need to copy/paste the Options.SplashScreen= 'whatever code' and save it as template.splash similar to above. |
| close and save. |
| |
| 5). add template.splash = '' value from above in ftelnet.ssjs as well |
| |
| 6). edit ../web/templates/nightshade/ftelnet.inc and add Options.SplashScreen = '@@splash@@'; |
| your ../web/templates/nightshade/ftelnet.inc options should like similar to |
| |
| <code opts> |
| |
| <!-- fTelnet --> |
| |
| <div id="fTelnetContainer" class="fTelnetContainer"></div> |
| <script>document.write('<script src="//embed-v2.ftelnet.ca/js/ftelnet-loader.norip.xfer.js?v=' + (new Date()).getTime() + '"><\/script>');</script> |
| <script> |
| var WSS = (location.protocol.toLowerCase() == 'https:'); |
| var Options = new fTelnetOptions(); |
| Options.BareLFtoCRLF = false; |
| Options.BitsPerSecond = 57600; |
| Options.ConnectionType = 'telnet'; |
| Options.Emulation = 'ansi-bbs'; |
| Options.Enter = '\r'; |
| Options.Font = 'CP437'; |
| Options.ForceWss = false; |
| Options.Hostname = '@@HostName@@'; |
| Options.LocalEcho = false; |
| Options.Port = (WSS ? @@WSSPort@@ : @@WSPort@@); |
| Options.ScreenColumns = 80; |
| Options.ScreenRows = 25; |
| Options.WebSocketUrlPath = '/?Port=@@TelnetPort@@'; |
| Options.SplashScreen = '@@splash@@'; |
| var fTelnet = new fTelnetClient('fTelnetContainer', Options); |
| </script> |
| |
| <!-- end fTelnet --> |
| </code> |
| |
| 7). edit ../web/root/index.ssjs and have it look similar to |
| |
| <code ibdx> |
| if(do_rightnav) |
| write_template("rightnav.inc"); |
| |
| //write_template("main.inc"); /* comment this out */ |
| |
| load('ftelnet_main.ssjs'); /* add this (this will add ftlenet logon screen to the main center portion */ |
| |
| if(do_footer) |
| write_template("footer.inc"); |
| |
| </code> |
| |
| 8). edit ../web/templates/nightshade/leftnav.inc and add an <li><a href="/ftelnet.ssjs">fTelnet Login</a></li> link to the exist nav list |
| |
| <code lnav> |
| |
| !-- Begin Left Nav --> |
| |
| <div id="navcontainer"> |
| <div id="navigation"> |
| <h4>Navigation</h4> |
| <ul> |
| <li><a href="/nodelist.ssjs">Who's Online</a></li><li><a href="/ftelnet.ssjs">fTelnet Login</a></li><<REPEAT leftnav>>@@leftnav:html@@<<END REPEAT leftnav>></ul> |
| </div> |
| </div> |
| |
| <!-- End Left Nav --> |
| |
| </code> |
| |
| 9). Confirm that your ws/wss ports are configured properly in ../ctrl/modopts.ini and that enabled and router ports are listening |
| |
| You should now have fTelnet links and fTelnet Logon Screen with a custom splash |
| |
| |
| |
===== See Also ===== | ===== See Also ===== |