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

Search the Community

Showing results for tags 'Complementos-Fix'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • El núcleo de PHPost
    • Novedades e información
    • Off Topic
    • Presentaciones
  • PHPost Risus
    • Actualizaciones
    • Versión 1.1
    • Versión 1.2
  • La esquina
    • Rincón del PC
    • Rincón del móvil
  • Escuela de Actualización de Risus Phpost's PHP 7.X
  • Escuela de Actualización de Risus Phpost's Smarty
  • Escuela de Actualización de Risus Phpost's EXTRAS
  • Escuela de Actualización de Risus Phpost's Themes
  • Escuela de Actualización de Risus Phpost's Fixes
  • Escuela de Actualización de Risus Phpost's Actualizaciones

Calendars

There are no results to display.

There are no results to display.


Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Sitio web


ICQ


Yahoo


Jabber


Skype


Localización


Intereses

Found 116 results

  1. Hola Amigos hace uno días estaba buscando el efecto popup Con JQuery y lo pude adaptar al Script, bueno este es un Fix o Complemento para el Mod últimos shouts completo que se publico y el user que lo publico pide que publiquen este Efecto Bueno lo Primero es instalar el Mod Bueno Primero busca esto en main_header.php <link href="{$tsConfig.tema.t_url}/extras.css" rel="stylesheet" type="text/css" /> y pegas este Código debajo <link href="{$tsConfig.tema.t_url}/css/shadowbox.css" rel="stylesheet" type="text/css" /> en el mismo archivo busca <script src="{$tsConfig.js}/funciones.js" type="text/javascript"></script> y debajo pegas <script src="{$tsConfig.js}/shadowbox.js" type="text/javascript"></script> En este mismo archivo buscas // {/literal} </script> y debajo pegas esto <script type='text/javascript'> {literal} Shadowbox.init({ overlayColor: "#000", overlayOpacity: "0.6", }); {/literal} </script> Finalmente vas a la carpeta de tu theme y es la carpeta css subes este archivo shadowbox.css y la carpeta js subes este shadowbox.js. y subes todas las Imganenes en images Link de los Archivos https://mega.co.nz/#!4d0hUQ5T!RW2LbSMQJfsuMvK9nMf0GnI3xmIhl7cqCUAv66cqQNc Espero que les Sirva...
  2. Hola amigos de PHPost aca les dejo el fix del mod de tutan-kabron "Notificaciones al mencionar a usuario en el muro" Pasos: Abrir el archivo c.muro.php y buscar lo siguiente: // MONITOR $tsMonitor->setNotificacion(12, $pid, $tsUser->uid, $pub_id); Arriba de eso agregar lo siguiente: // FIX BY OFICIALPHP [MOD DE TUTAN-KABRON] preg_match_all("/\[email protected]([a-zA-Z0-9_-]{4,16}+)\b/",$data, $users); $menciones = $users[1]; // MENCIONARON A UN USER? if(!empty($users[1])) { foreach($menciones as $user){ # COMPROBAR $uid = $tsUser->getUserID($tsCore->setSecure($user)); if(!empty($uid)){ $tsMonitor->setNotificacion(19, $uid, $tsUser->uid, $pub_id); } } } Luego abrir el archivo c.notificaciones.php y buscar: 17 => array('text' => 'Tu foto recibió una medalla', 'css' => 'medal'), Y agregar debajo: 19 => array('text' => 'te mencion&oacute; en una', 'ln_text' => 'publicaci&oacute;n', 'css' => 'blue_ball'), Mas abajo buscamos: case 17: return 'SELECT f.foto_id, f.f_title, f.f_user, m.medal_id, m.m_title, m.m_image, a.medal_for, u.user_id, u.user_name FROM w_medallas_assign AS a LEFT JOIN f_fotos AS f ON f.foto_id = a.medal_for LEFT JOIN u_miembros AS u ON u.user_id = f.f_user LEFT JOIN w_medallas AS m ON m.medal_id = a.medal_id WHERE m.medal_id = \''.(int)$data['obj_uno'].'\' AND f.foto_id = \''.(int)$data['obj_dos'].'\' LIMIT 1'; break; Y debajo agregamos: case 19: return 'SELECT p.pub_id, p.p_user FROM u_muro AS p WHERE p.pub_id = \''.(int)$data['obj_uno'].'\' LIMIT 1'; break; Un poco más abajo buscan: case 17: $oracion['text'] = 'Tu <a href="'.$site_url.'/fotos/'.$data['user_name'].'/'.$data['foto_id'].'/'.$tsCore->setSEO($data['f_title']).'.html" title="'.$data['f_title'].'"><b>foto</b></a> tiene una nueva <span class="qtip" title="'.$data['m_title'].'"><b>medalla</b> <img src="'.$site_url.'/themes/default/images/icons/med/'.$data['m_image'].'_16.png"/></span>'; break; Y debajo agregan lo siguiente: case 19: $oracion['text'] = $this->monitor[$no_type]['text'].$txt_extra; $oracion['link'] = $site_url.'/perfil/'.$tsUser->getUserName($data['p_user']).'/'.$data['obj_uno']; $oracion['ltext'] = ($this->show_type == 1) ? $ln_text : $tsUser->getUserName($data['p_user']); $oracion['ltit'] = ($this->show_type == 1) ? $tsUser->getUserName($data['p_user']) : ''; break; Con eso les quedaría fixeado y operativo el mod. CAPS: Mención: Mencionado: CREDITOS: @tutan-kabron Y ami por el fix @Oficialphp
  3. Hola gente en este post les comparto las secciones que he desarrollado pero actualizadas a la versión de Risus 1.2 de la misma forma como las he revisado y he encontrado algunos errores y vulnerabilidades que he solucionado por lo cual recomiendo que actualicen para quienes tengan los mods que describiré a continuación. ARCHIVOS [Importante] Actualizado: [SECCIÓN] Archivos V2.1MEGA JUEGOS [Importante] Actualizado: [SECCIÓN] Juegos V2.1 MEGA VERSIÓN MOBILE Actualizado: [MOD] Risus Mobile V2.4 MEGA CALENDARIO [Importante] Actualizado: [MOD] Calendario de eventos V2.1 MEGA Esto es todo por ahora, espero les sirva a muchos que tal vez han intentado actualizar los mods y les ha dado algún error o no les funciona correctamente. Los que tienen el título de [Importante] para quienes tengan esos mods deben actualizarlos SI o SI ya que las anteriores versiones son vulnerables a inyecciones SQL. Ya que no puedo editar mis viejos aportes espero que algún mod de buen corazón pueda actualizar los enlaces de descargas en los respectivos posts. Si me dan privilegios para hacerlo sería mucho mejor e,e Si quieren que actualice algún otro aporte háganmelo saber y lo compartiré en este mismo topic. Que tengan buen día, nos vemos en otro mod Links actualizados 15/09: [MOD] Archivos V2.1 [Kmario19][1.2].zip 64 KB https://mega.nz/#!GoI0jYjY!9607goFbijGGS413IOvCDIjC5kBQW0pm_i9SujKKVnA [MOD] Calendario de eventos V2.1 [Kmario19][1.2].zip 6 KB https://mega.nz/#!b0ARgT7R!oiZPtT_YAJuHX50OjAyfVPR0JDf1GJhOXVkloM4s9pg [MOD] Emoticones Administrables V2 [Kmario19].zip 96 KB https://mega.nz/#!ylRgUTaL!ArAO6KJYJHMc_WM0ARqz5IRqxHRWCZShiKE_TQ9nXfc [MOD] Juegos V2 [Kmario19][1.2].zip 58 KB https://mega.nz/#!y0oxnIQQ!10h_R5DW-lNh5rDzFdgfVTpMZt9H58aLHGcIQV3Hm8Q [MOD] Risus Mobile V2.4 [Kmario19][1.2].zip 518 KB https://mega.nz/#!20pgkSJY!bKiOjE_NH8ktRQrjWyLXoBRFOmVeKlVkAyKZGosIQc4
  4. Hola resulta que el chat tiene un bug de seguridad que prmite enviar cientos de mensajes de golpe y el antiflood automatico no los percibe con este fix automaticamente baneara si se enviaron mas de 5 mensajes de golpe ojo no afecta al staff en c.chat buscar: // CONTAR MENSAJES public function countMessages() { reemplazar por: // CONTAR MENSAJES public function countMessages() { global $tsUser; $times = time() - 5 ; mas abajo buscar: $count = db_exec('num_rows', $query); debajo agregamos: $querys = db_exec(array(__FILE__, __LINE__), 'query', "SELECT * FROM c_chat_messages where msg_user = '{$tsUser->uid}' ORDER BY msg_id ASC "); $counts = db_exec('num_rows', $querys); $row = db_exec('fetch_array', $querys); if($counts > 5 && $times > $row['msg_date']) { $this->autoban($tsUser->uid); } terminando esta funcion agregamos: //autobanear public function autoban($user){ //banear automáticamente global $tsCore, $tsUser; $time = time(); $checkBan = db_exec(array(__FILE__, __LINE__), 'query', "SELECT ban_expire FROM c_chat_blacklist WHERE ban_user = '{$user}' LIMIT 1"); $checkCount = db_exec('num_rows', $checkBan); if($checkCount == 0){ //si no esta baneado lo hacemos if(!$tsUser->is_admod){ //solo si es user comun $expire = $time + 300; db_exec(array(__FILE__, __LINE__), 'query', "INSERT INTO c_chat_blacklist (ban_user, ban_expire, ban_date) VALUES ('{$user}', '{$expire}', '{$time}')"); } } } Lo siguiente es opcional esto evita que mandes varios mensajes en menos de 3 segundos ( 1 cada 3 segundos) buscan dentro de la funcion: public function sendMessage($message) { if(time() > $checkBan['ban_expire']) { db_exec(array(__FILE__, __LINE__), 'query', "DELETE FROM c_chat_blacklist WHERE ban_user = '{$tsUser->uid}'"); $checkCount = 0; } debajo agregamos: $times = time() - 3 ; $querys = db_exec(array(__FILE__, __LINE__), 'query', "SELECT * FROM u_miembros where user_id = '{$tsUser->uid}' limit 1"); $row = db_exec('fetch_array', $querys); if($times > $row['user_chat'] ) { mas abajo antes de return json_encode($data); agregamos: }else { $data = array('error' => true, 'message' => 'No puedes enviar varios mensajes seguidos,espera 3 segundos '); } con esto evitamos esto: fijense en la hora saludos
  5. Ordenar posts como foro en la home THEME Life Funciona tambien en el theme default Hola amigos, en este caso les traigo un MOD de Aperpen actualizado a la Risus 1.2 que ordena los posts en la home como un foro, segun las categorías. Por lo que se incluye un pequeño sistema de subcategorías ¿Que tiene? - Administrar categorias "padre" desde la admin. - Seleccionar a que categoría "padre" pertenecerá cada categoría (foro). - Ultimo post de cada foro en la home - Estadisticas de cada categoría en la home - Ver categorías individualmente Empecemos: 1) Hacen esta SQL en su BD: 1º Consulta CREATE TABLE IF NOT EXISTS `p_hcats` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(30) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 2º Consulta ALTER TABLE `p_categorias` ADD `c_hcat` INT(11) NOT NULL ; 2) Abren el c.admin.php de inc/class y buscan: 1º Modificación /* saveCat() : EDITA LOS DATOS DE LA CAT O SUBCAT */ function saveCat() { global $tsCore; // //$db = $this->getDBtypes(); $cid = $tsCore->setSecure($_GET['cid']); // $c_nombre = $tsCore->setSecure($tsCore->parseBadWords($_POST['c_nombre'])); $cimg = $tsCore->setSecure($tsCore->parseBadWords($_POST['c_img'])); if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `p_categorias` SET c_nombre = \'' . $tsCore->setSecure($c_nombre) . '\', c_seo = \'' . $tsCore->setSecure($tsCore->setSEO($c_nombre, true)) . '\', c_img = \'' . $tsCore->setSecure($cimg) . '\' WHERE cid = \'' . (int)$cid . '\'')) return true; } Y lo reemplazan por: /* saveCat() : EDITA LOS DATOS DE LA CAT O SUBCAT */ function saveCat() { global $tsCore; // //$db = $this->getDBtypes(); $cid = $tsCore->setSecure($_GET['cid']); // $c_nombre = $tsCore->setSecure($tsCore->parseBadWords($_POST['c_nombre'])); $cimg = $tsCore->setSecure($tsCore->parseBadWords($_POST['c_img'])); if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `p_categorias` SET c_nombre = \'' . $tsCore->setSecure($c_nombre) . '\', c_hcat = \'' . $tsCore->setSecure($_POST['hcat']) . '\', c_seo = \'' . $tsCore->setSecure($tsCore->setSEO($c_nombre, true)) . '\', c_img = \'' . $tsCore->setSecure($cimg) . '\' WHERE cid = \'' . (int)$cid . '\'')) return true; } Luego buscan: 2º Modificación /* getCat() : OBTIENE LOS DATOS DE LA CAT O SUBCATEGORIA */ function getCat() { global $tsCore; // //$db = $this->getDBtypes(); $cid = intval($_GET['cid']); // $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT cid, c_orden, c_nombre, c_seo, c_img FROM p_categorias WHERE cid = \'' . (int)$cid . '\' LIMIT 1'); $data = db_exec('fetch_assoc', $query); // return $data; } Y lo reamplazan por: /* getCat() : OBTIENE LOS DATOS DE LA CAT O SUBCATEGORIA */ function getCat() { global $tsCore; // //$db = $this->getDBtypes(); $cid = intval($_GET['cid']); // $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT cid, c_orden, c_nombre, c_seo, c_img, c_hcat FROM p_categorias WHERE cid = \'' . (int)$cid . '\' LIMIT 1'); $data = db_exec('fetch_assoc', $query); // return $data; } Luego buscan: (Esta al final del archivo c.admin.php) 3º Y ultima modificación en este archivo. /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ } Y arriba añaden: /* gethCats() */ function gethCats() { // $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT * FROM p_hcats ORDER BY id DESC'); $data = result_array($query); // return $data; } function newhCat() { global $tsCore; // //$db = $this->getDBtypes(); // VALORES $name = $tsCore->setSecure($tsCore->parseBadWords($_POST['h_nombre'])); // INSERTS if (db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `p_hcats` (name) VALUES (\'' . $name . '\')')) return true; else exit( show_error('Error al ejecutar la consulta de la l&iacute;nea '.__LINE__.' de '.__FILE__.'.', 'db') ); } function gethCat($id) { // //$db = $this->getDBtypes(); // $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT * FROM p_hcats WHERE id = \'' . (int)$id . '\' LIMIT 1'); $data = db_exec('fetch_assoc', $query); // return $data; } function savehCat($id) { global $tsCore; // // VALORES $name = $tsCore->setSecure($tsCore->parseBadWords($_POST['h_nombre'])); // INSERTS if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `p_hcats` SET name = \'' . $name . '\' WHERE id = \''.(int)$id.'\'')) return true; else exit( show_error('Error al ejecutar la consulta de la l&iacute;nea '.__LINE__.' de '.__FILE__.'.', 'db') ); } function deletehCat($id) { // // INSERTS if (db_exec(array(__FILE__, __LINE__), 'query', 'DELETE FROM `p_hcats` WHERE id = \''.(int)$id.'\'')) return true; else exit( show_error('Error al ejecutar la consulta de la l&iacute;nea '.__LINE__.' de '.__FILE__.'.', 'db') ); } Con eso hemos terminado en el archivo c.admin.php 3) Abren el c.posts.php de inc/class y buscan: 1º Y unica modificación en este archivo. /* getLastPosts($category, $sticky) */ Y arriba añaden: function getLastPostsForo(){ //SELECCIONAMOS DE TODAS LAS CATEGORIAS $sql = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT * FROM p_hcats'); $hcats = result_array($sql); //CATEGORIAS foreach($hcats as $h => $n){ $hcats[$h]['cats'] = result_array(db_exec(array(__FILE__, __LINE__), 'query', 'SELECT cid, c_nombre, c_seo, c_img FROM p_categorias WHERE c_hcat = \''.$n['id'].'\'')); //DATOS foreach($hcats[$h]['cats'] as $c => $id){ //ULTIMO POST $sql = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT p.post_title, p.post_id, p.post_user, p.post_date, u.user_id, u.user_name, u.user_rango, r.r_color FROM p_posts AS p LEFT JOIN u_miembros AS u ON p.post_user = u.user_id LEFT JOIN u_rangos AS r ON r.rango_id = u.user_rango WHERE p.post_category = \''.$id['cid'].'\' ORDER BY p.post_id DESC LIMIT 1') or exit( show_error('Error al ejecutar la consulta de la l&iacute;nea '.__LINE__.' de '.__FILE__.'.', 'db') ); $hcats[$h]['cats'][$c]['ultimo'] = db_exec('fetch_assoc', $sql); //ESTADISTICAS $posts = db_exec('fetch_row', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT COUNT(post_id) AS posts FROM p_posts WHERE post_category = \''.$id['cid'].'\'')); $sql = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT COUNT(post_id) AS posts, SUM(post_comments) AS comments FROM p_posts WHERE post_category = \''.$id['cid'].'\''); $posts = db_exec('fetch_assoc', $sql); $hcats[$h]['cats'][$c]['posts'] = $posts['posts']; $hcats[$h]['cats'][$c]['comments'] = empty($posts['comments']) ? 0 : $posts['comments']; } } return $hcats; } 4) Abren el posts.php de inc/php y buscan: 1º Y unica modificación en este archivo $smarty->assign("tsPosts",$tsLastPosts['data']); Y abajo añaden: $smarty->assign("tsHCats", $tsPosts->getLastPostsForo()); 5) Abren el admin.php de inc/php y buscan: 1º Modificación } elseif($action == 'pconfigs'){ if(!empty($_POST['save'])){ if($tsAdmin->savePConfigs()) $tsCore->redirectTo($tsCore->settings['url'].'/admin/pconfigs?save=true'); } Abajo añaden: } elseif($action == 'hcats'){ $id = (int)$_GET['id']; if($act == 'editar'){ if($_POST['save']){ if($tsAdmin->savehCat($id)) $tsCore->redirectTo($tsCore->settings['url'].'/admin/hcats?save=true'); } else { $smarty->assign("tsCat",$tsAdmin->gethCat($id)); } } elseif($act == 'nueva'){ if(!empty($_POST['h_nombre'])){ if($tsAdmin->newhCat()) $tsCore->redirectTo($tsCore->settings['url'].'/admin/hcats?save=true'); } } elseif($act == 'borrar'){ if($tsAdmin->deletehCat($id)) $tsCore->redirectTo($tsCore->settings['url'].'/admin/hcats?save=true'); }else{ $smarty->assign("tsCats",$tsAdmin->gethCats()); Luego buscan que les saldra 2 veces: 2º Y ultima modificación en este archivo. $smarty->assign("tsIcons",$tsAdmin->getExtraIcons()); Y abajo añaden: $smarty->assign("tshCats",$tsAdmin->gethCats()); 6) Abren el t.home.tpl de themes/TUTEMA/templates y buscan: 1º Y ultima modificación en este archivo. {include file='modules/m.home_last_posts.tpl'} Y abajo agregan: {if !$tsCat} <br> {include file='modules/m.home_foro.tpl'} {/if} NOTA: Si quieren que se elimine el bloque de ultimos posts que aparecerá arriba, en vez de el paso anterior, hagan esto: {if !$tsCat} <br> {include file='modules/m.home_foro.tpl'} {else} <br> {include file='modules/m.home_last_posts.tpl'} {/if} 7) Abren el t.admin.tpl de themes/TUTEMA/templates y buscan: 1º Y unica modificación en este archivo. {elseif $tsAction == 'rangos'} {include file='admin_mods/m.admin_rangos.tpl'} Y abajo añaden: {elseif $tsAction == 'hcats'} {include file='admin_mods/m.admin_hcats.tpl'} 8) Abren el m.admin_sidemenu.tpl de themes/TUTEMA/templates/admin_mods y buscan: 1º Y unica modificación en este archivo. <li id="a_cats"><span class="cat-title"><a href="{$tsConfig.url}/admin/cats">Categor&iacute;as</a></span></li> Abajo añaden: <li id="a_cats"><span class="cat-title"><a href="{$tsConfig.url}/admin/hcats">Categor&iacute;as "padre"</a></span></li> 9) Abren el m.admin_cats.tpl de themes/TUTEMA/templates/admin_mods y buscan: 1º Y unica modificación en este archivo. <dl> <dt><label for="cat_name">Nombre de la categor&iacute;a:</label></dt> <dd><input type="text" id="cat_name"name="c_nombre" value="{$tsCat.c_nombre}" /></dd> </dl> Abajo añaden: <dl> <dt><label for="hcat">Categoría padre:</label></dt> <dd> <select name="hcat" id="hcat" style="width:164px"> {foreach from=$tshCats item=h} <option value="{$h.id}" {if $tsCat.c_hcat == $h.id}selected="selected"{/if}>{$h.name}</option> {/foreach} </select> </dd> </dl> 10) Para acabar extraen y suben los archivos de este Zip como se indica: http://www.mediafire.com/download/l48tm3rv519l3f6/Mod_Foro_Risus_1.2.zip m.admin_hcats.tpl -> themes/TUTEMA/templates/admin_mods m.home_foro.tpl -> themes/TUTEMA/templates/modules 11) Espero que les sirva, y para adaptaciones para otros themes pedir soporte por este post. Creditos Autor: vellenger Creditos Actualizacion: ReModWrite P.D Un Saludo P.D Creditos Mod: Aperpen
  6. (Actualizacion) Paginación 100% Automatica de Posts en PHP Este post ni su actualización es de mi autoria (Se me adelanto K-Mario) simplemente le hice una pequeña modificación los botones Ant. y Sig. en vez de << y >>. Post Original ==>> Autor Original mdulises ==>> http://www.phpost.net/user/2460-mdulises/ Autor Actualización ==>> http://www.phpost.net/user/6266-kmario19/ Autor Pequeña Modificaciòn ==>> IO Simplemente permitanme darles un consejo donde el autor original dice: 3-Abrimos el archivo "m.home_last_post.tpl" que se encuentra en "themes/TU_PLANTILLA/templates/modules/" y buscamos el siguiente código: <div class="footer size13"> {if $tsPages.prev > 0 && $tsPages.max == false}<a href="pagina{$tsPages.prev}" class="floatL boton large blue">&laquo; Anterior</a>{/if} {if $tsPages.next <= $tsPages.pages}<a href="pagina{$tsPages.next}" class="floatR boton large blue">Siguiente &raquo;</a> {elseif $tsPages.max == true}<a href="pagina2" class="boton large blue">Siguiente &raquo;</a>{/if} </div> Y Remplazamos con esto: {if $smarty.get.cat} <div class="footer size13"> {if $tsPages.prev > 0 && $tsPages.max == false}<a href="pagina{$tsPages.prev}" class="floatL boton large blue">&laquo; Anterior</a>{/if} {if $tsPages.next <= $tsPages.pages}<a href="pagina{$tsPages.next}" class="floatR boton large blue">Siguiente &raquo;</a> {elseif $tsPages.max == true}<a href="pagina2" class="boton large blue">Siguiente &raquo;</a>{/if} </div> {else} <div class="mpaginacion"> {include file='modules/m.home_paginacion.tpl'} </div> {/if} Lo que deben tener en cuenta y no modificar es el diseño de paginaciòn que venga con su tema por lo tanto antes de lo que seria el inicio de la paginacion deben poner {if $smarty.get.cat} y despues del </div> de su paginacion poner {else} <div class="mpaginacion"> {include file='modules/m.home_paginacion.tpl'} </div> {/if} Bueno al tema que ocupa aqui esta el archivo modificado para instalar sigan los pasos del post original teniendo en cuenta mi consejo. http://www.mediafire.com/view/f9w0640szykyi2n/m.home_paginacion.tpl y aqui su codigo {* Complemento: "ACTUALIZACION Paginación 100% automatica de post"; Autor: "mdulises"; Actualizacion: "KMario"; Pequeña Modificacion: "ReModWrite"; Plataforma: "http://www.phpost.net"; Perfil del Autor: "http://www.phpost.net/user/2460-mdulises/"; Perfil del Autor Actualizacion: "http://www.phpost.net/user/6266-kmario19/"; Perfil del Autor Pequeña Modificacion: "http://www.phpost.net/user/526172-remodwrite/"; *} {php} function mpaginacion(){ //Variables principales $c_max_posts = db_exec('fetch_assoc', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT c_max_posts FROM w_configuracion')); $datos = db_exec('fetch_assoc', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT stats_posts FROM w_stats')); $num_rows = $datos['stats_posts'];//Consultamos cuantos post hay $post_pp = $c_max_posts['c_max_posts'];//Consultamos cuantos post hay $lastpage = ceil($num_rows / $post_pp);//Calculamos cuantos ennlaces habra //Obtenemos el valor de la pagina actual if(!$_GET["page"]){ $page=1; }else{ $page = $_GET["page"]; } //Creamos el array de la paginación for($i=0;$i<=$lastpage;$i++){ $mpag[$i]=$i; } //Calculamos cuantas pestañas mostrar $v = $page + 9; for($c=9;$v>$lastpage; $c--){ $v=$page+$c; } //Enlace a pagina anterior if($page>1){ $anterior = $page - 1; echo "<a href=\"pagina".$anterior."\" title=\"Página anterior\">Ant.</a>"; } //Mostramos los enlaces de la paginación for($i=$page; $i<=$v; $i++){ echo "<a href=\"pagina".$mpag[$i]."\">".$mpag[$i]."</a>"; } //Enlace a pagina siguiente if($page< $lastpage){ $siguiente = $page + 1; echo "<a href=\"pagina".$siguiente."\" title=\"Página siguiente\">Sig.</a>"; } } //Mostramos la paginacion if(!$_GET["cat"]){ mpaginacion(); } {/php}
  7. Bueno estuve viendo algunas veces con el theme de Kmario, donde podía ver repetir el numero de los usuarios en el top como verán en imágenes: yo hasta hoy no lo vi posteado pero pongo una solución por las dudas: en themes\tutheme\templates\modules buscan m.top_users.tpl: reemplazan lo siguiente: {foreach from=$tsTops.seguidores item=u} por: {foreach from=$tsTops.seguidores item=u key="i"} luego {foreach from=$tsTops.medallas item=u} por {foreach from=$tsTops.medallas item=u key="i"} y listo. solo se agrego ese key="i" que se faltaba, solo pasa en el top de usuarios. bueno espero que les sirva. Saludos.-
  8. Hola gente de nuevo, coloco este topic como fix porque me parece bastante saludable para sus servidores deshacerse de estos archivos que solo ocupan espacio. El asunto es que pos ejemplo si quiero cambiar mi imagen de perfil pero al cargar veo que es otra imagen, no me gusta, me arrepiento o por cualquier otra razon no terminamos de guardar los cambios para que se mantenga la nueva imagen, esta se sube al servidor en la carpeta files/uploads con el nombre phpost_#random y ya que el numero oscila entre 0 y 1000 quiere decir que existe la posibilidad que se acumulen 1000 imagenes y que si pongamos que pesan en promedio 400kb cada una tendríamos un total de 400mb aproximadamente de basura en nuestro server y bueno, no es la idea Bueno, lo que yo hice para evitar este detalle es una "petición" que se hace al servidor al momento de cancelar el corte de la imagen para que se borre la imagen subida. Para esto vamos al archivo cuenta.js que está en la carpeta js de tu tema y busca la parte: if (avatar.success) { avatar.success = false; var img_url = global_data.url + '/files/avatar/' + avatar.uid + '_120.jpg?reload=true'; $('#avatar-img').attr({'src': img_url}).fadeIn(); $('div.avatar-loading').hide(); } Debajo de eso se agrega: else { $.ajax({type: 'post', url: global_data.url + '/upload-delete.php', data: 'key='+avatar.key+'&ext=' + avatar.ext}); } Ahora buscar: $('#modalBody').css('padding', 0); Y debajo de eso agregar: $('#mask').unbind('click'); Ahora en el archivo ajax.upload.php que se encuentra en inc/php/ajax debajo de: case 'upload-images': echo $tsCore->setJSON($tsUpload->newUpload(1)); break; Agregar case 'upload-delete': $image = 'phpost_'.$_POST['key'].'.'.$_POST['ext']; $tsUpload->deleteFile($image); break; Y con esto al darle click en "cancelar" enviará la petición para borrar el archivo que se ha subido y tambien desactiva la opción de cerrar el "modal" o la ventanita de corte al darle click en el fondo negro. Es pero les sea de ayuda y se aplique para futuras versiones de Risus. Nos vemos en otro aporte
  9. Facebook cambio sus permisos en las apps y para poder seguir usando el mod () es necesario reemplazar en c.facebook.php self::$fbLoginURL = $this->fb->getLoginUrl(array('scope' => 'email, offline_access, publish_stream, user_birthday, user_location, user_hometown')); por: self::$fbLoginURL = $this->fb->getLoginUrl(array('scope' => 'email, publish_actions, user_birthday, user_location, user_hometown')); quedando de esta manera:
  10. ¡¡¡POR FIN!!! me tenia loco. No daba con el problema por mas vueltas que le daba. Este fix es respecto a los tops de seguidores en las comunidades de kmario19. Resulta que en los tops de comuniddades con mas seguidores no se visualiza nada en el campo de los nombres y los numeros que se ven no se corresponden tampoco a estas estadisticas. Aqui una imagen. Digo que no se corresponden porque en este caso la web consta de 3 comunidades y como vemos muestra 8 resultados. Una vez solucionado se vería asi. Para solucionarlo nos vamos a c.tops.php y buscamos: // SEGUIDORES $query = mysql_query('SELECT COUNT(f.follow_id) AS total, c.c_id, c.c_nombre, c.c_nombre_corto FROM u_follows AS f LEFT JOIN c_comunidades AS c ON f.f_id = c.c_id WHERE f.f_type = 5 AND f.f_date BETWEEN '.$data['start'].' AND '.$data['end'].' GROUP BY f.f_id ORDER BY total DESC LIMIT 10'); $array['seguidores'] = result_array($query); y lo reemplazamos por: // SEGUIDORES $query = mysql_query('SELECT COUNT(f.follow_id) AS total, c.c_id, c.c_nombre, c.c_nombre_corto FROM u_follows AS f LEFT JOIN c_comunidades AS c ON f.f_id = c.c_id WHERE f.f_type = 4 AND f.f_date BETWEEN '.$data['start'].' AND '.$data['end'].' GROUP BY f.f_id ORDER BY total DESC LIMIT 10'); $array['seguidores'] = result_array($query); Lo unico que hemos echo es cambiar: f.f_type = 5 por: f.f_type = 4 Le di mas vueltas que dios, porque partia de la base de que el tipo 5 eran las comunidades y resulta que son el 4. Ahora me queda la duda de que serán las del tipo 5. Pero bueno, sobreviviré sin saberlo. Espero que les ayude.
  11. Hola el error es simple y esta en la url que nos manda a la edicion del tema la cual no hace eso sino mandarnos a la edicion de la comunidad bien les dejo el fix: Se van al archivo m.mod_report_temas.tpl y buscan: /editar/" y lo cambian por: /editar-tema/{$r.t_id}/"
  12. Aqui vengo con otro fix para pulir bien estas comunidades de kamario19. En los tops de las comunidades y de los temas, se nos muestra el filtrar por categoria de los posts y los usuarios, bueno lo unico que hice fue eliminar esa opcion ya que actualmente no disponemos de ella para las comunidades. Imagenes. Como podemos ver, las categorias son las de los posts y no las de las comunidades por lo que esta opcion es totalmente inservible en los tops de comunidades y temas. Y asi luego del fix. Como no tenemos esa opcion en las comunidades la elimine cuando estamos en los tops de comunidades y temas. Para hacer el fix vamos a modules/m.top_sidebar.tpl y buscamos: <div class="ccontenido"> y añadimos arriba: {if $tsAction == 'posts' || $tsAction == 'usuarios'} luego buscamos: <div class="boxy"> y añadimos arriba: {/if} Y ya está. Pueden ver como queda en mi web que ya lo tengo aplicado. http://www.muchomanual.com
  13. Hola Me di cuenta que en el theme km-tronos, si tenemos alguna notificacion de moderacion, tambien se lo muestra a los usuarios de rango normal. Para solucionar esto debemos ir al archivo: head_menu.tpl: Buscamos: {if $tsConfig.c_see_mod && $tsConfig.novemods.total} y lo sustituimos por: {if $tsConfig.c_see_mod && $tsConfig.novemods.total && $tsUser->is_admod} Y ahora solo mostrara a los administradores la notificacion de moderacion (creo que a los mod tambien) Saludoss
  14. [email protected], he trabajado gran parte del día adaptando el estilo de las comunidades para que se paresca lo mas posible al theme KM-Tronos, para que no se vea como algo externo al sitio (para los que tenemos el theme). Deberia funcionar con cualquiera de los colores ya que no agregue ni modifique css, si no que edite los estilos de los div. Aún asi falta modificar un poco algunas secciones y opciones, asi que si pueden ayudar seria genial. Dejo unas capturas, al final dejo el link y las instrucciones. Saludos. Solo tienen que descomprimir y copiar el contenido dentro de la carpteta KM-Tronos (OJO: la vercion de comunidad que ocupe es la v5,la encontre aca en los comentarios ) si pide reempazar le dan si. --------------- Actualizado (23/06/2014 05:53 GTM) --------------- Se me olvidaba, tengo un problema: Estan movidos los bbcodes, alguien sabe cómo solucionar eso?
  15. Hola a todos les comparto una solución a esto ya que busqué en el foro y no lo habían solucionado. Al darle click al enlace pasa esto: O el que dice "La publicación que has solicitado no pertenece al perfil de XXX" bueno, se hace lo siguiente: En el archivo c.monitor.php que se encuentra en inc/class buscar: case 14: if($data['obj_dos'] == 2) return 'SELECT pub_id AS obj_uno, c_body FROM u_muro_comentarios WHERE cid = \''.(int)$data['obj_uno'].'\''; else return array('value' => 'hack'); break; Reemplazarlo por: case 14: if($data['obj_dos'] == 2) return 'SELECT p.p_user, c.pub_id, c.c_body FROM u_muro_comentarios AS c LEFT JOIN u_muro AS p ON c.pub_id = p.pub_id WHERE cid = \''.(int)$data['obj_uno'].'\''; else return 'SELECT p.pub_id, p.p_body, u.user_name FROM u_muro AS p LEFT JOIN u_miembros AS u ON p.p_user_pub = u.user_id WHERE p.pub_id = \''.(int)$data['obj_uno'].'\' LIMIT 1'; break; Mas abajo buscar: case 14: // CUANTOS $no_total = $data['not_total']; // MAS DE UNA ACCION if($no_total > 1) { $text = $this->monitor[$no_type]['text'][1].' '.$ln_text; $oracion['text'] = str_replace('_REP_', '<b>'.$no_total.'</b>', $text); } else $oracion['text'] = $this->monitor[$no_type]['text'][0]; // $oracion['text'] = ($this->show_type == 1) ? $oracion['text'] : $oracion['text'].' '.$ln_text; $oracion['link'] = $site_url.'/perfil/'.$tsUser->nick.'/'.$data['obj_uno']; $oracion['ltext'] = ($this->show_type == 1) ? $ln_text : substr($data['c_body'],0,20).'...'; $oracion['ltit'] = ($this->show_type == 1) ? substr($data['c_body'],0,20).'...' : ''; break; Reemplazarlo por: case 14: // CUANTOS $no_total = $data['not_total']; // DE LOS COMENTARIOS if($data['obj_dos'] == 2) { $data['obj_uno'] = $data['pub_id']; $auser = $tsUser->getUserName($data['p_user']); $body = $data['c_body']; } else { $auser = $tsUser->nick ; $body = $data['p_body']; } // MAS DE UNA ACCION if($no_total > 1) { $text = $this->monitor[$no_type]['text'][1].' '.$ln_text; $oracion['text'] = str_replace('_REP_', '<b>'.$no_total.'</b>', $text); } else $oracion['text'] = $this->monitor[$no_type]['text'][0]; // $oracion['text'] = ($this->show_type == 1) ? $oracion['text'] : $oracion['text'].' '.$ln_text; $oracion['link'] = $site_url.'/perfil/'.$auser.'/'.$data['obj_uno']; $oracion['ltext'] = ($this->show_type == 1) ? $ln_text : substr($body,0,20).'...'; $oracion['ltit'] = ($this->show_type == 1) ? substr($body,0,20).'...' : ''; break; Y listo, con eso se soluciona el problema, además ya no salen los 3 puntos suspensivos en el tooltip (...), sino que salen los primeros 20 caracteres del cuerpo de la publicación o el comentario como debería ser. Listo, nos vemos en otro aporte
  16. Bien primero descargamos solo el zip Luego nos situamos en la carpeta install y en el index php donde dice: $query = mysql_query('SELECT * FROM w_temas'); Lo cambiamos por: $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT * FROM w_temas'); es simplemente eso para poder instalarlo como antes ya que en esta versión como cambiaron las consultas y estoy esperando el migrador estoy tratando de adaptar todo manualmente por mi cuenta (No tengo paciencia lo se)... Me estoy volviendo mono pero bueno ya fue Es más que sencillo el aporte pero le va a venir re bien para los que recién empiezan con esto. Saludos!
  17. Por lo visto, Goear ha cambiado su reproductor hace un tiempo y ahora ha dejado de "dar soporte" al antiguo en flash, como Risus aún utiliza el antiguo, muchos habréis notado que ya no funciona correctamente el BBCode y las canciones no se reproducen. Para solucionar esto, debéis abrir al archivo bbcode.inc.php (localizado en /inc/ext), buscar el siguiente código: array("goear", "/(?i)\[goear\=(.+?)\]/i", "<embed width=\"360\" height=\"130\" wmode=\"transparent\" autoplay=\"false\" allownetworking=\"internal\" allowfullscreen=\"true\" type=\"application/x-shockwave-flash\" quality=\"high\" src=\"http://www.goear.com/files/external.swf?file=\\1\"><br/>"), y reemplazarlo por este: array("goear", "/(?i)\[goear\=(.+?)\]/i", "<iframe width=\"580\" height=\"115\" src=\"http://www.goear.com/embed/sound/\\1\" marginheight=\"0\" align=\"top\" scrolling=\"no\" frameborder=\"0\" hspace=\"0\" vspace=\"0\" allowfullscreen></iframe><br/>"), Así de simple Para los que utilizáis el editor WYSIWYG que publiqué, también necesitaréis actualizar el archivo wysibb.js (ya actualice ) para que se muestre correctamente el reproductor. Captura del nuevo reproductor:
  18. Hola a todos gente, vego con otro aporte, en un pedido de el usuario seVen especifica que no funciona las configuraciones de las notificaciones que el usuario desea recibir, estudié un poco su funcion y pude hacerlo funcional, solo hizo falta modificar un par de cosas para que funcionara perfecto. 1. Para aplicar este fix primero en c.monitor.php que está en inc/class buscamos: # CARGO LOS FILTROS $query = mysql_query('SELECT c_monitor FROM u_portal WHERE user_id = \''.$tsUser->uid.'\' LIMIT 1'); $filtros = mysql_fetch_assoc($cuery); // $filtros = unserialize($filtros['c_monitor']); foreach($filtros as $key => $val){ $dataDos['filtro'][$val] = true; } Lo reemplazamos por: # CARGO LOS FILTROS // solo los primeros 17 tipos de notificaciones for($i > 0; $i < 18; $i++) $filtro[$i] = $this->allowNotifi($i, $tsUser->uid); $dataDos['filtro'] = $filtro; 2. Ahora al final del archivo buscamos: /** * @name setFiltro * @access public * @param none * @return bool * @info GUARDA LOS FILTROS DE LA ACTIVIDAD */ public function setFiltro(){ # GLOBALES global $tsUser; # LOCALES $filtro_id = (int) $_POST['fid']; $filtro_id = 'f'.$filtro_id; # SACAMOS LA CONFIGURACION $query = mysql_query('SELECT c_monitor FROM u_portal WHERE user_id = \''.$tsUser->uid.'\' LIMIT 1'); $data = mysql_fetch_assoc($query); # PROSESAMOS $filtros = unserialize($data['c_monitor']); # GUARDAR if(in_array($filtro_id, $filtros)) { $aid = array_search($filtro_id, $filtros); array_splice($filtros, $aid); } else { $filtros[] = $filtro_id; } # GUARDAMOS LOS NUEVOS FILTROS $filtros = serialize($filtros); mysql_query('UPDATE u_portal SET c_monitor = '.$filtros.' WHERE user_id = \''.$tsUser->uid.'\''); // return true; } /** * @name allowNotifi * @access private * @param int * @return bool * @info REVISA EN LA CONFIGURACION SI DESEA RESIBIR LA NOTIFICACION */ private function allowNotifi($type, $user_id){ # CONSULTAMOS $query = mysql_query('SELECT c_monitor FROM u_portal WHERE user_id = \''.(int)$user_id.'\' LIMIT 1'); $data = mysql_fetch_assoc($query); # PROSESAMOS $filtro_id = 'f'.$type; $filtros = unserialize($data['c_monitor']); # VERIFICAMOS if(in_array($filtro_id, $filtros)) return false; else return true; } Lo reemplazamos por: /** * @name setFiltro * @access public * @param none * @return bool * @info GUARDA LOS FILTROS DE LA ACTIVIDAD */ public function setFiltro(){ global $tsUser, $tsCore; // $filtros = $_POST['fid']; // if(mysql_query('UPDATE u_portal SET c_monitor = \''.$tsCore->setSecure($filtros).'\' WHERE user_id = \''.$tsUser->uid.'\'')) return '1: Configuraciones guardadas.'; else return '0: Ocurri&oacute; un error, intentalo m&aacute;s tarde.'; } /** * @name allowNotifi * @access private * @param int * @return bool * @info REVISA EN LA CONFIGURACION SI DESEA RESIBIR LA NOTIFICACION */ private function allowNotifi($type, $user_id){ # CONSULTAMOS $query = mysql_query('SELECT c_monitor FROM u_portal WHERE user_id = \''.(int)$user_id.'\' LIMIT 1'); $data = mysql_fetch_assoc($query); // NO QUIERE NOTIFICACIONEs if($data['c_monitor'] == 'none') return false; // HACK, USUARIOS QUE NO HAN CONFIGURADO NADA DESPUES DE INSTALAR ESTE MOD(? OKSI if(empty($data['c_monitor'])) return true; # PROSESAMOS $filtros = explode(',', $data['c_monitor']); # VERIFICAMOS if(in_array($type, $filtros)) return true; else return false; } 3. ahora vamos a acciones.js que está en tutema/js y buscamos: filter: function (x, obj) { $.ajax({url: global_data.url + '/notificaciones-filtro.php', type: 'post', data: 'fid=' + x}); var v = $(obj).attr('checked') ? 1 : 0; }, Lo reemplazamos por: filter: function() { var inputs = $('#nots_filter :input'); var fid = ''; inputs.each(function(){ if($(this).attr('checked')) fid += $(this).val() + ','; }); // if(empty(fid)) fid = 'none'; $('#loading').fadeIn(250); $.ajax({ type: 'POST', url: global_data.url + '/notificaciones-filtro.php', data: 'fid=' + fid, success: function(h){ switch(h.charAt(0)){ case '0': //Error mydialog.alert('Error', h.substring(3)); break; case '1': //OK $('#Msj').slideDown(); break; } $('#loading').fadeOut(350); } }); }, filter_check: function() { var input = $('#nots_filter :input'); if(input.attr('checked') == 'checked') { input.removeAttr('checked'); $('.change').html('Marcar todos'); } else { input.attr({'checked' : 'checked'}); $('.change').html('Desmarcar todos'); } }, 4. Por ultimo reemplazamos el archivo m.monitor_sidebar.tpl que va en templates/modules por el de la descarga y listo! m.monitor_sidebar.tpl Creo que las imagenes no explicarian mucho su funcionamiento, mejor se los dejo para que prueben que funciona, de igual forma les dejo una cap guardando las configuraciones. Espero les haya gustado nos vemos en otro aporte, saludos a todos!
  19. Hola amigos de PHPost Alguna vez les salió este error o ''problema''? Has usado otra cuenta anteriormente, deberás contactar con la administración Bueno acá tenés la solución. Vas a c.posts.php en inc/class busca esto, está en la linea 810 //Comprobamos si otro usuario ha votado un post con esta ip $_SERVER['REMOTE_ADDR'] = $_SERVER['X_FORWARDED_FOR'] ? $_SERVER['X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']; if(!filter_var($_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP)) { return '0: Su ip no se pudo validar.'; } if($tsUser->is_admod != 1){ if(mysql_num_rows(mysql_query('SELECT user_id FROM u_miembros WHERE user_last_ip = \''.$_SERVER['REMOTE_ADDR'].'\' AND user_id != \''.$tsUser->uid.'\'')) || mysql_num_rows(mysql_query('SELECT session_id FROM u_sessions WHERE session_ip = \''.$tsCore->setSecure($_SERVER['REMOTE_ADDR']).'\' AND session_user_id != \''.$tsUser->uid.'\''))) return '0: Has usado otra cuenta anteriormente, deberás contactar con la administración.'; } Y lo borran y listo. Saludos.
  20. Hola amigos saludos queria saber como adaptar este chat a la home pero que cuando recien inicie sesion este oculto y que para poder chatear lo tenga que desplegar ? gracias por la ayuda de ante mano
  21. SpookFactory

    [FIX] Anti KAKING Arrowchat 1.7.2N

    Bueno ayer no se si algunos sabran un tal Fabi me hackeo la web... Estuvimos hablando y me envio un link acortado y yo de forma totalmente inocente accedi. Mi sorpresa fue cuando me llevo a este link: http://www.groted.com/arrowchat/public/popout/?CENSURADO Al parecer se insertaron un monton de datos en mi BD y tuve que restaurar... Al rato estuvimos hablando y me dijo supuestamente como solucionarlo. Bueno la cuestion es que se puede insertar javascript en esta direccion arrowchat/public/popout/index.php Aqui voy a exponer lo que me dijo que hiciera Buscamos en ese archivo: require_once (dirname(dirname(dirname(__FILE__))) . DIRECTORY_SEPARATOR . 'bootstrap.php'); Y debajo agregamos if((isset($_GET['id']) && !is_numeric($_GET['id'])) || (isset($_POST['id']) && !is_numeric($_POST['id']))) { $chatroom_id = get_var('id'); } else die('El id no es valido.')
  22. Hola bueno como el usuario: VylonX Posteó sobre las comunidades que no mostraban las categorías acá le adjunto el archivo para él y para que todos lo tengan de la adaptación del archivo c.comunidades.php nuevo con las consultas de la nueva versión. Saludos! PD: Tan sólo reemplazen el archivo https://mega.co.nz/#!Y8Q1lQKQ!rg9DTJvkYJNLENYWBdNEe-VKTq3rSKejuEinzaJAB5s
  23. Hola, este problema lo he tenido yo y investigando he encontrado la solucion. Primero os voy a explicar lo que hay que hacer para que esto no te ocurra, Que sera evitar que lo visitantes vean el chat. Vamos al main_ header.tpl y el codigo que nos genero arrowchat al principio del codigo, ponemos esto: {if $tsUser->is_member} Y al final DEL CODIGO QUE HA GENERADO ARROWCHAT Y agregar {/if} Luego ir al main_footer.tpl y hacer la misma operacion. El error se produce cuando un visitante escribe un mensaje, porque el chat lo coje como si lo enviar desde FROM 0 en la tabla arrowchat y no se porque cuando un mensaje llega desde form 0 dejan de llegarte los mensajes. Solucion si ya tienes el problema, aplica lo de arriba para que deje de ocurrir. Si esto te ha ocurrido solo tienes que ir a phpmyadmin, a la tabla arrowchat, y borrar todos los mensajes que han llegado a cualquier usuario desde FROM 0.
  24. Hola habia detectado hace tiempo un problema en el paginador, pero no le di importancia y se me olvidó. XD. Lo volví a ver y me puse a ello finalmente logré encontrar el problema aunque tenia dudas de como solucionarlo. Creditos también a Kmario19 por confirmar que la solución es válida y por acortar el codigo que hice en principio. El paginador de las comunidades en los temas y en las respuestas de los temas manda el error que necesita loguearse al cambiar de página si el usuario no está logueado. Para solucionarlo vamos a inc/php/ajax/ajax.comunidades.php y buscamos: $tsLevel = empty($files[$action]['n']) ? 2 : $files[$action]['n']; y lo cambiamos por: $tsLevel = isset($files[$action]['n']) ? $files[$action]['n'] : 2; y ya está. Si te ayudo mi aporte dame +1 y si no tienes, ¡Damelo mañana!.
  25. Acaban de reportar un detalle nuevo que no habia visto y me puse a ello. El boton de citar o responder a un comentario ya publicado en un tema, sale siempre que el usuario está logueado, sin embargo solo se permite responder si estas unido a la comunidad. Lo que hice es que solo aparezca si eres miembro, si tu rango lo permite si eres el autor, si eres administrador o moderador de la comunidad o si eres administrador o moderador global. La verdad es que no recuerdo los números de los rangos pero me base en otro mod de cuendo si los controlaba. No probé todas las opciones posibles así que si veís que aparece o no aparece cuando no debe ser me lo comentais y lo reviso pero creo que así está correcto. Imagen: Fix: Vamos a templates/t.comux.ajax/c.pages_respuestas y buscamos: <li><a href="javascript:com.citar_com({$r.r_id}, '{$r.user_name}');return false;" class="qtip" title="Responder"><i class="com_icon icon_reply"></i></a></li> Si hicimos el fix que hay mi perfil de phpost la linea a buscar sería esta en vez de la anterior: <li><a onclick="javascript:com.citar_com({$r.r_id}, '{$r.user_name}');return false;" class="qtip" title="Responder"><i class="com_icon icon_reply"></i></a></li> Antes de esa linea agregamos: {if $tsCom.es_miembro && $tsTema.t_cerrado == 0 && $tsCom.mi_rango >= 2 || $tsCom.mi_rango >= 4 || $tsUser->is_admod || $tsUser->uid == $tsTema.t_autor} y despues de la linea que buscamos agregamos: {/if} Fin. Si te gustó o te ayudo mi aporte dame +1, si no te quedan dámelo mañana, ¡¡ Puedo esperar !!
×