Joomla.it Forum

Componenti per Joomla! => SEO => : PaolaOM 09 Jun 2017, 18:07:05

: [RISOLTO] itemprop="image"
: PaolaOM 09 Jun 2017, 18:07:05
Buongiorno a tutti, esiste un modo (tramite override del template) per fare in modo che tutte le immagini inserite negli articoli (centinaia) abbiano questa proprietà?
:
<img itemprop="image"/>Utilizzo joomla 3.7.2 con protostar. Ho fatto diversi tentativi e ricerche ma senza successo, trovandola anche scritta nel file layout/joomla/content/full_image.php.
Grazie per l'attenzione.
: Re:itemprop="image"
: danielecr 12 Jun 2017, 11:15:45
Ciao,
potresti usare jQuery per aggiungere a tutte le immagini del sito itemprop="image".

Questo è un sorgente di una pagina di esempio:
:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Documento senza titolo</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js" type="text/javascript"></script>
<script type="application/javascript">
jQuery(document).ready(function(){
    jQuery('img').attr('itemprop', 'image');
});
</script>
</head>

<body>
<img src="id2.png" width="171" height="76" />
</body>
</html>

Come vedi si richiama jQuery.min.js e DOPO lo script che ti aggiunge a tutti gli img presenti nel documento itemprop="image"

Nello specifico di joomla e del tuo caso:
1- assicurati che jQuery sia richiamato dall'index in tutte le pagine del sito
2- crea un modulo personalizzato e incollaci il seguente sorgente:
:
<script type="application/javascript">
jQuery(document).ready(function(){
    jQuery('img').attr('itemprop', 'image');
});
</script>
3- Assegna il modulo a tutte le pagine del sito
4- verifica con firebug o simili che effettivamente itemprop sia aggiunto alle immagini


NB: tieni conto però che molto probabilmente, se non sicuramente, il dato non verrà letto dal motore, in quanto il contenuto è dinamicamente inserito con js
: Re:itemprop="image"
: danielecr 12 Jun 2017, 12:40:02
Alternativa veloce, per rendere il contenuto statico: visto che gli articoli sono all'interno del database, in particolare in tuoprefisso_content --> introtext e in tuoprefisso_content --> fulltext (solo se utilizzi il "read more") puoi rimpiazzare la stringa "<img src" con la stringa "<img itemprop="image" src".
Questo lo puoi fare a mano o con ad esempio l'estensione db replacer di regular labs che trovi qui in versione free:
https://www.regularlabs.com/extensions/dbreplacer (https://www.regularlabs.com/extensions/dbreplacer)

L'estensione free è limitata, se hai molte immagini devi effettuare il replace più volte.

Il massimo numero di righe è stato raggiunto. La sostituzione avrà luogo solo su 50 righe. Se devi rimpiazzare qualcosa in molti record, è meglio fare la sostituzione più volte fino a che non ci saranno più risultati (o alzare il massimo in configurazione).

Puoi anche vedere l'anteprima di cosa verrà rimpiazzato.
: Re:itemprop="image"
: PaolaOM 12 Jun 2017, 15:53:07
Davvero molte grazie per le risposte danielecr, userò il secondo metodo lavorando nel db.
Mi rimane il dubbio su come mai la proprietà scritta in nel file layout/joomla/content/full_image.php non ha alcun effetto...
Grazie ancora.
Buon lavoro.
: Re:[RISOLTO] itemprop="image"
: danielecr 12 Jun 2017, 16:03:09
Sinceramente non conosco nel dettaglio come joomla opera. Potrebbe essere che le immagini, quindi tag img e i suoi attributi vengano inseriti dall'editor nel db al momento della compilazione/modifica dell'articolo e che non passino attraverso un file di joomla che abbia da qualche parte <img e popoli poi la stringa con ciò che si è inserito nell'editor.