feat: Add XML file management functionality

- Created XmlFiles control class for handling XML file views and regeneration.
- Implemented method to retrieve clients with XML feeds in the factory class.
- Added database migration to include google_merchant_account_id in clients table.
- Created migrations for products_keyword_planner_terms and products_merchant_sync_log tables.
- Added campaign_keywords table migration for managing campaign keyword data.
- Developed main view template for displaying XML files and their statuses.
- Introduced a debug script for analyzing product URLs and their statuses.
This commit is contained in:
2026-02-18 21:23:53 +01:00
parent 3dc06d505a
commit efbdcce08a
36 changed files with 8778 additions and 2615 deletions

View File

@@ -37,6 +37,8 @@
<body class="logged">
<?php
$module = $this -> current_module;
$google_ads_modules = [ 'campaigns', 'campaign_terms', 'products', 'clients', 'xml_files' ];
$is_google_ads_module = in_array( $module, $google_ads_modules, true );
?>
<!-- Sidebar -->
<aside class="sidebar" id="sidebar">
@@ -52,29 +54,43 @@
</div>
<nav class="sidebar-nav">
<ul>
<li class="<?= $module === 'campaigns' ? 'active' : '' ?>">
<a href="/campaigns">
<i class="fa-solid fa-bullhorn"></i>
<span>Kampanie</span>
</a>
</li>
<li class="<?= $module === 'campaign_terms' ? 'active' : '' ?>">
<a href="/campaign_terms">
<i class="fa-solid fa-list-check"></i>
<span>Grupy i frazy</span>
</a>
</li>
<li class="<?= $module === 'products' ? 'active' : '' ?>">
<a href="/products">
<i class="fa-solid fa-box-open"></i>
<span>Produkty</span>
</a>
</li>
<li class="<?= $module === 'clients' ? 'active' : '' ?>">
<a href="/clients">
<i class="fa-solid fa-building"></i>
<span>Klienci</span>
</a>
<li class="nav-group <?= $is_google_ads_module ? 'active' : '' ?>">
<div class="nav-group-label">
<i class="fa-brands fa-google"></i>
<span>Google ADS</span>
</div>
<ul class="nav-submenu">
<li class="<?= $module === 'campaigns' ? 'active' : '' ?>">
<a href="/campaigns">
<i class="fa-solid fa-bullhorn"></i>
<span>Kampanie</span>
</a>
</li>
<li class="<?= $module === 'campaign_terms' ? 'active' : '' ?>">
<a href="/campaign_terms">
<i class="fa-solid fa-list-check"></i>
<span>Grupy i frazy</span>
</a>
</li>
<li class="<?= $module === 'products' ? 'active' : '' ?>">
<a href="/products">
<i class="fa-solid fa-box-open"></i>
<span>Produkty</span>
</a>
</li>
<li class="<?= $module === 'clients' ? 'active' : '' ?>">
<a href="/clients">
<i class="fa-solid fa-building"></i>
<span>Klienci</span>
</a>
</li>
<li class="<?= $module === 'xml_files' ? 'active' : '' ?>">
<a href="/xml_files">
<i class="fa-solid fa-file-code"></i>
<span>Pliki XML</span>
</a>
</li>
</ul>
</li>
<li class="<?= $module === 'allegro' ? 'active' : '' ?>">
<a href="/allegro">
@@ -120,6 +136,7 @@
'campaign_terms' => 'Grupy i frazy',
'products' => 'Produkty',
'clients' => 'Klienci',
'xml_files' => 'Pliki XML',
'allegro' => 'Allegro import',
'users' => 'Ustawienia',
];