Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11697
Последний выпуск: 19.06.2015

PHP и MySQL - пишем свою CMS

Часть 1. Запись в таблицы базы данных MySQL

Автор: valoo
http://www.100litsa.org
15 сентября 2008 года

По сути своей CMS - это инструмент для записи в базу данных всей информации о сайте. Все это должно содержаться в таблицах, и у администратора сайта должен быть удобный способ для ввода информации в таблицы, ее изменения или удаления.

Если вы не писали программ на языке PHP с поддержкой MySQL, то лучше всего начать работу не на удаленном хосте, а на локальном. Скачайте с сайта http://www.denwer.ru/ дистрибутив "Денвер", установите его у себя на компьютере, и можете приступать к делу!

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

Запустим локальный хост и создадим с помощью phpMyAdmin базу данных с именем simple_cms, а в ней - таблицу pages с двумя полями title и content. Для этого войдите в раздел SQL на панели phpMyAdmin и выполните такой запрос:

CREATE TABLE `pages` (
   `title` varchar(100) NOT NULL default '',
   `content` text NOT NULL
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

и phpMyAdmin построит вам эту таблицу.

Маленькое отступление:

если вы знакомы с базами данных хотя бы на уровне Microsoft Access, то вы помните, что каждое поле таблицы имеет ряд свойств. В данном случае мы присвоили полю content свойство text. Казалось бы, логично, ведь оно и предназначено для хранения текстов. Но следует помнить, что размер этого поля ограничен, поэтому, если вы хотите сохранить в нем текст "Войны и мира", то лучше определить его как longtext.

Таблица базы данных - pages

titlecontent

Чтобы управлять такой таблицей из админки, нам понадобится форма, состоящая из простого текстового поля (input type="text") для ввода заголовка, текстовой области (textarea) для ввода содержимого и кнопка "Отправить" (input type="submit").

Примерно так может выглядеть в нашей админке панель управления содержимым страниц.

Введите заголовок страницыВведите текст

Поместим эту форму в файл page.php

page.php

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Моя первая CMS</title>
</head>
<? include ('config.php'); ?>
<body>
<form action="admin.php" method="post">
<table border="1" align="center">
  <tr>
    <td>Введите заголовок страницы</td>
    <td>Введите текст</td>
  </tr>
  <tr>
    <td valign="top"><input name="my_title" type="text"
        size="50" /></td>
    <td valign="top"><textarea name="my_text" cols="60"
        rows="30" > </textarea></td>
  </tr>
</table>
<div align="center">
<input name="send" type="submit" value="Отправить" />
</div>
</form>
</body>
</html>

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

config.php

<?
$dblocation = "localhost";
$dbuser = "root";
$dbpasswd = "";
$dbname="simple_cms";

//Подключение к базе данных  
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx) // Если дескриптор равен 0 соединение не установлено
 {
 echo("<p>В настоящий момент сервер базы данных не
         доступен, поэтому корректное отображение страницы
         невозможно.</p>");
 exit();
 }

if (!@mysql_select_db($dbname, $dbcnx))
 {
 echo( "<p>В настоящий момент база данных не доступна,
          поэтому корректное отображение страницы невозможно.</p>" );
 exit();
 }
?>

Теперь, когда у нас появилось подключение к базе данных и скрипт для ввода в нее нужной информации, остается организовать отправку туда содержимого текстового поля с именем my_title и текстовой области my_text. С этой целью мы определили в форме метод POST для передачи данных файлу admin.php - <form action="page.php" method="post">.

Когда администратор внесет в поля формы информацию и нажмет кнопку "Отправить", этот метод присвоит переменной $_POST['my_title'] значение текстового поля my_title, а переменной $_POST['my_text'] - значение текстовой области my_text.

Чтобы удостовериться в этом, добавим небольшой код в начало файла page.php:

   
<? include ('config.php');

<body>

<? print  $_POST['my_title'].'<br />'.$_POST['my_text'];?>

Запустим файл page.php. Если в программе нет ошибок, то вы увидите ваш заголовок и текст в окне броузера.

Прекрасно! Осталось только организовать запись этой информации в нашу базу данных. Для этого нам придется обратиться к языку запросов SQL, а точнее - к MySQL.

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

$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);

уже подключена к работе, нам следует использовать оператор INSERT языка MySQL. Чтобы не загромождать код страницы, вставьте этот фрагмент в файл page.php вместо кода вывода на печать:

if ($send)
   $sql = mysql_query("INSERT  into pages (title, content)
          values ('".$_POST['my_title']."', '".$_POST['my_text']."');");

То есть, если от кнопки "Отправить" методом POST был передан $send (см. name этой кнопки!), то должен выполниться данный запрос (функция mysql_query), и в таблицу базы данных будет записано содержимое полей формы.

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

Параметром функции mysql_query(); является сам SQL-запрос, который можно представить в виде:

INSERT  into pages (title, content)
values ('значение_переменной_1', 'значение_переменной_2');

Так оно, вроде, понятнее ...

Теперь откройте phpMyAdmin и убедитесь, что записи внесены в поля таблицы. Но это всего лишь полдела. Нам нужно научиться "вытаскивать" из таблиц необходимые данные, чтобы работать с ними в админке, а главное - показывать их на сайте.

В окончательном виде файл page.php должен выглядеть так:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Моя первая CMS</title>
</head>
<? include ('config.php'); 
if (@$send)
   $sql = mysql_query("INSERT  into pages (title, content)
          values ('".$_POST['my_title']."', '".$_POST['my_text']."');");
?>
<body>
<form action="page.php" method="post">
<table border="1" align="center">
  <tr>
    <td align="center">Введите заголовок страницы</td>
    <td align="center">Введите текст</td>
  </tr>
  <tr>
    <td valign="top"><input name="my_title" type="text"
        size="50" /></td>
    <td valign="top"><textarea name="my_text" cols="80"
        rows="30" > </textarea></td>
  </tr>
  <tr>
    <td  colspan="2" align="center"><input name="send"
        type="submit" value="Отправить" /></td>
  </tr>  
</table>
</form>
</body>
</html>

Об этом - в следующей части.

Часть 2. Чтение из таблиц базы данных MySQL

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

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

$sql = mysql_query("SELECT*FROM pages");
      while($record = mysql_fetch_array($sql))
   { 
     $title = $record['title']; 

   } 

Если в таблице находятся уже несколько записей, то в "чистом" виде конструкция выдаст нам только последнюю из них, ведь значение переменной $title все время обновляются в цикле while. Но мы применим маленькую хитрость. В том же цикле будем выводить их на экран все записи, одну за другой.

Для этого нарисуем таблицу, и часть ее поместим внутрь цикла:

<table border="1" align="center">
<? 
$sql = mysql_query("SELECT*FROM pages");
      while($record = mysql_fetch_array($sql))
   { 
  print '<tr><td>'.$record['title'].'</td>
       <td>Редактировать</td></tr>';
   }
?>
</table>

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

Рядом с ячейкой, куда мы поместили заголовки страниц находится еще одная ячейка. Я просто написал в ней слово Редактировать, а можно было какую-нибудь красивую пиктограммку поставить - неважно. Важно другое: эта запись (или картинка) должна привести администратора в раздел админки, где находится редактор текстов.

Здесь я хочу сделать маленькое отступление. В современных CMS используются WYSIWYG-редакторы (от сокращения What You See Is What You Get). В нашей SMS "Столица" их целых три - на выбор администратора, какой удобнее. Лично мне более по душе FCKEditor, хотя и у него есть свои глюки. Когда вы будете писать не учебную, а действующую админку, вам нужно будет скачать бесплатно распространяемые скрипты редактора и подключить их к админке. А пока что воспользуемся самым примитивным "редактором" - текстовой областью формы.

Для этого создадим файл editor.php со следующим кодом.

editor.php

<? include ('config.php'); ?>
<html>
<body>
<table border="1" align="center">
<? 
$sql = mysql_query("SELECT*FROM pages");
      while($record = mysql_fetch_array($sql))
   { 
  print '<tr><td>'.$record['title'].'</td><td><a
         href="editor.php?page_title='.$record['title'].'"
         >Редактировать</a></td></tr>';
   }
?>
</table>
<?
$sql = mysql_query("select * FROM pages where title='".$page_title."';");
  while($record = mysql_fetch_array($sql))
  {
   $content=$record['content'];
  }
?>  
<form action="editor.php" method="post">
<table width="100%"  align="center">
  <tr>
    <td align="center"><textarea name="text_edit" cols="80" rows="15"><? print $content; ?></textarea></td>
  </tr>
  <tr>
    <td align="center"><input name="save" type="submit" value="Сохранить"></td>
  </tr>
</table>
</form>
</body>
</html>

Разберем основные конструкции этого скрипта.

В каждой из рядов верхней таблицы появляется заголовок страницы, прочитанный из базы данных. Справа от него, в соседней клетке - слово Редактировать. Оно залинковано на ту же страницу editor.php и передает ей значение переменной $page_title, которое равно заголовку страницы в этом ряду (я выделил этот фрагмент кода красным цветом):

print '<tr><td>'.$record['title'].'</td><td><a href="editor.php?page_title='.$record['title'].
      '">Редактировать</a></td></tr>';

Когда пользователь нажимает на такой линк, он возвращается на ту же самую страницу, но уже с определенным значением переменной $page_title.

Следующий фрагмент кода ищет в базе данных таблицу pages, а в ней - значение поля content для которого поле title совпадает со значением переменной $page_title.

$sql = mysql_query("select * FROM pages where title='".$page_title."';");
  while($record = mysql_fetch_array($sql))
  {
   $content=$record['content'];
  }

Найдя такое поле, он передает его содержимое переменной $content, которая и распечатывает его в текстовой области.

<? print $content; ?> 

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

Часть 3. Редактирование записей из таблиц базы данных MySQL

Добавим в начало файла editor.php следующие фрагменты кода (выделено красным):

<? 
session_start();
include ('config.php'); 
?>

А в самом конце этого файла допишем:

<? 
  $_SESSION['id']= $page_title;  
?>

Этот прием называется сессии. О том, как работают сессии можно прочесть в многочисленных учебниках по PHP, здесь же я хочу отметить, что сессия нам понадобится для того, чтобы в переменной запомнить страницу, которую мы редактируем. Хотя мы и нажали на кнопку Редактировать, и получили значение переменной $page_title (заголовок редактируемой страницы), после того, как мы внесем изменения и нажмем на кнопку Сохранить, страница editor.php перезагрузится, и значение $page_title будет потеряно. Вот поэтому мы и сохраним его в $_SESSION['id'].

А когда форма отправит методом POST на перезагруженную страницу editor.php значение переменной $text_edit (такое имя мы дали текстовой области), то нам удасться запустить следующий код:

if($save)
   $sql =mysql_query ("UPDATE pages SET content = '".$text_edit."' WHERE title='".$_SESSION['id']."';");

где save - это имя кнопки Сохранить.

Надеюсь, вы поняли, зачем нам понадобилась переменная $_SESSION['id'].

Полный скрипт файла editor.php будет выглядеть так:

<? 
session_start();
include ('config.php'); 
?>
<html>
<body>
<table border="1" align="center">
<? 
$sql = mysql_query("SELECT*FROM pages");
      while($record = mysql_fetch_array($sql))
   { 
  print '<tr><td>'.$record['title'].'</td><td><a href="editor.php?page_title='.$record['title'].
    '">Редактировать</a></td></tr>';
   }
?>
</table>
<?

$sql = mysql_query("select * FROM pages where title='".$page_title."';");
  while($record = mysql_fetch_array($sql))
  {
   $content=$record['content'];
  }
if($save)
   $sql =mysql_query ("UPDATE pages SET content = '".$text_edit."' WHERE title='".$_SESSION['id']."';"); 
?>  
<form action="editor.php" method="post">
<table width="100%"  align="center">
  <tr>
    <td align="center"><textarea name="text_edit" cols="80" rows="15"><? print $content; ?></textarea></td>
  </tr>
  <tr>
    <td align="center"><input name="save" type="submit" value="Сохранить"></td>
  </tr>
</table>
</form>
</body>
</html>
<? 
  $_SESSION['id']= $page_title;  
?>

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

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

Часть 4. Удаление записей из таблиц базы данных MySQL

Добавим еще одну ячейку к таблице файла editor.php :

<table border="1" align="center">
<? 
$sql = mysql_query("SELECT*FROM pages");
      while($record = mysql_fetch_array($sql))
   { 
  print '<tr><td>'.$record['title'].'</td>
  <td><a href="editor.php?page_title='.$record['title'].
  '">Редактировать</a></td>
  <td><a href="editor.php?page_title='.$record['title'].'&delete=y">Удалить</a></td>
  </tr>';
   }
?>
</table>

Совершенно неважно, какое значение мы передадим переменной $delete, можете написать &delete=1 или &delete=abcd, а важно то, что теперь можно написать условие, с помощью которого мы удалим выбранную запись:

if($delete)
   $sql =mysql_query ("DELETE FROM pages WHERE title='".$_SESSION['id']."';");

В окончательном виде наш файл editor.php выглядит так:

<? 
session_start();
include ('config.php'); 
?>
<html>
<body>
<table border="1" align="center">
<? 
$sql = mysql_query("SELECT*FROM pages");
      while($record = mysql_fetch_array($sql))
   { 
  print '<tr><td>'.$record['title'].'</td>
  <td><a href="editor.php?page_title='.$record['title'].
  '">Редактировать</a></td>
  <td><a href="editor.php?page_title='.$record['title'].'&delete=y">Удалить</a></td>
  </tr>';
   }
?>
</table>
<?

$sql = mysql_query("select * FROM pages where title='".$page_title."';");
  while($record = mysql_fetch_array($sql))
  {
   $content=$record['content'];
  }
if($save)
   $sql =mysql_query ("UPDATE pages SET content = '".$text_edit."' WHERE title='".$_SESSION['id']."';");
if($delete)
   $sql =mysql_query ("DELETE FROM pages WHERE title='".$_SESSION['id']."';");    
?>  
<form action="editor.php" method="post">
<table width="100%"  align="center">
  <tr>
    <td align="center"><textarea name="text_edit" cols="80" rows="15"><? print $content; ?></textarea></td>
  </tr>
  <tr>
    <td align="center"><input name="save" type="submit" value="Сохранить"></td>
  </tr>
</table>
</form>
</body>
</html>
<? 
  $_SESSION['id']= $page_title;  
?>

Вот, пожалуй, и все, что я хотел рассказать о принципах работы админки. Конечно же, в настоящей CMS все отдельные модули (а у нас их пока три: page.php, editor.php и служебный файл config.php) работают под управлением главного файла index.php, который единоразово подключает все модули к базе данных и по желанию пользователя может присоединять к себе модуль создания страниц, модуль редактирования, а также массу других модулей (модуль меню сайта, модуль управления гостевой книгой, баннерами и т.п.). Важно только понимать, что любые модули, любые действия в админке основаны на четырех главных операторах языка SQL:

  • INSERT - вставить запись в базу данных;
  • SELECT - выбрать записи из базы данных;
  • UPDATE - изменить запись;
  • DELETE - удалить запись.

Так что ничего сверхсложного нет в том, чтобы написать свою собственную админку. Любые CMS, даже такие гиганты как Joomla, работают на одном и том же принципе.

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

Успехов вам!

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
94K
15 августа 2014 года
almabr
0 / / 15.08.2014
+1 / -0
Мне нравитсяМне не нравится
15 августа 2014, 08:53:57
Спасибо!
Самое то что надо!
2.
93K
26 февраля 2014 года
Велеслав Родов
0 / / 26.02.2014
+1 / -1
Мне нравитсяМне не нравится
26 февраля 2014, 22:48:42
хммм..... ну не джумла конечно. но то что как раз и искал. все просто супер
3.
91K
09 июля 2013 года
Alexander1990
0 / / 09.07.2013
+3 / -0
Мне нравитсяМне не нравится
9 июля 2013, 20:34:32
Все понятно и просто написано как раз нужны были ети знания.
4.
90K
08 мая 2013 года
Ксения Догодаева
0 / / 08.05.2013
+1 / -1
Мне нравитсяМне не нравится
8 мая 2013, 10:32:36
С этой целью мы определили в форме метод POST для передачи данных файлу admin.php - <form action="page.php" method="post">.



К файлу admin.php .... а какое содержимое у этого файла?
Я видимо невнимательно прочитала... но понять, что в обработчике не смогла...
5.
77K
14 ноября 2011 года
jazzlevit
0 / / 14.11.2011
+4 / -2
Мне нравитсяМне не нравится
14 ноября 2011, 17:56:50
А где видео? я так и не понял.
6.
4
01 октября 2002 года
mike
3.7K / / 01.10.2002
+3 / -4
Мне нравитсяМне не нравится
4 июля 2011, 13:30:15

Цитата:
Ага,а теперь попробуйте написать что-нибудь в редактор на РУССКОМ языке. Все сотрется,как же. Автор,советую сначала тестить свою КМС-ку,а вот потом уже выкладывать....
добавьте в config.php

mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");



Эти строчки нужны только если mysql сервер не настроен правильно.

7.
73K
03 июля 2011 года
Dianos
0 / / 03.07.2011
+11 / -3
Мне нравитсяМне не нравится
3 июля 2011, 23:47:39
Ага,а теперь попробуйте написать что-нибудь в редактор на РУССКОМ языке. Все сотрется,как же. Автор,советую сначала тестить свою КМС-ку,а вот потом уже выкладывать....
добавьте в config.php

mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
8.
58K
29 марта 2010 года
vov
1 / / 29.03.2010
+3 / -1
Мне нравитсяМне не нравится
21 марта 2011, 19:19:33
Ещё был вопрос как привинтить админку к сайту. Скоро выложу скриптик и видео ищите тамже.
9.
58K
29 марта 2010 года
vov
1 / / 29.03.2010
+1 / -2
Мне нравитсяМне не нравится
21 марта 2011, 12:34:53
А ребята ещё забыл добавить . Те кто долго пытался запустить этот скрипт рекомендую очистить папку tmp в которой храняться сессии .Она находится на том диске куда вы воткнули денвер удалите все файлы название которых sess их там у вас должно быть много если долго мучеетесь. В файлах записаны старые сессии. Удалите их и всё будет хорошо.
Надеюсь помог .
С уважением Владимир.
Видео на youtube по схожим и по этой теме.
Ищите TheDizain
сайт vvv-dizain
Всем удачи
10.
58K
29 марта 2010 года
vov
1 / / 29.03.2010
+3 / -0
Мне нравитсяМне не нравится
21 марта 2011, 10:16:26
Надеюсь все посмотрели видео кто не понял.
Для того чтобы данный код работал в денвере надо именить кое что в файле php.ini
заходим на диске где установлен денвер в папку
Код:
usr/local/php5/php.ini

Ищем пункт DATA HANDLIING
и меняем register_globals = off на register_globals = On.
Сохраняем и получаем заветные надписи в поле редактирования.
Видео выложу на youtobe
Ищите пользователя TheDizain
или на сайте vvv-dizain точка ру
Всем Удачи
11.
58K
29 марта 2010 года
vov
1 / / 29.03.2010
+3 / -1
Мне нравитсяМне не нравится
17 марта 2011, 16:47:25
Набрать на youtube TheDizain и там всё найдёте видео выложил
Видео по работе админки.
12.
58K
29 марта 2010 года
vov
1 / / 29.03.2010
Мне нравитсяМне не нравится
17 марта 2011, 13:30:55
Да в денвере всё работать будет. Три в одном добавление выбор редактирование.Но скрипт не выкладывается.
13.
69K
03 марта 2011 года
Aola321
0 / / 03.03.2011
+1 / -0
Мне нравитсяМне не нравится
3 марта 2011, 11:46:29
Можно ли настроить Денвер, чтобы заработал editor.php?
14.
58K
29 марта 2010 года
vov
1 / / 29.03.2010
+0 / -1
Мне нравитсяМне не нравится
20 февраля 2011, 14:52:59
Ребята кто до сих пор не может разобраться с этим простым примером хочу сказать одно, он работает на 100%
автор молодец.
если пробл. с сессией сохраните файлы через notpad без bom
И кто тестирует в денвере и слабо с ним знаком у вас работать не будет editor.php
ЗАЛЕЙТЕ ФАЙЛЫ НА САЙТ В ОТДЕЛЬНУЮ ПАПКУ И БУДЕТ ВАМ СЧАСТЬЕ.
ПРИМЕР НА САЙТЕ www.vvv-dizain.ru был с нюансами по скрипту.
удачи
15.
62K
10 июля 2010 года
alexeyfenix
0 / / 10.07.2010
+6 / -1
Мне нравитсяМне не нравится
10 июля 2010, 12:21:38
Я не знаю какая статья, но у меня НЕ РАБОТАЕТ НИ ***.Создал даже БД pages с полями title и content. Результата 0. Можете говорить, что у меня кривые руки, но я не знаю в чем дело уже.
П.С. Админ, перестань курить и сделай нормальную картинку подтверждения букв при регистрации,а не психоделическо-абстракционную. Еще бы загадку загадал на древнеславянком...
16.
59K
14 марта 2010 года
SHURIK2010
0 / / 14.03.2010
+1 / -1
Мне нравитсяМне не нравится
14 марта 2010, 11:29:52
ВЕЗДЕ ОДНО И ТО ЖЕ ТУТ НОВОЕ http://www.vin-web.ru/states/?php&&phpsite ПОПОЗЖЕ ЧУТЬ ПЕРЕДЕЛАЮ ЛУЧШЕ БУДЕТ И ИСХДНИК ЕСТЬ!!!!
17.
55K
28 ноября 2009 года
danilich
0 / / 28.11.2009
+1 / -0
Мне нравитсяМне не нравится
18 декабря 2009, 21:11:44
а напишите более подробно как подключить к админке сайт. а то я ваще не могу никак понять как это сделать. уже пол нета облазил))
18.
56K
12 декабря 2009 года
Gus
0 / / 12.12.2009
+2 / -0
Мне нравитсяМне не нравится
12 декабря 2009, 19:40:20
Друзья,
(@$send) - всегда пустой, подскажите где копать.
Пока использую такую проверку:
if ($_POST['send']) ... - так работает

19.
55K
28 ноября 2009 года
danilich
0 / / 28.11.2009
+1 / -1
Мне нравитсяМне не нравится
28 ноября 2009, 13:21:54
спс мне очень помогла эта стать))))
много искал как создать свой движок и ток тут нашол как его зделать.
respekt+5 автору)
20.
43K
13 сентября 2008 года
valoo
0 / / 13.09.2008
+3 / -1
Мне нравитсяМне не нравится
2 июня 2009, 18:00:45
Спасибо всем как за благодарные отзывы, так и за критику. Хочу лишь подчеркнуть еще раз, что цель статьи не в том, чтобы выложить в ней 100%-ный код работающей CMSки, а показать новичкам, с чего все начинается.
Желающие подробнее ознакомиться с ее работой могут зайти на мой сайт, работающий с моей же админкой (адрес в начале статьи) и оттуда написать мне на мейл.
21.
213
31 июля 2007 года
SkyMаn
1.7K / / 31.07.2007
+3 / -0
Мне нравитсяМне не нравится
27 марта 2009, 21:00:24
Зачод! Молодец. А тем, кто выпендривается - пусть идут гулять отсюда.
22.
46K
07 января 2009 года
Harry62
0 / / 07.01.2009
+1 / -0
Мне нравитсяМне не нравится
7 января 2009, 18:23:54
Статья нормальная.
Главная мысль в начале - "По сути своей CMS - это инструмент для записи в базу данных всей информации о сайте."
Сейчас пишу свою CMC, именно с разделением административной панели и панели вывода информации. Как правило все CMS-ки это одно хитропереплетенное целое - это не правильно.
А кому нравится дрючить Joomly, полный вперед. Классная CMS не спорю. Тока зачем пихать ее на коммерческий проект, вы что клиенту будете жомлу ставить?(там одна база из 45 таблиц с базовыми возможностями, по большей части, для коммерческих проектов, ненужными).
23.
45K
30 ноября 2008 года
Sitex
0 / / 30.11.2008
+3 / -0
Мне нравитсяМне не нравится
30 ноября 2008, 13:06:01
Автор не пытался донести обширные знания проектирования как баз данных, так и ядра самой системы ....суть темы просто показать как что с чем работает, для тех кто начинает изучать вполне и этого достаточно.....я в сомнениях что tirasbiz, e-Freeze сразу стали изучать ядро, а тем более проектировать---- это бред и выпендреж!
меня убило другое--- tirasbiz, тебе решать что ль как и кому работать с SQl ??? (Если выбился из чайников, молчал бы или к статье путного добавил бы что нить).
24.
43K
23 сентября 2008 года
VadimMZ
0 / / 23.09.2008
+0 / -1
Мне нравитсяМне не нравится
21 ноября 2008, 14:08:09
На мой взгляд глупо было называть статью подобным образом,
так к CMS по приведённому примеру (Если её ваше можно назвать CMS) получиться весьма слабая.
Эта статья скорее предназначена для изучения взаимодействия PHP и MySQL
Но тем не менее статья довольно таки неплохая
За статью огромное спасибо
Для новичков самый раз
25.
45K
21 ноября 2008 года
AlexSte
0 / / 21.11.2008
+3 / -0
Мне нравитсяМне не нравится
21 ноября 2008, 14:06:37
Автор просто хотел ознакомить с методом редактирования базы.
но должен заметить возникли не большие глюки.

например..
выдавало ошибки о переменных $save и $delete :( ...
решается проблема просто - ставится знак @ перед пременной.. if(@$save).
также глюк ... нельзя удалить запись.., не выбрав её для редактирования :(

Решил проблему,
добавил кнопку УДАЛИТЬ, ... и всё заработало..
<input name="delete" type="submit" value="Удалить">

и добавил обновления странички... если была команда DELETE
if(@$delete) {
$sql =mysql_query ("DELETE FROM info WHERE id='".$_SESSION['id']."';");
echo "<META HTTP-EQUIV=Refresh content=0;URL=editor.php >";
}

Автор, спасибо за познавательную статью.... для начинающих то что надо..
Санкс!
26.
1.8K
17 июня 2006 года
[*]Frosty
278 / / 17.06.2006
+1 / -0
Мне нравитсяМне не нравится
21 ноября 2008, 08:33:27
Цель стотьи иная - образовательная)
Вы глять пред-предыдущую статью - эта статья ее продолжение
Автар не хотел писать CMS - он на самом простом примере хотел показать, что такое CM2
2 Jackkum Эта статья не для такого заума как ты)
27.
41K
31 июля 2008 года
Jackkum
1 / / 31.07.2008
+4 / -1
Мне нравитсяМне не нравится
30 октября 2008, 22:59:52
Я понимаю автора, иногда хочется создать что нибудь мощное. Но сейчас я думаю это делать уже поздно, не надо изобретать колесо когда его уже давно изобрели.
Лучше изучить структуру компонентов и модулей уже готовых CMS, например joomla, и писать новые компоненты и модули для них.
Joomla очень мощный движок, написание своих модулей для нее очень хорошая практика. Гибкость, многоязычность, использование шаблонов и др., всё это есть в jooml-е.
Автору этой статьи я бы посоветовал написать статьи о структуре готового движка, напримере той же jooml-ы, напиши о классах работы с БД, настройки модулей с помощью XML файлов. В общем, думаю на эту тему можно написать целую книгу.
28.
43K
01 октября 2008 года
Doubrovski
0 / / 01.10.2008
+3 / -1
Мне нравитсяМне не нравится
1 октября 2008, 15:32:11
Хорошая статья, имхо.
Для человека, знакомого с PlSQL, FireBird достаточно просто описаны процедуры перехода на язык PHP & MySQL. Жду продолжения ... изобразить нечто подобное DbGrid для работы с полями записи.
29.
36K
31 января 2008 года
Londeren
0 / / 31.01.2008
+2 / -3
Мне нравитсяМне не нравится
23 сентября 2008, 17:14:10
статья ни о чем
30.
11K
08 августа 2005 года
e-Freeze
12 / / 08.08.2005
+1 / -6
Мне нравитсяМне не нравится
23 сентября 2008, 16:26:53
Я так же согласен с tirasbiz: для написания собственного ЦМС необходимы довольно обширные знания проектирования как баз данных, так и ядра самой системы...
31.
37K
07 марта 2008 года
dobs
0 / / 07.03.2008
+2 / -5
Мне нравитсяМне не нравится
19 сентября 2008, 15:59:24
Полностю согласен с tirasbiz данный скрипт не можно назвать полноценной CMS...
32.
43K
19 сентября 2008 года
tirasbiz
0 / / 19.09.2008
+12 / -14
Мне нравитсяМне не нравится
19 сентября 2008, 00:17:15
Достаточно серьезная тема и совсем несерьезный подход. ИМХО нечего плодить по инету дырявые CMS. Лучше пользовать готовые.
Должна быть серьезная теоритическая подготовка к проектированию реальных CMS. У Автора ее, судя по всему, нет.
Вообще, минимальные требования к CMS:
- модульность и масштабируемость
- шаблонизация
- система обновлений (самообновляемость)
- юзери, роли

Чайникам, которые не знают как работать с SQL нефиг вообще делать в области строительства CMS.

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

Вообще убило.

Низачот.
32.1.
84K
04 августа 2012 года
Соломэн
0 / / 04.08.2012
+9 / -0
Мне нравитсяМне не нравится
4 августа 2012, 07:18:21
Да что вы такое говорите)) CMS, заточенные под сайты определенных типов, могут быть ГОРАЗДО проще, и без тех всеобъемлющих требований, которые впору к "облакам" выдвигать... Если вы пишите CMS на продажу это одно, а для себя - совсем другое, там только на темы безопасности и скорости стоит париться. Автору публикации спасибо!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог