Documentation edition: 9 September 2026

Site overview and technical reference

Updated 9 September 2026. Paths below identify the maintained sections described by supplied files and recent changes. A path listed here is not proof that its latest package has been uploaded.

Main sections

Section Main paths Purpose
Home /index.php Entry point for Half-Mind resources
About /about.php Site history and original founder account
Regional directory /regionalwebsite/index.php, p_list1.php, theworld.php Find kennels and regional contacts
Club editing /regionalwebsite/p_edit1.php, p_edit2.php Existing edit workflow; inspect current code before changing
Directory quality /regionalwebsite/directory_health.php Directory Health report
Travel rankings /where/index.php Individual hasher rankings
Kennel rankings /where/awhere_kennel_leaderboard.php Aggregate participating members by profile kennel
Plates /plates/index.php Plate gallery, captions and search
Songbooks /songbooks.php Songbook introduction, PDF and scans
Scan viewer /songbook/showpage.php?pg=06 A selected scan with previous/next navigation
Administration /siteadmin/index.php Maintenance, backups and documentation

On On Podcast is linked from the site but is a separate WordPress project. Its plugins, transcripts and episode operations are outside this manual.

Shared presentation

The shared root files are /2025header.php, /2025styles.css and /footer.php. Some modernized public pages use /legacy-pages.css and /legacy-footer.php. The Where section has its own /where/awhere_menustrip.php and footer. /where/legacy-where.css and legacy-where.js add scoped form/checklist enhancements to the supplied modernization pages.

The corrected kennel leaderboard loads the root header, then the current Where menu strip. A stale /where/2025header.php must not take precedence there. The latest supplied menu includes My Counts, Hare Places, My Milestones, Profile & Password, My Lists, maps, Races, Export and logout for members, plus public rankings/report links. The Kennel Leaderboards link is placed after Where Hared.

Account and report routes

File in /where/ Function
awhere_login.php, awhere_logout.php Sign in/out
awhere_register.php, awhere_verify.php Registration and email verification
awhere_PasswordForgot.php, awhere_changepassword.php Password recovery
awhere_aboutme.php Account/profile editing
awhere_MyCounts.php, awhere_MyHares.php Hashed/hared place selections
awhere_MyRaces.php, awhere_racerankings.php Race records and rankings
awhere_MapEm.php, awhere_usmap.php, awhere_worldmap.php Lists and maps
awhere_blog.php Bio page; the legacy filename remains
awhere_iso.php, awhere-haresc.php, awhere_MapKennelworld.php Search and reports
awhere_export.php, awhere_milestones.php Personal progress, continents, PDF preview/download and CSV export; source inspected

Data and configuration

The supplied admin backup code loads /regionalwebsite/hminddbparams.php for the directory target and /where/p_207_where_params.php for travel data. They define $pdb_server, $pdb_user, $pdb_password, $pdb_database and, where needed, a table setting. /where/awhere_dbparams.php initializes a shared connection for several account pages.

The directory audit report names 2007_rdir as a table with 55 utf8 text columns. Use the configured table name: the verifier has a fallback spelling of rdir_2007, which is different and could cause a false missing-table report if the config lacks a table name. WhereUser has 31 reported text columns using utf8mb4; the report omits numeric columns by design.

The supplied report labeled directory includes both directory and Where tables. This suggests the targets may share a database, but compare the actual configurations before assuming that. Backup labels do not isolate tables: the supplied dumper exports all base tables in the selected database.

Implementation status and unresolved work

Item Evidence and limit
Legacy modernization Replacement package prepared for supplied public pages and 17 Where pages; live installation not certified
Plates lightbox Standalone JavaScript add-on delivered; current page needs its script include
Kennel leaderboard Replacement and subsequent header/menu fix delivered; server testing required
Password reset kit Local hash generator and updated bootstrap delivered; check installed bootstrap before reusing
Encoding audit Live reports supplied: 231 files checked, 113 heuristic findings, not a complete site scan
theworld.php Inspected: one Windows-1252 dash in a comment; absent explicit charset; correction not delivered in that inspection turn
Export/certificate, milestones and world-map continent badge Latest source inspected and replacements prepared; see September 9 update below
Add-club, newer health dashboard Current source/deployment not verified here
Broken-link cron monitor Requested; executable, schedule and deployment not verified here
Additional table wrappers Explicitly deferred; no new site-wide rollout assumed

Source and testing boundaries

These guides reconcile the supplied admin files, menu, leaderboard source, encoding reports, inspected world-directory file and generated packages. PHP syntax-parser checks and selected simulated/aggregation tests were performed for generated code. Native PHP, live MySQL, real browser rendering and deployment were not validated in those packages unless explicitly stated. Do not describe them as fully tested production releases.

September 9: continents, milestones, map and export

Component Data and behavior
wherecountry.wherecountry_continent Historical area; unchanged
wherecountry.wherecountry_continent_real New nullable VARCHAR(20), one of seven continents
/siteadmin/country_continents.php Authenticated per-country editor, search and unassigned filter
/where/awhere_milestones.php 3/4/5/6/7 clubs from selected country IDs and real classifications
/where/awhere_worldmap.php Highest club and progress for the displayed hasher
/where/awhere_export.php Private PDF preview/download and CSV with continents
/where/certificate-fonts/ Required DejaVu Sans regular/bold TTFs and license

The supplied reference export contained 229 countries/territories and nine areas. The migration seeds 216 proposals and leaves 13 entries for review. It preserves nonblank classifications on rerun and matches ID and country name.

Travel configuration uses $pdb_server, $pdb_user, $pdb_password and $pdb_database. The first country-editor release incorrectly expected $db_* variables. Use the corrected editor; do not change your passwords to fix that.

My Milestones and Export use country ID minus one with Y flags. The existing world map chooses country ID or ID-minus-one by comparison with the stored country total and accepts Y/1/T. Its badge follows the map's choice. This legacy heuristic may disagree with other pages. Do not rewrite flags without inspecting a real affected account and preserving a backup.

A missing classification suppresses the completed continent count/club rather than awarding a partial result. Optional continent lookup failures should not stop the map or the rest of the export. Counts are self-reported.

The certificate uses embedded fonts and measured text widths, with Windows-1252 conversion retained from its previous PDF generator. UTF-8 CSV preserves a broader character repertoire. The map's Burma/Myanmar alias is retained.

Verification boundary

The latest export passed lint in a WebAssembly PHP CLI runtime. Its actual PHP PDF generator ran with sample data; first/detail pages and a long-name seven- continent example were rendered and inspected. Earlier PHP changes used a static syntax parser. Migration seeds passed a SQLite fixture, not native MySQL DDL execution. Live database/authentication, host logo support and deployment still require server checks. None of these guides certifies live installation.