Página 1 de 1

Codigo Javascript que sólo funcione en los temas

Publicado: 29 Mar 2013, 08:32
por TMEricsson
Hola quisiera agregar este codigo javascript pero que solo funcione en los temas es que no se en donde ponerlo ojala y puedan ayudarme; mil gracias!! :)

Código: Seleccionar todo

    $(function() {
      var c = "", a, d = 0, b = 0;
      $("div.post").each(function() {
        var e = $(".postprofile dt", this).text();
        e != c ? (d++, b++, a = $(this), b % 2 != d % 2 && a.toggleClass("row1 row2"), c = e) : (b++, $(a).find("div.signature_div").remove(), $("div.postbody", a).append($("div.postbody", this).attr("class", "doublepost").attr("id", $(this).attr("id").replace(/^p([0-9]+)$/, "$1"))), $(this).remove())
      });
      var f = location.hash;
      location.hash = "";
      location.hash = f
    });

Re: Codigo Javascript que sólo funcione en los temas

Publicado: 29 Mar 2013, 17:18
por leviatan21
Eso que tu pides es posible hacerlo, pero te comento dos cosas antes de decirte como lograrlo:
1) Ese código no funcionará sin la librería Jquery
2) Ese código funcionará a medias en Prosilver, ya que varias de los cambios están erróneos :
las clases "row1 row2" no son parte de Prosilver
No hay ningún div con la clase "div.signature_div"
y finalmente tampoco existe la clase "doublepost"

Re: Codigo Javascript que sólo funcione en los temas

Publicado: 29 Mar 2013, 19:30
por TMEricsson
La clase doublopost ya la tengo agregada en el css este codigo:

Código: Seleccionar todo

    .doublepost { border-top: 1px solid #888888 }
Entonces cuales serian los pasos

Re: Codigo Javascript que sólo funcione en los temas

Publicado: 29 Mar 2013, 19:47
por leviatan21
Corregido todos los "errores" este es el código y los pasos a seguir :

Abrir:

Código: Seleccionar todo

raíz/styles/prosilver/template/overall_header.html
Buscar:

Código: Seleccionar todo

</head>
Antes, agregar:

Código: Seleccionar todo

<!-- IF S_VIEWTOPIC -->
<script type="text/javascript" src="URL_DE_LA_LIBRERIA_JQUERY"></script>
<script type="text/javascript">
// <![CDATA[
$(document).ready(function() {
	var c = "", a, d = 0, b = 0;
	$("div.post").each(function() {
		var e = $(".postprofile dt", this).text();
		e != c ? (d++, b++, a = $(this), b % 2 != d % 2 && a.toggleClass("bg2 bg1"), c = e) : (b++, $(a).find("div.signature").remove(), $("div.postbody", a).append($("div.postbody", this).attr("class", "doublepost").attr("id", $(this).attr("id").replace(/^p([0-9]+)$/, "$1"))), $(this).remove())
	});
//	var f = location.hash;
//	location.hash = "";
//	location.hash = f
});
// ]]>
</script>
<!-- ENDIF -->
Recuerda reemplazar URL_DE_LA_LIBRERIA_JQUERY por la ruta exacta a la librería jquery en tu dominio.

Guardar los cambios y desde el ACP refrescar las plantillas para el estilo prosilver

Re: Codigo Javascript que sólo funcione en los temas

Publicado: 29 Mar 2013, 21:38
por TMEricsson
Perfecto amigo ya quedo, pero tuve que poner ahi en donde me dices URL_DE_LA_LIBRERIA_JQUERY puse esta http://code.jquery.com/jquery-1.9.1.min.js no se si te referias a eso porque no se cual es la ruta exacta de la libreria en mi dominio.

Bueno te digo la funcion que hise con esos cambios y que me ayudaste es para poner los doble post en uno solo osea juntarlos.
Funciona perfecto solo ese unico detalle de arriba que no se como podria subir la libreria a mi dominio o si ya esta en donde encontrarla.

Por otro lado quise hacer un .js con con el codigo que utilize arriba pero no logre hacerlo funcionar hise esto abri el bloc de notas pegue el codigo de abajo.

Código: Seleccionar todo

    $(function() {
      var c = "", a, d = 0, b = 0;
      $("div.post").each(function() {
        var e = $(".postprofile dt", this).text();
        e != c ? (d++, b++, a = $(this), b % 2 != d % 2 && a.toggleClass("row1 row2"), c = e) : (b++, $(a).find("div.signature_div").remove(), $("div.postbody", a).append($("div.postbody", this).attr("class", "doublepost").attr("id", $(this).attr("id").replace(/^p([0-9]+)$/, "$1"))), $(this).remove())
      });
      var f = location.hash;
      location.hash = "";
      location.hash = f
    });
Para guardarlo lo llame doublepost.js en tipo: todos los archivos y en codigicación UTF-8. Despues lo subi e intente ponerlo asi

Código: Seleccionar todo

<!-- IF S_VIEWTOPIC -->
<script type="text/javascript" src="URL_DE_LA_LIBRERIA_JQUERY"></script>
<script type="text/javascript" src="doublepost.js"></script>
<!-- ENDIF -->
Y no funciono u_u

Re: Codigo Javascript que sólo funcione en los temas

Publicado: 29 Mar 2013, 22:22
por leviatan21
TMEricsson escribió:Bueno te digo la funcion que hise con esos cambios y que me ayudaste es para poner los doble post en uno solo osea juntarlos.
Funciona perfecto solo ese unico detalle de arriba que no se como podria subir la libreria a mi dominio o si ya esta en donde encontrarla.
Se exactamente cual es su finalidad, por eso fué que te indique que no funcionaría ya que estoy mas que familiarizado con Jquery su uso y el código de phpbb.
Ambos los conozco a la perfección 8-)
TMEricsson escribió:pero tuve que poner ahi en donde me dices URL_DE_LA_LIBRERIA_JQUERY puse esta http://code.jquery.com/jquery-1.9.1.min.js no se si te referias a eso porque no se cual es la ruta exacta de la libreria en mi dominio.
eso está bien.
pero si quieres que la librería Jquery esté en tu dominio, debes descargarla y subirla a tu servidor.
TMEricsson escribió:Para guardarlo lo llame doublepost.js en tipo: todos los archivos y en codigicación UTF-8. Despues lo subi e intente ponerlo asi

Código: Seleccionar todo

<!-- IF S_VIEWTOPIC -->
<script type="text/javascript" src="URL_DE_LA_LIBRERIA_JQUERY"></script>
<script type="text/javascript" src="doublepost.js"></script>
<!-- ENDIF -->
Y no funciono
Todo dependerá en que carpeta se encuentre ese archivo, el cual no nos indicas en donde lo has colocado.

Una solución sería que tanto la librería de Jquery como tu archivo se encuentren juntos a modo de ejemplo sería algo así:
crear una nueva carpeta llamada js en rais/styles de manera que quede :

Código: Seleccionar todo

raiz/styles/js
y dentro de ella subir la librería jquery y tu archivo doublepost.js y el cambio en el overall_header.html sería asi :

Código: Seleccionar todo

<!-- IF S_VIEWTOPIC -->
<script type="text/javascript" src="{ROOT_PATH}styles/js/jquery-1.9.1.min.j"></script>
<script type="text/javascript" src="{ROOT_PATH}styles/js/doublepost.j"></script>
<!-- ENDIF -->

Re: Codigo Javascript que sólo funcione en los temas

Publicado: 30 Mar 2013, 02:45
por TMEricsson
Download the compressed, production jQuery 1.9.1

Download the uncompressed, development jQuery 1.9.1

Tu que ya sabes mas de jquery; cual es mejor amigo? es que no se cual descargar.

Re: Codigo Javascript que sólo funcione en los temas

Publicado: 30 Mar 2013, 04:42
por leviatan21
Si no sabes de JQuery y no intentaras modificarlo, te recomiendo que descargues la versión comprimida ( compressed ) que será mas rápida para que el navegador la cargue

Re: Codigo Javascript que sólo funcione en los temas

Publicado: 30 Mar 2013, 10:04
por TMEricsson
Ya estuvo amigo, cree una nueva carpeta js en styles y ahi puse los dos archivos y... funciona a la perfección 8-) sos un grande en poder irme orientando y ayudando.

Código: Seleccionar todo

<!-- IF S_VIEWTOPIC -->
<script type="text/javascript" src="{ROOT_PATH}styles/js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="{ROOT_PATH}styles/js/doublepost.js"></script>
<!-- ENDIF -->
Mil gracias una vez más.

Una cosa más si lo quisiera en todas lás paginas como seria?

Re: Codigo Javascript que sólo funcione en los temas

Publicado: 30 Mar 2013, 15:59
por leviatan21
TMEricsson escribió:Una cosa más si lo quisiera en todas lás paginas como seria?
No se por qye lo quieres en todas las páginas si lo que hace es justar mensajes continuos de un solo usuario y eso sucede viendo temas ??

Si lo que quieres es colocar mas código JS y que funcione en todos lados haces lo mismo sin el código que lo restringe :

Código: Seleccionar todo

<!-- IF S_VIEWTOPIC -->
y

Código: Seleccionar todo

<!-- ENDIF -->

Re: Codigo Javascript que sólo funcione en los temas

Publicado: 30 Mar 2013, 18:08
por TMEricsson
Si a eso me referia no hablaba de poner la funcion de la que hemos tratado si no otra jeje muchas gracias mi amigo. Queda solucionado!