enigma-bbs/art/mci.html

3138 lines
51 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset='utf-8'>
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/png" sizes="16x16" href="/enigma-bbs/assets/images/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="/enigma-bbs/assets/images/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="32x32" href="/enigma-bbs/assets/images/favicon-32x32.png">
<link rel="stylesheet" href="/enigma-bbs/assets/css/style.css?v=">
<!-- Begin Jekyll SEO tag v2.7.1 -->
<title>MCI Codes | ENiGMA½ BBS Software</title>
<meta name="generator" content="Jekyll v4.2.1" />
<meta property="og:title" content="MCI Codes" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="MCI Codes ENiGMA½ supports a variety of MCI codes. Some predefined codes produce information about the current user, system, or other statistics while others are used to instantiate a View." />
<meta property="og:description" content="MCI Codes ENiGMA½ supports a variety of MCI codes. Some predefined codes produce information about the current user, system, or other statistics while others are used to instantiate a View." />
<meta property="og:site_name" content="ENiGMA½ BBS Software" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2022-10-01T17:54:04+00:00" />
<meta name="twitter:card" content="summary" />
<meta property="twitter:title" content="MCI Codes" />
<script type="application/ld+json">
{"datePublished":"2022-10-01T17:54:04+00:00","description":"MCI Codes ENiGMA½ supports a variety of MCI codes. Some predefined codes produce information about the current user, system, or other statistics while others are used to instantiate a View.","mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/mci.html"},"url":"/enigma-bbs/art/mci.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"MCI Codes","dateModified":"2022-10-01T17:54:04+00:00","@context":"https://schema.org"}</script>
<!-- End Jekyll SEO tag -->
</head>
<body>
<div id="container">
<div class="sidebar" id="sidebar">
<hr class="mobile-divide">
<div class="container">
<a href="/enigma-bbs/"><img src="/enigma-bbs/assets/images/enigma-logo.png" class="logo" alt="Enigma logo"></a>
</div>
<ul>
<li>Installation</li>
<ul>
<li><a href="/enigma-bbs/installation/installation-methods.html">Installation Methods</a></li>
<li><a href="/enigma-bbs/installation/install-script.html">Install Script</a></li>
<li><a href="/enigma-bbs/installation/docker.html">Docker</a></li>
<li><a href="/enigma-bbs/installation/manual.html">Manual Installation</a></li>
<li>OS / Hardware Specific</li>
<ul>
<li><a href="/enigma-bbs/installation/hardware/rpi.html">Raspberry Pi</a></li>
<li><a href="/enigma-bbs/installation/hardware/windows.html">Installation Under Windows</a></li>
</ul>
<li><a href="/enigma-bbs/installation/network.html">Network Setup</a></li>
<li><a href="/enigma-bbs/installation/testing.html">Testing Your Installation</a></li>
<li><a href="/enigma-bbs/installation/production.html">Production Installation</a></li>
</ul>
<li>Configuration</li>
<ul>
<li><a href="/enigma-bbs/configuration/creating-config.html">Creating Initial Config Files</a></li>
<li><a href="/enigma-bbs/configuration/sysop-setup.html">SysOp Setup</a></li>
<li><a href="/enigma-bbs/configuration/config-files.html">Configuration Files</a></li>
<li><a href="/enigma-bbs/configuration/config-hjson.html">System Configuration</a></li>
<li><a href="/enigma-bbs/configuration/hjson.html">HJSON Config Files</a></li>
<li><a href="/enigma-bbs/configuration/menu-hjson.html">Menu HSJON</a></li>
<li><a href="/enigma-bbs/configuration/directory-structure.html">Directory Structure</a></li>
<li><a href="/enigma-bbs/configuration/external-binaries.html">External Support Binaries</a></li>
<li><a href="/enigma-bbs/configuration/archivers.html">Archivers</a></li>
<li><a href="/enigma-bbs/configuration/file-transfer-protocols.html">File Transfer Protocols</a></li>
<li><a href="/enigma-bbs/configuration/email.html">Email</a></li>
<li><a href="/enigma-bbs/configuration/colour-codes.html">Colour Codes</a></li>
<li><a href="/enigma-bbs/configuration/event-scheduler.html">Event Scheduler</a></li>
<li><a href="/enigma-bbs/configuration/acs.html">Access Condition System (ACS)</a></li>
<li><a href="/enigma-bbs/configuration/security.html">Security</a></li>
</ul>
<li>Miscellaneous</li>
<ul>
<li><a href="/enigma-bbs/misc/user-interrupt.html">User Interruptions</a></li>
</ul>
<li>File Base</li>
<ul>
<li><a href="/enigma-bbs/filebase/index.html">About File Areas</a></li>
<li><a href="/enigma-bbs/filebase/first-file-area.html">Configuring a File Base</a></li>
<li><a href="/enigma-bbs/filebase/acs.html">ACS</a></li>
<li><a href="/enigma-bbs/filebase/uploads.html">Uploads</a></li>
<li><a href="/enigma-bbs/filebase/web-access.html">Web Access</a></li>
<li><a href="/enigma-bbs/filebase/tic-support.html">TIC Support</a></li>
<li><a href="/enigma-bbs/filebase/network-mounts-and-symlinks.html">Network Mounts &amp; Symlinks</a></li>
</ul>
<li>Message Areas</li>
<ul>
<li><a href="/enigma-bbs/messageareas/configuring-a-message-area.html">Message Base</a></li>
<li><a href="/enigma-bbs/messageareas/message-networks.html">Message Networks</a></li>
<li><a href="/enigma-bbs/messageareas/bso-import-export.html">BSO Import / Export</a></li>
<li><a href="/enigma-bbs/messageareas/netmail.html">Netmail</a></li>
<li><a href="/enigma-bbs/messageareas/qwk.html">QWK Support</a></li>
<li><a href="/enigma-bbs/messageareas/ftn.html">FidoNet-Style Networks (FTN)</a></li>
</ul>
<li>Art</li>
<ul>
<li><a href="/enigma-bbs/art/general.html">General Art Information</a></li>
<li><a href="/enigma-bbs/art/themes.html">Themes</a></li>
<li class="active-nav">MCI Codes</li>
<li>Views</li>
<ul>
<li><a href="/enigma-bbs/art/views/button_view.html">Button View</a></li>
<li><a href="/enigma-bbs/art/views/edit_text_view.html">Edit Text View</a></li>
<li><a href="/enigma-bbs/art/views/full_menu_view.html">Full Menu View</a></li>
<li><a href="/enigma-bbs/art/views/horizontal_menu_view.html">Horizontal Menu View</a></li>
<li><a href="/enigma-bbs/art/views/mask_edit_text_view.html">Mask Edit Text View</a></li>
<li><a href="/enigma-bbs/art/views/multi_line_edit_text_view.html">Multi Line Edit Text View</a></li>
<li><a href="/enigma-bbs/art/views/predefined_label_view.html">Predefined Label View</a></li>
<li><a href="/enigma-bbs/art/views/spinner_menu_view.html">Spinner Menu View</a></li>
<li><a href="/enigma-bbs/art/views/text_view.html">Text View</a></li>
<li><a href="/enigma-bbs/art/views/toggle_menu_view.html">Toggle Menu View</a></li>
<li><a href="/enigma-bbs/art/views/vertical_menu_view.html">Vertical Menu View</a></li>
</ul>
</ul>
<li>Servers</li>
<ul>
<li>Login Servers</li>
<ul>
<li><a href="/enigma-bbs/servers/loginservers/telnet.html">Telnet Server</a></li>
<li><a href="/enigma-bbs/servers/loginservers/ssh.html">SSH Server</a></li>
<li><a href="/enigma-bbs/servers/loginservers/websocket.html">Web Socket / Web Interface Server</a></li>
</ul>
<li>Content Servers</li>
<ul>
<li><a href="/enigma-bbs/servers/contentservers/web-server.html">Web Server</a></li>
<li><a href="/enigma-bbs/servers/contentservers/gopher.html">Gopher Server</a></li>
<li><a href="/enigma-bbs/servers/contentservers/nntp.html">NNTP Server</a></li>
</ul>
</ul>
<li>Modding</li>
<ul>
<li><a href="/enigma-bbs/modding/local-doors.html">Local Doors</a></li>
<li><a href="/enigma-bbs/modding/door-servers.html">Door Servers</a></li>
<li><a href="/enigma-bbs/modding/telnet-bridge.html">Telnet Bridge</a></li>
<li><a href="/enigma-bbs/modding/existing-mods.html">Existing Mods</a></li>
<li><a href="/enigma-bbs/modding/file-area-list.html">File Area List</a></li>
<li><a href="/enigma-bbs/modding/last-callers.html">Last Callers</a></li>
<li><a href="/enigma-bbs/modding/whos-online.html">Who's Online</a></li>
<li><a href="/enigma-bbs/modding/user-list.html">User List</a></li>
<li><a href="/enigma-bbs/modding/msg-conf-list.html">Message Conference List</a></li>
<li><a href="/enigma-bbs/modding/msg-area-list.html">Message Area List</a></li>
<li><a href="/enigma-bbs/modding/bbs-list.html">BBS List</a></li>
<li><a href="/enigma-bbs/modding/rumorz.html">Rumorz</a></li>
<li><a href="/enigma-bbs/modding/file-transfer-protocol-select.html">File Transfer Protocol Select</a></li>
<li><a href="/enigma-bbs/modding/onelinerz.html">Onelinerz</a></li>
<li><a href="/enigma-bbs/modding/show-art.html">The Show Art Module</a></li>
<li><a href="/enigma-bbs/modding/file-base-download-manager.html">File Base Download Manager</a></li>
<li><a href="/enigma-bbs/modding/file-base-web-download-manager.html">File Base Web Download Manager</a></li>
<li><a href="/enigma-bbs/modding/set-newscan-date.html">Set Newscan Date Module</a></li>
<li><a href="/enigma-bbs/modding/node-msg.html">Node to Node Messaging</a></li>
<li><a href="/enigma-bbs/modding/top-x.html">TopX</a></li>
<li><a href="/enigma-bbs/modding/user-2fa-otp-config.html">2FA/OTP Config</a></li>
<li><a href="/enigma-bbs/modding/autosig-edit.html">Auto Signature Editor</a></li>
<li><a href="/enigma-bbs/modding/menu-modules.html">Menu Modules</a></li>
</ul>
<li>Administration</li>
<ul>
<li><a href="/enigma-bbs/admin/administration.html">Administration</a></li>
</ul>
<li>Modding</li>
<ul>
<li><a href="/enigma-bbs/modding/wfc.html">Waiting For Caller (WFC)</a></li>
</ul>
<li>Administration</li>
<ul>
<li><a href="/enigma-bbs/admin/oputil.html">oputil</a></li>
<li><a href="/enigma-bbs/admin/updating.html">Updating</a></li>
</ul>
<li>Troubleshooting</li>
<ul>
<li><a href="/enigma-bbs/troubleshooting/monitoring-logs.html">Monitoring Logs</a></li>
</ul>
</ul>
</div>
<div class="main_area">
<div class="container">
<section id="main_content">
<div class="PageNavigation">
<a class="btn" style="float:left;margin-right: 20px;" href="/enigma-bbs/art/themes.html">« Themes</a>
<a href="#sidebar" class="btn menu_button">MENU</a>
<a class="btn" style="float: right;margin-left: 20px" href="/enigma-bbs/art/views/button_view.html">Button View »</a>
<br clear="both">
</div>
<div class="page">
<h1 class="page-title">MCI Codes</h1>
<h2 id="mci-codes">MCI Codes</h2>
<p>ENiGMA½ supports a variety of MCI codes. Some <strong>predefined</strong> codes produce information about the current user, system, or other statistics while others are used to instantiate a <strong>View</strong>.</p>
<h2 id="general-information">General Information</h2>
<p>MCI codes are composed of two characters and are prefixed with a percent (%) symbol.</p>
<blockquote>
<p><img class="emoji" title=":information_source:" alt=":information_source:" src="https://github.githubassets.com/images/icons/emoji/unicode/2139.png" height="20" width="20"> To explicitly tie a MCI to a specific View ID, suffix the MCI code with a number. For example: <code class="language-plaintext highlighter-rouge">%BN1</code>.</p>
</blockquote>
<blockquote>
<p><img class="emoji" title=":information_source:" alt=":information_source:" src="https://github.githubassets.com/images/icons/emoji/unicode/2139.png" height="20" width="20"> Standard (non-focus) and focus colors are set by placing duplicate codes back to back in art files:</p>
</blockquote>
<p><img src="../assets/images/mci-example1.png" alt="Example" title="MCI Colors"></p>
<p>Some MCI codes have additional options that may be set directly from the code itself while others and more advanced options are controlled via the current theme.</p>
<h2 id="relationship-with-menus-art-and-themes">Relationship with Menus, Art, and Themes</h2>
<p>A MCI code that appears in a <code class="language-plaintext highlighter-rouge">menu.hjson</code> entry corresponds to that found in its associated art file. This same MCI code can be referenced in the <code class="language-plaintext highlighter-rouge">theme.hjson</code> in order to apply a theme.</p>
<p>See <a href="../docs/configuration/menu-hjson.md">Menus</a> and <a href="/enigma-bbs/art/themes.html">Themes</a> for more information.</p>
<h2 id="predefined-codes">Predefined Codes</h2>
<p>There are many predefined MCI codes that can be used anywhere on the system (placed in any art file).</p>
<table>
<thead>
<tr>
<th>Code</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code class="language-plaintext highlighter-rouge">BN</code></td>
<td>Board Name</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">VL</code></td>
<td>Version <em>label</em>, e.g. “ENiGMA½ v0.0.12-beta”</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">VN</code></td>
<td>Version <em>number</em>, eg.. “0.0.12-beta”</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">SN</code></td>
<td>SysOp username</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">SR</code></td>
<td>SysOp real name</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">SL</code></td>
<td>SysOp location</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">SA</code></td>
<td>SysOp affiliations</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">SS</code></td>
<td>SysOp sex</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">SE</code></td>
<td>SysOp email address</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">UN</code></td>
<td>Current users username</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">UI</code></td>
<td>Current users user ID</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">UG</code></td>
<td>Current users group membership(s)</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">UR</code></td>
<td>Current users real name</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">LO</code></td>
<td>Current users location</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">UA</code></td>
<td>Current users age</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">BD</code></td>
<td>Current users birthday (using theme date format)</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">US</code></td>
<td>Current users sex</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">UE</code></td>
<td>Current users email address</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">UW</code></td>
<td>Current users web address</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">UF</code></td>
<td>Current users affiliations</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">UT</code></td>
<td>Current users theme name</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">UD</code></td>
<td>Current users <em>theme ID</em> (e.g. “luciano_blocktronics”)</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">UC</code></td>
<td>Current users login/call count</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">ND</code></td>
<td>Current users connected node number</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">IP</code></td>
<td>Current users IP address</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">ST</code></td>
<td>Current users connected server name (e.g. “Telnet” or “SSH”)</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">FN</code></td>
<td>Current users active file base filter name</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">DN</code></td>
<td>Current users number of downloads</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">DK</code></td>
<td>Current users download amount (formatted to appropriate bytes/megs/etc.)</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">UP</code></td>
<td>Current users number of uploads</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">UK</code></td>
<td>Current users upload amount (formatted to appropriate bytes/megs/etc.)</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">NR</code></td>
<td>Current users upload/download ratio</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">KR</code></td>
<td>Current users upload/download <em>bytes</em> ratio</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">MS</code></td>
<td>Current users account creation date (using theme date format)</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">PS</code></td>
<td>Current users post count</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">PC</code></td>
<td>Current users post/call ratio</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">MD</code></td>
<td>Current users status/viewing menu/activity</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">MA</code></td>
<td>Current users active message area name</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">MC</code></td>
<td>Current users active message conference name</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">ML</code></td>
<td>Current users active message area description</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">CM</code></td>
<td>Current users active message conference description</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">SH</code></td>
<td>Current users term height</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">SW</code></td>
<td>Current users term width</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">AC</code></td>
<td>Current users total achievements</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">AP</code></td>
<td>Current users total achievement points</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">DR</code></td>
<td>Current users number of door runs</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">DM</code></td>
<td>Current users total amount of time spent in doors</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">DT</code></td>
<td>Current date (using theme date format)</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">CT</code></td>
<td>Current time (using theme time format)</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">OS</code></td>
<td>System OS (Linux, Windows, etc.)</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">OA</code></td>
<td>System architecture (x86, x86_64, arm, etc.)</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">SC</code></td>
<td>System CPU model</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">NV</code></td>
<td>System underlying Node.js version</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">AN</code></td>
<td>Current active node count</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">TC</code></td>
<td>Total login/calls to the system <em>ever</em>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">TT</code></td>
<td>Total login/calls to the system <em>today</em>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">RR</code></td>
<td>Displays a random rumor</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">SD</code></td>
<td>Total downloads, system wide</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">SO</code></td>
<td>Total downloaded amount, system wide (formatted to appropriate bytes/megs/etc.)</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">SU</code></td>
<td>Total uploads, system wide</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">SP</code></td>
<td>Total uploaded amount, system wide (formatted to appropriate bytes/megs/etc.)</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">TF</code></td>
<td>Total number of files on the system</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">TB</code></td>
<td>Total file base size (formatted to appropriate bytes/megs/gigs/etc.)</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">TP</code></td>
<td>Total messages posted/imported to the system <em>currently</em>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">PT</code></td>
<td>Total messages posted/imported to the system <em>today</em>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">FT</code></td>
<td>Total number of uploads to the system <em>today</em>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">FB</code></td>
<td>Total upload amount <em>today</em> (formatted to appropriate bytes/megs/etc. )</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">DD</code></td>
<td>Total number of downloads from the system <em>today</em>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">DB</code></td>
<td>Total download amount <em>today</em> (formatted to appropriate bytes/megs/etc. )</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">MB</code></td>
<td>System memory</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">MF</code></td>
<td>System <em>free</em> memory</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">LA</code></td>
<td>System load average (e.g. 0.25)<br>(May not be available on some platforms)</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">CL</code></td>
<td>System current load percentage<br>(May not be available on some platforms)</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">UU</code></td>
<td>System uptime in friendly format</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">LC</code></td>
<td>Last caller to the system (username)</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">LT</code></td>
<td>Time of last caller</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">LD</code></td>
<td>Date of last caller</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">TU</code></td>
<td>Total number of users on the system</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">NT</code></td>
<td>Total <em>new</em> users <em>today</em>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">NM</code></td>
<td>Count of new messages <strong>address to the current user</strong> across all message areas in which they have access</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">NP</code></td>
<td>Count of new private mail to the current user</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">IA</code></td>
<td>Indicator as to rather the current user is <strong>available</strong> or not. See also <code class="language-plaintext highlighter-rouge">getStatusAvailIndicators()</code> in <a href="/enigma-bbs/art/themes.html">Themes</a>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">IV</code></td>
<td>Indicator as to rather the curent user is <strong>visible</strong> or not. See also <code class="language-plaintext highlighter-rouge">getStatusVisibleIndicators()</code> in <a href="/enigma-bbs/art/themes.html">Themes</a>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">PI</code></td>
<td>Ingress bytes for the current process (since ENiGMA started up)</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">PE</code></td>
<td>Egress bytes for the current process (since ENiGMA started up)</td>
</tr>
</tbody>
</table>
<p>Some additional special case codes also exist:</p>
<table>
<thead>
<tr>
<th>Code</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code class="language-plaintext highlighter-rouge">CF##</code></td>
<td>Moves the cursor position forward <em>##</em> characters</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">CB##</code></td>
<td>Moves the cursor position back <em>##</em> characters</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">CU##</code></td>
<td>Moves the cursor position up <em>##</em> characters</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">CD##</code></td>
<td>Moves the cursor position down <em>##</em> characters</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">XY</code></td>
<td>A special code that may be utilized for placement identification when creating menus or to extend an otherwise empty space in an art file down the screen.</td>
</tr>
</tbody>
</table>
<blockquote>
<p><img class="emoji" title=":information_source:" alt=":information_source:" src="https://github.githubassets.com/images/icons/emoji/unicode/2139.png" height="20" width="20"> More are added all
the time so also check out <a href="https://github.com/NuSkooler/enigma-bbs/blob/master/core/mci_view_factory.js">core/predefined_mci.js</a>
for a full listing.</p>
</blockquote>
<p><img class="emoji" title=":memo:" alt=":memo:" src="https://github.githubassets.com/images/icons/emoji/unicode/1f4dd.png" height="20" width="20"> Many codes attempt to pay homage to Oblivion/2, iNiQUiTY, etc.</p>
<h2 id="views">Views</h2>
<p>A <strong>View</strong> is a control placed on a <strong>form</strong> that can display variable data or collect input. One example of a View is
a Vertical Menu (<code class="language-plaintext highlighter-rouge">%VM</code>): Old-school BBSers may recognize this as a lightbar menu.</p>
<table>
<thead>
<tr>
<th>Code</th>
<th>Name</th>
<th>Description</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code class="language-plaintext highlighter-rouge">TL</code></td>
<td>Text Label</td>
<td>Displays text</td>
<td>Static content. See <a href="/enigma-bbs/art/views/text_view.html">Text View</a>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">ET</code></td>
<td>Edit Text</td>
<td>Collect user input</td>
<td>Single line entry. See <a href="/enigma-bbs/art/views/edit_text_view.html">Edit Text</a>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">ME</code></td>
<td>Masked Edit Text</td>
<td>Collect user input using a <em>mask</em>
</td>
<td>See <a href="/enigma-bbs/art/views/mask_edit_text_view.html">Masked Edit</a> and <strong>Mask Edits</strong> below.</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">MT</code></td>
<td>Multi Line Text Edit</td>
<td>Multi line edit control</td>
<td>Used for FSE, display of FILE_ID.DIZ, etc. See <a href="/enigma-bbs/art/views/multi_line_edit_text_view.html">Multiline Text Edit</a>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">BT</code></td>
<td>Button</td>
<td>A button</td>
<td>…its a button. See <a href="/enigma-bbs/art/views/button_view.html">Button</a>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">VM</code></td>
<td>Vertical Menu</td>
<td>A vertical menu</td>
<td>AKA a vertical lightbar; Useful for lists. See <a href="/enigma-bbs/art/views/vertical_menu_view.html">Vertical Menu</a>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">HM</code></td>
<td>Horizontal Menu</td>
<td>A horizontal menu</td>
<td>AKA a horizontal lightbar. See <a href="/enigma-bbs/art/views/horizontal_menu_view.html">Horizontal Menu</a>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">FM</code></td>
<td>Full Menu</td>
<td>A menu that can go both vertical and horizontal.</td>
<td>See <a href="/enigma-bbs/art/views/full_menu_view.html">Full Menu</a>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">SM</code></td>
<td>Spinner Menu</td>
<td>A spinner input control</td>
<td>Select <em>one</em> from multiple options. See <a href="/enigma-bbs/art/views/spinner_menu_view.html">Spinner Menu</a>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">TM</code></td>
<td>Toggle Menu</td>
<td>A toggle menu</td>
<td>Commonly used for Yes/No style input. See <a href="/enigma-bbs/art/views/toggle_menu_view.html">Toggle Menu</a>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">PL</code></td>
<td>Predefined Label</td>
<td>Show environment information</td>
<td>See <a href="/enigma-bbs/art/views/predefined_label_view.html">Predefined Label</a>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">KE</code></td>
<td>Key Entry</td>
<td>A <em>single</em> key input control</td>
<td>Think hotkeys</td>
</tr>
</tbody>
</table>
<blockquote>
<p><img class="emoji" title=":information_source:" alt=":information_source:" src="https://github.githubassets.com/images/icons/emoji/unicode/2139.png" height="20" width="20"> Peek at <a href="https://github.com/NuSkooler/enigma-bbs/blob/master/core/mci_view_factory.js">/core/mci_view_factory.js</a> to see additional information.</p>
</blockquote>
<h3 id="mask-edits">Mask Edits</h3>
<p>Mask Edits (<code class="language-plaintext highlighter-rouge">%ME</code>) use the special <code class="language-plaintext highlighter-rouge">maskPattern</code> property to control a <em>mask</em>. This can be useful for gathering dates, phone numbers, so on.</p>
<p><code class="language-plaintext highlighter-rouge">maskPattern</code>s can be composed of the following characters:</p>
<ul>
<li>
<code class="language-plaintext highlighter-rouge">#</code>: Numeric 0-9</li>
<li>
<code class="language-plaintext highlighter-rouge">A</code>: Alpha a-z, A-Z</li>
<li>
<code class="language-plaintext highlighter-rouge">@</code>: Alphanumeric (combination of the previous patterns)</li>
<li>
<code class="language-plaintext highlighter-rouge">&amp;</code>: Any “printable” character</li>
</ul>
<p>Any other characters are literals.</p>
<p>An example of a mask for a date may look like this: <code class="language-plaintext highlighter-rouge">##/##/####</code>.</p>
<p>Additionally, the following theme stylers can be applied:</p>
<ul>
<li>
<code class="language-plaintext highlighter-rouge">styleSGR1</code>: Controls literal character colors for non-focused controls</li>
<li>
<code class="language-plaintext highlighter-rouge">styleSGR2</code>: Controls literal character colors for focused controls</li>
<li>
<code class="language-plaintext highlighter-rouge">styleSGR3</code>: Controls fill colors (characters that have not yet received input).</li>
</ul>
<p>All of the style properties can take pipe codes such as <code class="language-plaintext highlighter-rouge">|00|08</code>.</p>
<h3 id="view-identifiers">View Identifiers</h3>
<p>As mentioned above, MCI codes can (and often should) be explicitly tied to a <em>View Identifier</em>. Simply speaking this is a number representing the particular view. These can be useful to reference in code, apply themes, etc.</p>
<p>A view ID is tied to a MCI code by specifying it after the code. For example: <code class="language-plaintext highlighter-rouge">%VM1</code> or <code class="language-plaintext highlighter-rouge">%SM10</code>.</p>
<h2 id="properties--theming">Properties &amp; Theming</h2>
<p>Predefined MCI codes and other Views can have properties set via <code class="language-plaintext highlighter-rouge">menu.hjson</code> and further <em>themed</em> via <code class="language-plaintext highlighter-rouge">theme.hjson</code>. See <a href="/enigma-bbs/art/themes.html">Themes</a> for more information on this subject.</p>
<h3 id="common-properties">Common Properties</h3>
<table>
<thead>
<tr>
<th>Property</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code class="language-plaintext highlighter-rouge">textStyle</code></td>
<td>Sets the standard (non-focus) text style. See <strong>Text Styles</strong> below</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">focusTextStyle</code></td>
<td>Sets focus text style. See <strong>Text Styles</strong> below.</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">itemSpacing</code></td>
<td>Used to separate items in menus such as Vertical Menu and Horizontal Menu Views.</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">height</code></td>
<td>Sets the height of views such as menus that may be &gt; 1 character in height</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">width</code></td>
<td>Sets the width of a view</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">focus</code></td>
<td>If set to <code class="language-plaintext highlighter-rouge">true</code>, establishes initial focus</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">text</code></td>
<td>(initial) text of a view</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">submit</code></td>
<td>If set to <code class="language-plaintext highlighter-rouge">true</code> any <code class="language-plaintext highlighter-rouge">accept</code> action upon this view will submit the encompassing <strong>form</strong>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">itemFormat</code></td>
<td>Sets the format for a list entry. See <strong>Entry Formatting</strong> below</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">focusItemFormat</code></td>
<td>Sets the format for a focused list entry. See <strong>Entry Formatting</strong> below</td>
</tr>
</tbody>
</table>
<p>These are just a few of the properties set on various views. <em>Use the source Luke</em>, as well as taking a look at the default <code class="language-plaintext highlighter-rouge">menu.hjson</code> and <code class="language-plaintext highlighter-rouge">theme.hjson</code> files!</p>
<h3 id="custom-properties">Custom Properties</h3>
<p>Often a module will provide custom properties that receive format objects (See <strong>Entry Formatting</strong> below). Custom property formatting can be declared in the <code class="language-plaintext highlighter-rouge">config</code> block. For example, <code class="language-plaintext highlighter-rouge">browseInfoFormat10</code><em>N</em> (where <em>N</em> is up to 99) in the <code class="language-plaintext highlighter-rouge">file_area_list</code> module received a fairly extensive format object that contains <code class="language-plaintext highlighter-rouge">{fileName}</code>, <code class="language-plaintext highlighter-rouge">{estReleaseYear}</code>, etc.</p>
<h3 id="text-styles">Text Styles</h3>
<p>Standard style types available for <code class="language-plaintext highlighter-rouge">textStyle</code> and <code class="language-plaintext highlighter-rouge">focusTextStyle</code>:</p>
<table>
<thead>
<tr>
<th>Style</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code class="language-plaintext highlighter-rouge">normal</code></td>
<td>Leaves text as-is. This is the default.</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">upper</code></td>
<td>ENIGMA BULLETIN BOARD SOFTWARE</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">lower</code></td>
<td>enigma bulletin board software</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">title</code></td>
<td>Enigma Bulletin Board Software</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">first lower</code></td>
<td>eNIGMA bULLETIN bOARD sOFTWARE</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">small vowels</code></td>
<td>eNiGMa BuLLeTiN BoaRD SoFTWaRe</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">big vowels</code></td>
<td>EniGMa bUllEtIn bOArd sOftwArE</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">small i</code></td>
<td>ENiGMA BULLETiN BOARD SOFTWARE</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">mixed</code></td>
<td>EnIGma BUlLEtIn BoaRd SOfTWarE (randomly assigned)</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">l33t</code></td>
<td>3n1gm4 bull371n b04rd 50f7w4r3</td>
</tr>
</tbody>
</table>
<h3 id="entry-formatting">Entry Formatting</h3>
<p>Various strings can be formatted using a syntax that allows width &amp; precision specifiers, text styling, etc. Depending on the context, various elements can be referenced by <code class="language-plaintext highlighter-rouge">{name}</code>. Additional text styles can be supplied as well. The syntax is largely modeled after Pythons <a href="https://docs.python.org/3/library/string.html#format-specification-mini-language">string format mini language</a>.</p>
<h3 id="additional-text-styles">Additional Text Styles</h3>
<p>Some of the text styles mentioned above are also available in the mini format language:</p>
<table>
<thead>
<tr>
<th>Style</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code class="language-plaintext highlighter-rouge">normal</code></td>
<td>Leaves text as-is. This is the default.</td>
</tr>
<tr>
<td>
<code class="language-plaintext highlighter-rouge">toUpperCase</code> or <code class="language-plaintext highlighter-rouge">styleUpper</code>
</td>
<td>ENIGMA BULLETIN BOARD SOFTWARE</td>
</tr>
<tr>
<td>
<code class="language-plaintext highlighter-rouge">toLowerCase</code> or <code class="language-plaintext highlighter-rouge">styleLower</code>
</td>
<td>enigma bulletin board software</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">styleTitle</code></td>
<td>Enigma Bulletin Board Software</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">styleFirstLower</code></td>
<td>eNIGMA bULLETIN bOARD sOFTWARE</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">styleSmallVowels</code></td>
<td>eNiGMa BuLLeTiN BoaRD SoFTWaRe</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">styleBigVowels</code></td>
<td>EniGMa bUllEtIn bOArd sOftwArE</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">styleSmallI</code></td>
<td>ENiGMA BULLETiN BOARD SOFTWARE</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">styleMixed</code></td>
<td>EnIGma BUlLEtIn BoaRd SOfTWarE (randomly assigned)</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">styleL33t</code></td>
<td>3n1gm4 bull371n b04rd 50f7w4r3</td>
</tr>
</tbody>
</table>
<p>Additional text styles are available for numbers:</p>
<table>
<thead>
<tr>
<th>Style</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code class="language-plaintext highlighter-rouge">sizeWithAbbr</code></td>
<td>File size (converted from bytes) with abbreviation such as <code class="language-plaintext highlighter-rouge">1 MB</code>, <code class="language-plaintext highlighter-rouge">2.2 GB</code>, <code class="language-plaintext highlighter-rouge">34 KB</code>, etc.</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">sizeWithoutAbbr</code></td>
<td>Just the file size (converted from bytes) without the abbreviation. For example: 1024 becomes 1.</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">sizeAbbr</code></td>
<td>Just the abbreviation given a file size (converted from bytes) such as <code class="language-plaintext highlighter-rouge">MB</code> or <code class="language-plaintext highlighter-rouge">GB</code>.</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">countWithAbbr</code></td>
<td>Count with abbreviation such as <code class="language-plaintext highlighter-rouge">100 K</code>, <code class="language-plaintext highlighter-rouge">4.3 B</code>, etc.</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">countWithoutAbbr</code></td>
<td>Just the count</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">countAbbr</code></td>
<td>Just the abbreviation such as <code class="language-plaintext highlighter-rouge">M</code> for millions.</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">durationHours</code></td>
<td>Converts the provided <em>hours</em> value to something friendly such as <code class="language-plaintext highlighter-rouge">4 hours</code>, or <code class="language-plaintext highlighter-rouge">4 days</code>.</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">durationMinutes</code></td>
<td>Converts the provided <em>minutes</em> to something friendly such as <code class="language-plaintext highlighter-rouge">10 minutes</code> or <code class="language-plaintext highlighter-rouge">2 hours</code>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">durationSeconds</code></td>
<td>Converts the provided <em>seconds</em> to something friendly such as <code class="language-plaintext highlighter-rouge">23 seconds</code> or <code class="language-plaintext highlighter-rouge">2 minutes</code>
</td>
</tr>
</tbody>
</table>
<h4 id="examples">Examples</h4>
<p>Suppose a format object contains the following elements: <code class="language-plaintext highlighter-rouge">userName</code> and <code class="language-plaintext highlighter-rouge">affils</code>. We could create a <code class="language-plaintext highlighter-rouge">itemFormat</code> entry that builds a item to our specifications: <code class="language-plaintext highlighter-rouge">|04{userName!styleFirstLower} |08- |13{affils}</code>. This may produce a string such as this:</p>
<p><img src="../assets/images/text-format-example1.png" alt="Example" title="Text Format"></p>
<blockquote>
<p><img class="emoji" title=":bulb:" alt=":bulb:" src="https://github.githubassets.com/images/icons/emoji/unicode/1f4a1.png" height="20" width="20"> Remember that a Python <a href="https://docs.python.org/3/library/string.html#format-specification-mini-language">string format mini language</a> style syntax is available for widths, alignment, number prevision, etc. as well. A number can be made to be more human readable for example: <code class="language-plaintext highlighter-rouge">{byteSize:,}</code> may yield “1,123,456”.</p>
</blockquote>
</div>
<div class="PageNavigation">
<a class="btn" style="float:left;margin-right: 20px;" href="/enigma-bbs/art/themes.html">« Themes</a>
<a class="btn" style="float: right;margin-left: 20px" href="/enigma-bbs/art/views/button_view.html">Button View »</a>
<br clear="both">
</div>
</section>
</div>
</div>
</div>
</body>
</html>