Change History

This script was originally written for a specific club. Versions two through five gradually converted all of the hard coded entries so as to allow the same code to be used for other clubs. It was with the implementation of version five that this site was created to offer the script to any club that wishes to use it.

As you can see from the below history, this script is constantly having new features added and corrections made to make the existing features function better. The script is therefore not available for you to install on your own site and is instead provided as a hosted solution.

Rejected Ideas

Note that not every idea investigated ends up being implemented. The following options were considered but ended up being rejected as impractical.

  • Stripe was investigated as an alternative payment method for renewals. It was rejected when Stripe support indicated that having members provide their credit card details for the membership officer to enter would be a breach of their terms and Paypal already caters for credit card renewals by the member themselves.
  • Login via Google (and other such services) was considered but rejected due to their being insufficient information returned from that login process to accurately identify which member is logging in (due to duplication of names and email addresses occurring in ClubSite and that the email address provided need not be the same as the one used with the social media). Effectively the member would need to enter their member number and password as part of their initial social media login in order to link up the logins - defeating the purpose it was being investigated for in the first place.

Implemented Changes

Version 6.4


  • Four pages added to implement online voting for the main committee that is running the club. One page accessible to members while voting is open or until they vote. The other three pages allow the returning officer to set up the dates for the vote, load the candidates and after voting is finished to see the results.

Version 6.3


  • Amended new member processing to display a message if a member with the same first name, last name and suburb exists. Hopefully will help to prevent existing members renewing instead of rejoining.
  • Updated rates processing for PHP 7.


  • Add show/Hide option for menu for narrower displays.


  • Implement Club messaging system. Message can now be presented to the membership officer either when they log in or via the hosting plan page advising of anything we wish to advise regarding their service or the membership service in general.
  • Move Invoice option added - this option provides a way to move the latest invoice from one member to another and recover the previous invoice on the first member.


  • Change member number option added - this option goes through all the many tables in the database and attempts to change all the references to a member. Files that contain the member number are unchanged and so are references to those files.


  • Implemented club status tracking. The membership officer of the club now has access to information about their current service and renewal costs.

Version 6.2


  • Additional functionality added to the Gallery so that YouTube videos can be added to albums alongside or instead of photos.
  • Equivalent functionality also to the blog via TinyMCE media button.


  • Common new member online application added. This has front page text selected by the club and can fill out the club's custom application form from the information entered. The membership registrar does not have to rekey the information when the form is received with payment. Optional button to process the payment through Paypal doing away with the need to post the form.
  • Common receipting functionality substituting the logo and club name with appropriate fonts.
  • New officials page to list the club officials with their phone numbers and email addresses.
  • Stylesheet reorganised to use common styles for positioning and club specific styles for colour.

Version 6.1


  • Implemented enhanced default country address validation - can now set country specific address validations for the default country. Values for Australia, U.S.A., Canada and UK created - other countries can be easily added.
  • Remote WordPress Login functionality - Allows current members to be given automatic access to selected functionality on any associated WordPress site.

Version 6.0


  • Paypal processing is now done entirely via the membership area.
  • postcode and suburb lookups now shared between member's area and new member form
  • Forum upgrade - latest miniBB changes applied to the code still being used from there plus further cleanups of JavaScript code used by those pages. Thes changes were implemented file by file using a code comparison so as to not overwrite the code that had already been replaced.


  • lists table shared between clubs with extra field for club specific list
  • updated mailcentre processing so it is now only used for cross validation of suburb/state/postcode.


Note these changes make it easier to maintain multiple clubs - there should be no visible change to what club members see.

  • accessControl, accessGroup and lists shared between clubs with extra field in accessGroup and lists for club specific menu and list replacements
  • new table report_club to hide reports from report_main which along with report_fields is now also shared between clubs
  • copy function for copying report layouts between reports

Version 5.2


  • fix honorary family student member end date


  • Add option for displaying a message of up to two paragraphs at the bottom of the login page. This allows messages to be displayed when there are issues with some members being unable to login or obtain a password. For example if a popular email provider is not delivering password reset emails.


  • add remember me
  • add Paypal Log report


  • link Paypal renewals back to members and add manual renewals


  • add ip address to member_access table


  • change all help links to use constant


  • new version of code to copy files into the database for new club create


  • finished fixing the arrays to pass back from select calls
  • HELP links class="noprint"


  • fixed logo path for letters
  • fix which member gets archived when a member is deceased
  • fix setting branch for new members


  • member_access table to allow multiple logins by the same member (so the demo doesn't log someone off when someone else tries to use the same member number)

Version 5.1


  • switchover to club memsite
  • fix access on gallery folders
  • fixed bar codes on labels
  • fixed receipt list $by option
  • manual converted to help pages

Version 5.0


  • branch added to member to allow for members outside of states that have branches to be included on reports if they request it (database change)
  • implement full branch functionality (by state) - branch table
  • electronic only discount for members
  • publications upload options
  • Replacement Gallery script


  • Implement bounce option for optout


  • Remove abbreviation for Australia on addresses
  • add optout to report options and check if member type allowed on report
  • fix bug in optout flag


  • password reset two step process (database change)
  • extra tables and fields added for version 5
  • fixed deceased to always update end date
  • added electronic only no discount report


  • more secure passwords (database change)


  • pub.php?abbrev= to replace separate pages for specific magazines


  • fix email comparison (convert entered email to lowercase)
  • remove member-type from new member lookup function to allow for change from senior + family to just senior


  • add fpdf_protection, amend fpdft and PDF_Label to extend protection instead of fpdf.
  • add protection call to memlist, bmemlista and labels to only allow printing


  • add from/to join date selection to labels


  • report definitions. reports and labels - update branchline outercircle and brmna scripts to read all the files without needing to update each time


  • rewrite journal page to use database to track which journals to display
  • add journal email reminder


  • add fileupload.php for uploading files


  • Membership overview report page showing new members by month and resigned members by year


  • updated amember.php and memfunc for new fields and to check for invalid senior member field
  • added jnl_remind and electronic_only fields to database and display/update pages to support the adding of these new options


  • changed list order for article index to issue number instead of issue id

Version 4.0


  • new forum
  • new gallery
  • letter module
  • new member stats
  • retention report


  • added option to select members by scale to the membership reports

Version 3.0


  • removal of hard coding of member types from everything except paycust, renform, newform and newmem
  • separation of member status (fin/unfin/resign etc) from member type
  • partial removal of renewal date hard coding to cater for the possibility that all renewals need not be due in August.
  • option to be able to change the registrar's monthly to-do reminders
  • receipt list and dissection allow dates to be entered as ccyy-mm-dd or dd/mm/ccyy with leading zeros and century omitted
  • fixes to renewal form - split multiple address lines, add fold marks, make more space for amounts
  • automatic conversion of senior+family where there are no family members to senior after converting any student to senior who have reached the maximum age for students
  • all the rest of the web site has been converted to use mysqli_
  • aboutyou page updated to add button to cancel family members at renewal time also to display a message for those wishing to add family and renew online


  • correct errors on home page so that CoM blog will display for Registrar
  • display a message on the home page for Registrar and above when there are new Paypal members to be processed


  • add missing other column to dissection report


  • amended receipt list and dissection screens to union the oldmember table so as to not discard receipt info for deceased members who have just renewed


  • add resigned family member list to the update member page for the Registrar
  • make the white headings toggle the content below them (use a cookie to maintain state for a month after last access)


  • change dissection report so Federal other than Registrar see all listed members, not just those where the Registrar has already run the dissection.


  • added newform privilege to allow access to the updated new member application form in Jan/Feb to specific members


  • changes to receipt handling when new/renew = '-', system was using it both for other receipts and void receipts leading to confusion. Changed to use 'V' for void receipts.
  • add link to Add Receipt to member update page

Version 2.0


  • updated the manual to reflect all the changes
  • implemented all version 2 changes


  • Added tag field to member table. Registrar can tag members via the Update Member page and then select to produce a report or labels for the tagged members. The tags can be cleared by producing a report or labels or optionally retained to produce another report.


  • Changes to move access control into functions and tables (implemented in v2)
  • change from mysql to mysqli (implemented in v2)
  • members who notify they are resigning in July/August will continue to be counted as members until 31Aug and will continue to have full access until then
  • members who forgot to renew their family will have it noted on their receipt
  • update renew.pdf to fix header text


  • Added year on year report


  • Amended create receipts function. If two consecutive receipts are for the same member then the first is flagged as VOID and not printed (this is to fix when I tried updating the same member from two different computers when the first one locked up). The receipt list has also been amended to report the receipt as VOID.
  • The receipt list has also been amended to not automatically update the listed flag if displaying a list of issued receipts. Instead it displays a confirm button at the bottom if the list does not include previously listed items. Only once the confirm button is pressed are the entries recorded as having been listed. This will allow invoices to be corrected if necessary if the list reconciliation shows that a wrong amount was entered and then the list can be reproduced more easily again as the receipts still are not recorded as having been listed.
  • Receipt processing is therefore now a four step process instead of three. Step one - issue/print the invoices, step two - produce the list, step three - confirm the list reconciles, step four - produce the dissection report or file.
  • Note do not refresh the page after confirming as if a paypal renewal just happens to arrive in between it will be automatically confirmed as a receipt list all by itself.

Version 1.0

The original version of this system was developed piece by piece in between many other tasks in several stages between 2005 and 2009. No change log was kept during this period. Changes were only recorded once the system was complete. This version was developed for a specific club and everything was hard coded for the specific requirements of the club.