Restaurant Kitchen Printer Controller Documentation
File: /controllers/restaurantKitchenPrinter.php
Purpose: Manages kitchen printer interface for restaurant order printing and display
Last Updated: December 19, 2024
Total Functions: 0 (Display-only controller)
Lines of Code: 86
---
๐ Overview
The Restaurant Kitchen Printer Controller provides a specialized interface for kitchen printers and display systems. It handles:
- โข Kitchen printer home interface without login requirements
- โข Database name management from archive files
- โข Program settings integration for kitchen display
- โข Printer-specific parameter handling
- โข Simplified template system for kitchen environments
- โข Multi-database support for kitchen operations
Primary Functions
- โ Kitchen printer home interface
- โ No-login machine access
- โ Database selection from archives
- โ Program settings display
- โ Printer parameter configuration
- โ Simplified error/success handling
Related Controllers
- โข sellbillController.php - Order processing for kitchen printing
- โข restauranthall.php - Hall-based order management
- โข restauranttable.php - Table-based order tracking
- โข restaurantplaystation.php - Gaming station orders
- โข restaurantKitchenPrinterAjax.php - AJAX operations for kitchen
- โข programsettingsController.php - System configuration
---
๐๏ธ Database Tables
Primary Tables (Read Access)
| Table Name | Purpose | Key Columns | |
|---|---|---|---|
| **restaurantkitchenprint** | Kitchen print jobs | Print queue and status tracking | |
| **programsettings** | System configuration | Kitchen display settings |
| Table Name | Purpose | Relationship | |
|---|---|---|---|
| **user** | System users | Kitchen user tracking (optional) | |
| **youtubelink** | Entertainment links | Kitchen display integration |
| File | Purpose | Usage | |
|---|---|---|---|
| **dbNames.txt** | Database list | Dynamic database selection | |
| Archive databases | Historical data | Kitchen access to past orders |
restaurantkitchenprint columns:
- โข Print job tracking and queue management
- โข Kitchen order display formatting
- โข Status tracking for printed orders
programsettings structure:
- โข System-wide configuration for kitchen display
- โข Printer settings and formatting options
- โข Kitchen interface customization
---
๐ง Key Functions
1. Default Action (Kitchen Home)
Purpose: Display kitchen printer home interface
Called By: Direct access (no do parameter)
Line: 52-69
Process Flow:
Code Example:
// Read database names from archive
$databsesNames = file_get_contents("../views/default/archiveview/dbNames.txt");
$databsesNames = trim($databsesNames);
$databases = array_reverse(explode(",", $databsesNames));
$_SESSION['dbname'] = $databases[0]; // Use latest database
// Load program settings
$programsettingsdata = $ProgramsettingDAO->load(1);
$smarty->assign('programsettingsdata', $programsettingsdata);
// Get printer parameter
$printer = $_GET['printer'];
$smarty->assign('printer', $printer);
2. Success Handler
Purpose: Display success page for kitchen operations
Called By: ?do=sucess
Line: 70-73
3. Error Handler
Purpose: Display error page for kitchen operations
Called By: ?do=error
Line: 74-78
4. No-Login Configuration
Purpose: Configure template for machine access without authentication
Line: 18, 79
Configuration:
$smarty->assign("itIsMachine_NoLogin", 1); // Disable login requirements
$smarty->assign("restaurantKitchenPrinter", 1); // Kitchen context flag
---
๐ Business Logic Flow
Kitchen Printer Initialization
Database Archive Integration
Printer-Specific Access
---
โ ๏ธ Common Issues
1. Database Archive Access
Issue: Kitchen must access latest database automatically
Solution: dbNames.txt file maintains list of available databases
2. No Authentication Requirements
Issue: Kitchen machines need direct access without user login
Solution: itIsMachine_NoLogin flag bypasses authentication
3. Printer-Specific Configuration
Issue: Different kitchen printers may need different configurations
Solution: Printer parameter allows customization per device
4. Archive File Dependencies
Issue: Missing or corrupted dbNames.txt breaks kitchen access
Solution: File should be maintained by backup/archive systems
---
๐ Dependencies
Required Files
- โข
../public/config.php- Core configuration (no impOpreation.php) - โข
../public/include_dao.php- Database access objects - โข
../views/default/archiveview/dbNames.txt- Database archive list
DAO Classes
- โข
RestaurantkitchenprintMySqlDAO- Kitchen print operations - โข
RestaurantkitchenprintMySqlExtDAO- Extended kitchen operations - โข
UserMySqlDAO- User operations (optional) - โข
ProgramsettingsMySqlDAO- System configuration
Model Classes
- โข
Restaurantkitchenprint.class.php- Kitchen print entity - โข
User.class.php- User entity (optional) - โข
Programsetting.class.php- Settings entity
Templates
- โข
restaurantKitchenPrinter/printHome.html- Kitchen home interface - โข
header-bill.html- Simplified header for kitchen - โข
footer.html- Standard footer - โข
succes.html/error.html- Result pages
Special Configuration
- โข No standard authentication requirements
- โข Simplified template system for kitchen environment
- โข Direct database archive integration
- โข Machine-specific access patterns
Archive Files
- โข
dbNames.txt- Critical for database selection - โข Archive database connections for historical access
- โข Backup integration for database list maintenance
---
Integration Notes:
- โข Designed for dedicated kitchen hardware without user interaction
- โข Simplified interface optimized for kitchen environment
- โข Direct integration with restaurant order processing
- โข Archive database support for historical order access
- โข Printer-specific customization via URL parameters
- โข No authentication barriers for kitchen machine access
- โข Minimal controller logic focuses on display and configuration