Jump to content

[Solucionado] Problema al mostrar etiquetas html con strip_tags


pasteles1986

Recommended Posts

Buenas,

Cree unas categorías, las que puse en el menu principal de la web, y para darle un toque personal a los elementos del menu, añadie en el nombre de la catagoarias  algunas etiquetas html.  En la BD las categorias tienen los nombres con las etiquetas,  por lo que cuando en el breadcrumb estoy dentro de una categoria me sale la etiqueta html junto con el nombre. Una imagen vale más que mil palabras

 

HT9g0ay.png

 

He estado tocando el el breadcrumb.tpl de mi plantilla y para que no me muestre las etiquetas html, he utilizado la  función strip_tags, que en teoria las quita. Digo en teoría  porque no consigo que las quite. He mirado la documentación de smartly y parece bastante sencillo (http://www.smarty.net/docsv2/es/language.modifier.strip.tags.tpl).

 

He aqui el código que tengo para purgar los elementos hml, el cuál no consigo que los limpie

{if isset($smarty.capture.path)}{assign var='path' value=$smarty.capture.path}{/if}
<div class="breadcrumb">
<div class="breadcrumb_inset">
	<a class="breadcrumb-home" href="{$base_dir}" title="{l s='Return to Home'}" rel="tooltip"><i class="icon-home"></i></a>
	{if isset($path) AND $path}
		<span class="navigation-pipe" {if isset($category) && isset($category->id_category) && $category->id_category == 1}style="display:none;"{/if}>{$navigationPipe|escape:html:'UTF-8'}</span>
		{if !$path|strpos:'span'}
			<span class="navigation_page">{$path|strip_tags}</span>
		{else}
			{$path|strip_tags}
		{/if}
	{/if}
</div>
</div>
Link to comment
Share on other sites

Buenas,

Cree unas categorías, las que puse en el menu principal de la web, y para darle un toque personal a los elementos del menu, añadie en el nombre de la catagoarias  algunas etiquetas html.  En la BD las categorias tienen los nombres con las etiquetas,  por lo que cuando en el breadcrumb estoy dentro de una categoria me sale la etiqueta html junto con el nombre. Una imagen vale más que mil palabras

 

HT9g0ay.png

 

He estado tocando el el breadcrumb.tpl de mi plantilla y para que no me muestre las etiquetas html, he utilizado la  función strip_tags, que en teoria las quita. Digo en teoría  porque no consigo que las quite. He mirado la documentación de smartly y parece bastante sencillo (http://www.smarty.net/docsv2/es/language.modifier.strip.tags.tpl).

 

He aqui el código que tengo para purgar los elementos hml, el cuál no consigo que los limpie

{if isset($smarty.capture.path)}{assign var='path' value=$smarty.capture.path}{/if}
<div class="breadcrumb">
<div class="breadcrumb_inset">
	<a class="breadcrumb-home" href="{$base_dir}" title="{l s='Return to Home'}" rel="tooltip"><i class="icon-home"></i></a>
	{if isset($path) AND $path}
		<span class="navigation-pipe" {if isset($category) && isset($category->id_category) && $category->id_category == 1}style="display:none;"{/if}>{$navigationPipe|escape:html:'UTF-8'}</span>
		{if !$path|strpos:'span'}
			<span class="navigation_page">{$path|strip_tags}</span>
		{else}
			{$path|strip_tags}
		{/if}
	{/if}
</div>
</div>

 

 

 

Hola,

 

Yo soy un total novato, en la plantilla por defecto lo tengo asi:

<!-- Breadcrumb -->
{if isset($smarty.capture.path)}{assign var='path' value=$smarty.capture.path}{/if}
<div class="breadcrumb">
        <a href="{$base_dir}" title="{l s='Return to Home'}"><img src="{$img_dir}icon/home.gif" height="26" width="26" alt="{l s='Home'}" /></a>
        {if isset($path) AND $path}
                <span class="navigation-pipe" {if isset($category) && isset($category->id_category) && $category->id_category == 1}style="display:none;"{/if}>{$navigationPipe|escape:html:'UTF-8'}</span>
                {if !$path|strpos:'span'}
                        <span class="navigation_page">{$path}</span>
                {else}
                        {$path}
                {/if}
        {/if}
</div>
<!-- /Breadcrumb -->
Perdon, edito mi mensaje, prueba dejarlo asi:

 

<!-- Breadcrumb -->
{if isset($smarty.capture.path)}{assign var='path' value=$smarty.capture.path}{/if}
<div class="breadcrumb">
        <a href="{$base_dir}" title="{l s='Return to Home'}"><img src="{$img_dir}icon/home.gif" height="26" width="26" alt="{l s='Home'}" /></a>
        {if isset($path) AND $path}
                <span class="navigation-pipe" {if isset($category) && isset($category->id_category) && $category->id_category == 1}style="display:none;"{/if}>{$navigationPipe|strip_tags:'UTF-8'}</span>
                {if !$path|strpos:'span'}
                        <span class="navigation_page">     {$path|strip_tags:'UTF-8'}</span>
                {else}
                        {$path|strip_tags:'UTF-8'}
                {/if}
        {/if}
</div>
<!-- /Breadcrumb -->
Edited by Feliz Garcia (see edit history)
Link to comment
Share on other sites

He modificado mi mensaje de arriba, dejandote una modificacion, que se me habia olvidado pegarla, te cito el mensaje;

 

 

 

Hola,

 

Yo soy un total novato, en la plantilla por defecto lo tengo asi:

<!-- Breadcrumb -->
{if isset($smarty.capture.path)}{assign var='path' value=$smarty.capture.path}{/if}
<div class="breadcrumb">
        <a href="{$base_dir}" title="{l s='Return to Home'}"><img src="{$img_dir}icon/home.gif" height="26" width="26" alt="{l s='Home'}" /></a>
        {if isset($path) AND $path}
                <span class="navigation-pipe" {if isset($category) && isset($category->id_category) && $category->id_category == 1}style="display:none;"{/if}>{$navigationPipe|escape:html:'UTF-8'}</span>
                {if !$path|strpos:'span'}
                        <span class="navigation_page">{$path}</span>
                {else}
                        {$path}
                {/if}
        {/if}
</div>
<!-- /Breadcrumb -->
Perdon, edito mi mensaje, prueba dejarlo asi:

 

<!-- Breadcrumb -->
{if isset($smarty.capture.path)}{assign var='path' value=$smarty.capture.path}{/if}
<div class="breadcrumb">
        <a href="{$base_dir}" title="{l s='Return to Home'}"><img src="{$img_dir}icon/home.gif" height="26" width="26" alt="{l s='Home'}" /></a>
        {if isset($path) AND $path}
                <span class="navigation-pipe" {if isset($category) && isset($category->id_category) && $category->id_category == 1}style="display:none;"{/if}>{$navigationPipe|strip_tags:'UTF-8'}</span>
                {if !$path|strpos:'span'}
                        <span class="navigation_page">     {$path|strip_tags:'UTF-8'}</span>
                {else}
                        {$path|strip_tags:'UTF-8'}
                {/if}
        {/if}
</div>
<!-- /Breadcrumb -->

 

 

De todos modos, como he dicho soy novato, muy novato, no se si funcionara.

 

Recuerda que tienes que forzar compilacion en la pestaña Parametros Avanzados -> Rendimiento.

Edited by Feliz Garcia (see edit history)
Link to comment
Share on other sites

La compilación la tengo forzada.

He añadido lo de UTF-8 y me sigue sin salir

 

Estoy empezando a dudar que sea este fichero... porque esto mismo lo he probado cuando se indica el número de productos de una categoría y me sale bien.

 

zp4eMAW.png

 

Vamos y básicamente para las categorías he puesto lo mismo.

{$category->name|strip_tags}

Pero es que deben de ser ese if... porque si lo elimino no me  muestra nada!

Edited by pasteles1986 (see edit history)
Link to comment
Share on other sites

Que raro, con strip_tag se tenia que corta y imprimir plenamente.....

 

¿Si vacias el fichero, te muestra o no el contenido, es que parece como si no fuera el fichero?

 

¿Has probado por si acaso:

 



escape:'htmlall':'UTF-8'



 

¿Algo asi:

 



{$category->name|escape:'htmlall':'UTF-8'}


 

?

Edited by Feliz Garcia (see edit history)
Link to comment
Share on other sites

Tambien podria ser que tuvieras que mirar
 
el fichero:
 

/classes/Tools.php

La funcion:
 

public static function getPath

Observo que dentro de esa funcion, aparece varias veces esto:
 

htmlentities($category['name'], ENT_NOQUOTES, 'UTF-8')

Y buscando en la documentacion de php, me sale esto: http://php.net/manual/es/function.htmlentities.php en referencia a lo de htmlentities no se si sirve de ayuda..

Edited by Feliz Garcia (see edit history)
Link to comment
Share on other sites

Gracias!! ya lo he conseguido.

He probado con 

{$path|escape:'htmlall'}

Pero lo que hace es convertirme los caracteres HTML

 

xMDnO7r.png

 

 

Y bueno he estado echando un ojo al archivo que me has comentado de Tools.php, y es aquí donde lo conseguido.  mas exactamente en  la línea :


$full_path .=(($n < $n_categories || $link_on_the_item) ? '<a href="'.Tools::safeOutput($context->link->getCategoryLink((int)$category['id_category'], $category['link_rewrite'])).'" title="'.htmlentities($category['name'], ENT_NOQUOTES, 'UTF-8').'">' : '').
htmlentities($category['name'], ENT_NOQUOTES, 'UTF-8').
(($n < $n_categories || $link_on_the_item) ? '</a>' : '').
(($n++ != $n_categories || !empty($path)) ? '<span class="navigation-pipe">'.$pipe.'</span>' : '');

 

 Que básicamente he sustituido el htmlentities por strip_tags.

$full_path .=(($n < $n_categories || $link_on_the_item) ? '<a href="'.Tools::safeOutput($context->link->getCategoryLink((int)$category['id_category'], $category['link_rewrite'])).'" title="'.  strip_tags($category['name']).'">' : '').
					strip_tags($category['name']).
					(($n < $n_categories || $link_on_the_item) ? '</a>' : '').
					(($n++ != $n_categories || !empty($path)) ? '<span class="navigation-pipe">'.$pipe.'</span>' : '');

Lo que no se es como has llegado tú hasta este archivo para saber que tenia que mirar por aquí porque  yo pensaba que era cosa del sistema de plantillas smartly ya que me desconcertaba esta línea.

{assign var='path' value=$smarty.capture.path}

Un saludo y gracias!

Link to comment
Share on other sites

Basicamente, lo que hice fue hacer una busqueda en google y me salio ese fichero.

 

Bueno, si esta solucionado, creo que te toca añadir la palabra solucionado al titulo del tema: http://www.prestashop.com/forums/topic/269515-solucionado-¿como-poner-la-palabra-solucionado-en-el-titulo-del-tema/

Edited by Feliz Garcia (see edit history)
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...