function CONTENIDO_PUBLICACION($op = "") { global $HEAD_titulo, $HEAD_descripcion; if (!isset($_GET['publicacion'])) { echo Mensaje("PUBLICACION: ERROR INTERNO", _M_ERROR); return; } $ticket = db_codex($_GET['publicacion']); $publicacion = ObtenerDatos($ticket); if (!$publicacion) { echo Mensaje("disculpe, la publicación solicitada no existe.", _M_INFO); return; } echo ui_publicacion_barra_acciones('contenido', $publicacion); // Si ya fue vendido if ($publicacion['tipo'] == _A_vendido) { echo '<h1>Publicación concluida</h1>'; echo '<p>Lo sentimos, el vendedor nos ha informado la venta ya fue realizada.</p>'; echo '<p>¡Pero no se vaya!, puesto que puede revisar la categoría de esta publicación para encontrar uno similar! - <a href="clasificados-en-el-salvador-' . $publicacion['id_categoria'] . '-.html">Revisar la categoría de este producto</a></p>'; echo '<p>O bien puede aprovechar para realizar una publicación similar. - <a href="vender?op=' . $publicacion['id_categoria'] . '">Realizar publicación en esta categoría</a></p>'; return; } // Si no esta aprobado solo lo puede ver un Administrador if ($op != "previsualizacion" && $publicacion['tipo'] != _A_aceptado && _F_usuario_cache('nivel') != _N_administrador) { echo Mensaje("esta publicacion NO se encuentra disponible", _M_ERROR); return; } // Ya venció el tiempo de publicación?. if (@$_SESSION['opciones']['deshabilitar_tiempo_de_caducidad'] == 1 && $op != "previsualizacion" && strtotime($publicacion['fecha_fin']) < strtotime(date('d-m-Y', time()))) { echo Mensaje("disculpe, la publicación solicitada ha caducado.", _M_INFO); echo "Esta publicacion caducó el " . $publicacion['fecha_fin'] . "<br />"; if (_F_usuario_cache('id_usuario') == $publicacion['id_usuario']) { echo 'Para asegurarnos que su venta sigue vigente y con datos actuales, Ud. debera revisar su publicacion y publicarla nuevamente.' . ui_href("", "vender?ticket={$ticket}", "Presione en este enlace si desea extender el tiempo de su publicación"); } return; } // Operaciones especiales con la publicación que no necesite permisos de administración if (isset($_GET['se'])) { switch ($_GET['se']) { case 'pub2pdf': break; case 'pub2mail': CONTENIDO_PUB2MAIL($publicacion); return; break; case 'pubrep': CONTENIDO_PUBREP($publicacion); return; break; case 'cerrar': CONTENIDO_CERRAR($publicacion); return; break; case 'editar': CONTENIDO_EDITAR($publicacion); return; break; } } // Preprocesamos cualquier codigo de operación if (isset($_GET['op']) && isset($_GET['id']) && _F_usuario_cache('nivel') == _N_administrador) { $id = db_codex($_GET['id']); switch ($_GET['op']) { case "eliminar": $c = "DELETE FROM ventas_mensajes_publicaciones WHERE id='{$id}' LIMIT 1"; break; case "privado": $c = "UPDATE ventas_mensajes_publicaciones SET tipo='" . _MeP_Privado . "' WHERE id='{$id}' LIMIT 1"; break; case "publico": $c = "UPDATE ventas_mensajes_publicaciones SET tipo='" . _MeP_Publico . "' WHERE id='{$id}' LIMIT 1"; break; } $r = db_consultar($c); if (db_afectados() == 1) { echo Mensaje("Operación exitosa.", _M_INFO); } else { echo Mensaje("Operación erronea.", _M_ERROR); } } $Vendedor = _F_usuario_datos(@$publicacion['id_usuario']); $imagenes = ObtenerImagenesArr($ticket, ""); // Grabamos cualquier consulta enviada if (_autenticado() && isset($_POST['consulta']) && isset($_POST['enviar_consulta']) && _F_usuario_cache('id_usuario') != @$Vendedor['id_usuario']) { // Consulta publica $datos['id_usuario'] = _F_usuario_cache('id_usuario'); $datos['id_publicacion'] = $ticket; $datos['consulta'] = substr(strip_tags(db_codex($_POST['consulta'])), 0, 300); $datos['tipo'] = isset($_POST['tipo_consulta']) ? _MeP_Publico : _MeP_Privado; $datos['fecha_consulta'] = mysql_datetime(); db_agregar_datos("ventas_mensajes_publicaciones", $datos); unset($datos); // Enviamos un mensaje al vendedor email($Vendedor['email'], PROY_NOMBRE . " - nueva consulta en la publicación: " . $publicacion['titulo'], "Le han realizado una consulta en la siguiente publicacion: <a href=\"http://yomachete.com/clasificados-en-el-salvador-vendo-" . $publicacion['id_publicacion'] . "_" . SEO($publicacion['titulo']) . "\">" . $publicacion['titulo'] . '</a>'); } // Grabamos cualquier respuesta enviada if (_autenticado() && isset($_POST['cmdEnviarRespuesta']) && is_array($_POST['txtEnviarRespuesta']) && _F_usuario_cache('id_usuario') == @$Vendedor['id_usuario']) { foreach ($_POST['txtEnviarRespuesta'] as $id => $respuesta) { $respuesta = substr(strip_tags(db_codex($respuesta)), 0, 300); $id = db_codex($id); $c = "UPDATE ventas_mensajes_publicaciones SET respuesta='{$respuesta}', fecha_respuesta=NOW() WHERE id='{$id}' AND id_publicacion='{$ticket}' LIMIT 1"; $r = db_consultar($c); // Notificamos al dueño del mensaje if (db_afectados() > 0) { $c = 'SELECT email FROM ventas_usuarios WHERE id_usuario = (SELECT id_usuario FROM ventas_mensajes_publicaciones WHERE id=' . $id . ' AND id_publicacion=' . $ticket . ' LIMIT 1)'; $r = db_consultar($c); $f = mysql_fetch_assoc($r); if (!empty($f['email'])) { email($f['email'], PROY_NOMBRE . " - respuesta a su consulta en la publicación: " . $publicacion['titulo'], "Hay una respuesta a su consulta en la siguiente publicacion: <a href=\"http://yomachete.com/clasificados-en-el-salvador-vendo-" . $publicacion['id_publicacion'] . "_" . SEO($publicacion['titulo']) . "\">" . $publicacion['titulo'] . '</a>'); } } } } echo "<h1>" . @$publicacion['titulo'] . "</h1>"; echo "<hr /><div id=\"pub_descripcion_corta\">" . @$publicacion['descripcion_corta'] . "</div>"; echo "<hr />"; // Categoria en la que se encuentra ubicado el producto echo "<b>Categoría de la publicación:</b> " . get_path_format(@$publicacion); echo "<br />"; // Fechas de publicación echo "<b>Inicio de la publicación:</b> " . fecha_desde_mysql_datetime(@$publicacion['fecha_ini']); if (@$_SESSION['opciones']['deshabilitar_tiempo_de_caducidad'] == 0) { echo "<br /><b>Fin de la publicación:</b> " . fecha_desde_mysql_datetime(@$publicacion['fecha_fin']); } echo "<br />"; // Formas de entrega para el producto (no disponible para ciertos rubros: inmuebles. echo "<b>Formas de entrega:</b>" . " <span class=\"auto_mostrar\">[<a id=\"ver_mas_entrega\">ver...</a>]</span>"; echo "<div id=\"detalle_entrega\" class=\"auto_ocultar\">"; echo db_ui_checkboxes("", "ventas_flags", "id_flag", "nombrep", "descripcion", ObtenerFlags($ticket, "entrega"), 'disabled="disabled"', "tipo='entrega'"); echo "</div>"; echo "<br />"; // Caracteristicas adicionales: echo "<b>Características adicionales:</b>" . " <span class=\"auto_mostrar\">[<a id=\"ver_mas_adicional\">ver...</a>]</span>"; echo "<div id=\"detalle_adicional\" class=\"auto_ocultar\">"; echo db_ui_checkboxes("", "ventas_flags", "id_flag", "nombrep", "descripcion", ObtenerFlags($ticket, "venta"), 'disabled="disabled"', "tipo='venta'"); echo "</div>"; echo "<br />"; // Precio y formas de pago aceptadas echo "<b>Precio:</b> \$" . number_format(@$publicacion['precio'], 2, ".", ",") . " <span class=\"auto_mostrar\">[<a id=\"ver_mas_precio\">ver formas de pago...</a>]</span>"; echo "<div id=\"detalle_precio\" class=\"auto_ocultar\">"; echo db_ui_checkboxes("", "ventas_flags", "id_flag", "nombrep", "descripcion", ObtenerFlags($ticket, "pago"), 'disabled="disabled"', "tipo='pago'"); echo "</div>"; echo "<br />"; // Datos sobre el vendedor echo "<b>Vendedor:</b> " . ui_href("", "perfil?id=" . $Vendedor['id_usuario'], $Vendedor['usuario']) . (_F_usuario_cache('id_usuario') != $Vendedor['id_usuario'] ? " / enviar un <b>" . ui_href("", PROY_URL . "perfil?op=mp&id=" . $Vendedor['id_usuario'], "Mensaje Privado") . "</b> " : " ") . "<span class=\"auto_mostrar\">[<a id=\"ver_mas_vendedor\">ver datos sobre el vendedor...</a>]</span>"; echo "<div id=\"detalle_vendedor\" class=\"auto_ocultar\">"; echo "<ul>"; echo "<li>Registrado desde: " . fechatiempo_desde_mysql_datetime(@$Vendedor['registro']) . "</li>"; echo "<li>Ultima actividad: " . fechatiempo_desde_mysql_datetime(@$Vendedor['ultimo_acceso']) . "</li>"; $Vendedor['cantidad_publicaciones'] = ObtenerEstadisticasUsuario(@$Vendedor['id_usuario'], _EST_CANT_PUB_ACEPT); echo "<li>Cantidad de publicaciones: " . $Vendedor['cantidad_publicaciones'] . "</li>"; echo "</ul>"; echo "</div>"; if (isset($imagenes) && is_array($imagenes)) { echo "<hr /><h1>Fotografías y/o ilustraciones</h1><center>"; foreach ($imagenes as $archivo) { echo "<div style='display:inline-block;margin:0 10px;'><a class=\"fancybox\" href=\"./imagen_" . $archivo . ".jpg\" target=\"_blank\" rel=\"contenido\"><img src=\"./imagen_" . $archivo . "m.jpg\" /></a><br /></div>"; } echo "<div style=\"clear:both\"></div>"; echo "</center>"; } echo "<hr /><h1>Descripción</h1><center><div class=\"clasificados-en-el-salvador-vendo-descripcion\">"; $descripcion = @$publicacion['descripcion']; if (!is_array($descripcion)) { echo $descripcion; } else { print_r($descripcion); } echo "</div></center>"; if ($op != "previsualizacion") { echo '<hr /><div class="cuadro_importante">'; $c = "SELECT id, id_usuario, (SELECT usuario FROM ventas_usuarios AS b WHERE b.id_usuario=a.id_usuario) AS usuario, consulta, respuesta, respuesta, tipo, fecha_consulta, fecha_respuesta FROM ventas_mensajes_publicaciones AS a WHERE id_publicacion={$ticket}"; $r = db_consultar($c); if ($r && mysql_num_rows($r) > 0) { echo "<h1>Consultas</h1>"; echo '<form method="POST" action="clasificados-en-el-salvador-vendo-' . $ticket . '">'; echo '<table id="tabla_consultas" class="ancha">'; $flag_activar_enviar_respuestas = false; while ($f = mysql_fetch_array($r)) { // Si es consulta privada solo se muestra si corresponde al usuario actual o al vendedor if ($f['tipo'] == _MeP_Privado && _F_usuario_cache('id_usuario') != $f['id_usuario'] && _F_usuario_cache('id_usuario') != @$Vendedor['id_usuario']) { continue; } // Determinamos si es pregunta privada o publica $Privada = $f['tipo'] == _MeP_Privado ? "_privada" : ""; $ControlesAdmin = ""; if (_F_usuario_cache('nivel') == _N_administrador) { $ControlesAdmin = " [" . ui_href("", "./clasificados-en-el-salvador-vendo-{$ticket}?op=eliminar&id=" . $f['id'], "X") . "]" . ($f['tipo'] == _MeP_Publico ? "[" . ui_href("", "clasificados-en-el-salvador-vendo-{$ticket}?op=privado&id=" . $f['id'], "p") . "]" : "[" . ui_href("", "clasificados-en-el-salvador-vendo-{$ticket}?op=publico&id=" . $f['id'], "P") . "]"); } echo '<tr class="pregunta' . $Privada . '"><td class="col1">' . $f['usuario'] . '</td><td class="col2">' . htmlentities($f['consulta'], ENT_QUOTES, "utf-8") . "</td><td class=\"col3\">" . fechatiempo_h_desde_mysql_datetime($f['fecha_consulta']) . $ControlesAdmin . "</td></tr>"; // Si es el dueño de la venta y no ha respondido la consulta le damos la opción de hacerlo. if (!$f['respuesta'] && _F_usuario_cache('id_usuario') == @$Vendedor['id_usuario']) { $f['respuesta'] = ui_input("txtEnviarRespuesta[" . $f['id'] . "]", "", "text", "txtRespuesta", 'MAXLENGTH="300"'); $flag_activar_enviar_respuestas = true; } elseif (!$f['respuesta']) { $f['respuesta'] = htmlentities('<el vendedor aún no ha dado respuesta a esta consulta>', ENT_QUOTES, "utf-8"); } else { $f['respuesta'] = htmlentities($f['respuesta'], ENT_QUOTES, "utf-8"); } echo '<tr class="respuesta' . $Privada . '"><td class="col1">' . @$Vendedor['usuario'] . '</td><td class="col2">' . $f['respuesta'] . '</td><td class="col3">' . fechatiempo_h_desde_mysql_datetime($f['fecha_respuesta']) . "</td></tr>"; } if ($flag_activar_enviar_respuestas) { echo '<tr><td id="envio" colspan="3">' . ui_input("cmdEnviarRespuesta", "Enviar todas las respuestas", "submit") . '</td></tr>'; } echo '</table>'; echo '</form>'; } else { echo Mensaje("No hay consultas realizadas por el momento", _M_INFO); } // Enviar consultas if (!S_iniciado()) { echo "<hr />Necesitas iniciar sesión para poder <b>realizar consultas</b>.<br />"; require_once "PHP/inicio.php"; CONTENIDO_INICIAR_SESION(); } elseif (_autenticado() && _F_usuario_cache('id_usuario') != @$Vendedor['id_usuario']) { echo '<div id="area_consulta"><form method="POST" action="' . $_SERVER['REQUEST_URI'] . '"><p>Realizar consulta al vendedor:</p>' . ui_input("consulta", "", "text", "", "width:100%;", 'MAXLENGTH="300"') . "<br />" . "<table><tr><td>" . ui_input("tipo_consulta", "publica", "checkbox") . " marque esta opción si desea hacer pública esta consulta (<a title=\"Usela si Ud. cree que las demas personas deben leer esta pregunta y su respectiva respuesta\">?</a>).</td><td id=\"trbtn\">" . ui_input("enviar_consulta", "Enviar", "submit") . "</td></tr></table>" . '</form></div>'; } echo '</div>'; // Mostrar "Otros productos de este vendedor". Si tiene mas de un producto claro :) if ($Vendedor['cantidad_publicaciones'] > 1) { echo '<hr />'; echo '<div class="cuadro_importante centrado">'; echo '<h1>Otras publicaciones de este vendedor</h1>'; echo VISTA_ArticuloEnBarra("a.id_publicacion <> '" . $publicacion['id_publicacion'] . "' AND a.id_usuario = '" . $Vendedor['id_usuario'] . "' AND a.tipo='" . _A_aceptado . "' AND a.fecha_fin >= CURDATE()"); echo '</div>'; } // Mostrar "Productos similares". Escoger de la misma categoria los // productos que esten en el rango de +/-25% del precio actual $PrecioMin = (double) @$publicacion['precio'] * 0.5; // -50% $PrecioMax = (double) @$publicacion['precio'] * 1.5; // +50% echo '<hr />'; echo '<div class="cuadro_importante centrado">'; echo '<h1>Publicaciones similares</h1>'; echo VISTA_ArticuloEnBarra("a.id_categoria IN (SELECT id_categoria FROM ventas_categorias WHERE padre = (SELECT padre from ventas_categorias WHERE id_categoria='" . $publicacion['id_categoria'] . "' LIMIT 1)) AND precio >= '{$PrecioMin}' AND precio <= '{$PrecioMax}' AND id_publicacion <> '" . $publicacion['id_publicacion'] . "' AND a.tipo='" . _A_aceptado . "' AND a.fecha_fin >= CURDATE()"); echo '</div>'; // Mostrar opciones adicionales echo ' <a href="' . $_SERVER['REQUEST_URI'] . '?se=pub2pdf"><img src="IMG/pub_extop_ipdf.gif" title="Obtener una copia de esta venta en formato PDF" alt="[descargar venta en PDF]" /></a> <a href="' . $_SERVER['REQUEST_URI'] . '?se=pub2mail"><img src="IMG/pub_extop_mail.gif" title="Enviar esta publicación a un amigo" alt="[enviar por email]" /></a> <a href="' . $_SERVER['REQUEST_URI'] . '?se=pubrep"><img src="IMG/pub_extop_reportar.gif" title="Notificar a los administradores de una publicación fraudulenta" alt="[reportar publicación]" /></a> '; } echo JS_onload(' $(".auto_ocultar").hide(); $(".auto_mostrar").show(); $("#ver_mas_precio").click(function() {$("#detalle_precio").toggle("fast");}); $("#ver_mas_entrega").click(function() {$("#detalle_entrega").toggle("fast");}); $("#ver_mas_adicional").click(function() {$("#detalle_adicional").toggle("fast");}); $("#ver_mas_vendedor").click(function() {$("#detalle_vendedor").toggle("fast");}); '); $HEAD_titulo = PROY_NOMBRE . ' - ' . @$publicacion['titulo']; $HEAD_descripcion = @$publicacion['descripcion_corta']; }
function VISTA_ListaPubs($Where = "1", $OrderBy = "", $tipo = "normal", $SiVacio = "No se encontraron publicaciones", $tienda = "") { /* Paginación */ if (isset($_GET['p']) && is_numeric($_GET['p']) && $_GET['p'] > 1) { $LIMIT_INI = $_GET['p'] - 1; $LIMIT = $LIMIT_INI * _MAX_PUB_X_PAG . ',' . _MAX_PUB_X_PAG; } else { $_GET['p'] = 1; $LIMIT = '0,' . _MAX_PUB_X_PAG; } /* Encontremos las publicaciones */ $c = "SELECT SQL_CALC_FOUND_ROWS z.id_publicacion, z.tipo, z.promocionado, (SELECT GROUP_CONCAT(tag ORDER BY tag ASC SEPARATOR ',') FROM ventas_tag AS b WHERE id IN (SELECT id_tag FROM ventas_tag_uso AS c WHERE c.id_publicacion=z.id_publicacion)) AS tags, (SELECT id_img FROM ventas_imagenes as b WHERE b.id_publicacion = z.id_publicacion ORDER BY RAND() LIMIT 1) as imagen, IF(titulo='','[sin título]', titulo) AS titulo, IF(descripcion_corta='','[sin descripción]', descripcion_corta) AS descripcion_corta, z.id_usuario, z.precio FROM ventas_publicaciones AS z WHERE 1 AND {$Where} {$OrderBy} LIMIT {$LIMIT}"; $r = db_consultar($c); /* Será que no encontramos nada? */ if (mysql_num_rows($r) < 1) { return Mensaje($SiVacio, _M_INFO); } /* Calculemos las paginas */ $Paginacion = mysql_fetch_assoc(db_consultar("SELECT FOUND_ROWS() AS cuenta")); $Paginacion['paginas'] = floor($Paginacion['cuenta'] / _MAX_PUB_X_PAG); $data = ''; while ($f = mysql_fetch_array($r)) { $lnkTitulo = "clasificados-en-el-salvador-vendo-" . $f['id_publicacion'] . "_" . SEO($f['titulo']); $precio = $f['precio']; $descripcion = substr($f['descripcion_corta'], 0, 300); $imagen = '<a href="' . $lnkTitulo . '"><img src="./imagen_' . $f['imagen'] . 'm" alt="articulo" /></a>'; $id_publicacion = $f['id_publicacion']; $tags = preg_replace('/(.*?)(,|$)/', '<a href="/e+$1">$1</a>$2', $f['tags']); $id_usuario = $f['id_usuario']; // -> $promocionado = $f['promocionado'] == "1" ? " promocionado" : ""; $data .= '<table class="articulo' . $promocionado . '">'; $data .= '<tbody>'; $data .= '<tr>'; $data .= '<td class="imagen">' . $imagen . '</td>'; $data .= '<td class="detalle">'; $data .= '<table class="titular">'; $data .= '<tr>'; $data .= '<td class="titulo"><a ' . ($tipo != "previsualizacion" ? 'href="' . $lnkTitulo . '"' : "") . '>' . htmlentities($f['titulo'], ENT_QUOTES, 'utf-8') . '</a></td>'; $data .= '<td class="precio">$' . number_format($precio, 2, ".", ",") . '</td>'; $data .= '<tr><td colspan="2"><strong>Etiquetas:</strong> ' . $tags . '</td></tr>'; $data .= '</tr>'; // Titulo + Precio $data .= '<tr><td colspan="2" class="desc">' . htmlentities(strip_tags($descripcion), ENT_QUOTES, 'utf-8') . '</td></tr>'; $data .= ui_publicacion_barra_acciones($tipo, $f); $data .= '</table>'; $data .= '</td>'; $data .= '</tr>'; $data .= '</tbody>'; $data .= '</table>'; $data .= '<br />'; } // -- Mostramos los links de paginación if ($Paginacion['paginas'] > 0) { $data .= '<div id="paginador">'; $data .= 'Páginas: '; $data .= @$_GET['p'] > 1 ? '<a href="' . URL_agregar_parametros(preg_replace('/p=.*/', '', curPageURL()), array('p' => @$_GET['p'] - 1)) . '"><< </a>' : ''; for ($i = 1; $i < $Paginacion['paginas'] + 2; $i++) { if ($i == @$_GET['p']) { $data .= "<strong>{$i}</strong> "; } else { $URL = URL_agregar_parametros(preg_replace('/p=.*/', '', curPageURL()), array('p' => $i)); $data .= sprintf('<a href="%s">%s</a> ', $URL, $i); } } $data .= @$_GET['p'] < $Paginacion['paginas'] ? '<a href="' . URL_agregar_parametros(preg_replace('/p=.*/', '', curPageURL()), array('p' => @$_GET['p'] + 1)) . '">>></a>' : ''; $data .= '</div>'; } return $data; }