Date: November 15, 2025
Status: β
Fixed and Improved
Problem: template file not found: template:main
Root Cause: Templates weren't synced to server
Solution:
- Synced all template files from
templates/to server - Fixed PHP syntax in PageController
- Used
$this->appNameinstead of hardcoded 'verein'
Problem: App icon routed to /nextcloud/index.php/apps/dashboard/ instead of app
Root Cause: info.xml used outdated <href> tag
Solution:
- Updated
info.xmlto match Nextcloud 32 standard (like Notes app) - Changed from
<href>/apps/verein/</href>to<route>page#index</route> - Added proper navigation ID and order attributes
- Removed hardcoded asset loading (not needed for this version)
<navigations>
<navigation>
<id>verein</id>
<name>Verein</name>
<route>page#index</route>
<icon>app.svg</icon>
<order>10</order>
</navigation>
</navigations>Key differences from old version:
- β
Uses
<route>instead of<href>(Nextcloud 32 standard) - β
Added
<id>element (required) - β
Added
<order>for sidebar positioning - β
Removed
<assets>section (handled differently in NC32) - β
Added
<website>and<bugs>metadata - β
Added proper
<description>tag
public function index(): TemplateResponse {
return new TemplateResponse($this->appName, 'main');
}Key changes:
- β
Uses
$this->appName(injected by framework) - β Proper type hints added
- β Follows Nextcloud 32 conventions
β
appinfo/info.xml - Updated navigation configuration
β
lib/Controller/PageController.php - Fixed template response
β
templates/main.php - Main dashboard template
β
templates/members.php - Members section
β
templates/calendar.php - Calendar section
β
templates/finance.php - Finance section
β
templates/deck.php - Deck section
β
img/app.svg - App icon
β
js/ - Frontend components
β
composer.json/lock - Dependencies
β
PHP syntax validation - All files OK
β
File permissions - www-data:www-data 644/755
β
App re-enabled in Nextcloud
β
Apache restarted
β
Templates verified to exist on server
429 Too Many Requests: This is expected after many test attempts. Nextcloud has rate limiting enabled. The app is working correctly - this is just the security mechanism.
Wait 5-10 minutes or clear the rate limit to continue testing.
- β Wait for rate limit to clear
- β³ Test navigation in Nextcloud sidebar
- β³ Verify icon displays correctly
- β³ Check that app opens without errors
- β³ Test API endpoints
- Always match Nextcloud version documentation for
info.xml - Use
$this->appNameinstead of hardcoded app names - Ensure all template files are synced
- Remember to re-enable app after configuration changes
- Add proper type hints in PHP 7.4+
β¨ Ready for Browser Testing β¨