Foros del Web » Programando para Internet » PHP »

Problema con BBCode

Estas en el tema de Problema con BBCode en el foro de PHP en Foros del Web. Estoy utilizando BBcode en un campo de mi formulario, el problema que tengo es que quiero que la opcion "insertar enlace" cree un enlace que ...
  #1 (permalink)  
Antiguo 12/12/2006, 03:12
Avatar de alllebor  
Fecha de Ingreso: septiembre-2006
Mensajes: 295
Antigüedad: 17 años, 7 meses
Puntos: 1
Problema con BBCode

Estoy utilizando BBcode en un campo de mi formulario, el problema que tengo es que quiero que la opcion "insertar enlace" cree un enlace que se abra en una página nueva (target="_blank") pero no consigo hacerlo funcionar por , ¿¿como lo pongo para que me funcione??


Código:
function inslink(campo){
	var input = document.getElementById(campo);
		if(typeof document.selection != 'undefined' && document.selection) {
			var str = document.selection.createRange().text;
			input.focus();
			var my_link = prompt("Enter URL:","http://");
				if (my_link != null) {
					if(str.length==0){
						str=my_link;
					}
					var sel = document.selection.createRange();
					sel.text = "[a href=\"" + my_link + "\"]" + str + "[/a]";
					sel.select();
					}
			return;
		}else if(typeof input.selectionStart != 'undefined'){
					var start = input.selectionStart;
					var end = input.selectionEnd;
					var insText = input.value.substring(start, end);
					var my_link = prompt("Enter URL:","http://");
						if (my_link != null) {
							if(insText.length==0){
								insText=my_link;
							}
							input.value = input.value.substr(0, start) +"[a href=\"" + my_link +"\"]" + insText  + "[/a]"+ input.value.substr(end);
							input.focus();
							input.setSelectionRange(start+11+my_link.length+insText.length+4,start+11+my_link.length+insText.length+4);
						}
			return;
		}else{
			var my_link = prompt("Ingresar URL:","http://");
			var my_text = prompt("Ingresar el texto del link:","");
			input.value+=" [a href=\"" + my_link +  "\"]" + my_text + "[/a]";
			return;
		}
                     }
yo he modificado las linias donde ponen lo del link y he puesto esto:
sel.text = "[a target=\"_blank\" href=\"" + my_link + "\"]" + str + "[/a]";
Pero no me funciona que debo modificar más??


Muchas gracias!

Última edición por alllebor; 13/12/2006 a las 04:39
  #2 (permalink)  
Antiguo 13/12/2006, 04:42
Avatar de alllebor  
Fecha de Ingreso: septiembre-2006
Mensajes: 295
Antigüedad: 17 años, 7 meses
Puntos: 1
Re: Problema con BBCode

Me han dicho que si se procesa en PHP habria que modificar dicho script pero no se que hay que modificar.
Aqui esta el codigo de dicho script
BBcode.php
Código PHP:
<?php
function bbcode($texto) {
    
$texto nl2br(htmlentities($texto));
    
$textostripslashes($texto);
    
$texto str_replace("[code]""<table align=\"left\" cellpadding=\"0\" cellspacing=\"0\"><tr><td><div align=\"left\" style=\"padding:5px;margin:5px;\"><div style=\" background-color:#FFFFFF;border-color:#808080;border-style:solid;border-width:1px;font-size:11px;margin:0px;overflow:auto;padding:6px;text-align:left;width:330px;\">[code]"$texto);
    
$texto str_replace("[/code]""[/code]<br /></div></div></td></tr></table>"$texto);
     
$texto str_replace('&quot;','"',$texto); 
    
$simple_search = array('/\[\|x\|\]/is','/\[\=p\]/is','/\[\;\)\]/is','/\[\:o\]/is','/\[\:\)\]/is','/\[\:s\]/is','/\[&lt;8\]/is','/\[d\=\]/is','/\[\:Q\]/is','/\[\:D\]/is','/\[\:\(\]/is','/\[8\)\]/is','/\[\:_o\]/is','/\[\:\|\]/is','/\[quote\](.*?)\[\/quote\]/is','/\[b\](.*?)\[\/b\]/is','/\[i\](.*?)\[\/i\]/is','/\[u\](.*?)\[\/u\]/is','/\[a href\=(.*?)\](.*?)\[\/a\]/is','/\[img src\=(.*?)\]/','#\[code\](.*?)\[\/code\]#se'); 
    
$simple_replace = array('<img src="bbcode/emoticons/e14.gif">','<img src="bbcode/emoticons/e12.gif">','<img src="bbcode/emoticons/e10.gif">','<img src="bbcode/emoticons/e8.gif">','<img src="bbcode/emoticons/e6.gif">','<img src="bbcode/emoticons/e2.gif">','<img src="bbcode/emoticons/e13.gif">','<img src="bbcode/emoticons/e11.gif">','<img src="bbcode/emoticons/e9.gif">','<img src="bbcode/emoticons/e7.gif">','<img src="bbcode/emoticons/e5.gif">','<img src="bbcode/emoticons/e1.gif">','<img src="bbcode/emoticons/e3.gif">','<img src="bbcode/emoticons/e4.gif">',"<table align=\"left\" cellpadding=\"0\" cellspacing=\"0\"><tr><td><div align=\"left\" style=\"padding:5px;margin:5px;\"><div style=\" background-color:#EEEFDC;border-color:#808080;border-style:solid;border-width:1px;font-size:11px;margin:0px;overflow:auto;padding:6px;text-align:left;width:330px;\">$1<br /></div></div></td></tr></table>",'<strong>$1</strong>','<em>$1</em>','<u>$1</u>','<a href=$1>$2</a>','<img src=$1 alt=$1 />',"highlight_string(stripslashes(html_entity_decode(str_replace('<br />','','$1'))), true)");
    
$texto preg_replace ($simple_search$simple_replace$texto); 
    return 
$texto

?>
  #3 (permalink)  
Antiguo 13/12/2006, 04:50
Avatar de alllebor  
Fecha de Ingreso: septiembre-2006
Mensajes: 295
Antigüedad: 17 años, 7 meses
Puntos: 1
Re: Problema con BBCode

problema resuelto
ya he esta claro!!!

He puesto esto en el script
Código PHP:
<a target="_blank\" href=$1>$2</a> 
Era una tonteria pero no lo encontraba. Gracias de todas formas!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:12.