[ABD] LaTeX para phpBB3 (para postear formulas matematicas y mas)
Publicado: 05 Dic 2008, 05:39
Instalando este MOD conseguirás tener LaTeX en tu foro phpBB3 de una forma muy fácil, pues se utiliza un servidor externo (texify.com), por lo que no tendrás que instalar nada en tu servidor... solo instalar este MOD en tu foro.
Es de especial utilidad para foros educacionales, matemáticos y universitarios.
El MOD instala un editor latex en la página de posteo. Se ve de la siguiente forma:
Probar el MOD online: http://www.phpbbmods.info/mitch/testposting.php" onclick="window.open(this.href);return false;
Esto te permite postear en tu foro fórmulas matemáticas, resolución de ejercicios de física, química, y muchas otras... ejemplos:


Y además, incluyo un tutorial que hicimos tiempo atrás con otra persona, para que los usuarios puedan aprender más sobre LaTeX.
Pasos a seguir:
1) Descargar y subir archivos
Descarga el siguiente adjunto:
y los archivos que trae, debes subirlos a estas rutas
Ahora toca editar algunos archivos... va a depender del estilo que uses
> Edicion para prosilver (y otros estilos que se basen en este)
> Edicion para subsilver2 (y otros estilos que se basen en este)
Y listo... Limpias el caché de tu foro (boton Limpiar cache del índice del administrador) y deberías poder ver y usar el MOD.
(Si no se agregara el código al post o no se formara la fórmula, presiona las teclas CONTROL+F5 para actualizar el caché de tu navegador)
Errores? Comentarios? en este tema
salu2
Es de especial utilidad para foros educacionales, matemáticos y universitarios.
El MOD instala un editor latex en la página de posteo. Se ve de la siguiente forma:



Esto te permite postear en tu foro fórmulas matemáticas, resolución de ejercicios de física, química, y muchas otras... ejemplos:


Y además, incluyo un tutorial que hicimos tiempo atrás con otra persona, para que los usuarios puedan aprender más sobre LaTeX.
Pasos a seguir:
1) Descargar y subir archivos
Descarga el siguiente adjunto:
y los archivos que trae, debes subirlos a estas rutas
- latex.php > Subirlo a la raíz del foro (donde esta memberlist.php, search.php, etc... donde comienza tu foro).
- La carpeta "/latex/" (que tiene imagenes dentro) > debes subirla tal cual (toda la carpeta con su contenido) a la carpeta /images/ del foro.
- latex_body.html y latex_gen.html > Estos 2 archivos los subes a la carpeta "template" de tu estilo (prosilver, subsilver2, el que sea).
Ahora toca editar algunos archivos... va a depender del estilo que uses
> Edicion para prosilver (y otros estilos que se basen en este)
- En el archivo editor.js
Ir al final del archivo, y agregar en una nueva línea:Código: Seleccionar todo
/** * Generador de url para Latex, por Mitch */ function genurlmitch(texto){ var espacio = " "; var rempespacio = '\\ '; var1 = texto.split('%').join('%25'); var1 = var1.replace(/\s*[\r\n][\r\n \t]*/g, '\\\\'); var1 = var1.split(espacio).join(rempespacio); var1 = var1.split(espacio).join('%20'); var1 = var1.split('!').join('%21'); var1 = var1.split('#').join('%23'); var1 = var1.split('$').join('%24'); var1 = var1.split('&').join('%26'); var1 = var1.split('(').join('%28'); var1 = var1.split(')').join('%29'); var1 = var1.split('*').join('%2A'); var1 = var1.split('+').join('%2B'); var1 = var1.split('-').join('%2D'); var1 = var1.split(',').join('%2C'); var1 = var1.split('/').join('%2F'); var1 = var1.split(':').join('%3A'); var1 = var1.split(';').join('%3B'); var1 = var1.split('<').join('%3C'); var1 = var1.split('=').join('%3D'); var1 = var1.split('>').join('%3E'); var1 = var1.split('?').join('%3F'); var1 = var1.split('@').join('%40'); var1 = var1.split('[').join('%5B'); var1 = var1.split('\\').join('%5C'); var1 = var1.split(']').join('%5D'); var1 = var1.split('^').join('%5E'); var1 = var1.split('_').join('%5F'); var1 = var1.split('{').join('%7B'); var1 = var1.split('|').join('%7C'); var1 = var1.split('}').join('%7D'); var1 = var1.split('~').join('%7E'); var1 = var1.split('¡').join('%A1'); var1 = var1.split('©').join('%A9'); var1 = var1.split('±').join('%B1'); var1 = var1.split('²').join('%B2'); var1 = var1.split('³').join('%B3'); var1 = var1.split('¿').join('%BF'); var1 = var1.split('ß').join('%DF'); var1 = var1.split('Ø').join('%D8'); var1 = var1.split('Þ').join('%DE'); var1 = var1.split('ø').join('%F8'); var1 = var1.split('\"').join('%22'); var1 = var1.split('\'').join('%27'); var salida = ['http://www.texify.com/img/%5CLARGE%5C%21',var1,'.gif']; var salida2 = salida.join(""); return salida2; } function latexurlmitch(){ var s1 = document.getElementById('cadena1'); // Obtenemos el valor del area de texto texto1 = document.getElementById('texto').value; // Cambiamos su valor s1.value = genurlmitch(texto1); } function imgpostlatex() { var prev = document.getElementById('texto').value; if (prev == "") { alert("Debes escribir una fórmula"); return (false); } else { var s1 = document.getElementById('cadena1').value; var1 = '[img]'; var2 = '[/img]'; var salida = ['[img]',s1,'[/img]']; var salida2 = salida.join(""); insert_text(salida2, true); } } function latexajax(){ var prev = document.getElementById('texto').value; if (prev == "") { alert("Debes escribir una fórmula"); return (false); } else { var s1 = document.getElementById('cadena1').value; setTimeout("latexajax2(document.getElementById('cadena1').value)", 1000) document.getElementById('latexprev').src = './images/latex/ajaxloader.gif'; } } function latexajax2(s1){ document.getElementById('latexprev').src = s1; } function prevlatex() { var prev = document.getElementById('texto').value; if (prev == "") { alert("Debes escribir una fórmula"); return (false); } else { var s1 = document.getElementById('cadena1').value; window.open(s1, this.target, 'toolbar=yes, location=yes, status=yes, menubar=yes, scrollbars=yes, resizable=yes, width=500, height=400'); } } function BBClatex(text, spaces) { var textarea = document.getElementById('texto'); if (!isNaN(textarea.selectionStart)) { var sel_start = textarea.selectionStart; var sel_end = textarea.selectionEnd; mozWrap(textarea, text, '') textarea.selectionStart = sel_start + text.length; textarea.selectionEnd = sel_end + text.length; } else if (textarea.createTextRange && textarea.caretPos) { if (baseHeight != textarea.caretPos.boundingHeight) { textarea.focus(); storeCaret2(textarea); } var caret_pos = textarea.caretPos; caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text; } else { textarea.value = textarea.value + text; } } function storeCaret2(textEl) { if (textEl.createTextRange) { textEl.caretPos = document.selection.createRange().duplicate(); } }
- En el archivo posting_editor.html
Buscar:Agregar despues (nueva linea):Código: Seleccionar todo
</textarea>
Código: Seleccionar todo
<br><!-- INCLUDE latexgen.html -->
> Edicion para subsilver2 (y otros estilos que se basen en este)
- En el archivo editor.js
Ir al final del archivo, y agregar en una nueva línea:Código: Seleccionar todo
/** * Generador de url para Latex, por Mitch */ function genurlmitch(texto){ var espacio = " "; var rempespacio = '\\ '; var1 = texto.split('%').join('%25'); var1 = var1.replace(/\s*[\r\n][\r\n \t]*/g, '\\\\'); var1 = var1.split(espacio).join(rempespacio); var1 = var1.split(espacio).join('%20'); var1 = var1.split('!').join('%21'); var1 = var1.split('#').join('%23'); var1 = var1.split('$').join('%24'); var1 = var1.split('&').join('%26'); var1 = var1.split('(').join('%28'); var1 = var1.split(')').join('%29'); var1 = var1.split('*').join('%2A'); var1 = var1.split('+').join('%2B'); var1 = var1.split('-').join('%2D'); var1 = var1.split(',').join('%2C'); var1 = var1.split('/').join('%2F'); var1 = var1.split(':').join('%3A'); var1 = var1.split(';').join('%3B'); var1 = var1.split('<').join('%3C'); var1 = var1.split('=').join('%3D'); var1 = var1.split('>').join('%3E'); var1 = var1.split('?').join('%3F'); var1 = var1.split('@').join('%40'); var1 = var1.split('[').join('%5B'); var1 = var1.split('\\').join('%5C'); var1 = var1.split(']').join('%5D'); var1 = var1.split('^').join('%5E'); var1 = var1.split('_').join('%5F'); var1 = var1.split('{').join('%7B'); var1 = var1.split('|').join('%7C'); var1 = var1.split('}').join('%7D'); var1 = var1.split('~').join('%7E'); var1 = var1.split('¡').join('%A1'); var1 = var1.split('©').join('%A9'); var1 = var1.split('±').join('%B1'); var1 = var1.split('²').join('%B2'); var1 = var1.split('³').join('%B3'); var1 = var1.split('¿').join('%BF'); var1 = var1.split('ß').join('%DF'); var1 = var1.split('Ø').join('%D8'); var1 = var1.split('Þ').join('%DE'); var1 = var1.split('ø').join('%F8'); var1 = var1.split('\"').join('%22'); var1 = var1.split('\'').join('%27'); var salida = ['http://www.texify.com/img/%5CLARGE%5C%21',var1,'.gif']; var salida2 = salida.join(""); return salida2; } function latexurlmitch(){ var s1 = document.getElementById('cadena1'); // Obtenemos el valor del area de texto texto1 = document.getElementById('texto').value; // Cambiamos su valor s1.value = genurlmitch(texto1); } function imgpostlatex() { var prev = document.getElementById('texto').value; if (prev == "") { alert("Debes escribir una fórmula"); return (false); } else { var s1 = document.getElementById('cadena1').value; var1 = '[img]'; var2 = '[/img]'; var salida = ['[img]',s1,'[/img]']; var salida2 = salida.join(""); insert_text(salida2, true); } } function latexajax(){ var prev = document.getElementById('texto').value; if (prev == "") { alert("Debes escribir una fórmula"); return (false); } else { var s1 = document.getElementById('cadena1').value; setTimeout("latexajax2(document.getElementById('cadena1').value)", 1000) document.getElementById('latexprev').src = './images/latex/ajaxloader.gif'; } } function latexajax2(s1){ document.getElementById('latexprev').src = s1; } function prevlatex() { var prev = document.getElementById('texto').value; if (prev == "") { alert("Debes escribir una fórmula"); return (false); } else { var s1 = document.getElementById('cadena1').value; window.open(s1, this.target, 'toolbar=yes, location=yes, status=yes, menubar=yes, scrollbars=yes, resizable=yes, width=500, height=400'); } } function BBClatex(text, spaces) { var textarea = document.getElementById('texto'); if (!isNaN(textarea.selectionStart)) { var sel_start = textarea.selectionStart; var sel_end = textarea.selectionEnd; mozWrap(textarea, text, '') textarea.selectionStart = sel_start + text.length; textarea.selectionEnd = sel_end + text.length; } else if (textarea.createTextRange && textarea.caretPos) { if (baseHeight != textarea.caretPos.boundingHeight) { textarea.focus(); storeCaret2(textarea); } var caret_pos = textarea.caretPos; caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text; } else { textarea.value = textarea.value + text; } } function storeCaret2(textEl) { if (textEl.createTextRange) { textEl.caretPos = document.selection.createRange().duplicate(); } }
- En el archivo posting_body.html
Buscar:Reemplazar por:Código: Seleccionar todo
<td valign="top" style="width: 100%;"><textarea name="message" rows="15" cols="76" tabindex="3" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" style="width: 98%;">{MESSAGE}</textarea></td>
Código: Seleccionar todo
<td valign="top" style="width: 100%;"><textarea name="message" rows="15" cols="76" tabindex="3" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" style="width: 98%;">{MESSAGE}</textarea> <br><!-- INCLUDE latexgen.html --> </td>
Y listo... Limpias el caché de tu foro (boton Limpiar cache del índice del administrador) y deberías poder ver y usar el MOD.
(Si no se agregara el código al post o no se formara la fórmula, presiona las teclas CONTROL+F5 para actualizar el caché de tu navegador)
Errores? Comentarios? en este tema

salu2