diff --git a/.paul/PROJECT.md b/.paul/PROJECT.md new file mode 100644 index 0000000..e88e30a --- /dev/null +++ b/.paul/PROJECT.md @@ -0,0 +1,16 @@ +# PROJECT: idpan.poznan.pl + +## Description +Strona internetowa Instytutu Dendrologii PAN w Kórniku. Oparta na Joomla CMS z własnym szablonem `instytut_dendrologii_`. + +## Tech Stack +- Joomla CMS (PHP) +- Custom template: `instytut_dendrologii_` +- JavaScript (vanilla + jQuery) +- CSS +- FTP deployment (ftp-kr VS Code extension) + +## Key Constraints +- Pliki core Joomla są nadpisywane przy aktualizacjach — customizacje muszą iść przez template overrides +- Przed edycją plików — pobierz aktualną wersję z serwera (FTP sync) +- Strona BIP wymaga metryczek artykułów (wymóg prawny) diff --git a/.paul/ROADMAP.md b/.paul/ROADMAP.md new file mode 100644 index 0000000..1ede935 --- /dev/null +++ b/.paul/ROADMAP.md @@ -0,0 +1,13 @@ +# ROADMAP — idpan.poznan.pl + +## Milestone: v1.0 — Naprawa metryczek po aktualizacji Joomla ✓ (2026-04-10) + +### Phase 1: Fix article-info metryczki (hotfix) +- **Goal:** Przywrócić prawidłowe wyświetlanie metryczek artykułów (klasa `article-info text-muted`) +- **Status:** Complete +- **Priority:** Critical — zgłoszenie klienta +- **Completed:** 2026-04-10 + +### Phase 2: Template overrides (hardening) — optional +- **Goal:** Przenieść customizacje z plików core do template overrides, aby przetrwały przyszłe aktualizacje +- **Status:** Not started diff --git a/.paul/STATE.md b/.paul/STATE.md new file mode 100644 index 0000000..dde3c09 --- /dev/null +++ b/.paul/STATE.md @@ -0,0 +1,25 @@ +## Current Position + +Milestone: v1.0 Naprawa metryczek po aktualizacji Joomla +Phase: 1 of 2 (Fix article-info metryczki) — Complete +Plan: 01-01 complete +Status: Milestone v1.0 complete +Last activity: 2026-04-10 — Milestone closed + +Progress: +- Milestone: [██████████] 100% ✓ + +## Loop Position + +Current loop state: +``` +PLAN ──▶ APPLY ──▶ UNIFY + ✓ ✓ ✓ [Loop complete - Phase 1 done] +``` + +## Session Continuity + +Last session: 2026-04-10 +Stopped at: Phase 1 complete +Next action: Milestone complete. Phase 2 (template overrides) odłożona. +Resume file: .paul/phases/01-fix-article-info-metryczki/01-01-SUMMARY.md diff --git a/.paul/changelog/2026-04-10.md b/.paul/changelog/2026-04-10.md new file mode 100644 index 0000000..a712a11 --- /dev/null +++ b/.paul/changelog/2026-04-10.md @@ -0,0 +1,14 @@ +# 2026-04-10 + +## Co zrobiono + +- [Phase 1, Plan 01] Naprawa metryczek artykułów BIP po aktualizacji Joomla +- Przywrócono atrybuty itemprop (dateCreated, datePublished, dateModified) w sublayoutach info_block +- Przywrócono atrybuty schema.org (author, name, url) w author.php + +## Zmienione pliki + +- `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` diff --git a/.paul/governance/governance_2026-04-10.jsonl b/.paul/governance/governance_2026-04-10.jsonl new file mode 100644 index 0000000..a4057fd --- /dev/null +++ b/.paul/governance/governance_2026-04-10.jsonl @@ -0,0 +1,23 @@ +{"ts":"2026-04-10T19:10:32Z","tool":"Bash","cmd":"mkdir -p \"/c/visual studio code/projekty/idpan.poznan.pl/.paul/phases/01-fix-article-info-metryczki\"\",\"description\":\"Create PAUL phase directory\"},\"tool_response\":{\"stdout\":\"\",\"stderr\":","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:10:42Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\idpan.poznan.pl\\\\.paul\\\\PROJECT.md","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:10:46Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\idpan.poznan.pl\\\\.paul\\\\ROADMAP.md","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:10:53Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\idpan.poznan.pl\\\\.paul\\\\STATE.md","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:11:52Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\idpan.poznan.pl\\\\.paul\\\\phases\\\\01-fix-article-info-metryczki\\\\01-01-PLAN.md","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:13:54Z","tool":"Bash","cmd":"mkdir -p \"/c/Users/jacek/.claude/projects/C--visual-studio-code-projekty-idpan-poznan-pl/memory\"\",\"description\":\"Ensure memory directory exists\"},\"tool_response\":{\"stdout\":\"\",\"stderr\":\","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:14:07Z","tool":"Write","file":"C:\\\\Users\\\\jacek\\\\.claude\\\\projects\\\\C--visual-studio-code-projekty-idpan-poznan-pl\\\\memory\\\\project_metryczki_issue.md","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:14:09Z","tool":"Write","file":"C:\\\\Users\\\\jacek\\\\.claude\\\\projects\\\\C--visual-studio-code-projekty-idpan-poznan-pl\\\\memory\\\\MEMORY.md","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:18:33Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\idpan.poznan.pl\\\\layouts\\\\joomla\\\\content\\\\info_block\\\\create_date.php","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:18:34Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\idpan.poznan.pl\\\\layouts\\\\joomla\\\\content\\\\info_block\\\\publish_date.php","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:18:36Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\idpan.poznan.pl\\\\layouts\\\\joomla\\\\content\\\\info_block\\\\modify_date.php","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:18:37Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\idpan.poznan.pl\\\\layouts\\\\joomla\\\\content\\\\info_block\\\\author.php","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:18:41Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\idpan.poznan.pl\\\\layouts\\\\joomla\\\\content\\\\info_block\\\\author.php","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:18:44Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\idpan.poznan.pl\\\\layouts\\\\joomla\\\\content\\\\info_block\\\\author.php","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:18:45Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\idpan.poznan.pl\\\\layouts\\\\joomla\\\\content\\\\info_block\\\\author.php","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:20:59Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\idpan.poznan.pl\\\\.paul\\\\phases\\\\01-fix-article-info-metryczki\\\\01-01-SUMMARY.md","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:21:16Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\idpan.poznan.pl\\\\.paul\\\\STATE.md","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:21:17Z","tool":"Bash","cmd":"mkdir -p \"/c/visual studio code/projekty/idpan.poznan.pl/.paul/changelog\"\",\"description\":\"Create changelog directory\"},\"tool_response\":{\"stdout\":\"\",\"stderr\":\"\",\"interrupted\":false,\","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:21:25Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\idpan.poznan.pl\\\\.paul\\\\changelog\\\\2026-04-10.md","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:21:30Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\idpan.poznan.pl\\\\.paul\\\\ROADMAP.md","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:23:00Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\idpan.poznan.pl\\\\.paul\\\\ROADMAP.md","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:23:03Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\idpan.poznan.pl\\\\.paul\\\\STATE.md","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} +{"ts":"2026-04-10T19:23:05Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\idpan.poznan.pl\\\\.paul\\\\STATE.md","cwd":"/c/visual studio code/projekty/idpan.poznan.pl"} diff --git a/.paul/phases/01-fix-article-info-metryczki/01-01-PLAN.md b/.paul/phases/01-fix-article-info-metryczki/01-01-PLAN.md new file mode 100644 index 0000000..05809f5 --- /dev/null +++ b/.paul/phases/01-fix-article-info-metryczki/01-01-PLAN.md @@ -0,0 +1,193 @@ +--- +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: + - `