Changeset 33 for trunk/admin

Show
Ignore:
Timestamp:
01/05/06 23:22:45 (3 years ago)
Author:
michiel
Message:

implemented admin stuff for menulinks.
Fixes #19

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/admin/index.php

    r24 r33  
    33 * MvBlog -- An open source no-noncence blogtool 
    44 * 
    5  * Copyright (C) 2005, Michiel van Baak 
     5 * Copyright (C) 2005-2006, Michiel van Baak 
    66 * Logo design (C) 2005, Sofie van Tendeloo 
    77 * 
     
    850850} 
    851851 
     852//}}}----------------------------------------- 
     853//{{{ show_menuitems(): show custom menu items 
     854//-------------------------------------------- 
     855function show_menuitems() { 
     856        global $db; 
     857        /* get settings from db */ 
     858        $settings = array(); 
     859        $sql = "SELECT * FROM menulinks ORDER BY sortorder"; 
     860        $res =& $db->query($sql); 
     861        ?> 
     862        <div class="log_post"> 
     863                <div class="log_head"> 
     864                        <span class="log_subject"> 
     865                                Menu items 
     866                        </span> 
     867                </div> 
     868                <div class="log_body"> 
     869                        <span class="log_contents"> 
     870                                <form name="settings" id="settingsform" method="post" action="index.php"> 
     871                                <input type="hidden" name="action" value="save_menuitems" /> 
     872                                <? 
     873                                while ($res->fetchInto($row, DB_FETCHMODE_ASSOC)) { 
     874                                        ?> 
     875                                        <table border="0" cellspacing="1" cellpadding="0"><tr> 
     876                                                <td>name</td> 
     877                                                <td><input style="width: 300px;" type="text" name="link[<?=$row["id"]?>][linktitle]" value="<?=$row["linktitle"]?>" /></td> 
     878                                        </tr><tr> 
     879                                                <td>link</td> 
     880                                                <td><input style="width: 300px;" type="text" name="link[<?=$row["id"]?>][url]" value="<?=$row["url"]?>" /></td> 
     881                                        </tr><tr> 
     882                                                <td>image</td> 
     883                                                <td><input style="width: 300px;" type="text" name="link[<?=$row["id"]?>][image]" value="<?=$row["image"]?>" /></td> 
     884                                        </tr><tr> 
     885                                                <td>pos</td> 
     886                                                <td> 
     887                                                        <input style="width: 30px;" type="text" name="link[<?=$row["id"]?>][sortorder]" value="<?=$row["sortorder"]?>" /> 
     888                                                        <input type="button" name="del" value="del" onclick="document.getElementById('state_<?=$row["id"]?>').value='delete'; document.getElementById('settingsform').submit();"> 
     889                                                </td> 
     890                                        </tr></table> 
     891                                        <input type="hidden" id="state_<?=$row["id"]?>" name="link[<?=$row["id"]?>][state]" value="save" /> 
     892                                        <hr> 
     893                                        <? 
     894                                } 
     895                                ?> 
     896                                <table border="0" cellspacing="1" cellpadding="0"><tr> 
     897                                        <td>name</td> 
     898                                        <td><input style="width: 300px;" type="text" name="link[0][linktitle]" value="" /></td> 
     899                                </tr><tr> 
     900                                        <td>link</td> 
     901                                        <td><input style="width: 300px;" type="text" name="link[0][url]" value="" /></td> 
     902                                </tr><tr> 
     903                                        <td>image</td> 
     904                                        <td><input style="width: 300px;" type="text" name="link[0][image]" value="" /></td> 
     905                                </tr><tr> 
     906                                        <td>pos</td> 
     907                                        <td> 
     908                                                <input style="width: 30px;" type="text" name="link[0][sortorder]" value="" /> 
     909                                        </td> 
     910                                </tr></table> 
     911                                <input type="hidden" id="state_<?=$row["id"]?>" name="link[0][state]" value="save" /> 
     912                                <hr> 
     913                                <input type="submit" value="save all" /> 
     914                                </form> 
     915                        </span> 
     916                </div> 
     917        </div> 
     918        <? 
     919} 
     920 
     921//}}}----------------------------------------------------- 
     922//{{{ save_menuitems(links): store/remove database entries 
     923//-------------------------------------------------------- 
     924function save_menuitems($links) { 
     925        global $db; 
     926        /* walk through all the links */ 
     927        if (is_array($links)) { 
     928                foreach ($links as $k=>$v) { 
     929                        /* new item always has $k == 0 */ 
     930                        if ($k == 0) { 
     931                                if (strlen(trim($v["linktitle"])) && strlen(trim($v["url"]))) { 
     932                                        $sql  = "INSERT INTO menulinks (url, linktitle, image, sortorder) VALUES "; 
     933                                        $sql .= sprintf("('%s', '%s', '%s', %d)", $v["url"], $v["linktitle"], $v["image"], $v["sortorder"]); 
     934                                        $res = $db->query($sql); 
     935                                } 
     936                        } else { 
     937                                /* from db. this can be either be marked as delete or save */ 
     938                                if ($v["state"] == "delete") { 
     939                                        $sql = sprintf("DELETE FROM menulinks WHERE id=%d", $k); 
     940                                        $res = $db->query($sql); 
     941                                } elseif ($v["state"] == "save") { 
     942                                        $sql  = "UPDATE menulinks SET "; 
     943                                        $sql .= sprintf("url='%s'", $v["url"]); 
     944                                        $sql .= sprintf(", linktitle='%s'", $v["linktitle"]); 
     945                                        $sql .= sprintf(", image='%s'", $v["image"]); 
     946                                        $sql .= sprintf(", sortorder=%d", $v["sortorder"]); 
     947                                        $sql .= sprintf(" WHERE id=%d", $k); 
     948                                        $res = $db->query($sql); 
     949                                } 
     950                        } 
     951                } 
     952        } 
     953        header("Location: index.php?action=show_menuitems"); 
     954} 
     955 
    852956//}}}-------------------------------- 
    853957//{{{ show the user some html code ;) 
     
    867971--> 
    868972                        &nbsp;<a class="if_menu_item<? if ($_REQUEST["action"] == "show_settings") { echo "_act"; } ?>" href="./index.php?action=show_settings">&nbsp;blogsettings</a>&nbsp; 
     973                        &nbsp;<a class="if_menu_item<? if ($_REQUEST["action"] == "show_menuitems") { echo "_act"; } ?>" href="./index.php?action=show_menuitems">&nbsp;menu items</a>&nbsp; 
    869974                        &nbsp;<a class="if_menu_item" href="./login.php?action=logout">&nbsp;logout</a>&nbsp; 
    870975                </div> 
     
    892997                                case "show_settings"  : show_settings();                      break; 
    893998                                case "save_settings"  : save_settings($_POST["settings"]);    break; 
     999                                case "show_menuitems" : show_menuitems();                     break; 
     1000                                case "save_menuitems" : save_menuitems($_POST["link"]);       break; 
    8941001                                default               : show_index();                         break; 
    8951002                        }