---
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 serweraTask 1: Diagnoza różnic po aktualizacjilayouts/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:
- `
` — wrapper
- `
` z `
Lista zidentyfikowanych różnic między oczekiwaną a aktualną strukturą HTMLAC-3 częściowo: Wiadomo co wymaga poprawyTask 2: Naprawa plików layout — przywrócenie kompatybilności z JSlayouts/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
Na podstawie diagnozy z Task 1:
1. Edytuj pliki sublayoutów, aby przywrócić oczekiwaną strukturę HTML
2. Upewnij się, że:
- Wrapper ma klasę `article-info text-muted` (tag `
`)
- create_date.php: `
` + ``
- publish_date.php: `
` + ``
- modify_date.php: `
` + ``
- Tekst dat zawiera polskie frazy: "Utworzono", "Opublikowano:", "Poprawiono:"
(metryczka.js robi .replace() tych fraz)
3. NIE zmieniaj plików JS — one działają poprawnie, problem jest w HTML
4. NIE modyfikuj plików CSS szablonu
Przejrzyj zmodyfikowane pliki i porównaj selektory JS z wygenerowanym HTMLAC-3 satisfied: Selektory JS pasują do struktury HTMLNaprawione pliki layout metryczek
1. Wgraj poprawione pliki na serwer (ftp-kr upload)
2. Otwórz stronę artykułu BIP na idpan.poznan.pl
3. Sprawdź w DevTools (F12 → Elements):
- Czy jest element `
`
- Czy wewnątrz są `
`, `
`, `
`
4. Kliknij przycisk "METRYCZKA"
5. Sprawdź czy pojawiają się dane: Podmiot udostępniający, Wytwarzający, daty
6. Sprawdź konsolę (F12 → Console) pod kątem błędów JS
Wpisz "approved" jeśli metryczki działają, lub opisz problemy
## DO NOT CHANGE
- templates/instytut_dendrologii_/js/metryczka.js (JS działa poprawnie)
- templates/instytut_dendrologii_/js/dodajmetryczke.js (JS działa poprawnie)
- templates/instytut_dendrologii_/js/mod64.js
- templates/instytut_dendrologii_/css/*.css (style niezmienione)
## SCOPE LIMITS
- Tylko naprawa kompatybilności HTML z istniejącymi skryptami JS
- Nie dodajemy nowych funkcji do metryczek
- Nie przenosimy jeszcze do template overrides (to Phase 2)
- Nie modyfikujemy żadnych innych layoutów poza info_block
Before declaring plan complete:
- [ ] Pliki layout mają strukturę HTML kompatybilną z selektorami JS
- [ ] Metryczka BIP wyświetla się na stronie po kliknięciu
- [ ] Dane metryczki (podmiot, wytwarzający, daty) są poprawnie wypełnione
- [ ] Brak błędów JS w konsoli przeglądarki
- Metryczki artykułów BIP widoczne i funkcjonalne na stronie
- Klient potwierdza naprawę
- Pliki layout kompatybilne z istniejącym kodem JS