Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
custom:ssjs_template [2021/02/19 08:21] – [The SSJS Template Scheme] mortifiscustom:ssjs_template [2021/02/19 11:35] (current) – [The SSJS Template Scheme] beautify (haha) and add useful example mortifis
Line 85: Line 85:
  
 <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.titlesystem.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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 ====
  
Line 325: Line 324:
 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 =====