--- phase: 01-fix-article-info-metryczki plan: 01 type: execute wave: 1 depends_on: [] files_modified: - layouts/joomla/content/info_block.php - layouts/joomla/content/info_block/create_date.php - layouts/joomla/content/info_block/publish_date.php - layouts/joomla/content/info_block/modify_date.php - layouts/joomla/content/info_block/author.php autonomous: false delegation: off --- ## Goal Przywrócić prawidłowe wyświetlanie metryczek artykułów na stronie BIP po aktualizacji Joomla i rozszerzeń. Elementy z klasą `article-info text-muted` muszą renderować się z prawidłową strukturą HTML, którą oczekują skrypty JS (`dodajmetryczke.js`, `metryczka.js`). ## Purpose Metryczki artykułów BIP to wymóg prawny. Klient zgłasza, że po aktualizacji przestały się wyświetlać. Problem jest powtarzalny — aktualizacja Joomla nadpisuje pliki core layouts. ## Output Pliki layout przywrócone do stanu kompatybilnego z JS metryczek. Metryczki widoczne na stronie. ## Project Context @.paul/PROJECT.md @.paul/ROADMAP.md ## Source Files @layouts/joomla/content/info_block.php @layouts/joomla/content/info_block/create_date.php @layouts/joomla/content/info_block/publish_date.php @layouts/joomla/content/info_block/modify_date.php @layouts/joomla/content/info_block/author.php @templates/instytut_dendrologii_/js/metryczka.js @templates/instytut_dendrologii_/js/dodajmetryczke.js ## Analiza problemu Skrypty JS metryczek (`metryczka.js`, `dodajmetryczke.js`) polegają na konkretnych selektorach CSS: - `.grid-bip .article-info` — wrapper metryczki (dodajmetryczke.js:8) - `.create [itemprop="dateCreated"]` — data wytworzenia (metryczka.js:41) - `.published [itemprop="datePublished"]` — data udostępnienia (metryczka.js:45) - `.modified [itemprop="dateModified"]` — data modyfikacji (metryczka.js:49) - `.metryczka` → `.closest('.article-info').lastChild` — toggle visibility (dodajmetryczke.js:21) Aktualizacja Joomla mogła: 1. Zmienić strukturę HTML sublayoutów (inne klasy, brak itemprop) 2. Zmienić format tekstu (np. "Utworzono:" → "Created on") 3. Zmienić typ elementów (dd→div, time→span) Obecna lokalna wersja plików może nie odpowiadać stanowi na serwerze po aktualizacji. ## AC-1: Metryczka BIP widoczna na stronie artykułu ```gherkin Given artykuł w sekcji BIP (klasa .grid-bip) When użytkownik otwiera stronę artykułu Then element .article-info text-muted jest obecny w DOM And zawiera przycisk "METRYCZKA" (klasa .infometryczka) And po kliknięciu "METRYCZKA" pojawia się blok z danymi ``` ## AC-2: Dane metryczki poprawnie wypełnione ```gherkin Given artykuł BIP z uzupełnionymi polami (autor, daty) When skrypt metryczka.js wypełnia dane Then metryczka zawiera: Podmiot udostępniający, Wytwarzający, Data wytworzenia, Data udostępnienia And daty są w poprawnym formacie (nie "undefined" ani puste) ``` ## AC-3: Selektory JS pasują do struktury HTML ```gherkin Given pliki info_block.php i sublayouty na serwerze When przeglądarka renderuje stronę Then selektory .create [itemprop="dateCreated"], .published [itemprop="datePublished"], .modified [itemprop="dateModified"] znajdują elementy And dodajmetryczke.js poprawnie wstrzykuje HTML metryczki ``` Synchronizacja plików z serwera 1. W VS Code użyj ftp-kr: pobierz aktualną wersję plików z serwera 2. Pliki do pobrania: - `layouts/joomla/content/info_block.php` - `layouts/joomla/content/info_block/create_date.php` - `layouts/joomla/content/info_block/publish_date.php` - `layouts/joomla/content/info_block/modify_date.php` - `layouts/joomla/content/info_block/author.php` - `layouts/joomla/content/info_block/category.php` - `layouts/joomla/content/info_block/hits.php` 3. Opcjonalnie: pobierz cały folder `layouts/joomla/content/` rekursywnie Wpisz "pobrane" gdy pliki zostaną zsynchronizowane z serwera Task 1: Diagnoza różnic po aktualizacji layouts/joomla/content/info_block.php, layouts/joomla/content/info_block/create_date.php, layouts/joomla/content/info_block/publish_date.php, layouts/joomla/content/info_block/modify_date.php, layouts/joomla/content/info_block/author.php Po pobraniu plików z serwera: 1. Przeczytaj zaktualizowane pliki layoutów 2. Sprawdź czy struktura HTML pasuje do selektorów JS: - `