Next revision | Previous revision |
custom:ssjs_template [2021/01/27 20:48] – created ecbbs | custom:ssjs_template [2021/02/19 11:35] (current) – [The SSJS Template Scheme] beautify (haha) and add useful example mortifis |
---|
each of the special codes contained in those files do will follow. | each of the special codes contained in those files do will follow. |
| |
=== Footer === | === Fооter === |
| |
../web/templates/default/footer.inc | ../web/templates/default/footer.inc |
privacy statements or anything else can be placed here and they will | privacy statements or anything else can be placed here and they will |
be displayed at the bottom of each page. | be displayed at the bottom of each page. |
| |
| === Custom .inc === |
| |
| To Add a custom link to the left side navigation list **using the nightshade theme** edit ''../web/lib/nightshade/leftnav_html.ssjs'' |
| and add the link to the list. \\ |
| note: the link expects an html tag "<li><a href="some-script.ssjs">My Link</a></li>" |
| |
| <code left_nav> |
| 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> |
| |
| Here we added the link **Logout** to the left side navigation that points to logout.ssjs. |
| Now create the script called ''../web/root/logout.ssjs'' |
| |
| <code bbs> |
| <!-- ../web/root/logout.ssjs --> |
| |
| template.logout = '<br><br>'+user.alias+' Logging out ...<br><br><br>'; |
| write('<meta http-equiv="refresh" content="2; url=index.ssjs">'); |
| |
| user.number = 0; |
| |
| 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("logout.inc"); |
| if(do_footer) |
| write_template("footer.inc"); |
| |
| </code> |
| |
| Now you need a corresponding ../web/root/templates/nightshade/logout.inc |
| |
| <code logout> |
| <!-- ../web/templates/nightshade/logout.inc --> |
| |
| <div id="contentcontainer"> |
| <div id="content2"> |
| @@logout@@ |
| </div> |
| </div> |
| </code> |
| |
| |
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 ===== |