Jump to content

(solucionado) Insertar HTML en una págína CMS sin que altere el estilo ¿cómo?


rastreator

Recommended Posts

Hola,

 

Recientemente me he visto en la necesidad de cambiar un CMS, que originalmente hice a base de imágenes, pero veo, gracias a la ayuda de este foro, que no ha sido buena idea, pues no se posiciona bien esa página, que es esta: http://www.nosolopixel.com/content/22-chapas-personalizadas

 

Entonces, he diseñado la misma página en HTML, y de momento he conseguido, gracias a este tutorial, insertar esa página en la tienda.

 

Queda así: http://www.nosolopixel.com/chapas-personalizadas.php

 

El problema de esta solución, es que me quedo sin las etiquetas de título, descripición y demás, porque coge las generales y no puedo insertarlas en el HTML porque sería duplicarlas. Por lo que sería una mala solución de cara al posicionamiento. Además tendría que añadirla manualmente al sitemap.

 

Por lo que he vuelto a pensar en insertar ese HTML dentro de una página CMS, pero si lo hago (creando la página CMS y usando el editor de HTML, pegando el contenido del archivo HTML), se estropean los estilos, todo cambia de sitio y de color, y es un desastre.

 

Por lo que pido ayuda, y por ello pregunto:

 

¿Cómo puedo meter un HTML dentro de una página CMS sin que se altere el aspecto y se descoloque todo? 

 

O, como alternativa, ¿Cómo puedo añadir el título y meta etiquetas a una página que he creado siguiendo este método?

 

GRACIAS MIL

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

Gracias Statictic...

 

El problema es que cada cosa en ese html tiene su estilo (cada letra va en un tamaño, negrita o no, alineado, etc), y no sé como crearlo en la hoja css

 

Tampoco sé cómo referir a otra clase diferente un CMS, no encuentro dónde se especifica (creo que los cms van todos referidos a una clase) y si abro el editor CSS que viene con el editor de página CMS salen todos los campos sin definir...

 

Simplemente hice el html en un editor (en libreoffice) y lo fui viendo con el navegador hasta que quedó como quería.

 

¿No puedo crear un estilo en la hoja css que "resetee" todo el estilo para esa pagina CMS y le haga caso a los estilos "inline"? O en su defecto, ¿cómo creo una nueva clase para esa página CMS y cómo le indico a la página que coja el estilo de ahí?

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

Pues se conoce que es demasiado complicado para mis conocimientos.

 

He probado a poner esa línea del cms.tpl así, y añadir estilos vacíos en el global.css del tema... Supongo que tendría que poner los estilos tal y como los he diseñado para esa página, pero eso se me hace muy cuesta arriba.

 

No entiendo por qué no se puede sencillamente respetar el estilo "inline", si es que al hacer cualquier página CMS con el propio editor de prestashop, si haces cualquier cambio de color de una palabra, o una negrita, esos estilos tampoco se cambian en otro sitio que no sea el propio html de esa página....

 

En fin, tendré que pensar otra solución que no me implique horas de aprendizaje del funcionamiento del CSS y HTML...

 

En todo caso te agradezco mucho statictic tu ayuda.

 

Pero creo que voy a optar bien por hacer la nueva página php (que ya la tengo hecha, en ese caso sólo necesito saber cómo añadir el título y meta tags, tal y como los añade prestashop en sus páginas CMS) o bien por tratar de conseguir (no sé cómo) que haciendo un CMS se respeten los estilos "inline" de esa página.

Link to comment
Share on other sites

Hola, el php ya lo he creado antes de iniciar el hilo, con el tutorial que enlazo.

 

Al final me di cuenta de que en el backoffice, en "SEO Y URL" se puede definir titulo y metaetiquetas para cualquier php, y es lo que he hecho. Sería la solución perfecta... Si funcionara. 

 

No sé por qué no funciona.

 

www.nosolopixel.com/chapas-personalizadas

 

Debería incluir el título "Chapas personalizadas", una descripción, meta etiquetas... Y no están.

 

He incluido esa página en "SEO y URL", por si acaso he regenerado el .htacces y todo esto forzando compilación y con la memcache desactivada... Pero no me hace caso.

Link to comment
Share on other sites

Pues es lo único que me queda... ¿Es muy complicado crear un controlador? ¿Puedo reutilizar alguno de los que hay en la carpeta controllers cambiando algo?

 

comprendo que pueda ser más simple hacerlo bien creando los estilos css... Pero yo no lo se hacer y se me hace muy cuesta arriba rehacer la página por ese método y anadir los estilos en el global.css (que supongo que sería ahí)...

 

si con un copia-pega modificando alguna linea se pudiera solucionar, sería estupendo....

Link to comment
Share on other sites

Se me ha ocurrido una cosa, depende crearte un fichero php como te has creado, create uno tpl, en el directorio:

 

/themes/plantilla/
llamalo por ejemplo:

 

ficheroprueba.tpl
Mete en ese tpl, el contenido que quieres mostrar.

 

Y luego, en el fichero:

 

/themes/plantilla/cms.tpl
Busca esto:

 

{$cms->content}
 y lo cambias por:

 

{if $cms->id=='X'} {include file="$tpl_dir./ficheroprueba.tpl"} {else} {$cms->content} {/if}
Te creas una pagina en blanco en Preferencias -> CMS, rellenas los metas y luego donde te he dicho 'X' colocas el id del cms Edited by nadie (see edit history)
Link to comment
Share on other sites


Estaria en la misma situación... si se hace todo esto para mejorar el seo, el eliminar los estilos inline es algo que hay que hacer. Si no es lo mismo si lo deja tal cual.
 
Un saludo
Si, lo se, solo fue una sugerencia, ya que el al pegar el codigo con los inline, en el editor se borraban, entonces lo que comente es un apaño para al menos poder colocar los metas desde el panel, pero vamos, solo fue una sugerencia, nada mas.
 
Lo que tu propones es mucho mejor y mas optimo.
 
Lo que comente yo solo fue una sugerencia fastbad (mala) para salir del paso.
Link to comment
Share on other sites

Ey muchas gracias por ambas soluciones, me comprometo a ponerme con ello sólo porque os habéis ofrecido, voy a probar primero lo que dices, statictic, pero dime, para borrar los estilos inline, tengo que pegar tal cual el codigo y el cms los borra, o es mejor que deje todo el texto plano dentro de las celdas?

otro problema que veo es que las tablas (hay una tabla con bordes ocultos) no parecen ser igual de compatibles al pegar en el cms.. 

 

Alomejor en lugar de tabla debo hacer que las posiciones de las cosas vayan también en el CSS ¿me equivoco? Pero con eso tropiezo con el mismo problema (no sé hacerlo de esa manera y sí con tablas).

 

Por tanto, dime cómo prefieres que prepare la página, sólo con texto plano e imágenes, sin tabla, o con la tabla pero también texto plano (que la descoloca toda el cabrón del CMS, ni siquera eso puede dejar igual)

 

Sobre la solución de nadie, decirte que la página está en un tpl dentro del theme, y el php es el que llama a ese tpl, por lo que entiendo que simplemente tendría que hacer un cms en blanco con los metas que quiero, introducir esa línea en cms.tpl para hacer una "excepción" y que incluya mi archivo tpl al mostrar ese CMS, ¿sería eso? Lo veo sencillo, si no consigo hacerme con la solución "buena", optaré por esta.
 

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

¿Cómo lo llevas?... si necesitas algo estoy por aquí unas horitas.

 

Un saludo

 

¡Estupendo!

 

Necesito saber cómo quieres que prepare la página html, si hago todo con texto plano, y cómo hacemos para las posiciones de las cosas, ya que ahora están en una tabla, pero al meterlo en el CMS se descoloca (no debe ser igual de compatible el uso que hago de combinación de celdas).

 

El objetivo sería que quedara así.

Sólo me queda hacer el archivo sin estilos inline para que me indiques cómo los ponemos por css y en qué archivo.

 

Por otra parte, por probar antes de que me dieras una respuesta, he probado la solución de nadie, y funciona a medias. Ya que sí que coge los metas, y las cosas no se descolocan, pero los estilos aparecen mal.

 

Es decir, tiene que quedar como te enseñé así, pero queda así. (y el archivo fuente es exactamente el mismo, es este)

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

Hecho.

 

Aquí está el CMS con el html pegado sin los estilos. Esta vez ha cambiado sobre todo el orden de las cosas en la primera tabla. Este es el html original que pegué en ese CMS.

 

Y en mi cms.tpl, he cambiado la línea 42 por esta:

<div class="rte{if $content_only} content_only{/if}{if isset($cms) && $cms->id == 32} custom-cms{/if}">

Y aquí está el archivo de cómo tiene que quedar (las dos tablas, lo otro no importa ya lo pego luego)

 

GRACIAS MIL

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

Primero, nuevamente darte las gracias por el pedazo trabajo que has hecho desinteresadamente. No me lo puedo creer. 

 

Segundo, me parece estupenda la idea que has tenido con la segunda tabla. La dejaré con los iconos en horizontal.

 

Tercero, algo se me escapa, pues creo que no coge la información del css. Edito: Ya va apareciendo

 

A ver qué estoy haciendo mal.

 

Paso a paso hago:

 

1) forzar compilación y desactivar caché (modo lentorro y odioso ON)

 

2) Introduje esa línea que te comenté en mi cms.tpl, en sustitución de la línea 42 original.

<div class="rte{if $content_only} content_only{/if}{if isset($cms) && $cms->id == 32} custom-cms{/if}">

EDITO: Parece que había un error, comparándolo con el original, y lo he puesto así y ya funciona:

<div class="rte cms{if $content_only} content_only{/if}{if isset($cms) && $cms->id == 32} custom-cms{/if}">

3) Pegué el html que me pasaste en el CMS con ID 32.

 

4) Pegué el código css que me pasaste (el "custom-cms") al final del archivo global.css del template

 

5) El resultado es este. Algo pasa que no coge todo el css (o nada). Sí que cambian los tamaños según tengan las etiquetas h1, h2, h3 ó h4 que has puesto (que por cierto, son muy útiles para personas con discapacidad visual, según me comentó un amigo que tiene tal), pero me da que ese cambio es según el estilo por defecto...

 

Creo que finalmente sí que coge el estilo.

 

Aunque me queda la duda de si la primera tabla debe quedar así o hay algún problema o es algo que tengo que cambiar, para que quede la imagen que pone "chapas personalizadas" a la derecha de los pasos....

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

Buenas rastreator, no hay de qué. Los estilos mejor ponerlos en el cms.css de la plantilla (en el caso de que lo tengas claro) y añadele esto tambien que se me paso:

.custom-cms table, 
.custom-cms table tr, 
.custom-cms table td {
    border: none;
}

Y busca el line-height del .custom-cms table.top-table-left tr.step-tr td y ponlo a 1.

 

Un saludo

 

Hice estos cambios, y las tablas ya no tienen borde ¡Perfecto! De momento está así

 

Sólo me queda solucionar lo de que la imagen de la primera tabla salga a la derecha

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

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