• Benvenuti su XenForo Italia!

    Stai navigando nella nostra community come Ospite.

    Avere un account su XenForo Italia ti permetterà di creare e partecipare alle discussioni, scaricare i file di traduzione in italiano, vedere le immagini e i video a formato intero, iniziare conversazioni personali con gli altri membri del forum e di utilizzare tutte le funzioni di questo sito.

    Condividi anche tu la tua passione per XenForo!

    Registrarsi è gratis ed elimina la pubblicità

Jonathan_Biasella

Admin XenForo
Licenza Verificata
Punteggio reazioni
2
Punti
30
Ciao a tutti sul mio sito ho delle schede corsi il quale richiamano le discussioni inerenti dal forum. Il tutto funziona tranne che per i link grassetti ecc.. che non vengono interpretati. Qualcuno ha idea di come posso risolvere?
 

Allegati

Kintaro

Custode del Forum
Licenza Verificata
Punteggio reazioni
121
Punti
70
Anzi probabilmente no. Semplicemente secondo me il codice che hai su WordPress non sta interpretando correttamente i tag, infatti nella pagina che ti ho linkato sopra se vai nel forum i tag non ci sono ma si vede il codice HTML.

WordPress quindi si aspetta il codice HTML. Chi ti ha fatto quella funzione che raccoglie i post dal forum e li visualizza nella pagina del corso deve fare in modo che vengano convertiti bene.
 

Jonathan_Biasella

Admin XenForo
Licenza Verificata
Punteggio reazioni
2
Punti
30
  • Autore discussione Autore discussione
  • #4
Guarda visto che ci siamo ti condivido il codice ce fa funzionare tutto questo:
PHP:
                <div class="widget reviews section">
                    <h2 class="title">Se ne parla nel forum: TESTIMONIANZE E DISCUSSIONI</h2>
                    <?php if (get_field('id_discussione_forum')) :
                            global $seconddb;
                            $threads = $seconddb->get_results( "SELECT xt.title, xp.user_id, xp.username, xp.post_date, xp.message FROM xf_post xp, xf_thread xt WHERE xp.thread_id = xt.thread_id AND xp.thread_id = ".get_field('id_discussione_forum')." AND xp.message_state = 'visible' ORDER BY xp.post_date DESC LIMIT 3", ARRAY_A );
                            
                    ?>
                    <div id="reviews">
                        <?php foreach ($threads as $thread) : ?>
                        <div class="review">
                            <div class="avatar"><a href="https://www.formazioneturismo.com/forums/index.php?threads/<?=strtolower(sanitize_title($thread['title']))?>.<?=get_field('id_discussione_forum')?>/" rel="nofollow"><img src="https://www.formazioneturismo.com/WordPress-content/themes/FT/img/icon.png" /></a></div>
                            <div class="author"><a href="https://www.formazioneturismo.com/forums/index.php?members/<?=strtolower($thread['username']).".".$thread['user_id']?>/" rel="nofollow"><?=$thread['username']?></a> ha scritto</div>
                            <div class="text"><?=$thread['message'];?></div>


                            
                            
                            
                            
                            
                        </div>
                        <?php endforeach; ?>
                    </div>
                    <?php if (get_field('url_discussione_forum')) : ?><div class="clearfix"><a href="<?=get_field('url_discussione_forum')?>" class="btn" rel="nofollow" target="_blank">Vai alle discussioni</a></div><?php endif; ?>
                    <?php else : ?>
                    <p>Nessuna discussione su questo corso</p>
                    <div class="clearfix"><a href="http://www.formazioneturismo.com/forums/" class="btn" rel="nofollow" target="_blank">Vai al forum</a></div>
                    <?php endif; ?>
                </div>
Successivamente mi ha detto prova ad inserire questa funziona nel functions.php e "traduci" le varie stringhe.. Il codice è il seguente:

Codice:
<?php
/**
* A simple PHP BBCode Parser function
*
* @author Afsal Rahim
* @link http://digitcodes.com/create-simple-php-bbcode-parser-function/
**/
//BBCode Parser function
function showBBcodes($text) {
    // BBcode array
    $find = array(
        '~\[b\](.*?)\[/b\]~s',
        '~\[i\](.*?)\[/i\]~s',
        '~\[u\](.*?)\[/u\]~s',
        '~\[quote\](.*?)\[/quote\]~s',
        '~\[size=(.*?)\](.*?)\[/size\]~s',
        '~\[color=(.*?)\](.*?)\[/color\]~s',
        '~\[URL\]((?:ftp|https?)://.*?)\[/URL\]~s',
        '~\[img\](https?://.*?\.(?:jpg|jpeg|gif|png|bmp))\[/img\]~s'
    );
    // HTML tags to replace BBcode
    $replace = array(
        '<b>$1</b>',
        '<i>$1</i>',
        '<span style="text-decoration:underline;">$1</span>',
        '<pre>$1</'.'pre>',
        '<span style="font-size:$1px;">$2</span>',
        '<span style="color:$1;">$2</span>',
        '<a href="$1">$1</a>',
        '<img src="$1" alt="" />'
    );
    // Replacing the BBcodes with corresponding HTML tags
    return preg_replace($find,$replace,$text);
}
// How to use the above function:
$bbtext = "This is [b]bold[/b] and this is [u]underlined[/u] and this is in [i]italics[/i] with a [color=red] red color[/color]";
$htmltext = showBBcodes($bbtext);
echo $htmltext;
?>
Hai qualche idea su come risolvere?
 

Kintaro

Custode del Forum
Licenza Verificata
Punteggio reazioni
121
Punti
70
$thread['message'] contiene il testo da convertire. Quindi una volta inserita quella funzione in functions.php dovrai modificare il codice in modo che venga chiamata la funzione showBBcodes per $thread['message'] così te la converte.

tipo sostituire:
<?=$thread['message'];?>
con
<?=showBBcodes($thread['message']);?>

(probabilmente il ; è inutile)
 

Jonathan_Biasella

Admin XenForo
Licenza Verificata
Punteggio reazioni
2
Punti
30
  • Autore discussione Autore discussione
  • #6
Ciao, grazie per la risposta. Ho provato come hai detto, ma non cambia proprio nulla
 

Jonathan_Biasella

Admin XenForo
Licenza Verificata
Punteggio reazioni
2
Punti
30
  • Autore discussione Autore discussione
  • #7
Ciao, grazie per la risposta. Ho provato come hai detto, ma non cambia proprio nulla
Ho risolto modificando così:

PHP:
//BBCode Parser function
function showBBcodes($text) {
    // BBcode array
    $find = array(
        '~\[B\](.*?)\[/B\]~s',
        '~\[i\](.*?)\[/i\]~s',
        '~\[U\](.*?)\[/U\]~s',
        '~\[QUOTE\](.*?)\[/QUOTE\]~s',
        '~\[SIZE=(.*?)\](.*?)\[/SIZE\]~s',
        '~\[COLOR=(.*?)\](.*?)\[/COLOR\]~s',
        '~\[URL=(.*?)\](.*?)\[/URL\]~s',
        '~\[img\](https?://.*?\.(?:jpg|jpeg|gif|png|bmp))\[/img\]~s'
    );
    // HTML tags to replace BBcode
    $replace = array(
        '<b>$1</b>',
        '<i>$1</i>',
        '<span style="text-decoration:underline;">$1</span>',
        '<pre>$1</'.'pre>',
        '<span style="font-size:$16px;">$2</span>',
        '<span style="color:$1;">$2</span>',
        '<a href="$1">$1</a>',
        '<img src="$1" alt="" />'
    );
    // Replacing the BBcodes with corresponding HTML tags
    return preg_replace($find,$replace,$text);
}
?>

Scrivendo i TAG BBcode in maiuscolo

Ora unica cosa, sono i link che non linkano, vengono presi come testo normale
 

Kintaro

Custode del Forum
Licenza Verificata
Punteggio reazioni
121
Punti
70
Rimane visibile il BBCODE oppure non si vede? Dai un occhio alla sorgente HTML generata dalla pagina del corso per capire come te l’ha convertito.
 

Per rispondere Entra o Registrati è Gratis…

Perchè dovresti Registrarti?

  • Partecipare e Creare Discussioni
  • Trovare Consigli e Suggerimenti
  • Condividere i tuoi Interessi
  • Informarti sulle Novità

Membri Iscritti online

Nuove Discussioni

Ultimi Messaggi sui Profili

Bellissimo XenForo....😎
FEDERICOSCHI ha scritto sul profilo di Il Custode.
non posso scaricare la versione in italiano
Alto