En este Tutoriales En Linea les mostraremos la manera de corregir el error de Breadcrumb de los datos estructurados en RDFa según Schema.org del sistema de gestión de contenido de DataLife Engine.
Todo funciona correctamente y el motor de búsqueda las lee normalmente, incluso el validador no muestra ningún error, pero hay un matiz.
Preste atención a la línea con el parámetro itemtype:
Para ello abriremos el archivo engine/engine.php
Buscar el siguiente código (Parte Inferior - 1274.):
Reemplazar con:
Luego buscamos el archivo engine/modules/functions.php
Buscamos el siguiente codigo:
Reemplazamos con:
En los estilos puedes agregar:
RDFa es un conjunto de extensiones de XHTML propuestas por W3C para introducir semántica en los documentos...
Como se sabe, en DLE, a partir de la versión 10.0, se agregaron a la barra de velocidad (speedbar) las llamadas migas de pan para el micromarking.Todo funciona correctamente y el motor de búsqueda las lee normalmente, incluso el validador no muestra ningún error, pero hay un matiz.
Preste atención a la línea con el parámetro itemtype:
<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
Actualizamos las migas de pan para DLE 10.2 - 11.x siguiendo el ejemplo de Google.Para ello abriremos el archivo engine/engine.php
Buscar el siguiente código (Parte Inferior - 1274.):
if ($config['speedbar'] AND !$view_template ) {
$s_navigation = "<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="{$config['http_home_url']}" itemprop="url"><span itemprop="title">" . $config['short_title'] . "</span></a></span>";
if( $config['start_site'] == 3 AND $_SERVER['QUERY_STRING'] == "" AND !$_POST['do']) $titl_e = "";
if (intval($category_id)) $s_navigation .= " {$config['speedbar_separator']} " . get_breadcrumbcategories ( intval($category_id), $config['speedbar_separator'] );
elseif ($do == 'tags') {
if ($config['allow_alt_url']) $s_navigation .= " {$config['speedbar_separator']} <span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="" . $config['http_home_url'] . "tags/" itemprop="url"><span itemprop="title">" . $lang['tag_cloud'] . "</span></a></span> {$config['speedbar_separator']} " . $tag;
else $s_navigation .= " {$config['speedbar_separator']} <span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="?do=tags" itemprop="url"><span itemprop="title">" . $lang['tag_cloud'] . "</span></a></span> {$config['speedbar_separator']} " . $tag;
} elseif ($nam_e) $s_navigation .= " {$config['speedbar_separator']} " . $nam_e;
if ($titl_e) $s_navigation .= " {$config['speedbar_separator']} " . $titl_e;
else {
if ( isset($_GET['cstart']) AND intval($_GET['cstart']) > 1 ){
$page_extra = " {$config['speedbar_separator']} ".$lang['news_site']." ".intval($_GET['cstart']);
} else $page_extra = '';
$s_navigation .= $page_extra;
}
$tpl->load_template ( 'speedbar.tpl' );
$tpl->set ( '{speedbar}', '<span id="dle-speedbar">' . stripslashes ( $s_navigation ) . '</span>' );
$tpl->compile ( 'speedbar' );
$tpl->clear ();
}
if ($config['speedbar'] AND !$view_template ) {
$s_navigation = "<li property="itemListElement" typeof="ListItem"><a href="{$config['http_home_url']}" property="item" typeof="WebPage"><span property="name">" . $config['short_title'] . "</span></a><meta property="position" content="1"></li>";
if( $config['start_site'] == 3 AND $_SERVER['QUERY_STRING'] == "" AND !$_POST['do']) $titl_e = "";
if (intval($category_id))
{
$cat_breadcrumb = explode("|", get_breadcrumbcategories ( intval($category_id), $config['speedbar_separator'] ));
$s_navigation .= " {$config['speedbar_separator']} " . $cat_breadcrumb[0];
}
elseif ($do == 'tags') {
if ($config['allow_alt_url']) $s_navigation .= " {$config['speedbar_separator']} <li property="itemListElement" typeof="ListItem"><a href="" . $config['http_home_url'] . "tags/" property="item" typeof="WebPage"><span property="name">" . $lang['tag_cloud'] . "</span></a><meta property="position" content="2"></li> {$config['speedbar_separator']} <li property="itemListElement" typeof="ListItem"><span property="name">" . $tag . "</span><meta property="position" content="3"></li>";
else $s_navigation .= " {$config['speedbar_separator']} <li property="itemListElement" typeof="ListItem"><a href="?do=tags" property="item" typeof="WebPage"><span property="name">" . $lang['tag_cloud'] . "</span></a><meta property="position" content="2"></li> {$config['speedbar_separator']} <li property="itemListElement" typeof="ListItem"><span property="name">" . $tag . "</span><meta property="position" content="3"></li>";
} elseif ($nam_e)
{
if($dle_module == "showfull")
{
$cat_breadcrumb[1] = $cat_breadcrumb[1] + 1;
$s_navigation .= " {$config['speedbar_separator']} " . "<li property="itemListElement" typeof="ListItem"><span property="name">{$nam_e}</span><meta property="position" content="{$cat_breadcrumb[1]}"></li>";
}
else
{
$s_navigation .= " {$config['speedbar_separator']} " . "<li property="itemListElement" typeof="ListItem"><span property="name">{$nam_e}</span><meta property="position" content="2"></li>";
}
}
if ($titl_e)
{
if(isset($cat_breadcrumb[1]) && !is_null($cat_breadcrumb[1]))
$cat_breadcrumb[1] = $cat_breadcrumb[1] + 1;
else
$cat_breadcrumb[1] = 3;
$s_navigation .= " {$config['speedbar_separator']} <li property="itemListElement" typeof="ListItem"><span property="name">{$titl_e}</span><meta property="position" content="{$cat_breadcrumb[1]}"></li>";
}
else {
if ( isset($_GET['cstart']) AND intval($_GET['cstart']) > 1 ){
$cat_breadcrumb[1]++;
$page_extra = " {$config['speedbar_separator']} <li property="itemListElement" typeof="ListItem"><span property="name">".$lang['news_site']." ".intval($_GET['cstart']) . "</span><meta property="position" content="{$cat_breadcrumb[1]}"></li>";
} else $page_extra = '';
$s_navigation .= $page_extra;
}
$tpl->load_template ( 'speedbar.tpl' );
$tpl->set ( '{speedbar}', '<ol vocab="http://schema.org/" typeof="BreadcrumbList">' . stripslashes ( $s_navigation ) . '</ol>' );
$tpl->compile ( 'speedbar' );
$tpl->clear ();
}
Buscamos el siguiente codigo:
function get_breadcrumbcategories($id, $separator="»") {
global $cat_info, $config, $PHP_SELF;
if( ! $id ) return;
$parent_id = $cat_info[$id]['parentid'];
if( $config['allow_alt_url'] ) $list = "<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="" . $config['http_home_url'] . get_url( $id ) . "/" itemprop="url"><span itemprop="title">{$cat_info[$id]['name']}</span></a></span>";
else $list = "<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="$PHP_SELF?do=cat&category={$cat_info[$id]['alt_name']}" itemprop="url"><span itemprop="title">{$cat_info[$id]['name']}</span></a></span>";
while ( $parent_id ) {
if( $config['allow_alt_url'] ) $list = "<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="" . $config['http_home_url'] . get_url( $parent_id ) . "/" itemprop="url"><span itemprop="title">{$cat_info[$parent_id]['name']}</span></a></span>" . " {$separator} " . $list;
else $list = "<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="$PHP_SELF?do=cat&category={$cat_info[$parent_id]['alt_name']}" itemprop="url"><span itemprop="title">{$cat_info[$parent_id]['name']}</span></a></span>" . " {$separator} " . $list;
$parent_id = $cat_info[$parent_id]['parentid'];
if($parent_id) {
if( $cat_info[$parent_id]['parentid'] == $cat_info[$parent_id]['id'] ) break;
}
}
return $list;
}
function get_breadcrumbcategories($id, $separator="»") {
global $cat_info, $config, $PHP_SELF, $dle_module;
if( ! $id ) return;
$parent_id = $cat_info[$id]['parentid'];
$first_id_p = $parent_id;
$i = 1;
while($parent_id)
{
$i++;
$parent_id = $cat_info[$parent_id]['parentid'];
if($parent_id)
if( $cat_info[$parent_id]['parentid'] == $cat_info[$parent_id]['id'] ) break;
}
$i += 1;
$parent_id = $first_id_p;
if($parent_id == 0)
{
$id_i = 2;
if($dle_module == "cat")
{
if( $config['allow_alt_url'] ) $list = "<li property="itemListElement" typeof="ListItem"><span property="name">{$cat_info[$id]['name']}</span><meta property="position" content="2"></li>";
else $list = "<li property="itemListElement" typeof="ListItem"><span itemprop="title">{$cat_info[$id]['name']}</span><meta property="position" content="2"></li>";
}
else
{
if( $config['allow_alt_url'] ) $list = "<li property="itemListElement" typeof="ListItem"><a href="" . $config['http_home_url'] . get_url( $id ) . "/" property="item" typeof="WebPage"><span property="name">{$cat_info[$id]['name']}</span></a><meta property="position" content="2"></li>";
else $list = "<li property="itemListElement" typeof="ListItem"><a href="$PHP_SELF?do=cat&category={$cat_info[$id]['alt_name']}" property="item" typeof="WebPage"><span property="name">{$cat_info[$id]['name']}</span></a><meta property="position" content="2"></li>";
}
}
else
{
$id_i = 3;
if($dle_module == "cat")
{
if( $config['allow_alt_url'] ) $list = "<li property="itemListElement" typeof="ListItem"><span property="name">{$cat_info[$id]['name']}</span><meta property="position" content="{$i}"></li>";
else $list = "<li property="itemListElement" typeof="ListItem"><span itemprop="title">{$cat_info[$id]['name']}</span><meta property="position" content="{$i}"></li>";
}
else
{
if( $config['allow_alt_url'] ) $list = "<li property="itemListElement" typeof="ListItem"><a href="" . $config['http_home_url'] . get_url( $id ) . "/" property="item" typeof="WebPage"><span property="name">{$cat_info[$id]['name']}</span></a><meta property="position" content="3"></li>";
else $list = "<li property="itemListElement" typeof="ListItem"><a href="$PHP_SELF?do=cat&category={$cat_info[$id]['alt_name']}" property="item" typeof="WebPage"><span property="name">{$cat_info[$id]['name']}</span></a><meta property="position" content="3"></li>";
}
}
while ( $parent_id ) {
$i--;
if($dle_module != "cat")
{
if( $config['allow_alt_url'] ) $list = "<li property="itemListElement" typeof="ListItem"><a href="" . $config['http_home_url'] . get_url( $parent_id ) . "/" property="item" typeof="WebPage"><span property="name">{$cat_info[$parent_id]['name']}</span></a><meta property="position" content="{$i}"></li>" . " {$separator} " . $list;
else $list = "<li property="itemListElement" typeof="ListItem"><a href="$PHP_SELF?do=cat&category={$cat_info[$parent_id]['alt_name']}" property="item" typeof="WebPage"><span property="name">{$cat_info[$parent_id]['name']}</span></a><meta property="position" content="{$i}"></li>" . " {$separator} " . $list;
}
else
{
if($id != $cat_info[$parent_id]['id'])
$list = "<li property="itemListElement" typeof="ListItem"><a property="item" typeof="WebPage" href="" . $config['http_home_url'] . get_url( $parent_id ) . ""><span property="name">{$cat_info[$parent_id]['name']}</span></a><meta property="position" content="{$i}"></li>" . " {$separator} " . $list;
else
$list = "<li property="itemListElement" typeof="ListItem"><span property="name">{$cat_info[$parent_id]['name']}</span><meta property="position" content="{$i}"></li>" . " {$separator} " . $list;
}
$parent_id = $cat_info[$parent_id]['parentid'];
if($parent_id) {
if( $cat_info[$parent_id]['parentid'] == $cat_info[$parent_id]['id'] ) break;
}
}
return $list . "|" . $id_i;
}
En los estilos puedes agregar:
ol[typeof=BreadcrumbList]
{
display:inline-block;
list-style:none!important;
}
ol[typeof=BreadcrumbList] > li
{
display:inline-block;
}
Comentarios