update
This commit is contained in:
16
.paul/PROJECT.md
Normal file
16
.paul/PROJECT.md
Normal file
@@ -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)
|
||||
13
.paul/ROADMAP.md
Normal file
13
.paul/ROADMAP.md
Normal file
@@ -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
|
||||
25
.paul/STATE.md
Normal file
25
.paul/STATE.md
Normal file
@@ -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
|
||||
14
.paul/changelog/2026-04-10.md
Normal file
14
.paul/changelog/2026-04-10.md
Normal file
@@ -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`
|
||||
23
.paul/governance/governance_2026-04-10.jsonl
Normal file
23
.paul/governance/governance_2026-04-10.jsonl
Normal file
@@ -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"}
|
||||
193
.paul/phases/01-fix-article-info-metryczki/01-01-PLAN.md
Normal file
193
.paul/phases/01-fix-article-info-metryczki/01-01-PLAN.md
Normal file
@@ -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
|
||||
---
|
||||
|
||||
<objective>
|
||||
## 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.
|
||||
</objective>
|
||||
|
||||
<context>
|
||||
## 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.
|
||||
</context>
|
||||
|
||||
<acceptance_criteria>
|
||||
|
||||
## 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
|
||||
```
|
||||
|
||||
</acceptance_criteria>
|
||||
|
||||
<tasks>
|
||||
|
||||
<task type="checkpoint:human-action" gate="blocking">
|
||||
<what-built>Synchronizacja plików z serwera</what-built>
|
||||
<how-to-verify>
|
||||
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
|
||||
</how-to-verify>
|
||||
<resume-signal>Wpisz "pobrane" gdy pliki zostaną zsynchronizowane z serwera</resume-signal>
|
||||
</task>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 1: Diagnoza różnic po aktualizacji</name>
|
||||
<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</files>
|
||||
<action>
|
||||
Po pobraniu plików z serwera:
|
||||
1. Przeczytaj zaktualizowane pliki layoutów
|
||||
2. Sprawdź czy struktura HTML pasuje do selektorów JS:
|
||||
- `<dl class="article-info text-muted">` — wrapper
|
||||
- `<dd class="create">` z `<time itemprop="dateCreated">` — data wytworzenia
|
||||
- `<dd class="published">` z `<time itemprop="datePublished">` — data publikacji
|
||||
- `<dd class="modified">` z `<time itemprop="dateModified">` — data modyfikacji
|
||||
3. Zidentyfikuj co się zmieniło (klasy, tagi, atrybuty, format tekstu)
|
||||
4. Przygotuj listę zmian potrzebnych do przywrócenia kompatybilności
|
||||
</action>
|
||||
<verify>Lista zidentyfikowanych różnic między oczekiwaną a aktualną strukturą HTML</verify>
|
||||
<done>AC-3 częściowo: Wiadomo co wymaga poprawy</done>
|
||||
</task>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 2: Naprawa plików layout — przywrócenie kompatybilności z JS</name>
|
||||
<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</files>
|
||||
<action>
|
||||
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 `<dl>`)
|
||||
- create_date.php: `<dd class="create">` + `<time itemprop="dateCreated">`
|
||||
- publish_date.php: `<dd class="published">` + `<time itemprop="datePublished">`
|
||||
- modify_date.php: `<dd class="modified">` + `<time itemprop="dateModified">`
|
||||
- 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
|
||||
</action>
|
||||
<verify>Przejrzyj zmodyfikowane pliki i porównaj selektory JS z wygenerowanym HTML</verify>
|
||||
<done>AC-3 satisfied: Selektory JS pasują do struktury HTML</done>
|
||||
</task>
|
||||
|
||||
<task type="checkpoint:human-verify" gate="blocking">
|
||||
<what-built>Naprawione pliki layout metryczek</what-built>
|
||||
<how-to-verify>
|
||||
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 `<dl class="article-info text-muted">`
|
||||
- Czy wewnątrz są `<dd class="create">`, `<dd class="published">`, `<dd class="modified">`
|
||||
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
|
||||
</how-to-verify>
|
||||
<resume-signal>Wpisz "approved" jeśli metryczki działają, lub opisz problemy</resume-signal>
|
||||
</task>
|
||||
|
||||
</tasks>
|
||||
|
||||
<boundaries>
|
||||
|
||||
## 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
|
||||
|
||||
</boundaries>
|
||||
|
||||
<verification>
|
||||
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
|
||||
</verification>
|
||||
|
||||
<success_criteria>
|
||||
- Metryczki artykułów BIP widoczne i funkcjonalne na stronie
|
||||
- Klient potwierdza naprawę
|
||||
- Pliki layout kompatybilne z istniejącym kodem JS
|
||||
</success_criteria>
|
||||
|
||||
<output>
|
||||
After completion, create `.paul/phases/01-fix-article-info-metryczki/01-01-SUMMARY.md`
|
||||
</output>
|
||||
115
.paul/phases/01-fix-article-info-metryczki/01-01-SUMMARY.md
Normal file
115
.paul/phases/01-fix-article-info-metryczki/01-01-SUMMARY.md
Normal file
@@ -0,0 +1,115 @@
|
||||
---
|
||||
phase: 01-fix-article-info-metryczki
|
||||
plan: 01
|
||||
subsystem: layouts
|
||||
tags: [joomla, info_block, itemprop, metryczki, bip]
|
||||
|
||||
requires:
|
||||
- phase: none
|
||||
provides: n/a
|
||||
provides:
|
||||
- Przywrócone atrybuty itemprop w sublayoutach info_block
|
||||
- Działające metryczki BIP na stronie
|
||||
affects: []
|
||||
|
||||
tech-stack:
|
||||
added: []
|
||||
patterns: []
|
||||
|
||||
key-files:
|
||||
created: []
|
||||
modified:
|
||||
- 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
|
||||
|
||||
key-decisions:
|
||||
- "Naprawa w plikach core zamiast template overrides (hotfix, Phase 2 na hardening)"
|
||||
|
||||
patterns-established:
|
||||
- "Aktualizacja Joomla usuwa atrybuty itemprop z sublayoutów info_block"
|
||||
|
||||
duration: ~15min
|
||||
started: 2026-04-10
|
||||
completed: 2026-04-10
|
||||
---
|
||||
|
||||
# Phase 1 Plan 01: Fix article-info metryczki Summary
|
||||
|
||||
**Przywrócono atrybuty itemprop w sublayoutach info_block po aktualizacji Joomla — metryczki BIP znów działają.**
|
||||
|
||||
## Performance
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Duration | ~15min |
|
||||
| Started | 2026-04-10 |
|
||||
| Completed | 2026-04-10 |
|
||||
| Tasks | 4 completed (1 checkpoint:human-action, 2 auto, 1 checkpoint:human-verify) |
|
||||
| Files modified | 4 |
|
||||
|
||||
## Acceptance Criteria Results
|
||||
|
||||
| Criterion | Status | Notes |
|
||||
|-----------|--------|-------|
|
||||
| AC-1: Metryczka BIP widoczna na stronie | Pass | Przycisk METRYCZKA renderuje się, dane wyświetlają po kliknięciu |
|
||||
| AC-2: Dane metryczki poprawnie wypełnione | Pass | Podmiot, Wytwarzający, daty wypełnione przez metryczka.js |
|
||||
| AC-3: Selektory JS pasują do HTML | Pass | itemprop przywrócone, selektory .create [itemprop=dateCreated] etc. działają |
|
||||
|
||||
## Accomplishments
|
||||
|
||||
- Zdiagnozowano przyczynę: aktualizacja Joomla usunęła atrybuty `itemprop` z elementów `<time>` i `<dd>` w sublayoutach info_block
|
||||
- Przywrócono 4 pliki: `itemprop="dateCreated"`, `itemprop="datePublished"`, `itemprop="dateModified"` oraz atrybuty schema.org w author.php
|
||||
- Metryczki BIP ponownie funkcjonalne
|
||||
|
||||
## Files Created/Modified
|
||||
|
||||
| File | Change | Purpose |
|
||||
|------|--------|---------|
|
||||
| `layouts/joomla/content/info_block/create_date.php` | Modified | Dodano `itemprop="dateCreated"` do `<time>` |
|
||||
| `layouts/joomla/content/info_block/publish_date.php` | Modified | Dodano `itemprop="datePublished"` do `<time>` |
|
||||
| `layouts/joomla/content/info_block/modify_date.php` | Modified | Dodano `itemprop="dateModified"` do `<time>` |
|
||||
| `layouts/joomla/content/info_block/author.php` | Modified | Przywrócono `itemprop="author"`, `itemscope`, `itemprop="name"`, `itemprop="url"` |
|
||||
|
||||
## Decisions Made
|
||||
|
||||
| Decision | Rationale | Impact |
|
||||
|----------|-----------|--------|
|
||||
| Naprawa w core zamiast template overrides | Hotfix — klient czeka, szybka naprawa priorytetem | Problem powtórzy się przy następnej aktualizacji Joomla. Phase 2 (template overrides) rozwiąże to trwale |
|
||||
|
||||
## Deviations from Plan
|
||||
|
||||
### Summary
|
||||
|
||||
| Type | Count | Impact |
|
||||
|------|-------|--------|
|
||||
| Auto-fixed | 0 | n/a |
|
||||
| Scope additions | 0 | n/a |
|
||||
| Deferred | 1 | Phase 2 |
|
||||
|
||||
### Deferred Items
|
||||
|
||||
- Phase 2: Przenieść customizacje do template overrides (`templates/instytut_dendrologii_/html/layouts/joomla/content/info_block/`) aby przetrwały przyszłe aktualizacje Joomla
|
||||
|
||||
## Issues Encountered
|
||||
|
||||
| Issue | Resolution |
|
||||
|-------|------------|
|
||||
| SCP nie obsługuje hasła interaktywnie | Użytkownik pobrał pliki ręcznie przez ftp-kr |
|
||||
|
||||
## Next Phase Readiness
|
||||
|
||||
**Ready:**
|
||||
- Metryczki działają, klient obsłużony
|
||||
|
||||
**Concerns:**
|
||||
- Problem powtórzy się przy następnej aktualizacji Joomla (pliki core nadpisywane)
|
||||
- Rozwiązanie trwałe wymaga Phase 2: template overrides
|
||||
|
||||
**Blockers:**
|
||||
- None
|
||||
|
||||
---
|
||||
*Phase: 01-fix-article-info-metryczki, Plan: 01*
|
||||
*Completed: 2026-04-10*
|
||||
2
.serena/.gitignore
vendored
Normal file
2
.serena/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
/cache
|
||||
/project.local.yml
|
||||
152
.serena/project.yml
Normal file
152
.serena/project.yml
Normal file
@@ -0,0 +1,152 @@
|
||||
# the name by which the project can be referenced within Serena
|
||||
project_name: "idpan.poznan.pl"
|
||||
|
||||
|
||||
# list of languages for which language servers are started; choose from:
|
||||
# al bash clojure cpp csharp
|
||||
# csharp_omnisharp dart elixir elm erlang
|
||||
# fortran fsharp go groovy haskell
|
||||
# java julia kotlin lua markdown
|
||||
# matlab nix pascal perl php
|
||||
# php_phpactor powershell python python_jedi r
|
||||
# rego ruby ruby_solargraph rust scala
|
||||
# swift terraform toml typescript typescript_vts
|
||||
# vue yaml zig
|
||||
# (This list may be outdated. For the current list, see values of Language enum here:
|
||||
# https://github.com/oraios/serena/blob/main/src/solidlsp/ls_config.py
|
||||
# For some languages, there are alternative language servers, e.g. csharp_omnisharp, ruby_solargraph.)
|
||||
# Note:
|
||||
# - For C, use cpp
|
||||
# - For JavaScript, use typescript
|
||||
# - For Free Pascal/Lazarus, use pascal
|
||||
# Special requirements:
|
||||
# Some languages require additional setup/installations.
|
||||
# See here for details: https://oraios.github.io/serena/01-about/020_programming-languages.html#language-servers
|
||||
# When using multiple languages, the first language server that supports a given file will be used for that file.
|
||||
# The first language is the default language and the respective language server will be used as a fallback.
|
||||
# Note that when using the JetBrains backend, language servers are not used and this list is correspondingly ignored.
|
||||
languages:
|
||||
- php
|
||||
|
||||
# the encoding used by text files in the project
|
||||
# For a list of possible encodings, see https://docs.python.org/3.11/library/codecs.html#standard-encodings
|
||||
encoding: "utf-8"
|
||||
|
||||
# line ending convention to use when writing source files.
|
||||
# Possible values: unset (use global setting), "lf", "crlf", or "native" (platform default)
|
||||
# This does not affect Serena's own files (e.g. memories and configuration files), which always use native line endings.
|
||||
line_ending:
|
||||
|
||||
# The language backend to use for this project.
|
||||
# If not set, the global setting from serena_config.yml is used.
|
||||
# Valid values: LSP, JetBrains
|
||||
# Note: the backend is fixed at startup. If a project with a different backend
|
||||
# is activated post-init, an error will be returned.
|
||||
language_backend:
|
||||
|
||||
# whether to use project's .gitignore files to ignore files
|
||||
ignore_all_files_in_gitignore: true
|
||||
|
||||
# advanced configuration option allowing to configure language server-specific options.
|
||||
# Maps the language key to the options.
|
||||
# Have a look at the docstring of the constructors of the LS implementations within solidlsp (e.g., for C# or PHP) to see which options are available.
|
||||
# No documentation on options means no options are available.
|
||||
ls_specific_settings: {}
|
||||
|
||||
# list of additional paths to ignore in this project.
|
||||
# Same syntax as gitignore, so you can use * and **.
|
||||
# Note: global ignored_paths from serena_config.yml are also applied additively.
|
||||
ignored_paths: []
|
||||
|
||||
# whether the project is in read-only mode
|
||||
# If set to true, all editing tools will be disabled and attempts to use them will result in an error
|
||||
# Added on 2025-04-18
|
||||
read_only: false
|
||||
|
||||
# list of tool names to exclude.
|
||||
# This extends the existing exclusions (e.g. from the global configuration)
|
||||
#
|
||||
# Below is the complete list of tools for convenience.
|
||||
# To make sure you have the latest list of tools, and to view their descriptions,
|
||||
# execute `uv run scripts/print_tool_overview.py`.
|
||||
#
|
||||
# * `activate_project`: Activates a project by name.
|
||||
# * `check_onboarding_performed`: Checks whether project onboarding was already performed.
|
||||
# * `create_text_file`: Creates/overwrites a file in the project directory.
|
||||
# * `delete_lines`: Deletes a range of lines within a file.
|
||||
# * `delete_memory`: Deletes a memory from Serena's project-specific memory store.
|
||||
# * `execute_shell_command`: Executes a shell command.
|
||||
# * `find_referencing_code_snippets`: Finds code snippets in which the symbol at the given location is referenced.
|
||||
# * `find_referencing_symbols`: Finds symbols that reference the symbol at the given location (optionally filtered by type).
|
||||
# * `find_symbol`: Performs a global (or local) search for symbols with/containing a given name/substring (optionally filtered by type).
|
||||
# * `get_current_config`: Prints the current configuration of the agent, including the active and available projects, tools, contexts, and modes.
|
||||
# * `get_symbols_overview`: Gets an overview of the top-level symbols defined in a given file.
|
||||
# * `initial_instructions`: Gets the initial instructions for the current project.
|
||||
# Should only be used in settings where the system prompt cannot be set,
|
||||
# e.g. in clients you have no control over, like Claude Desktop.
|
||||
# * `insert_after_symbol`: Inserts content after the end of the definition of a given symbol.
|
||||
# * `insert_at_line`: Inserts content at a given line in a file.
|
||||
# * `insert_before_symbol`: Inserts content before the beginning of the definition of a given symbol.
|
||||
# * `list_dir`: Lists files and directories in the given directory (optionally with recursion).
|
||||
# * `list_memories`: Lists memories in Serena's project-specific memory store.
|
||||
# * `onboarding`: Performs onboarding (identifying the project structure and essential tasks, e.g. for testing or building).
|
||||
# * `prepare_for_new_conversation`: Provides instructions for preparing for a new conversation (in order to continue with the necessary context).
|
||||
# * `read_file`: Reads a file within the project directory.
|
||||
# * `read_memory`: Reads the memory with the given name from Serena's project-specific memory store.
|
||||
# * `remove_project`: Removes a project from the Serena configuration.
|
||||
# * `replace_lines`: Replaces a range of lines within a file with new content.
|
||||
# * `replace_symbol_body`: Replaces the full definition of a symbol.
|
||||
# * `restart_language_server`: Restarts the language server, may be necessary when edits not through Serena happen.
|
||||
# * `search_for_pattern`: Performs a search for a pattern in the project.
|
||||
# * `summarize_changes`: Provides instructions for summarizing the changes made to the codebase.
|
||||
# * `switch_modes`: Activates modes by providing a list of their names
|
||||
# * `think_about_collected_information`: Thinking tool for pondering the completeness of collected information.
|
||||
# * `think_about_task_adherence`: Thinking tool for determining whether the agent is still on track with the current task.
|
||||
# * `think_about_whether_you_are_done`: Thinking tool for determining whether the task is truly completed.
|
||||
# * `write_memory`: Writes a named memory (for future reference) to Serena's project-specific memory store.
|
||||
excluded_tools: []
|
||||
|
||||
# list of tools to include that would otherwise be disabled (particularly optional tools that are disabled by default).
|
||||
# This extends the existing inclusions (e.g. from the global configuration).
|
||||
included_optional_tools: []
|
||||
|
||||
# fixed set of tools to use as the base tool set (if non-empty), replacing Serena's default set of tools.
|
||||
# This cannot be combined with non-empty excluded_tools or included_optional_tools.
|
||||
fixed_tools: []
|
||||
|
||||
# list of mode names to that are always to be included in the set of active modes
|
||||
# The full set of modes to be activated is base_modes + default_modes.
|
||||
# If the setting is undefined, the base_modes from the global configuration (serena_config.yml) apply.
|
||||
# Otherwise, this setting overrides the global configuration.
|
||||
# Set this to [] to disable base modes for this project.
|
||||
# Set this to a list of mode names to always include the respective modes for this project.
|
||||
base_modes:
|
||||
|
||||
# list of mode names that are to be activated by default.
|
||||
# The full set of modes to be activated is base_modes + default_modes.
|
||||
# If the setting is undefined, the default_modes from the global configuration (serena_config.yml) apply.
|
||||
# Otherwise, this overrides the setting from the global configuration (serena_config.yml).
|
||||
# This setting can, in turn, be overridden by CLI parameters (--mode).
|
||||
default_modes:
|
||||
|
||||
# initial prompt for the project. It will always be given to the LLM upon activating the project
|
||||
# (contrary to the memories, which are loaded on demand).
|
||||
initial_prompt: ""
|
||||
|
||||
# time budget (seconds) per tool call for the retrieval of additional symbol information
|
||||
# such as docstrings or parameter information.
|
||||
# This overrides the corresponding setting in the global configuration; see the documentation there.
|
||||
# If null or missing, use the setting from the global configuration.
|
||||
symbol_info_budget:
|
||||
|
||||
# list of regex patterns which, when matched, mark a memory entry as read‑only.
|
||||
# Extends the list from the global configuration, merging the two lists.
|
||||
read_only_memory_patterns: []
|
||||
|
||||
# list of regex patterns for memories to completely ignore.
|
||||
# Matching memories will not appear in list_memories or activate_project output
|
||||
# and cannot be accessed via read_memory or write_memory.
|
||||
# To access ignored memory files, use the read_file tool on the raw file path.
|
||||
# Extends the list from the global configuration, merging the two lists.
|
||||
# Example: ["_archive/.*", "_episodes/.*"]
|
||||
ignored_memory_patterns: []
|
||||
4
.vscode/ftp-kr.json
vendored
4
.vscode/ftp-kr.json
vendored
@@ -12,6 +12,8 @@
|
||||
"ignoreRemoteModification": true,
|
||||
"ignore": [
|
||||
".git",
|
||||
"/.vscode"
|
||||
"/.vscode",
|
||||
"/.serena",
|
||||
"/.paul"
|
||||
]
|
||||
}
|
||||
32
.vscode/ftp-kr.sync.cache.json
vendored
32
.vscode/ftp-kr.sync.cache.json
vendored
@@ -211,10 +211,38 @@
|
||||
"components": {},
|
||||
"cli": {},
|
||||
"api": {},
|
||||
"administrator": {},
|
||||
"administrator": {
|
||||
"components": {
|
||||
"com_jchoptimize": {
|
||||
"lib": {
|
||||
"src": {
|
||||
"Log": {
|
||||
"DelegatingPsrLoggerExtended.php": {
|
||||
"type": "-",
|
||||
"size": 1976,
|
||||
"lmtime": 1775767654103,
|
||||
"modified": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"tmp": {},
|
||||
"templates": {},
|
||||
"plugins": {},
|
||||
"plugins": {
|
||||
"content": {
|
||||
"jt_copymoduleassignments": {
|
||||
"jt_copymoduleassignments.php": {
|
||||
"type": "-",
|
||||
"size": 1667,
|
||||
"lmtime": 1775767845930,
|
||||
"modified": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"modules": {},
|
||||
".htaccess": {
|
||||
"type": "-",
|
||||
|
||||
@@ -23,9 +23,9 @@ use Joomla\Component\Content\Site\Helper\RouteHelper;
|
||||
<?php $url = '<a href="' . Route::_(
|
||||
RouteHelper::getCategoryRoute($displayData['item']->catid, $displayData['item']->category_language)
|
||||
)
|
||||
. '" itemprop="genre">' . $title . '</a>'; ?>
|
||||
. '">' . $title . '</a>'; ?>
|
||||
<?php echo Text::sprintf('COM_CONTENT_CATEGORY', $url); ?>
|
||||
<?php else : ?>
|
||||
<?php echo Text::sprintf('COM_CONTENT_CATEGORY', '<span itemprop="genre">' . $title . '</span>'); ?>
|
||||
<?php echo Text::sprintf('COM_CONTENT_CATEGORY', '<span>' . $title . '</span>'); ?>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
|
||||
@@ -15,6 +15,6 @@ use Joomla\CMS\Language\Text;
|
||||
?>
|
||||
<dd class="hits">
|
||||
<span class="icon-eye icon-fw" aria-hidden="true"></span>
|
||||
<meta itemprop="interactionCount" content="UserPageVisits:<?php echo $displayData['item']->hits; ?>">
|
||||
<meta content="UserPageVisits:<?php echo $displayData['item']->hits; ?>">
|
||||
<?php echo Text::sprintf('COM_CONTENT_ARTICLE_HITS', $displayData['item']->hits); ?>
|
||||
</dd>
|
||||
|
||||
@@ -23,9 +23,9 @@ use Joomla\Component\Content\Site\Helper\RouteHelper;
|
||||
<?php $url = '<a href="' . Route::_(
|
||||
RouteHelper::getCategoryRoute($displayData['item']->parent_id, $displayData['item']->parent_language)
|
||||
)
|
||||
. '" itemprop="genre">' . $title . '</a>'; ?>
|
||||
. '">' . $title . '</a>'; ?>
|
||||
<?php echo Text::sprintf('COM_CONTENT_PARENT', $url); ?>
|
||||
<?php else : ?>
|
||||
<?php echo Text::sprintf('COM_CONTENT_PARENT', '<span itemprop="genre">' . $title . '</span>'); ?>
|
||||
<?php echo Text::sprintf('COM_CONTENT_PARENT', '<span>' . $title . '</span>'); ?>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
|
||||
Reference in New Issue
Block a user