собственно прилагаю картирку со структурой каталогов.
Главная страница. index.php
<?php
include './variables.php';
ob_start();
include './skins/tpl/show.tpl';
$content = ob_get_contents();
ob_end_clean();
include './skins/tpl/index.tpl';
?>
а так же файл который в буфер уходит (include './skins/tpl/show.tpl';)
<?php
include './skins/tpl/block/head.php';
include './skins/tpl/block/menu.tpl';
include './skins/tpl/block/body_top.tpl';
switch ($page)
{
case 'second';
include './skins/tpl/'.$page.'/controller.php';
break;
case 'third';
include './skins/tpl/'.$page.'/controller.php';
break;
default:
include './skins/tpl/'.$page.'/controller.php';
break;
}
include './skins/tpl/block/body_bottom.tpl';
?>
файл который он включает т.е (include './skins/tpl/index.tpl';), имеет вот такую структуру
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Главная</title>
<meta name="description" content="" />
<meta name="keywords" content="" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link href="admin/img/favicon.ico" rel="icon" type="image/x-icon" />
<link href="admin/img/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php echo $content; ?>
</body>
</html>
файл контроллер (папка: ./skins/tpl/main/controller.php)
<?php
/*
* @TODO
* @author m4a1fox
* @copyright 2011 m4a1fox
*/
include './skins/tpl/main/show.php';
?>
и собственно файл ( './skins/tpl/main/show.php';)
<?php
/*
* @TODO
* @author m4a1fox
* @copyright 2011 m4a1fox
*/
echo 'Главная страница';
?>
<div style="width: 100px; height: 100px;
background-color: #C3FBF8; border: 1px solid black;">
тут произвольный текст/
</div>
По такому же методу построены и остальные страницы.
понимаю что много написал, но если кого не затруднит, посмотрите поджалуйста, я хоть в правильном направлении иду?:)
Спустя 4 минуты, 24 секунды (1.06.2011 - 17:02) Игорь_Vasinsky написал(а):
В MVC - index.php - выступает в роли (контроллера) переключателя, там используют case
Спустя 1 минута, 35 секунд (1.06.2011 - 17:03) m4a1fox написал(а):
Игорь_Vasinsky
Да, это видел у twin'a. Но у меня маленькая проблемка в этом плане.
Да, это видел у twin'a. Но у меня маленькая проблемка в этом плане.
Спустя 51 секунда (1.06.2011 - 17:04) sharki написал(а):
Всё это можно заменить на
Только не понимаю что критиковать?
<?php
include './skins/tpl/block/head.php';
include './skins/tpl/block/menu.tpl';
include './skins/tpl/block/body_top.tpl';
if(file_exist('./skins/tpl/'.$page.'/controller.php'))
include './skins/tpl/'.$page.'/controller.php';
else
// какая нибудь ошибка
include './skins/tpl/block/body_bottom.tpl';
?>
Только не понимаю что критиковать?
Спустя 7 минут, 15 секунд (1.06.2011 - 17:11) Игорь_Vasinsky написал(а):
Цитата |
Но у меня маленькая проблемка в этом плане. |
а какая?
Спустя 14 минут, 31 секунда (1.06.2011 - 17:26) m4a1fox написал(а):
Игорь_Vasinsky
Вот так можно сделат?
index.php
Вот так можно сделат?
index.php
<?php
/*
* Главный индекс (index)
* @author m4a1fox
* @copyright 2011 m4a1fox
*/
/**
* Подключаем файл с переменными ($_GET)
*/
include './variables.php';
ob_start();
include './skins/tpl/block/head.php';
include './skins/tpl/block/menu.tpl';
include './skins/tpl/block/body_top.tpl';
switch ($page)
{
case 'second';
include './skins/tpl/'.$page.'/controller.php';
break;
case 'third';
include './skins/tpl/'.$page.'/controller.php';
break;
default:
include './skins/tpl/'.$page.'/controller.php';
break;
}
include './skins/tpl/block/body_bottom.tpl';
$content = ob_get_contents();
ob_end_clean();
include './skins/tpl/index.tpl';
?>
Спустя 2 минуты, 17 секунд (1.06.2011 - 17:28) m4a1fox написал(а):
sharki
Я структуру разбил... правильно ли... И вообще так можно делать?
Я структуру разбил... правильно ли... И вообще так можно делать?
Спустя 1 минута, 59 секунд (1.06.2011 - 17:30) sharki написал(а):
m4a1fox
Ты и в правду думаешь, что всякие модели, роутеры и контроллеры просто так придуманы?
index.php выступает в роли только как ведущего контроллера, который подключает другие контроллеры, те, в тоже время, подключают модели и виды
Ты и в правду думаешь, что всякие модели, роутеры и контроллеры просто так придуманы?
index.php выступает в роли только как ведущего контроллера, который подключает другие контроллеры, те, в тоже время, подключают модели и виды
Спустя 1 минута, 13 секунд (1.06.2011 - 17:31) m4a1fox написал(а):
Вот тут
include './skins/tpl/block/head.php'; // файл в котором находится шапка файта
include './skins/tpl/block/menu.tpl'; // соответственно тут меню :)
include './skins/tpl/block/body_top.tpl'; // тут верхняя часть контента сайта (имеется ввиду верхняя часть таблицы)
// это блок отвечающий только за вывод контента
switch ($page)
{
case 'second';
include './skins/tpl/'.$page.'/controller.php';
break;
case 'third';
include './skins/tpl/'.$page.'/controller.php';
break;
default:
include './skins/tpl/'.$page.'/controller.php';
break;
}
// это блок отвечающий только за вывод контента
include './skins/tpl/block/body_bottom.tpl'; // соответственно нижняя часть контента сайта (имеется ввиду нижняя часть таблицы)
Спустя 40 секунд (1.06.2011 - 17:32) m4a1fox написал(а):
sharki
Уверен, что не просто так.... но я честно стараюсь)
Уверен, что не просто так.... но я честно стараюсь)
Спустя 1 минута, 45 секунд (1.06.2011 - 17:34) sharki написал(а):
m4a1fox
Я же тебе написал как можно заменить блок с кейсами или ты каждый раз будешь прописывать что-то новенькое в кейс блок?)
Если ты уже что-то понимаешь в MVC, то стоит еще раз прочесть ирбисовское ядро, только не ligth)
Я же тебе написал как можно заменить блок с кейсами или ты каждый раз будешь прописывать что-то новенькое в кейс блок?)
Если ты уже что-то понимаешь в MVC, то стоит еще раз прочесть ирбисовское ядро, только не ligth)
Спустя 2 минуты, 22 секунды (1.06.2011 - 17:36) m4a1fox написал(а):
sharki
Это да... спасибо. Сейчас заменяю....
Это да... спасибо. Сейчас заменяю....
Спустя 3 минуты, 15 секунд (1.06.2011 - 17:39) m4a1fox написал(а):
sharki
Только не file_exist а file_exists!
Только не file_exist а file_exists!
Спустя 2 минуты, 32 секунды (1.06.2011 - 17:42) sharki написал(а):
m4a1fox
Верно наизусть не знаю, редко пользуюсь
Верно наизусть не знаю, редко пользуюсь
Спустя 5 минут, 43 секунды (1.06.2011 - 17:48) Игорь_Vasinsky написал(а):
m4a1fox
Цитата |
include './skins/tpl/'.$page.'/controller.php'; |
ты зачем файлы контроллеров (вообще php) в TPL папке держишь?, там только TPL.
Я вот как делаю (на функциях):
index.php - главный контроллер
function.php - сдесь include функций (тоже case - в зависимости от модуля, чтоб не нужные не висели)
папка image - картинки
папка JS - общие скрипты
папка CSS - обобщёный стиль
папка lib - файлы функций (имя-название функции)
папка moduls - файлы модулей
папка controllers - контроллеры модулей
папка themes - темы
- Имя темы, например default:
- image - картинки
- css - стили
- js - скрипты JS
- tpl - шаблоны
Спустя 25 секунд (1.06.2011 - 17:48) m4a1fox написал(а):
Вот у меня возник вопрос..... Как быть в случае, если у меня ссылка будет вида /?page=second&link=guest - тоесть ссылка на другую страницу, из страницы $_GET['page']. То есть, при вызове $_GET['link'] у меня на страницу будет вылазить и $_GET['page'] и $_GET['link']. если $page у меня инициализируется в файле variables.php
$page = !empty($_GET['page'])?$_GET['page']:'main';
Спустя 1 минута, 2 секунды (1.06.2011 - 17:49) m4a1fox написал(а):
Игорь_Vasinsky
О! Спасибо. Возьму Вашу структуры за пример. Можно?
О! Спасибо. Возьму Вашу структуры за пример. Можно?
Спустя 7 минут, 14 секунд (1.06.2011 - 17:56) Игорь_Vasinsky написал(а):
m4a1fox
можно
так же не стоит забывать что отдельный контроллер модуля тоже может содержать блок case (например чтоб файл модуля подключал тот или иной шаблон), например:
модуль admin.php, а шаблоны: general, add_news, add_pages и т.д.
можно
так же не стоит забывать что отдельный контроллер модуля тоже может содержать блок case (например чтоб файл модуля подключал тот или иной шаблон), например:
модуль admin.php, а шаблоны: general, add_news, add_pages и т.д.
Спустя 7 минут, 37 секунд (1.06.2011 - 18:04) m4a1fox написал(а):
Игорь_Vasinsky
Ага! Значит если я хочу сделать ссылку вида
то мне надо надо в контроллере переключать через swich&case модули и все... Так получается? Я вопрос первым постом на этойц странице спрашивал? Получается ответ то что вы написали?
Ага! Значит если я хочу сделать ссылку вида
/?page=second&link=guest
то мне надо надо в контроллере переключать через swich&case модули и все... Так получается? Я вопрос первым постом на этойц странице спрашивал? Получается ответ то что вы написали?
Спустя 13 минут, 23 секунды (1.06.2011 - 18:17) sharki написал(а):
link - будет служить как переключателем функций модуля page . Т.е page служит как переключатель самих модулей.
в итоге
а в контроллере делай что тебе угодно, тебе известно что надо подключить и откуда что взять, осталось все это связать =) и кстати ен забывай про безопасность
в итоге
include './modules/'.$_GET['page'].'/'.$_GET['link'].'_controller.php';
а в контроллере делай что тебе угодно, тебе известно что надо подключить и откуда что взять, осталось все это связать =) и кстати ен забывай про безопасность
Спустя 1 минута, 41 секунда (1.06.2011 - 18:19) m4a1fox написал(а):
m4a1fox
Только не модули, а страницы?! Так же?!
Только не модули, а страницы?! Так же?!
Спустя 3 минуты, 24 секунды (1.06.2011 - 18:22) m4a1fox написал(а):
sharki
Вот так переключаю модули
А в файле variables.php
Насколько понимаю, так нельзя?
Вот так переключаю модули
switch ($link)
{
case 'guest':
include './skins/modules/second/guest.php';
break;
default :
include './skins/modules/second/show.php';
break;
}
А в файле variables.php
$link = !empty($_GET['link'])?$_GET['link']:NULL;
Насколько понимаю, так нельзя?
Спустя 2 минуты, 51 секунда (1.06.2011 - 18:25) sharki написал(а):
m4a1fox
ты находишься на странице новости, значит ссылка
в индексе подключаешь контроллер который выше, он подключает модель и вид, и т.п, вообщем что душе угодно подключай там.
например тебе нужно вывести новость под номером 3, значит ссылка имеет вид
Опять же подключаешь контроллер, там же смотришь, если есть id то подключить модель которая за это отвечает, или просто совмести и там сделай банальное if else
так же подключаешь дополнительные шаблоны, главный принцип и был описан на ирбисе.
название модулей похожи на названия шаблонов, они так же находят в папках
В итоге одна ссылка подключает и нужные шаблоны и нужные тебе контроллеры, и никакой путаницы
ты находишься на странице новости, значит ссылка
?page=news&link=read
в индексе подключаешь контроллер который выше, он подключает модель и вид, и т.п, вообщем что душе угодно подключай там.
например тебе нужно вывести новость под номером 3, значит ссылка имеет вид
?page=news&link=read&id=3
Опять же подключаешь контроллер, там же смотришь, если есть id то подключить модель которая за это отвечает, или просто совмести и там сделай банальное if else
так же подключаешь дополнительные шаблоны, главный принцип и был описан на ирбисе.
название модулей похожи на названия шаблонов, они так же находят в папках
include './modules/'.$_GET['page'].'/'.$_GET['link'].'_controller.php';
include './skins/tpl/'.$_GET['page'].'/'.$_GET['link'].'.tpl';
В итоге одна ссылка подключает и нужные шаблоны и нужные тебе контроллеры, и никакой путаницы
Спустя 5 минут, 35 секунд (1.06.2011 - 18:31) m4a1fox написал(а):
sharki
Ага! Спасибо. Буду разбираться. Но мне кажется это запутано немножко.... Хотя наверно это сперва такое ощущение:)
Ага! Спасибо. Буду разбираться. Но мне кажется это запутано немножко.... Хотя наверно это сперва такое ощущение:)
Спустя 2 минуты, 16 секунд (1.06.2011 - 18:33) m4a1fox написал(а):
sharki
Да, еще вопрос. Вот тут ?page=news&link=rea. Если нахожусь на странице новости, то почему у меня ссылка имеет вот такой ?page=news&link=read вид, а не вот ?page=news такой?
Да, еще вопрос. Вот тут ?page=news&link=rea. Если нахожусь на странице новости, то почему у меня ссылка имеет вот такой ?page=news&link=read вид, а не вот ?page=news такой?
Спустя 4 минуты, 59 секунд (1.06.2011 - 18:38) sharki написал(а):
m4a1fox
ну ты можешь автоматически подставлять read в индексе, т.е если не существует $_GET['link'] то подставить read
ну ты можешь автоматически подставлять read в индексе, т.е если не существует $_GET['link'] то подставить read
Спустя 2 минуты, 51 секунда (1.06.2011 - 18:41) m4a1fox написал(а):
sharki
Нет нет. Я не стпросил. Вообще, зачем нужно так? Ну, то есть, если есть ссылка вида
?page=news то вот это
и так вытащит все из папки news....
Нет нет. Я не стпросил. Вообще, зачем нужно так? Ну, то есть, если есть ссылка вида
?page=news то вот это
if(file_exists('./skins/modules/'.$page.'/controller.php'))
include './skins/modules/'.$page.'/controller.php';
и так вытащит все из папки news....
Спустя 2 минуты, 37 секунд (1.06.2011 - 18:43) m4a1fox написал(а):
Как я понимаю то ссылка вида ?page=news&link=read означет что! Разбиваем на части
вот это ?page=news вот тут
означает папку! Так?!
а вот это &link=read вот тут
означет файл в этой папке. То есть, первая часть ссылки указыват только путь?
вот это ?page=news вот тут
include './modules/'.$_GET['page'].'/'.$_GET['link'].'_controller.php';
означает папку! Так?!
а вот это &link=read вот тут
include './modules/'.$_GET['page'].'/'.$_GET['link'].'_controller.php';
означет файл в этой папке. То есть, первая часть ссылки указыват только путь?
Спустя 2 минуты, 15 секунд (1.06.2011 - 18:46) sharki написал(а):
m4a1fox
А если ты хочешь другую функцию использовать например add_controller.php и ты будешь опять вручную все прописывать?
А так
данный код всё за тебя сделает, у тебя в модуле news может содержаться много чего
read_controller.php - читать новость
add_controller.php - допустим добавить новость
edit_controller.php - редактировать
comment_controller.php - читать все комментарии какой то новости. и тебе всего лишь надо указать второй аргумент в ссылке $_GET['link']
А если ты хочешь другую функцию использовать например add_controller.php и ты будешь опять вручную все прописывать?
А так
include './modules/'.$_GET['page'].'/'.$_GET['link'].'_controller.php';
данный код всё за тебя сделает, у тебя в модуле news может содержаться много чего
read_controller.php - читать новость
add_controller.php - допустим добавить новость
edit_controller.php - редактировать
comment_controller.php - читать все комментарии какой то новости. и тебе всего лишь надо указать второй аргумент в ссылке $_GET['link']
Спустя 1 минута, 22 секунды (1.06.2011 - 18:47) m4a1fox написал(а):
sharki
Да. Значит я правильно понял. Спасибо. Буду дальше практиковаться.
Да. Значит я правильно понял. Спасибо. Буду дальше практиковаться.
Спустя 8 секунд (1.06.2011 - 18:47) sharki написал(а):
$_GET['page'] указывает какой модуль подключить, содержит имя модуля, которым ты дополняешь путь до этого модуля, $_GET['link'] указывает тоже часть имени файла, который нужно открыть
Спустя 2 минуты, 37 секунд (1.06.2011 - 18:50) m4a1fox написал(а):
sharki
Так получается что контроллеров может быть велико множество.....
Так получается что контроллеров может быть велико множество.....
Спустя 2 минуты, 39 секунд (1.06.2011 - 18:52) m4a1fox написал(а):
m4a1fox
Тогда какой же файл вот тут
подключать?
Тогда какой же файл вот тут
if(file_exists('./skins/modules/'.$page.'/controller.php'))
include './skins/modules/'.$page.'/controller.php';
else
echo 'Ошибка';
подключать?
Спустя 3 минуты, 11 секунд (1.06.2011 - 18:56) sharki написал(а):
m4a1fox
if(empty($_GET['link'])) {
$_GET['link'] = 'read';
}
if(empty($_GET['page'])) {
$_GET['page'] = 'main';
}
if(file_exists('./modules/'.$_GET['page'].'/'.$_GET['link'].'_controller.php')) {
include './modules/'.$_GET['page'].'/'.$_GET['link'].'_controller.php';
include './skins/tpl/'.$_GET['page'].'/'.$_GET['link'].'.tpl';
}
else
echo 'Ошибка';
Спустя 11 минут, 24 секунды (1.06.2011 - 19:07) m4a1fox написал(а):
sharki
Окей! Спасибо что подсказали.... буду разбираться.
Окей! Спасибо что подсказали.... буду разбираться.
Спустя 19 часов, 55 минут, 6 секунд (2.06.2011 - 15:02) m4a1fox написал(а):
sharki
Я тут эксперементировал... И вопрос возник. Объясните зачем нужна вот эта
Строка. Я понимаю что она делает, но для чего? Не понимаю... Можете разъяснить?
Я тут эксперементировал... И вопрос возник. Объясните зачем нужна вот эта
include './skins/tpl/'.$_GET['page'].'/'.$_GET['link'].'.tpl';
Строка. Я понимаю что она делает, но для чего? Не понимаю... Можете разъяснить?
Спустя 2 минуты, 41 секунда (2.06.2011 - 15:05) sharki написал(а):
m4a1fox
Подключает не только модуль но и шаблон этого модуля, ты можешь её удалить, эту строчку, если ты делаешь подключение нужных шаблонов в "виде"
Подключает не только модуль но и шаблон этого модуля, ты можешь её удалить, эту строчку, если ты делаешь подключение нужных шаблонов в "виде"
Спустя 27 секунд (2.06.2011 - 15:05) Игорь_Vasinsky написал(а):
Так она показывает - какой шаблон, какого модуля надо подключить
Спустя 2 минуты, 49 секунд (2.06.2011 - 15:08) m4a1fox написал(а):
Игорь_Vasinsky
Я понимаю зачем она.... Я только не понимаю пользы от нее. Как написал sharki я ее убрал... Но у меня сомнения... Может не надо было убиратьГ
Я понимаю зачем она.... Я только не понимаю пользы от нее. Как написал sharki я ее убрал... Но у меня сомнения... Может не надо было убиратьГ
Спустя 4 минуты, 8 секунд (2.06.2011 - 15:12) Игорь_Vasinsky написал(а):
Цитата |
ты можешь её удалить, эту строчку, если ты делаешь подключение нужных шаблонов в "виде" |
Спустя 41 секунда (2.06.2011 - 15:13) m4a1fox написал(а):
И вот это
можешь её удалить, эту строчку, если ты делаешь подключение нужных шаблонов в "виде"
Я немного запутался и теперь сам не могу разобраться так ли я делаю или нет?! Понимаете?
можешь её удалить, эту строчку, если ты делаешь подключение нужных шаблонов в "виде"
Я немного запутался и теперь сам не могу разобраться так ли я делаю или нет?! Понимаете?
Спустя 2 минуты, 35 секунд (2.06.2011 - 15:15) m4a1fox написал(а):
Кажется начинаю догонять. Я подключаю вид в контроллере
Спустя 1 минута, 28 секунд (2.06.2011 - 15:17) sharki написал(а):
m4a1fox
Ну вот, там же наверняка подключаешь нужный тебе шаблон, если это так, то можешь удалить то, про что спрашивал
Ну вот, там же наверняка подключаешь нужный тебе шаблон, если это так, то можешь удалить то, про что спрашивал
Спустя 1 минута, 9 секунд (2.06.2011 - 15:18) m4a1fox написал(а):
sharki
Да, вроде догнал. Спасибо.
Да, вроде догнал. Спасибо.
Спустя 3 минуты, 51 секунда (2.06.2011 - 15:22) m4a1fox написал(а):
Еще, скажите пожалуйста вот такая структура
ob_start(); // Начинаем собирать буфер.
include './skins/tpl/block/head.php';
include './skins/tpl/menu.tpl';
include './skins/tpl/block/body_top.tpl';
if(file_exists('./skins/modules/'.$page.'/'.$link.'_controller.php'))
include './skins/modules/'.$page.'/'.$link.'_controller.php';
else
echo 'Ошибка';
include './skins/tpl/block/body_bottom.tpl';
$content = ob_get_contents();
ob_end_clean();
это нормально. Я сейчас собственно про первые 3 includ'a говорю. То есть так делается и насколько сильно это грузит систему?
Спустя 3 минуты, 59 секунд (2.06.2011 - 15:26) sharki написал(а):
m4a1fox
Нормалек, с опытом излишества сам уберешь, и сделаешь грамотнее
Нормалек, с опытом излишества сам уберешь, и сделаешь грамотнее
Спустя 8 минут, 4 секунды (2.06.2011 - 15:34) m4a1fox написал(а):
sharki
И еще. Знаю что запарил но вопросы быстро очень возникают. Собственно речь о ссылках.
Вот мой блок меню (menu.tpl)
Есть еще одна ссылка, выглядит вот так:
<a href="?page=guest&link=read">
Страница№3</a>
Есть ли какой нибудь способ не прописывать ссылки каждый раз вот так?
И еще. Знаю что запарил но вопросы быстро очень возникают. Собственно речь о ссылках.
Вот мой блок меню (menu.tpl)
<div id="menu">
<table width="1000px" border="0" height="50px"
align="center" style="text-align: center;">
<tr>
<td>
<a href="?page=main&link=read">Главная</a>
</td>
<td>
<a href="?page=second&link=read">Меню2</a>
</td>
<td>
<a href="?page=third&link=read">Меню3</a>
</td>
<td>
<a href="?page=four&link=read">Меню4</a>
</td>
<td>
<a href="?page=five&link=read">Меню5</a>
</td>
</tr>
</table>
</div>
Есть еще одна ссылка, выглядит вот так:
<a href="?page=guest&link=read">
Страница№3</a>
Есть ли какой нибудь способ не прописывать ссылки каждый раз вот так?
Спустя 3 минуты, 47 секунд (2.06.2011 - 15:38) sharki написал(а):
m4a1fox
Я же говорил, и даже по моему писал, на 3ей странице. Надеюсь поймешь что надо отсюда забрать, и вставить туда, чтобы не писать в ссылках &link=read
Я же говорил, и даже по моему писал, на 3ей странице. Надеюсь поймешь что надо отсюда забрать, и вставить туда, чтобы не писать в ссылках &link=read
if(empty($_GET['link'])) {
$_GET['link'] = 'read';
}
if(empty($_GET['page'])) {
$_GET['page'] = 'main';
}
if(file_exists('./modules/'.$_GET['page'].'/'.$_GET['link'].'_controller.php')) {
include './modules/'.$_GET['page'].'/'.$_GET['link'].'_controller.php';
include './skins/tpl/'.$_GET['page'].'/'.$_GET['link'].'.tpl';
}
else
echo 'Ошибка';
Спустя 1 минута, 36 секунд (2.06.2011 - 15:39) m4a1fox написал(а):
sharki
Нет нет! Я так и сделал... Там все работает! Я про то что ссылки придется в пункте меню (например) прописывать вручную... Хотя наверно так и надо. Я чего-то гоню. Все понял! Спасибо.
Нет нет! Я так и сделал... Там все работает! Я про то что ссылки придется в пункте меню (например) прописывать вручную... Хотя наверно так и надо. Я чего-то гоню. Все понял! Спасибо.
Спустя 4 дня, 18 часов, 29 минут, 30 секунд (7.06.2011 - 10:09) m4a1fox написал(а):
Возвращаемся к нашим баранам:). Итак. Пункт админки. Как мы помним я пытаюсь все реализовать на моделе MVC. Итак. Вопрос для уточнения. В админке есть пункт добавления записи.
Собственно сам router.php
Думаю с роутером понятно.
Далее, есть кнопка добавить. Ссылка на нее -
.
Вот файлы в папке add (?act=add).
add_controller.php (подключает model.php (насколько я понимаю) и подключает add_show.)
add_show.php (выводит форму для внесения данных в БД).
Собственно и САМ вопрос. в файле model.php необходимо прописать функции для добавления информации в БД. А именно (примерно)
Итак... Так вообще делается, или я на ложном пути... Прошу в этом помочь разобраться. Спасибо всем кто откликниться.
Собственно сам router.php
if (!empty($_GET['link']) && !isset($_GET['act']))
{
include './skins/modules/'.$link.'/read_controller.php';
include './skins/modules/'.$link.'/show.php';
}
elseif($_GET['act'] == 'add')
{
include './skins/modules/'.$link.'/'.$act.'/add_controller.php';
include './skins/modules/'.$link.'/'.$act.'/add_show.php';
}
Думаю с роутером понятно.
Далее, есть кнопка добавить. Ссылка на нее -
<div id="toolbar">
<a href="?act=add" id="add_btn">Создать</a>
</div>
.
Вот файлы в папке add (?act=add).
add_controller.php (подключает model.php (насколько я понимаю) и подключает add_show.)
add_show.php (выводит форму для внесения данных в БД).
Собственно и САМ вопрос. в файле model.php необходимо прописать функции для добавления информации в БД. А именно (примерно)
function SaveBook ($table) {
if (!empty($_POST['add'])) {
$result = mysql_query("INSERT INTO $table SET
`name` = '".$_POST['name']."',
`text` = '".$_POST['text']."'
");
header('Location: ?page=guest');
}
return $result;
}
Итак... Так вообще делается, или я на ложном пути... Прошу в этом помочь разобраться. Спасибо всем кто откликниться.