WebSite X5Help Center

 
Domenico B.
Domenico B.
User

Piccolo cms per vx5 per aggiornare eventi e news  it

Autor: Domenico B.
Visitado 488, Seguidores 4, Compartilhado 0  

O voluto fare questo piccolo CMS per aggiornare eventi e news a tempo (posso impostare quando tempo deve restare visibile tramite data e ora).

1 è facile da installare 

2 semplice da usare

3 ricco di funzionalità

Ora è in fase di prova/test e poi renderlo free, se qualcuno è interessato e lo vuole testare non ce problema.

N.B. Questo piccolo CMS è pensato esclusivamente per WX5 tutte le versioni 

Nell'immagine allegata l'anteprima del pannello admin e nel link per vedere la parte pubblica

Qui il link per vedere anteprima pubblica

Publicado em
17 RESPOSTAS - 2 ÚTEIS
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator

... indirettamente potrebbe essere interessante...
... ma mi hai fatto venire in mente CkEditor, da prima dell'avvento dell'Oggetto a Contenuto Dinamico, per tutte le versioni presenti e passate...
... da qualche parte c'erano anche gli esempi di Skeggia e Mirko di 3-4 lustri fa...
....
.

Ler mais
Publicado em de  ‪ KolAsim ‪ ‪
Domenico B.
Domenico B.
User
Autor

Ciao Kol, o dio! non proprio! è un piccolo cms indipendente dotato di database sqlite suo, i file caricati direttamente nella sua cartella  sealed

Alcuni punti di forza:

  • Programmare quando restare attivo il contenuto, tramite data e ora (puoi decidere se nascondere solo il contenuto e lasciare il titolo visibile o nascondere entrambi).
  • Puoi avere l'effetto vetro sulle immagini di sfondo;
  • Si possono inserire i font di google;
  • Si può caricare un immagine e se è troppo grande ti comparirà una un box per ridurla o lasciarla alle dimensioni origginali;
  • Puoi gestire i file caricati da inserire nel blocco (PDF, JPG, PNG, WORD e ecc);
  • Si ha una cronologia di ciò che hai fatto per ripristinare in caso di errore;
  • Backup del database;
  • Le schede possono essere personalizzate interamente e salvarle come modelli per la volta successiva;
  • Cè l'anteprima che ti permette di vedere cosa vedranno gli utenti;
  • Puoi aggiornare tutto via browser e da qualsiasi dispositivo perche è responsive;
  • Sicurezza, API protette da token e file .htaccess per database;

A breve lo pubblichero! 

Ler mais
Publicado em de Domenico B.
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator

... si sì. ...sicuramente prospettive molto interessanti, e complimenti per averlo realizzato...

.

ciao

.

Ler mais
Publicado em de  ‪ KolAsim ‪ ‪
Roberto M.
Roberto M.
User

Bravo Domenico!!! Chi fa da se fa per tre. wink

Ler mais
Publicado em de Roberto M.
Domenico B.
Domenico B.
User
Autor

Roberto, come lo termino lo condivido

Ler mais
Publicado em de Domenico B.
Domenico B.
Domenico B.
User
Autor

Ora è disponibile per provarlo in questa pagina dedicata

Ler mais
Publicado em de Domenico B.
Roberto M.
Roberto M.
User

Ma deve o va colegato ad un db? undecided

Ler mais
Publicado em de Roberto M.
Roberto M.
Roberto M.
User

Ah si leggo sopra DB lite ok come non detto. 

Ler mais
Publicado em de Roberto M.
Domenico B.
Domenico B.
User
Autor

il db viene creato con il file php direttamente

Ler mais
Publicado em de Domenico B.
Roberto M.
Roberto M.
User

Ciao Domenico, ho dato un'occhiata approfondita al tuo progetto. Secondo me ti sei allargato davvero tanto rispetto all'obiettivo iniziale (gestire dei semplici volantini). Personalmente avrei optato per un approccio molto più semplice e diretto. wink

La procedura iniziale a mio giudizio è parecchio macchinosa: richiedi di aprire i file e cambiare manualmente le stringhe/token a righe specifiche (X e Y), creare gli slug corrispondenti, impostare ID univoci a mano e incastrare blocchi di codice negli Oggetti HTML di WebSite X5 (sia nelle pagine pubbliche che in quella protetta). In un flusso del genere basta un solo carattere sbagliato per far saltare l'intero script. La mia alternativa: Avrei preferito caricare via FTP una cartella "chiavi in mano" direttamente sul server. Zero configurazioni manuali nel codice, zero ID univoci da inventare e zero rischi che l'utente finale rompa lo script.

Come hai specificato utilizzi SQlite OK. L'uso di SQLite evita la creazione di tabelle via phpMyAdmin rispetto a MySQL, ma porta con sé un vincolo: richiede l'estensione PDO_SQLITE attiva sul server PHP. Se un hosting economico non ce l'ha abilitata di default, lo script va subito in errore interno (HTTP 500) senza spiegazioni.

TOKEN! Fai attenzione a un passaggio: indichi di cambiare il CMS_TOKEN prima di andare online e sincronizzarlo tra backend e admin.html. Qui c'è un problema di architettura: il tuo Admin da 2.775 righe è un file HTML/JavaScript statico, non una pagina PHP protetta da sessioni server-side. Essendo inviato in chiaro al browser, il CMS_TOKEN risiede visibile nel codice JavaScript client-side. Chiunque apra gli Strumenti per Sviluppatori (F12) su admin.html può leggere il token in chiaro e usarlo per inviare chiamate API dirette ad api.php, modificando o cancellando contenuti.

Gestione CSS. Analizzando il CSS si nota una quantità enorme di funzionalità: Editor WYSIWYG personalizzato, Font Picker, File Manager drag-and-drop, programmazione temporale dei contenuti, layout/bordi/ombre e gestione modali con cronologia. A questo CSS va sommato tutto il JavaScript dell'interfaccia. Incollare migliaia di righe di codice dentro un Oggetto HTML di WebSite X5 appesantisce tantissimo il progetto nel programma. Inoltre, l'uso massiccio del !important su quasi ogni regola CSS dimostra come il pannello debba "difendersi" dagli stili del tema di X5 per non farsi sovrascrivere. Infine, caricare la logica dell'admin direttamente nel frontend del sito espone inutilmente script e stili di gestione anche ai semplici visitatori.

In tema di sicurezza non posso che apprezzare l'ottimo lavoro sul file .htaccess che è fatto molto bene! Si nota un'ottima attenzione alla sicurezza di base:

  • Protezione SQLite: Blocca l'accesso diretto ai file .sqlite, .sqlite3 e .db.
  • Blocco Indexing: Options -Indexes impedisce di mostrare il contenuto delle cartelle.
  • Protezione config: Impedisce la chiamata diretta a config.php e db.php.
  • Retrocompatibilità: Gestisce sia le direttive Apache 2.4 che quelle più datate (2.2).

Due suggerimenti di miglioramento sul server:

  1. Posizione del Database: Affidare la protezione di SQLite solo all'.htaccess è rischioso (se il sito viene spostato su Nginx o se AllowOverride è disabilitato, il database diventa scaricabile). La best practice sarebbe posizionare il file SQLite fuori dalla cartella pubblica (public_html o www).

  2. Sicurezza Upload: Manca una regola per bloccare l'esecuzione di file script dentro la cartella dei file caricati (/uploads). Se un malintenzionato riuscisse a caricare uno script PHP tramite il file manager, il server lo eseguirà.

Caro Domenico hai fatto un lavoro imponente e ammirevole per provare a trasformare WebSite X5 in un CMS dinamico, ma al prezzo di una complessità elevata e di un codice molto ridondante per aggirare i limiti nativi del programma.

Un ultimo consiglio metodologico: Separa nettamente la logica del tuo applicativo da WebSite X5. Creare un modulo esterno e indipendente ti permetterà di installarlo rapidamente su qualsiasi sito e dominio, senza dover toccare il codice interno di X5.

Ora, al di là delle diversità delle tecniche che ogni programmatore può utilizzare — che non sono mai né uniche né esclusive, perché il codice è un po' come la matematica e per arrivare allo stesso risultato esistono mille strade diverse — va detto che hai fatto un lavorone enorme. Io so bene cosa significa stare dietro a strutture e situazioni così complesse, e l'impegno che ci hai messo si vede tutto! Di nuovo Bravo.  wink

Ler mais
Publicado em de Roberto M.
Domenico B.
Domenico B.
User
Autor

Ciao Roberto! Grazie mille per averlo testato e di avere apprezzato il lavoro che ce dietro.
Questo, chiaramente, è pensato per aggiornare news o eventi integrandolo in WX5, non è indicato per dati sensibili (informazioni mediche, dati personali e ecc).
il codice del file admin va inserito in una pagina protetta da websitex5.

chiaramente può essere migliorato e apprezzo molto i tuoi consigli.

Grazie di cuore Roberto! embarassed 

Ler mais
Publicado em de Domenico B.
Roberto M.
Roberto M.
User

Ciao Domenico! Grazie a te per il riscontro positivo e per lo spirito di confronto professionale. Hai fatto benissimo a specificare l'ambito d'uso (news ed eventi): in quell'ottica il compromesso ci sta e risponde alle esigenze di chi cerca una soluzione integrata nel programma. Buon lavoro e alla prossima! wink

Ler mais
Publicado em de Roberto M.
Roberto M.
Roberto M.
User

Ciao Domenico. Ho letto la guida e devo riconoscere che rispetto alla versione con token statico hai corretto diversi aspetti importanti:

  • password hashata tramite password_hash();
  • autenticazione basata su sessione;
  • separazione tra API amministrative e API pubbliche;
  • utilizzo di SQLite invece di file JSON sparsi;
  • protezione tramite .htaccess;
  • gestione upload più strutturata.

Quindi, almeno sulla carta, il livello di sicurezza appare decisamente superiore rispetto alla versione che avevo provato.

Detto questo, il mio punto critico non riguarda più la sicurezza ma l'approccio progettuale.

Leggendo la procedura vedo ancora una serie di operazioni che richiedono interventi manuali:

  • accesso FTP;
  • caricamento file;
  • modifica di file PHP;
  • generazione manuale dell'hash della password;
  • modifica del config.php;
  • configurazione di admin.html;
  • configurazione di blocco-pubblico.html;
  • gestione degli slug;
  • gestione degli ID univoci;
  • copia e incolla di più blocchi;
  • attenzione a non creare conflitti tra contenitori.

Per uno sviluppatore sono attività relativamente semplici e richiedono pochi minuti. Per un cliente finale, invece, rappresentano già un livello di complessità che personalmente cerco sempre di evitare.

Nei miei progetti seguo una filosofia diversa: installo → apro il pannello → configuro → utilizzo.

L'utente non dovrebbe dover modificare file, conoscere percorsi, sapere cos'è un hash o preoccuparsi di identificativi univoci. Anzi, dal mio punto di vista:

  • l'hash dovrebbe essere generato automaticamente;
  • eventuali file temporanei dovrebbero essere creati e rimossi automaticamente;
  • la password dovrebbe essere impostata dal pannello al primo accesso;
  • le configurazioni dovrebbero essere salvate tramite interfaccia;
  • i blocchi dovrebbero essere creati e collegati senza richiedere modifiche al codice.

In altre parole, vedo ancora una fase di "assemblaggio" che considero più adatta a uno sviluppatore che realizza progetti personalizzati che non a un prodotto realmente orientato al cliente finale.

È probabilmente una differenza di filosofia: io negli ultimi anni sto cercando di eliminare qualsiasi passaggio tecnico che richieda l'accesso ai file del sito, perché nella mia esperienza più configurazione manuale significa più possibilità di errore, più richieste di assistenza e maggiore dipendenza dallo sviluppatore.

Per questo motivo, pur apprezzando i miglioramenti introdotti, continuo a preferire soluzioni completamente configurabili da pannello e già operative dopo l'installazione. È un approccio che con i miei clienti si è sempre rivelato più efficace. wink

Ler mais
Publicado em de Roberto M.
Domenico B.
Domenico B.
User
Autor

Roberto come sempre sei chiarissimo e sincero, grazie mille! 
Per l'installazione e vero è macchinoso, per un utente che non a le basi, ma lo scopo è chi fa il sito che lo installa e l'utente finale deve solo usarlo e basta, senza chiedere di modificare una nevs o un evento, può farlo da solo.

Ho anche fatto gallerie video e foto sempre aggiornabili dall'utente finale senza rivolgersi al webmaster ogni volta.

Le sto ancora testanto.  

Ler mais
Publicado em de Domenico B.
Roberto M.
Roberto M.
User

Per le gallerie utilizza fancybox con cdn interna così non dipenderai neanche + da loro, metti tt in una directory separata dal dominio cosi da portare il tuo progetto galleria da un dominio ad un altro, Configura dei preset automatici di layout così da permettere al clienti di scegliersi la galleria più adatta o intonata al loro sito web principale, predisponi un cruscotto operativo per tt le configurazioni in automatico. Il cliente non deve sapere cosa sta succedendo dietro le 5. Utilizza include per i menu e per gli header. Quando alla fine vedi che il gioco si fa duro e la complessita di quello che chiede il cliente supera la nostra fantasia con website allora abbandona e utilizza CMS professionali. wink

Ler mais
Publicado em de Roberto M.
Domenico B.
Domenico B.
User
Autor

Nella pagina dedicata ora è possibile scaricare entrambe le versioni

Vai alla pagina

Ler mais
Publicado em de Domenico B.