Visualizzazione risultati 1 fino 17 di 17

Discussione: Strumento di editing in php

  1. #1
    FArn non è connesso Neofita
    Data registrazione
    13-09-2004
    Messaggi
    10

    Predefinito Strumento di editing in php

    Ciao ragazzi, volevo fare una pagina in php che permettesse l'editing e la formattazione di articoli, direttamente dal web, come quello che sto usando per inserire questo post per intenderci...


    Costruirlo da zero è complesso?
    Qualcuno sa dirmi dove trovare qualche guida in proposito?

    In alternativa esistono script "pre-confezionati"?

  2. #2
    Guest

    Predefinito

    ai un'occhiata alla sezione articoli su
    http://freephp.html.it/

    mavericck

  3. #3
    FArn non è connesso Neofita
    Data registrazione
    13-09-2004
    Messaggi
    10

    Predefinito

    Avevo già dato un occhio e adesso ho riguardato meglio, ma non mi sembra ci sia niente in proposito.

  4. #4
    Guest

    Predefinito

    Se vuoi illuminarti la strada...se hai veramente voglia di farlo da solo non è molto difficile!

  5. #5
    Guest

    Predefinito

    come già detto da nix82, se te lo scrivi da solo, migliori molto la tua conoscenza di php associato a mysql se usi quello, altrimenti ai file di testo...
    comunque fidati che se te lo fai da solo, all'inizio non sarà al livello di quelli già pronti, ma c'è una dose di soddisfazione non indifferente... poi fai come vuoi... il mio è un semplice consiglio...

  6. #6
    FArn non è connesso Neofita
    Data registrazione
    13-09-2004
    Messaggi
    10

    Predefinito

    Io sono un cultore del "chi fa da se fa per tre", farei meno fatica a scrivere uno script nuovo che a installarne uno gia fatto, quindi i vostri consigli non cadono certo a vuoto.

    Ma davvero non ho idea di come implementare i comandi di formattazione... comunque sia, va bene, intanto provo ad arrangiarmi senza indurmi in tentazione...

    Grazie a tutti!
    Ultima modifica di FArn : 06-07-2005 alle ore 03.36.18

  7. #7
    Guest

    Predefinito

    Allora le funzioni che dovrai utilizzare sono
    -> htmlspecialcharts
    -> stripslashes
    -> str_replace
    -> nl2br

    Quando hai un textarea e ci vuoi scrivere un articolo devi considerare alcune cose
    -> che alcuni caratteri vanno formattati (< > &)
    -> che gli "invio" nel textarea non corrispondo a <br> nell'html
    -> che se hai attivato di default magic_quotes_gpc ti verranno aggiunti i backslash
    -> che al posto di inserire html puro metti condice BB del tipo ciao www.miosito.it

    da dove si comincia? Raccogliendo i POST
    Codice PHP:
    $text = isSet($_POST['textarea']) ? $_POST['textarea'] : '';
    Poi si comincia con la formattazione! Ad ogni passaggio ti metto sopra un commento per spiegarti l'azione
    Codice PHP:
    // levo i backslash
    $text = stripslashes($text);

    // formatto i caratteri come < > &
    $text = htmlspecialcharts($text);

    // trasformo gli "invio" del textarea in <br> nell'html
    // attenzione la funzione nl2br DEVE essere eseguita dopo htmlspecialcharts altrimenti ti giochi i < > del <br>
    $text = nl2br($text);
    Poi la variabile $text la salvi come credi dentro un cookie,db o file txt/php!

    La fase più importante è la ripresa del testo! Averlo messo dentro è stata una cosa relativamente facile perchè non hai formattato il testo!
    La parte dopo il commento // Link serve per formattare un url anche se non viene immesso tra i tag [url ] e [/url] ma viene scritto solo del tipo www o http://
    Questa formattazione la usa anche questo forum
    Adesso vediamo quando devi stampare il testo cosa fare
    Codice PHP:
    // hai a diposizione la tua variabile $text presa sempre da cookie/db/php/txt
    // trasformo text in un vettore diviso da tutti gli spazi! Questo mi permette di avere tutte le parole in un array!
    $words = explode(' ' , $text);
    for(
    $i=0 ; $i<count($word) ; $i++) {
    // Link
    $word[$i] = trim($word[$i]);
    $var = isset($word[$i]{0}) ? strtolower($word[$i]{0}) : '';
    $var .= isset($word[$i]{1}) ? strtolower($word[$i]{1}) : '';
    $var .= isset($word[$i]{2}) ? strtolower($word[$i]{2}) : '';
    $var .= isset($word[$i]{3}) ? strtolower($word[$i]{3}) : '';

    if(
    trim($var) == 'http') {
    $word[$i] = '<a href="'. word[$i] .'">'. $word[$i] .'</a>';
    } elseif(
    trim($var)=='www.') {
    $word[$i] = '<a href="http://'. word[$i] .'">'. $word[$i] .'</a>';
    }

    // Grassetto
    $words[$i] = str_replace('[b]','<b>',$words[$i]);
    $words[$i] = str_replace('[/b]','</b>',$words[$i]);

    // Corsivo
    $words[$i] = str_replace('[i]','<i>',$words[$i]);
    $words[$i] = str_replace('[/i]','</i>',$words[$i]);

    // Sottolineato
    $words[$i] = str_replace('[u]','<u>',$words[$i]);
    $words[$i] = str_replace('[/u]','</u>',$words[$i]);

    // Immagini
    if( strpos( $words[$i], '[img]' ) !== false && strpos( $words[$i], '[/img]' ) !== false) {
    $link = str_replace('[img]','',$words[$i]);
    $link = str_replace('[/img]','',$link);
    $words[$i] = "<img src=\"$link\">";
    }
    }
    $text = implode(' ', $words);
    se ci sono errori o imprecisinoi i domande sono qua :winkOLD:

  8. #8
    Guest

    Predefinito

    ciao, ho provato ad usare questo codice, ma mi da degli errori in fase di output:
    Parse error: syntax error, unexpected '[' in /membri/lsdfreetime/libromagno.php on line 93
    temo sia una gestione erronea: cioè, avevo lasciato una [ non chiusa dal tag, e mi ha bloccato linserimento, come posso fare?

  9. #9
    Guest

    Predefinito

    devi dirmi qual'è la riga 93 altrimenti non so come orientarmi.

    posta 3 righe sopra e sotto alla 93

  10. #10
    Guest

    Predefinito

    le parentesi quadre non chiuse danno un errore.
    non formatta
    ed ecco le righe attorno alla 93:

    Codice PHP:

    if(trim($var) == 'http') {
    $word[$i] = '<a href="'. word[$i] .'">'. $word[$i] .'</a>';
    } elseif(
    trim($var)=='www.') {
    $word[$i] = '<a href="http://'. word[$i] .'">'. $word[$i] .'</a>';
    }

    ecco il codice completo che prima di mettere il tuo script funzionava, quindi siamo sicuri che non vi fossero errori precedenti:

    Codice PHP:
    while ($row = mysql_fetch_array($result)){
    echo
    "<hr size='1'>";
    $mittente=$row['mittente'];
    $tit=$row['titolo'];
    $testo=$row['testo'];
    // trasformo text in un vettore diviso da tutti gli spazi! Questo mi permette di avere tutte le parole in un array!
    $words = explode(' ' , $testo);
    for(
    $i=0 ; $i<count($word) ; $i++) {
    // Link
    $word[$i] = trim($word[$i]);
    $var = isset($word[$i]{0}) ? strtolower($word[$i]{0}) : '';
    $var .= isset($word[$i]{1}) ? strtolower($word[$i]{1}) : '';
    $var .= isset($word[$i]{2}) ? strtolower($word[$i]{2}) : '';
    $var .= isset($word[$i]{3}) ? strtolower($word[$i]{3}) : '';

    if(
    trim($var) == 'http') {
    $word[$i] = '<a href="'. word[$i] .'">'. $word[$i] .'</a>';
    } elseif(
    trim($var)=='www.') {
    $word[$i] = '<a href="http://'. word[$i] .'">'. $word[$i] .'</a>';
    }

    // Grassetto
    $words[$i] = str_replace('[b]','<b>',$words[$i]);
    $words[$i] = str_replace('[/b]','</b>',$words[$i]);

    // Corsivo
    $words[$i] = str_replace('[i]','<i>',$words[$i]);
    $words[$i] = str_replace('[/i]','</i>',$words[$i]);

    // Sottolineato
    $words[$i] = str_replace('[u]','<u>',$words[$i]);
    $words[$i] = str_replace('[/u]','</u>',$words[$i]);

    // Immagini
    if( strpos( $words[$i], '[img]' ) !== false && strpos( $words[$i], '[/img]' ) !== false) {
    $link = str_replace('[img]','',$words[$i]);
    $link = str_replace('[/img]','',$link);
    $words[$i] = "<img src=\"$link\">";
    }
    }
    $testo = implode(' ', $words);
    echo
    "<font size='+3'>#$tit</font><br>";
    echo
    "$testo<br>";
    echo
    "<div align='right'>$mittente</div><br>";
    }
    ?>
    NOTA: se commento le righe relative al trimmaggio dei codici html, non da errore, ma non formatta.
    Ultima modifica di lsdforum : 15-03-2006 alle ore 00.45.36

  11. #11
    Guest

    Predefinito

    Non saprei!

    Intanto io vedo che la hai
    for($i=0 ; $i<count($word) ; $i++) {

    quando invece la viariabile è $words

  12. #12
    Guest

    Predefinito

    vergongna :(
    non mi sarei MAi accorto dell'errore :)
    ma il tuo codice è strano, a volte compare $word a volte $words...

    funziona, ora, ma sempre commentando il discorso links.

  13. #13
    Guest

    Predefinito

    l'avevo postato di fretta! Sono tutti WORDS comunque!

  14. #14
    Guest

    Predefinito

    avevo immaginato....
    ma altri strumetni per formattare?
    che ci si può mettere?
    io ho aggiunto al tuo script 3 pulsanti che aprono un alert per inserrire il testo all'interno e poi lo mettono nella textarea tra i tag...

  15. #15
    Guest

    Predefinito

    ho implementato altre 3 funzioni: sono per l'allineamento del testo:

    da inserire PRIMA dell'ultima parentesi graffa:

    Codice PHP:
    //ALLINEAMENTO TESTO
    // Allineato a SINISTRA
    $words[$i] = str_replace('[left]','<p align="left">',$words[$i]);
    $words[$i] = str_replace('[/left]','</p>',$words[$i]);

    // Allineato al CENTRO
    $words[$i] = str_replace('[center]','<center>',$words[$i]);
    $words[$i] = str_replace('[/center]','</center>',$words[$i]);

    // Allineato a DESTRA
    $words[$i] = str_replace('[right]','<p align="right">',$words[$i]);
    $words[$i] = str_replace('[/right]','</p>',$words[$i]);

  16. #16
    Guest

    Predefinito

    Se non vuoi complicarti troppo la vita, ti consiglio fckeditor: www.fckeditor.net
    E' molto ben fatto e potente. Genera direttamente l'HTML.

  17. #17
    Guest

    Predefinito

    molto bello grazie.
    chiaramente così però non si impara nulla :)

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •