Покинул форум
Сообщений всего: 12
Дата рег-ции: Янв. 2013
Помог: 0 раз(а)
Здравствуйте
Ищу ответ на вопрос "Как сделать шаблон на php". На многих форумах задают один и тот же вопрос - "Как сделать шаблон на php". Дорогие профессионалы, предлагаю Вам ответить на этот вопрос "раз и навсегда".
В большинстве случаев, вопрос заключается в том, что люди(как и я) хотят менять контент на сайте, и при этом не менять "основу" страницы.
Подробное описание:
Есть файл index.php, примерно следующего содержания:
Суть в том, что в файле header.php содержится меню в виде <ul> с различными ссылками, при нажатие на пункты меню, нужно, чтобы в index.php менялся только контент.
esterio
Отправлено: 16 Февраля, 2013 - 14:57:54
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
Чуствую щас начется холивар на теу шаблонизаторов в ПХП
IstonRU пишет:
Суть в том, что в файле header.php содержится меню в виде <ul> с различными ссылками, при нажатие на пункты меню, нужно, чтобы в index.php менялся только контент.
тоесть вам нужно изменитьконтент без перезагрузки страницы - AJAX.
если ще вам нужно подмена контенто относительно ссилкы, подключайте файл тот который нужно. Условние оператори вам помогут
etoYA
Отправлено: 16 Февраля, 2013 - 15:05:35
Участник
Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011 Откуда: Крым
Там где content, подключаешь файл data.php, ну и при переходе по ссылкам подключаешь нужную страницу.
_http://site.com/index.php?page=index
IstonRU
Отправлено: 16 Февраля, 2013 - 15:18:46
Новичок
Покинул форум
Сообщений всего: 12
Дата рег-ции: Янв. 2013
Помог: 0 раз(а)
etoYA
Я так понимаю, что $_GET['page'] принимает из url название файла не учитывая .php? Вообще-то все у меня работает, но как, я не пойму . Простите, что я "индус".
etoYA
Отправлено: 16 Февраля, 2013 - 15:21:00
Участник
Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011 Откуда: Крым
$page принимает значение $_GET['page'] или индекс в зависимости от того установлена ли $_GET['page']?
Я все равно ничего не пойму. Вот у меня такие ссылки:
<a href="page1.php"> - страница 1
<a href="page2.php"> - страница 2
<a href="page3.php"> - страница 3
<a href="page4.php"> - страница 4
Это все в header.php, как меню.
Я нажимаю на ссылку(любую) меня перекидывает на этот скрипт, весь шаблон что в index сразу пропадает. А мне нужно, чтобы то, что выдает скрипт, находящийся по ссылкам, выкидывал всю инфу в content, что в index.php.
Вы написали про data.php, как этот скрипт понимает, какую ссылку я нажал?
esterio
Отправлено: 16 Февраля, 2013 - 15:42:11
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
Вам стоит ознакомится что такое Front Controller.
А по существу ето всего лиць пример. Все сводится к тому чтоб по некой переменной опредилить какой контент показивать
etoYA
Отправлено: 16 Февраля, 2013 - 15:45:17
Участник
Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011 Откуда: Крым
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
imya пишет:
Вернее, тернарный оператор.
тогда $i++ не постинкремент а унарный оператор?))
дело в том что в пхп всего один тернарный оператор но это более общее название а не его собственное
(Добавление)
и раз пошла такая пьянка то и сокращенным условием это тоже не совсем является так это именно оператор который возвращает значение и может участвовать в выражении
IstonRU
Отправлено: 16 Февраля, 2013 - 17:31:36
Новичок
Покинул форум
Сообщений всего: 12
Дата рег-ции: Янв. 2013
Помог: 0 раз(а)
Кажется теперь я во всем разобрался.
Объявляя переменную $page мы можем передать её сценарию с помощью $_GET['page']. Если она не заданна, то по умолчанию = index. Переходя по ссылкам, мы присваиваем ей значение, а уже в зависимости от того, какое у неё значение, выводим тот или иной контент.
Всем огро-о-о-о-о-о-мное спасибо!
Okula
Отправлено: 16 Февраля, 2013 - 19:13:21
Участник
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
не проще ли взять уже готовое решение? например шаблонизатор Twig.
LIME
Отправлено: 16 Февраля, 2013 - 19:19:53
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
какие преимущества он дает?
Okula
Отправлено: 17 Февраля, 2013 - 12:25:34
Участник
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
LIME, простые понятные шаблоны. Довольн мощные инструменты, такие как кеширование шаблонов, наследование шаблонов, использование встроеных фильтров, макросы, возможность регистрировать свои фильтры и т.д.
Все возможности можно посмотреть на сайте http://twig[dot]sensiolabs[dot]org
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.