[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не правильно работает редактор меню php + MySQL
djsante
Здравствуйте, уважаемые программисты! Нагуглил модуль вывода и редактирования пунктов меню из админки, заменил в нем все на свои данные, но он чего то не пашет.. То ли он не рабочий, то ли я что то не правильно сделал. Я только начинаю работать с php и постепенно его изучаю на практике, html и css знаю хорошо..

Посмотрите, пожалуйста, код /panel/module/menu.php:

<?php
class
t_do
{
function t_do()
{
$do = $this->Filter_Get ($_GET ['do']);
$w = (int) $_GET ['w'];
}
}

?>
<div id='admin_small_navigation'>
<
span style='color: #708090; font-size: 1.2em;'>Управление навигацией</span><br /><br />
<
a href='index.php?show=menu'>Показать список</a> |
<
a href='index.php?show=menu&do=add'>Добавить новый пункт меню</a>
</
div>

<?php if (empty ($do)){ ?>
<table class="items" cellspacing="2" cellpadding="3" border="0">
<
tr>
<
td class='totop'>ID</td>
<
td class='totop'>Название</td>
<
td class='totop'>Мета-описание</td>
<
td class='totop'>Ключевые слова</td>
<
td class='totop'>Содержание страницы</td>
<
td class='totop'>Алиас</td>
<
td class='totop'>Позиция</td>
</
tr>
<?php

class
Query
{
function Query()
{
$Query = $this->DB->query ("SELECT * FROM `".sections."` ORDER by position ASC");
$Menu = $this->DB->fetch ($Query);
$Menu_Count = count ($Menu);
}
}


if ($Menu_Count > 0){
for ($i = 0; $i < $Menu_Count; $i++){
print "<tr>
<td class='tonormal'>"
.$Menu[$i]['id']."</td>
<td class='tonormal'>"
.$Menu[$i]['title']." - <a href='index.php?show=menu&do=edit&w=".$Menu[$i]['id']."'>редактировать</a></td>
<td class='tonormal'>"
.$Menu[$i]['description']."</td>
<td class='tonormal'>"
.$Menu[$i]['keywords']."</td>
<td class='tonormal'>"
.$Menu[$i]['content']."</td>
<td class='tonormal'>"
.$Menu[$i]['page']."</td>
<td class='tonormal'>"
.$Menu[$i]['position']."</td>
</tr>
"
;
}
}
else {
print "<tr><td>Найдено <b>0</b> пунктов меню. Пожалуйста, добавьте новый</td></tr>";
}

?>
</table>
<?php }
if (!empty ($do) && $do == 'add'){

if (count ($_POST) > 0){
$ok = $_POST ['ok'];
$menu_title = $_POST ['menu_title'];
$menu_description = $_POST ['menu_description'];
$menu_keywords = $_POST ['menu_keywords'];
$menu_content = $_POST ['menu_content'];
$menu_page = $_POST ['menu_page'];
$menu_position = $_POST ['menu_position'];

if (isset ($ok)){
if (!empty ($menu_title) && !empty ($menu_description) && !empty ($menu_keywords) && !empty ($menu_content) && !empty ($menu_page) && !empty ($menu_position)){
try {
$this->DB->query ("INSERT into `".sections."` VALUES (?, ?, ?, ?, ?)", array ('', $menu_title, $menu_description, $menu_keywords, $menu_content, $menu_page, $menu_position));
$this->SuccessMessage ("Ваша ссылка успешно добавлена!");
} catch (DBQueryException $e){
print $e->getMessage();
exit;
}
}
else {
$this->FailedMessage ("Одно или несколько полей остались незаполенными!");
exit;
}
}
}




$GetLastPositionQuery = $this->DB->query ("SELECT position FROM `".sections."` ORDER by position DESC LIMIT 1");
$DataArr = $this->DB->fetchOne ($GetLastPositionQuery);
$Position = $DataArr['position'] + 1;

echo "
Для того, чтобы ссылка открывалась в новом окне нужно указать для <b>цели</b> значение <b>_blank</b>!
<form name='MZR_MENU_ADD' method='POST'>
<table style='width: 50%; margin: 0 auto;'>
<tr><td class='totop' width='200px'>Название: </td><td class='tonormal'><input type='text' name='menu_title' value=''></td></tr>
<tr><td class='totop'>Мета-описание: </td><td class='tonormal'><input type='text' name='menu_description' value=''></td></tr>
<tr><td class='totop'>Ключевые слова: </td><td class='tonormal'><input type='text' name='menu_keywords' value='_self'></td></tr>
<tr><td class='totop'>Содержание страницы: </td><td class='tonormal'><input type='text' name='menu_content' value=''></td></tr>
<tr><td class='totop'>Алиас: </td><td class='tonormal'><input type='text' name='menu_page' value='_self'></td></tr>
<tr><td class='totop'>Позиция: </td><td class='tonormal'><input type='text' name='menu_position' value='"
.$Position."'></td></tr>
<tr><td colspan='2'><input type='submit' name='ok' value='Добавить новую ссылку'></td></tr>
</table>
</form>
"
;
}

if (!empty ($do) && $do == 'edit' && is_numeric ($w)){

if (count ($_POST) > 0){
$ok = $_POST ['ok'];
$menu_title = $_POST ['menu_title'];
$menu_description = $_POST ['menu_description'];
$menu_keywords = $_POST ['menu_keywords'];
$menu_content = $_POST ['menu_content'];
$menu_page = $_POST ['menu_page'];
$menu_position = $_POST ['menu_position'];

if (isset ($ok)){
if (!empty ($menu_title) && !empty ($menu_description) && !empty ($menu_keywords) && !empty ($menu_content) && !empty ($menu_page) && !empty ($menu_position)){
try {
$this->DB->query ("UPDATE `".sections."` SET
title = ?, description = ?, keywords = ?, content = ?, page = ?, position = ?"
, array ($menu_title, $menu_description, $menu_keywords, $menu_content, $menu_page, $menu_position));
$this->SuccessMessage ("Ваша ссылка успешно изменена!");
} catch (DBQueryException $e){
print $e->getMessage();
exit;
}
}
else {
$this->FailedMessage ("Одно или несколько полей остались незаполенными!");
exit;
}
}
}



$Query = $this->DB->query ("SELECT * FROM `".sections."` WHERE id = ? LIMIT ?", array ($w, 1));
$Rows = $this->DB->fetch ($Query);

for ($i = 0; $i < count ($Rows); $i++){

$menu = $Rows[$i];

echo "
Для того, чтобы ссылка открывалась в новом окне нужно указать для <b>цели</b> значение <b>_blank</b>!
<form name='MZR_MENU_EDIT' method='POST'>
<table style='width: 50%; margin: 0 auto;'>
<tr><td class='totop' width='200px'>Название: </td><td class='tonormal'><input type='text' name='menu_title' value='"
.$menu['title']."'></td></tr>
<tr><td class='totop'>Мета-описание: </td><td class='tonormal'><input type='text' name='menu_description' value='"
.$menu['description']."'></td></tr>
<tr><td class='totop'>Ключевые слова: </td><td class='tonormal'><input type='text' name='menu_keywords' value='"
.$menu['keywords']."'></td></tr>
<tr><td class='totop'>Содержание страницы: </td><td class='tonormal'><input type='text' name='menu_content' value='"
.$menu['content']."'></td></tr>
<tr><td class='totop'>Алиас: </td><td class='tonormal'><input type='text' name='menu_page' value='"
.$menu['page']."'></td></tr>
<tr><td class='totop'>Позиция: </td><td class='tonormal'><input type='text' name='menu_position' value='"
.$menu['position']."'></td></tr>
<tr><td colspan='2'><input type='submit' name='ok' value='Редактировать ссылку'></td></tr>
</table>
</form>
"
;
}

}

?>


В базе таблица sections, а в ней ячейки description ;keywords;content; page; position, которые работают на сайте нормально, но только для отображения меню, а вот чтобы добавлять, удалять и редактировать из админки пока не получается.

И на всякий случай код главной админки
/panel/index.php:

[php<?php
session_start ();
define('antihack',true);
include("../inc/config.inc.php");
include("../inc/functions.inc.php");
if ($_GET['exit']){
session_destroy();
header('Location: '.$address.'/panel');
}

$page = trim($_GET['page_name']);

if (!preg_match("/^[a-zA-Z\-]+$/", $page)) { $heading="Помилка 404 - Сторінка не знайдена";}
else
{
$s_page = mysql_query("SELECT * FROM sections WHERE page='".$page."' ");

if (mysql_num_rows($s_page)==0) { $heading="Помилка 404 - Сторінка не знайдена";}
else
{
$r_page = mysql_fetch_array($s_page);
$id = $r_page['id']; //Идентификатор страницы
$title = $r_page['title']; //Тайтл страницы
$heading = $r_page['heading']; //Заголовок
$description = $r_page['description']; //Краткое описание
$keywords = $r_page['keywords']; //Ключевые слова
$content = $r_page['content']; //Контент
$position = $r_page['position']; //Позиция пункта меню
}
}
?>
<html>
<head>
<title>Адміністративна панель</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<meta http-equiv="Content-Type; charset=windows-1251" />
<script src="../js/jquery.js" type="text/javascript"></script>
<script src="../js/themes.js" type="text/javascript"></script>
</head>
<body>

<?php
if (!isset($_SESSION['authorization']))
{
if($_SESSION['error']==1)
{
$error='<div class="error">Неправильний логін або пароль!</div>';
}
?><center>
<form id="form" name="form" method="POST" action="login.php">
<div>
<h1>Форма авторизації</h1>
<p>тільки для адміністраторів</p>
<label>Логін</label> <input type="text" name="login" id="login" />
<label>Пароль</label><input type="text" name="password" id="password" />
<button type="submit">Увійти</button>

</div>
<?=$error;?>
</form></center>
<?php
unset($_SESSION['error']);
die();
}
else if(md5(crypt($_SESSION['admin'],$_SESSION['pass'])) == $_SESSION['authorization'])
{
?>
<div id="header">
<div class="title"><b>Панель управління</b><span align="center" style="font-size: 13px; margin-left:100px;"><a href="<?=$address;?>/panel/index.php?exit=1"><img src="/img/exit.png">&nbsp;Вихід</a></span><span align="right" style="padding: 15px; margin-left:400px; font-size: 13px;"><a target="_blank" href="/"><img src="/img/prev.png">&nbsp;Переглянути сайт</a></span></div>
</div>

<div id="sidebar">
<ul>
<li><a href="<?=$address;?>/panel/index.php?show=emitents">1.Картка емітента</a></li>
<li><a href="<?=$address;?>/panel/index.php?show=docs&section=1">2.Установчі документи</a></li>
<li><a href="<?=$address;?>/panel/index.php?show=docs&section=2">3.Акціонерний капітал</a></li>
<li><a href="<?=$address;?>/panel/index.php?show=docs&section=3">4.Положення</a></li>
<li><a href="<?=$address;?>/panel/index.php?show=docs&section=4">5.Протоколи зборів</a></li>
<li><a href="<?=$address;?>/panel/index.php?show=docs&section=5">6.Результати перевірок</a></li>
<li><a href="<?=$address;?>/panel/index.php?show=docs&section=6">7.Повідомлення про збори</a></li>
<li><a href="<?=$address;?>/panel/index.php?show=reports">8.Розкриття інформації</a></li>

<li><a href="<?=$address;?>/panel/index.php?show=style">9.Оформлення</a></li>
<li style="margin-top:20px;"><a href='<?=$address;?>/panel/index.php?show=menu'><b>Структура документів</b></a></li>
</ul>

</div>

<div id="content">

<?php

switch ($_GET['show'])
{
case "emitents":
include ("module/emitents.php"); //Картка емітента
break;
case "docs":
include ("module/docs.php"); //Установчі документи, Акціонерний капітал, Положення, Протоколи зборів, Результати перевірок
break;
case "style":
include ("module/style.php"); //Оформлення
break;
case "reports":
include ("module/reports.php"); //Розкриття інформації
break;
case "menu":
include ("module/menu.php"); //Меню
break;
}

?>

</div>

<?php
}
?>
</body>
</html>][/php]
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.