Guías sobre phpBB 3.1.xProblemas comunes durante la actualización

Guías y tutoriales sobre phpBB 3.1.x
Solamente sobre phpBB 3.1.x

Moderators: Carlos, Soporte en MODs, Soporte en phpBB

Previous topicNext topic

0
No votes
 
Total votes: 0

User avatar
Carlos
Admin
Admin
Posts: 159
Joined: 17 Jun 2012 01:01:50
Bandera: Mexico
Nombre real: Carlos

Problemas comunes durante la actualización

Post by Carlos »

Problema: Versión no compatible de PHP Si su versión de PHP no es igual o mayor que PHP 5.3.3, no podrá ejecutar phpBB 3.1.0
Si está ejecutando una versión no compatible, verá un error similar a este:

Code: Select all

Unexpected character in input: '\' (ASCII=92) state=1
Solución:Actualice la versión de PHP a 5.3.3 o superior. Es posible que tenga que pedir a su hosting que haga esto, o simplemente cambiar una configuración en el panel de control de su sitio web.

Problema: El foro se convirtió mientras un estilo personalizado (no prosilver) estaba activoSi su foro estaba usando un estilo que no sea prosilver, los usuarios se encontrarán con un error (o varios). Los estilos 3.0 no son compatibles con 3.1 y dependiendo de su método de actualización, no pueden existir en absoluto después de la actualización. Los posibles errores que puede encontrar son:

Code: Select all

General Error
SQL ERROR [ mysqli ]

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE user_id = 1' at line 3 [1064]

Code: Select all

SQL ERROR [ mysql4 ]

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3 [1064]
Solución: El siguiente script restablecerá el estilo por defecto del foro a prosilver y lo restablecerá como estilo para todos los usuarios.
Cree un archivo de texto (usando NotePad++) llamado fix.php con el siguiente contenido:

Code: Select all

<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Default style ID
$sql = 'SELECT config_value FROM ' . CONFIG_TABLE . " WHERE config_name = 'default_style'";
$result = $db->sql_query($sql);
$default_style_id = (int) $db->sql_fetchfield('config_value');
$db->sql_freeresult($result);

// Default style name
$sql = 'SELECT style_name FROM ' . STYLES_TABLE . ' WHERE style_id = ' . $default_style_id;
$result = $db->sql_query($sql);
$default_style_name = $db->sql_fetchfield('style_name');
$db->sql_freeresult($result);

// Active styles
$sql = 'SELECT style_id, style_name, style_active FROM ' . STYLES_TABLE;
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
    $styles_list[] = $row;
}
$db->sql_freeresult($result);


echo 'Estilo por defecto: ' . $default_style_name . ' (' . $default_style_id . ')<br />';

$exists = file_exists('./styles/' . $default_style_name . '/style.cfg');

if ($exists)
{
    echo 'Existe el estilo por defecto, no hay trabajo por hacer.';
    exit;
}

if (!file_exists('./styles/prosilver/style.cfg'))
{
    echo 'Prosilver no existe. Por favor, sube una copia de prosilver desde el <a href="https://www.phpbb.com/downloads/">Paquete completo 3.1.2</a>.';
    exit;
}

$prosilver = array();
foreach ($styles_list as $style)
{
    if ($style['style_name'] == 'prosilver')
    {
        $prosilver = $style;
        break;
    }
}

// Install style if it doesn't exist
if (!sizeof($prosilver))
{
    $sql_ary = array(
        'style_name'        => 'prosilver',
        'style_copyright'    => '&copy; phpBB Group',
        'style_active'        => 1,
        'style_path'        => 'prosilver',
        'bbcode_bitfield'    => 'lNg=',
        'style_parent_id'    => '0',
        'style_parent_tree'    => '',
    );

    $sql = 'INSERT INTO ' . STYLES_TABLE . '
        ' . $db->sql_build_array('INSERT', $sql_ary);
    $db->sql_query($sql);

    $id = $db->sql_nextid();
    $prosilver = array(
        'style_name'    => 'prosilver',
        'style_id'        => $id,
        'style_active'    => 1,
    );

    echo 'Prosilver instalado (' . $id . ').<br />';
}
else
{
    // Activate prosilver
    $sql = 'UPDATE ' . STYLES_TABLE . " SET style_active = 1 WHERE style_name = 'prosilver'";
    $db->sql_query($sql);
}

// Set it as the default style
$sql = 'UPDATE ' . CONFIG_TABLE . ' SET config_value = ' . $prosilver['style_id'] . " WHERE config_name = 'default_style'";
$db->sql_query($sql);
$cache->purge();
echo 'Establecer prosilver como el estilo por defecto.<br />';

// Set all users' styles to prosilver
$sql = 'UPDATE ' . USERS_TABLE . ' SET user_style = ' . $prosilver['style_id'];
$db->sql_query($sql);
echo 'Estilos de usuario actualizado a Prosilver.<br />';
echo 'Hecho.';
?>
Suba este archivo a la "raíz" de su foro (el mismo lugar donde esta el archivo config.php ubicado) y use su navegador para ir ahí. Si el script se ejecuta sin errores, visite su foro y debería ver que carga con el estilo prosilver. Recuerde eliminar este archivo cuando haya terminado.

Problema: Conflicto durante la actualización a 3.1.5 Si actualizó su foro de 3.1.3 a 3.1.4 usando el paquete de actualización automática, y ahora intenta actualizar su foro de 3.1.4 a 3.1.5 usando el paquete de actualización automática una vez más, podrá ver un conflicto en el calculo de diferencia del archivo includes/acp/acp_prune.php
conflict.png
El conlicto occure debido a que los paquetes de actualización automática para 3.1.x a 3.1.4 faltaba un cambio en el archivo includes/acp/acp_prune.php
Los cambios solo consistían en espacios en blanco. Así que con el fin de obtener la revisión de su foro nos vimos obligados a crear un conflicto moviendo algunas líneas de alrededor, para asegurarse de que el programa de actualización se diera cuenta de que el archivo aún no está actualizado.

La forma correcta de resolver el conflicto es utilizar una de estas opciones:
  • Opción 3: No fusionar - Utilizar el nuevo archivo - ALTAMENTE RECOMENDADO o
  • Opción 1: Fusionar modificaciones (elimina código modificado dentro del bloque conflictivo)
    Esta opción sólo debe utilizarse cuando se tiene modificaciones instaladas en includes/acp/acp_prune.php (algo que no debería ser así en phpBB 3.1.x)
Para evitar el conflicto también puede añadir el cambio que falta manualmente antes de ejecutar la actualización automática:

Abrir el archivo includes/acp/acp_prune.php

BUSCAR: (Línea ~510)

Code: Select all

((!empty($user_ids)) ? 'AND ' . $db->sql_in_set('ug.user_id', $user_ids) : '') . '
REEMPLAZAR POR:

Code: Select all

((!empty($user_ids)) ? ' AND ' . $db->sql_in_set('ug.user_id', $user_ids) : '') . '
BUSCAR: (Línea ~536)

Code: Select all

((!empty($user_ids)) ? 'AND ' . $db->sql_in_set('p.poster_id', $user_ids) : '') . '
REEMPLAZAR POR:

Code: Select all

((!empty($user_ids)) ? ' AND ' . $db->sql_in_set('p.poster_id', $user_ids) : '') . '
La causa de la falta de cambio ha sido identificada, y corregida en la secuencia de comandos del paquete, con lo cual, no debería aparecer de nuevo en el futuro.

Fuente: phpBB-Es
[mod=Carlos]Recuerda poner tus datos de soporte antes de pedir ayuda! Asi nos evitamos dramas y te ayudamos rapido [/mod]
Previous topicNext topic

Return to “Guías sobre phpBB 3.1.x”