- Add 26 documentation files including test reports, deployment guides, and troubleshooting documentation - Include 3 CSV data files for trainer imports and user registration tracking - Add 43 JavaScript test files covering mobile optimization, Safari compatibility, and E2E testing - Include 18 PHP utility files for debugging, geocoding, and data analysis - Add 12 shell scripts for deployment verification, user management, and database operations - Update .gitignore with whitelist patterns for development files, documentation, and CSV data 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			107 lines
		
	
	
		
			No EOL
		
	
	
		
			3.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			No EOL
		
	
	
		
			3.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * CSV Field Analysis Script
 | |
|  * Analyze CSV_Trainers_Import_1Aug2025.csv and identify missing fields
 | |
|  */
 | |
| 
 | |
| // Read the CSV file
 | |
| $csv_file = 'CSV_Trainers_Import_1Aug2025.csv';
 | |
| if (!file_exists($csv_file)) {
 | |
|     die("CSV file not found: $csv_file\n");
 | |
| }
 | |
| 
 | |
| $handle = fopen($csv_file, 'r');
 | |
| if (!$handle) {
 | |
|     die("Cannot open CSV file\n");
 | |
| }
 | |
| 
 | |
| // Get headers
 | |
| $headers = fgetcsv($handle);
 | |
| echo "=== CSV HEADERS ANALYSIS ===\n\n";
 | |
| echo "Total columns: " . count($headers) . "\n\n";
 | |
| 
 | |
| foreach ($headers as $index => $header) {
 | |
|     echo sprintf("%2d. %-25s", $index + 1, trim($header)) . "\n";
 | |
| }
 | |
| 
 | |
| // Get first few rows to see data structure
 | |
| echo "\n=== SAMPLE DATA STRUCTURE ===\n\n";
 | |
| $sample_rows = 0;
 | |
| while (($row = fgetcsv($handle)) !== FALSE && $sample_rows < 3) {
 | |
|     $sample_rows++;
 | |
|     echo "Row $sample_rows:\n";
 | |
|     foreach ($headers as $index => $header) {
 | |
|         $value = isset($row[$index]) ? trim($row[$index]) : '';
 | |
|         echo sprintf("  %-25s: %s\n", trim($header), $value);
 | |
|     }
 | |
|     echo "\n";
 | |
| }
 | |
| 
 | |
| fclose($handle);
 | |
| 
 | |
| // Compare with current taxonomy fields
 | |
| echo "=== TAXONOMY FIELD MAPPING ===\n\n";
 | |
| 
 | |
| $taxonomy_fields = [
 | |
|     'business_type' => 'Business Type',
 | |
|     'training_audience' => 'Training Audience',
 | |
|     'training_formats' => 'Not available in CSV',
 | |
|     'training_locations' => 'Not available in CSV', 
 | |
|     'training_resources' => 'Not available in CSV'
 | |
| ];
 | |
| 
 | |
| echo "Available taxonomy mappings:\n";
 | |
| foreach ($taxonomy_fields as $taxonomy => $csv_field) {
 | |
|     echo sprintf("  %-20s -> %s\n", $taxonomy, $csv_field);
 | |
| }
 | |
| 
 | |
| echo "\n=== MISSING PROFILE FIELDS ===\n\n";
 | |
| 
 | |
| $profile_fields_in_csv = [
 | |
|     'Company Name' => 'organization_name / company_name',
 | |
|     'Role' => 'role / personal_role',
 | |
|     'Date Certified' => 'date_certified',
 | |
|     'Certification Type' => 'certification_type', 
 | |
|     'Certification Status' => 'certification_status',
 | |
|     'Company Website' => 'company_website / organization_website',
 | |
|     'Phone Number' => 'phone_number / trainer_phone',
 | |
|     'Application Details' => 'application_details',
 | |
|     'User ID' => 'username (for user creation)',
 | |
|     'Create Venue' => 'create_venue_flag',
 | |
|     'Create Organizer' => 'create_organizer_flag'
 | |
| ];
 | |
| 
 | |
| echo "Profile fields available in CSV but potentially missing from import:\n";
 | |
| foreach ($profile_fields_in_csv as $csv_field => $profile_field) {
 | |
|     echo sprintf("  %-20s -> %s\n", $csv_field, $profile_field);
 | |
| }
 | |
| 
 | |
| echo "\n=== FIELD ENHANCEMENT RECOMMENDATIONS ===\n\n";
 | |
| 
 | |
| $recommendations = [
 | |
|     '1. Add Role field to profile import (maps to new role taxonomy)',
 | |
|     '2. Import Company Website as organization_website',
 | |
|     '3. Import Phone Number as trainer_phone', 
 | |
|     '4. Import Application Details to profile content or meta',
 | |
|     '5. Use User ID column for consistent username creation',
 | |
|     '6. Process Create Venue/Organizer flags for automatic creation',
 | |
|     '7. Import Date Certified with proper date parsing',
 | |
|     '8. Map Business Type to business_type taxonomy',
 | |
|     '9. Map Training Audience to training_audience taxonomy',
 | |
|     '10. Handle multiple values in Training Audience field (comma-separated)'
 | |
| ];
 | |
| 
 | |
| foreach ($recommendations as $rec) {
 | |
|     echo "  $rec\n";
 | |
| }
 | |
| 
 | |
| echo "\n=== PROPOSED IMPORT SCRIPT ENHANCEMENTS ===\n\n";
 | |
| echo "The enhanced import script should:\n";
 | |
| echo "1. Read actual CSV file instead of hardcoded data\n";
 | |
| echo "2. Parse comma-separated taxonomy values properly\n";
 | |
| echo "3. Import all available profile fields\n";
 | |
| echo "4. Handle date fields with proper formatting\n";
 | |
| echo "5. Create venues and organizers based on flags\n";
 | |
| echo "6. Use proper taxonomy assignment for new taxonomy system\n";
 | |
| 
 | |
| ?>
 |