
Главная
Рубрики:
Счетчики:
Чем больше комментариев,
тем чаще обновления :-)
27 статей на сайте
Автор сайта: KrutoPAPA
|
Релиз версии 0.2Опубликовано 2011-12-08 05:07:14 автором KrutoPAPA
Скачать движок cms5 (Версия 0.2.14)
Особенность релиза - Административный интерфейс
+ Добавлено "Быстрое создание страницы", "Удаление страницы", "Редактирование страницы"
Рубрики: : Релизы : | Читать комментарии
Администрирование "Структуры" - Часть 4 - РедактированиеОпубликовано 2011-12-08 04:46:13 автором KrutoPAPA
Добрались по самого интересного, будем редактировать наши страницы структуры.
Статья сегодня будет объемной, поэтому запаситесь чем можете: кофем, пивом, чипсами,
временем, терпением (ненужное зачеркнуть).
Готовы? Поехали по шагам.
1) Первым делом создаем отдельный файл /cms5-admin/structure/edit.php
Содержимое файла, можно сказать шаблонное, подключение верха(header), низа(footer), коннект к базе,
вывод заголовка.
Добавим особую строчку с функцией mysql_real_escape_string.
Файл для работы готов, закроем его временно. Продолжаем.
2) Открываем файл /cms5-admin/structure/index.php. Нам нужно установить правильную
ссылку по нажатию на [редактировать]. Проводим похожую операцию, как мы делали ссылку для удаления.
Только указываем не параметр type, а ссылаемся на новосозданный файл edit.php с переданным параметром ID.
Я думаю тут все понятно, ничего сложного нету :-)
Сохраняем, закрываем файл index.php (он нам сегодня больше не понадобится) и можем проверить
что по [редактированию] мы перейдем на пустую страницу. Теперь давайте сделаем нечто очень важное.
Вернемся в edit.php, работы тут предстоит очень много.
3) Нам нужно вывести форму с полями и кнопкой сохранить. Не будем очень далеко забегать вперед
и сделаем простое редактирование - менять будем только "Название страницы". На языке html сформируем
простенький код с текстовым полем и кнопкой (submit).
Добавим также один sql запрос, чтобы система знала каккую страницу мы хотем редактировать.
Обратите внимание, что вместо SELECT *, я использовал конструкцию SELECT /Список нужных нам полей/,
пока напишем там только NAME.
Код пишем ниже заголовка, код простой, я думаю не нужно все тут разжевывать. В форме(action) ставим ссылку на edit с параметром id,
метод отправки мы выбираем post (а не get), так как тексты страницы у нас возможно будут длинными.
Даем текстовому полю имя edit_name и обязательно в значение поставим функцию htmlspecialchars
(мы же хотем решить задачу с "неправильными кавычками").
Текстовая версия ниже :))
<?
$editsql=mysql_fetch_array(mysql_query("
SELECT NAME
FROM cms5_structure
WHERE id='".$id."'
"));
?>
<form action="/cms5-admin/structure/edit.php?id=<? echo $id; ?>"
method="post" name="edit">
Название:
<input name="edit_name" value="<? echo htmlspecialchars($editsql[NAME]);?>">
<input type=submit value="Сохранить">
</form>
5) Следующим шагом добавим проверку на нажатие кнопки. Другими словами, если наш php-скрипт
обнаружит что есть данные, переданные методом POST, значит событие нажатия кнопки будет "активировано".
Код:
<?
// Редактирование
if ($_POST)
{
// echo $_POST[edit_name];
$e_edit_name=mysql_real_escape_string($_POST[edit_name]);
$editupdate=mysql_query("UPDATE cms5_structure SET
NAME='".$e_edit_name."'
WHERE ID='".$id."'
");
echo '<b><span style="color:red">Страница отредактирована.</span></b><br>';
}
?>
После успешной проверки, мы сделаем один UPDATE, где сменим название нашей страницы.
Попробуем сохранить разные варианты текста с кавычками.
Все работает!
6) Мы близки к финалу. Нам предстоит добавить дополнительные поля, такие как URLID, TEXT, TITLE и др.
Делаем в 2 шага. Первым - редактируем нашу форму. Вторым - редактируем sql-запрос UPDATE(который в if проверке).
6.1) Я создал аккуратную табличку и раскидал все поля по ячейкам. На что следуют заострить внимание.
а) прописываем все нужные нам поля в СЕЛЕКТе, в настоящий момент это равноценно звездочке,
но когда полей в базе будет много, мы сможем регулировать их выборку,
что в итоге скажеться на производительности.
б) Вот таким нехитрым способом, с помощью проверки, мы определяем влючение галочки.
Внешний вид нашей формы:
6.2) Обновление при сохранении. Вот он финальный код редактирования:
<?
// Редактирование
if ($_POST)
{
// echo $_POST[edit_name];
$e_edit_name=mysql_real_escape_string($_POST[edit_name]);
$e_edit_active=mysql_real_escape_string($_POST[edit_active]);
$e_edit_urlid=mysql_real_escape_string($_POST[edit_urlid]);
$e_edit_text=mysql_real_escape_string($_POST[edit_text]);
$e_edit_title=mysql_real_escape_string($_POST[edit_title]);
$e_edit_description=mysql_real_escape_string($_POST[edit_description]);
$e_edit_keywords=mysql_real_escape_string($_POST[edit_keywords]);
$editupdate=mysql_query("UPDATE cms5_structure SET
NAME='".$e_edit_name."',
ACTIVE='".$e_edit_active."',
URLID='".$e_edit_urlid."',
TEXT='".$e_edit_text."',
TITLE='".$e_edit_title."',
DESCRIPTION='".$e_edit_description."',
KEYWORDS='".$e_edit_keywords."'
WHERE ID='".$id."'
");
echo '<b><span style="color:red">Страница отредактирована.</span></b><br>';
}
?>
Успехов в освоении материала!
Следующей темой будет новый релиз, все недостающие исходники вы найдете там -))
Рубрики: : Модули :: Структура сайта :: Администрирование : | Читать комментарии
Администрирование "Структуры" - Часть 3 - Очень быстрое добавление страницыОпубликовано 2011-12-06 17:47:35 автором KrutoPAPA
Добавление страницы мы будем делать в два этапа. Первый - это быстрое создание страницы,
второй - полноценное создание страницы. Делаем это для того, чтобы вы сами далее выбрали подходящий вам метод, ну и более глубоко понять разработку cms.
Статья сегодня очень короткая, так как функуция, которую будем сегодня внедрять, очень простая. Но не волнуйтесь, в дальнейшем мы ее сделаем полноценной. Первым делом,
давайте поставим ссылку на index модуля structure с новым типом (type=new).

Далее, по принципу удаления страницы, добавим новый участок кода, который будет отвечать за создание новой страницы. Это будет один элементарный INSERT в базу данных (с предустновленными параметрами). Я думаю подробно объяснять не нужно, что сделал наш INSERT.
Единственное, на что следует обратить внимание, это поле URLID. Я выбрал метод использования случайного названия. Метод этот неидеален, так как существует возможность совпадения URLID. Можно использовать время создания, а можно сделать проверку на последний ID, который есть в базе и добавлять страницы по ID+1. Методов много разных, ну вот я выбрал с рандомом -)) Для демонстрации быстрого создания страницы, рандом меня устраивает полностью.
Код:
<?
// Функция быстрого добавления страницы
if ($type=='new')
{
//echo $_GET[id];
$sqlins=mysql_query("INSERT INTO cms5_structure
(URLID,NAME,TEXT,ACTIVE,TITLE)
VALUES
('/page_".rand(1,99999)."/','Новая страница','Текст...','N','Заголовок')
");
echo '<b><span style=\"color:red\">Страница добавлена.</span></b><br>';
}
?>

Проверяем, в админке Cms5 что у нас получилось, нажимаем на "Добавить". Все работает. Создалась неактивная (active=N) cтраница со случайным URLID, с шаблонным названием и контентом.

Можете даже попробовать поудалять новосозданные странички -))
Ну а мы далее пишем функцию редактирования.
Рубрики: : Модули :: Структура сайта :: Администрирование : | Читать комментарии
Администрирование "Структуры" - Часть 2 - Удаление страницыОпубликовано 2011-12-01 20:56:28 автором KrutoPAPA
Приветствую вас дорогие друзья. Мы продолжаем создавать административный интерфейс и сегодня речь пойдет об удалении страниц.
Мы напишем маленькую функцию.
1. Чтобы не "портить" нашу созданную структуру, давайте создадим новую страничку, которую не жалко будет удалить :-)
Если кто забыл, делаем мы это (пока) через phpMyadmin используя функцию Insert.
Вот дамп, кому надо:
INSERT INTO `cms2010`.`cms5_structure` (`ID`, `URLID`, `NAME`, `TEXT`, `ACTIVE`, `TITLE`, `DESCRIPTION`, `KEYWORDS`) VALUES ('5', '/test1/', 'Страница на удаление', 'Бла бла бла', 'Y', '', '', '');
2. Далее мы перейдем к редактированию файла /cms5-admin/structure/index.php,
наша задача в передаче нашему php-скрипту специального параметра,
давайте назовем его TYPE.
Для удаления страницы, значение параметра будет равняться DEL.
Ддобавим ссылку по нажатия на "УДАЛИТЬ" "/cms5-admin/structure/?type=del&id='.$res[ID].'". Таким образом мы передаем наш параметр TYPE со значением DEL, а также ID удаляемой страницы. Обратите внимание, что все параметры написаны строчними буквами.
В нашем цикле все будет выглядеть так:
3. Переходим к третьему шагу - к написанию кода функции. Как обычно вариантов огромное количество, но мы пойдем самым простым путем :-)
После хедера (include header.php) сделаем проверку на значение TYPE (GET метод). Если type=del (а это нам сегодня и требуется), ты выполняем один sql-запрос на удаление строчки. Также проинформируем пользователя(администратора), что страница удалена. Совсем удалена.
Вот код:
<?
// Функция удаления
if ($_GET[type]=='del')
{
//echo $_GET[id];
$sqldel=mysql_query("DELETE FROM cms5_structure WHERE ID='".$_GET[id]."'");
echo '<b><span style="color:red">Страница удалена.</span></b><br>';
}
?>
Вот и все. Хотя нет!
Во-первых, можно еще поставить на кнопку [удалить] javascript, с окном подтверждения удаления. Так мы избежим случайных кликов по ссылке [удалить]
Во-вторых, для безопасности, все get значения параметров нужно обработать функцией mysql_real_escape_string.
Добавляем этот код до sql запросов:
<?
$type=mysql_real_escape_string($_GET[type]);
$id=mysql_real_escape_string($_GET[id]);
?>
Вот теперь все ))
Рубрики: : Модули :: Структура сайта :: Администрирование : | Читать комментарии
Администрирование "Структуры" - Часть 1 - Список страницОпубликовано 2011-11-24 03:20:53 автором KrutoPAPA
Сделаем еще маленький шаг. Попробуем вывести список созданных нами страниц.
В файле /cms5-admin/structure/index.php добавим следующую часть кода (между header и footer, ну вы уже сами наверное догадались):
<h4>Структура сайта</h4>
<a href=structure_add.php>Добавить новую страницу</a><br><br>
<?
echo '<table cellpadding=5 cellspacing=1 width=100%>';
$sql=mysql_query("SELECT * FROM cms5_structure");
while ($res=mysql_fetch_array($sql))
{
echo '<tr bgcolor=#eeeeee>';
echo '<td valign=top>';
echo $res[ID].'</td><td><a href=>'.$res[NAME].'</a>
<br>'.$res[URLID].'
</td>
<td valign=top width=120><center>[<a href=>редактировать</a>]</center></td>
<td valign=top width=70><center>[<a href=>удалить</a>]</center></td>';
echo '</td>';
echo '</tr>';
}
echo '</table>';
?>
Код, как вы видите простой. а) формируем табличку б) делаем 1 запрос базу данных в) в цикле выводим список страниц (с названием NAME, ID, URLID). Ну и на будущее ссылки на редактирование и удаление.
Должно получиться примерно так:
На сегодня пока только список, добавление, редактирование, удаление будет позже -)) Успехов, и не забывайте про комментарии -)
Рубрики: : Модули :: Структура сайта :: Администрирование : | Читать комментарии
<< 1 2 3 4 5 6 >>
|