BookCreator
Plugin WordPress per la creazione di ebook e pdf tramite custom type wordpress
by Cosè Murciano · github.com/cosemurciano/bookcreatepluginwp
★ 0stars
0forks
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/cosemurciano/bookcreatepluginwp/archive/refs/heads/main.zipReadme
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】