• 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: