phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

fidocadj

Cerchi una MOD? Chiedi in questo forum.
Questa sezione è supportata dagli utenti del forum, pertanto lo Staff potrebbe non eseguire tali richieste.
Rispondi
mae89
Utente
Utente
Messaggi: 112
Iscritto il: 12/05/2011, 9:32
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux
Contatta:

fidocadj

Messaggio da mae89 » 20/07/2011, 10:30

Ciao a tutti.. alcuni forum, come questo, hanno una specie di mod/bbcode che permette l'inserimento di schemi elettrici fatti con il programma fidocadj

Il programma genera un codice ad esempio:

Codice: Seleziona tutto

[FIDOCAD]
MC 70 50 0 0 170
MC 80 75 0 0 580
MC 160 75 0 0 580
MC 135 75 0 0 080
MC 170 55 0 0 080
MC 45 75 0 0 080
MC 40 70 1 0 100
MC 20 65 0 0 200
MC 35 85 2 0 200
LI 35 65 40 65 0
LI 40 65 40 70 0
LI 35 85 40 85 0
LI 40 80 40 85 0
LI 40 85 40 85 0
LI 70 50 70 75 0
LI 80 50 105 50 0
LI 105 50 105 80 0
LI 105 50 105 40 0
LI 105 80 130 80 0
LI 130 80 130 75 0
LI 130 75 135 75 0
LI 145 75 165 75 0
LI 165 75 155 75 0
LI 155 75 155 55 0
LI 155 55 170 55 0
LI 180 55 185 55 0
LI 185 55 185 80 0
LI 20 65 20 110 0
LI 20 110 185 110 0
LI 185 110 185 80 0
LI 185 80 205 80 0
MC 80 75 0 0 045
MC 160 85 0 0 045
TY 30 75 4 3 0 0 0 * P3
TY 50 65 4 3 0 0 0 * R6
TY 75 40 4 3 0 0 0 * Co
TY 135 65 4 3 0 0 0 * R1
TY 175 45 4 3 0 0 0 * R2
TY 210 75 4 3 0 0 0 Verdana Vq
TY 105 30 4 3 0 0 0 * Vt
LI 55 75 70 75 0
LI 70 75 70 85 0
LI 70 85 80 85 0
LI 80 85 70 85 0
e viene inserito nei post con i tag [fidocad] [/fidocad]

come posso implementare questa funzione pure io sul mio forum?

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: fidocadj

Messaggio da Carlo » 20/07/2011, 18:15

Quale sarebbe il risultato? Non conosco questo programma e non sò cosa produce.
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

mae89
Utente
Utente
Messaggi: 112
Iscritto il: 12/05/2011, 9:32
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux
Contatta:

Re: fidocadj

Messaggio da mae89 » 20/07/2011, 19:27

il programma produce quel codice...

te su quel forum lo metti nei tag [fidocad] e il risultato è il disegno del circuito

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: fidocadj

Messaggio da Carlo » 21/07/2011, 8:40

Eheh, la cosa è più complicata di quanto sembri.

Praticamente non c'è una vera e propria MOD.

Nel forum da te citato, ho trovato questa discussione, dove si è discusso di quell'interprete FidoCad.
Praticamente in modalità lato server viene eseguito il programma FidoCad, a cui viene passato quel codice e restituisce l'immagine del circuito.
Cosa impossibile da fare su un hosting condiviso. Hai bisogno di un server linux su cui installare Java e FidoCadJ.
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

DarwinNE
Utente
Utente
Messaggi: 3
Iscritto il: 30/07/2011, 12:54
Sesso: Maschio

Re: fidocadj

Messaggio da DarwinNE » 30/07/2011, 13:06

Questo è il mio primo messaggio nel forum phpBB Italia e ne approfitto per salutare tutti.
Carlo ha scritto: Praticamente in modalità lato server viene eseguito il programma FidoCad, a cui viene passato quel codice e restituisce l'immagine del circuito.
Cosa impossibile da fare su un hosting condiviso. Hai bisogno di un server linux su cui installare Java e FidoCadJ.
Io sono l'autore di FidoCadJ ed ho partecipato attivamente alla discussione di cui state parlando. Effettivamente, confermo che quello che è stato fatto richiede privilegi non comuni sul server, necessari per far girare il programma. Tuttavia, esiste una seconda possibilità che è stata creata appunto per evitare questo problema ed è il progetto FidoReadPHP:

https://sourceforge.net/projects/fidoreadphp/

Si tratta di un lettore/interprete di disegni in formato FidoCadJ scritto interamente in PHP e che fa uso della libreria GD per creare i disegni. Questa tecnica è stata sperimentata ed utilizzata con successo qui:

http://www.grix.it/forum/forum_thread.p ... ead=223336

i disegni non sono della stessa qualità che si ottiene con FidoCadJ, perché la libreria GD non ha niente a che vedere con la raffinatezza del sistema grafico di Java. Tuttavia, il sistema sembra funzionare abbastanza bene, anche se FidoReadPHP è ancora un progetto molto giovane che merita di essere sviluppato ancora (se qualcuno volesse darci una mano è il benvenuto :-) ).

Se avete bisogno di una mano da parte mia, fate un fischio!

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: fidocadj

Messaggio da Carlo » 31/07/2011, 17:18

Ciao, benvenuto. Grazie per il tuo contributo.

Per essere utilizzato in phpBB, si potrebbe inviare al file di esempio index.php via GET il codice per realizzare il circuito, codificato in base64, mostrandolo attraverso il tag HTML <img>.
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

DarwinNE
Utente
Utente
Messaggi: 3
Iscritto il: 30/07/2011, 12:54
Sesso: Maschio

Re: fidocadj

Messaggio da DarwinNE » 31/07/2011, 19:41

Ciao Carlo e grazie a te per il benvenuto.

In FidoReadPHP, il file di esempio index.php non fa moltissimo, si limita solo a configurare una classe FidoParser con un disegno ed alcune cose che gli servono (i font da utilizzare, le librerie eccetera) e poi è FidoParser che fa il lavoro. In pratica, bisogna fare le cose seguenti:
  • Recuperare il disegno all'interno di un post, identificato con dei tag che possono essere [fcd] e [/fcd] per coerenza con il primo sito che ha adottato questo metodo. FidoReadPHP non riconosce encoding tipo Base64, quindi bisognerà avere cura di trasformare il tutto in una stringa UTF-8.
  • Creare un'istanza di classe FidoParser passandogli il codice che contiene il disegno da processare, le librerie ed i font da utilizzare.
  • Recuperare l'immagine creata da FidoParser e salvarla, per esempio in formato PNG con dimensioni adeguate.
  • Mostrarla all'utente all'interno del post permettendo al contempo di accedere al sorgente.
Naturalmente, dato che FidoParser richiede un po' di tempo per creare l'immagine, la cosa da fare è creare una cache di immagini che viene aggiornata solo quando ci sono novità. In altre parole, le immagini devono essere create solo quando necessario e non tutte le volte che il server risponde ad un accesso ad una pagina.

Vediamo insieme il codice necessario per creare un disegno come quello che mae89 ha suggerito all'inizio di questa discussione. Dapprima bisognerà creare un'istanza della classe FidoParser contenente il codice da mostrare. In questo esempio ho copiato ed incollato il codice fornito da mae89, mentre in un'applicazione più realistica questo sarà stato estratto dal post e memorizzato in una variabile.

Codice: Seleziona tutto

require_once('FidoParser.php');
error_reporting(-1);

$fidoParser = new FidoParser('[FIDOCAD]
MC 70 50 0 0 170
MC 80 75 0 0 580
MC 160 75 0 0 580
MC 135 75 0 0 080
MC 170 55 0 0 080
MC 45 75 0 0 080
MC 40 70 1 0 100
MC 20 65 0 0 200
MC 35 85 2 0 200
LI 35 65 40 65 0
LI 40 65 40 70 0
LI 35 85 40 85 0
LI 40 80 40 85 0
LI 40 85 40 85 0
LI 70 50 70 75 0
LI 80 50 105 50 0
LI 105 50 105 80 0
LI 105 50 105 40 0
LI 105 80 130 80 0
LI 130 80 130 75 0
LI 130 75 135 75 0
LI 145 75 165 75 0
LI 165 75 155 75 0
LI 155 75 155 55 0
LI 155 55 170 55 0
LI 180 55 185 55 0
LI 185 55 185 80 0
LI 20 65 20 110 0
LI 20 110 185 110 0
LI 185 110 185 80 0
LI 185 80 205 80 0
MC 80 75 0 0 045
MC 160 85 0 0 045
TY 30 75 4 3 0 0 0 * P3
TY 50 65 4 3 0 0 0 * R6
TY 75 40 4 3 0 0 0 * Co
TY 135 65 4 3 0 0 0 * R1
TY 175 45 4 3 0 0 0 * R2
TY 210 75 4 3 0 0 0 Verdana Vq
TY 105 30 4 3 0 0 0 * Vt
LI 55 75 70 75 0
LI 70 75 70 85 0
LI 70 85 80 85 0
LI 80 85 70 85 0');
La seconda cosa da fare è caricare le librerie necessarie:

Codice: Seleziona tutto

$standardLibraryString = file_get_contents('./FCDstdlib_en.fcl', true);
$fidoParser->readLibrary($standardLibraryString, "");
$pcbLibraryString = file_get_contents('./PCB_en.fcl', true);
$fidoParser->readLibrary($pcbLibraryString, "pcb");
$ihramLibraryString = file_get_contents('./IHRAM_en.fcl', true);
$fidoParser->readLibrary($ihramLibraryString, "ihram");
Colgo l'occasione per annunciare che poche ore fa ho fatto uscire una nuova versione di FidoCadJ, comprendente una libreria in più. Dovrei aggiornare anche FidoReadPHP perché venga fornita con il download ufficiale.

Dopodiché, si forniscono al sistema alcune sostituzioni relative ai font da utilizzare. FidoReadPHP contiene al suo interno i font Liberation, che hanno metriche compatibili con i font Microsoft più diffusi, ma che non hanno problemi ad essere distribuiti in un software con licenza G.P.L. v. 3.

http://it.wikipedia.org/wiki/Liberation_(font)

Codice: Seleziona tutto

$fidoParser->registerFont("Arial", "fonts/liberation/LiberationSans-Regular.ttf");
$fidoParser->registerFont("Helvetica", "fonts/liberation/LiberationSans-Regular.ttf");
$fidoParser->registerFont("Times", "fonts/liberation/LiberationSerif-Regular.ttf");
$fidoParser->registerFont("Times New Roman", "fonts/liberation/LiberationSerif-Regular.ttf");
$fidoParser->registerFont("Times Roman", "fonts/liberation/LiberationSerif-Regular.ttf");
$fidoParser->registerFont("Courier", "fonts/liberation/LiberationMono-Regular.ttf");
$fidoParser->registerFont("Courier New", "fonts/liberation/LiberationMono-Regular.ttf");
L'ultima cosa necessaria è la creazione dell'immagine propriamente detta. La classe FidoParser processerà il codice e restituirà un'immagine con le caratteristiche richieste:

Codice: Seleziona tutto

// We set up 2 pixels for each logical units and we ask FidoReadPHP to calculate
// the size of the image for us.
$fidoParser->setupSize(2, -1, -1);
// We create the image
$fidoParser->parse(); 
// We get the image
$my_img = $fidoParser->getImage();
$my_img contiene ora l'immagine che si potrà mostrare all'utente, oppure scrivere in cache.

Detto questo, come ho detto sopra, il progetto FidoReadPHP è giovane ed anche se sembra funzionare da diversi mesi su Grix.it, c'è un certo margine di miglioramento. Per esempio, con alcuni interpreti PHP, vengono mostrati numerosi warning.

Io posso fornire assistenza riguardo a FidoCadJ e FidoReadPHP, ma non posso scrivere io il MOD, perché non sono pratico di phpBB ed a dire il vero non sono neppure un virtuoso del PHP.

DarwinNE
Utente
Utente
Messaggi: 3
Iscritto il: 30/07/2011, 12:54
Sesso: Maschio

Re: fidocadj

Messaggio da DarwinNE » 04/09/2011, 22:46

Uhm... ho visto che la cosa non sembra abbia avuto un seguito, per il momento.

Beh, io resto in ascolto, se vi servisse una mano da parte mia su FidoCadJ o FidoReadPHP, fatemi un fischio ;)

Rispondi

Torna a “Richiesta MOD”

Chi c’è in linea

Visitano il forum: Nessuno e 44 ospiti