Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal

GordoSatiro

Comalina
  • Content Count

    43
  • Posts on chatbox

    7
  • Joined

  • Last visited

  • Days Won

    2

GordoSatiro last won the day on February 19

GordoSatiro had the most liked content!

Community Reputation

2 Neutral

About GordoSatiro

  • Rank
    Member

Recent Profile Visitors

151 profile views
  1. GordoSatiro

    Problemita con comentarios de invitados de Aperpen

    Por alguna razón, se soluciono solo. Cierro
  2. GordoSatiro

    Subir portada desde PC con theme Flatpost

    Aún mejor así, muchas gracias!
  3. GordoSatiro

    Subir portada desde PC con theme Flatpost

    Al final lo hice con la librería Imgur haciendo que al subir una imagen lo único que haga es poner el value del input de Portada con el link. Si alguien lo quiere: (Poner en themes/tu-theme/js) upload.js var feedback = function(res) { if (res.success === true) { var get_link = res.data.link.replace(/^http:\/\//i, 'https://'); $('input[name=imagen]').val(get_link); } }; new Imgur({ clientid: 'client-id-de-imgur-buscar-en-google-XD', callback: feedback }); imgur.js /* Imgur Upload Script */ (function (root, factory) { "use strict"; if (typeof define === 'function' && define.amd) { define([], factory); } else if (typeof exports === 'object') { module.exports = factory(); } else { root.Imgur = factory(); } }(this, function () { "use strict"; var Imgur = function (options) { if (!this || !(this instanceof Imgur)) { return new Imgur(options); } if (!options) { options = {}; } if (!options.clientid) { throw 'Provide a valid Client Id here: https://api.imgur.com/'; } this.clientid = options.clientid; this.endpoint = 'https://api.imgur.com/3/image'; this.callback = options.callback || undefined; this.dropzone = document.querySelectorAll('.dropzone'); this.info = document.querySelectorAll('.info'); this.run(); }; Imgur.prototype = { createEls: function (name, props, text) { var el = document.createElement(name), p; for (p in props) { if (props.hasOwnProperty(p)) { el[p] = props[p]; } } if (text) { el.appendChild(document.createTextNode(text)); } return el; }, insertAfter: function (referenceNode, newNode) { referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling); }, post: function (path, data, callback) { var xhttp = new XMLHttpRequest(); xhttp.open('POST', path, true); xhttp.setRequestHeader('Authorization', 'Client-ID ' + this.clientid); xhttp.onreadystatechange = function () { if (this.readyState === 4) { if (this.status >= 200 && this.status < 300) { var response = ''; try { response = JSON.parse(this.responseText); } catch (err) { response = this.responseText; } callback.call(window, response); } else { throw new Error(this.status + " - " + this.statusText); } } }; xhttp.send(data); xhttp = null; }, createDragZone: function() { var p1, p2, input; p1 = this.createEls('p', {}, 'Arrastra tus imágenes aquí'); p2 = this.createEls('p', {}, 'O clickea para seleccionar una'); input = this.createEls('input', {type: 'file', className: 'input-portada', accept: 'image/*'}); Array.prototype.forEach.call(this.info, function (zone) { zone.appendChild(p1); zone.appendChild(p2); }.bind(this)); Array.prototype.forEach.call(this.dropzone, function (zone) { zone.appendChild(input); this.status(zone); this.upload(zone); }.bind(this)); }, loading: function () { var div, table, img; div = this.createEls('div', {className: 'loading-modal'}); table = this.createEls('table', {className: 'loading-table'}); img = this.createEls('img', {className: 'loading-image', src: 'https://tu-pagina.com/themes/tutheme/css/loading-spin.svg'}); div.appendChild(table); table.appendChild(img); document.body.appendChild(div); }, status: function (el) { var div = this.createEls('div', {className: 'status'}); this.insertAfter(el, div); }, matchFiles: function (file, zone) { var status = zone.nextSibling; if (file.type.match(/image/) && file.type !== 'image/svg+xml') { document.body.classList.add('loading'); status.classList.remove('bg-success', 'bg-danger'); status.innerHTML = ''; var fd = new FormData(); fd.append('image', file); this.post(this.endpoint, fd, function (data) { document.body.classList.remove('loading'); typeof this.callback === 'function' && this.callback.call(this, data); }.bind(this)); } else { status.classList.remove('bg-success'); status.classList.add('bg-danger'); status.innerHTML = 'Invalid archive'; } }, upload: function (zone) { var events = ['dragenter', 'dragleave', 'dragover', 'drop'], file, target, i, len; zone.addEventListener('change', function (e) { if (e.target && e.target.nodeName === 'INPUT' && e.target.type === 'file') { target = e.target.files; for (i = 0, len = target.length; i < len; i += 1) { file = target[i]; this.matchFiles(file, zone); } } }.bind(this), false); events.map(function (event) { zone.addEventListener(event, function (e) { if (e.target && e.target.nodeName === 'INPUT' && e.target.type === 'file') { if (event === 'dragleave' || event === 'drop') { e.target.parentNode.classList.remove('dropzone-dragging'); } else { e.target.parentNode.classList.add('dropzone-dragging'); } } }, false); }); }, run: function () { var loadingModal = document.querySelector('.loading-modal'); if (!loadingModal) { this.loading(); } this.createDragZone(); } }; return Imgur; })); OJO: MODIFICAR REEMPLAZANDO "TU-PAGINA.COM/BLABABLA" CON UNA URL DEL ESTILO: "https://craper.es/themes/Flatpost/css/loading-spin.svg" img = this.createEls('img', {className: 'loading-image', src: 'https://tu-pagina.com/themes/tutheme/css/loading-spin.svg'}); En templates/modules/m.agregar_form.tpl Abajo de {if $tsUser->is_admod || $tsUser->permisos.gopp} Agregamos <link href="{$tsConfig.css}/style.css" rel="stylesheet" type="text/css"> <link href="{$tsConfig.css}/mobile-style.css" rel="stylesheet" type="text/css"> Luego en el mismo archivo, abajo de: <input type="text" tabindex="2" name="imagen" maxlength="180" size="60" placeholder="Ingrese URL de la imagen como caratula para la home" class="input" value="{$tsDraft.b_portada}" /><hr /> Agregamos <div class="dropzone"> <div class="info"></div> </div> <script type="text/javascript" src="{$tsConfig.js}/imgur.js"></script> <script type="text/javascript" src="{$tsConfig.js}/upload.js"></script> Luego vamos a tutheme/css/ y agregamos los siguientes archivos style.css @charset "UTF-8"; body.loading .loading-modal { display: block } .title { margin-right: auto; margin-left: auto; text-align: center; } .dropzone { border: 4px dashed #ccc; height: 200px; position: relative; margin-right: auto; margin-left: auto; max-width: 50%; } .info { margin-top: 11%; } .dropzone p { /*height: 100%;*/ /*line-height: 200px;*/ margin: 0%; text-align: center; width: 100% } .input-portada { height: 100%; left: 0; outline: 0; opacity: 0; position: absolute; top: 0; width: 100% } .status { border-radius: 5px; text-align: center; width: 50%; margin-left: auto; margin-right: auto; } .image-url { width: 50%; } .dropzone.dropzone-dragging { border-color: #000 } .loading-modal { background-color: rgba(255, 255, 255, .8); display: none; position: fixed; z-index: 1000; top: 0; left: 0; height: 100%; width: 100% } .loading-table { margin-left: auto; margin-right: auto; margin-top: 15%; margin-bottom: 15%; } mobile-style.css @charset "UTF-8"; /* Mobile view */ @media screen and (min-width: 300px) and (max-width: 700px) { .dropzone { max-width: 80%; } .info { margin-top: 30%; } .status { width: 80%; } .image-url { width: 80%; } .loading-table { margin-left: auto; margin-right: auto; margin-top: 50%; margin-bottom: 50%; } } Descargamos loading-spin.svg y lo metemos en tutheme/css/ loading-spin.svg
  4. Sería como subir un avatar o una foto desde tu PC, pero para los posts. Es un poco tedioso tener que buscar una imagen en google o tener que subir una foto a Imgur solo para copiar el link y ponerla en el campo de portada, lo mejor sería tener las dos opciones y que el usuario elija si subirla desde su PC o desde la URL.
  5. Eso. Quiero que los posts se ordenen en la home cuando es comentado, por ejemplo: Hay dos posts, supongamos que A y B. B está de primero en la home y A está de segundo, pero alguien comenta en el post A, por lo tanto A se mueve al primer puesto en la home y B queda de segundo hasta que alguien lo comente.
  6. GordoSatiro

    No se envían los emails de recover

    PHP 7.1
  7. GordoSatiro

    No se envían los emails de recover

    Gracias a este buen señor, lo pude arreglar https://github.com/PHPMailer/PHPMailer/issues/1209#issuecomment-338898794 Comentando la linea "$smail->isSMTP();" comienza a funcionar sin problema alguno. //$smail->isSMTP(); Por lo que termina siendo: /* sendEmail() */ function sendEmail(){ global $tsCore; require $this->setup_sourcefolder . 'Exception.php'; require $this->setup_sourcefolder . 'PHPMailer.php'; require $this->setup_sourcefolder . 'SMTP.php'; $smail = new PHPMailer(true); try { //$smail->isSMTP(); $smail->Host = $this->setup_host; $smail->SMTPAuth = true; $smail->SMTPOptions = array( 'ssl' => array('verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true) ); $smail->Username = $this->setup_address; $smail->Password = $this->setup_password; $smail->SMTPSecure = 'ssl'; $smail->Port = $this->setup_port; $smail->setFrom($this->setup_address, $tsCore->settings['titulo']); $smail->addAddress($this->emailTo); $smail->isHTML(true); $smail->Subject = $this->emailSubject; $smail->Body = $this->emailBody; $smail->AltBody = strip_tags($this->emailBody); $smail->send(); return true; } catch (Exception $e) { return false; } }
  8. GordoSatiro

    No se envían los emails de recover

    Ahora al actualizar el c.emails.php e instalando PHPMailer, salta este error: var $setup_host = 'smtp.hostinger.com.ar'; var $setup_address = '[email protected]'; var $setup_password = 'la-contraseña'; var $setup_port = '587';
  9. GordoSatiro

    No se envían los emails de recover

    Buenas. No se que paso con mi página, pero dejo de enviar todos los correos. Los de contenido eliminado, recuperar contraseña, activar cuenta. Todos, ya no envía ninguno. Lo raro es que tengo el mismo hosting que siempre y antes si me enviaba emails normalmente, pero ya no lo hace. web: https://craper.es/ ajax.recover.php: <?php if ( ! defined('TS_HEADER')) exit('No se permite el acceso directo al script'); /** * Controlador AJAX * * @name ajax.recover.php * @author PHPost Team */ $tsLevel = 1; // solo visitantes $tsLevelMsg = $tsCore->setLevel($tsLevel, true); if($tsLevelMsg != 1){ die('0: '.$tsLevelMsg); } $email = $tsCore->setSecure($_REQUEST['r_email']); $user_info = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT user_id, user_name, user_registro, user_activo FROM u_miembros WHERE user_email = \''.$email.'\'') or die('0: '.show_error('Error al ejecutar la consulta de la l&iacute;nea '.__LINE__.' de '.__FILE__.'.', 'db')); if(!db_exec('num_rows', $user_info)){ die('0: <div class="dialog_box">El email no se encuentra registrado.</div>'); } $tsData = db_exec('fetch_assoc', $user_info); include(TS_ROOT.DIRECTORY_SEPARATOR.'inc'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'c.emails.php'); switch($action){ case 'recover-pass': $tsEmail = new tsEmail('nope', 'chuck testa!'); // wtf $key = md5(sha1(uniqid(time().$email.microtime(true), true))); db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO w_contacts (user_id, user_email, `time`, `type`, `hash`) VALUES (\''.$tsData['user_id'].'\', \''.$email.'\', \''.time().'\', \'1\', \''.$key.'\')'); $to = $email; $subject = 'Recuperar acceso'; $body = 'Recuperar contrase&ntilde;a en <strong>'.$tsCore->settings['titulo'].'</strong><br /><br /> Hola '.$tsData['user_name'].':<br /> La verificación es usada para asegurar que sólo usted tenga acceso a su cuenta de '.$tsCore->settings['titulo'].' y que, si alguna vez olvida su contrase&ntilde;a, tengamos una forma de generarle una nueva. <br /><br /> Para recuperar su contrase&ntilde;a, acceda a <a href="'.$tsCore->settings['url'].'/password/'.$key.'/1/'.$tsCore->setSecure($email).'">este enlace</a><br /><br /><br /> Si usted no pidi&oacute; recuperaci&oacute;n de su contrase&ntilde;a, ignore este e-mail.<br /><br /> El staff de <strong>'.$tsCore->settings['titulo'].'</strong>'; // <-- $tsEmail->emailTo = $to; $tsEmail->emailSubject = $subject; $tsEmail->emailBody = $body; $tsEmail->emailHeaders = $tsEmail->setEmailHeaders(); $tsEmail->sendEmail($from, $to, $subject, $body) or die('0: Hubo un error al intentar procesar lo solicitado'); die('1: <div class="dialog_box">Las intrucciones para recuperar su contrase&ntilde;a de <b>'.$tsCore->settings['titulo'].'</b> a <b>'.$email.'</b>, si no aparece el e-mail en su bandeja de entrar, revise en correo no deseado porque puede haberse filtrado..</div>'); // --> break; case 'recover-validation': if($tsData['user_activo'] == 1) die('0: La cuenta ya se encuentra activada'); $tsEmail = new tsEmail($tsData, 'signup'); $key = md5(sha1(uniqid(time().$email.microtime(true), true))); db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO w_contacts (user_id, user_email, `time`, `type`, `hash`) VALUES (\''.$tsData['user_id'].'\', \''.$email.'\', \''.time().'\', \'2\', \''.$key.'\')'); $to = $email; $subject = ''.$tsData['user_name'].', active su cuenta ahora'; $body = 'Activaci&oacute;n de cuentas en <strong>'.$tsCore->settings['titulo'].'</strong><br /><br /> Hola '.$tsData['user_name'].':<br /> Le enviamos este email para confirmar el registro de su cuenta en '.$tsCore->settings['titulo'].'. <br /><br /> Para terminar el registro y poder acceder a la comunidad, acceda a <a href="'.$tsCore->settings['url'].'/validar/'.$key.'/2/'.$tsCore->setSecure($email).'">este enlace</a><br /><br /><br /> Si usted no pidi&oacute; recuperaci&oacute;n de su contrase&ntilde;a, ignore este e-mail.<br /><br /> El staff de <strong>'.$tsCore->settings['titulo'].'</strong>'; // <-- $tsEmail->emailTo = $to; $tsEmail->emailSubject = $subject; $tsEmail->emailBody = $body; $tsEmail->emailHeaders = $tsEmail->setEmailHeaders(); $tsEmail->sendEmail($from, $to, $subject, $body) or die('0: Hubo un error al intentar procesar lo solicitado'); die('1: <div class="box_cuerpo" style="padding: 12px 20px; border-top:1px solid #CCC">Hemos enviado un correo a <b>'.$email.'</b> con los &uacute;ltimos pasos para finalizar con el registro.<br><br>Si en los pr&oacute;ximos minutos no lo encuentras en tu bandeja de entrada, por favor, revisa tu carpeta de correo no deseado, es posible que se haya filtrado.<br><br>&iexcl;Muchas gracias!</div>'); // --> break; default: die('0: Este archivo no existe.'); break; } c.emails.php: <?php if ( ! defined('TS_HEADER')) exit('No se permite el acceso directo al script'); /** * Modelo para el control del envio de emails * * @name c.emails.php * @author PHPost Team */ class tsEmail { var $email_info = array(); // REFERENCIA PARA ENVIAR UN EMAIL var $emailSubject; var $emailHeaders; var $emailBody; var $emailTo; var $is_error; // SI OCURRE UN ERROR ESTA VARIABLE CONTENDRA EL NUMERO DE ERROR /* $tsEmailRef : tipo de email $tsEmailData: datos del email */ function __construct($tsEmailData,$tsEmailRef){ $this->email_info = array( 'ref' => $tsEmailRef, 'data' => $tsEmailData ); } /* setEmailInfo() */ function setEmail(){ $this->emailSubject = $this->setEmailSubject(); $this->emailHeaders = $this->setEmailHeaders(); $this->emailBody = $this->setEmailBody(); $this->emailTo = $this->email_info['user_email']; } /* sendEmail() */ function sendEmail(){ if(mail($this->emailTo,$this->emailSubject,$this->emailBody,$this->emailHeaders)) return true; else return false; } /* setEmailSubject() */ function setEmailSubject(){ switch($this->email_info['ref']) { case 'signup' : $subject = "Por favor completa tu registro."; break; } // ENCODE SUBJECT FOR UTF8 return "=?UTF-8?B?".base64_encode($subject)."?="; } /* setEmailHeaders() */ function setEmailHeaders(){ global $tsCore; // SET HEADERS $sender = $tsCore->settings['titulo']." <[email protected]".$tsCore->settings['domain'].">"; // $headers = "MIME-Version: 1.0"."\n"; $headers .= "Content-type: text/html; charset=utf-8"."\n"; $headers .= "Content-Transfer-Encoding: 8bit"."\n"; $headers .= "From: $sender"."\n"; $headers .= "Return-Path: $sender"."\n"; $headers .= "Reply-To: $sender\n"; // return $headers; } /* setEmailBody() */ function setEmailBody(){ switch($this->email_info['ref']) { case 'signup' : return $this->setRegisterEmail(); break; } } /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ }
  10. ¿Existe este mod? No importa si es para la 1.1, solo quiero ver como sería para hacerlo otra vez o adaptarlo. El mod consiste en crear posts sin estar registrado. Ya nadie se registra, ¿para qué dejar mi información en un sitio si hay otros muchos mejores sin la necesidad de registrarme dejando mi correo, nombre o ip? Al crear un post en vez de salir tu perfil y esas cosas sale "Anónimo", como en 4chan
  11. Estoy usando una versión "adaptada" a Risus 1.2 del mod de Aperpen: El problema con este mod, es que la función de "ordenar comentarios" hace todo bien, pero duplica los comentarios! Salen dos veces! No entiendo el por qué de esto, pero sin eso el mod no funciona, así que no es tan fácil como sacar ese trozo de código y ya. Código cambiado (c.posts.php) - hehe, es una ""adaptación"" hecha por un completo newbie en php, pero funciona! /* getComentarios() */ function getComentarios($post_id){ global $tsCore, $tsUser; // $start = $tsCore->setPageLimit($tsCore->settings['c_max_com']); $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_name, u.user_activo, u.user_baneado, c.* FROM u_miembros AS u LEFT JOIN p_comentarios AS c ON u.user_id = c.c_user WHERE c.c_post_id = \''.(int)$post_id.'\' '.($tsUser->is_admod ? '' : 'AND c.c_status = \'0\' AND u.user_activo = \'1\' && u.user_baneado = \'0\'').' ORDER BY c.cid LIMIT '.$start); $comments = result_array($query); $queryanon = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT * FROM p_comentarios WHERE c_post_id = \''.(int)$post_id.'\' && c_user = \'0\' '.($tsUser->is_admod ? '' : 'AND c_status = \'0\'').' ORDER BY cid'); $comanon = result_array($queryanon); $i = 0; foreach($comanon as $coma){ $anon_datos = unserialize($coma['c_anon']); $comanon[$i]['anon'] = 1; $comanon[$i]['user_activo'] = 1; $comanon[$i]['user_name'] = $anon_datos['name']; $comanon[$i]['user_email'] = $anon_datos['email']; $i++; } // COMENTARIOS TOTALES $return['num'] = db_exec('num_rows', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT cid FROM p_comentarios WHERE c_post_id = \''.(int)$post_id.'\' '.($tsUser->is_admod ? '' : 'AND c_status = \'0\'').'')); // $com = array_merge((array)$comments, (array)$comanon); // ORDENAR COMENTARIOS foreach ($com as $key => $row) { $aux[$key] = $row['cid']; } array_multisort($aux, SORT_ASC, $com); //COMO NO NOS VALIA LA FUNCION DEL SCRIPT, CREAMOS UN PROPIO SISTEMA $page = $_GET['page'] == 1 ? 0 : (int)$_GET['page']; $limits[0] = empty($page) ? 0 : (int) ((($page - 1) * $tsCore->settings['c_max_com'])); $limits[1] = $limits[0]+$tsCore->settings['c_max_com']-1; //LOS GUARDAMOS ORDENADITOS while($limits[0] <= $limits[1]){ if(!empty($com[$limits[0]])) $comments[] = $com[$limits[0]]; $limits[0]++; } // PARSEAR EL BBCODE $i = 0; foreach($comments as $comment){ // CON ESTE IF NOS AHORRAMOS CONSULTAS :) if($comment['c_votos'] != 0){ $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT voto_id FROM p_votos WHERE tid = \''.(int)$comment['cid'].'\' AND tuser = \''.$tsUser->uid.'\' AND type = \'2\' LIMIT 1'); $votado = db_exec('num_rows', $query); } else $votado = 0; // BLOQUEADO $return['block'] = db_exec('num_rows', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT bid, b_user, b_auser FROM `u_bloqueos` WHERE b_user = \''.(int)$comment['c_user'].'\' AND b_auser = \''.$tsUser->uid.'\' LIMIT 1')); // $return['data'][$i] = $comment; $return['data'][$i]['votado'] = $votado; $return['data'][$i]['c_html'] = $tsCore->parseBadWords($tsCore->parseBBCode($return['data'][$i]['c_body']), true); $i++; } // return $return; } /* newComentario() */ function newComentario(){ global $tsCore, $tsUser, $tsActividad; // NO MAS DE 5000 CARACTERES PUES NADIE COMENTA TANTO $comentario = substr($_POST['comentario'],0,5000); $post_id = ($_POST['postid']); $anon = $tsUser->uid > 0 ? NULL : 1; if($anon){ $anon = serialize(array('name' => $tsCore->setSecure($_POST['na']))); if(empty($_POST['na'])) return '0: Rellene todos los campos'; } /* DE QUIEN ES EL POST */ $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT post_user, post_block_comments FROM p_posts WHERE post_id = \''.(int)$post_id.'\' LIMIT 1'); $data = db_exec('fetch_assoc', $query); /* COMPROBACIONES */ $tsText = preg_replace('# +#',"",$comentario); $tsText = str_replace("\n","",$tsText); if($tsText == '') return '0: El campo <b>Comentario</b> es requerido para esta operación'; /* ------ */ $most_resp = $_POST['mostrar_resp']; $fecha = time(); // if($data['post_user']){ if($data['post_block_comments'] != 1 || $data['post_user'] == $tsUser->uid || $tsUser->is_admod || $tsUser->permisos['mocepc']){ if(empty($tsUser->is_admod) && $tsUser->permisos['gopcp'] == false && $anon == NULL) return '0: No deberías hacer estas pruebas.'; // ANTI FLOOD $tsCore->antiFlood(); $_SERVER['REMOTE_ADDR'] = $_SERVER['X_FORWARDED_FOR'] ? $_SERVER['X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']; if(!filter_var($_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP)) { die('0: Su ip no se pudo validar.'); } if(db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `p_comentarios` (`c_post_id`, `c_user`, `c_date`, `c_body`, `c_ip`, `c_anon`) VALUES (\''.(int)$post_id.'\', \''.$tsUser->uid.'\', \''.$fecha.'\', \''.$comentario.'\', \''.$_SERVER['REMOTE_ADDR'].'\', \''.$anon.'\')')) { $cid = db_exec('insert_id'); //SUMAMOS A LAS ESTADÍSTICAS db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE w_stats SET stats_comments = stats_comments + 1 WHERE stats_no = \'1\''); db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE p_posts SET post_comments = post_comments + 1 WHERE post_id = \''.(int)$post_id.'\''); db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_comentarios = user_comentarios + 1 WHERE user_id = \''.$tsUser->uid.'\''); // NOTIFICAR SI FUE CITADO Y A LOS QUE SIGUEN ESTE POST, DUEÑO $this->quoteNoti($post_id, $data['post_user'], $cid, $comentario); // ACTIVIDAD $tsActividad->setActividad(5, $post_id); // array(comid, comhtml, combbc, fecha, autor_del_post) if(!empty($most_resp)) return array($cid, $tsCore->parseBadWords($tsCore->parseBBCode($comentario), true),$comentario, $fecha, $_POST['auser'], '', $_SERVER['REMOTE_ADDR'], $tsCore->setSecure($_POST['na'])); else return '1: Tu comentario fue agregado satisfactoriamente.'; } else return '0: Ocurrió un error inténtalo más tarde.'; } else return '0: El crap se encuentra cerrado y no se permiten comentarios.'; } else return '0: El crap no existe.'; } Código que genera el problema: // COMENTARIOS TOTALES $return['num'] = db_exec('num_rows', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT cid FROM p_comentarios WHERE c_post_id = \''.(int)$post_id.'\' '.($tsUser->is_admod ? '' : 'AND c_status = \'0\'').'')); // $com = array_merge((array)$comments, (array)$comanon); // ORDENAR COMENTARIOS foreach ($com as $key => $row) { $aux[$key] = $row['cid']; } array_multisort($aux, SORT_ASC, $com); //COMO NO NOS VALIA LA FUNCION DEL SCRIPT, CREAMOS UN PROPIO SISTEMA $page = $_GET['page'] == 1 ? 0 : (int)$_GET['page']; $limits[0] = empty($page) ? 0 : (int) ((($page - 1) * $tsCore->settings['c_max_com'])); $limits[1] = $limits[0]+$tsCore->settings['c_max_com']-1; //LOS GUARDAMOS ORDENADITOS while($limits[0] <= $limits[1]){ if(!empty($com[$limits[0]])) $comments[] = $com[$limits[0]]; $limits[0]++; } ¿Alguien sabe algo sobre este tema? Necesito ayuda, por favor. Algunas fotos: Mi web: https://craper.es/
  12. GordoSatiro

    Modificar Theme FlatPost

  13. GordoSatiro

    Modificar Theme FlatPost

    ¿Lo comparten?
  14. GordoSatiro

    iframe en post

    o este (si tiene el editor WysiBB)
  15. GordoSatiro

    Borrar posts por denuncias

    c.swat.php - Línea 38 a la línea 44 // CUANTAS DENUNCIAS LLEVA? $denuncias = db_exec('num_rows', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT did FROM w_denuncias WHERE obj_id = \''.(int)$obj_id.'\' && d_type = \'1\'')); // OCULTAMOS EL POST SI YA LLEVA MAS DE 3 DENUNCIAS if($denuncias >= 2){ db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `p_posts` SET `post_status` = \'1\' WHERE `post_id` = \''.(int)$obj_id.'\''); db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `w_stats` SET `stats_posts` = stats_posts - \'1\' WHERE `stats_no` = \'1\''); } Por alguna razón esta no funciona.
×