• User

    Nuova versione: 1.6

    Maggiori possibilità di personalizzazione, con Menu personalizzati e inserimento codice html per inserire, per esempio, contatori, statistiche, ecc.


  • User

    Non vorrei annunciare io la brutta notizia ma ora wik-it.com dice questa frase simpatica:

    Fixa il tuo sito, è stato facilissimo trovare la tua pass 😉

    mmm tutto a posto? 😐


  • User

    Don't worry!

    Sistemato tutto... effettivamente mi ero dimenticato di applicare alcune ristrettezze al sito...

    E' tutto apposto.


  • User

    Il sito è nuovamente operativo e aggiornato alla versione 1.7, con alcune novità.


  • Super User

    @stevenworks said:

    Il sito è nuovamente operativo e aggiornato alla versione 1.7, con alcune novità.

    Scusa volevo chiederti una delucidazione. Esiste uno script particolare per evidenziare determiate parole del contenuto e linkarle ad una determinata pagina?

    Per esempio ho un sito con varie pagine sull'abbiagliamento

    pagina1.php
    ...sopratturro considerando che la **moda **oggi è orientata verso un trend...

    pagina2.php
    ...potrai trovare magliette e jeans alla **moda **a prezzi che sono considerati da tutti...

    Se io volessi associare ad ogni occorrenza della parola moda un link ad una pagina moda.php come posso fare?
    Esiste uno script ocos'altro??

    Grazie e ciao


  • User

    Ciao,
    urca che domandona... se mi scrivevi x email o sul sito potevo risponderti prima....

    Comunque, se ho capito bene: tu hai del testo (e varie pagine) dove la parola **moda **compare più volte e vuoi che, in automatico, tutte le parole moda diventino linkate alla stessa pagina, per esempio, moda.php.

    Ho capito giusto?

    Se è così, attualmente non è possibile, perché i link devono essere inseriti manualmente, non è prevista una procedura automatica.

    Nella station, i link possono essere di due tipi: a un file esterno, quindi un link classico, oppure a una pagina interna alla station. Ma comunque devono essere inseriti manualmente.

    Comunque, se la questione è quella che ho capito io, posso sviluppare una nuova features che lo fa. Però devi confermarmi che ho capito giusto.

    STEVEN


  • Super User

    @stevenworks said:

    Ciao,
    urca che domandona... se mi scrivevi x email o sul sito potevo risponderti prima....

    Comunque, se ho capito bene: tu hai del testo (e varie pagine) dove la parola **moda **compare più volte e vuoi che, in automatico, tutte le parole moda diventino linkate alla stessa pagina, per esempio, moda.php.

    Ho capito giusto?

    Se è così, attualmente non è possibile, perché i link devono essere inseriti manualmente, non è prevista una procedura automatica.

    Nella station, i link possono essere di due tipi: a un file esterno, quindi un link classico, oppure a una pagina interna alla station. Ma comunque devono essere inseriti manualmente.

    Comunque, se la questione è quella che ho capito io, posso sviluppare una nuova features che lo fa. Però devi confermarmi che ho capito giusto.

    STEVEN

    Ciao STEVEN, una bella domanda ehh 😄

    Si comunque hai capito bene...
    Volevo sapere se esisteva un qualcosa che magari potesse interagire con un database e che sostituisse in un sito le occorrenze delle parole presenti nel DB con un opportuno
    <a href="<?echo $nomeDellaPaginaScrittaNelDB?">parola</a>.

    Così invece di inserire manualmente i link delle parole a mano (molte volte facendo così si può sbagliare qualcosa o in ogni modo porta via molto tempo) basta includere questo script e le occorrenze vengono sostituite automaticamente confrontando le parole che ho opportunamente inserito nel db.

    Ciao e grazie per la tua risposta 🙂

    :ciauz:


  • User

    Ciao Pastikka,
    inserirò la tua features nella prossima versione di Wik-IT.

    Grazie per il consiglio,
    STEVEN 😉


  • User

    Davvero un ottimo lavoro Steven, complimenti.. me lo studierò per benino, grazie!


  • Super User

    @stevenworks said:

    Ciao Pastikka,
    inserirò la tua features nella prossima versione di Wik-IT.

    Grazie per il consiglio,
    STEVEN 😉

    Di cosa? Più che altro complimenti a te per il lavoro che stai facendo!!

    Ma la nuova features è esportabile anche ad altri progetti? Tipo la potrei utilizzare ancheio per un mio lavoro?


  • User

    🙂 Grazie x i complimenti!

    Purtroppo in questo periodo il provider da cui ho acquistato il sito (digitalvisionhosting) fa un pò i capricci. Si vede che è un periodo che hanno qualche problema.

    Ma la nuova features è esportabile anche ad altri progetti? Tipo la potrei utilizzare ancheio per un mio lavoro?

    Senti, io ho fatto tutto in PHP e, a essere sincero, non sono un grande esperto di questo linguaggio; me la cavo giusto perché sono molti anni che programmo e quindi ho un pochino di dimestichezza con tutti i linguaggi di programmazione. Alla fine, uso sempre i soliti comandi. E' anche vero che il mio progetto Wik-IT non richiede chissà quali comandi.

    Perciò, al limitie, posto qui lo script php. Però devi sapere "aggeggiare" con questo linguaggio.

    STEVEN


  • Super User

    Ciao STEVEN,

    anche io non sono un guru del php ma ho molti siti realizzati con questo linguaggio di scripting lato server. Quindi, se posti il codice qui, penso di poter provare ad adattarlo...

    Ciao e grazie


  • User

    Eccomi,
    ho aggiornato Wik-IT alla versione 1.8 con una funzione che ho chiamato semplicemente Link Automatici.

    Dunque, questo è il sisitema che ho adottato io. Non è il migliore, ma è per Wik-IT quello più adatto.

    Innanzi tutto, si parte da un file di testo che contiene l'elenco dei comandi, dove ogni comando è una riga composta da:

    • parola da convertire in link
    • pagina da aprire quando uno clicca sul link
    • destinazione, ovvero la pagina stessa (_parent) o in una nuova pagina (_blank).
      Queste 3 info devono essere separate dalla pipe |.

    Esempio:
    moda|http://www.miosito.com/miapagina.htm|_parent
    vestito|http://www.armani.it|_blank

    **Il Codice
    **Innanzi tutto decidiamo che:

    • Comandi.txt è il file contenente i vari comandi
    • $Testo è la variabile php che contiene il testo del documento da elaborare

    Quindi, questo è il codice php:

    [php]function AutoLinks($Stringa) {

            //Leggo tutti i comandi che ci sono nel file Comandi.txt
            $File=fopen("Comandi.txt","r");
                while (!feof($File)) {
                    
                        //In $tmp metto la riga che contiene il comando
                        $tmp=stripslashes(rtrim(fgets($File,4000)));
                        
                        //Scompongo il comando nei suoi elementi
                        $Codici=explode("|",$tmp);
                        
                            $Parola=$Codici[0];
                            $Pagina=$Codici[1];
                            $Target=$Codici[2];
                        
                            //Adesso che ho le mie informazioni separate le invio a una funzione che sostituisce tutte le parole uguali a $Parola con dei link
    $Stringa=Codice_CercaCreaLink($Stringa,$Target,$Pagina,$Parola);
    
                }
            fclose($File);
        
        return $Stringa;
    }
    
    
    function Codice_CercaCreaLink($Stringa,$Target,$Pagina,$Parola) {
    
        $Pos=true;
        $Da=0;
        $Stringa_tmp=strtolower($Stringa); //Crea una copia tutta in minuscolo, perché il comando strpos è sensibile alle Maiuscole e Minuscole. Si potrebbe usare stripos, ma funziona solo con PHP 5. In questo modo, utilizzo $Stringa_tmp per cercare le parole, mentre l'inserimento del codice html lo faccio su $Stringa.
        
        while ($Pos!==false) { //Inizio a scorrere tutto il testo finché non arrivo alla fine
        
            //Cerca la parola
            $Pos=strpos($Stringa_tmp,  $Parola, $Da); //Cerca la prima parola nella copia di Stringa in minuscolo, partendo da $Da
            
            if ($Pos!==false) { //Ho trovato la parola
            
                //Memorizzo la posizione del carattere dove si trova la parola e la sua lunghezza.
                $PrimoCar=$Pos;
                $UltimoCar=strlen($Parola);
                
                //1) Memorizzo la parola originale, ovvero la parola così com'è nel testo.
                $ParolaOriginale=substr($Stringa, $PrimoCar, $UltimoCar);
                //2) Creo il codice html del link
                $URL="<a href=\"$Pagina\" target=\"$Target\">$ParolaOriginale</a>";
                //3) Nel testo originale sostituisco la parola trovata con il codice html appena generato
                $Stringa=substr_replace($Stringa, $URL, $PrimoCar, $UltimoCar);
                
                
                //Ho quindi sostituito la parola con il codice html che la trasforma in link. Adesso, devo proseguire con la ricerca, ma prima devo "aggiornare" il sisitema di ricerca.
               //1) Sposto la ricerca più avanti e lo faccio impostando la posizione da cui iniziare alla posizione rilevata prima + la lunghezza del codice html generato + 1.
                $Da=$Pos + strlen($URL) + 1;
               //2) Aggiorno $Stringa_tmp con una copia del testo appena modificato tutto convertito in minuscolo.
                $Stringa_tmp=strtolower($Stringa);
            
            }
            
            
        
        }
        
        return $Stringa; 
    }
    
    
        //Supponiamo che il testo da trasformare sia in $Testo.
        $Testo=AutoLinks($Testo);
    

    [/php]

    Spero sia giusto. Quello usate da me in Wik-IT è diverso da questo, ovviamente.

    Ciao
    STEVEN


  • Super User

    Bhè, rinnovo i miei complimenti per il nuovo script e per la nuova versione del tuo progetto.

    Lo script l'ho provato e con qualche aggiustamento funziona! :yuppi:

    Avrei però un altro 3 di domandine da farti se non ti dispiace... :mmm:

    Se io voglio che a ogni occorrenza della parola vino mi sostituisca una certa url posso evitare che questa parola venga sostituita anche in una parola che non c'entra nulla com per esempio divino? Una soluzine potrebbe essere quella di mettere gli spazi alla parola vino nel file Comandi.txt?

    Se per es. ho impostato la parola Emilia e la parola Emilia Romagna con questo metodo, posso evitare che la parola Emilia Romagna venga linkata alla parola Emilia?
    Una soluzione potrebbe essere quella di definirmi nel file Comandi.txt prima Emilia Romagna e poi Emilia?

    Posso decidere di sostituire una sola occorrenza di una parola in una pagina anzichè sostituirle tutte?

    Grazie.


  • User

    Se io voglio che a ogni occorrenza della parola vino mi sostituisca una certa url posso evitare che questa parola venga sostituita anche in una parola che non c'entra nulla com per esempio di**vino?**Effettivamente mi sono accorto ora di questa sorta di bug. Una soluzione potrebbe essere di eseguire un controllo quando viene trovata la parola, ovvero si controlla se:

    • prima della parola c'è un carattere "valido" (spazio ');
    • dopo la parola c'è un carattere "valido" (spazio . , ; : ! ? ' ")

    Per carattere "valido" si intende un carattere che può esserci prima o dopo una parola completa.

    Quindi, dopo: if ($Pos!==false)

    Mettiamo (per esempio):

    CaratterePrima=substr($Stringa_tmp, $Pos - 1, 1);
    CarattereDopo=substr($Stringa_tmp, $Pos + strlen($Parola) +1, 1);

    Poi, facciamo il controllo:

    if ( (CaratterePrima==" " or CaratterePrima=="'" ecc.) and (CarattereDopo==" " or CarattereDopo=="," ecc.) ) { esegui tutto il codice per la sostituzione... }

    In teoria, in questo modo dovrebbe sostituire solo le parole che sono precedute e che sono seguite da un carattere considerato "valido".

    Se per es. ho impostato la parola Emilia e la parola Emilia Romagna con questo metodo, posso evitare che la parola Emilia Romagna venga linkata alla parola Emilia?Beh, qui si può fare un pò di tutto. Secondo me, la strada più veloce è inventarsi un tag con il quale definisci le parole che NON DEVONO essere convertite in link. Ad esempio, racchiudendo le parola da non convertire tra parentesi quadre. Poi, prima di visualizzare il testo, si eliminano tutti i tag.

    Per esempio:

    Dopo: $Testo=AutoLinks($Testo);

    Mettiamo:

    $Testo=str_replace("[[", "", $Testo);
    $Testo=str_replace("[[", "", $Testo);

    • Quindi, riprendendo il tuo esempio, se io scrivo:

    Io sono dell'emilia e quindi sono emiliano. La mia regione è l'Emilia Romagna.

    • Con lo script visto prima doveri ottenere:

    Io sono dell'emilia e quindi sono emiliano. La mia regione è l'Emilia Romagna.

    • Usando poi il trucco dei tag, scrivendo:

    Io sono dell'emilia e quindi sono emiliano. La mia regione è l'[[Emilia]] Romagna.

    • Dovrei ottenere:

    Io sono dell'emilia e quindi sono emiliano. La mia regione è l'Emilia Romagna.

    Spero di essere stato chiaro. Fai qualche prova.
    STEVEN


  • Super User

    Sei un mito!!!

    Ho aggiunto il tuo ultimo codice e sembra tutto ok, l'unica cosa che non mi torna è che quando controllo il $caratterePrima e il $carattereDopo ho inserito rispettivamente i caratteri ">" e "<" in modo da prendere per esempio le parole di questo tipo
    <b>Parola1</b>
    <br>Parola2

    Ma il carattere "<" sembra non venir riconosciuto... :mmm:

    E anche nel caso abbia del testo e poi vado a capo. Per esempio nel testo

    ... e poi siamo andati al Mare in vacanza.
    Mare significa sole e divertimento

    Se io voglio sostituire l'occorrenza Mare, la prima volta la sostituisce, la seconda no...

    Il ritorno a capo viene visto con un carattere particolare così come il "<" ed il ">"?

    Grazie infinite!!!!!!!!!


  • User

    Eccomi 🙂

    Mmmm... giustamente se ci sono i codici html tra le balle possono dar noia.

    Comunque, se non riesci a prendere il controllo di un carattere o del ritorno a capo, puoi provare a controllare il codice ASCII del carattere.

    Per esempio, oltre alle istruzioni:

    $CaratterePrima=substr($Stringa_tmp, $Pos - 1, 1);
    $CarattereDopo=substr($Stringa_tmp, $Pos + strlen($Parola) +1, 1);

    Aggiungiamo dopo anche:

    $CaratterePrimaASCII=ord($CaratterePrima);
    $CarattereDopoASCII=ord($CarattereDopo);

    In questo modo, se per esempio hai un ritorno a capo, $CarattereDopoASCII sarà uguale a 13 (cioè il codice Ascii del ritorno a capo).

    Prova così 😉