function CONTENIDO_VENDER() { global $arrJS, $arrHEAD; // Comprobamos que ya haya ingresado al sistema if (!S_iniciado()) { echo "Necesitas iniciar sesión para poder <b>publicar</b> y <b>vender</b>.<br />"; require_once "PHP/inicio.php"; CONTENIDO_INICIAR_SESION(); return; } // --------------------------VARIABLES---------------------------- $flag_op_y_saltar = false; $flag_enviar = isset($_POST['vender_enviar']); $flag_publicar = isset($_POST['vender_publicar']); $flag_modo_previsualizacion = isset($_POST['vender_previsualizar']); $flag_modo_escritura = (isset($_POST['vender_publicar']) || isset($_POST['vender_previsualizar'])) && !isset($_POST['vender_editar']); // --------------------------CATEGORIA------------------------------- if (!isset($_GET['op']) && !isset($_GET['ticket'])) { // Será que aún tiene ventas disponibles? if (ObtenerEstadisticasUsuario(_F_usuario_cache('id_usuario'), _EST_CANT_PUB_ACEPT) >= _F_usuario_cache('nPubMax')) { echo Mensaje("Ud. ha alcanzado su límite de publicaciones (" . _F_usuario_cache('nPubMax') . "), si desea agregar más publicaciones puede eliminar una publicación actual o adquirir una cuenta premium."); } else { // No ha escogido categoría, le mostramos las opciones. echo "<h1>Realizar una nueva publicación</h1>" . "Por favor seleccione la categoría mayor a la que pertenece su publicación. Esto es necesario para ofrecerle únicamente las opciones relevantes a su publicación, en el siguiente paso podrá definir la sub-categoría." . '<br />' . '<ul>' . '<li>' . ui_href("vender_ir_inmueble", "vender?op=inmueble", "Inmueble") . "<br /><span class='explicacion'>venta o alquiler de casas, apartamentos y demás bienes inmuebles</span></li>" . '<li>' . ui_href("vender_ir_inmueble", "vender?op=automotor", "Automotor") . "<br /><span class='explicacion'>venta o alquiler de automores (carros, vehículos, motocicletas y toda máquina propulsada por un motor)</span></li>" . '<li>' . ui_href("vender_ir_servicio", "vender?op=servicio", "Servicio") . " <br /><span class='explicacion'>servicios profesiales (electricista, programador, diseñador, albañil, constructor, arquitecto, etc.)</span></li>" . '<li>' . ui_href("vender_ir_articulo", "vender?op=articulo", "<strong>Artículo</strong>") . "<br /><span class='explicacion'>encontrarás sub categorías para todo lo que las anteriores 3 categorías mayores no cubren</span></li>" . '</ul>'; } echo '<h1>Mis publicaciones</h1>'; // Mostrar las ventas "vendidas": $c = "SELECT id_publicacion, titulo, id_categoria, DATE(fecha_fin) AS fecha_fin, IF((SELECT nombre FROM ventas_categorias AS b WHERE b.id_categoria = a.id_categoria) is NULL,'<sin categoría>',(SELECT nombre FROM ventas_categorias AS b WHERE b.id_categoria = a.id_categoria)) AS categoria, (SELECT rubro FROM ventas_categorias AS b WHERE b.id_categoria=a.id_categoria) AS rubro FROM ventas_publicaciones AS a WHERE id_usuario='" . _F_usuario_cache('id_usuario') . "' AND tipo=" . _A_vendido; $r = db_consultar($c); if (mysql_num_rows($r) > 0) { echo "<h2>Ventas realizadas y cerradas</h2>"; echo '<table class="ancha">'; echo '<tr><th>Título</th><th>Categoría</th><th>Tipo</th><th>Acciones</th></tr>'; while ($f = mysql_fetch_array($r)) { echo "<tr><td><a href=\"clasificados-en-el-salvador-vendo-" . $f['id_publicacion'] . "_" . SEO($f['titulo']) . "\">" . htmlentities($f['titulo'], ENT_QUOTES, 'UTF-8') . "</a></td><td>" . htmlentities($f['categoria'], ENT_QUOTES, 'UTF-8') . "</td><td>" . htmlentities($f['rubro'], ENT_QUOTES, 'UTF-8') . "</td><td><a href=\"vender?ticket=" . $f['id_publicacion'] . "\">publicar nuevamente</a></td></tr>"; } echo "</table>"; } // Mostrar las ventas publicadas: $c = "SELECT id_publicacion, titulo, id_categoria, DATE(fecha_fin) AS fecha_fin, IF((SELECT nombre FROM ventas_categorias AS b WHERE b.id_categoria = a.id_categoria) is NULL,'<sin categoría>',(SELECT nombre FROM ventas_categorias AS b WHERE b.id_categoria = a.id_categoria)) AS categoria, (SELECT rubro FROM ventas_categorias AS b WHERE b.id_categoria=a.id_categoria) AS rubro FROM ventas_publicaciones AS a WHERE id_usuario='" . _F_usuario_cache('id_usuario') . "' AND tipo='" . _A_aceptado . "' AND fecha_fin >='" . mysql_datetime() . "'"; $r = db_consultar($c); if (mysql_num_rows($r) > 0) { echo "<h2>Ventas publicadas actualmente</h2>"; echo '<table class="ancha">'; echo '<tr><th>Título</th><th>Expira</th><th>Categoría</th><th>Tipo</th><th>Acciones</th></tr>'; while ($f = mysql_fetch_array($r)) { echo "<tr><td><a href=\"clasificados-en-el-salvador-vendo-" . $f['id_publicacion'] . "_" . SEO($f['titulo']) . "\">" . htmlentities($f['titulo'], ENT_QUOTES, 'UTF-8') . "</a></td><td>" . $f['fecha_fin'] . "</td><td>" . htmlentities($f['categoria'], ENT_QUOTES, 'UTF-8') . "</td><td>" . htmlentities($f['rubro'], ENT_QUOTES, 'UTF-8') . "</td><td><a href=\"clasificados-en-el-salvador-vendo-" . $f['id_publicacion'] . "_" . SEO($f['titulo']) . "?se=editar\">editar</a>|<a href=\"clasificados-en-el-salvador-vendo-" . $f['id_publicacion'] . "_" . SEO($f['titulo']) . "?se=cerrar\">¡vendido!</a>|" . ui_href("", "vender?ticket=" . $f['id_publicacion'] . "&eliminar=proceder", "eliminar") . "</td></tr>"; } echo "</table>"; } // Mostrar las ventas incompletas: $c = "SELECT id_publicacion, IF(titulo='','<sin título>', titulo) AS titulo2, id_categoria, IF((SELECT nombre FROM ventas_categorias AS b WHERE b.id_categoria = a.id_categoria) is NULL,'<sin categoría>',(SELECT nombre FROM ventas_categorias AS b WHERE b.id_categoria = a.id_categoria)) AS categoria, (SELECT rubro FROM ventas_categorias AS b WHERE b.id_categoria=a.id_categoria) AS rubro FROM ventas_publicaciones AS a WHERE id_usuario='" . _F_usuario_cache('id_usuario') . "' AND tipo='" . _A_temporal . "'"; $r = db_consultar($c); if (mysql_num_rows($r) > 0) { echo "<h2>Publicaciones que no ha enviado a aprobación</h2>"; echo '<table class="ancha">'; echo '<tr><th>Título</th><th>Categoría</th><th>Tipo</th><th>Acciones</th></tr>'; while ($f = mysql_fetch_array($r)) { echo "<tr><td>" . htmlentities($f['titulo2'], ENT_QUOTES, 'UTF-8') . "</td><td>" . htmlentities($f['categoria'], ENT_QUOTES, 'UTF-8') . "</td><td>" . htmlentities($f['rubro'], ENT_QUOTES, 'UTF-8') . "</td><td>" . ui_href("", "vender?ticket=" . $f['id_publicacion'], "continuar") . "|" . ui_href("", "vender?ticket=" . $f['id_publicacion'] . "&eliminar=proceder", "eliminar") . "</td></tr>"; } echo "</table>"; } // Mostrar las ventas esperando aprobación $c = "SELECT id_publicacion, (SELECT rubro FROM ventas_categorias AS b WHERE b.id_categoria=a.id_categoria) AS rubro, IF(titulo='','<sin título>', titulo) AS titulo2, id_categoria, IF((SELECT nombre FROM ventas_categorias AS b WHERE b.id_categoria = a.id_categoria) is NULL,'<sin categoría>',(SELECT nombre FROM ventas_categorias AS b WHERE b.id_categoria = a.id_categoria)) AS categoria FROM ventas_publicaciones AS a WHERE id_usuario='" . _F_usuario_cache('id_usuario') . "' AND tipo='" . _A_esp_activacion . "'"; $r = db_consultar($c); if (mysql_num_rows($r) > 0) { echo "<h2>Publicaciones enviadas en espera de aprobación</h2>"; echo '<table class="ancha">'; echo '<tr><th>Título</th><th>Categoría</th><th>Tipo</th></tr>'; while ($f = mysql_fetch_array($r)) { echo "<tr><td>" . htmlentities($f['titulo2'], ENT_QUOTES, 'UTF-8') . "</td><td>" . htmlentities($f['categoria'], ENT_QUOTES, 'UTF-8') . "</td><td>" . htmlentities($f['rubro'], ENT_QUOTES, 'UTF-8') . "</td></tr>"; } echo "</table>"; } // Mostrar las ventas caducadas $c = "SELECT id_publicacion, (SELECT rubro FROM ventas_categorias AS b WHERE b.id_categoria=a.id_categoria) AS rubro, IF(titulo='','<sin título>', titulo) AS titulo2, id_categoria, IF((SELECT nombre FROM ventas_categorias AS b WHERE b.id_categoria = a.id_categoria) is NULL,'<sin categoría>',(SELECT nombre FROM ventas_categorias AS b WHERE b.id_categoria = a.id_categoria)) AS categoria FROM ventas_publicaciones AS a WHERE id_usuario='" . _F_usuario_cache('id_usuario') . "' AND tipo = '" . _A_aceptado . "' AND fecha_fin < CURDATE()"; $r = db_consultar($c); if (mysql_num_rows($r) > 0) { echo "<hr />"; echo "<h2>Publicaciones que han caducado</h2>"; echo '<table class="ancha">'; echo '<tr><th>Título</th><th>Categoría</th><th>Tipo</th><th>Acciones</th></tr>'; while ($f = mysql_fetch_array($r)) { echo "<tr><td><a href=\"clasificados-en-el-salvador-vendo-" . $f['id_publicacion'] . "_" . SEO($f['titulo2']) . "\">" . htmlentities($f['titulo2'], ENT_QUOTES, 'UTF-8') . "</a></td><td>" . htmlentities($f['categoria'], ENT_QUOTES, 'UTF-8') . "</td><td>" . htmlentities($f['rubro'], ENT_QUOTES, 'UTF-8') . "</td><td><a href=\"clasificados-en-el-salvador-vendo-" . $f['id_publicacion'] . "_" . SEO($f['titulo2']) . "?se=republicar\">republicar</a></td></tr>"; } echo "</table>"; } return; } elseif (isset($_GET['op']) && !isset($_GET['ticket'])) { $op = $_GET['op']; if (!is_numeric($op)) { $c = "SELECT id_categoria FROM ventas_categorias WHERE rubro='" . db_codex($op) . "' LIMIT 1"; } else { $c = "SELECT id_categoria FROM ventas_categorias WHERE id_categoria='" . db_codex($op) . "' LIMIT 1"; } $r = db_consultar($c); $f = mysql_fetch_row($r); if (!empty($f[0])) { $_POST["id_categoria"] = $f[0]; $flag_modo_escritura = true; $flag_op_y_saltar = true; } } elseif (isset($_GET['op']) && isset($_GET['ticket'])) { $flag_modo_escritura = false; $flag_op_y_saltar = true; } // --------------------------TICKET------------------------------- // Creamos el Ticket Temporal de venta si no lo tenemos o validamos el actual $ticket = empty($_GET['ticket']) ? ObtenerTicketTMP(_F_usuario_cache('id_usuario')) : $_GET['ticket']; if (!ComprobarTicket($ticket)) { echo "La validación de su Ticket ha fallado.<br />"; echo "Esto podría bien ser una falla del sistema o un error en su navegador.<br />"; echo "Lo sentimos, por seguridad esta operación no continuará."; return; } db_consultar(sprintf('UPDATE ventas_publicaciones SET tipo=%s WHERE id_publicacion=%s', _A_temporal, $ticket)); // ---Si el ticket es valido entoces rescatemos lo que lleva hecho--- $arrHEAD[] = '<script type="text/javascript" src="JS/tiny_mce/tiny_mce_gzip.js"></script> <script type="text/javascript"> tinyMCE_GZ.init({ plugins : \'style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,\'+ \'searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras\', themes : \'advanced\', languages : \'es\', disk_cache : true, debug : false }); </script> <script type="text/javascript"> tinyMCE.init({ language : "es", elements : "descripcion", theme : "advanced", mode : "exact", plugins : "safari,style,layer,table,advhr,advimage,advlink,media,paste,directionality,fullscreen,visualchars,nonbreaking,xhtmlxtras,template", theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect,cleanup,code", theme_advanced_buttons2 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,media,advhr,|,ltr,rtl,|,fullscreen", theme_advanced_buttons3 : "", theme_advanced_toolbar_location : "top", theme_advanced_toolbar_align : "left", button_tile_map : true, });</script> '; if (isset($_GET['eliminar'])) { if (!empty($_GET['ticket'])) { DestruirTicket($_GET['ticket']); } echo "La publicación ha sido cancelada y eliminada.<br />"; echo ui_href("", "./", "Regresar a la página principal") . " / " . ui_href("", "./vender", "Regresar a ventas"); return; } if (isset($_POST['vender_eliminar'])) { header("location: ./"); if (!empty($_GET['ticket'])) { DestruirTicket($_GET['ticket']); } echo "Cancelando venta..."; return; } /* Advertencia: Hay que recargar los datos luego de la edición para evitar problemas de que los cambios anteriores queden "en cache" */ $Publicacion = ObtenerDatos($ticket); if ($flag_modo_escritura) { DescargarArchivos("vender_deshabilitar", $ticket, $Publicacion['id_usuario']); CargarArchivos("vender_imagenes", $ticket, $Publicacion['id_usuario']); CargarDatos($ticket, $Publicacion['id_usuario']); // Refrescamos los datos de la publicación $Publicacion = ObtenerDatos($ticket); } $Vendedor = _F_usuario_datos($Publicacion['id_usuario']); $imagenes = ObtenerImagenesArr($ticket, ""); if ($flag_op_y_saltar) { header("location: ./vender?ticket={$ticket}"); } if ($flag_modo_previsualizacion || $flag_publicar || $flag_enviar) { if (in_array(@$Publicacion["rubro"], array('articulo', 'automotor', 'inmueble')) && !count($imagenes)) { $flag_enviar = false; echo Mensaje("necesita agregar al menos una foto de su producto", _M_ERROR); } if (strlen($Publicacion['titulo']) < 20) { $flag_enviar = false; echo Mensaje("el título debe contener más de 20 letras", _M_ERROR); } if (strlen($Publicacion['titulo']) > 50) { $flag_enviar = false; echo Mensaje("el título no debe contener más de 100 letras", _M_ERROR); } if (strlen($Publicacion['descripcion_corta']) < 10) { $flag_enviar = false; echo Mensaje("la descripción corta debe contener más de 10 letras", _M_ERROR); } if (strlen($Publicacion['descripcion_corta']) > 300) { $flag_enviar = false; echo Mensaje("la descripción corta no debe contener más de 300 letras", _M_ERROR); } } if ($flag_enviar) { // Al fin lo terminó de editar y lo esta enviando... Aleluya! //- // Si es Admin entonces aprobar automaticamente, si no pues mandarlo a esperar activacion $c = "UPDATE ventas_publicaciones SET tipo='" . _A_esp_activacion . "' WHERE id_publicacion={$ticket} LIMIT 1"; $r = db_consultar($c); if (db_afectados() == 1) { if (_F_usuario_cache('nivel') == _N_administrador) { Publicacion_Aprobar($ticket); echo Mensaje("Su venta ha sido publicada", _M_INFO); } else { $vendedor = _F_usuario_datos($Publicacion['id_usuario']); email($vendedor['email'], PROY_NOMBRE . ' - Publicación "' . $Publicacion['titulo'] . '" ha sido recibida', 'Su publicación ha sido recibida en nuestro sistema y se encuentra en proceso de activación.<br />\\nEsta activación puede demorar entre <strong>1 minuto y 1 hora</strong> dependiendo de la disponibilidad de los administradores en línea.<br />Esta corta espera es necesaria para realizar una revisión de las publiciaciones y así poder ofrecer el mejor contenido a nuestros visitantes.<br />\\n!Gracias por preferir ' . PROY_NOMBRE . ' para realizar sus publicaciones!'); email_x_nivel(_N_administrador, 'Nueva publicacion: ' . $Publicacion['titulo'] . ' ' . crc32(microtime()), 'Estimado administrador de ' . PROY_NOMBRE . ', hay una nueva publicacion esperando aprobación: ' . $Publicacion['titulo'] . '.<br />Puede realizar la aprobación ingresando en la siguiente dirección: <a href="' . PROY_URL . 'admin_publicaciones_activacion">Administración: aprobacion de publicaciones</a>'); echo Mensaje('Su venta ha sido exitosamente enviada para aprobación', _M_INFO); } } else { echo Mensaje("Su venta ha NO a sido enviada para aprobación, sucedió algún error", _M_ERROR); } echo "Continuar a: " . ui_href("", "vender", "publicar otra venta") . " / " . ui_href("", "./", "página principal") . "<br />"; return; } if ($flag_modo_previsualizacion || $flag_publicar) { // Si es admin no verá el mensaje confuso. if ($Publicacion['id_usuario'] == _F_usuario_cache('id_usuario')) { echo mensaje("esta es una previsualización.<br />Su publicacion no será visible al publico hasta que presione el botón \"Enviar\".<br />Por favor revise una ultima ves su publicacion antes de enviarla.", _M_INFO); } echo '<hr />'; echo "<p>Esta publicando en la categoría <strong>" . get_path(db_codex(@$Publicacion['id_categoria']), false) . "</strong></p>"; echo "<h2>Vista preliminar de su publicación en las listas</h2>"; echo VISTA_ListaPubs("id_publicacion={$ticket}", "", "previsualizacion", "Woops!, ¡problemas intentando cargar la previsualización!"); echo "<h2>Vista preliminar de su publicación al ser accedida</h2>"; echo '<div id="prev_pub">'; require_once "PHP/contenido.php"; $_GET['publicacion'] = $ticket; CONTENIDO_PUBLICACION("previsualizacion"); echo "</div>"; echo '<hr style="margin-bottom:50px" />'; } // ----------------------------------------------------------------- // Inicio de formulario echo "<form action=\"vender?ticket={$ticket}\" method=\"POST\" enctype=\"multipart/form-data\">"; if ($flag_publicar) { $Aprobacion = _F_usuario_cache('nivel') == _N_administrador ? "Ud. es administrador, su publicación será aprobada automaticamente" : "No podrá editar su publicación de nuevo hasta que esta sea esta sea revisada y aprobada."; echo "<span class='explicacion'>Esta a punto de enviar su publicación a revisión. Puede seguir editando su publicación presionando el botón <b>Editar</b> o finalizar presionando el botón <b>Enviar</b>.<br />{$Aprobacion}</span>"; echo "<br />"; echo "<center>"; echo ui_input("vender_editar", "Editar", "submit"); echo ui_input("vender_enviar", "Enviar", "submit"); echo "</center>"; return; } echo "<ol class=\"ventas\">"; echo "<li>Selección de categoría</li>"; echo "<span class='explicacion'>Ubique su árticulo en la categoría que consideres apropiada.</span>"; echo "Mi árticulo corresponde a la siguiente categoría<br />" . ui_combobox("id_categoria", join("", ver_hijos("", @$Publicacion["rubro"])), @$Publicacion["id_categoria"]) . "<br />"; echo "<li>Precio</li>"; echo "<span class='explicacion'>Précio en dólares de Estados Unidos de America (\$ USA).</span>"; echo "Précio " . ui_input("precio", @$Publicacion["precio"], "", "", "width:30ex", "MAXLENGTH='30'") . "<br />"; echo "<li>Título de la publicación</li>"; echo "<span class='explicacion'>Utilice un título corto, descriptivo y llamativo, máximo 50 carácteres. No se admite código HTML.</span>"; echo "Titulo " . ui_input("titulo", @$Publicacion["titulo"], "text", "", "width:50ex", "MAXLENGTH='50'") . "<br />"; echo "<li>Tags (palabras clave) para publicación</li>"; echo "<span class='explicacion'>Utilice 5 palabras (máximo) separadas por coma (,) que describan su producto. Para casos como 'El Salvador' ingreselo como 'El-Salvador'</span>"; echo "Tags " . ui_input("tags", @$Publicacion["tags"], "text", "", "width:50ex", "MAXLENGTH='50'") . "<br />"; echo "<li>Descripción corta de la publicación</li>"; echo "<span class='explicacion'>Describa brevemente su venta (o prestación de servicio), solo los detalles más importantes, máximo 300 carácteres. No se admite código HTML.</span>"; echo "Descripción corta " . ui_input("descripcion_corta", @$Publicacion["descripcion_corta"], "text", "", "width:70ex", "MAXLENGTH='300'") . "<br />"; echo "<li>Descripción del artículo</li>"; echo "<span class='explicacion'>Describa en detalle tu artículo, incluye todos los datos relevantes que desees, máximo 5000 carácteres.<br />¡Puedes usar <a href=\"http://www.bbcode-to-html.com/\">bbcode-to-html</a> para convertir tus mensajes de SVCommunity.org a HTML!, si lo haces de esta forma utiliza el botón \"html\" para ingresar el texto resultante.</span>"; echo "Descripción larga<br />" . ui_textarea("descripcion", @$Publicacion["descripcion"], "", "width:100%;height:20em;") . "<br />"; if (in_array(@$Publicacion["rubro"], array("articulo", "automotor"))) { echo "<li>Características del artículo</li>"; echo "<span class='explicacion'>Seleccione solo las opciones que ayuden a describir de forma precisa tu producto.</span>"; echo db_ui_checkboxes("venta[]", "ventas_flags", "id_flag", "nombrep", "descripcion", ObtenerFlags($ticket, "venta"), "", "tipo='venta'"); } echo "<li>Formas de pago admitidas</li>"; echo "<span class='explicacion'>Selecione solo las opciones de pago que admitirá.</span>"; echo db_ui_checkboxes("pago[]", "ventas_flags", "id_flag", "nombrep", "descripcion", ObtenerFlags($ticket, "pago"), "", "tipo='pago'"); if (in_array(@$Publicacion["rubro"], array("articulo"))) { echo "<li>Formas de entrega admitidas</li>"; echo "<span class='explicacion'>Selecione solo las opciones de tipos de entrega que admitirá.</span>"; echo db_ui_checkboxes("entrega[]", "ventas_flags", "id_flag", "nombrep", "descripcion", ObtenerFlags($ticket, "entrega"), "", "tipo='entrega'"); } switch (@$Publicacion["rubro"]) { case "articulo": echo "<li>Fotografías del artículo</li>"; break; case "automotor": echo "<li>Fotografías del automotor</li>"; break; case "inmueble": echo "<li>Fotografías del inmueble</li>"; break; case "servicio": echo "<li>Imagen relacionada con su servicio (logotipo, etc.)</li>"; break; } echo '<span class="explicacion">Cargue las fotografías reales de su artículo, <strong style="color:#F00">necesita al menos una foto para que su publicacion sea aprobada y publicada</strong>.<br />Imagenes tomadas de la página del fabricante o similires son permitidas con un máximo de dos imagenes.<br />En total se admiten cinco imagenes</span>'; echo "<br />"; if (isset($imagenes) && is_array($imagenes)) { foreach ($imagenes as $archivo) { echo "<div style='display:inline-block'><a href=\"./imagen_" . $archivo . "\" title=\"IMAGEN CARGADA\" target=\"_blank\"><img src=\"./imagen_" . $archivo . "m\" /></a><br />" . ui_input("vender_deshabilitar[]", $archivo, "checkbox") . " Eliminar</div>"; } echo "<div style=\"clear:both\"></div>"; } $NoMaxImg = in_array(@$Publicacion["rubro"], array("servicio")) ? 1 : $Vendedor['nImgMax']; $inicio = isset($imagenes) ? count($imagenes) : 0; for ($i = $inicio; $i < $NoMaxImg; $i++) { echo "Imagen " . ($i + 1) . ": Cargar " . ui_input("vender_imagenes[]", "", "file") . "<br />"; } // Si es admin solo verá "Guardar". if ($Publicacion['id_usuario'] == _F_usuario_cache('id_usuario')) { echo "<li>Previsualizar y Publicar</li>"; echo "</li>"; echo "<span class='explicacion'>Puede observar como quedaría su publicación utilizando el botón 'Previsualizar'.<br />Cuando este satisfecho con el resultado presione el botón 'Publicar'.</span>"; echo "<br />"; echo "<center>"; echo ui_input("vender_previsualizar", "Vista previa", "submit"); echo ui_input("vender_publicar", "Publicar", "submit"); } else { echo ui_input("vender_previsualizar", "Guardar", "submit"); } echo ui_input("vender_eliminar", "Eliminar", "submit"); echo "</center>"; echo "</form>"; }
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 DestruirTicket($id_publicacion, $tipo = _A_temporal) { $AND_usuario = $AND_tipo = ''; if (_F_usuario_cache('nivel') != _N_administrador) { $id_usuario = _F_usuario_cache('id_usuario'); $AND_usuario = "AND id_usuario='{$id_usuario}'"; } $id_publicacion = db_codex($id_publicacion); $c = "DELETE FROM ventas_publicaciones WHERE id_publicacion='{$id_publicacion}' {$AND_usuario} {$AND_tipo} LIMIT 1"; $r = db_consultar($c); $ret = db_afectados(); if ($ret) { //Borrar los archivos de imagenes relacionadas EliminarArchivosArr(ObtenerImagenesArr($id_publicacion)); EliminarArchivosArr(ObtenerMiniImagenesArr($id_publicacion)); $c = "DELETE FROM ventas_imagenes WHERE id_publicacion='{$id_publicacion}'"; $r = db_consultar($c); // Borrar los flags relacionados $c = "DELETE FROM ventas_flags_pub WHERE id_publicacion='{$id_publicacion}'"; $r = db_consultar($c); //Borrar los tags relacionados $c = "DELETE FROM ventas_tag_uso WHERE id_publicacion='{$id_publicacion}'"; $r = db_consultar($c); } return $ret; }