Viewing file: dt_seccion_nota.php (10.04 KB) -rw-rw-r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
class dt_seccion_nota extends toba_datos_tabla
{
function get_listado($filtro=array(), $orden='ORDER BY t_n.fecha_alta DESC', $limit='', $offset='')
{
$where = array();
if (isset($filtro['id_seccion'])) {
$where[] = "t_sn.id_seccion= ".quote($filtro['id_seccion']);
}
if (isset($filtro['estado'])) {
$where[] = "t_n.estado = '".$filtro['estado']."'";
}
if (isset($filtro['portada'])) {
$where[] = "t_sn.portada = '".$filtro['portada']."'";
}
$sql = "SELECT
t_n.id_nota,
t_n.volanta,
t_n.titulo,
t_n.bajada,
t_n.nota,
t_n.foto,
t_n.epigrafe,
t_n.audio,
t_n.video,
t_n.video_mp4,
t_n.principal, t_n.orden_principal,
t_n.secundaria, t_n.orden_secundaria,
t_n.newsletter, t_n.orden_newsletter,
t_n.newsletter2, t_n.orden_newsletter2,
t_n.fecha_alta,
t_n.usuario_alta,
t_n.estado,
CASE
WHEN t_n.estado='A' THEN 'Activa'
WHEN t_n.estado='I' THEN 'Inactiva'
WHEN t_n.estado='V' THEN 'Vista Previa'
ELSE t_n.estado
END as estado_descripcion,
t_n.id_nota||' .'||t_n.titulo as descripcion,
t_n.adjunto,
t_sn.orden_portada,
t_sn.orden_seccion,
t_sn.portada,
CASE
WHEN t_s.nombre_en_portada is null THEN t_s.nombre
ELSE t_s.nombre_en_portada
END as nombre_seccion,
t_n.autor, t_n.foto_autor
FROM seccion_nota as t_sn, nota as t_n, seccion as t_s
WHERE t_sn.id_nota = t_n.id_nota
AND t_s.id_seccion = t_sn.id_seccion
$orden
$limit $offset";
if (count($where)>0) {
$sql = sql_concatenar_where($sql, $where);
}
return toba::db('tdfonline')->consultar($sql);
}
function get_cantidad($filtro=array())
{
$where = array();
if (isset($filtro['id_seccion'])) {
$where[] = "t_sn.id_seccion= ".quote($filtro['id_seccion']);
}
if (isset($filtro['estado'])) {
$where[] = "t_n.estado = '".$filtro['estado']."'";
}
if (isset($filtro['portada'])) {
$where[] = "t_sn.portada = '".$filtro['portada']."'";
}
$sql = "SELECT count(t_n.id_nota) as cantidad
FROM seccion_nota as t_sn, nota as t_n, seccion as t_s
WHERE t_sn.id_nota = t_n.id_nota
AND t_s.id_seccion = t_sn.id_seccion";
if (count($where)>0) {
$sql = sql_concatenar_where($sql, $where);
}
$dato = toba::db('tdfonline')->consultar_fila($sql);
return $dato['cantidad'];
}
function get_listado_buscador($filtro=array(), $orden='ORDER BY t_n.fecha_alta DESC', $limit='', $offset='')
{
$where = array();
if (isset($filtro['estado'])) {
$where[] = "t_n.estado = '".$filtro['estado']."'";
}
if (isset($filtro['buscador'])) {
$where[] = "(volanta LIKE '%".$filtro['buscador']."%' OR titulo LIKE '%".$filtro['buscador']."%' OR bajada LIKE '%".$filtro['buscador']."%' )";
}
$sql = "SELECT DISTINCT
t_n.id_nota,
t_n.volanta,
t_n.titulo,
t_n.bajada,
t_n.nota,
t_n.foto,
t_n.epigrafe,
t_n.video,
t_n.video_mp4,
t_n.principal, t_n.orden_principal,
t_n.secundaria, t_n.orden_secundaria,
t_n.newsletter, t_n.orden_newsletter,
t_n.newsletter2, t_n.orden_newsletter2,
t_n.fecha_alta,
t_n.usuario_alta,
t_n.estado,
CASE
WHEN t_n.estado='A' THEN 'Activa'
WHEN t_n.estado='I' THEN 'Inactiva'
WHEN t_n.estado='V' THEN 'Vista Previa'
ELSE t_n.estado
END as estado_descripcion,
t_n.id_nota||' .'||t_n.titulo as descripcion,
t_sn.orden_seccion,
t_sn.portada,
t_n.autor, t_n.foto_autor
FROM seccion_nota as t_sn, nota as t_n, seccion as t_s
WHERE t_sn.id_nota = t_n.id_nota
AND t_s.id_seccion = t_sn.id_seccion
$orden
$limit $offset";
if (count($where)>0) {
$sql = sql_concatenar_where($sql, $where);
}
return toba::db('tdfonline')->consultar($sql);
}
function get_cantidad_buscador($filtro=array())
{
$where = array();
if (isset($filtro['estado'])) {
$where[] = "t_n.estado = '".$filtro['estado']."'";
}
if (isset($filtro['buscador'])) {
$where[] = "(volanta LIKE '%".$filtro['buscador']."%' OR titulo LIKE '%".$filtro['buscador']."%' OR bajada LIKE '%".$filtro['buscador']."%')";
}
$sql = "SELECT count(t_n.id_nota) as cantidad
FROM seccion_nota as t_sn, nota as t_n, seccion as t_s
WHERE t_sn.id_nota = t_n.id_nota
AND t_s.id_seccion = t_sn.id_seccion";
if (count($where)>0) {
$sql = sql_concatenar_where($sql, $where);
}
$dato = toba::db('tdfonline')->consultar_fila($sql);
return $dato['cantidad'];
}
/*
function eliminar_fila_seccion($id)
{
if(!empty($id)){
$sql="DELETE FROM seccion_nota WHERE id_seccion='$id';";
toba::db('tdfonline')->ejecutar($sql);
}
}
function insertar_fila_seccion($id_seccion,$notas=array())
{
if(count($notas)>0){
foreach ($notas as $id_nota ){
$sql="INSERT INTO seccion_nota (id_seccion,id_nota)
VALUES ('$id_seccion','$id_nota');";
toba::db('tdfonline')->ejecutar($sql);
}
}
}
*/
function eliminar_fila_nota($id)
{
if(!empty($id)){
$sql="DELETE FROM seccion_nota WHERE id_nota='$id';";
toba::db('tdfonline')->ejecutar($sql);
}
}
function insertar_fila_nota($id_nota,$secciones=array())
{
if(count($secciones)>0){
foreach ($secciones as $id_seccion ){
$sql="INSERT INTO seccion_nota (id_seccion,id_nota,orden_seccion,portada)
VALUES ('$id_seccion','$id_nota','1','0')";
toba::db('tdfonline')->ejecutar($sql);
}
}
}
/* Funcion equivalente a eliminar e insertar fila nota, que prevee no quitar notas de portada */
function eliminar_insertar_fila_nota($id_nota,$secciones_nuevas=array())
{
//set agregar en secciones nuevas
foreach ($secciones_nuevas as $seccion_nueva){
$accion_seccion_nueva[$seccion_nueva] = 'Agregar';
}
$sql="SELECT id_seccion FROM seccion_nota WHERE id_nota='$id_nota';";
$secciones_viejas = toba::db('tdfonline')->consultar($sql);
if(count($secciones_viejas)>0){
foreach($secciones_viejas as $seccion_vieja){
//set eliminar en secciones viejas
$accion_seccion_vieja[$seccion_vieja['id_seccion']] = 'Eliminar';
//set cambios de accion en secciones viejas y nuevas
foreach ($secciones_nuevas as $seccion_nueva){
if($seccion_vieja['id_seccion'] == $seccion_nueva){ //marcar
$accion_seccion_nueva[$seccion_nueva] = 'No agregar';
$accion_seccion_vieja[$seccion_vieja['id_seccion']] = 'Mantener';
}
}
}
//eliminar secciones viejas marcadas para eliminar
#ei_arbol($accion_seccion_vieja, 'accion_seccion_vieja');
foreach($accion_seccion_vieja as $id_seccion => $accion){
if($accion == 'Eliminar' ){
$sql="DELETE FROM seccion_nota WHERE id_nota='$id_nota' AND id_seccion='$id_seccion'; ";
toba::db('tdfonline')->ejecutar($sql);
}
}
}
#ei_arbol($accion_seccion_nueva, 'accion_seccion_nueva');
//agregar secciones nuevas marcadas para agregar
foreach($accion_seccion_nueva as $id_seccion => $accion){
if($accion == 'Agregar' ){
$sql="INSERT INTO seccion_nota (id_seccion,id_nota,orden_seccion,portada)
VALUES ('$id_seccion','$id_nota','1','0'); ";
toba::db('tdfonline')->ejecutar($sql);
}
}
}
function set_portada($array_datos,$id_seccion){
$sql = "UPDATE seccion_nota SET portada = 0 WHERE id_seccion = '$id_seccion' AND id_nota IN (select id_nota from nota where estado ='A')";
toba::db('tdfonline')->ejecutar($sql);
foreach($array_datos as $dato){
if(!empty($dato['id_nota'])){
$sql = "UPDATE seccion_nota SET portada = 1, orden_portada = '".$dato['orden']."' WHERE id_seccion = '$id_seccion' AND id_nota = '".$dato['id_nota']."'";
toba::db('tdfonline')->ejecutar($sql);
}
}
return true;
}
}
?>
|