Как пишется админку

#Руководства

  • 7 мар 2019

  • 12

Узнайте, для чего нужна панель управления сайтом, какие в ней есть функции и как её разработать самостоятельно.

 vlada_maestro / shutterstock

Евгений Кучерявый

Пишет о программировании, в свободное время создаёт игры. Мечтает открыть свою студию и выпускать ламповые RPG.

Инструменты для управления сайтом:

  • phpmyadmin для работы с базой данных;
  • FTP-клиент, чтобы загружать или удалять файлы;
  • графический редактор, который сжимает изображения;
  • текстовый редактор, в котором оформляются статьи;
  • сервис аналитики для оценки эффективности контента и рекламы.

Лучше всего собрать их в одном месте, которое и называется панелью управления сайтом.

В первую очередь создадим файл admin.php в корне сайта. Пока у него будет такой вид:

<? include("includes/db.php");
$echo = "Тут скоро что-то будет";
?>
<!DOCTYPE html>
<html>
<head>
             <title>Админка</title>
             <link rel="stylesheet" href="admin.css">
</head>
<body>
             <div class='wrapper'>
                           <main class='main' id='main'>
                                          <?echo $echo;?>
                          </main>
             </div>
</body>
</html>

Этот код получает данные методами GET и POST, обрабатывает их, а потом выводит что-либо через переменную $echo. Чтобы поисковики не пытались зайти в админку, запретите её индексировать в файле robots.txt:

Robot.txt
User-agent: *
Disallow: /admin.php

  • Авторизация.
  • Главная страница.
  • Инструменты редактирования.
  • Работа с базой данных.
  • Окно статистики.

Дополнительные возможности управления сайтом относятся к разным направлениям PHP, которые невозможно охватить в одной статье.

Теперь приступаем к написанию функций, запросов и валидаций.

Чтобы ограничить доступ, создадим форму входа в панель управления:

$echo = "<div class='table'>
<div class='tale-wrapper'>
            <div class='table-title'>Войти в панель администратора</div>
            <div class='table-content'>
                        <form method='post' id='login-form' class='login-form'>
                                      <input type='text' placeholder='Логин' class='input'
                                        name='login' required><br>
                                     <input type='password' placeholder='Пароль' class='input'
                                       name='password' required><br>
                                    <input type='submit' value='Войти' class='button'>
                      </form>
             </div>
</div>
</div>";

В переменную $echo прописываем HTML-код формы, которая передает данные на эту же страницу. Затем они обрабатываются:

function login($db,$login,$password) {

                 //Обязательно нужно провести валидацию логина и пароля, чтобы
                    исключить вероятность инъекции

                 //Запрос в базу данных

                $loginResult = mysqli_query($db,"SELECT * FROM userlist WHERE login='$login'
                  AND password='$password' AND admin='1'");

                if(mysqli_num_rows($loginResult) == 1) {  //Если есть совпадение,
                 возвращается true

                                return true;

                } else {//Если такого пользователя не существует, данные стираются,
                   а возвращается false

                                 unset($_SESSION['login'],$_SESSION['password']);

                                  return false;

              }

}

if(isset($_POST['login']) && isset($_POST['password'])) {

$_SESSION['login'] = $_POST['login'];

$_SESSION['password'] = $_POST['password'];

}

if(isset($_SESSION['login']) && isset($_SESSION['password'])) {

if(login($db,$_SESSION['login'],$_SESSION['password'])) {//Попытка авторизации

                //Тут будут проходить все операции

                $echo = null; //Обнуление переменной, чтобы удалить из вывода
                   форму авторизации

}

}

После отправки формы данные переносятся в супермассив $_SESSION. Затем вызывается функция login (). Она делает запрос в базу данных. Если он проходит удачно, возвращается значение true, если нет — данные из $_SESSION удаляются и возвращается false.

Соответствия в запросе ищутся только среди администраторов, но можно давать ограниченный доступ и для других групп пользователей — например, для модераторов, чтобы они проверяли комментарии и статьи, но не имели доступа к глобальным настройкам и удалению записей.

Теперь создадим условия, чтобы пользователь делал что-то полезное. Для этого методом GET передаётся название страницы:

if(isset($_GET['act'])) {$act = $_GET['act'];} else {$act = 'home';}
switch($act) {
case 'home':
             $article_result = mysqli_query($db,"SELECT * FROM articles");
             if(mysqli_num_rows($article_result) >= 1) {
                        while($article_array = mysqli_fetch_array($article_result)) {
                                     $articles .= "<div class='table-content__list-item'><a href='?                                    act=edit_article&id=$article_array[id]'>$article_array[id] |
                                     $article_array[title]</a></div>";
                          }
              } else {
                      $articles = "Статей пока нет";
              }
             $users_result = mysqli_query($db,"SELECT * FROM userlist");
              if(mysqli_num_rows($users_result) >= 1) {
                             while($users_array = mysqli_fetch_array($users_result)) {
                                          $users .= "<div class='table-content__list-item'><a href='?                                         act=edit_user&id=$users_array[id]'>$users_array[id] | 
                                          $users_array[login]</a></div>";
                               }
                } else {
                               $users = "Статей пока нет";
                }
                               $echo = "<div class='tables'>
                                           <div class='table'>
                                                        <div class='table-wrapper'>
                                                                            <div class='table-title'>Страницы</div>
                                                                            <div class='table-content'>
                                                                                           $articles
                                                                                           <a href='?act=add_article'                                                                                          class='table__add-button'                                                                                         id='add_article'>+</a>
                                                                              </div>
                                                          </div>
                                               </div>
                                              <div class='table'>
                                                        <div class='table-wrapper'>
                                                                        <div class='table-title'>Пользователи</div>
                                                                        <div class='table-content'>
                                                                                  $users
                                                                                 <a href='?act=add_user'                                                                                  class='table__add-button'
                                                                                   id='add_user'>+</a>
                                                                      </div>
                                                          </div>
                                         </div>
                      </div>";
break;
}

В переменную $act попадает значение из $_GET[‘act’], а если его не существует, то просто home. Дальше с помощью функции switch () прописываются действия для каждой страницы.

На главной странице админки размещают все компоненты сайта с возможностью управления:

  • пользователями;
  • статьями и комментариями;
  • карточками товаров;
  • файлами и изображениями;
  • статистикой и рекламными блоками.

Должна быть возможность редактировать и общие настройки сайта: поменять метатеги, изменить параметры капчи, обновить политику конфиденциальности и так далее.

Как вы могли заметить, в таблицах каждая строчка — это ссылка такого вида:

<a href='?act=edit_article&id=$article_array[id]'>$article_array[id] | $article_array[title]</a>

В переменной act передаётся значение edit_article, а в id — идентификатор статьи. Перейдя по ссылке, администратор попадает на страницу редактирования:

case 'edit_article':
if(isset($_GET['id'])) {
$id = $_GET['id'];
$result = mysqli_query($db,"SELECT * FROM articles WHERE id='$id'");
if(mysqli_num_rows($result) == 1) {
if(isset($_POST['title']) && isset($_POST['description']) && isset($_POST['text'])) {
//Тут должна быть валидация
//Обновление таблицы
$update = mysqli_query($db,"UPDATE articles SET title='$_POST[title]', description='$_POST[description]', text='$_POST[text]' WHERE id='$id'");
if($update) {
//Если обновление прошло успешно, получаются новые данные
$result = mysqli_query($db,"SELECT * FROM articles WHERE id='$id'");
$message = "Успешно обновлено!";
}
}
$article = mysqli_fetch_array($result);//Получение информации в массив
//Форма редактирования
$echo = "<div class='table'>
<div class='table-wrapper'>
<div class='table-title'>Редактирование статьи</div>
<div class='table-content'>
<a href='?act=home'><- Вернуться</a><br>
$message
<form method='post' class='article-form'>
<b>Название:</b> <input type='text' name='title' value='$article[title]'><br>
<b>Описание:</b> <textarea name='description'>$article[description]</textarea><br>
<b>Текст:</b> <textarea name='text'>$article[text]</textarea></br>
<input type='submit' class='button' value='Сохранить'>
</form>
</div>
</div>
</div>";
}
}
break;

Сначала в базу данных отправляется запрос на получение статьи. Затем, если всё в порядке, выводится форма редактирования. Если перед этим пользователь отправил изменённый текст, то он отправляется на сервер, таблица обновляется, а потом с помощью ещё одного запроса выводится актуальная информация.

Чтобы создать функцию добавления пользователя (или любого другого элемента на сайте), парсим форму и её обработчик:

case 'add_user':
if(isset($_POST['reglogin']) && isset($_POST['regpassword'])) {
$check = mysqli_query($db,"SELECT * FROM userlist WHERE login='$_POST[reglogin]'");
if(mysqli_num_rows($check) == 0) {
$insert = mysqli_query($db,"INSERT INTO userlist (login,password,admin) VALUE ('$_POST[reglogin]','$_POST[regpassword]','$_POST[regadmin]')");
if($insert) {
$message = "Пользователь успешно добавлен!";
} else {
$message = "Ошибка! ".mysqli_error($db);
}
} else {
$message = "Пользователь с таким логином уже существует!";
}
}
$echo = "<div class='table'>
<div class='table-wrapper'>
<div class='table-title'>Новый пользователь</div>
<div class='table-content'>
<a href='?act=home'><- Вернуться</a><br>
$message
<form method='post' class='user-form'>
<b>Логин:</b> <input type='text' name='reglogin' required><br>
<b>Пароль:</b> <input type='text' name='regpassword' required><br>
<b>Админ:</b> <input type='checkbox' name='regadmin'></br>
<input type='submit' class='button' value='Добавить'>
</form>
</div>
</div>
</div>";
break;

Сначала проверяем, свободен ли указанный логин. Если да, то в базу вносятся соответствующие данные. Также обратите внимание, что существование переменной regadmin не проверяется, потому что форма её не отправляет, если оставить чекбокс пустым.

Чтобы смотреть статистику посещений, комментирования и другой активности, создаём в базе данных таблицу с полями:

  • ID;
  • Date;
  • Views;
  • Comments.

В них записывается общее количество просмотров и комментариев за каждый день, которое выводится на графике. Чтобы это сделать, пропишем HTML-код таблицы:

<div class='table'>
<div class='table-wrapper'>
<div class='table-title'>Статистика</div>
<div class='table-content'>
<img src='stats.php' class='statistics-img'> <br>
Красный: просмотры <br>
Синий: комментарии <br>
 1 шаг — 1 день
</div>
</div>
</div>

В качестве источника картинки указывается PHP-файл с кодом:

<?include("includes/db.php");
$width = 400;
$height = 200;
$canv = imagecreatetruecolor($width, $height);
//Цвета
$white = imagecolorallocate($canv, 255, 255, 255);
$gray = imagecolorallocate($canv, 150, 150, 150);
$black = imagecolorallocate($canv, 0, 0, 0);
$red = imagecolorallocate($canv, 255, 0, 0);
$blue = imagecolorallocate($canv, 0, 0, 255);
imagefill($canv,0,0,$white);
//Рисуется квадрат
imagerectangle($canv, 15, 5, $width-5, $height-15, $gray);
//Горизонтальные линии
for($i = 1; $i <= 5; $i++) {
imageline($canv, 15, $height-$i*35, $width-5, $height-$i*35, $gray);
}
//Вертикальные линии
for($i = 1; $i <= 15; $i++) {
imageline($canv, 15+($i*30), 5, 15+($i*30), $height-15, $gray);
}
//Получение статистики из базы данных
$stats_result = mysqli_query($db,"SELECT * FROM statistics");
if($stats_result) {
$last_y = [0,0];
$x = 15;
//Рисуется график
while($stats = mysqli_fetch_array($stats_result)) {
imageline($canv, $x, ($height-15)-$last_y[0], $x+30, ($height-15)-($stats['views']/10), $red);
imageline($canv, $x, ($height-15)-$last_y[1], $x+30, ($height-15)-($stats['comments']/10), $blue);
$last_y[0] = $stats['views']/10;
$last_y[1] = $stats['comments']/10;
$x += 30;
}
} else {echo mysqli_error($db);}
//Вывод изображения
header("Content-type: image/png");
imagepng($canv);
//Освобождение памяти
imagedestroy($canv);
?>

Сначала создаются изображение, рамка и деления. Затем идёт запрос в базу данных, чтобы получить статистику, которая отрисовывается в виде графика. Изображение сохраняется для разового вывода, а потом удаляется. Когда пользователь обратится к статистике в следующий раз, информация будет визуализирована заново.

То, о чём мы успели поговорить, — лишь часть того, что должно быть в админке.

Например, дополнительно можно реализовать:

  • премодерацию комментариев;
  • удаление записей из базы данных;
  • работу с файлами;
  • продвинутый редактор статей;
  • подробную статистику каждой отдельной страницы и так далее.

Учись бесплатно:
вебинары по программированию, маркетингу и дизайну.

Участвовать

Научитесь: PHP-разработчик с нуля до PRO
Узнать больше

Как написать админку

Панель администратора — важный элемент любого серьезного интернет-проекта. При помощи админки осуществляется управление элементами сайта, публикация материалов для посетителей, редактирование списка пользователей, изменение дизайна, добавление программного кода. Это один из самых сложных элементов любого портала.

Как написать админку

Вам понадобится

  • — текстовый редактор;
  • — желательно, тестовый web-сервер.

Инструкция

Панель администратора создается для управления содержимым готового сайта. А это значит, что все основные элементы должны быть уже реализованы. Некоторые веб-разработчики сначала разрабатывают админку, одновременно программируя пользовательскую часть, но это значительно сложнее технически и не подойдет для начинающего сайтостроителя.

При создании структуры сайта, используйте модули. Подключаемые элементы позволят организовать максимально эффективное управление всеми частями проекта. Использование модулей поможет и в дальнейшем, когда возникнет необходимость расширять функционал портала, дополняя уже написанный код.

Тщательно спланируйте структуру панели. Для наглядности лучше всего создать схему, по которой легче будет сориентироваться и начать писать код. Ваша задача — планирование нужного функционала. Правильно разработанный макет значительно сокращает время, которое уйдет на программирование скрипта.

Обдумайте каждую функцию админки, как ее можно реализовать на языке программирования. Особое внимание уделите системе авторизации, продумайте алгоритмы шифрования паролей администраторов.

Начните написание кода на языке программирования. Начните с реализации наиболее важных и громоздких функций. Например, сначала напишите систему авторизации, затем реализуйте возможность управления информацией на страницах сайта и пунктами меню. Если вы пишете админку для блога или новостного проекта, желательно создать систему комментирования с предварительной модерацией.

Реализуя каждый модуль, не забывайте тестировать полученный результат. То, что может запускаться на локальном сервере, не всегда будет корректно работать на хостинге.

Завершив кодирование, внимательно протестируйте панель, уделите особое внимание ее безопасности. Желательно попросить кого-нибудь из знакомых проверить работоспособность админки за вас.

Видео по теме

Полезный совет

Перед началом работы над админкой скачайте и внимательно изучите любую из популярных бесплатных CMS, обладающих мощной панелью администрирования. Просмотрите код и узнайте пути реализации той или иной функции.

Войти на сайт

или

Забыли пароль?
Еще не зарегистрированы?

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Безусловно, CS 1.6 является легендарной игрой, которая запомнилась большому множеству игроков и в которую люди играли часами. Иногда бывает так, что игрок, неважно новичок он или профессионал, решает создать собственный, независимый сервер, на котором бы играли другие игроки. И очень часто пользователи сталкиваются с проблемой прописи админки для себя, знакомого или друга. Для того чтобы данная проблема больше ни у кого не возникала, мы решили написать информативную статью, в которой подробно расскажем о том, как прописать админку в КС 1.6.

Сразу стоит отметить, что дать кому-то право администратора — это достаточно легкое дело. Однако, для ее реализации необходимо наличие на Вашем сервере такой утилиты как amxmodx. Понять, есть ли у Вас данная программа, можно следующим образом: заходим в папку своего сервера, далее входим в папку cstrike. В ней должна находиться папка addons, собственно, в которой и будет находиться папка amxmodx всеми необходимыми компонентами. Итак, если у Вас все в порядке, то мы продолжим.

Для начала нам необходимо пройти по следующему адресу папок: «cstrike/addons/amxmodx/configs». Таv надо искать файл users.ini. На сегодняшний день админку можно создать, опираясь на несколько параметров. Далее потребуется открыть users.ini при помощи обычного блокнота. И в нем прописываем некоторые параметры.

Админка по нику в КС 1.6

"Ник" "Пароль админки" "abcde" "a"

Админка по STEAM ID в КС 1.6

"STEAM_ID" "" "abcdeu" "ce"

Админка по IP адресу в КС 1.6

"IP" "" "abcdefgu" "de"

Стоит отметить то, что каждая новая админка обязана начинатья непоседственно с новой строчки. Допустим,

"Kote" "KA86" "abcdefgqrstu" "a"
"Cobaka" "LOL868" "abcnopqrstu" "a"

Также Вы можете прописывать слова после знака //. Обычно это делается, для того чтобы не забыть некоторую информацию. Также существует такое понятие, как флаги. Они, как бы, означают некоторые права для некоторого администратора, которыми он может пользоваться. Вы можете как добавлять, так и отнимать те или иные права у администраторов. Делается это достаточно легко. Все флаги администраторов можно непосредственно посмотреть в вышеупомянутом файле users.ini. На данный момент количество поддерживаемых флагов достаточно большое, но мы решили показать Вам некоторую их часть:
a — Если дать игроку это право, то на сервере никто не сможет его убить или забанить/кикнуть.
b — Дополнительный слот или слоты для администратора.
c — Благодаря этому флагу админ может банить большое количество игроков.
d — Администратор может как банить, так и разбанить того или иного игрока.
e — Админ сможет убивать каждого игрока, если этого он захочет.
f — Благодаря данному флагу админ может менять карты.
g — Благодаря ему можно получить разрешение к, так называемым, кварам. Данный флаг является серьезным, поэтому кому попало его давать определенно не стоит.
h — Если дать это флаг администратору, то он сможет менять config сервера.

Надеемся, что мы ответили на Ваш вопрос о том, как сделать себя админом в КС 1.6. Если у Вас остались какие-либо вопросы, то задавайте их в комментарии под этой новостью. Приятной игры.

Время на прочтение
4 мин

Количество просмотров 139K

Здравствуйте, уважаемое Хабрасообщество!

Я занимаюсь разработкой веб-сайтов. Как правило, это решения под индивидуальные потребности заказчиков. Поэтому я не использую готовые CMS, а предпочитаю складывать кирпичики самостоятельно. Конечно и админскую часть приходиться писать самостоятельно, поскольку она должна выполнять те функции, которые нужны заказчику, но и ничего лишнего не должно быть. И если написать несколько методов для редактирования данных это пол беды, то приходилось ещё и верстать приятный и удобный интерфейс.

Долгое время я использовал Twitter Bootstrap, но он не мог удовлетворить все потребности. Приходилось верстать дополнительные кнопочки и писать скрипты. Но вот однажды, я познакомился с замечательным UI-фреймворком KendoUI от Telerik. Что из этого получилось под катом.

О самом фреймворке уже писалась статья на Хабре. Мы будем использовать библиотеку Web-контролов KendoUI Web. Чтобы понимать, что можно создавать с её помощью можно посетить страничку с демо. Для построения контролов можно использовать как хелперы для ASP.NET, JSP или PHP, так и javascript-виджеты. Последние распространяются по лицензии GPL v3 License, поэтому я использовал именно их. Скачать тот или иной пакет можно здесь. На серверной стороне я использую ASP.NET MVC 4 с пакетом Microsoft ASP.NET Web API OData 4.0.0, уставить который можно с помощью команды PM> Install-Package Microsoft.AspNet.WebApi.OData

Для демонстрации создадим простой класс Article, и добавим ему три свойства разного типа

    public class Article
	{
		public int ID { get; set; }
		public string Title { get; set; }
		public bool Hidden { get; set; }
	}

Далее создадим ApiController для работы с данными. В своем примере я использую Entity Framework, поэтому сразу указываю Scaffolding options

После этого я изменяю только действие GetArticles, так показано в примере ниже. Прежде всего теперь оно возвращает ODataResult. А в качестве параметра принимает ODataQueryOptions, это коллекция сериализованных параметров строки запроса. В самом действии мы получаем коллекцию и общее количество элементов в ней. А после применяем к ней входящие параметры. В результате мы возвращаем коллекцию после применение к ней параметров и общее количество, оно необходимо для пагинации.

    public class ArticlesController : ApiController
    {
        private Storage db = new Storage();

        // GET api/Articles
		public ODataResult<Article> GetArticles(ODataQueryOptions options)
		{
			var items = db.Articles;
			var count = items.Count();
            var res = (IEnumerable<Article>)options.ApplyTo(items);

			return new ODataResult<Article>(res, null, count);
		}

        // GET api/Articles/5
        public Article GetArticle(int id)
        {
            Article article = db.Articles.Find(id);
            if (article == null)
            {
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
            }

            return article;
        }

        // PUT api/Articles/5
        public HttpResponseMessage PutArticle(int id, Article article)
        {
            if (ModelState.IsValid && id == article.ID)
            {
                db.Entry(article).State = EntityState.Modified;

                try
                {
                    db.SaveChanges();
                }
                catch (DbUpdateConcurrencyException)
                {
                    return Request.CreateResponse(HttpStatusCode.NotFound);
                }

                return Request.CreateResponse(HttpStatusCode.OK);
            }
            else
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest);
            }
        }

        // POST api/Articles
        public HttpResponseMessage PostArticle(Article article)
        {
            if (ModelState.IsValid)
            {
                db.Articles.Add(article);
                db.SaveChanges();

                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, article);
                response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = article.ID }));
                return response;
            }
            else
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest);
            }
        }

        // DELETE api/Articles/5
        public HttpResponseMessage DeleteArticle(int id)
        {
            Article article = db.Articles.Find(id);
            if (article == null)
            {
                return Request.CreateResponse(HttpStatusCode.NotFound);
            }

            db.Articles.Remove(article);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                return Request.CreateResponse(HttpStatusCode.NotFound);
            }

            return Request.CreateResponse(HttpStatusCode.OK, article);
        }
    }

Вот и все. Самое время переходить к клиентской части. Для начала подключим KendoUI и JQuery на страницу.

    <link href="~/Content/kendo/kendo.common.min.css" rel="stylesheet" />
	<link href="~/Content/kendo/kendo.default.min.css" rel="stylesheet" />
	<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
	<script src="~/Scripts/kendo/kendo.web.min.js"></script>

После этого установим и настроим виджет. Подробнее о настройках виджета можно прочитать здесь.

<div id="grid"></div>
	<script>
		$(document).ready(function () {
			$("#grid").kendoGrid({
				dataSource: {
					pageSize: 3,
					serverSorting: true,
					serverFiltering: true,
					serverPaging: true,
					type: 'odata',
					transport: {
						read: {
							url: "/api/articles",
							dataType: "json",
							type: "GET"
						},
						create: {
							url: "/api/articles",
							dataType: "json",
							type: "POST"
						},
						update: {
							url: function (article) {
								return "/api/articles/" + article.ID
							},
							dataType: "json",
							type: "PUT"
						},
						destroy: {
							url: function (article) {
								return "/api/articles/" + article.ID
							},
							dataType: "json",
							type: "DELETE"
						}
					},
					schema: {
						data: function (data) {
							return data.Items;
						},
						total: function (data) {
							return data.Count;
						},
						model: {
							id: "ID",
							fields: {
								ID: { editable: false },
								Title: { type: "string", editable: true, nullable: false, validation: { required: true } },
								Hidden: { type: "boolean", editable: true }
							}
						}
					}
				},
				height: 250,
				filterable: true,
				sortable: true,
				pageable: true,
				toolbar: ["create"],
				editable: "popup",
				columns: [
					{ field: "ID", filterable: false, width: 50 },
					{ field: "Title", title: "Название", width: 300 },
					{ field: "Hidden", title: "Скрыт", width: 100 },
					{ command: ["edit", "destroy"], title: " ", width: "210px" }
				]
			});
		});
	</script>

Готово! Теперь можно запускать и проверять. Менее чем за 10 минут мы создали полноценный интерфейс для управления данными, с возможностью пагинации, сортировки и фильтрации. Удобный и приятный. Спасибо KendoUI и формату OData, а Вам за внимание.




Р.S. Кстати есть возможность локализации виджетов. Для этого необходимо подключить соответствующий скрипт из папки js/cultures, который поставляется в архиве с фреймворком.

Русский[править]

Морфологические и синтаксические свойства[править]

падеж ед. ч. мн. ч.
Им. адми́нка адми́нки
Р. адми́нки адми́нок
Д. адми́нке адми́нкам
В. адми́нку адми́нки
Тв. адми́нкой
адми́нкою
адми́нками
Пр. адми́нке адми́нках

адми́нка

Существительное, неодушевлённое, женский род, 1-е склонение (тип склонения 3*a по классификации А. А. Зализняка).

Корень: -админ-; суффикс: ; окончание: .

Произношение[править]

  • МФА: [ɐdˈmʲinkə]

Семантические свойства[править]

Значение[править]

  1. комп. жарг. то же, что административная панель; программа или веб-страница для администрирования чего-то ◆ Традиционная задача админки — создание и редактирование документов с контентом. Интернет

Синонимы[править]

Антонимы[править]

Гиперонимы[править]

Гипонимы[править]

Родственные слова[править]

Ближайшее родство

Этимология[править]

Происходит от русск. админ, далее из лат. administrator «распорядитель, руководитель, наместник», от глагола administrare «помогать, прислуживать, исполнять, заведовать», далее из ad «к, на», далее из праиндоевр. *ad- «к, у; около» + ministrare «служить, прислуживать», далее от minus (муж. р. minor) «меньший; менее, меньше», восходит к праиндоевр. *(e)mey- «маленький», от которого происходит русск. меньше.

Фразеологизмы и устойчивые сочетания[править]

Перевод[править]

Список переводов

Анаграммы[править]

  • динамка, Камидан

Библиография[править]

Для улучшения этой статьи желательно:

  • Добавить синонимы в секцию «Семантические свойства»
  • Добавить гиперонимы в секцию «Семантические свойства»
  • Добавить хотя бы один перевод в секцию «Перевод»

Как написать админку?

Панель администратора — важный элемент любого серьезного интернет-проекта. При помощи админки осуществляется управление элементами сайта, публикация материалов для посетителей, редактирование списка пользователей, изменение дизайна, добавление программного кода. Это один из самых сложных элементов любого портала.
Создать сайт самостоятельно с Wix.com

Вам понадобится

  • — текстовый редактор;
  • — желательно, тестовый web-сервер.

Инструкция

  • Панель администратора создается для управления содержимым готового сайта. А это значит, что все основные элементы должны быть уже реализованы. Некоторые веб-разработчики сначала разрабатывают админку, одновременно программируя пользовательскую часть, но это значительно сложнее технически и не подойдет для начинающего сайтостроителя.
  • При создании структуры сайта, используйте модули. Подключаемые элементы позволят организовать максимально эффективное управление всеми частями проекта. Использование модулей поможет и в дальнейшем, когда возникнет необходимость расширять функционал портала, дополняя уже написанный код.
  • Тщательно спланируйте структуру панели. Для наглядности лучше всего создать схему, по которой легче будет сориентироваться и начать писать код. Ваша задача — планирование нужного функционала. Правильно разработанный макет значительно сокращает время, которое уйдет на программирование скрипта.
  • Обдумайте каждую функцию админки, как ее можно реализовать на языке программирования. Особое внимание уделите системе авторизации, продумайте алгоритмы шифрования паролей администраторов.
  • Начните написание кода на языке программирования. Начните с реализации наиболее важных и громоздких функций. Например, сначала напишите систему авторизации, затем реализуйте возможность управления информацией на страницах сайта и пунктами меню. Если вы пишете админку для блога или новостного проекта, желательно создать систему комментирования с предварительной модерацией.
  • Реализуя каждый модуль, не забывайте тестировать полученный результат. То, что может запускаться на локальном сервере, не всегда будет корректно работать на хостинге.
  • Завершив кодирование, внимательно протестируйте панель, уделите особое внимание ее безопасности. Желательно попросить кого-нибудь из знакомых проверить работоспособность админки за вас.
  • Оцените статью!

    Админ-панель сайта

    Что такое админ-панель

    Админ-панель сайта — это часть движка, предназначенная для автоматического добавления контента на сайт.
    На ней есть поле, куда Вы пишете текст статьи. Админ панель содержит скрипты, которые создают новые страницы
    сайта либо добавляют статью в БД, в зависимости от структуры сайта. В меню добавляется ссылка на статью.
    Обычно админ-панель даёт возможность добавлять не только текст, но и другой контент. Создавая движок сайта,
    Вы сами решаете, делать админ-панель или добавлять статьи самостоятельно.

    Админ-панель располагается на отдельной странице, которая имеет примерно такой адрес:

    http://mysite.ru/adminpanel.php

    На сайте не делают ссылки на эту страницу, Вы просто должны знать её URL. Вход в админ-панель производится
    через форму авторизации. От обычной авторизации она отличается тем, что
    вы входите не как обычный пользователь, а как администратор, и информация об этом должна быть записана в
    сессию. Доступ к админ-панели должен быть только у администратора.

    Авторизация администратора

    Авторизацию администратора можно сделать двумя способами. Если администраторов несколько, то в таблицу с
    пользователями можно добавить поле, в котором указывать, что пользователь является администратором. А можно
    в скрипте авторизации просто передавать права администратора конкретному пользователю. Мы используем второй
    вариант. Назовём страницу авторизации avtadministrator.html. Вот её код:

    avtadministrator.html:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15

    <!DOCTYPE html>
    <html>
    <head>
    <title>Страница</title>
    <meta charset="utf-8">
    </head>
    <body>
    <p>Авторизация:</p>
    <form action="adminavt.php" method="post">
      <input name="login" placeholder="Логин">
      <input type="password" name="password" placeholder="Пароль">
      <input type="submit" value="Войти">
    </form>
    </body>
    </html>

    Форма отправляет данные в файл adminavt.php. Это скрипт авторизации. Его код такой:

    adminavt.php:

    +

    1
    2

    <?php
    header('Content-type: text/html; charset=utf-8');

    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

    $login = $_POST['login'];
    $pas = $_POST['password'];
    if ($login == 'Viktor' && $pas == 1122)
      {
      session_start();
      $_SESSION['admin'] = true;
      $script = 'adminpanel.php';
      }
    else
    $script = 'avtadministrator.html';
    header("Location: $script");

    Комментарии:

    3, 4 — получаем логин и пароль из формы

    5 — если они правильные

    8 — записываем в сессию, что это администратор

    9 — страница, на которую нужно перейти — adminpanel.php

    11 — если логин или пароль неправильные

    12 — то нужно вернуться на страницу авторизации

    13 — переход на нужную страницу

    Создание админ-панели

    Админ панель выглядит примерно так.

    adminpanel.php:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24

    <?php
    header('Content-type: text/html; charset=utf-8');
    session_start();
    if (! $_SESSION['admin'])
    header('Location: adminavt.php');
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <title>Страница</title>
    <meta charset="utf-8">
    </head>
    <body>
    <form action="newart.php" method="post">
    <p>Название статьи:</p>
    <input name="nameart">
    <p>Текст статьи:</p>
    <textarea name="text"></textarea>
    <p>Текст ссылки в меню:</p>
    <input name="menu">
    <input type="submit" value="Добавить статью">
    </form>
    </body>
    </html>

    В начале идёт PHP скрипт, в котором проверяется, есть ли в сессии переменная
    admin. Если нет, значит в админ-панель входит пользователь, не являющийся
    администратором. Тогда происходит переход на страницу авторизации. Админ-панель представляет
    собой форму, в
    которую администратор вводит новую статью. Название статьи может быть длинным
    и ссылка на неё в меню сайта
    может отличаться от названия. Поэтому в форме есть поле для текста ссылки.

    Перед добавлением статьи в базу данных нужно поместить текст статьи в теги
    <p>. Сделаем это на стороне
    клиента, чтобы не расходовать ресурсы сервера. Добавим на страницу скрипт, в котором перед текстом
    статьи поставим тег <p>, а после текста </p>.
    Чтобы сохранились все абзацы, нужно вместо перехода строки
    закрыть тег <p> и
    открыть новый. Вот код скрипта:

    JavaScript:

    24
    25
    26
    27
    28
    29
    30

    var form = document.querySelector('form');
    form.onsubmit = function ()
      {
      var text = form.text;
      text.value = '<p>' + text.value + '</p>';
      text.value = text.value.replace(/n/g, '</p><p>');
      };

    Комментарии:

    24 — находим форму

    25 — обработчик события submit

    27 — находим поле для текста статьи

    28 — ставим <p> перед текстом и </p>
    после текста

    29 — заменяем перевод строки на </p><p>.

    При желании можно добавить в обработчик проверку заполнения полей.

    Форма запускает скрипт newart.php, который добавляет статью в базу данных. Вот код скрипта:

    newart.php:

    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    $name = $_POST['nameart'];
    $text = $_POST['text'];
    if ($_POST['menu'])
    $menu = $_POST['menu'];
    else $menu = $name;
    $db = mysqli_connect('localhost', 'root', '', 'mybase');
    $query = "INSERT INTO art (name, text, menu) VALUES ('$name', '$text', '$menu')";
    $result = mysqli_query($db, $query);
    mysqli_close($db);
    if ($result)
    echo 'Статья успешно добавлена';

    В строке 5 производится проверка — указан ли текст для пункта меню. Если не указан, то используется название
    статьи. Это позволяет не писать текст для пункта меню, если он совпадает с названием статьи.

    Мы рассмотрели создание самой простой админ-панели. Чтобы ею было удобно пользоваться в неё желательно
    добавить определённые возможности:

    • Сделать добавление в статью видео, картинок, ссылок и другого контента
    • Добавить указание номера статьи. Это позволит легко менять порядок, в котором статьи перечислены в меню
    • Добавить мета-данные: автора статьи, время добавления и другую информацию
    • Сделать возможность редактирования и удаления статей
    • После добавления статьи показать ссылки для возвращения в админ-панель и перехода на сайт

    На основе данного примера Вы сможете сделать любую админ-панель для Вашего сайта.

    Понравилась статья? Поделить с друзьями:
  • Как пишется администрация или администрация
  • Как пишется администрация губернатора
  • Как пишется администрация городского округа
  • Как пишется администратор или администратор
  • Как пишется административный на 2 дня