Changeset 24 for trunk/admin

Show
Ignore:
Timestamp:
01/01/06 23:30:47 (3 years ago)
Author:
michiel
Message:

implemented settings system.
In the admin interface you can alter them.
The frontend index.php needs patching.
Take a look at the svn index.php to see how it works now.

Fixes #1

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/admin/index.php

    r21 r24  
    761761} 
    762762 
     763//}}}--------------------------------------- 
     764//{{{ show_settings(); show the blogsettings 
     765//------------------------------------------ 
     766function show_settings() { 
     767        global $db; 
     768        /* get settings from db */ 
     769        $settings = array(); 
     770        $sql = "SELECT * FROM settings"; 
     771        $res =& $db->query($sql); 
     772        while ($res->fetchInto($row, DB_FETCHMODE_ASSOC)) { 
     773                $settings[$row["settingname"]] = $row["settingvalue"]; 
     774        } 
     775        ?> 
     776        <div class="log_post"> 
     777                <div class="log_head"> 
     778                        <span class="log_subject"> 
     779                        Blogsettings 
     780                        </span> 
     781                </div> 
     782                <div class="log_body"> 
     783                        <span class="log_contents"> 
     784                                <form name="settings" method="post" action="index.php"> 
     785                                <input type="hidden" name="action" value="save_settings" /> 
     786                                <table border="0" cellspacing="0" cellpadding="0"><tr> 
     787                                        <td style="vertical-align: top;">blog title</td> 
     788                                        <td><input type="text" style="width: 200px;" name="settings[blogtitle]" value="<?=$settings["blogtitle"]?>" /></td> 
     789                                </tr><tr> 
     790                                        <td style="vertical-align: top;">blog description:</td> 
     791                                        <td><textarea name="settings[blogdescription]" style="width: 200px; height: 100px;"><?=$settings["blogdescription"]?></textarea></td> 
     792                                </tr><tr> 
     793                                        <td style="vertical-align: top;">posts per page</td> 
     794                                        <td> 
     795                                                <select name="settings[postsperpage]"> 
     796                                                        <option value="10"<? if ($settings["postsperpage"] == 10) { echo " SELECTED"; } ?>>10</option> 
     797                                                        <option value="20"<? if ($settings["postsperpage"] == 20) { echo " SELECTED"; } ?>>20</option> 
     798                                                        <option value="50"<? if ($settings["postsperpage"] == 50) { echo " SELECTED"; } ?>>50</option> 
     799                                                        <option value="75"<? if ($settings["postsperpage"] == 75) { echo " SELECTED"; } ?>>75</option> 
     800                                                        <option value="100"<? if ($settings["postsperpage"] == 100) { echo " SELECTED"; } ?>>100</option> 
     801                                                </select> 
     802                                        </td> 
     803                                </tr><tr> 
     804                                        <td colspan="2">&nbsp;</td> 
     805                                </tr><tr> 
     806                                        <td>&nbsp;</td> 
     807                                        <td><input type="submit" value="save" /></td> 
     808                                </tr></table> 
     809                                </form> 
     810                        </span> 
     811                </div> 
     812                <div class="log_foot"> 
     813                </div> 
     814        </div> 
     815        <? 
     816} 
     817 
     818//}}}----------------------------------- 
     819//{{{ save_settings: save settings to db 
     820//-------------------------------------- 
     821function save_settings($settings) { 
     822        global $db; 
     823        $queries = array(); 
     824        /* get current settings */ 
     825        $sql = "SELECT * FROM settings"; 
     826        $res =& $db->query($sql); 
     827        while ($res->fetchInto($row, DB_FETCHMODE_ASSOC)) { 
     828                $settings_db[$row["settingname"]]["id"]  = $row["id"]; 
     829                $settings_db[$row["settingname"]]["val"] = $row["settingvalue"]; 
     830        } 
     831        /* construct queries to sync database with userinput */ 
     832        foreach ($settings as $key=>$val) { 
     833                if (array_key_exists($key, $settings_db)) { 
     834                        //setting was there, we need to UPDATE it 
     835                        $queries[] = sprintf("UPDATE settings SET settingvalue='%s' WHERE settingname='%s'", $val, $key); 
     836                } else { 
     837                        //setting was not there, we need to INSERT it 
     838                        $queries[] = sprintf("INSERT INTO settings (settingname, settingvalue) VALUES ('%s','%s')", $key, $val); 
     839                } 
     840        } 
     841        /* run queries against db */ 
     842        foreach ($queries as $q) { 
     843                $res =& $db->query($q); 
     844                if (PEAR::isError($res)) { 
     845                        die($res->getUserInfo()); 
     846                } 
     847        } 
     848        /* return to blogsettings view */ 
     849        header("Location: index.php?action=show_settings"); 
     850} 
     851 
    763852//}}}-------------------------------- 
    764853//{{{ show the user some html code ;) 
     
    776865                        &nbsp;<a class="if_menu_item<? if ($_REQUEST["action"] == "show_acro") { echo "_act"; } ?>" href="./index.php?action=show_acro">&nbsp;acronyms</a>&nbsp; 
    777866<!--                    &nbsp;<a class="if_menu_item<? if ($_REQUEST["action"] == "show_pages") { echo "_act"; } ?>" href="./index.php?action=show_pages">&nbsp;pages</a>&nbsp; 
    778                         &nbsp;<a class="if_menu_item<? if ($_REQUEST["action"] == "show_settings") { echo "_act"; } ?>" href="./index.php?action=show_blogsettings">&nbsp;blogsettings</a>&nbsp; 
    779867--> 
     868                        &nbsp;<a class="if_menu_item<? if ($_REQUEST["action"] == "show_settings") { echo "_act"; } ?>" href="./index.php?action=show_settings">&nbsp;blogsettings</a>&nbsp; 
    780869                        &nbsp;<a class="if_menu_item" href="./login.php?action=logout">&nbsp;logout</a>&nbsp; 
    781870                </div> 
     
    801890                                case "edit_author"    : edit_author($_REQUEST["id"]);         break; 
    802891                                case "save_author"    : save_author($_POST["author"]);        break; 
     892                                case "show_settings"  : show_settings();                      break; 
     893                                case "save_settings"  : save_settings($_POST["settings"]);    break; 
    803894                                default               : show_index();                         break; 
    804895                        }