Altffenser

Lapislázuli
  • Contenido

    1.553
  • Registrado

  • Última Visita

  • Days Won

    44

Altffenser last won the day on May 20

Altffenser had the most liked content!

Reputación en la Comunidad

571 Exaltado

Sobre Altffenser

  • Rango
    Veterano
  • Cumpleaños April 24

Información de perfil

  • Sexo
    Masculino
  • Localización
    México

Visitantes recientes en el perfil

17.963 visitas al perfil
  1. limitar

    No, al parecer no tiene errores, no obstante si hallas uno por favor coméntalo :3
  2. function logout_by_now(){ $(function (){ Es muy poco, realmente sólo creo una función "de arranque" en JQuery. No sé por qué te inquietas tanto, ya te he dicho que no me percaté de que ya estaba publicado, debes tranquilizarte.
  3. No, no es igual del todo, aunque juraría que nunca vi que @tutan-kabron lo había publicado. Como dije, me acorde de MEGA-Lucas y por ende de ese mod porque yo siempre lo aplicaba hasta que con las migraciones y todo eso que sufrió el foro se perdió el mod ese (junto con los de @TRON @absa y creo hasta @Isidro hizo algunos; y claro, de muchos usuarios más.) entonces me sentí capaz de hacerlo y lo logré y ahora he aquí compartiéndolo
  4. Hola, traigo esta pequeña modificación, es un dialogo de confirmación para cerrar sesión. Utilizo el plugin "mydialog" que trae por default el script por lo que no hará falta nada más. Este MOD lo vi hace años, lo publicó un usuario llamado mega-lucas ((o algo así (aún mantengo su V5 )) Instrucciones. 1. Abrir el archivo acciones.js y al ultimo del archivo colocar: /* Logout confirm by Altffenser */ function open_logout_box() { mydialog.show(); mydialog.title('Cerrar sesión'); mydialog.body('Estas a punto de salir de tu cuenta. <b>¿Seguro que deseas continuar?</b>'); mydialog.buttons(true, true, 'Cerrar sesión', 'logout_by_now()', true, false, true, 'No, permanecer aquí', 'close', true, true); mydialog.center(); } function logout_by_now(){ $(function (){ window.location.href = global_data.url + "/login-salir.php"; }); } 2. Abrir el archivo head_menu.tpl y buscar: <li class="logout"> <a href="{$tsConfig.url}/login-salir.php" style="vertical-align: middle" title="Salir"> <span class="systemicons logout"></span> </a> </li> a) Reemplazar por: <li class="logout"> <a href="#" onclick="open_logout_box();" style="vertical-align: middle" title="Salir"> <span class="systemicons logout"></span> </a> </li> ¡Has terminado! Con eso lo tendrán, ahora cada que den clic en "salir"; primero aparecerá un dialogo como este: Es muy sencillo el MOD pero a mi parecer, se ve bien Saludos
  5. limitar

    Hola, no me escondo ni trato de hacerlo, soy una persona que se dedica a estudiar y trabajar por lo que entre semana tengo algo de ausencia, voy a actualizar los archivos a ver qué tal te va. Saludos.
  6. limitar

    Seguramente instalaste algún mod antes que este y al momento de sustituir eliminaste algunas dependencias. En la línea 77 del archivo c.core.php está la función para obtener los temas instalados, seguro que es ese archivo o esa línea?
  7. Creo que la API de imgur dejó de funcionar
  8. limitar

    Quedará 0 como default y efectivamente, no podrás crear posts.
  9. limitar

    Sí pensé en eso, de hecho hice algo con "mydialog", al dar clic en "Continuar" antes de mostrar la vistra previa del post, muestro un mensaje con el número de posts que le quedan. Tl vez lo añada, no lo hice porque la instalación en sí, ya es algo larga. Muestro los posts restantes en el perfil, pero es un paso opcional
  10. limitar

    El error está en la consulta que se hace para recargar los posts cada día. Aquí está la forma correcta de ponerlo: Abre c.user.php y busca: function actualizarPost() { // HORA EN LA CUAL RECARGAR LOS POSTS QUE PUEDE CREAR 0 = MEDIA NOCHE DEL SERVIDOR $ultimaRecarga = $this->info['user_nextlimiteposts']; $tiempoActual = time(); // SI YA SE PASO EL TIEMPO RECARGAMOS... if($ultimaRecarga < $tiempoActual){ // OPERACION SIG RECARGA A LAS 24 HRS $horaActual = date("G",$tiempoActual); $minActuales = date("i",$tiempoActual) * 60; $segActuales = date("s",$tiempoActual); $sigRecarga = 24 - $horaActual; $sigRecarga = ($sigRecarga * 3600) - ($minActuales + $segActuales); $sigRecarga = $tiempoActual + $sigRecarga; // LA SIGUIENTE RECARGA SE HARA A MEDIA NOCHE DEL SIGUIENTE DIA LA HORA DEPENDE DEL SERVIDOR // db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_limiteposts = '.($tsCore->settings['c_keep_posts'] == 0 ? $this->permisos['golpd'] : 'user_limiteposts + '.$this->permisos['golpd']).', user_nextlimiteposts = '.$sigRecarga.' WHERE user_id = \''.$this->uid.'\''); // VAMONOS return true; } } Reemplaza por esta: function actualizarPost() { // HORA EN LA CUAL RECARGAR LOS POSTS QUE PUEDE CREAR 0 = MEDIA NOCHE DEL SERVIDOR $ultimaRecarga = $this->info['user_nextlimiteposts']; $tiempoActual = time(); // SI YA SE PASO EL TIEMPO RECARGAMOS... if($ultimaRecarga < $tiempoActual){ // OPERACION SIG RECARGA A LAS 24 HRS $horaActual = date("G",$tiempoActual); $minActuales = date("i",$tiempoActual) * 60; $segActuales = date("s",$tiempoActual); $sigRecarga = 24 - $horaActual; $sigRecarga = ($sigRecarga * 3600) - ($minActuales + $segActuales); $sigRecarga = $tiempoActual + $sigRecarga; // LA SIGUIENTE RECARGA SE HARA A MEDIA NOCHE DEL SIGUIENTE DIA LA HORA DEPENDE DEL SERVIDOR // db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_limiteposts = user_nextlimiteposts = '.$sigRecarga.' WHERE user_id = \''.$this->uid.'\''); // VAMONOS return true; } }
  11. limitar

    La columna "user_nextlimiteposts" en u_miembros está vacía?
  12. Y qué quieres arreglar? Explícate
  13. Hola a todos, quisiera compartir con todos este mod que ya van varias personas que están interesadas en él y nada, para mí esto fue como una práctica, sé que algún día llegaré a tener el nivel de conocimientos que me he impuesto. En fín, este MOD lo que hace es limitar a los usuarios el numero de posts que pueden publicar, es decir, el administrador impone a cada usuario o rango un límite de posts por día; ésto nos ayudará a disminúir el spam en usuarios novatos (por ejemplo). Sin más, les dejo las instrucciones. Aviso: la instalación es sólo para el tema default, aunque el código (PHP) sea el mismo la estructra de cada tema puede cambiar. 1. Abrir el archivo c.admin.php y busca: 'cant' => $row['r_cant'], Debajo coloca: 'post_cant' => $row['r_posts'], a) Busca: 'cant' => empty($_POST['global-cantidadrequerida']) ? 0 : $tsCore->setSecure($_POST['global-cantidadrequerida']), Añadir debajo: 'post_cant' => empty($_POST['global-postsforday']) ? 0 : $tsCore->setSecure($_POST['global-postsforday']), b ) Busca (unas cuantas líneas abajo): 'gopfd' => $_POST['global-pointsforday']); Borra el ); y pon en su lugar una coma , Presiona la tecla Intro para hacer un saldo de línea, luego, añade lo siguiente: 'golpd' => $_POST['global-postsforday']); Deberá quedar de la siguiente manera: 'gopfd' => $_POST['global-pointsforday'], 'golpd' => $_POST['global-postsforday']); c) Busca (unas cuantas líneas abajo); if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `u_rangos` SET r_name = \'' . $tsCore->setSecure($r['name']) . '\', r_color = \'' . $r['color'] . '\', r_image = \'' . $tsCore->setSecure($r['img']) . '\', r_cant = \'' . (int)$r['cant'] . '\', r_allows = \'' . $tsCore->setSecure($permisos) . '\', r_type = \'' . $r['type'] . '\' WHERE rango_id = \'' . (int)$rid . '\'')) Reemplazar por: if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `u_rangos` SET r_name = \'' . $tsCore->setSecure($r['name']) . '\', r_color = \'' . $r['color'] . '\', r_image = \'' . $tsCore->setSecure($r['img']) . '\', r_cant = \'' . (int)$r['cant'] . '\', r_posts = \'' . (int)$r['post_cant'] . '\', r_allows = \'' . $tsCore->setSecure($permisos) . '\', r_type = \'' . $r['type'] . '\' WHERE rango_id = \'' . (int)$rid . '\'')) d) Busca: 'cant' => empty($_POST['global-cantidadrequerida']) ? 0 : $tsCore->setSecure($_POST['global-cantidadrequerida']), Añadir debajo: 'post_cant' => empty($_POST['global-postsforday']) ? 0 : $tsCore->setSecure($_POST['global-postsforday']), e) Busca: 'gopfd' => $_POST['global-pointsforday'], Info: Hacer lo mismo que en el inciso b ). f) Busca (unas cuantas líneas abajo): if (db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `u_rangos` (`r_name`, `r_color`, `r_image`, `r_cant`, `r_allows`, `r_type`) VALUES (\'' . $tsCore->setSecure($r['name']) . '\', \'' . $r['color'] . '\', \'' . $tsCore->setSecure($r['img']) . '\', \'' . (int)$r['cant'] . '\', \'' . $tsCore->setSecure($permisos) . '\', \'' . (int)$r['type'] . '\')')) return 1; Reemplazar por: if (db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `u_rangos` (`r_name`, `r_color`, `r_image`, `r_cant`, `r_posts`, `r_allows`, `r_type`) VALUES (\'' . $tsCore->setSecure($r['name']) . '\', \'' . $r['color'] . '\', \'' . $tsCore->setSecure($r['img']) . '\', \'' . (int)$r['cant'] . '\', \'' . $tsCore->setSecure($permisos) . '\', \'' . (int)$r['post_cant'] . '\', \'' . $tsCore->setSecure($permisos) . '\', \'' . (int)$r['type'] . '\')')) return 1; g) Buscar: $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT `user_name`, `user_email`, `user_password` FROM u_miembros WHERE user_id = \'' . (int)$user_id . '\''); Y donde está `user_password` añadir a un lado: , `user_limiteposts` Quedará de la siguiente manera: `user_password`, `user_limiteposts` h) Buscar (unas cuantas lineas abajo): $pointsxdar = empty($_POST['pointsxdar']) ? $data['user_puntos'] : $_POST['pointsxdar']; Añadir debajo: $postsxdia = empty($_POST['poststodo']) ? $data['user_limiteposts'] : $_POST['poststodo']; i) Buscar: return 'Los puntos para dar no se reconocen'; Añadir debajo: if ($postsxdia >= 0) { $ptodo = ', user_limiteposts = \''. (int)$postsxdia . '\''; } else { return "El límite de posts no se reconocen"; } j) Buscar: if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `u_miembros` SET user_email = \'' . $tsCore->setSecure($email) . '\' ' . $changedis . ' ' . $new_nick . ' ' . $pxd . ' ' . $apoints . ' ' . $db_key . ' WHERE user_id = \'' . (int)$user_id . '\'')) Reemplazar por: if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `u_miembros` SET user_email = \'' . $tsCore->setSecure($email) . '\' ' . $changedis . ' ' . $new_nick . ' ' . $pxd . ' ' . $ptodo . ' ' . $apoints . ' ' . $db_key . ' WHERE user_id = \'' . (int)$user_id . '\'')) 2. Abrir el archivo c.user.php y... a) Buscar: $this->actualizarPuntos(); Añadir debajo: $this->actualizarPost(); b ) Buscar: function actualizarPuntos() { // HORA EN LA CUAL RECARGAR PUNTOS 0 = MEDIA NOCHE DEL SERVIDOR $ultimaRecarga = $this->info['user_nextpuntos']; $tiempoActual = time(); // SI YA SE PASO EL TIEMPO RECARGAMOS... if($ultimaRecarga < $tiempoActual){ // OPERACION SIG RECARGA A LAS 24 HRS $horaActual = date("G",$tiempoActual); $minActuales = date("i",$tiempoActual) * 60; $segActuales = date("s",$tiempoActual); $sigRecarga = 24 - $horaActual; $sigRecarga = ($sigRecarga * 3600) - ($minActuales + $segActuales); $sigRecarga = $tiempoActual + $sigRecarga; // LA SIGUIENTE RECARGA SE HARA A MEDIA NOCHE DEL SIGUIENTE DIA LA HORA DEPENDE DEL SERVIDOR // db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_puntosxdar = '.($tsCore->settings['c_keep_points'] == 0 ? $this->permisos['gopfd'] : 'user_puntosxdar + '.$this->permisos['gopfd']).', user_nextpuntos = '.$sigRecarga.' WHERE user_id = \''.$this->uid.'\''); // VAMONOS return true; } } Añadir debajo: function actualizarPost() { // HORA EN LA CUAL RECARGAR LOS POSTS QUE PUEDE CREAR 0 = MEDIA NOCHE DEL SERVIDOR $ultimaRecarga = $this->info['user_nextlimiteposts']; $tiempoActual = time(); // SI YA SE PASO EL TIEMPO RECARGAMOS... if($ultimaRecarga < $tiempoActual){ // OPERACION SIG RECARGA A LAS 24 HRS $horaActual = date("G",$tiempoActual); $minActuales = date("i",$tiempoActual) * 60; $segActuales = date("s",$tiempoActual); $sigRecarga = 24 - $horaActual; $sigRecarga = ($sigRecarga * 3600) - ($minActuales + $segActuales); $sigRecarga = $tiempoActual + $sigRecarga; // LA SIGUIENTE RECARGA SE HARA A MEDIA NOCHE DEL SIGUIENTE DIA LA HORA DEPENDE DEL SERVIDOR // db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_limiteposts = user_nextlimiteposts = '.$sigRecarga.' WHERE user_id = \''.$this->uid.'\''); // VAMONOS return true; } } Esta función no la he testeado como se debe, por lo que no he comprobado su funcionalidad al 100%. 3. Abrir el archivo c.posts.php y... a) Buscar: else { $postData['sponsored'] = empty($_POST['patrocinado']) ? 0 : 1; $postData['sticky'] = empty($_POST['sticky']) ? 0 : 1; } Añadir debajo: if($tsUser->info['user_limiteposts'] == 0) return 'Has alcanzado el l&iacute;mite de posts por d&iacute;a'; b ) Buscar: // ULTIMO POST db_exec(array( __FILE__, __LINE__ ) , 'query', 'UPDATE u_miembros SET user_lastpost = \'' . $time . '\' WHERE user_id = \'' . $tsUser->uid . '\''); Añadir debajo: // RESTAR POSTS DISPONIBLES db_exec(array( __FILE__, __LINE__ ) , 'query', 'UPDATE u_miembros SET user_limiteposts = user_limiteposts - 1 WHERE user_id = \'' . $tsUser->uid . '\''); 4. Ejecutar las siguientes consultas SQL: ALTER TABLE `u_miembros` ADD `user_limiteposts` INT(2) UNSIGNED NOT NULL DEFAULT '0' AFTER `user_puntosxdar`; ALTER TABLE `u_rangos` ADD `r_posts` INT(5) NOT NULL AFTER `r_cant`; ALTER TABLE `u_miembros` ADD `user_nextlimiteposts` INT(10) NOT NULL DEFAULT '0' AFTER `user_nextpuntos`; 5. Abrir el archivo m.admin_rangos.tpl y... a) Buscar: <th>Puntos por post</th> Añadir debajo: <th>Límite de posts</th> Hacer lo mismo para las dos 2 coincidencias b ) Buscar: <td>{$r.max_points}</td> Añadir debajo: <td>{$r.post_cant}</td> Hacer lo mismo para las dos 2 coincidencias c) Buscar: <dl> <dt><label for="gopfp">Puntos por post</label><br /><span>Puntos que puede dar en cada post.</span></dt> <dd><input type="text" id="gopfp" name="global-pointsforposts" value="{$tsRango.permisos.gopfp}" style="width:30%"/></dd> </dl> Añadir debajo: <dl> <dt><label for="golpd">Límite de posts</label><br /><span>Posts que puede crear al día</span></dt> <dd><input type="text" id="golpd" name="global-postsforday" value="{$tsRango.permisos.golpd}" style="width:30%"/></dd> </dl> 6. Abrir el archivo m.admin_users.tpl y... a) Buscar: <dl> <dt><label>Puntos para dar:</label></dt> <dd><input type="text" name="pointsxdar" id="pointsxdar" value="{$tsUserD.user_puntosxdar}" style="width:10%" /></dd> </dl> Añadir debajo: <dl> <dt><label>Límte de posts a crear:</label></dt> <dd><input type="text" name="poststodo" id="poststodo" value="{$tsUserD.user_limiteposts}" style="width:10%" /></dd> </dl> Nota: Si quieres mostrar los posts que restan; en el perfil del usuario, has lo siguiente: (sólo lo verá el dueño del perfil, administrador o moderador) En m.perfil_headinfo.tpl Busca: <li> <strong>{$tsInfo.stats.user_fotos}</strong> <span>Fotos</span> </li> Añadir debajo: {if $tsUser->uid == $tsInfo.uid && $tsUser->is_member || $tsUser->is_admod} <li class="qtip" title="Tu rango tiene un límite de posts por día, asegúrate de postear algo interesante"> <strong>{$tsInfo.stats.user_limiteposts}</strong> <span>Posts restantes</span> </li> {/if} ¡Has terminado! Y bien, como dije al inicio, este mod es 100% administrable, puedes otorgarle a cierto usuario o rango un límite de posts. Dejaré losarchivos editados por si alguien gusta descargarlos y evitarse el trabajo de modificar los archivos. Descargar archivos Capturas Avisar de cualquier error en los comentarios. a { text-decoration: none !important; }