Seleccionar idioma:
Realizar Donación - Mods Premium - Portfolio



Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.
* Como adapto esta funcion de agregar tablas?
  Leído 3068 veces
* Viendo el foro
 0 Usuarios y 1 Visitante están viendo este foro.


*
Ago 07 2010


Mod:

http://custom.simplemachines.org/mods/index.php?mod=1313

Este mod tiene un archivo php para agregar las tablas necesarias para su funcionamiento, esta dentro de este código:

Código: (installDatabase.php) [Seleccionar]
<?php
/*****************************************************************
* SMF RateThatTopic                                                 *
******************************************************************/

// OK First load the stuff
global $smcFunc$db_prefix$context$boarddir$db_name$db_passwd$db_user$db_server$modSettings$scripturl$boardurl;

$doing_manual_install false;

if (!
defined('SMF') && file_exists(dirname(__FILE__) . '/SSI.php'))
{
    require_once(
dirname(__FILE__) . '/SSI.php');
    
$doing_manual_install true;
}
elseif (!
defined('SMF'))
    die(
'The installer wasn\'t able to connect to SMF! Make sure that you are either installing this via the Package Manager or the SSI.php file is in the same directory.');

// The whole "delete" part was copied from the SMF code. Thanks, guys!
if (isset($_GET['delete']))
{
    @
unlink(__FILE__);

    
header('Location: http://' . (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'] . ':' $_SERVER['SERVER_PORT']) . dirname($_SERVER['PHP_SELF']) . '/Themes/default/images/blank.gif');
    exit;
}

if (
$doing_manual_install)
    echo 
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
    <title>SMD RateThatTopic mod Database Installer</title>
     <link rel="stylesheet" type="text/css" href="Themes/default/style.css" />
</head>
<body>
    <br /><br />'
;


// Start it!
// First load the SMF 2's Extra DB Functions
db_extend('packages');
db_extend('extra');

// Get the table list
    
$tables = array();
    
$tmp $smcFunc['db_list_tables']();
    foreach (
$tmp as $t)
        if (
substr($db_prefix,0,strlen($db_name) + 3) != '`'.$db_name.'`.')
            
$tables[] = $t;
        else
            
$tables[] = '`'.$db_name '`.'.$t;

// Create the tables
$smcFunc['db_create_table'](
    
'log_rt',
    array(
        array(
'name' => 'id_member','type' => 'MEDIUMINT','size' => '8','default' => 0,'null' => false),
        array(
'name' => 'id_topic','type' => 'MEDIUMINT','size' => '8','default' => 0,'null' => false),
        array(
'name' => 'rate','type' => 'SMALLINT','size' => '5','default' => 0,'null' => false),
        array(
'name' => 'time','type' => 'TEXT','null' => false),
    ),
    array(),
    array(),
    
'ignore'
);

$created_tables[] = 'log_rt';

$boards_columns $smcFunc['db_list_columns']('boards'false);
$messages_columns $smcFunc['db_list_columns']('messages'false);

//correct an error in previous 2.1.8 installation
$log_rt_indexes $smcFunc['db_list_indexes'] ('log_rt'false);
if (
in_array('id_topics'$boards_columns)){
    
$smcFunc['db_query']('','ALTER TABLE {db_prefix}log_rt DROP PRIMARY KEY');
}

if (!
in_array('rateTopic_board_enable'$boards_columns))
{
    
$smcFunc['db_add_column']('boards', array('name' => 'rateTopic_board_enable''type' => 'TINYINT','size' => '4''default' => '0''null' => false));
    
$altered_mem_table_1 true;
}
if (!
in_array('rate'$messages_columns))
{
    
$smcFunc['db_add_column']('messages', array('name' => 'rate''type' => 'FLOAT','size' => '5''default' => '0''null' => false));
    
$altered_mem_table_2 true;
}
else
{
    
$smcFunc['db_change_column']('messages''rate', array('type' => 'float'));
    
$altered_mem_table_3 true;
}

// OK, time to report, output all the stuff to be shown to the user
echo '
<table cellpadding="0" cellspacing="0" border="0" class="tborder" width="750" align="center"><tr><td>
<div class="titlebg" style="padding: 1ex">
    SMF RateThatTopic mod Database Installer
</div>
<div class="windowbg2" style="padding: 2ex">'
;

// Tell them what has been done
echo '<b>Creating / Updating Tables</b>
<br /><br />
<ul class="normallist">'
;
foreach (
$created_tables as $table_name)
    if (
in_array($table_name$tables))
        echo 
'
    <li>Table <i>'
.preg_replace('/`[^`]+`\./'''$table_name).'</i> already exists.</li>';
    else
        echo 
'
    <li>'
.$table_name.' table created.</li>';
if (isset(
$altered_mem_table_1))
    echo 
'
    <li>Altered '
.preg_replace('/`[^`]+`\./'''$db_prefix).'boards table, added field "rateTopic_board_enable".</li>';
if (isset(
$altered_mem_table_2))
    echo 
'
    <li>Altered '
.preg_replace('/`[^`]+`\./'''$db_prefix).'messages table, added field "rate".</li>';
if (isset(
$altered_mem_table_3))
    echo 
'
    <li>Altered '
.preg_replace('/`[^`]+`\./'''$db_prefix).'messages table, modified field "rate" type to "float".</li>';
echo 
'
</ul>
    <br /><br /><b>Thank you for trying out SMF RateThatTopic mod!</b>
</div>
</td></tr></table>
<br />'
;

if (
$doing_manual_install)
    echo 
'
</body></html>'
;

?>


Supongo que el único arreglo que debo hacerle es a esta sección:

Código: [Seleccionar]
// Create the tables
$smcFunc['db_create_table'](
    'log_rt',
    array(
        array('name' => 'id_member','type' => 'MEDIUMINT','size' => '8','default' => 0,'null' => false),
        array('name' => 'id_topic','type' => 'MEDIUMINT','size' => '8','default' => 0,'null' => false),
        array('name' => 'rate','type' => 'SMALLINT','size' => '5','default' => 0,'null' => false),
        array('name' => 'time','type' => 'TEXT','null' => false),
    ),
    array(),
    array(),
    'ignore'
);

Pero no comprendo aún como pasar ese código para que sea compatible con la estructura de la DB de RC2/RC3

tanto por aprender!

www.forosperuanos.net

www.musicaysonido.com te dedicas o quieres dedicarte a la Música o al Audio Profesional? este es tu foro!

Buscas un buen proveedor de dominio y hosting? --> NameCheap


Simple Portal
Varios!

Mensajes: 428

Ver Perfil  Foros Peruanos 

« Última Modificación: Agosto 08, 2010, 01:25:58 pm por distante »
En línea

*
Ago 07 2010


pero ese mod es compatible con RC2 y RC3  :o

Aca como instalarlo manualmente para RC3 -------->>>Instalación manual

Espero que te sirva  ;)

*¤×•·:.·.:·•×¤* ^HeRaCLeS^ *¤×•·:.·.:·•×¤*
*¤×• Todos los Mp seran ignorados | Solo seran considerados los Mp Solicitados por mi •×¤*
*¤×• All Mp will be ignored | Only considers the Mp requested per my •×¤*

SMFPersonal

Adk Portal 3.0.2
2.0.14
www.smfpersonal.net
#1

Mensajes: 13978

Ver Perfil  SMFPersonal 

En línea

*
Ago 07 2010


Es que antes ya me a pasado (me paso en la mañana con este mod: http://custom.simplemachines.org/mods/index.php?mod=1300 ) el parse funciona, pero el formato de la base de datos entre la RC1 y RC2/RC3 es distinto.

Para el otro mod, vicram me dio la modificación que tuve que hacer (o bueno que tuve que ejecutar desde myphpadmin) porque el instalador no creaba la tabla en la DB

u__u'

www.forosperuanos.net

www.musicaysonido.com te dedicas o quieres dedicarte a la Música o al Audio Profesional? este es tu foro!

Buscas un buen proveedor de dominio y hosting? --> NameCheap


Simple Portal
Varios!
#2

Mensajes: 428

Ver Perfil  Foros Peruanos 

En línea

*
Ago 07 2010


Pero el RateThatTopic.2.2.0.zip es para la versión RC2 por lo que el archivo installDatabase.php tiene que andar bien.

Sino trata de instalarlo manualmente y ejecuta el installDatabase.php independientemente.

*¤×•·:.·.:·•×¤* ^HeRaCLeS^ *¤×•·:.·.:·•×¤*
*¤×• Todos los Mp seran ignorados | Solo seran considerados los Mp Solicitados por mi •×¤*
*¤×• All Mp will be ignored | Only considers the Mp requested per my •×¤*

SMFPersonal

Adk Portal 3.0.2
2.0.14
www.smfpersonal.net
#3

Mensajes: 13978

Ver Perfil  SMFPersonal 

En línea

*
Ago 07 2010


no no, es hasta el RC1

En el change log dice.

El instalador en si, si corre, pero el archivo php así lo corra solo no va a crear la base de datos (por lo que dije arriba)

El formato entre la Rc1 y RC2 cambio :(

www.forosperuanos.net

www.musicaysonido.com te dedicas o quieres dedicarte a la Música o al Audio Profesional? este es tu foro!

Buscas un buen proveedor de dominio y hosting? --> NameCheap


Simple Portal
Varios!
#4

Mensajes: 428

Ver Perfil  Foros Peruanos 

En línea

*
Ago 07 2010


yo no se que lees vos, pero yo leo esto:
Citar
This mod is compatible with SMF 2.0 Beta 4 Public and above only.
Este mod es compatible con SMF 2.0 Beta 4 y superior.

después trato de instalarlo y vemos si lo podemos solucionar.

*¤×•·:.·.:·•×¤* ^HeRaCLeS^ *¤×•·:.·.:·•×¤*
*¤×• Todos los Mp seran ignorados | Solo seran considerados los Mp Solicitados por mi •×¤*
*¤×• All Mp will be ignored | Only considers the Mp requested per my •×¤*

SMFPersonal

Adk Portal 3.0.2
2.0.14
www.smfpersonal.net
#5

Mensajes: 13978

Ver Perfil  SMFPersonal 

En línea

*
Ago 07 2010


no no, lo digo por experiencia, todos los mods fueron hechos para RC1 y que tenían que modificar la base de datos se instalaban ok, pero cuando tenían que ejecutar sus consultas mandaban el error de que no existian las tablas.

Por ejemplo en el otro mod que decia. tenia esto

Código: [Seleccionar]
<?php
################################
##   .LORD.
##   Topic View Log
##   v1.2
################################

global $smcFunc;

db_extend('packages');

$columns = array(
   array(
'name' => 'id_member''type' => 'mediumint''size' => '8''default' => '0'),
   array(
'name' => 'id_topic''type' => 'mediumint''size' => '8''default' => '0'),
   array(
'name' => 'views''type' => 'int''size' => '10''default' => '0'),
   array(
'name' => 'time''type' => 'int''size' => '10''default' => '0'),
);

$indexes = array(
   array(
'type' => 'primary''columns' => array('id_member''id_topic')),
   array(
'type' => 'key''columns' => array('id_topic')),
);

$smcFunc['db_create_table']('log_topic_view'$columns$indexes, array(), 'ignore');

?>

y no creo las tablas, vicram me dio este codigo para ejecutarlo desde myphpadmin

Cita de: vicram
Entra a tu phpmyadmin y luego a tu Base de Datos, y ahi en la pestaña SQL coloca y ejecuta esto

Código: [Seleccionar]
CREATE TABLE IF NOT EXISTS smf_log_topic_view (
         id_member MEDIUMINT( UNSIGNED DEFAULT 0 NOT NULL,
         id_topic MEDIUMINT( UNSIGNED DEFAULT 0 NOT NULL,
         views INT(10) UNSIGNED DEFAULT 0 NOT NULL,
         time INT(10) UNSIGNED DEFAULT 0 NOT NULL,
            PRIMARY KEY (id_member, id_topic),
            INDEX (id_topic)
         )
http://www.simplemachines.org/community/index.php?topic=394621.msg2735481#msg2735481

Ya aprendí un poquititititititititititititiititito de PHP pero aun no entiendo nada de las conexiones y funciones con la BD u_U

www.forosperuanos.net

www.musicaysonido.com te dedicas o quieres dedicarte a la Música o al Audio Profesional? este es tu foro!

Buscas un buen proveedor de dominio y hosting? --> NameCheap


Simple Portal
Varios!
#6

Mensajes: 428

Ver Perfil  Foros Peruanos 

En línea

*
Ago 08 2010


$smcFunc['db_create_table']('{db_prefix}log_topic_view', $columns, $indexes, array(), 'ignore');

el codigo falta agregarle los {db_prefix} a cada tabla

ADK Portal 3.0.2
2.0.11
www.smfpersonal.net
#7

Mensajes: 8631

Ver Perfil  SMFPersonal 

En línea

*
Ago 08 2010


Eso lo agrego al final del codigo de archivo? u.u

www.forosperuanos.net

www.musicaysonido.com te dedicas o quieres dedicarte a la Música o al Audio Profesional? este es tu foro!

Buscas un buen proveedor de dominio y hosting? --> NameCheap


Simple Portal
Varios!
#8

Mensajes: 428

Ver Perfil  Foros Peruanos 

En línea

*
Ago 08 2010


Código: [Seleccionar]
<?php
/*****************************************************************
* SMF RateThatTopic                                                 *
******************************************************************/

// OK First load the stuff
global $smcFunc$db_prefix$context$boarddir$db_name$db_passwd$db_user$db_server$modSettings$scripturl$boardurl;

$doing_manual_install false;

if (!
defined('SMF') && file_exists(dirname(__FILE__) . '/SSI.php'))
{
    require_once(
dirname(__FILE__) . '/SSI.php');
    
$doing_manual_install true;
}
elseif (!
defined('SMF'))
    die(
'The installer wasn\'t able to connect to SMF! Make sure that you are either installing this via the Package Manager or the SSI.php file is in the same directory.');

// The whole "delete" part was copied from the SMF code. Thanks, guys!
if (isset($_GET['delete']))
{
    @
unlink(__FILE__);

    
header('Location: http://' . (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'] . ':' $_SERVER['SERVER_PORT']) . dirname($_SERVER['PHP_SELF']) . '/Themes/default/images/blank.gif');
    exit;
}

if (
$doing_manual_install)
    echo 
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
    <title>SMD RateThatTopic mod Database Installer</title>
     <link rel="stylesheet" type="text/css" href="Themes/default/style.css" />
</head>
<body>
    <br /><br />'
;


// Start it!
// First load the SMF 2's Extra DB Functions
db_extend('packages');
db_extend('extra');

// Get the table list
    
$tables = array();
    
$tmp $smcFunc['db_list_tables']();
    foreach (
$tmp as $t)
        if (
substr($db_prefix,0,strlen($db_name) + 3) != '`'.$db_name.'`.')
            
$tables[] = $t;
        else
            
$tables[] = '`'.$db_name '`.'.$t;

// Create the tables
$smcFunc['db_create_table'](
    
'{db_prefix}log_rt',
    array(
        array(
'name' => 'id_member','type' => 'MEDIUMINT','size' => '8','default' => 0,'null' => false),
        array(
'name' => 'id_topic','type' => 'MEDIUMINT','size' => '8','default' => 0,'null' => false),
        array(
'name' => 'rate','type' => 'SMALLINT','size' => '5','default' => 0,'null' => false),
        array(
'name' => 'time','type' => 'TEXT','null' => false),
    ),
    array(),
    array(),
    
'ignore'
);

$created_tables[] = 'log_rt';

$boards_columns $smcFunc['db_list_columns']('{db_prefix}boards'false);
$messages_columns $smcFunc['db_list_columns']('{db_prefix}messages'false);

//correct an error in previous 2.1.8 installation
$log_rt_indexes $smcFunc['db_list_indexes'] ('{db_prefix}log_rt'false);
if (
in_array('id_topics'$boards_columns)){
    
$smcFunc['db_query']('','ALTER TABLE {db_prefix}log_rt DROP PRIMARY KEY');
}

if (!
in_array('rateTopic_board_enable'$boards_columns))
{
    
$smcFunc['db_add_column']('{db_prefix}boards', array('name' => 'rateTopic_board_enable''type' => 'TINYINT','size' => '4''default' => '0''null' => false));
    
$altered_mem_table_1 true;
}
if (!
in_array('rate'$messages_columns))
{
    
$smcFunc['db_add_column']('{db_prefix}messages', array('name' => 'rate''type' => 'FLOAT','size' => '5''default' => '0''null' => false));
    
$altered_mem_table_2 true;
}
else
{
    
$smcFunc['db_change_column']('{db_prefix}messages''rate', array('type' => 'float'));
    
$altered_mem_table_3 true;
}

// OK, time to report, output all the stuff to be shown to the user
echo '
<table cellpadding="0" cellspacing="0" border="0" class="tborder" width="750" align="center"><tr><td>
<div class="titlebg" style="padding: 1ex">
    SMF RateThatTopic mod Database Installer
</div>
<div class="windowbg2" style="padding: 2ex">'
;

// Tell them what has been done
echo '<b>Creating / Updating Tables</b>
<br /><br />
<ul class="normallist">'
;
foreach (
$created_tables as $table_name)
    if (
in_array($table_name$tables))
        echo 
'
    <li>Table <i>'
.preg_replace('/`[^`]+`\./'''$table_name).'</i> already exists.</li>';
    else
        echo 
'
    <li>'
.$table_name.' table created.</li>';
if (isset(
$altered_mem_table_1))
    echo 
'
    <li>Altered '
.preg_replace('/`[^`]+`\./'''$db_prefix).'boards table, added field "rateTopic_board_enable".</li>';
if (isset(
$altered_mem_table_2))
    echo 
'
    <li>Altered '
.preg_replace('/`[^`]+`\./'''$db_prefix).'messages table, added field "rate".</li>';
if (isset(
$altered_mem_table_3))
    echo 
'
    <li>Altered '
.preg_replace('/`[^`]+`\./'''$db_prefix).'messages table, modified field "rate" type to "float".</li>';
echo 
'
</ul>
    <br /><br /><b>Thank you for trying out SMF RateThatTopic mod!</b>
</div>
</td></tr></table>
<br />'
;

if (
$doing_manual_install)
    echo 
'
</body></html>'
;

?>


testea asi

ADK Portal 3.0.2
2.0.11
www.smfpersonal.net
#9

Mensajes: 8631

Ver Perfil  SMFPersonal 

En línea




Otros temas de su interes

Adk Blog 3.0 - not work Argon2000 Febrero 14, 2017, 06:48:29 pm *
Restriccion por edad Uni Azul Septiembre 07, 2014, 08:56:29 pm
Como configurar correctamente el Hide Tag Special ? Alex73 Agosto 28, 2014, 02:49:57 pm
2 preguntas sobre thank of matic lockerzlatinos Noviembre 15, 2011, 11:06:02 am
sitemap no me funciona en rc5 Tamagochi Enero 18, 2011, 03:51:44 pm
Ayuda con esto? Alex73 Abril 10, 2015, 11:08:44 am



Usuario:
Contraseña:
Sesión:
hermes bracelet replica, christian louboutin replica, van cleef and arpels replica, red bottoms replica, cartier love bracelet replica christian louboutin replica, christian louboutin replica, hermes bracelet replica,