WP Manifestindependent plugin directory
manifest / content / bookcreatepluginwp

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.zip

Readme

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 gerarchica book_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-0 e 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】

Read the full README on GitHub →