Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

[ABD] LaTeX para phpBB3 (para postear formulas matematicas y mas)

Los MODs abandonados por el autor, fueron movidos aquí.
AVISO: Los MODs de este foro no están siendo mantenidos y/o actualizados por el autor original de MOD. Proceda bajo su responsabilidad.
  Reglas del Foro
Antes de participar en los foros, leer esto por favor.
Normas generales de phpBB-Es y las de Soporte.

AVISO: Los MODs de este foro no están siendo mantenidos y/o actualizados por el autor original de MOD. Proceda bajo su responsabilidad.
Cerrado

0
No hay votos
 
Votos totales: 0

Avatar de Usuario
mitch
Ex Staff
Mensajes: 4260
Registrado: 04 Sep 2005, 04:28
Género:

[ABD] LaTeX para phpBB3 (para postear formulas matematicas y mas)

#1

Mensaje por mitch »

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:
Imagen Imagen Imagen
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:

Imagen

Imagen

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:
latex mod.rar
(71.53 KiB) Descargado 486 veces
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).
2) Edicion de archivos

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:

    Código: Seleccionar todo

    </textarea>
    Agregar despues (nueva linea):

    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('&#37;').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:

    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>
    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>
    <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 :D

salu2

Avatar de Usuario
mitch
Ex Staff
Mensajes: 4260
Registrado: 04 Sep 2005, 04:28
Género:

Re: LaTeX para phpBB3 (para postear formulas matematicas y mas)

#2

Mensaje por mitch »

Tema Cerrado - La web ya no da soporte a webs externas. Una lástima.

Cerrado

Volver a “[3.0.x] MODs Abandonados”