En este Tutoriales En Linea les traemos la manera de personalizar la nube de etiquetas de tu sitio web de DataLife Engine (DLE) - CMS. Decidí tratar de hacer lindos los enlaces en la nube de etiquetas y encontré varios problemas con la configuración de la plantilla.  2d38x



En particular, estamos hablando de la completa falta de oportunidad para personalizar su plantilla. Además, estas "comas" obligatorias también están fuera de lugar, y para cambiar o eliminar algo, solo necesita realizar cambios en los archivos php. Esa es la solución a estos problemas, y lo haremos. Y como bonificación, les daré el código y los estilos de las etiquetas como en la imagen. (esta personalizacion de la nube de etiquetas esta comprobado en la versión de DLE 17.1)


Instalación 485b5e


Abra el archivo: engine/modules/show.full.php


Encuentre la línea:

$tpl->set( '{tags}', implode( $config['tags_separator'], $tags ) );
$tpl->set( '{tags}', implode( " ", $tags ) );

Después de eso, pega:

if(preg_match("#{tags=['\"]([^'\"]*)['\"]}#i",$tpl->copy_template,$sep)) $tpl->set($sep[0],implode($sep[1],$tags));

tags=['"]([^'\"]*)['\"] = Dentro de '" va una Barra inversa antes de las dobles comillas.

OJO ESTO SE REPITE PATA TODOS LOS CASOS


Ahora la página de nube de etiquetas en sí: 


Abra el archivo engine/modules/tagscloud.php


Encuentre la línea:

else $sql_select = "SELECT tag, COUNT(*) AS count FROM " . PREFIX . "_tags GROUP BY tag";

Después de eso, pega:

$tagsort = 'tag';
        if(preg_match("#\\[list([^\]]*)\\](.+?)\\[/list\\]#is",$tpl->copy_template,$tpl_list)){
            $limit = false;
            $sep = '';
            if(preg_match("#limit=['\"](\d+)['\"]#i",$tpl_list[1],$lm)){
                $lm = intval($lm[1]);
                if($lm>0){
                    $limit = true;
                    $sql_select = "SELECT tag, COUNT(*) AS count FROM " . PREFIX . "_tags GROUP BY tag ORDER BY count DESC LIMIT 0,$lm";
                }
            }
            if(preg_match("#sep=['\"]([^'\"]*)['\"]#i",$tpl_list[1],$sp)) $sep = $sp[1];
            if(preg_match("#sort=['\"](count|tag)['\"]#i",$tpl_list[1],$tgsr)) $tagsort = $tgsr[1];
        }
        if(!$limit) $sql_select = "SELECT tag, COUNT(*) AS count FROM " . PREFIX . "_tags GROUP BY tag ORDER BY count DESC";

Luego vuelve a buscar la línea:

usort ($list, "compare_tags");

Antes de eso pegar (2):

if($tagsort=='tag')

Encuentre la línea:

if ($config['allow_alt_url'] )
                    $tags[] = "<span class=\"{$value['size']}\"><a href=\"".$config['http_home_url']."tags/".urlencode($value['tag'])."/\" title=\"".$lang['tags_count']." ".$value['count']."\">".$value['tag']."</a></span>";
                else
                    $tags[] = "<span class=\"{$value['size']}\"><a href=\"$PHP_SELF?do=tags&amp;tag=".urlencode($value['tag'])."\" title=\"".$lang['tags_count']." ".$value['count']."\">".$value['tag']."</a></span>";

O algo así parecido varia dependiendo de la versión que utilices, y tener cuidado con el cierre: } en el 3.

Reemplace con:

if($tpl_list[2]){
                    if ($config['allow_alt_url'] ) $link = $config['http_home_url']."tags/".urlencode($value['tag'])."/";
                    else $link = $PHP_SELF."?do=tags&amp;tag=".urlencode($value['tag']);
                    $temp = $tpl_list[2];
                    $temp = str_ireplace("{link}",$link,$temp);
                    $temp = str_ireplace("{tag}",$value['tag'],$temp);
                    $temp = str_ireplace("{count}",$value['count'],$temp);
                    $tags[] = $temp;
                }else{
                    if ($config['allow_alt_url'] )
                        $tags[] = "<a href=\"".$config['http_home_url']."tags/".urlencode($value['tag'])."/\" class=\"{$value['size']}\" title=\"".$lang['tags_count']." ".$value['count']."\">".$value['tag']."</a>";
                    else
                        $tags[] = "<a href=\"$PHP_SELF?do=tags&amp;tag=".urlencode($value['tag'])."\" class=\"{$value['size']}\" title=\"".$lang['tags_count']." ".$value['count']."\">".$value['tag']."</a>";
                }

Encuentra la cadena:


$tags = implode(", ", $tags);

o

$tags = implode($tags);

varia dependiendo de la versión que utilices.


Ante de eso pegar:

if($tpl_list[0]) $tpl->copy_template = str_replace($tpl_list[0],implode($sep,$tags),$tpl->copy_template);

Ahora, en la plantilla tagscloud.tpl , puede usar la estructura en lugar de solo la etiqueta {tags}:

[list limit="100" sep="" sort="count"]<a href="{link}"><span class="tagname">{tag}</span><span class="tagcount">{count}</span></a>

Donde:

limit: el número de etiquetas.
sep: entre comillas se especifica el delimitador entre las etiquetas, no se puede especificar la etiqueta.
sort: etiqueta o conteo, respectivamente clasificación por nombre de etiqueta o por número.
Todos los parámetros anteriores son opcionales. Puedes escribir simplemente:
[list]<a href="{link}">{tag} ({count})</a>
{link}: la dirección de la página de etiquetas.
{tag}: el nombre de la etiqueta.
{count}: la cantidad de noticias con la etiqueta.

Bonificación: 3c115z


En la plantilla tagscloud.tpl, use el siguiente código:


<div class="numbertag">
[list limit="100" sort="count"]<a href="{link}"><span class="tagname">{tag}</span><span class="tagcount">{count}</span></a>
</div>

En la plantilla fullstory.tpl, (o donde tengas ubicado los tag), el código es:


<div class="finetags">{tags=''}</div>

CSS 2y3h55


.numbertag a,
.finetags a{
    box-sizing: border-box;
    display: inline-block;
    height: 27px;
    border: 1px solid #d4d4d4;
    border-bottom-color: #c7c7c7;
    border-radius: 3px 0 0 3px;
    box-shadow: 0 1px 3px rgba(0,0,0,.3);
    background: #f8f9fa url(https://tutorialesenlinea.futbolgratis.org/templates/Tutoriales_En_Linea_es/images/tag_5Tutoriales_En_Linea.webp) repeat-x 0 0;
    color: #222;
    font: bold 12px/25px 'Trebuchet MS',Tahoma,sans-serif;
    text-decoration: none;
    padding: 0;
    position: relative;
    margin:0 15px 11px 0;
}
.finetags a{
    padding: 0 15px;
}
.numbertag a:hover,
.finetags a:hover{
    background-image: url(https://tutorialesenlinea.futbolgratis.org/templates/Tutoriales_En_Linea_es/images/tag_1Tutoriales_En_Linea.webp);
}

.numbertag a>span{
    display: inline-block;
    position: relative;
}
.numbertag .tagname{
    padding: 0 15px;
}
.numbertag .tagcount{
    padding: 0 8px;
    font: bold 11px/27px Tahoma;
    color: #fff;
    background: #0095e9 url(https://tutorialesenlinea.futbolgratis.org/templates/Tutoriales_En_Linea_es/images/tag_2Tutoriales_En_Linea.webp) repeat-x 0 0;
}

.tagcount:after,
.tagcount:before,
.finetags a:after,
.finetags a:before{
    content: "";
    display: block;
    left: 100%;
    top: 0;
    position: absolute;
    width: 5px;
    height: 27px;
}
.finetags a:after{
    margin-left: -4px;
}
.finetags a:before{
    margin-left: 1px;
}
.tagcount:before{
    left: -5px;
}
.tagcount:before,
.finetags a:after{
    background: url(https://tutorialesenlinea.futbolgratis.org/templates/Tutoriales_En_Linea_es/images/tag_3Tutoriales_En_Linea.webp) no-repeat;
}
.tagcount:after,
.finetags a:before{
    width: 3px;
    background: url(https://tutorialesenlinea.futbolgratis.org/templates/Tutoriales_En_Linea_es/images/tag_4Tutoriales_En_Linea.webp) no-repeat;
}

Un ejemplo del trabajo se puede encontrar en: tutorialesenlinea.futbolgratis.org/tags/


Opcional 595057


Ahora en la plantilla fullstory.tpl, puede mostrar etiquetas con una etiqueta:


{tags=""}

Donde entre comillas se especifica un símbolo o separador de texto entre las etiquetas. A continuación, le mostramos cómo puede repetir el resultado de la etiqueta estándar:


{tags} 
{tags=", "}

Ver archivo en Google Drive de tagscloud.php

Compartir

Mi nombre es Alexander fundador y CEO, y me gusta llamarme un Geek. Amo la informática, tecnología y todo lo que está relacionado con ella. Inicié este sitio con la intención de compartir conocimientos como cursos en línea, tutoriales y videotutoriales. Estoy muy entusiasmado con la información que he descubierto y compartido hasta el momento. La verdad es que lo he hecho con el mayor de los gustos. Así es, soy un Geek con una visión para compartir conocimiento. Leer mas...