CMS "GIRVAS" Rilascio del 12 maggio 2026 nella fase di sviluppo "Šuja".
Ultime modifiche
QueryBuilder: aggiunto il supporto per JOIN, espressioni CASE e indici
- aggiunto Enum IndexType con i tipi di indice (BTREE, HASH, GIST, GIN, SPGIST, BRIN, FULLTEXT)
- aggiunta la classe ClauseJoin per il supporto JOIN nelle query SELECT (INNER, LEFT, RIGHT, FULL)
- implementata la generazione adattiva delle condizioni JOIN per MySQL e PostgreSQL
- aggiunta la classe CaseExpression per la costruzione di espressioni CASE in SQL
- implementati i metodi whenJsonLike() e whenJsonArrayContains() per la ricerca JSON
- aggiunto il metodo statico CaseExpression::sum() per la somma di espressioni CASE
- aggiunto il metodo factory createCase() in QueryBuilder
- aggiunta la classe StatementCreateIndex per la costruzione di query CREATE INDEX
- aggiunta la classe StatementDropIndex per la costruzione di query DROP INDEX
- implementato il supporto per UNIQUE, CONCURRENTLY, IF NOT EXISTS/IF EXISTS, indici parziali con WHERE
- aggiunti i metodi setStatementCreateIndex() e setStatementDropIndex() in QueryBuilder
- corretto l"escape delle espressioni CASE in addSelections() per PostgreSQL
- aggiunta la cache dei dati inizializzati (initData) nella classe EntryCategory
Aggiunto il motore di ricerca integrato per le voci
- aggiunto il metodo search() nella classe Entries per la ricerca full-text con localizzazione
- aggiunto il metodo getCountBySearch() nella classe Entries per la paginazione dei risultati
- implementato il ranking dei risultati di ricerca per rilevanza con pesi dei campi configurabili
- implementata la ricerca AND con suddivisione della query in parole e considerazione della punteggiatura
- aggiunta la classe PageSearch per visualizzare la pagina di ricerca pubblica
- corretto il decoding URL della query di ricerca in PageSearch
Aggiunta la pagina di archivio delle voci con navigazione per date
- aggiunti i metodi getByDateRange() e getCountByDateRange() nella classe Entries per la selezione in un periodo
- aggiunti i metodi getAvailableYears() e getAvailableMonths() nella classe Entries per la navigazione nell"archivio
- aggiunta la classe PageArchive per la visualizzazione della pagina di archivio
- implementata la navigazione per anni e mesi con conteggio del numero di voci
- getMonthName() reso metodo statico pubblico con recupero dei nomi dalla localizzazione
- la navigazione dell"archivio buildArchiveNavigation() è stata riscritta con DOMDocument
- aggiunte le pagine di archivio alla Sitemap (/archive, /archive?year=AAAA, /archive?year=AAAA&month=MM)
Aggiunto il supporto per categorie figlie e briciole di pane gerarchiche
- aggiunti i metodi getByCategoriesIDs() e getCountByCategoriesIDs() nella classe Entries
- aggiunto il metodo getChildCategoriesIDs() nella classe EntryCategory per il recupero ricorsivo delle categorie figlie
- aggiunto il metodo getParentChain() nella classe EntryCategory per la gerarchia delle briciole di pane
- aggiornati i metodi getEntries() e getEntriesCount() con il parametro includeChildren
- la pagina delle categorie PageEntries visualizza le voci tenendo conto delle categorie figlie
- le briciole di pane mostrano l"intera gerarchia dalla radice alla categoria corrente
Aggiunta la creazione automatica degli indici durante l"installazione del CMS
- aggiunto un blocco di creazione indici al passo 6 dell"installazione dopo la generazione delle tabelle
- indici per le tabelle entries, entries_categories, entries_comments, pages_static
- indici per le tabelle users, users_sessions, forms_data, web_channels, metrics
- indici univoci su name, login, email
- per PostgreSQL aggiunti indici GIN sui campi JSONB e un indice parziale per le voci pubblicate
- tutti gli indici vengono creati con IF NOT EXISTS, gli errori vengono registrati senza interrompere l"installazione
Aggiunta una sottosezione nella sezione "Contenuti" del pannello di amministrazione: "Blocchi di contenuto"
- Introdotta una nuova sottosezione "Blocchi di contenuto" nella sezione "Contenuti"
Aggiunto un analizzatore SEO del contenuto integrato con supporto markdown
- implementata la classe
SeoAnalyzerper il controllo di cinque aree: titolo, meta descrizione, parole chiave, contenuto, url - l"analizzatore verifica la presenza di parole chiave nel titolo SEO, nella meta descrizione, nei titoli h2-h6, nel primo paragrafo e nell"intero testo
- controllo delle duplicazioni: avviso se i campi SEO sono vuoti e duplicano i campi principali
- il parser markdown supporta gli attributi json di link e immagini nella sintassi del CMS "GIRVAS"
- ricerca di url nudi con raccomandazione di formattarli come link markdown
- verifica del testo alt delle immagini e di rel=nofollow per i link esterni
- gerarchia dei titoli: h1 escluso dal controllo del contenuto poiché generato dal tema
- indicazione a colori e barre di avanzamento per ogni sezione
- blocco di raccomandazioni con passaggi concreti per il miglioramento
- funziona completamente lato client, senza richieste al server
- localizzazione tramite _t() con formato compatibile con PHP
%s,%d,%.nf - interfaccia integrata nel pannello laterale dell"editor di pagine e voci
Corretti bug minori
Rilascio precedente: 0.2.9 "Voitsy"
Commenti