it-swarm.dev

Tag page: rimuove i collegamenti sull'immagine quando sono in introtext

Sto provando a rimuovere il link sulla mia immagine nella pagina Tag (dove sono visualizzati tutti gli artcile con lo stesso tag). L'immagine viene posizionata con il <img> tag in introtext, non è un'immagine introduttiva.

Ho trovato la funzione php corretta:

$notagintrotex =strip_tags( $this->item->introtext, '<img>');
echo $notagintrotex;

Ma non riesco a trovare quale file devo sovrascrivere. Ho visto questo domanda ma sembra che ci siano stati alcuni cambiamenti da Joomla 3.3.1. su template/yourtemplate/html/com_tags/tag/default_items.php

1
MagTun

Bene, dopo avere una migliore visione d'insieme del tuo problema, ecco cosa devi fare per ottenere ciò che desideri:

Crea una sostituzione del modello all'interno della cartella html del tuo modello, per il componente Tag. Per fare ciò, creare la seguente struttura di cartelle:

/ Templates/yourtemplate/html/com_tags/tag /

Copia nella cartella sopra il file:

default_items.php dalla cartella componenti/com_tags/views/tag/tmpl.

Apri questo file per modificarlo. Intorno alla linea 80 vedrai:

<?php if ($this->params->get('tag_list_show_item_description', 1)) : ?>
    <?php echo $item->event->beforeDisplayContent; ?>           
    <span class="tag-body">
        <?php echo JHtml::_('string.truncate', $item->core_body, $this->params->get('tag_list_item_maximum_characters')); ?>
    </span>
    <?php echo $item->event->afterDisplayContent; ?>

Modificalo aggiungendo il codice prima di riecheggiare il testo della descrizione (ad es. Prima dell'intervallo "tag-body"):

<?php
$item->core_body =strip_tags( $item->core_body, '<img>');
?>

Quindi finirai con qualcosa come sotto:

    <?php if ($this->params->get('tag_list_show_item_description', 1)) : ?>
    <?php echo $item->event->beforeDisplayContent; ?>
    <?php
        $item->core_body =strip_tags( $item->core_body, '<img>');
    ?>          
    <span class="tag-body">
        <?php echo JHtml::_('string.truncate', $item->core_body, $this->params->get('tag_list_item_maximum_characters')); ?>
    </span>
    <?php echo $item->event->afterDisplayContent; ?>

Risposta iniziale:

Il tuo sito web è un po 'confuso, un po' difficile da navigare e non esiste un modo standard per raggiungere tutti i tipi di contenuti e categorie. Penso anche che ci sia un po 'di confusione nella configurazione, poiché alcune pagine mostrano le informazioni sui tag, altre solo le categorie e così via.

Inoltre, stavo cercando di raggiungere uno degli articoli da quell'elenco di tag per esaminare come e perché utilizza un'immagine nel suo introtesto con link a siti Web esterni, ma sebbene le immagini degli articoli siano dirette a siti Web esterni, i titoli degli articoli producono un Errore 404.

Prima di tutto, credo che dovresti perfezionare l'intera configurazione del sito Web e dei componenti. Non posso dire esattamente cosa devi fare all'interno di questa risposta - probabilmente potresti aver bisogno di assumere qualcuno per aiutarti a risolvere questo problema.

Per quanto riguarda il problema con i collegamenti, ho controllato anche alcuni altri tag e non tutti i tag hanno collegamenti nella loro descrizione. Questo mi porta a pensare che quelle immagini specifiche nell'introtesto si colleghino a questi siti Web esterni.

Penso che dal momento che hai impostato il componente Tag per visualizzare l'introtext, lo userà e conterrà qualsiasi markup dell'introtext dell'articolo.

Un modo per ovviare a questo è utilizzare la funzione nascondi introtext del componente Contenuto. Seguendo questo approccio, creerai due volte lo stesso contenuto per introtext e full-text. Nell'introtesto utilizzerai l'immagine senza il link, mentre nel testo completo potrai aggiungere il tuo link. Impostando Joomla per nascondere l'introtext dalla visualizzazione dell'articolo, risulterà avere 2 diversi blocchi di testo da visualizzare per le tue esigenze.

L'introtext senza i collegamenti per tutti i layout di blog/elenchi di tag, moduli di articoli ecc. E il testo completo per la visualizzazione degli articoli.

In alternativa, puoi utilizzare le funzionalità delle immagini di Joomla Content, dalla scheda "Immagini e collegamenti" e impostare lì la tua immagine introduttiva.

Tuttavia, tenere presente che l'output di ciascun componente è anche controllato da eventuali sostituzioni del modello per ciascun componente.

1
FFrewin

Mi sembra che sia necessario creare un plug-in di contenuto (è abbastanza semplice) per eliminare i tag. Vedi Creazione di un plugin di contenuto e inserisci il tuo codice nel file php. L'evento che dovrebbe attivarlo è probabilmente l'evento onContentPrepare, o forse onContentBeforeDisplay.

1
GDP