commit d4992d3a37d570462f4b04caf9049f506e51e627 Author: jon-zee Date: Wed Jul 13 23:56:40 2016 -0400

bbsengine3.php: added 'id' property to 'credits' field of 'member'; changed label on 'email' field to remind of validity for account verification

commit c02eb088b8542789d22e025a01af04e2316dda58 Author: jon-zee Date: Tue Jun 28 23:16:09 2016 -0400

bbsengine3.php: changed displayerrormessage() to accept optional parameter 'title'; changed displaypermissiondenied() to accept an optional 'title' parameter; changed errormessage.tmpl to use 'title' template var. changed docstring for safestripslashes to mention use of get_magic_quotes_gpc().

commit 01c60d82f63cbde9fc13c094399168b78fd5b0e5 Author: jon-zee Date: Sat Jun 18 03:19:07 2016 -0400

moved features.txt to handbook

commit d03322fb600d0a6e9699f9bf15122d011456ec67 Author: jon-zee Date: Tue Jun 7 16:41:36 2016 -0400

initial revision of modier 'ago' which displays how long ago something happened

commit 806f6f688ea76f1130d160c7c6d9f52a560aa183 Author: jon-zee Date: Tue Jun 7 16:39:53 2016 -0400

commit of handbook files

commit d8a523cdb256c361721b99550d89b3eb9607e82d Author: jon-zee Date: Tue Jun 7 16:24:36 2016 -0400

initial commit of CHANGELOG.txt

commit d8749fe93bed409af07dc273f1b8d5d67a8fbfec Author: jon-zee Date: Sat Jun 4 21:09:45 2016 -0400

rewrote logentry() to use PEAR::Log instead of using syslog directly;
rewrote displaypermissiondenied() to call displayerrorpage(); changed
displayerrorpage() so it has an optional 'template' argument; removed
displayerrormessage() function (previously deprecated in favor of
displayerrorpage()); changed setreturnto() so that the url parameter is
optional and defaults to the value of getreturntourl(); removed 'title',
'stylesheets', and 'template' arguments from displaypermissiondenied();
removed 'return value by reference' from dbconnect(); added to
processupload() with the beginnings of handling multiple files at once (an
html5 feature); buildbreadcrumbs() changed to use php 5.4+ array syntax;
added cartidexists() function; rewrote getcurrentcart() to use getcart()
function; rewrote getcurrentcartid() to use new cartidexists() function;
added clearcart() function and rewrote clearcurrentcart() to use it; added
accesscartitem(), buildcartitemactions(), accesscart(), cartitemexists(),
iscartowner(), and buildcartactions(); added getcurrentsig() and
setcurrentsig(); added buildbutton() function which accepts a quickform
instance, a field name and a value and adds a button element.

commit 6e8d87f7ca75a7de0d6fe1e30507bdb83b324615 Author: jon-zee Date: Mon Apr 18 20:09:01 2016 -0400

handbook/INSTALL.txt (not case): initial revision

commit 9840383c0a723323030b4bf531869dcdbe76369d Author: jon-zee Date: Mon Apr 18 19:41:27 2016 -0400

bbsengine3.php: added setMetaRefresh() call to displayerrorpage() so that it
will work properly with jquery.smoothstate; changed displayerrorpage()'s
$status param default from 500 to 418; buildnotifyactions() changed actions
to reference ENGINEURL define; changed return value of getcurrentcart() to
the currentcartid, which is odd; changed getcartitems() to dbconnect() to
SYSTEMDSN before proceeding.

commit 92a3de9ed9b2a1245cbd59e7f17054ad6e72e6b6 Author: jon-zee Date: Fri Apr 8 17:22:44 2016 -0400

updated copyright date; updated documentation for getquickform() and
_getsmarty(); _getsmarty() changed to accept optional options dictionary and
accept keys 'compileid', 'compiledir', 'templatedir', 'pluginsdir', and
'vars'; added 'currenturi' and 'currentpath' to list of vars automagically
passed to every template; added a default 'getsmarty' function if another
has not already been defined; marked 'fetcherrorpage' deprecated;
fetchredirectpage() and displayerrorpage() updated to use 'pagedata' option
so it works with the new 'page.tmpl'; displayerrormesage(), displayheader()
marked deprecated; renamed _fetchsidebar() to _fetchnavbar(); added
closelog() call to logentry(); new feature: _getpage() now accepts a
"stylesheets" option for adding page-specific stylesheets; new defines in
config.php: METAKEYWORDS (added to page using <meta> tag); new permission in
accessmember 'editcredits' which is only enabled if USEMEMBERCREDITS is
defined in config.php; changed function prototype of sendnotify() to make
third parameter (data) optional; changed getsig() such that calling the
teosurl function from php is no longer needed; in buildloginfieldset(),
renamed 'username' field to 'name' and 'password' field to 'passwd'; in
getnotify(), change references to 'notify' to 'engine.notify'; added 'edit'
permission to accessnotify(); handleform() updated to check if the given
callback function is actually callable before calling it, and logging an
error when it isn't; made a generic displaypage() function in case one has
not already been defined; displayform() updated to use 'pagedata' option;
new functions: buildlabelpath(), normalizelabelpath(), buildsigfieldset(),
accesssig(), buildsigactions(), buildpagerinfo(), buildbreadcrumbs(),
getsigidfromlabelpath(), getcurrentpath(), getcurrentcart(),
getcurrentcartid(), setcurrentcartid(), addcartitem(), clearcurrentcart(),
normalizecart(), setcurrentcart(), getcart(), buildcartrecord(),
getcartitems(), updatesigmap(), getsigmap(), implodesigmap(),
explodesigmap(), explodesiglabelpaths(), and explodeuri().

commit b1d9225c4ba7b0d6254197c1df0595d8b8618a5e Author: jon-zee Date: Wed Feb 24 18:48:49 2016 -0500

moved deleteconfirmation.tmpl to main bbsengine3 theme

commit cc44676642a6c3c424b0b5eca47f561271d54c34 Author: jon-zee Date: Tue Feb 2 21:15:53 2016 -0500

config-prod.php: added 'CHAPTERDIR' define to config file

commit 2577ce31cd0c0239a52ae5ca8a4263c03637ab69 Author: jon-zee Date: Fri Dec 25 21:27:07 2015 -0500

removed 'dev' and 'prod' targets in favor of single 'install'; added 'release' target; changed install target to chdir into 'scss' instead of 'css'

commit 3fa59eb5f9437ced959f0f72080be00d1c0d29a8 Author: jon-zee Date: Fri Dec 25 21:24:53 2015 -0500

copied page.tmpl from zoidweb2

commit 589889c719e0ed46ffd566e64419ff94b2aa46a8 Author: jon-zee Date: Fri Dec 25 21:24:16 2015 -0500

copied skin/scss/Makefile from zoidweb2

commit 549347d1283701513e77c3e5b0eecb699de4c2ba Author: jon-zee Date: Fri Dec 25 21:21:51 2015 -0500

used script to convert from css to scss

commit 0b975e04f4ec0dc6771ec0c58559a238a758da6b Author: jon-zee Date: Fri Dec 25 21:07:31 2015 -0500

initial revision of page.tmpl added to repo

commit 4f6318689b368655214e4384f3abcdd9096475d9 Author: jon-zee Date: Wed Dec 23 22:47:40 2015 -0500

page-tmpl.txt: initial revision

commit 93d82a606385e921c428a5bd2e8d9d2331f96145 Author: jon-zee Date: Wed Dec 23 20:39:24 2015 -0500

database.txt: added 'database abstraction' section

commit ebf43805e2e1372fe4a0099eb33356de6f4c7228 Author: jon-zee Date: Sun Nov 8 10:52:17 2015 -0500

renamed config.php to config-sample.php

commit 11ec68191b455b0c66a0f2c06f1b629edae292ef Author: jon-zee Date: Sun Nov 8 10:51:46 2015 -0500


commit b01983ff4eae686deb436a82c5abb24cb6ae9cc9 Author: Jeff Date: Tue Nov 3 19:23:42 2015 -0500


- tightened up a lot of the paragraphs so they reflect current usage, for
  example the variable in the Makefile has been renamed to PROD from
- updated pear package list

commit 35c2b41117892441057cf1d2c3e88ef4488d0dce Author: Jeff Date: Tue Nov 3 16:37:03 2015 -0500


- removed references to sourceforge project, since I am no longer active on that site
- removed details about installing an operating system since that info was quickly outdated.
- removed notes about how to configure apache
- removed specific version references for php, apache, etc
- removed reference to google's "spidering" rules
- removed notes about modifying 'getsmarty()' function
- tightened up the shameless plug about writing custom modules for a fee.

commit aec7c10425562ceecc0c15f1ff71573e920788e7 Author: Jeff Date: Tue Nov 3 15:32:23 2015 -0500

replaced call to page->display() in index.php to displaypage() bbsengine function.

commit 4df17c563745eb6956bb7d1b81f253113aade9c3 Author: Jeff Date: Tue Nov 3 14:48:49 2015 -0500

copied config-prod and htaccess-prod from bbsenginedotorg

commit ffdf0a445470feb7cc410e28dd3b24acf3985a54 Author: Jeff Date: Tue Nov 3 14:44:57 2015 -0500

moved 'bbsenginedotorg' project into bbsengine3 itself to serve as a simple demo

commit e685c68d690a609b1f462490f14a52d87198b4fc Author: Jeff Date: Wed Oct 28 16:42:59 2015 -0400

composer.json: initial revision

commit fdd9c3e58e8b198cefaf09c49873bf5a59fd5924 Author: Jeff Date: Tue Oct 20 12:45:49 2015 -0400

first revision in git of 'handbook' files.

commit cb97c3aa448116247dee743698924e291397fd1a Author: Jeff Date: Tue Oct 20 12:31:18 2015 -0400

removed index.php from 'handbook' folder

commit e68c09de4e2aca98cbf1e4fddccd9f833f68a66f Author: Jeff Date: Tue Oct 20 12:30:29 2015 -0400

Makefile: added 'install' target; changed 'release' target to remove a duplicate slash (/) from a path

commit 17713d74d39893f2d6e62dbd5e2f88c0c2d4a5ec Author: Jeff Date: Tue Oct 20 11:27:36 2015 -0400

 * moved calls to addRecursiveFilter ('trim' and 'striptags') from the apps to the getquickform() function
 * updated displayredirectpage() to use new displaypage() function
 * renamed 2nd param in dipslayerrorpage() function from 'errorcode' to 'statuscode' and updated it to use
 * updated displaypermissiondenied() to use displaypage()
 * added 'editcredits' operation to accessmember() to check if a user is allowed to
   edit the 'credits' field in the member table
 * changed buildmemberfieldset() to check for new 'editcredits' op and if true adds a field and a rule
 * changed buildmemberrecord() to handle the 'credits' field if set
 * FEATURE: handleform()
   ** accepts an html_quickform2 instance and a callback function
   ** if the form is submitted and validates, the callback is called.
   ** return value is whatever was returned by the callback or False if the form does not validate.
 * FEATURE: added displaypage() which handles the 'pageprotocol' gracefully and removes a lot of duplicate
   code from all of the zoidweb2 apps
 * FEATURE: added displayform() function, which accepts an
   html_quickform2_renderer instance and a pagetitle and calls displaypage()
   to display the form, removing a lot of duplicate code in apps.  this
   function is normally called after a call to handleform() has returned
   False.  the optional 3rd param is a dictionary of options.  currently the
   only options are "stylesheets", which is a list of css files to add to the
   html_page2 instance, and "template" which allows override of the default
   of 'form.tmpl' if needed.

commit bedfeae8296506cb1622d77b1b19d26cc3cd31d3 Author: Jeff Date: Mon Sep 21 17:07:59 2015 -0400


* removed 'return by reference' (&)  on getquickform()
* changed getmember() so that if no args are passed getcurrentmemberid()
result is used
* changed header() call in displayerrorpage() so it will
actually work
* changed getreturntourl() so it returns SITEURL define instead
of null
* header() call in displaypermissiondenied() changed to emit proper
error code (same change as displayredirectpage())
* changed getcurrentmemberid() to accept an optional 'key' parameter which
determines the key to use in _SESSION that holds the id of the current user
and defaults to "currentmemberid"
* in _getpage(), removed define and code for using PEARHTTPSESSION
* in _getpage() also changed setDocType() call from "XHTML 1.0 Strict" to "XHTML 1.0
* removed check for PEARHTTPSESSION define and associated code in
* changed call to autoExecute (MDB2) in updatemember() so it references the
session name ('engine')
hardcoding them in startsession()
* in _writesession(), store IP address, user agent, memberid,
and datecreated
* changed processupload() so it takes only 2 arguments
("value" and "destinationdir").  value is derived from a key in $values
which is passed to the callback (f.e.  insert and update) instead of passing
an entire html_quickform2 instance.  the code is simplified and it could
work even without html_quickform2 ($value is a dictionary)
* removed function getquickform2 which was never used
* changed accessmember() function so it always returns True when the op is 'detail'
* wrapped getmemberfieldset() in a function_exists() call so that the app can override it easily
* changed getpageprotocol() so it looks for "pageprotocol" in $_REQUEST so the session
can easily be overridden..  this was added as part of a project to enhance
pages as well as forms
* wrapped buildmemberrecord in a function_exists() so the app can easily override it
* checkpassword() function uses new function hashpassword() instead of hardcoding a call to md5()
* new function checklogin() which accepts a dictionary with two keys: username and
password..  this function serves as a callback to an html_quickform2 rule
for a better UX
* hashpassword() changed so that if CRYPTSALT is defined uses
crypt() and falls back to md5() if not
* added function _buildnotifydata() and changed notifydata so it can be overridden by the app
* new functions: getmemberidfromemail() and getmemberidfromusername() which
call getmemberfrom() to get a member dictionary based on a given key like
"email" or "username".
* added buildbuttonfieldset() which is allowed to be overridden
* added toboolean() which accepts a fieldvalue (a string normally as a 't'
  or 'f') and converts it to an "actual" boolean value (True or False)
* new function handleform() so that there is a consistent interface to
  handling forms including 'enhanced forms' if enabled.  it accepts an
  html_quickform2 instance, a callback, a page title, and an optional
  smarty3 template name defaulting to "form.tmpl".
* added functions getmembercredits(), setmembercredits(),
  getcurrentmembercredits(), and setcurrentmembercredits() which handle
  account credits.  these functions are intended to help in writing games
  (like "blackjack")

commit 5965b0841b3c36ecd7c86a23f834ccc4cdca6bdf Author: Jeff Date: Wed Apr 8 21:03:25 2015 -0400

config.php: initial revision

commit 76dc638530b7531a009d3291b0aba19324a251f8 Author: Jeff Date: Wed Apr 8 21:01:51 2015 -0400

flag.sql, schema.sql: initial revision

commit 7d6ee79af9e0445ca473d5d59bb9d244505331e2 Author: Jeff Date: Wed Apr 8 21:00:54 2015 -0400

member.sql: copied from bitcoin project

commit b4c41529a2ce0a0bb3192b380fd6b4c4e7bb22b9 Author: Jeff Date: Mon Mar 9 14:29:40 2015 -0400

bbsengine3.php: added accessnotify(), gettotalnotifications(), gettotalunreadnotifications(); changed logentry() to call openlog() in addition to syslog(); openlog() call sets facility to LOCAL0 and logs the PID for the process.

commit 51cca0149c1c17dc74eaa7081d48cd76d6533310 Author: Jeff Date: Mon Mar 9 14:20:54 2015 -0400

page.php: copied from zoidweb2

commit a323a34afaa708e53b0e513153aa7e7c3ee85d82 Author: Jeff Date: Mon Mar 9 14:20:21 2015 -0400

member.php: copied from zoidweb2

commit 9bdc6095c24599512aa60b648e78107faeaedff2 Author: Jeff Date: Mon Mar 9 14:19:48 2015 -0400

notify.php, notify.js: moved from zoidweb2

commit 97f2b210136c450a28e639f014ae39bd0c829cd5 Author: Jeff Date: Wed Feb 18 19:11:11 2015 -0500

register.php: moved from zoidweb2

commit d3113bddbcb1db4763828db631572cb6fd6903a1 Author: Jeff Date: Wed Jan 14 00:50:11 2015 -0500

bbsengine3.php: updated getquickform() to use html_quickform2; added
getquickformrenderer(); renamed getsmarty() to _getsmarty() and added
$options dictionary parameter; added stub getsmarty() in case the app does
not define its own; added code to handle enhanced forms in
displayredirectpage(), displaypermissiondenied(), and displayerrorpage();
_fetchfooter() renamed to _fetchpagefooter(); added stub for
fetchpagefooter(); removed old code from setreturnto() and getreturnto()
that handled HTTP_Session2 (PEAR); updated setflag() to use explicit session
names; updated _getpage() to check $options dictionary for 'staticskinurl'
key and use it, else default to '/skin/'; changed _readsession() and
_gcsession() to use SYSTEMDSN instead of SESSIONDSN; renamed builduri() arg
from $path to $labelpath for clarity; changed accessmember() to use $res and
return at the end for easier logging; added removesessioncookie(); added
getsig() (part of engine); added nonce functions generatenonce(),
checknonce(), generatesalt(); added buildmemberfieldset(), getmemberid() and
buildmemberrecord(); enhanced forms handling added clearpageprotocol(),
setpageprotocol(), getpageprotocol(); added buildparentlabelpath(); added
checkpassword(), buildnewpasswordfieldset(), buildchangepasswordfieldset(),
hashpassword(), setpassword() for password handling; added fetchtopbar(),
normalizeuri(), buildloginfieldset(); added encodejson(), decodejson() to
handle JSON data; added getlastlogin() (uses $_SESSION), setlastlogin(),
getlastloginfrom(), uniqueusernamecallback() (quickform2 callback func),
added buildnotifyrecord() (stub), buildnotifyactions() (stub),
buildnotifydata() (stub) for notify handling.

commit e3cf6cc05c9eef62ca218606b5de43262213ef6e Author: Jeff Date: Mon Sep 15 20:34:00 2014 -0400

modifier.wpprop.php: added call to htmlentities() for tag params; source code whitespace changes; added callback specifically to handle [img] tag.

commit be7534cebea493195288fd08a43f90a264f9e9ef Author: Jeff Date: Mon Sep 15 18:04:02 2014 -0400

handbook/template-system.txt: commiting

commit ec1b81849e046c7e9e761ea75d75b696fe239770 Author: Jeff Date: Mon Sep 15 18:00:48 2014 -0400

js/Makefile: copied from php/Makefile

commit 0789a2910890634ae0f321793eec4873c8e3619e Author: Jeff Date: Mon Sep 15 17:59:05 2014 -0400

clock.js, page.js, form.js: copied from zoidweb2

commit f44fc20ea7128c72b75e93f1902821ae92bdb18b Author: Jeff Date: Mon Sep 8 20:37:31 2014 -0400

bbsengine3.js: moved from zoidweb2

commit 2ddb005675c2d1161eb22c39352fd318bf455f5e Author: Jeff Date: Sat Jul 26 11:39:47 2014 -0400

renamed access-control.txt to access-hooks.txt

commit f69938961f5680b9c26e7c2b5ccaebe923948187 Author: Jeff Date: Sat Jul 26 11:39:03 2014 -0400

access-control.txt: removed paragraphs that are already in the authorization-system chapter, changed title to 'access hooks'

commit 9c4e6ac0a0a4492a499ab573f642b193ae60d9bd Author: Jeff Date: Mon Jun 9 10:20:43 2014 -0400

renamed handbook.txt to overview.txt

commit 63dcdf24484e6dd9da0fd3bee377d2c71bed273d Author: Jeff Date: Mon Jun 9 10:20:28 2014 -0400

updated handbook.txt so that the bullet points refer to lib functions

commit c7f8f380b585225c5195b6cd1421f860bef984d8 Author: Jeff Date: Fri May 23 19:37:22 2014 -0400

initial revision of handbook/index.php

commit 83692658a330e13e3e019bdd582874d9b5bbe222 Author: Jeff Date: Thu May 15 09:42:03 2014 -0400

mantra: started on tty user interface for adding and editing mantras

commit 7bfaa8b028be2bc4606fd887668e899d67fc972c Author: Jeff Date: Thu May 15 09:41:28 2014 -0400

skin: added default templates (form, permissiondenied, redirectpage

commit bab7a9d8a0eea0558a409525ebaf7da3e647e777 Author: Jeff Date: Thu May 15 09:40:34 2014 -0400

bbsengine3: removed if check for USEHTMLQUICKFORM2 define. bbsengine3 is using html_quickform2 exclusively.

commit 7edc61fe14572c46eacb022a3c2b1aae2b1186d8 Author: Jeff Date: Thu May 15 09:39:34 2014 -0400

index.php: first rev

commit 1e5f5ed49724e66e8d4f4f8de6da87babd5a025f Author: Jeff Date: Wed May 14 00:10:38 2014 -0400


commit 80aa2b4153f8bd2a8af3da68274f8e3a73e03ff9 Author: Jeff Date: Tue May 13 23:50:55 2014 -0400

Makefile: initial rev

commit 246d18f61c27542cfb69ace6eedb66c0d3424e0a Author: Jeff Date: Tue May 13 23:50:41 2014 -0400

login.php, logout.php, bbsengine3.php, Makefile

commit 5a5e02b043cb95bac623410c7fa47e2f9e7de8a2 Author: Jeff Date: Tue May 13 23:48:34 2014 -0400

added smarty3 modifiers filesize, fromnow and linkurl

commit 367705936ffee157aca1cf2ecda56f47e8d38e2d Author: Jeff Date: Tue May 13 23:36:48 2014 -0400

added 'smarty' folder which has smarty modifiers (currently datestamp and wpprop)

commit c80bf7779b62da41cec9f1732615f652bddceb91 Author: Jeff Date: Tue May 13 23:31:01 2014 -0400

copied handbook from bbsengine2

commit ae3e679e3f55e7488def64fbd10c5d39c5f66e15 Author: Jeff Date: Tue May 13 23:28:07 2014 -0400

added python version of bbsengine