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
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]
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' => '© 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.';
?>
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
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)
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) : '') . '
Code: Select all
((!empty($user_ids)) ? ' AND ' . $db->sql_in_set('ug.user_id', $user_ids) : '') . '
Code: Select all
((!empty($user_ids)) ? 'AND ' . $db->sql_in_set('p.poster_id', $user_ids) : '') . '
Code: Select all
((!empty($user_ids)) ? ' AND ' . $db->sql_in_set('p.poster_id', $user_ids) : '') . '
Fuente: phpBB-Es