Boltwire System Change Notes
Notes of changes that I've made to the existing configuration to adjust how the system works.
Created a home/config/config.php file
In this file, I am overriding one MarkUps entry and added two replaceiment login and register commands
<?php
# Overrule Markup rules
MarkUp('style', 'hr', '/
?(<|<)hr(>|>)
?/', '<hr />'); // hr horizontal line
$BOLTtoolmap['x']['login'] = 'mylogin';
$BOLTtoolmap['x']['register'] = 'myregister';
$BOLTtoolmap['f']['breadcrumb'] = 'kbread';
function BOLTXmylogin($value, $field) {
global $pageLink, $BOLTarray, $msg, $BOLTid, $BOLTmember, $BOLTfieldKey;
$BOLTloginPages = BOLTconfig('BOLTloginPages', 'login');
$BOLTcrypt = BOLTconfig('BOLTcrypt');
if ($BOLTid != '') BOLTabort('login_problem');
if (strpos($BOLTarray['member'], '@')) {
$page = BOLTFsearch(Array('data'=>"email=$BOLTarray[member]", 'group'=>$BOLTloginPages, 'count'=>1, 'join'=>'', 'fmt'=>'{+p}'), 'COMMAND', false);
$member = substr($page, strlen($BOLTloginPages) + 1);
}
else {
$member = BOLTfilter(BOLTutf2url($BOLTarray['member']), 'csv');
$page = BOLTpageshortcuts("$BOLTloginPages.$member");
}
$id = substr($page, strlen($BOLTloginPages) + 1);
if (isset($BOLTarray['name'])) $member = BOLTfilter($BOLTarray['name'], 'csv');
else {
$name = BOLTvars("$page:member", '', false);
if ($name != '') $member = $name;
}
$BOLTarray['member'] = $member;
$pass1 = BOLTvars("$page:password", '', false);
$pass2 = $BOLTarray['password'];
if ((($pass1 == $pass2 || $pass1 == crypttype($pass2, $BOLTcrypt)) && ($pass1 != '')) || ($value == 'auto' )){
session_start();
$_SESSION[$BOLTfieldKey]['ID']['id'] = $id;
$_SESSION[$BOLTfieldKey]['ID']['member'] = $member;
session_write_close();
$BOLTid = $id;
$BOLTmember = $member;
$memberships = BOLTFmemberships(Array('output'=>'true'));
$msg['login_success'] = "~$member";
setcookie('cache', $memberships, time() + 86000);
}
else BOLTabort('login_fail');
return $value;
}
function BOLTXmyregister($value, $field) {
global $BOLTarray, $BOLTid, $msg, $target;
$BOLTloginPages = BOLTconfig('BOLTloginPages', 'login');
$BOLTcrypt = BOLTconfig('BOLTcrypt');
if (!isset($BOLTarray['member'])) BOLTabort('register_no_member');
if ($BOLTarray['member'] == "") BOLTabort('register_member_blank');
$logingroup = $BOLTloginPages;
$page = BOLTpageshortcuts("$logingroup.$BOLTarray[member]");
if (! BOLTfilter($page, 'page')) BOLTabort('register_invalid_name');
if (BOLTexists($page)) BOLTabort('register_member_exists');
if (isset($BOLTarray['email'])) { // && $BOLTarray['checkemail'] !== 'false'
if (preg_match('/^.+\@.+\..+$/', $BOLTarray['email']) == 0) BOLTabort('register_email_fails');
$checkemail = BOLTFsearch(Array('data'=>"email=$BOLTarray[email]", 'group'=>$BOLTloginPages), 'COMMAND', false);
if ($checkemail != '') BOLTabort('register_email_exists');
}
if (!BOLTauth($page, $BOLTid, 'write')) BOLTabort('register_fail_auth');
if (!isset($BOLTarray['password'])) BOLTabort('register_no_pass');
if ($BOLTarray['password'] == '') BOLTabort('register_pass_blank');
$tempPass = $BOLTarray['password'];
if ($BOLTarray['loginfmt'] != "plaintext") $BOLTarray['password'] = crypttype($BOLTarray['password'], $BOLTcrypt);
if (isset($BOLTarray['registerpage'])) $page = BOLTpageshortcuts($BOLTarray['registerpage']);
$tempLink = $target;
$target = $page;
BOLTXsavedata(str_replace('password', '', $value), 'savedata');
BOLTsavedata(Array('password'=>$BOLTarray['password']), $target, false);
$target = $tempLink;
$BOLTarray['password'] = $tempPass;
if (BOLTexists($target)) $msg['register_success'] = '';
else BOLTabort('register_fail');
return $value;
}
function crypttype($value, $field) {
global $pageLink, $BOLTarray, $msg, $BOLTid, $BOLTmember, $BOLTfieldKey;
$BOLTcrypt = BOLTconfig('BOLTcrypt');
$BOLTcryptType = BOLTconfig('BOLTcryptType');
if ($BOLTcryptType == "md5") {
$return = md5($value.$BOLTcrypt);
} else {
$return = crypt($value,$BOLTcrypt);
}
return $return;
}
function BOLTFkbread($args, $zone='') {
global $pageLink;
if (isset($args['page'])) $page = $args['page'];
elseif (isset($args[1])) $page = $args[1];
else $page = $pageLink;
$page = BOLTfilter(BOLTpageshortcuts($page), 'page');
$separator = isset($args['separator']) ? $args['separator'] : ' > ';
$parts = explode('.', $page);
foreach ($parts as $p) {
$link = ltrim("$link.$p", '.');
if ($args['text'] == 'true') $out[] = BOLTvars("$link:page");
else $out[] = "[[?$link|$p]]";
}
if ($args['name'] != 'link') $out[count($parts) - 1] = BOLTvars("$page:page");
if ($args['name'] == 'none') unset($out[count($parts) - 1]);
if (isset($args['offset'])) $out = array_slice($out, $args['offset']);
if (strtolower($args['rtl']) == 'true' || strtolower(BOLTconfig('BOLTtextDirection')) == 'rtl') {
$out = array_reverse($out);
$separator = str_replace('>', '<', $separator);
}
return implode($separator, $out);
}
# Overrule Markup rules
MarkUp('style', 'hr', '/
?(<|<)hr(>|>)
?/', '<hr />'); // hr horizontal line
$BOLTtoolmap['x']['login'] = 'mylogin';
$BOLTtoolmap['x']['register'] = 'myregister';
$BOLTtoolmap['f']['breadcrumb'] = 'kbread';
function BOLTXmylogin($value, $field) {
global $pageLink, $BOLTarray, $msg, $BOLTid, $BOLTmember, $BOLTfieldKey;
$BOLTloginPages = BOLTconfig('BOLTloginPages', 'login');
$BOLTcrypt = BOLTconfig('BOLTcrypt');
if ($BOLTid != '') BOLTabort('login_problem');
if (strpos($BOLTarray['member'], '@')) {
$page = BOLTFsearch(Array('data'=>"email=$BOLTarray[member]", 'group'=>$BOLTloginPages, 'count'=>1, 'join'=>'', 'fmt'=>'{+p}'), 'COMMAND', false);
$member = substr($page, strlen($BOLTloginPages) + 1);
}
else {
$member = BOLTfilter(BOLTutf2url($BOLTarray['member']), 'csv');
$page = BOLTpageshortcuts("$BOLTloginPages.$member");
}
$id = substr($page, strlen($BOLTloginPages) + 1);
if (isset($BOLTarray['name'])) $member = BOLTfilter($BOLTarray['name'], 'csv');
else {
$name = BOLTvars("$page:member", '', false);
if ($name != '') $member = $name;
}
$BOLTarray['member'] = $member;
$pass1 = BOLTvars("$page:password", '', false);
$pass2 = $BOLTarray['password'];
if ((($pass1 == $pass2 || $pass1 == crypttype($pass2, $BOLTcrypt)) && ($pass1 != '')) || ($value == 'auto' )){
session_start();
$_SESSION[$BOLTfieldKey]['ID']['id'] = $id;
$_SESSION[$BOLTfieldKey]['ID']['member'] = $member;
session_write_close();
$BOLTid = $id;
$BOLTmember = $member;
$memberships = BOLTFmemberships(Array('output'=>'true'));
$msg['login_success'] = "~$member";
setcookie('cache', $memberships, time() + 86000);
}
else BOLTabort('login_fail');
return $value;
}
function BOLTXmyregister($value, $field) {
global $BOLTarray, $BOLTid, $msg, $target;
$BOLTloginPages = BOLTconfig('BOLTloginPages', 'login');
$BOLTcrypt = BOLTconfig('BOLTcrypt');
if (!isset($BOLTarray['member'])) BOLTabort('register_no_member');
if ($BOLTarray['member'] == "") BOLTabort('register_member_blank');
$logingroup = $BOLTloginPages;
$page = BOLTpageshortcuts("$logingroup.$BOLTarray[member]");
if (! BOLTfilter($page, 'page')) BOLTabort('register_invalid_name');
if (BOLTexists($page)) BOLTabort('register_member_exists');
if (isset($BOLTarray['email'])) { // && $BOLTarray['checkemail'] !== 'false'
if (preg_match('/^.+\@.+\..+$/', $BOLTarray['email']) == 0) BOLTabort('register_email_fails');
$checkemail = BOLTFsearch(Array('data'=>"email=$BOLTarray[email]", 'group'=>$BOLTloginPages), 'COMMAND', false);
if ($checkemail != '') BOLTabort('register_email_exists');
}
if (!BOLTauth($page, $BOLTid, 'write')) BOLTabort('register_fail_auth');
if (!isset($BOLTarray['password'])) BOLTabort('register_no_pass');
if ($BOLTarray['password'] == '') BOLTabort('register_pass_blank');
$tempPass = $BOLTarray['password'];
if ($BOLTarray['loginfmt'] != "plaintext") $BOLTarray['password'] = crypttype($BOLTarray['password'], $BOLTcrypt);
if (isset($BOLTarray['registerpage'])) $page = BOLTpageshortcuts($BOLTarray['registerpage']);
$tempLink = $target;
$target = $page;
BOLTXsavedata(str_replace('password', '', $value), 'savedata');
BOLTsavedata(Array('password'=>$BOLTarray['password']), $target, false);
$target = $tempLink;
$BOLTarray['password'] = $tempPass;
if (BOLTexists($target)) $msg['register_success'] = '';
else BOLTabort('register_fail');
return $value;
}
function crypttype($value, $field) {
global $pageLink, $BOLTarray, $msg, $BOLTid, $BOLTmember, $BOLTfieldKey;
$BOLTcrypt = BOLTconfig('BOLTcrypt');
$BOLTcryptType = BOLTconfig('BOLTcryptType');
if ($BOLTcryptType == "md5") {
$return = md5($value.$BOLTcrypt);
} else {
$return = crypt($value,$BOLTcrypt);
}
return $return;
}
function BOLTFkbread($args, $zone='') {
global $pageLink;
if (isset($args['page'])) $page = $args['page'];
elseif (isset($args[1])) $page = $args[1];
else $page = $pageLink;
$page = BOLTfilter(BOLTpageshortcuts($page), 'page');
$separator = isset($args['separator']) ? $args['separator'] : ' > ';
$parts = explode('.', $page);
foreach ($parts as $p) {
$link = ltrim("$link.$p", '.');
if ($args['text'] == 'true') $out[] = BOLTvars("$link:page");
else $out[] = "[[?$link|$p]]";
}
if ($args['name'] != 'link') $out[count($parts) - 1] = BOLTvars("$page:page");
if ($args['name'] == 'none') unset($out[count($parts) - 1]);
if (isset($args['offset'])) $out = array_slice($out, $args['offset']);
if (strtolower($args['rtl']) == 'true' || strtolower(BOLTconfig('BOLTtextDirection')) == 'rtl') {
$out = array_reverse($out);
$separator = str_replace('>', '<', $separator);
}
return implode($separator, $out);
}


