Yoshihisa Fukuhara
higef****@users*****
2006年 5月 19日 (金) 11:43:54 JST
Index: affelio/apps/bb/bb.pm
diff -u affelio/apps/bb/bb.pm:1.11 affelio/apps/bb/bb.pm:1.12
--- affelio/apps/bb/bb.pm:1.11 Fri May 19 02:23:37 2006
+++ affelio/apps/bb/bb.pm Fri May 19 11:43:54 2006
@@ -50,6 +50,10 @@
my $afap = new AffelioApp(ConfigDir => Cwd::getcwd(), cgi => $cgi);
debug_print("BB::new: AFAP loaded.");
+ my $DBConfig = Config::Tiny->new();
+ $DBConfig = Config::Tiny->read("$afap->{af}->{site__user_dir}/db.cfg");
+ my $db_type=$DBConfig->{db}->{type};
+
my $self = {
cgi => $cgi,
afap => $afap,
@@ -63,15 +67,18 @@
pref_tb => "AFuser_bb_$afap->{install_name}_pref",
spam_tb => "AFuser_bb_$afap->{install_name}_spam",
permission_tb => "AFuser_bb_$afap->{install_name}_permission",
+ db_type => $db_type,
dbh => undef
};
-
+ $self->{key1} = get_column_key($db_type);
+ $self->{locked} = get_column_lock($db_type);
###########################
#Locale init
###########################
$self->{lh} = bb::L10N->get_handle(($afap->get_site_info("locale"),
$afap->get_site_info("locale")));
$self->{dbh} = $afap->get_userdata_dbh();
+
unless(-f $self->{tmpfile}) {
initTables($self);
open(TMP,"> $self->{tmpfile}");
@@ -275,8 +282,8 @@
##############################################
sub sendBbMail {
my ($self,$msg,$msg_title) = @_;
- my $mailto = $self->getColumn("SELECT value FROM $self->{pref_tb} WHERE key1 = 'email'");
- my $bb_title = $self->getColumn("SELECT value FROM $self->{pref_tb} WHERE key1 = 'title'");
+ my $mailto = $self->getColumn("SELECT value FROM $self->{pref_tb} WHERE $self->{key1} = 'email'");
+ my $bb_title = $self->getColumn("SELECT value FROM $self->{pref_tb} WHERE $self->{key1} = 'title'");
Affelio::NetLib::Email::send_email($self->{afap}->{af}->{cmd__sendmail}, "$self->{afap}->{af}->{user__email1}", "$self->{uname}", $mailto, "$self->{uname}/$bb_title/$msg_title", "$msg", "", "", "ja");
}
@@ -397,19 +404,46 @@
############################################################################
sub get_query_primarykey {
my ($self) = @_;
- my $DBConfig = Config::Tiny->new();
- $DBConfig = Config::Tiny->read("$self->{afap}->{af}->{site__user_dir}/db.cfg");
- my $db_type = $DBConfig->{db}->{type};
my $query;
- if ($db_type eq "sqlite"){
+ if ($self->{db_type} eq "sqlite"){
$query = " PRIMARY KEY,";
- }elsif ($db_type eq "mysql"){
+ }elsif ($self->{db_type} eq "mysql"){
$query = " AUTO_INCREMENT PRIMARY KEY,";
}
return $query;
}
+############################################################################
+# get sql column name: lock (temporary)
+############################################################################
+sub get_column_lock {
+ my ($db_type) = @_;
+ my $query;
+
+ if ($db_type eq "sqlite"){
+ $query = "lock";
+ }else{
+ $query = "locked";
+ }
+ return $query;
+}
+
+############################################################################
+# get sql column name: key (temporary)
+############################################################################
+sub get_column_key {
+ my ($db_type) = @_;
+ my $query;
+
+ if ($db_type eq "sqlite"){
+ $query = "key";
+ }else{
+ $query = "key1";
+ }
+ return $query;
+}
+
##############################################
# cryptPwd
##############################################
@@ -475,8 +509,8 @@
############################################################################
sub checkContent {
my ($self, $title, $user, $afid, $description, $icon, $pwd) = @_;
- my $max_sbjlen = $self->getColumn("SELECT value FROM $self->{pref_tb} WHERE key1 = 'max_sbjlen'");
- my $max_textlen = $self->getColumn("SELECT value FROM $self->{pref_tb} WHERE key1 = 'max_textlen'");
+ my $max_sbjlen = $self->getColumn("SELECT value FROM $self->{pref_tb} WHERE $self->{key1} = 'max_sbjlen'");
+ my $max_textlen = $self->getColumn("SELECT value FROM $self->{pref_tb} WHERE $self->{key1} = 'max_textlen'");
$self->errorExit('<AF_M text="Too long title.">') if (length($title)>int($max_sbjlen));
$self->errorExit('<AF_M text="Too long content.">') if (length($description)>int($max_textlen));
$self->errorExit('<AF_M text="Too long nickname.">') if (length($user)>16);
@@ -534,7 +568,9 @@
user TEXT,
afid TEXT,
last_user TEXT,
- last_afid TEXT, locked INTEGER, ord INTEGER";
+ last_afid TEXT, "
+ .$self->{locked}." INTEGER,
+ ord INTEGER";
$self->{dbh}->do("CREATE TABLE $self->{category_tb} ($query)");
@@ -552,8 +588,8 @@
last_afid TEXT,
topics INTEGER,
posts INTEGER,
- status INTEGER,
- locked INTEGER,
+ status INTEGER,"
+ .$self->{locked}." INTEGER,
ord INTEGER";
$self->{dbh}->do("CREATE TABLE $self->{forum_tb} ($query)");
@@ -571,24 +607,24 @@
last_afid TEXT,
view INTEGER,
posts INTEGER,
- status INTEGER,
- locked INTEGER,
+ status INTEGER,"
+ .$self->{locked}." INTEGER,
timestamp INTEGER,
update_time INTEGER";
$self->{dbh}->do("CREATE TABLE $self->{topic_tb} ($query)");
#general setting table
- $query="key1 TEXT,value TEXT";
+ $query="$self->{key1} TEXT,value TEXT";
$self->{dbh}->do("CREATE TABLE $self->{pref_tb} ($query)");
- $self->{dbh}->do("INSERT INTO $self->{pref_tb} (key1, value) VALUES ('title', '$self->{header_title}')");
- $self->{dbh}->do("INSERT INTO $self->{pref_tb} (key1, value) VALUES ('email', '$self->{afap}->{af}->{user__email1}')");
- $self->{dbh}->do("INSERT INTO $self->{pref_tb} (key1, value) VALUES ('max_topics', '300')");
- $self->{dbh}->do("INSERT INTO $self->{pref_tb} (key1, value) VALUES ('max_comments', '1000')");
- $self->{dbh}->do("INSERT INTO $self->{pref_tb} (key1, value) VALUES ('num_topics', '50')");
- $self->{dbh}->do("INSERT INTO $self->{pref_tb} (key1, value) VALUES ('num_comments', '50')");
- $self->{dbh}->do("INSERT INTO $self->{pref_tb} (key1, value) VALUES ('max_sbjlen', '256')");
- $self->{dbh}->do("INSERT INTO $self->{pref_tb} (key1, value) VALUES ('max_textlen', '2000')");
+ $self->{dbh}->do("INSERT INTO $self->{pref_tb} ($self->{key1}, value) VALUES ('title', '$self->{header_title}')");
+ $self->{dbh}->do("INSERT INTO $self->{pref_tb} ($self->{key1}, value) VALUES ('email', '$self->{afap}->{af}->{user__email1}')");
+ $self->{dbh}->do("INSERT INTO $self->{pref_tb} ($self->{key1}, value) VALUES ('max_topics', '300')");
+ $self->{dbh}->do("INSERT INTO $self->{pref_tb} ($self->{key1}, value) VALUES ('max_comments', '1000')");
+ $self->{dbh}->do("INSERT INTO $self->{pref_tb} ($self->{key1}, value) VALUES ('num_topics', '50')");
+ $self->{dbh}->do("INSERT INTO $self->{pref_tb} ($self->{key1}, value) VALUES ('num_comments', '50')");
+ $self->{dbh}->do("INSERT INTO $self->{pref_tb} ($self->{key1}, value) VALUES ('max_sbjlen', '256')");
+ $self->{dbh}->do("INSERT INTO $self->{pref_tb} ($self->{key1}, value) VALUES ('max_textlen', '2000')");
#SPAM keywords table
$query="spam_id INTEGER".get_query_primarykey($self)."
@@ -596,22 +632,22 @@
$self->{dbh}->do("CREATE TABLE $self->{spam_tb} ($query)");
#permission setting table
- $query="key1 TEXT, super BOOLEAN, user BOOLEAN";
+ $query="$self->{key1} TEXT, super BOOLEAN, user BOOLEAN";
$self->{dbh}->do("CREATE TABLE $self->{permission_tb} ($query)");
- $self->{dbh}->do("INSERT INTO $self->{permission_tb} (key1, super, user) VALUES ('category_edit', 0,0)");
- $self->{dbh}->do("INSERT INTO $self->{permission_tb} (key1, super, user) VALUES ('category_delete', 0,0)");
- $self->{dbh}->do("INSERT INTO $self->{permission_tb} (key1, super, user) VALUES ('category_status', 0,0)");
-
- $self->{dbh}->do("INSERT INTO $self->{permission_tb} (key1, super, user) VALUES ('forum_edit', 1,0)");
- $self->{dbh}->do("INSERT INTO $self->{permission_tb} (key1, super, user) VALUES ('forum_delete', 0,0)");
- $self->{dbh}->do("INSERT INTO $self->{permission_tb} (key1, super, user) VALUES ('forum_status', 0,0)");
-
- $self->{dbh}->do("INSERT INTO $self->{permission_tb} (key1, super, user) VALUES ('topic_edit', 1,1)");
- $self->{dbh}->do("INSERT INTO $self->{permission_tb} (key1, super, user) VALUES ('topic_delete', 1,0)");
- $self->{dbh}->do("INSERT INTO $self->{permission_tb} (key1, super, user) VALUES ('topic_status', 1,0)");
+ $self->{dbh}->do("INSERT INTO $self->{permission_tb} ($self->{key1}, super, user) VALUES ('category_edit', 0,0)");
+ $self->{dbh}->do("INSERT INTO $self->{permission_tb} ($self->{key1}, super, user) VALUES ('category_delete', 0,0)");
+ $self->{dbh}->do("INSERT INTO $self->{permission_tb} ($self->{key1}, super, user) VALUES ('category_status', 0,0)");
+
+ $self->{dbh}->do("INSERT INTO $self->{permission_tb} ($self->{key1}, super, user) VALUES ('forum_edit', 1,0)");
+ $self->{dbh}->do("INSERT INTO $self->{permission_tb} ($self->{key1}, super, user) VALUES ('forum_delete', 0,0)");
+ $self->{dbh}->do("INSERT INTO $self->{permission_tb} ($self->{key1}, super, user) VALUES ('forum_status', 0,0)");
+
+ $self->{dbh}->do("INSERT INTO $self->{permission_tb} ($self->{key1}, super, user) VALUES ('topic_edit', 1,1)");
+ $self->{dbh}->do("INSERT INTO $self->{permission_tb} ($self->{key1}, super, user) VALUES ('topic_delete', 1,0)");
+ $self->{dbh}->do("INSERT INTO $self->{permission_tb} ($self->{key1}, super, user) VALUES ('topic_status', 1,0)");
- $self->{dbh}->do("INSERT INTO $self->{permission_tb} (key1, super, user) VALUES ('comment_edit', 1,1)");
- $self->{dbh}->do("INSERT INTO $self->{permission_tb} (key1, super, user) VALUES ('comment_delete', 1,1)");
+ $self->{dbh}->do("INSERT INTO $self->{permission_tb} ($self->{key1}, super, user) VALUES ('comment_edit', 1,1)");
+ $self->{dbh}->do("INSERT INTO $self->{permission_tb} ($self->{key1}, super, user) VALUES ('comment_delete', 1,1)");
}