• Moderatore

    Al posto di:

    
    <?php echo JText::sprintf('COM_CONTENT_LAST_UPDATED', JHTML::_('date',$this->item->modified, JText::_('DATE_FORMAT_LC2'))); ?>
    
    

    metti:

    
    <time datetime="<?php echo JHtml::_('date', $this->item->modified, 'c'); ?>" itemprop="dateModified">
    	<?php echo JText::sprintf('COM_CONTENT_LAST_UPDATED', JHtml::_('date', $this->item->modified, JText::_('DATE_FORMAT_LC2'))); ?>
    </time>
    
    

    Fammi sapere se va. 🙂


  • User Attivo

    prima di tutto ti ringrazio!

    poi ti dico che ho fatto tutto ma sinceramente credo si debba aspettare qualche giorno per vedere se la cosa funziona giusto? In fin dei conti l'obiettivo è quello di mostrare la data di aggiornamento in serp e quindi presumo che per vedere se funziona l'unico modo che abbiamo è aspettare un pò...

    ps: io il test tramite https: // developers.google. com /structured-data/testing-tool/ l'ho fatto ma non so se è tutto ok.

    a te cosa sembra?


  • Moderatore

    @ElaMedia: penso che ci sia un errore di implementazione di schema . org, però voglio guardare meglio. Mi riferisco a questa pagina: ilmioparto. it/parto-cesareo-programmato .html


  • User Attivo

    ok grazie


  • Moderatore

    Ciao ElaMedia,
    ti confermo che manca la marcatura corretta di schema . org . Se guardi il sorgente non tovi ad esempio questo:

    
    itemscope itemtype="http://schema.org/Article
    
    

    Devi correggere i file php del tema aggiungendo schema . org . 😉


  • User Attivo

    ok quindi al posto di:

    
    <?php echo JText::sprintf('COM_CONTENT_LAST_UPDATED', JHTML::_('date',$this->item->modified, JText::_('DATE_FORMAT_LC2'))); ?>
    
    

    metto:

    
    <div itemscope itemtype="http: // schema . org /Article"> 
                    <time datetime="<?php echo JHtml::_('date', $this->item->modified, 'c'); ?>" itemprop="dateModified">
        <?php echo JText::sprintf('COM_CONTENT_LAST_UPDATED', JHtml::_('date', $this->item->modified, JText::_('DATE_FORMAT_LC2'))); ?>
    </time>
                    </div>
    
    

    Giusto così? Oppure il <div itemscope itemtype="http: // schema. org/Article"> lo devo mettere in un'altra posizione del file php?

    Grazie


  • Moderatore

    Va sull'elemento che fa iniziare l'articolo, nella parte alta.


  • Moderatore

    Scusa per prima ma ho risposto in fretta perché ho avuto un'emergenza. Il tag lo metterei su:

    
    <div class="article">
    
    

    Nota che i commenti sono nel div superiore, cioè il div class="com-content", ma fuori dal div class="article". Comunque penso che questo sia il div giusto perché delimita il contenuto che può essere distribuito indipendentemente dal resto della pagina. Pertanto avrai:

    
    <!-- ... quello che viene prima ... -->
    
    <div class="article" itemscope itemtype="http: // schema. org/Article">
    
    <!-- ... quello che viene dopo ... -->
    
    

  • User Attivo

    ok perfetto. Grazie! Il tool di google per la verifica dei rich snippet mi dice che è tutto ok.

    ps: il resto (immagine ecc...) mi consigli di evidenziarlo tramite gli strumenti per web master di google (sezione evidenziatore di dati)? Ma sono davvero utili in serp questi rich snippet?


  • Moderatore

    Usa schema . org con la marcatura "inline" nel php, come hai fatto per article.
    Dopo ti posto un esempio di marcatura per la nostra pagina di prova "parto-cesareo-programmato".


  • Moderatore

    Questo è un esempio sul tuo codice, ma non l'ho testato. Ho incluso schema .org/article con *name *(titolo), *image *e articleBody (testo; l'ho chiuso in un div).

    
    <div class="article" itemscope itemtype="http://schema.org/Article">
            <?php if ($this->params->get('show_page_heading', 1)) : ?>
                <h2 class="componentheading">
                <?php echo $this->escape($this->params->get('page_heading')); ?>
                </h2>
            <?php endif; ?>
            
            <?php if ($showParentCategory || $showCategory) : ?>
            <div class="jsn-article-metadata">
                <?php if ($showParentCategory) : ?>
                    <span class="parent-category-name">
                    <?php    $title = $this->escape($this->item->parent_title);
                    $url = '<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute($this->item->parent_slug)).'">'.$title.'</a>';?>
                    <?php if ($params->get('link_parent_category') AND $this->item->parent_slug) : ?>
                        <?php echo JText::sprintf('COM_CONTENT_PARENT', $url); ?>
                    <?php else : ?>
                        <?php echo JText::sprintf('COM_CONTENT_PARENT', $title); ?>
                    <?php endif; ?>
                    </span>
                <?php endif; ?>            
                <?php if ($showCategory) : ?>
                    <span class="category-name">
                    <?php     $title = $this->escape($this->item->category_title);
                    $url = '<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute($this->item->catslug)).'">'.$title.'</a>';?>
                    <?php if ($params->get('link_category') AND $this->item->catslug) : ?>
                        <?php echo JText::sprintf('COM_CONTENT_CATEGORY', $url); ?>
                    <?php else : ?>
                        <?php echo JText::sprintf('COM_CONTENT_CATEGORY', $title); ?>
                    <?php endif; ?>
                    </span>
                <?php endif; ?>
            </div>
            <?php endif; ?>    
            
            <?php if ($params->get('show_title')) : ?>
                <h1 class="contentheading" itemprop="name">
                <?php if ($params->get('link_titles') && !empty($this->item->readmore_link)) : ?>
                    <a href="<?php echo $this->item->readmore_link; ?>">
                    <?php echo $this->escape($this->item->title); ?></a>
                <?php else : ?>
                    <?php echo $this->escape($this->item->title); ?>
                <?php endif; ?>
                </h1>
            <?php endif; ?>
            
            <?php  if (!$params->get('show_intro')) :
                echo $this->item->event->afterDisplayTitle;
            endif; ?>
    
    
            <?php if ($showInfo || $showTools) : ?>
            <div class="jsn-article-toolbar">
                <?php if ($showTools) : ?>
                    <ul class="jsn-article-tools pull-right">
                    <?php if (!$this->print) : ?>
                        <?php if ($params->get('show_print_icon')) : ?>
                            <li class="jsn-article-print-button">
                            <?php echo JHtml::_('icon.print_popup',  $this->item, $params); ?>
                            </li>
                        <?php endif; ?>
                        <?php if ($params->get('show_email_icon')) : ?>
                            <li class="jsn-article-email-button">
                            <?php echo JHtml::_('icon.email',  $this->item, $params); ?>
                            </li>
                        <?php endif; ?>                
                        <?php if ($canEdit) : ?>
                            <li class="jsn-article-icon-edit">
                            <?php echo JHtml::_('icon.edit', $this->item, $params); ?>
                            </li>
                        <?php endif; ?>                
                    <?php else : ?>
                        <li class="jsn-article-print-button">
                        <?php echo JHtml::_('icon.print_screen',  $this->item, $params); ?>
                        </li>
                    <?php endif; ?>            
                    </ul>
                <?php endif; ?>    
            
                <?php if ($showInfo) : ?>
                <div class="jsn-article-info">
                    <?php if ($params->get('show_author') && !empty($this->item->author )) : ?>
                        <p class="small author">
                        <?php $author =  $this->item->author; ?>
                        <?php $author = ($this->item->created_by_alias ? $this->item->created_by_alias : $author);?>
    
    
                        <?php if (!empty($this->item->contactid ) &&  $params->get('link_author') == true):?>
                            <?php     echo JText::sprintf('COM_CONTENT_WRITTEN_BY' , 
                             JHTML::_('link',JRoute::_('index.php?option=com_contact&view=contact&id='.$this->item->contactid),$author)); ?>
    
    
                        <?php else :?>
                            <?php echo JText::sprintf('COM_CONTENT_WRITTEN_BY', $author); ?>
                        <?php endif; ?>
                        </p>
                    <?php endif; ?>    
                    <?php if ($params->get('show_create_date')) : ?>
                        <p class="createdate">
                        <?php echo JText::sprintf('COM_CONTENT_CREATED_DATE_ON', JHTML::_('date',$this->item->created, JText::_('DATE_FORMAT_LC2'))); ?>
                        </p>
                    <?php endif; ?>
                    <?php if ($params->get('show_publish_date')) : ?>
                        <p class="publishdate">
                        <?php echo JText::sprintf('COM_CONTENT_PUBLISHED_DATE_ON', JHTML::_('date',$this->item->publish_up, JText::_('DATE_FORMAT_LC2'))); ?>
                        </p>
                    <?php endif; ?>            
                    <?php if ($params->get('show_hits')) : ?>
                        <p class="hits">
                        <?php echo JText::sprintf('COM_CONTENT_ARTICLE_HITS', $this->item->hits); ?>
                        </p>
                    <?php endif; ?>
                </div>
                <?php endif; ?>
    
    
                <div class="clearbreak"></div>
            </div>
            <?php endif; ?>
            
            <?php echo $this->item->event->beforeDisplayContent; ?>
            
            <div class="jsn-article-content">
                <?php if (isset ($this->item->toc)) : ?>
                    <?php echo $this->item->toc; ?>
                <?php endif; ?>
                <?php if (isset($urls) AND ((!empty($urls->urls_position) AND ($urls->urls_position=='0')) OR  ($params->get('urls_position')=='0' AND empty($urls->urls_position) ))
                        OR (empty($urls->urls_position) AND (!$params->get('urls_position')))): ?>
                        <?php echo $this->loadTemplate('links'); ?>
                <?php endif; ?>
                    
                <?php if ($params->get('access-view')):?>
                    <?php if (isset($images->image_fulltext) and !empty($images->image_fulltext)) : ?>
                        <?php $imgfloat = (empty($images->float_fulltext)) ? $params->get('float_fulltext') : $images->float_fulltext; ?>
                        <div class="img-fulltext-<?php echo htmlspecialchars($imgfloat); ?>">
                        <img
                            <?php if ($images->image_fulltext_caption):
                                echo 'class="caption"'.' title="' .htmlspecialchars($images->image_fulltext_caption) .'"';
                            endif; ?>
                            src="<?php echo htmlspecialchars($images->image_fulltext); ?>" alt="<?php echo htmlspecialchars($images->image_fulltext_alt); ?>" itemprop="image" />
                        </div>
                    <?php endif; ?>
                    
                <?php } ?>
                <div itemprop="articleBody">
                    <?php echo $this->item->text; ?>
                </div>
                <?php 
                    //optional teaser intro text for guests
                    elseif ($params->get('show_noauth') == true AND  $user->get('guest') ) : 
                ?>
                    <?php echo $this->item->introtext; ?>
                    <?php //Optional link to let them register to see the whole article. ?>
                    <?php if ($params->get('show_readmore') && $this->item->fulltext != null) :
                        $link1 = JRoute::_('index.php?option=com_users&view=login');
                        $link = new JURI($link1);?>
                        <a href="<?php echo $link; ?>" class="readon">
                        <?php $attribs = json_decode($this->item->attribs);  ?> 
                        <?php 
                        if ($attribs->alternative_readmore == null) :
                            echo JText::_('COM_CONTENT_REGISTER_TO_READ_MORE');
                        elseif ($readmore = $this->item->alternative_readmore) :
                            echo $readmore;
                            if ($params->get('show_readmore_title', 0) != 0) :
                                echo JHTML::_('string.truncate', ($this->item->title), $params->get('readmore_limit'));
                            endif;
                        elseif ($params->get('show_readmore_title', 0) == 0) :
                            echo JText::sprintf('COM_CONTENT_READ_MORE_TITLE');    
                        else :
                            echo JText::_('COM_CONTENT_READ_MORE');
                            echo JHTML::_('string.truncate', ($this->item->title), $params->get('readmore_limit'));
                        endif; ?></a>
                    <?php endif; ?>
                <?php endif; ?>
    
    
                <?php if ($params->get('show_modify_date')) : ?>
                    <p class="modifydate">
                    <?php echo JText::sprintf('COM_CONTENT_LAST_UPDATED', JHTML::_('date',$this->item->modified, JText::_('DATE_FORMAT_LC2'))); ?>
                    </p>
                <?php endif; ?>
            </div>
            
            <div class="clearbreak"></div>
            <?php
            // Pagenavigation config
            if (!empty($this->item->pagination) AND $this->item->pagination AND $this->item->paginationposition AND!$this->item->paginationrelative):
                 echo $this->item->pagination;?>
            <?php endif; ?>
            
            <?php echo $this->item->event->afterDisplayContent; ?>
    
    
        </div>
    
    

  • User Attivo

    ok ottimo grazie. faccio dei test

    quindi tu sei per la manualità? come lo giudichi lo strumento evidenziatore di dati all'interno degli Strum. per WebM. di G. A me sembra piuttosto confusionario.


  • Moderatore

    Non uso l'evidenziatore, che penso sia nato per diffondere la marcatura tra i non addetti ai lavori.
    Nei template di Joomla usano "microdata" ed è il primo metodo che ho usato, però JSON-LD penso sia migliore.
    In ogni caso, una volta che hai inserito i microdata all'interno del template sei a posto, ci devi tornare solo se vuoi modificare i microdata e/o il template. 😉


  • User Attivo

    Ciao,

    ho deciso di implementare qualcosa a mano e qualcosa tramite gli Strumenti per Web Master di Google.

    ps: ho seguito la tua guida anche per questo mio sito in Joomla 1.5 (finanziamentipergiovani. it / calcolo-partita-iva . html) ma trovo delle difficoltà con lo strumento che testa i Rich Snippet: mi dice "tipo non specificato"

    Che ci siano differenze tra le diverse versioni di Joomla?

    Grazie


  • Moderatore

    Ciao ElaMedia,
    hai centrato il problema: ci sono differenze tra le varie versioni di Joomla!
    Posta il php del template in cui vuoi mettere i microdata. 🙂


  • User Attivo

    @FDA said:

    Ciao ElaMedia,
    hai centrato il problema: ci sono differenze tra le varie versioni di Joomla!
    Posta il php del template in cui vuoi mettere i microdata. 🙂

    ti ringrazio ma ci sono riuscito 😉


  • Moderatore

    :smile5: