Помощник
|
Шаблон в одном файле, а остальные подключать в зависимости от страницы |
Kolovrat_hb
|
Сообщение
#1
|
||
|
|
||
|
|||
c0ns0l3 |
26.4.2012, 18:33;
Ответить: c0ns0l3
Сообщение
#2
|
|
Используй РНР, который поддерживается на каждом хостинге.
Идеология будет примерно следующая. у тебя есть index.php в котором описан весь "статический" HTML страницы, в котором так же указано в определенном месте include какого-то файла. примерно так выглядит <html> <head> <title>Title</title> </head> <body> <?php include("template/somefile.htm") ?> </body> </html> где template/somefile.html и есть тот файл, который "проинклудится" в твой код. Далее, нужно привязаться к ссылке, что делается передачей методом GET какой-либо переменной, пусть допустим это будет page после чего у тебя будет такая ссылка: http://site.com/?page=hello в РНР у тебя появится переменная page, которую ты сможешь использовать. (если более одной переменной передавать по GET то прийдется писать ?page=1&argument=2&foo=3&name=Vasya Применяем данную переменную в РНР коде <?php include("template/".$_GET['page'].".htm") ?> мы подставляем ее в наш инклуд, таким образом. в зависимости от ссылки, будет варироваться какой файл нам инклудить. |
|
|
Kolovrat_hb
|
Сообщение
#3
|
|
Идея проста! Именно так я и хотел =) не понятно одно))) в конце вы поставили пример ссылки которую вставлять в инклуд. я ее совсем не понял. я сейчас попробую поискать уроки по этой теме, но хотелось бы чтоб вы кинули при возможности урок который на ваш взгляд максимально удобен и понятен
первые два предложения я с просонье не правильно написал идея понятна! Именно это я и имел в виду! P.S. простона юкозе давно еще спалил такие переменные в адресной строке, а как делать такое хз =) |
|
|
Kolovrat_hb
|
Сообщение
#4
|
|
Большое спасибо =) со всем разобрался =) все реально удобно и просто в использовании =) всего одну строчку вставить в код и больше ни че извенять не надо просто создавать новые файлики и все =) вообще классно =)
|
|
|
c0ns0l3 |
3.5.2012, 22:10;
Ответить: c0ns0l3
Сообщение
#5
|
|
Передавать переменные в РНР можно 2мя способами.
1) GET - ты его уже знаешь, это по факту открытые переменные которые идут в адрессной строке. 2) POST - это уже скрытые переменные, их небудет видно в адрессной строке, и по факту - можно простым способом передавать их только через форму <form action="index.php" method="post"> В зависимости от того, как настроен РНР, к ним обращаться можно или сразу же $foo, но правильней будет обращаться к ним через глобальный массив переменных РНР $_GET и $_POST соответветственно (т.к. на некоторых хостингах глобальное пространство переменных может быть отключено). Поэтому соответственно будет $_GET['foo'] или $_POST['foo'] |
|
|
Kolovrat_hb
|
Сообщение
#6
|
|
я не могу найти нормальные понятные уроки по PHP. подскажите пожалуйста как задавать значение переменной не через адрессную строку, а в коде. мне не понятен именно синтаксис, покажите пожалуйста на примере. ну и желательно если вам не сложно дайте ссылку на хорошую по вашему мнению серию уроков PHP, ну или учебник какой то.
это у меня вставлено в контент: <? require("texts/".$_GET['page'].".html"); ?> когда я вписываю просто адресс сайта (без переменной) на странице выводится ошибка. функция require сообщает что файл не найден. самый простой и оптимальный вариант мне кажется это просто задать переменной page значение главной страницы перед функцией require |
|
|
c0ns0l3 |
6.5.2012, 19:36;
Ответить: c0ns0l3
Сообщение
#7
|
|
Можно воспользоваться условием простым...
Ладно, пойдем с самого начала. Переменные в РНР обозначаются через знак $ $someString = "some text"; $someInteget = 5; $someBoolean = true; и т.д. в твоем случаи... нужно сделать следующее. 1) проверить, есть ли переменная $_GET['page'] 2) если есть - то загрузить файл 3) если нету - загрузить какой-то файл который отвечает за главную страницу. 4) так же тебе нужно было бы сделать проверку на существование файла перед его загрузкой... чтобы не было ошибки 5) но можно и вызвать ф-цию require (та и любую) с ключем @ которая проигнорирует ошибку (но это не есть на самом деле хорошо) Итак пример... <?php /** * Имя файла, которое будет загружатсья, если нет переменной $_GET['page'] **/ $template_default = "home"; /** * Каталог темплейтов для инклуда **/ $template_dir = "templates/"; /** * Массив из разрешений файлов, которые будут искаться и загружаться **/ $template_extension = array(".htm",".html"); if(isset($_GET['page'])) { //если есть переменная foreach ($template_extension as $extension){ //перебираем массив расширений $file_include_path = $template_dir.$_GET['page'].$extension; //генерируем варианты файла с расширением if(file_exists($file_include_path) && !$included) { //если ФАЙЛ существует и НЕ$included $included = true; //задаем переменную $included как ДА require_once($file_include_path); //инклудим файло } } if(!$included) { //если после перебора и т.д. мы всетаки не проинклудили echo "404"; //кидаем 404 ошибку... } }else{ //если НЕ задана переменная $default_include_file = $template_dir.$template_default.".html"; //генерируем путь к стандартному файлу if(file_exists($default_include_file)){ //проверяем наличие файла require_once($default_include_file);//инклудим файл }else{ //если файла нету... опять кидаем 404 echo "404"; } } ?> По поводу уроков... Я несмотрел если честно.. _http://rutracker.org/forum/viewtopic.php?t=4013980 от Евгения Попова. Смотрел в свое время по JS и CSS.. неплохо объясняет... А вообще Google я на нем учился в свое время... |
|
|
Kolovrat_hb
|
Сообщение
#8
|
|
большое спасибо =) понял не все, пока что сделаю коротко (без страницы 404 и т.д.). потом когда времени будет больше поизучаю все более внимательно и разбирусь во всех функциях
P.S. я тоже всему по нэту учусь =) но пользуюсь яндексом но к сожалению не все ресурсы нахожу.... Сделал пока что так: <? if(isset($_GET['page'])) { require("texts/".$_GET['page'].".html"); } else { require("texts/glavnaya.html"); } ?> я толком не понял для чего вы делали проверки на формат и остальное. На первый взгляд по крайней мере мне это не надо. потому что все файлы создаются с одним и тем же форматом и редактируются мной, ну хотя в дальнейшем это не помешает. А страница 404 на мой взгляд не так важна по этому хочу сначала доделать то с чем запар =) а ее потом сделаю красиво и технично |
|
|
c0ns0l3 |
12.5.2012, 8:39;
Ответить: c0ns0l3
Сообщение
#9
|
|
|
[member=Kolovrat], я расписал большую часть синтаксиса для Вас которая может быть связано с подгрузкой файлов что бы Вы как-то могли ориентиорваться.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Нужно ли закрывать ненужные страницы тегом noindex, follow? | 8 | noviktamw | 2833 | 2.3.2024, 12:53 автор: toplinks |
|
Вытащить страницы из кэша Яндекса | 2 | VostrVL | 1913 | 11.1.2024, 23:07 автор: ЛаврионСергеевич |
|
RedBox - все нужные инструменты в одном месте | 0 | fantomofdarkness | 780 | 15.2.2023, 14:50 автор: fantomofdarkness |
|
Плагин для Wordpress. Вывод контента в зависимости от страны пользователя. | 8 | neuch | 2266 | 19.9.2022, 7:51 автор: neuch |
|
Нужно отрисовать шаблон сайта | 2 | karambas | 3577 | 6.7.2022, 20:27 автор: Freedo |
Текстовая версия | Сейчас: 28.3.2024, 16:13 |