Falta campo detIDPro (solucionado)

En el archivo pedidoedit falta de añadir el campo detIDPro

<INPUT TYPE=“hidden” NAME=“detIdPro” VALUE=“<?=$Linea[“detIDPro”]?>”>

cuando editas el pedido. Necesario para obtener los datos que nos faltan a la hora de calcular portes, etc.

Falla el javascript del selector de idioma en algunas secciones del backoffice (solucionado)

Hay que cambiar el:

      $rs->MoveFirst();
      $Datos=$rs->Reg();
      $Idioma_Maestro = $Datos["idiAbrev"];
      while (!$rs->Eof()) {
              echo "  document.getElementById('idioma",$Datos["idiAbrev"],"').style.visibility='hidden';\n";

por:

      $rs->MoveFirst();
      $Datos=$rs->Reg();
      $Idioma_Maestro = $Datos["idiAbrev"];
      while (!$rs->Eof()) {
              $Datos=$rs->Reg();
              echo "  document.getElementById('idioma",$Datos["idiAbrev"],"').style.visibility='hidden';\n";

Mantenimiento de sesión entre distintos merkagest

Si tienes varias webs abiertas a la vez se mantiene la sesión entre ellas (es decir, tienes el mismo carrito en bacaladera y txakoli, por ejemplo).

Fallos de parametros

Cuando se asocia un contenido a otro contenido, el merkaget no publica la información de los parametros alt del 2º nivel.

Problema de rutas

Hay que modificar comm/general.inc para que quede tal que asi en las primeras lineas:

      $realpath =  realpath('./');
      $server_name = ($_SERVER["SERVER_NAME"]);
      define (CFG_PATH_FIJO, $realpath);
      define (CFG_BASE_PATH_FIJO, "/abra");
      define (CFG_SOFT_NAME, "merkagest");
      define (CFG_SERVIDOR_FIJO, $server_name);

Posible problema al cambiar orden en gestión de pedidos (solucionado)

Al cambiar el orden de los elementos del formulario en la gestión de pedidos (fichero ecomm/gestion.php) falla el javascript que gestiona el marcado/desmarcado de los checkbox.

Habrá que sustituir el javascript por el siguiente, teniendo que sistituir var checkid = “checkbox”+id; por el nombre del id que tenga el checkbox.

function Seleccionar(id) {
	var checkid = "checkbox"+id;
	var elemento = window.document.getElementById(checkid);
	elemento.checked = !elemento.checked;
	fila = window.document.getElementById(id);
	if (elemento.checked)
		fila.className = "Seleccionado";
	else
		fila.className = "Normal";
	filaOver(id);
}

Posible problema en 3 tpl dentro de los proyectos (solucionado en el instalador)

Son varios elementos input del tipo submit que no tienen cierre de etiqueta.

Se encuentran localizados en los siguientes ficheros:

- merkagest/templates/GENERAL/util/boletin.tpl

- merkagest/templates/GENERAL/menu/ultimos.tpl

- merkagest/templates/GENERAL/menu/identificar.tpl

Al realizar compra desde carrito y logearme me pone el carrito a -1 y me pide que me logee otra vez

Este error ocurre en el caso de que te logees desde el propio proceso de compra. es decir, una vez que confirmas compra y te pide quer te logees.

En el fichero merkagest/templates/GENERAL/menu.inc en la siguiente opción del switch:

case MNU_OPC_IDENTIFICAR:

en la línea 110 (aprox.) aparece el código:

$get[COM_ITEM_PASO] = COM_PASO_RESUMEN;

Cuando debiera aparecer el siguiente:

$get[COM_ITEM_PASO] = COM_PASO_FPAGO;

Se ha encontrado este bug en txakoli. Habrá que comprobar en los demás.

Bug a la hora de usar editor antiguo

En el instalador actual no tenemos problema, ya que se usa un editor distinto y ya está solucionado este bug. Sólo aplicable a proyectos anteriores a la versión 2.1.2.

Los cambios a realizar son los siguientes:

editor.php

Sustituimos en la línea 24 (aprox.):

document.all.['Editor'].value=window.opener.document.all.['<?=$_GET["nombre"]?>'].value;

con el siguiente código:

document.getElementById('Editor').value=window.opener.document.formulario.<?=$_GET["nombre"]?>.value;

en la línea 47 (aprox.):

window.opener.document.all.['<?=$_GET["nombre"]?>'].value=devar;

por:

window.opener.document.formulario.<?=$_GET["nombre"]?>.value=devar;

editor2.php

Sustituimos en la línea 15 (aprox.):

window.opener.document.all["<?=$_GET["nombre"]?>"].value=document.all["Editor"].value;

con el siguiente código:

document.getElementById('Editor').value=window.opener.document.formulario.<?=$_GET["nombre"]?>.value;

en la línea 31 (aprox.):

document.all['Editor'].value = window.opener.document.all['<?=$_GET["nombre"]?>'].value;
document.all['Editor'].focus();

por:

document.getElementById('Editor').value = window.opener.document.formulario.<?=$_GET["nombre"]?>.value;
document.getElementById('Editor').focus();

Creación de enlaces dentro de palabras de diccionario

Bug por el cual no se traducen las palabras de diccionario a la hora de crear un enlace en una.

cambiar la siguiente línea en apitemplate.inc:

$newBloqueHtml = $strAnterior.$strCampo.$strPosterior;

por

$newBloqueHtml = QuitarComodines($strAnterior.$strCampo.$strPosterior, $this->idioma);

Comprobación de ficheros

Es muy importante que el formulario en el que se halla el elemento sobre el que actuamos (el INPUT o el TEXTAREA) se llame formulario. Para ello tenemos que hacer los cambios necesarios en los siguientes ficheros para comprobar este extremo.

Ficheros donde mirar:

  • contenido/conteedit.inc
  • extras/canales.php
  • extras/diccionario.php
  • catalogo/produedit.inc
  • directorio/fichaedit.inc
  • ecomm/fpago.php
  • ecomm/facturasend.php
  • posiciona/metas.php

Y cualquier otro fichero susceptible de realizar llamadas al fichero editor.php o editor2.php

Bug a la hora de asignar contenido, documento, lista y/o producto a un contenido

Este se ha detectado en la versión 2.1 y superiores.

Problema a la hora de usar los lst (docslst.inc, produlst.inc, fichalst.inc, contelst.inc) cuando, por ejemplo, queremos asignar un documento a un contenido. Hasta ahora el javascript (para el ejemplo docslst.inc) realizaba la siguiente acción:

En conteedit.inc le digo que quiero añadir otro contenido al contenido. Para eso pincho en el botón de los 3 puntos.

Me lleva a docslst.inc. Al elegir el documento que quiero me ejecuta el siguiente código:

window.top.opener.location = window.top.opener.location + '&Accion=Documentos&Sentido=3&DocumentosSel='+id;

Pero se puede dar el caso de que el enlace que enviamos de vuelta no sea de la forma index.php?var=1…, con lo que falla el enlace pues me llega algo como index.php&Accion… . Para evitar esto tenemos el siguiente código a añadir en (docslst.inc, produlst.inc, fichalst.inc, contelst.inc), el cual comprueba que la llamada tiene la estructura correcta:

var sin_query = String(window.top.opener.location);
sin_query = sin_query.indexOf("?");
if (sin_query == -1) {
    window.top.opener.location = window.top.opener.location + '?Accion=lo_que_sea_que_tenga_que_añadir
} else {
    window.top.opener.location = window.top.opener.location + '&Accion= lo_que_sea_que_tenga_que_añadir
}

Bug de selección de idioma en gestor

Tenemos que cambiar la función CambiarIdioma actual por la siguiente

{
<?
	$rs->MoveFirst();
	while (!$rs->Eof()) {
		$Datos=$rs->Reg();
		echo "  document.getElementById('idioma".$Datos["idiAbrev"]."').style.visibility='hidden';\n";
		$rs->Movenext();
	}
?> 
	document.getElementById('idioma'+document.getElementsByName('SelIdioma')[0].value).style.visibility='visible';
	return (false);
}

Bug de uso de document.all en el gestor

Este bug se encuentra arreglado en el nucleo 2.1.2.1