Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

eddimanero

BBCode

Recommended Posts

Primeira mente desculpe nã sei se estou postando na area certa.

 

Tenho um sistema de noticias e estou querendo implementar o BBCode nele, ate ai tudo bem.

Consegui implementar, so que nao estou conseguindo fazer o seguinte ao depois de digitar o texto selecionar o texto e aplicar o bbcode no codigo.

 

Estou postando o codigo.

 

bbcode.php

<?php
$seu_texto = "Aki fica um exemplo de texto com [b]negrito[/b], [i]itálico[/i], [cor=orange]cor laranja[/cor] e com barreira para códigos HTML digitados! tipow <b>assim</b> e <i>assim</i>";
$seu_texto = htmlspecialchars($seu_texto);
$seu_texto = preg_replace( "#\[b\](.+?)\[\/b\]#is", "<b>\\1</b>", $seu_texto);
$seu_texto = preg_replace( "#\[i\](.+?)\[\/i\]#is", "<i>\\1</i>", $seu_texto);
$seu_texto = preg_replace( "#\[cor=(.+?)\](.+?)\[\/cor\]#is", "<font color=\\1>\\2</font>", $seu_texto);

echo $seu_texto;

?>

index.htm

<script>
function valores(obj) {
if (obj == "negrito") {
document.getElementById("texto").innerHTML += "[b][/b]";
}else if (obj == "italico") {
document.getElementById("texto").innerHTML += "[i][/i]";
}else if (obj == "sublinhado") {
document.getElementById("texto").innerHTML += "[u][/u]";
}else if (obj == "centralizado") {
document.getElementById("texto").innerHTML += "[center][/center]";
}
}
</script><input type="button" value="negrito" onClick="valores('negrito')">
<input type="button" value="italico" onClick="valores('italico')">
<input type="button" value="sublinhado" onClick="valores('sublinhado')">
<input type="button" value="centralizado" onClick="valores('centralizado')"><br>
<textarea name="teste" rows="10" cols="60" id="texto"></textarea>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim serve?

 

Arquivo: index.htm

<script>
function valores(obj) {
if (obj == "negrito") {
document.getElementById("texto").innerHTML += "[b][/b]";
}
else if (obj == "italico") {
document.getElementById("texto").innerHTML += "[i][/i]";
}
else if (obj == "sublinhado") {
document.getElementById("texto").innerHTML += "[u][/u]";
}
else if (obj == "centralizado") {
document.getElementById("texto").innerHTML += "[center][/center]";
}
}
function enviar(){
pagina = 'bbcode.php?texto=' + document.getElementById("texto").value;
window.open(pagina);
}
</script>
<input type="button" value="negrito" onclick="valores('negrito')">
<input type="button" value="italico" onclick="valores('italico')">
<input type="button" value="sublinhado" onclick="valores('sublinhado')">
<input type="button" value="centralizado" onclick="valores('centralizado')">
<br><textarea name="teste" rows="10" cols="60" id="texto"></textarea><br>
<input type="button" value="enviar" onclick="enviar()">

Arquivo: bbcode.php

 

<?php
$seu_texto = $_REQUEST['texto'];
$seu_texto = htmlspecialchars($seu_texto);
$seu_texto = preg_replace( "#\[b\](.+?)\[\/b\]#is", "<b>\\1</b>", $seu_texto);
$seu_texto = preg_replace( "#\[i\](.+?)\[\/i\]#is", "<i>\\1</i>", $seu_texto);
$seu_texto = preg_replace( "#\[center\](.+?)\[\/center\]#is", "<center>\\1</center>", $seu_texto);
$seu_texto = preg_replace( "#\[u\](.+?)\[\/u\]#is", "<u>\\1</u>", $seu_texto);
$seu_texto = preg_replace( "#\[cor=(.+?)\](.+?)\[\/cor\]#is", "<font color=\\1>\\2</font>", $seu_texto);
echo $seu_texto;
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ou se preferir mandar pelo formulario

 

Arquivo: index.htm

<script>
function valores(obj) {
if (obj == "negrito") {
document.getElementById("texto").innerHTML += "[b][/b]";
}
else if (obj == "italico") {
document.getElementById("texto").innerHTML += "[i][/i]";
}
else if (obj == "sublinhado") {
document.getElementById("texto").innerHTML += "[u][/u]";
}
else if (obj == "centralizado") {
document.getElementById("texto").innerHTML += "[center][/center]";
}
}
</script>

<input type="button" value="negrito" onclick="valores('negrito')">
<input type="button" value="italico" onclick="valores('italico')">
<input type="button" value="sublinhado" onclick="valores('sublinhado')">
<input type="button" value="centralizado" onclick="valores('centralizado')">
<form action="bbcode.php" id="f1">
<textarea name="texto" rows="10" cols="60" id="texto"></textarea><br>
<input type="submit" value="enviar">
</form>

Arquivo: bbcode.php

 

<?php
$seu_texto = $_REQUEST['texto'];
$seu_texto = htmlspecialchars($seu_texto);
$seu_texto = preg_replace( "#\[b\](.+?)\[\/b\]#is", "<b>\\1</b>", $seu_texto);
$seu_texto = preg_replace( "#\[i\](.+?)\[\/i\]#is", "<i>\\1</i>", $seu_texto);
$seu_texto = preg_replace( "#\[center\](.+?)\[\/center\]#is", "<center>\\1</center>", $seu_texto);
$seu_texto = preg_replace( "#\[u\](.+?)\[\/u\]#is", "<u>\\1</u>", $seu_texto);
$seu_texto = preg_replace( "#\[cor=(.+?)\](.+?)\[\/cor\]#is", "<font color=\\1>\\2</font>", $seu_texto);
echo $seu_texto;
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

acgo que você não entendeu minha dúvida.

 

Exemplo.

 

Vamos suporte que eu digetei um perqueno texto, so que esqueci de colocar as tags para enteder o BBCode.

 

Dai eu poderia selecionar o texto e aplicar o bbcode.E isso que eu não estou conseguindo fazer.

 

Ou seja depois de digitar o texto inserir o bbcode no texto selecionado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

exemplo aki, desenvolva com esse codigo ae

 

<script>
function valores(obj) {
if (obj == "negrito") {
document.getElementById("texto").value = "[b]"+document.selection.createRange().text+"[/b]";
}
else if (obj == "italico") {
document.getElementById("texto").value = "[i]"+document.selection.createRange().text+"[/i]";
}
else if (obj == "sublinhado") {
document.getElementById("texto").value = "[u]"+document.selection.createRange().text+"[/u]";
}
else if (obj == "centralizado") {
document.getElementById("texto").value= "[center]"+document.selection.createRange().text+"[/center]";
}
}
</script>
<input type='button' value='negrito' onclick="valores('negrito')">
<input type="button" value="italico" onclick="valores('italico')">
<input type="button" value="sublinhado" onclick="valores('sublinhado')">
<input type="button" value="centralizado" onclick="valores('centralizado')">
<br><textarea name="teste" rows="10" cols="60" id="texto"></textarea>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta dúvida é sobre o Javascript, então vou mover pra lá.

 

Tópico Movido

PHP http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Javascript

Compartilhar este post


Link para o post
Compartilhar em outros sites

aproveitar que eu to de bom humor aki, dei uma melhorada no seu codigo e tae, ficou bem simples, espero que ajude, se tiver dúvida é só postar

 

codigo

<script>
function valores(tag) {
//pega a seleção
var selectedText = document.selection.createRange().text;
//joga a tag na seleção 
var newText = "[" + tag + "]" + selectedText + "[/" + tag + "]";
//joga na textarea a seleção e a tag
document.selection.createRange().text = newText;
}
</script>
<input type='button' value='negrito' onclick="valores('b')">
<input type="button" value="italico" onclick="valores('i')">
<input type="button" value="sublinhado" onclick="valores('u')">
<input type="button" value="centralizado" onclick="valores('center')">
<br><textarea name="teste" rows="10" cols="60" id="texto"></textarea>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola colegal, me interessei sobre os seu script, mas tenho um problema com ele. Por exemplo.

 

tenho um botão chamado negrito. Mas qndo clico nele o botao assume o e se clicar denovo fica e assim vai..

como faço pra mandar ele para o campo TEXTO?

 

 

Obrigado.

 

aproveitar que eu to de bom humor aki, dei uma melhorada no seu codigo e tae, ficou bem simples, espero que ajude, se tiver dúvida é só postar

 

codigo

<script>
function valores(tag) {
//pega a seleção
var selectedText = document.selection.createRange().text;
//joga a tag na seleção 
var newText = "[" + tag + "]" + selectedText + "[/" + tag + "]";
//joga na textarea a seleção e a tag
document.selection.createRange().text = newText;
}
</script>
<input type='button' value='negrito' onclick="valores('b')">
<input type="button" value="italico" onclick="valores('i')">
<input type="button" value="sublinhado" onclick="valores('u')">
<input type="button" value="centralizado" onclick="valores('center')">
<br><textarea name="teste" rows="10" cols="60" id="texto"></textarea>

Compartilhar este post


Link para o post
Compartilhar em outros sites

é porque o que acontece é que falta uma verificação para ver se tem alguma seleção, caso não tenha o botão se transforma em seleção, então você tem q fazer uma verificação para ver se existe texto selecionado ou se a textarea está vazia,ou se existe texto na textarea mas não foi selecionado, usando if e else dá pra fazer na boa, mas prefiro que você desenvolva e poste suas dúvidas. tae a dica

 

qlqr coisa eu te dou uma força

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.