Files
backPRO/config/routes.php
Jacek Pyziak e9a3602576 feat: Add SEMSTORM domain input and SEO panel links
- Added optional SEMSTORM domain input field in site creation and editing forms.
- Introduced SEO panel links in site dashboard and edit pages.
- Created a new cron job for SEMSTORM data synchronization.
- Implemented database migrations for cron logs and site SEO metrics.
- Developed SiteSeoSyncService to handle SEMSTORM data fetching and storage.
- Added logging functionality for cron events.
- Created a new LogController to display cron logs with filtering options.
- Added SEO statistics dashboard with visual representation of metrics.
- Implemented site SEO metrics model for data retrieval and manipulation.
2026-02-20 23:49:40 +01:00

78 lines
3.8 KiB
PHP

<?php
/** @var \App\Core\Router $router */
// Auth
$router->get('/login', 'AuthController', 'loginForm');
$router->post('/login', 'AuthController', 'login');
$router->get('/logout', 'AuthController', 'logout');
$router->get('/change-password', 'AuthController', 'changePasswordForm');
$router->post('/change-password', 'AuthController', 'changePassword');
// Dashboard
$router->get('/', 'DashboardController', 'index');
$router->get('/seo/stats', 'DashboardController', 'seoStats');
// Logs
$router->get('/logs', 'LogController', 'index');
// Global Topics (library)
$router->get('/global-topics', 'GlobalTopicController', 'index');
$router->post('/global-topics/categories', 'GlobalTopicController', 'storeCategory');
$router->post('/global-topics/{id}/subtopics', 'GlobalTopicController', 'storeSubtopic');
$router->post('/global-topics/{id}/update', 'GlobalTopicController', 'update');
$router->post('/global-topics/{id}/delete', 'GlobalTopicController', 'destroy');
// Sites
$router->get('/sites', 'SiteController', 'index');
$router->get('/sites/create', 'SiteController', 'create');
$router->post('/sites', 'SiteController', 'store');
$router->get('/sites/{id}/edit', 'SiteController', 'edit');
$router->post('/sites/{id}', 'SiteController', 'update');
$router->post('/sites/{id}/delete', 'SiteController', 'destroy');
$router->post('/sites/{id}/test', 'SiteController', 'testConnection');
$router->get('/sites/{id}/dashboard', 'SiteController', 'dashboard');
$router->post('/sites/{id}/dashboard/permalinks/enable', 'SiteController', 'enablePrettyPermalinks');
$router->post('/sites/{id}/dashboard/remote-service/update', 'SiteController', 'updateRemoteService');
$router->post('/sites/{id}/dashboard/theme/install', 'SiteController', 'installBackproNewsTheme');
$router->post('/sites/{id}/dashboard/reinstall', 'SiteController', 'reinstallWordPress');
$router->post('/sites/{id}/dashboard/seo/sync', 'SiteController', 'syncSeoMetrics');
$router->get('/sites/{id}/seo', 'SiteController', 'seoPanel');
$router->post('/sites/{id}/seo/sync', 'SiteController', 'syncSeoMetrics');
$router->get('/seo/token-sync', 'SiteController', 'syncSeoByToken');
$router->post('/seo/token-sync', 'SiteController', 'syncSeoByToken');
// Topics
$router->get('/sites/{id}/topics', 'TopicController', 'index');
$router->post('/sites/{id}/topics', 'TopicController', 'store');
$router->post('/topics/{id}/update', 'TopicController', 'update');
$router->post('/topics/{id}/delete', 'TopicController', 'destroy');
// Categories (sync from WordPress)
$router->get('/sites/{id}/categories', 'CategoryController', 'index');
$router->post('/sites/{id}/categories/sync', 'CategoryController', 'sync');
$router->post('/sites/{id}/categories/create', 'CategoryController', 'create');
$router->post('/sites/{id}/categories/from-topics', 'CategoryController', 'createFromTopics');
// Articles
$router->get('/articles', 'ArticleController', 'index');
$router->post('/articles/import', 'ArticleController', 'importFromWordPress');
$router->get('/articles/{id}', 'ArticleController', 'show');
$router->post('/articles/{id}/delete', 'ArticleController', 'destroy');
$router->post('/articles/{id}/replace-image', 'ArticleController', 'replaceImage');
// Publish (manual trigger)
$router->post('/publish/run', 'PublishController', 'run');
$router->post('/publish/site/{id}', 'PublishController', 'runForSite');
$router->get('/publish/token-run', 'PublishController', 'runByToken');
$router->post('/publish/token-run', 'PublishController', 'runByToken');
// Installer (Remote WordPress Installation)
$router->get('/installer', 'InstallerController', 'index');
$router->post('/installer', 'InstallerController', 'install');
$router->get('/installer/status/{id}', 'InstallerController', 'status');
// Settings
$router->get('/settings', 'SettingsController', 'index');
$router->post('/settings', 'SettingsController', 'update');