KAZ-BLANK: GLOBALNA ARHITEKTURA I TEHNIČKI STANDARDI PROJEKTA

Ovaj dokument predstavlja primarni dugoročni kontekst, arhitektonski temelj i inženjerski standard za razvoj prilagođene (custom) WordPress teme kaz-blank. Svi AI agenti i programeri moraju striktno pratiti ova pravila kako bi se očuvao integritet sistema.


1. PREGLED PROJEKTA I OKRUŽENJE

2. MEHANIKA SINHRONIZACIJE I ISTORIJE CENA

Sistem cena prati visoko turbulentno berzansko tržište i podeljen je na pozadinske (asinkrone) procese i klijentske (live) zaobilaznice.

A. Minutna sinhronizacija (Bulk Price Importer)

$coefsPath = get_template_directory() . '/inc/price-sync/koeficijent.json';
* * * * * curl -s "https://dev.dunavgold.rs/kaz/wp-json/kaz/v1/cron-sync?token=kaz-secure-cron-2026" > /dev/null

B. Dnevna istorija cena (Database Tracking)

SELECT price FROM wp_kaz_price_history WHERE weight_category = '1g' AND date <= %s ORDER BY date DESC LIMIT 1
55 23 * * * wget -q -O - https://dev.dunavgold.rs/kaz/wp-cron.php?doing_wp_cron >/dev/null 2>&1

3. PERFORMANSE I PROBIJANJE LITESPEED KEŠA

Zbog agresivnog keširanja stranica, cene na frontendu se ne smeju ispisivati direktno iz PHP-a ukoliko su podložne brzim promenama.

A. REST API Endpoints & Filteri (inc/live-prices.php)

add_filter( 'litespeed_cache_api_bypass', '__return_true' );

B. Klijentski DOM Overwrite (assets/js/live-prices.js)

C. Maskiranje tehničkih oznaka (chart-ref-)

Sve tehničke oznake proizvoda koje počinju sa prefiksom chart-ref- (npr. chart-ref-1g) služe isključivo za pozadinsko programsko identifikovanje i MORAJU biti filtrirane i sakrivene iz javnih WooCommerce metapodataka, vidljivih tagova na stranici proizvoda i Tag Cloud vidžeta.

4. MULTIMEDIJALNI PIPELINE I OPTIMIZACIJA ASSETA

Jasna podela između sistemskih datoteka i sadržaja koji unosi korisnik.

A. Organizacija Direktorijuma unutar Teme

D. Dinamički SVG Helper za ikonice (inc/svg-helper.php)

Kako bi se izbeglo lepljenje sirovog (inline) SVG koda u templejte, a zadržala puna CSS kontrola nad elementima, koristi se PHP helper funkcija kaz_get_icon( $icon_name, $class = '' ).

<?php echo kaz_get_icon('delivery', 'service-icon-svg'); ?>

B. WP Media Library (.webp Presretač preko Imagick-a)

C. Lokalni Squoosh Pratilac (squoosh.py)

Za datoteke koje programer ručno ubacuje u assets/img/ direktorijum, koristi se lokalna Python skripta sa Pillow bibliotekom koja preslikava serversku logiku (85/70 kvalitet u zavisnosti od 1400px limita), generiše kompresovane .webp blizance, ali čuva originalne izvorne fajlove netaknutim na lokalnom disku.

5. KORISNIČKO ISKUSTVO I SKROLMEHANIKA

const lenis = new Lenis({
  lerp: 0.07,
  smoothWheel: true
});

Skripta je uvezana u WordPress sistem zavisnosti tako da se scroll.js nikada ne učitava pre nego što lenis.js bude potpuno dostupan.

6. STROGA STILSKA I PROGRAMERSKA PRAVILA ZA AI AGENTE

  1. Zabranjene relativne putanje: Nikada ne koristiti __DIR__ ili relativne skokove tipa ../ za uključivanje (include/require) osnovnih komponenti unutar functions.php. Uvek koristiti get_template_directory().
  2. Razdvajanje faza razvoja: Prilikom izrade novih stranica, HTML struktura i CSS klase se najpre zapišu statički u odgovarajući šablon (npr. front-page.php, page-templates/). Integracija sa ACF (Advanced Custom Fields) i prebacivanje u dinamička polja vrši se tek nakon što je frontend dizajn potpuno potvrđen.
  3. Zabrana uništavanja baze kod automatskih grešaka: Sve funkcije koje vrše upis cena ili podataka moraju imati ugrađene fallback odbrambene mehanizme (npr. ako koeficijent nije dostupan, koristi se podrazumevana vrednost 1, kako cena ne bi pala na nulu).
  4. Održavanje ovog dokumenta: Svaki naredni korak koji menja globalnu arhitekturu sistema mora biti dokumentovan u ovom fajlu.