<?php
$filename = 'menu.txt' ;
if ( $_POST [ 'add' ] ) { // Если добавляем новый пункт меню
$text = trim ( $_POST [ 'text' ] ) ; $link = trim ( $_POST [ 'link' ] ) ; $f = fopen ( $filename , 'a+' ) ; $row = $text . '#' . $link . "\n " ;
if ( ! fwrite ( $f , $row ) ) $error = 'Ошибка записи' ; }
header ( 'location:' . $_SERVER [ 'PHP_SELF' ] ) ; }
if ( $_POST [ 'save' ] ) { // если нажали кнопку сохранения редактируемого пункта меню
if ( ! empty ( $_POST [ 'newText' ] ) && ! empty ( $_POST [ 'newLink' ] ) && ! empty ( $_GET [ 'edit' ] ) ) { $key = $_GET [ 'edit' ] ; // копируем ключ элемента в другую переменную
$row [ 0 ] = $_POST [ 'newText' ] ;
$row [ 1 ] = $_POST [ 'newLink' ] ;
$newRow .= "\n " ;
$file [ $key ] = $newRow ;
if ( ! file_put_contents ( $filename , $file ) ) $error = 'При редактировании произошла ошибка' ; }
header ( 'location:' . $_SERVER [ 'PHP_SELF' ] ) ; }
if ( isset ( $_GET [ 'del' ] ) ) { // если нажали значок удаления (ссылку) $key = $_GET [ 'del' ] ;
header ( 'location:' . $_SERVER [ 'PHP_SELF' ] ) ; }
if ( $_POST [ 'cancel' ] ) header ( 'location:' . $_SERVER [ 'PHP_SELF' ] ) ; // если нажали кнопку отменить // формируем список пунктов меню в виде таблицы
$menu_list = '' ;
$menu_list = '<table border><thead><th>Текст</th><th>Ссылка</th><th>Действия</th></thead><tbody>' ;
foreach ( $file as $key => $value ) {
$menu_list .= '<tr>' ;
if ( isset ( $_GET [ 'edit' ] ) && $_GET [ 'edit' ] == $key ) { $menu_list .= '<form action="' . $_SERVER [ 'PHP_SELF' ] . '?element=' . $key . '" method="post"><td><input name="newText" value="' . $row [ 0 ] . '"></td><td><input name="newLink" value="' . $row [ 1 ] . '"></td><td><input type="submit" value="Сохранить" name="save"><input type="submit" value="Отменить" name="cancel"></td></form>' ;
}
else $menu_list .= '<td>' . $row [ 0 ] . '</td><td>' . $row [ 1 ] . '</td><td><a href="?edit=' . $key . '" title="Править"><img src="http://i...content-available-to-author-only...e.com/icons/oxygen-icons.org/oxygen/16/Actions-document-edit-icon.png"></a> <a href="?del=' . $key . '" title="Удалить"><img src="http://i...content-available-to-author-only...e.com/icons/visualpharm/must-have/16/Delete-icon.png"></a></td>' ;
$menu_list .= '</tr>' ;
}
$menu_list .= '</tbody></table>' ;
}
?>
<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Админка</title>
</head>
<body>
<form action="" method="post">
<fieldset>
<legend>Добавить пункт меню</legend>
<p><label for="text">Текст меню</label><input name="text" id="text" placeholder="Текст меню" type="text"></p>
<p><label for="link">Ссылка</label><input name="link" id="link" placeholder="http://s...content-available-to-author-only...e.ru" type="text"></p>
<input type="submit" value="Сохранить" name="add">
</fieldset>
<?= $error ?>
<?= $menu_list ?>
</form>
</body>
</html>
PD9waHAgCgkkZmlsZW5hbWU9J21lbnUudHh0JzsgCglpZigkX1BPU1RbJ2FkZCddKXsgIC8vINCV0YHQu9C4INC00L7QsdCw0LLQu9GP0LXQvCDQvdC+0LLRi9C5INC/0YPQvdC60YIg0LzQtdC90Y4KCQkkdGV4dD10cmltKCRfUE9TVFsndGV4dCddKTsKCQkkbGluaz10cmltKCRfUE9TVFsnbGluayddKTsKCQlpZighZW1wdHkoJHRleHQpICYmICFlbXB0eSgkbGluaykpewoJCQkkZj1mb3BlbigkZmlsZW5hbWUsICdhKycpOwoJCQkkcm93PSR0ZXh0LicjJy4kbGluay4iXG4iOwoJCQlpZighZndyaXRlKCRmLCAkcm93KSkgJGVycm9yPSfQntGI0LjQsdC60LAg0LfQsNC/0LjRgdC4JzsKCQkJZmNsb3NlKCRmKTsKCQl9CgkJaGVhZGVyKCdsb2NhdGlvbjonLiRfU0VSVkVSWydQSFBfU0VMRiddKTsKCX0KCWlmKCRfUE9TVFsnc2F2ZSddKXsgLy8g0LXRgdC70Lgg0L3QsNC20LDQu9C4INC60L3QvtC/0LrRgyDRgdC+0YXRgNCw0L3QtdC90LjRjyDRgNC10LTQsNC60YLQuNGA0YPQtdC80L7Qs9C+INC/0YPQvdC60YLQsCDQvNC10L3RjgoJCSRmaWxlPWZpbGUoJGZpbGVuYW1lKTsKCQlpZighZW1wdHkoJF9QT1NUWyduZXdUZXh0J10pICYmICFlbXB0eSgkX1BPU1RbJ25ld0xpbmsnXSkgJiYgIWVtcHR5KCRfR0VUWydlZGl0J10pKXsKCQkJJGtleT0kX0dFVFsnZWRpdCddOyAvLyDQutC+0L/QuNGA0YPQtdC8INC60LvRjtGHINGN0LvQtdC80LXQvdGC0LAg0LIg0LTRgNGD0LPRg9GOINC/0LXRgNC10LzQtdC90L3Rg9GOCgkJCSRyb3c9ZXhwbG9kZSgnIycsJGZpbGVbJGtleV0pOwoJCQkkcm93WzBdPSRfUE9TVFsnbmV3VGV4dCddOwoJCQkkcm93WzFdPSRfUE9TVFsnbmV3TGluayddOwoJCQkkbmV3Um93PWltcGxvZGUoJyMnLCAkcm93KTsKCQkJJG5ld1Jvdy49IlxuIjsKCQkJJGZpbGVbJGtleV09JG5ld1JvdzsKCQkJaWYoIWZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlbmFtZSwgJGZpbGUpKSAkZXJyb3I9J9Cf0YDQuCDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNC4INC/0YDQvtC40LfQvtGI0LvQsCDQvtGI0LjQsdC60LAnOwoJCX0KCQloZWFkZXIoJ2xvY2F0aW9uOicuJF9TRVJWRVJbJ1BIUF9TRUxGJ10pOwoJfQoJaWYoaXNzZXQoJF9HRVRbJ2RlbCddKSl7IC8vINC10YHQu9C4INC90LDQttCw0LvQuCDQt9C90LDRh9C+0Log0YPQtNCw0LvQtdC90LjRjyAo0YHRgdGL0LvQutGDKQoJCSRmaWxlPWZpbGUoJGZpbGVuYW1lKTsKCQkka2V5PSRfR0VUWydkZWwnXTsKCQl1bnNldCgkZmlsZVska2V5XSk7CgkJaWYoIWZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlbmFtZSwgJGZpbGUpKSAkZXJyb3I9J9Cf0YDQuCDRg9C00LDQu9C10L3QuNC4INC/0YDQvtC40LfQvtGI0LvQsCDQvtGI0LjQsdC60LAnOwoJCWhlYWRlcignbG9jYXRpb246Jy4kX1NFUlZFUlsnUEhQX1NFTEYnXSk7Cgl9CglpZigkX1BPU1RbJ2NhbmNlbCddKSBoZWFkZXIoJ2xvY2F0aW9uOicuJF9TRVJWRVJbJ1BIUF9TRUxGJ10pOyAvLyDQtdGB0LvQuCDQvdCw0LbQsNC70Lgg0LrQvdC+0L/QutGDINC+0YLQvNC10L3QuNGC0YwKCS8vINGE0L7RgNC80LjRgNGD0LXQvCDRgdC/0LjRgdC+0Log0L/Rg9C90LrRgtC+0LIg0LzQtdC90Y4g0LIg0LLQuNC00LUg0YLQsNCx0LvQuNGG0YsKCSRtZW51X2xpc3Q9Jyc7CglpZihmaWxlX2V4aXN0cygkZmlsZW5hbWUpKXsKCQkkZmlsZT1maWxlKCRmaWxlbmFtZSk7CgkJJG1lbnVfbGlzdD0nPHRhYmxlIGJvcmRlcj48dGhlYWQ+PHRoPtCi0LXQutGB0YI8L3RoPjx0aD7QodGB0YvQu9C60LA8L3RoPjx0aD7QlNC10LnRgdGC0LLQuNGPPC90aD48L3RoZWFkPjx0Ym9keT4nOwoJCWZvcmVhY2ggKCRmaWxlIGFzICRrZXkgPT4gJHZhbHVlKSB7CgkJCSRyb3c9ZXhwbG9kZSgnIycsICR2YWx1ZSk7CgkJCSRtZW51X2xpc3QuPSc8dHI+JzsKCQkJaWYoaXNzZXQoJF9HRVRbJ2VkaXQnXSkgJiYgJF9HRVRbJ2VkaXQnXT09JGtleSl7CgkJCQkkbWVudV9saXN0Lj0nPGZvcm0gYWN0aW9uPSInLiRfU0VSVkVSWydQSFBfU0VMRiddLic/ZWxlbWVudD0nLiRrZXkuJyIgbWV0aG9kPSJwb3N0Ij48dGQ+PGlucHV0IG5hbWU9Im5ld1RleHQiIHZhbHVlPSInLiRyb3dbMF0uJyI+PC90ZD48dGQ+PGlucHV0IG5hbWU9Im5ld0xpbmsiIHZhbHVlPSInLiRyb3dbMV0uJyI+PC90ZD48dGQ+PGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9ItCh0L7RhdGA0LDQvdC40YLRjCIgbmFtZT0ic2F2ZSI+PGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9ItCe0YLQvNC10L3QuNGC0YwiIG5hbWU9ImNhbmNlbCI+PC90ZD48L2Zvcm0+JzsKCQkJfQoJCQllbHNlICRtZW51X2xpc3QuPSc8dGQ+Jy4kcm93WzBdLic8L3RkPjx0ZD4nLiRyb3dbMV0uJzwvdGQ+PHRkPjxhIGhyZWY9Ij9lZGl0PScuJGtleS4nIiB0aXRsZT0i0J/RgNCw0LLQuNGC0YwiPjxpbWcgc3JjPSJodHRwOi8vaS4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZS5jb20vaWNvbnMvb3h5Z2VuLWljb25zLm9yZy9veHlnZW4vMTYvQWN0aW9ucy1kb2N1bWVudC1lZGl0LWljb24ucG5nIj48L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7PGEgaHJlZj0iP2RlbD0nLiRrZXkuJyIgdGl0bGU9ItCj0LTQsNC70LjRgtGMIj48aW1nIHNyYz0iaHR0cDovL2kuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmUuY29tL2ljb25zL3Zpc3VhbHBoYXJtL211c3QtaGF2ZS8xNi9EZWxldGUtaWNvbi5wbmciPjwvYT48L3RkPic7CgkJCSRtZW51X2xpc3QuPSc8L3RyPic7CgkJfQoJCSRtZW51X2xpc3QuPSc8L3Rib2R5PjwvdGFibGU+JzsKCX0KPz4KPCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9InJ1Ij4KPGhlYWQ+Cgk8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Cgk8dGl0bGU+0JDQtNC80LjQvdC60LA8L3RpdGxlPgo8L2hlYWQ+Cjxib2R5PgoJPGZvcm0gYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+Cgk8ZmllbGRzZXQ+CgkJPGxlZ2VuZD7QlNC+0LHQsNCy0LjRgtGMINC/0YPQvdC60YIg0LzQtdC90Y48L2xlZ2VuZD4KCQk8cD48bGFiZWwgZm9yPSJ0ZXh0Ij7QotC10LrRgdGCINC80LXQvdGOPC9sYWJlbD48aW5wdXQgbmFtZT0idGV4dCIgaWQ9InRleHQiIHBsYWNlaG9sZGVyPSLQotC10LrRgdGCINC80LXQvdGOIiB0eXBlPSJ0ZXh0Ij48L3A+CgkJPHA+PGxhYmVsIGZvcj0ibGluayI+0KHRgdGL0LvQutCwPC9sYWJlbD48aW5wdXQgbmFtZT0ibGluayIgaWQ9ImxpbmsiIHBsYWNlaG9sZGVyPSJodHRwOi8vcy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZS5ydSIgdHlwZT0idGV4dCI+PC9wPgoJCTxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSLQodC+0YXRgNCw0L3QuNGC0YwiIG5hbWU9ImFkZCI+Cgk8L2ZpZWxkc2V0PgoJPD89JGVycm9yPz4KCTw/PSRtZW51X2xpc3Q/Pgo8L2Zvcm0+CjwvYm9keT4KPC9odG1sPg==