Casos comunes

A continuación algunos ejemplos de soluciones a problemas comunes partiendo de un módulo standard de la gestión del Preweb-Helper

Ejemplo básico de código

/**
* @desc Muestra la pagina para dar de alta un registro
*/
function noticia_nuevo()
{
  global $modelo, $vista, $db;

  $vista->setTemplate("editar");
  $data = $modelo->getData();
  $data = $modelo->loadDefault($data);

  $vista->excludeField($data,"fecha"); //Quitamos el campo del data para que no llegue al formulario
  $vista->excludeField($data,"fecha"); //Quitamos el campo del data para que no llegue al formulario
  $vista->set_var("titulo","[{7900|}]");
  $vista->createForm($data);
  $vista->parseTemplate();
}

/**
* @desc Funcion que guarda los datos del registro.
*/
function noticia_insertar($save=0)
{
  global $modelo, $vista;
  $data = $modelo->validate();

  //Errores personalizados
  if (strtotime(cambiaf_a_mysql($data["fecha"]["Value"])) > strtotime($modelo->now())){ //Comparar Fechas
    $vista->throwError($data,"fecha","90002"); //Envio el error con texto 90002 en el template al campo fecha
  }

  if ($modelo->hasErrors($data))
  {
    $vista->setTemplate("editar");
    if ($save){    //se muestra un titulo u otro dependiendo de si se esta editando o insertando
      $vista->set_var("titulo","[{7901|}]");
    $data["fecha"]["Comment"]["noEditable"]=1; //Que el campo solo pueda verse
    }else{
      $vista->set_var("titulo","[{7900|}]");
    $vista->excludeField($data,"fecha"); //Quitamos el campo
    }     $vista->excludeField($data,"fecha"); //Quitamos el campo
    $vista->createForm($data);
    $vista->parseTemplate();
  }
  else
  {     $data["fecha"]["Value"] = $modelo->now(); //Seteamos la fecha de hoy
    if (!$save){ //Solo si estamos insertando
      $data["fecha"]["Value"] = $modelo->now(); //Seteamos la fecha de hoy
    }
    $config["thumbWidth"]=200;
    $config["thumbHeight"]=100;
    $modelo->upload("",$config); //Subir archivo(s) enviado(s)
    $modelo->setData($data,"",false);
    $vista->redirect($_POST['redirect']);
  }
}

/**
* @desc Funcion que presenta el template de modificacion de datos de un registro.
*/
function noticia_editar()
{
  global $modelo, $vista;
  $vista->setTemplate();
  $data = $modelo->getData();   $vista->excludeField($data,"fecha"); //Quitamos el campo
    $data["fecha"]["Comment"]["noEditable"]=1; //Que el campo solo pueda verse
  $vista->set_var("titulo","[{7901|}]");
  $vista->createForm($data);

  $vista->parseTemplate();
}

/**
* @desc Funcion que graba los datos de una actualizacion de un registro.
*/
function noticia_guardar()
{
  noticia_insertar(1);
}

/**
* @desc Elimina un registro y sus relaciones con idiomas
*/
function noticia_eliminar()
{
global $modelo,$vista;

  //Noticia
  $modelo->dropData();
  $vista->redirect($_POST['redirect']);
  //Imagenes
  $config["relations"]= "1"; //Configuramos para cambiar el modulo objetivo
  $config["prefix"] = "mimg_";
  $config["module"] = "imagen";
  $modelo->dropData("id_mno_noticia",$config); //Y le damos el id por el cual se relacionara con nuestro módulo actual
}