Added the Forum Store. Rewrote all the forum slice calls to use it. Remapped sql.ErrNoRows to ErrNoRows for portability. Removed a pointless column in the login query. Revamped the tags and buttons on Tempra Simple, and on the profiles for the other themes. Fixed a padding bug. Tweaked the font sizes and padding in the Control Panel for Tempra Simple. More progress with widgets.
99 lines
1.9 KiB
Go
99 lines
1.9 KiB
Go
package main
|
|
|
|
import "log"
|
|
import "fmt"
|
|
import "encoding/json"
|
|
import "database/sql"
|
|
|
|
var db *sql.DB
|
|
var db_version string
|
|
var db_collation string = "utf8mb4_general_ci"
|
|
|
|
var ErrNoRows = sql.ErrNoRows
|
|
|
|
func init_database() (err error) {
|
|
// Engine specific code
|
|
err = _init_database()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
log.Print("Loading the usergroups.")
|
|
groups = append(groups, Group{ID:0,Name:"System"})
|
|
|
|
rows, err := get_groups_stmt.Query()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
defer rows.Close()
|
|
|
|
i := 1
|
|
for ;rows.Next();i++ {
|
|
group := Group{ID: 0,}
|
|
err := rows.Scan(&group.ID, &group.Name, &group.PermissionsText, &group.Is_Mod, &group.Is_Admin, &group.Is_Banned, &group.Tag)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
// Ugh, you really shouldn't physically delete these items, it makes a big mess of things
|
|
if group.ID != i {
|
|
log.Print("Stop physically deleting groups. You are messing up the IDs. Use the Group Manager or delete_group() instead x.x")
|
|
fill_group_id_gap(i, group.ID)
|
|
}
|
|
|
|
err = json.Unmarshal(group.PermissionsText, &group.Perms)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if debug {
|
|
log.Print(group.Name + ": ")
|
|
fmt.Printf("%+v\n", group.Perms)
|
|
}
|
|
|
|
group.Perms.ExtData = make(map[string]bool)
|
|
groups = append(groups, group)
|
|
}
|
|
err = rows.Err()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
groupCapCount = i
|
|
|
|
log.Print("Binding the Not Loggedin Group")
|
|
GuestPerms = groups[6].Perms
|
|
|
|
log.Print("Loading the forums.")
|
|
fstore = NewStaticForumStore()
|
|
err = fstore.LoadForums()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
log.Print("Loading the forum permissions.")
|
|
err = build_forum_permissions()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
|
|
log.Print("Loading the settings.")
|
|
err = LoadSettings()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
log.Print("Loading the plugins.")
|
|
err = LoadPlugins()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
log.Print("Loading the themes.")
|
|
err = LoadThemes()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|