Actualizar PHPost 1.5 a 1.5.1

Como todo sistema al realizar una actualización puede presentar errores y gracias a los reportes de los usuarios se han corregidos algunos errores que aparecieron en la actualización de PHPost A1.5.

Importante: Esta guía es para actualizar de la A1.5 a la A1.5.1 es decir para los que actualizaron ente los días 06 y 07 de diciembre de 2011 y también para quienes descargaron el script en esas fechas.

Al igual que en la anterior guía debe realizar un respaldo de los archivos que vamos a modificar.

Corrigiendo errores

La IP ya no se guarda

La IP ya no es actualizada en la tabla de u_miembros por tanto ya no se muestra en ninguna parte del script, para corregirlo debemos abrir el archivo c.user.php ubicado en /inc/class/c.user.php.

Buscamos las siguientes líneas:

                // Cargamos la información del usuario
                $this->loadUser();
                // Last login
                $this->update("u_miembros","user_lastlogin = ".time()."","user_id = {$this->uid}");
                /* REGISTAR IP */
                $this->update("u_miembros","user_last_ip = '{$this->session->ip_address}'","user_id = {$this->uid}");
            

reemplazamos todo por:

                // Cargamos la información del usuario
                $this->loadUser(true);
            

Ahora buscamos esta línea:

            function loadUser()
            

la reemplazamos por:

            function loadUser($login = FALSE)
            

Buscamos

            // ULTIMA ACCION 
            $this->update("u_miembros","user_lastactive = unix_timestamp()","user_id = {$this->uid}");
            

Agregamos debajo las siguientes líneas:

            // Si ha iniciado sesión cargamos estos datos.
            if($login)
            {
                // Last login
                $this->update("u_miembros","user_lastlogin = {$this->session->time_now}","user_id = {$this->uid}");
                /* REGISTAR IP */
                $this->update("u_miembros","user_last_ip = '{$this->session->ip_address}'","user_id = {$this->uid}");
            }
            

Error al cerrar sesión

Cuando damos clic en salir, no borra la sesión de la base de datos, entonces en las estadísticas sigue contando esa sesión como otro usuario, para corregir el problema seguimos editando el archivo c.user.php.

Buscamos las siguientes líneas en la función logoutUser

            $this->session = new tsSession();
            $this->session->destroy();
            

lo reemplazamos por:

            $this->session = new tsSession();
            $this->session->read();
            $this->session->destroy();
            

No se puede iniciar sesión

Este error ocurre sólo con los sitios instalados en localhost o en subdominios, para solucionar el problema haga lo siguiente:

Busquen el siguiente código:

            // Set the cookie vars
            $host_info = parse_url($tsCore->settings['url']); 
            $host = explode('.', $host_info['host']); $c = count($host);
            $this->cookie_domain = $host[$c - 2] . '.' . $host[$c - 1];
            $site_name = substr(md5($host_info['host']), 0, 6);
            $this->cookie_name = $this->cookie_prefix . $site_name; 
            

reemplazamos todo por:

            // Obtener el dominio o subdominio para la cookie
            $host = parse_url($tsCore->settings['url']); 
            $host = str_replace('www.', '' , strtolower($host['host']));
            // Establecer variables
            $this->cookie_domain = ($host == 'localhost') ? '' : '.' . $host;
            $this->cookie_name = $this->cookie_prefix . substr(md5($host), 0, 6); 
            

Buscamos y borramos esta línea:

            $cookiedomain = '.' . $this->cookie_domain;
            

Más abajo se encuentra esta línea:

            setcookie($cookiename, $cookiedata, ($this->time_now + $cookietime), '/', $cookiedomain);
            
la reemplazamos por:
            setcookie($cookiename, $cookiedata, ($this->time_now + $cookietime), '/', $this->cookie_domain);
            

Actualizaciones faltantes

Por error humano se olvido mencionar estas actualizaciones en la guía PHPost A1.3 a A1.5 para los que actualizaron entre el día 06 y 07 de diciembre de 2011 deben realizar estás actualizaciones.

Antiflodod en Fotos

Esto va a corregir el problema de SPAM que se tienen en la sección Fotos, para esto necesitamos abrir el archivo c.fotos.php, ubicado en /inc/class/c.fotos.php.

Buscamos lo siguiente:

            // UPLOAD
            require('c.upload.php');
            

y agregamos arriba el siguiente código:

            // ANTI FLOOD
            $tsCore->antiFlood(true, 'foto');
            

Administrar Temas

Vamos a activar la sección Temas y apariencia de nuestro Panel de Administración, para esto necesitamos abrir el archivo m.admin_temas.tpl, ubicado en /Temas/default/templates/admin_mods/m.admin_temas.tpl.

Seleccionamos todo el contenido de m.admin_temas.tpl y lo reemplazamos por el del siguiente archivo.

upgrade-phpost-1.5-admin_temas.txt

Información de Versión

Para finalizar vamos a actualizar el numero de versión en nuestro sitio.

Abrimos el archivo ubicado en /inc/php/ajax/ajax.feed.php

Buscamos lo siguiente:

            /**
             * Versión al 05 de Diciembre del 2011 *
             * PHPost Alfa v1.5 *
             */
            $version_now = 'Alfa v1.5';
            

reemplazamos por:

            /**
             * Versión al 07 de Diciembre del 2011 *
             * PHPost Alfa v1.5.1 *
             */
            $version_now = 'Alfa v1.5.1';
            

Conclusión

Esta es la actualización más reciente hasta la fecha (07/12/2011), si llegaran a aparecer más errores se seguirá actualizando el script.

Por favor cualquier error reportarlo en el foro.

↑ Ir arriba