Autor Tema: [AYUDA] Problema con BBCode SPOILER  (Leído 2189 veces)

Desconectado Masato

  • PHPero Avanzado
  • ****
  • Mensajes: 480
  • Karma: 12
  • Sexo: Masculino
  • <?php echo "Solo quiero aprender php"; ?>
    • Ver Perfil
    • Masato Design!
[AYUDA] Problema con BBCode SPOILER
« en: 23 de Octubre de 2009, 07:18:49 am »
Hola, bueno, encontré un código JS de un SPOILER y lo modifique, todo bien, pero cuando le coloco una imagen para que se muestre oculta no me muestra el spoiler, osea, no lo toma :S

Acá el BBCode:

//[spoiler]
$texto eregi_replace("\\[spoiler\\]([^\\[]*)\\[/spoiler\\]", &#39;<input type="submit" onclick="capa(1)" value="Contenido Oculto">
<div id="Capa" style="border:solid #6699FF 1px;background:#B2E0F0; width:480px; display:none;">
\\

</div>&#39;, $texto);


Y el código JS
<script type="text/javascript">
function capa (op) {
if (document.getElementById('Capa').style.display=='none') {
document.getElementById('Capa').style.display='block';
} else {
document.getElementById('Capa').style.display='none';
}
}
</script>

Desde ya, muchas gracias

Comunidad PHPeros

[AYUDA] Problema con BBCode SPOILER
« en: 23 de Octubre de 2009, 07:18:49 am »

Desconectado Hugox

  • PHPer@ Fijo
  • ***
  • Mensajes: 104
  • Karma: 5
  • Sexo: Masculino
  • Vamos a Aprender
    • Ver Perfil
    • UrbaMix
Re:[AYUDA] Problema con BBCode SPOILER
« Respuesta #1 en: 23 de Octubre de 2009, 17:45:04 pm »
este post va en JavaScript?

Desconectado Masato

  • PHPero Avanzado
  • ****
  • Mensajes: 480
  • Karma: 12
  • Sexo: Masculino
  • <?php echo "Solo quiero aprender php"; ?>
    • Ver Perfil
    • Masato Design!
Re:[AYUDA] Problema con BBCode SPOILER
« Respuesta #2 en: 23 de Octubre de 2009, 18:02:27 pm »
nop, porque el JS anda de 10, el problema es el PHP que no me toma el IMG o URL dentro del SPOILER

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[AYUDA] Problema con BBCode SPOILER
« Respuesta #3 en: 23 de Octubre de 2009, 20:57:28 pm »
puedes pasar un link?

Desconectado Masato

  • PHPero Avanzado
  • ****
  • Mensajes: 480
  • Karma: 12
  • Sexo: Masculino
  • <?php echo "Solo quiero aprender php"; ?>
    • Ver Perfil
    • Masato Design!
Re:[AYUDA] Problema con BBCode SPOILER
« Respuesta #4 en: 23 de Octubre de 2009, 23:50:05 pm »

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:[AYUDA] Problema con BBCode SPOILER
« Respuesta #5 en: 24 de Octubre de 2009, 00:40:16 am »
Hola,

Prueba con este:
$texto eregi_replace("\\[spoiler\\](*)\\[/spoiler\\]", &#39;<input type="submit" onclick="capa(1)" value="Contenido Oculto">
<div id="Capa" style="border:solid #6699FF 1px;background:#B2E0F0; width:480px; display:none;">
\\
1
</div>&#39;, $texto);


Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado Masato

  • PHPero Avanzado
  • ****
  • Mensajes: 480
  • Karma: 12
  • Sexo: Masculino
  • <?php echo "Solo quiero aprender php"; ?>
    • Ver Perfil
    • Masato Design!
Re:[AYUDA] Problema con BBCode SPOILER
« Respuesta #6 en: 24 de Octubre de 2009, 01:41:49 am »
Nop, ahora no muestra mas que este error:

Cita de: Mi foro
Warning: eregi_replace() [function.eregi-replace]: REG_BADRPT

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:[AYUDA] Problema con BBCode SPOILER
« Respuesta #7 en: 24 de Octubre de 2009, 12:56:22 pm »
Fallo mio, se me olvidó un punto jaja


$texto 
eregi_replace("\\[spoiler\\](.*)\\[/spoiler\\]", &#39;<input type="submit" onclick="capa(1)" value="Contenido Oculto">
<div id="Capa" style="border:solid #6699FF 1px;background:#B2E0F0; width:480px; display:none;">
\\
1
</div>&#39;, $texto);


Con ese código, pongas lo que pongas entre las etiquetas spoiler, siempre saldrá el botón.

Saludos!
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado Masato

  • PHPero Avanzado
  • ****
  • Mensajes: 480
  • Karma: 12
  • Sexo: Masculino
  • <?php echo "Solo quiero aprender php"; ?>
    • Ver Perfil
    • Masato Design!
Re:[AYUDA] Problema con BBCode SPOILER
« Respuesta #8 en: 24 de Octubre de 2009, 19:54:32 pm »
Bien, funciona, pero si ahora pongo 2 spoiler por mensaje, al hacerle clic al 2 se me abre unicamente el 1, que puede ser?

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[AYUDA] Problema con BBCode SPOILER
« Respuesta #9 en: 24 de Octubre de 2009, 20:32:36 pm »
el javascript coge un elemento llamado capa y lo muestra/oculta, si pones varios con al misma id, pasa solo con el primero, no se si funcionara, pero prueba:


$capa 
1;
$texto eregi_replace("\\[spoiler\\](.*)\\[/spoiler\\]", &#39;<input type="submit" onclick="capa(&#39;.$i++.&#39;)" value="Contenido Oculto">
<div id="capa&#39;.$i.&#39;" style="border:solid #6699FF 1px;background:#B2E0F0; width:480px; display:none;">
\\
1
</div>&#39;, $texto);


y js:

Código: [Seleccionar]
<script type="text/javascript">
function capa (op) {
if (document.getElementById('capa' + op).style.display=='none') {
document.getElementById('capa' + op).style.display='block';
} else {
document.getElementById('capa' + op).style.display='none';
}
}
</script>

Desconectado Masato

  • PHPero Avanzado
  • ****
  • Mensajes: 480
  • Karma: 12
  • Sexo: Masculino
  • <?php echo "Solo quiero aprender php"; ?>
    • Ver Perfil
    • Masato Design!
Re:[AYUDA] Problema con BBCode SPOILER
« Respuesta #10 en: 24 de Octubre de 2009, 20:50:42 pm »
Gracias por la ayuda west, pero ahora no se abre ninguno :S

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[AYUDA] Problema con BBCode SPOILER
« Respuesta #11 en: 24 de Octubre de 2009, 21:30:54 pm »
me ekivoke y puse $i en lugar de $capa (la costumbre)


$capa 
1;
$texto eregi_replace("\\[spoiler\\](.*)\\[/spoiler\\]", &#39;<input type="submit" onclick="capa(&#39;.$capa++.&#39;)" value="Contenido Oculto">
<div id="capa&#39;.$capa.&#39;" style="border:solid #6699FF 1px;background:#B2E0F0; width:480px; display:none;">
\\
1
</div>&#39;, $texto);


Espero que funcione...

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:[AYUDA] Problema con BBCode SPOILER
« Respuesta #12 en: 24 de Octubre de 2009, 21:34:22 pm »
Hola,

Además de eso, el $capa++ debe ir en el segundo, y no en el primero, quedaría así:

$capa 
1;
$texto eregi_replace("\\[spoiler\\](.*)\\[/spoiler\\]", &#39;<input type="submit" onclick="capa(&#39;.$capa.&#39;)" value="Contenido Oculto">
<div id="capa&#39;.$capa++.&#39;" style="border:solid #6699FF 1px;background:#B2E0F0; width:480px; display:none;">
\\
1
</div>&#39;, $texto);


Así ya se abrirá, pero solo el primero.
El problema es que el ereg coge el tag [spoiler] del primer spoiler, y el tag [/spoiler] del segundo, y mientras entre esos dos deja todo lo demás, no se si me entendéis.
El problema esta en la expresión regular \\[spoiler\\](.*)\\[/spoiler\\], pero no se como solucionarlo, ahora lo voy a investigar un poco y luego si averiguo algo os digo.

Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[AYUDA] Problema con BBCode SPOILER
« Respuesta #13 en: 24 de Octubre de 2009, 22:29:03 pm »
en realidad el $capa++ debe ir en el primero para k se sume 1, y en el segundo no para que muestre lo mismo, pero $capa debe tener un valor inicial de 0:


$capa 
0;
$texto eregi_replace("\\[spoiler\\](.*)\\[/spoiler\\]", &#39;<input type="submit" onclick="capa(&#39;.$capa++.&#39;)" value="Contenido Oculto">
<div id="capa&#39;.$capa.&#39;" style="border:solid #6699FF 1px;background:#B2E0F0; width:480px; display:none;">
\\
1
</div>&#39;, $texto);



prueba a ver...

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:[AYUDA] Problema con BBCode SPOILER
« Respuesta #14 en: 24 de Octubre de 2009, 22:39:50 pm »
Eso no es correcto westwest, porqué ese código daría este resultado:
Código: [Seleccionar]
<input type="submit" onclick="capa(0)" value="Contenido Oculto">
<div id="capa1" style="border:solid #6699FF 1px;background:#B2E0F0; width:480px; display:none;">

Como ves, en el input pondría capa(0) y en el div capa1, con lo que el JS no funcionaría.

Una solución a eso es lo que coloqué en mi mensaje anterior, y la otra solución sería esta:

$capa 
0;
$texto eregi_replace("\\[spoiler\\](.*)\\[/spoiler\\]", &#39;<input type="submit" onclick="capa(&#39;.++$capa.&#39;)" value="Contenido Oculto">
<div id="capa&#39;.$capa.&#39;" style="border:solid #6699FF 1px;background:#B2E0F0; width:480px; display:none;">
\\
1
</div>&#39;, $texto);


Pero aún así seguimos teniendo el problema que dije en mi mensaje anterior,

Saludos.
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es