Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/cosemurciano/bookcreatepluginwp/archive/refs/heads/main.zipNo built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.
BookCreator (v1.2)
Panoramica
BookCreator estende WordPress con un flusso redazionale completo per la pubblicazione di libri digitali, consentendo di modellare libri, capitoli e paragrafi, di personalizzare template grafici e di generare esportazioni in formato EPUB, PDF e HTML direttamente dal backend.
Funzionalità principali
- Custom post type dedicati per libri (
book_creator), capitoli (bc_chapter) e paragrafi (bc_paragraph), affiancati dalla tassonomia gerarchicabook_genre, così da archiviare i contenuti editoriali nelle tabelle native di WordPress.【F:bookcreator.php†L1832-L1968】 - Import/export dei libri in JSON con ricostruzione automatica della struttura di navigazione e delle traduzioni, utile per migrare contenuti o versionarli fuori dal sito.【F:bookcreator.php†L956-L1147】
- Generazione di file EPUB basata su ZipArchive e DOMDocument: il plugin raccoglie metadati, traduzioni, ordine dei capitoli, template di stile e impacchetta i file nella struttura standard OCF/OEBPS pronta per la distribuzione.【F:bookcreator.php†L10113-L10462】【F:bookcreator.php†L11023-L11233】
- Produzione di PDF tipografici con mPDF, sincronizzando template, font, margini e testi accessori e supportando traduzioni e note finali per capitoli e paragrafi.【F:bookcreator.php†L11618-L12194】
- Designer di template e gestione testi ricorrenti per EPUB/PDF, con esportazione e importazione controllata dei layout in JSON e normalizzazione dei valori forniti dagli utenti.【F:bookcreator.php†L7052-L7460】【F:bookcreator.php†L8720-L8800】
- Integrazione con Claude AI per generare traduzioni assistite dei contenuti e dei testi di template, protetta da nonce e controlli di capability sia in fase di configurazione sia durante le richieste AJAX.【F:bookcreator.php†L1720-L1826】【F:bookcreator.php†L321-L383】
- Gestione dell'ordine narrativo tramite pagine dedicate che sincronizzano capitoli e paragrafi con i menu di navigazione interni, consentendo di riordinare i contenuti con il drag&drop nativo di WordPress.【F:bookcreator.php†L5203-L5388】
Requisiti di sistema
- PHP 8.1 o superiore: dipendenza indiretta dovuta a Twig 3 distribuito con il plugin.【F:vendor/twig/twig/composer.json†L1-L32】
- Estensione ZipArchive attiva per poter creare e aprire gli archivi EPUB.【F:bookcreator.php†L5390-L5431】
- Estensioni DOM/libxml abilitate per l'analisi e la manipolazione dei documenti XML/HTML durante la generazione delle esportazioni.【F:bookcreator.php†L11112-L11233】
- Estensione mbstring e libreria mPDF 8.1.0 inclusa nella cartella
mpdf-8-1-0/, caricata tramite autoloader dedicato per il rendering dei PDF.【F:bookcreator.php†L46-L118】 - Installazione WordPress con database MySQL/MariaDB supportato: il plugin registra custom post type, tassonomie e menu attraverso gli hook di WordPress e persiste i dati tramite le tabelle core (
wp_posts,wp_terms,wp_term_relationships).【F:bookcreator.php†L1832-L2060】 - Connettività HTTPS verso api.anthropic.com qualora si desideri utilizzare le funzioni di traduzione basate su Claude.【F:bookcreator.php†L1720-L1778】
Analisi e criticità
- Gli endpoint AJAX e le pagine di gestione template richiedono nonce e capability adeguate, riducendo i rischi di CSRF e accesso non autorizzato.【F:bookcreator.php†L1720-L1826】【F:bookcreator.php†L7333-L7467】
- L'import dei libri legge integralmente il file caricato senza limiti espliciti di dimensione, potenzialmente costoso in termini di memoria per upload di grandi dimensioni; può essere utile introdurre un controllo analogo al limite applicato ai template.【F:bookcreator.php†L1429-L1436】
- Le chiavi API di Claude vengono salvate in chiaro nelle opzioni (
bookcreator_claude_settings); è consigliabile proteggerle tramite costanti server-side o soluzioni di secret management per ridurre i rischi in caso di compromissione del database.【F:bookcreator.php†L321-L335】 - La cartella
PHPePub-master/è inclusa nel repository ma la funzione di caricamento EPUB si limita a verificare la presenza di ZipArchive senza inizializzare la libreria, indice di un asset potenzialmente non utilizzato che aumenta la superficie di manutenzione.【F:bookcreator.php†L5390-L5431】【F:PHPePub-master/README.md†L1-L24】 - La generazione dei PDF fallisce in assenza della directory
mpdf-8-1-0, quindi è opportuno verificare in fase di deployment che la libreria proprietaria sia distribuita correttamente e con i permessi adeguati.【F:bookcreator.php†L68-L104】
Metadati e struttura dei contenuti
- I libri includono campi personalizzati per ISBN, data di pubblicazione, descrizione, frontespizio, dediche, prefazioni, appendici, bibliografia, nota autore, edizione, autore e coautori, tutti inclusi nei metadati delle esportazioni.【F:bookcreator.php†L10175-L10205】
- Capitoli e paragrafi supportano traduzioni per lingua con note e citazioni, riutilizzate durante la generazione delle esportazioni e nella costruzione dell'indice del libro.【F:bookcreator.php†L10164-L10172】【F:bookcreator.php†L10464-L10479】【F:bookcreator.php†L11700-L11713】
- Le pagine dedicate consentono di ordinare capitoli e paragrafi associandoli a menu WordPress, così da determinare la numerazione finale e l'indice dinamico esportato.【F:bookcreator.php†L5203-L5375】
Flussi di esportazione
- EPUB: il plugin genera i singoli XHTML, la tabella dei contenuti, il manifest OPF e comprime tutto in un archivio conforme, includendo eventuali asset caricati e traduzioni selezionate.【F:bookcreator.php†L10113-L10462】【F:bookcreator.php†L10830-L11010】
- PDF: viene creata una pagina HTML aggregata, stilizzata in base al template scelto e renderizzata da mPDF con eventuali indici, note, citazioni e sezioni finali.【F:bookcreator.php†L11618-L12194】
- HTML standalone: a partire dall'EPUB generato il plugin può estrarre l'HTML con metadata, sfruttando DOMDocument e ZipArchive per aprire e leggere i file interni.【F:bookcreator.php†L11112-L11233】
Suggerimenti operativi
- Prima di attivare il plugin verificare che la libreria mPDF sia presente nella cartella
mpdf-8-1-0e che l'estensione ZipArchive sia disponibile sul server.【F:bookcreator.php†L46-L118】【F:bookcreator.php†L5390-L5431】 - Configurare le chiavi API di Claude solo se necessario e preferibilmente tramite costanti server (
BOOKCREATOR_CLAUDE_API_KEY) per evitare la persistenza in chiaro nel database.【F:bookcreator.php†L1560-L1576】 - Pianificare policy di backup/import per i file JSON esportati, tenendo conto che l'import non applica limiti dimensionali: controllare manualmente la dimensione dei file prima del caricamento.【F:bookcreator.php†L956-L1147】【F:bookcreator.php†L1429-L1436】