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

Moderadores: Carlos, Soporte en MODs, Soporte en phpBB

  • Avatar de Usuario
Avatar de Usuario
By Carlos
#875
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:

Código: Seleccionar todoUnexpected 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:

Código: Seleccionar todoGeneral 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]

Código: Seleccionar todoSQL 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:

Código: Seleccionar todo<?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)
Código: Seleccionar todo((!empty($user_ids)) ? 'AND ' . $db->sql_in_set('ug.user_id', $user_ids) : '') . '

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

BUSCAR: (Línea ~536)
Código: Seleccionar todo((!empty($user_ids)) ? 'AND ' . $db->sql_in_set('p.poster_id', $user_ids) : '') . '

REEMPLAZAR POR:
Código: Seleccionar todo((!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
¿Quién está conectado?

Usuarios navegando por este Foro: CommonCrawl [Bot] y 0 invitados