X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Шаблон в одном файле, а остальные подключать в зависимости от страницы
Kolovrat_hb
Kolovrat_hb
Topic Starter сообщение 13.4.2012, 18:12; Ответить: Kolovrat_hb
Сообщение #1


Ну по названию думаю суть понятна. Надо чтоб в одном файле определялось где находятся основные блоки, а остальное это сами страницы сайта в которых хранится информация о них (название страницы, содержимое и т.д.). через фреймы не пойдет, надо что бы адресс выглядел к примеру site-1488.ru/svastika(страница о свастике к примеру) site-1488.ru/glavnaya(главная к примеру), ну то есть что бы в адрессе страницы указывалось какой файл подключать, а с помощью фреймов на сколько я понял можно поключить определенную инфу к примеру по нажатию на ссылку.

почему я хочу так сделать? потому что когда я писал первый сайт мне пришлось делать по файлу для каждой страницы, и если я хотел изменить что то в расстановке мне приходилось это менять в каждом файле. надеюсь все понятно объяснил, если что переспрашивайте. заранее благодарен!
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
c0ns0l3
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
Kolovrat_hb
Topic Starter сообщение 2.5.2012, 23:50; Ответить: Kolovrat_hb
Сообщение #3


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

первые два предложения я с просонье не правильно написал :(

идея понятна! Именно это я и имел в виду!

P.S. простона юкозе давно еще спалил такие переменные в адресной строке, а как делать такое хз =)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Kolovrat_hb
Kolovrat_hb
Topic Starter сообщение 3.5.2012, 0:31; Ответить: Kolovrat_hb
Сообщение #4


Большое спасибо =) со всем разобрался =) все реально удобно и просто в использовании =) всего одну строчку вставить в код и больше ни че извенять не надо просто создавать новые файлики и все =) вообще классно =)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
c0ns0l3
c0ns0l3
сообщение 3.5.2012, 22:10; Ответить: c0ns0l3
Сообщение #5


Передавать переменные в РНР можно 2мя способами.
1) GET - ты его уже знаешь, это по факту открытые переменные которые идут в адрессной строке.
2) POST - это уже скрытые переменные, их небудет видно в адрессной строке, и по факту - можно простым способом передавать их только через форму
<form action="index.php" method="post">
<form action="index.php" method="get">


В зависимости от того, как настроен РНР, к ним обращаться можно или сразу же $foo, но правильней будет обращаться к ним через глобальный массив переменных РНР $_GET и $_POST соответветственно (т.к. на некоторых хостингах глобальное пространство переменных может быть отключено). Поэтому соответственно будет $_GET['foo'] или $_POST['foo']
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Kolovrat_hb
Kolovrat_hb
Topic Starter сообщение 6.5.2012, 15:36; Ответить: Kolovrat_hb
Сообщение #6


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

это у меня вставлено в контент:
<?
require("texts/".$_GET['page'].".html");
?>


когда я вписываю просто адресс сайта (без переменной) на странице выводится ошибка. функция require сообщает что файл не найден. самый простой и оптимальный вариант мне кажется это просто задать переменной page значение главной страницы перед функцией require
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
c0ns0l3
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 :D я на нем учился в свое время...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Kolovrat_hb
Kolovrat_hb
Topic Starter сообщение 11.5.2012, 19:56; Ответить: Kolovrat_hb
Сообщение #8


большое спасибо =) понял не все, пока что сделаю коротко (без страницы 404 и т.д.). потом когда времени будет больше поизучаю все более внимательно и разбирусь во всех функциях

P.S. я тоже всему по нэту учусь =) но пользуюсь яндексом :D но к сожалению не все ресурсы нахожу....

Сделал пока что так:
<?
if(isset($_GET['page']))
{
require("texts/".$_GET['page'].".html");
}
else
{
require("texts/glavnaya.html");
}
?>


я толком не понял для чего вы делали проверки на формат и остальное. На первый взгляд по крайней мере мне это не надо. потому что все файлы создаются с одним и тем же форматом и редактируются мной, ну хотя в дальнейшем это не помешает. А страница 404 на мой взгляд не так важна по этому хочу сначала доделать то с чем запар =) а ее потом сделаю красиво и технично ;)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
c0ns0l3
c0ns0l3
сообщение 12.5.2012, 8:39; Ответить: c0ns0l3
Сообщение #9


[member=Kolovrat], я расписал большую часть синтаксиса для Вас которая может быть связано с подгрузкой файлов что бы Вы как-то могли ориентиорваться.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Нужно ли закрывать ненужные страницы тегом noindex, follow?
8 noviktamw 2805 2.3.2024, 12:53
автор: toplinks
Открытая тема (нет новых ответов) Вытащить страницы из кэша Яндекса
2 VostrVL 1894 11.1.2024, 23:07
автор: ЛаврионСергеевич
Открытая тема (нет новых ответов) Подскажите как можно сравнить по контенту 2 страницы сайта?
1 noviktamw 854 14.12.2023, 17:38
автор: malamut
Открытая тема (нет новых ответов) RedBox - все нужные инструменты в одном месте
0 fantomofdarkness 764 15.2.2023, 14:50
автор: fantomofdarkness
Открытая тема (нет новых ответов) Плагин для Wordpress. Вывод контента в зависимости от страны пользователя.
8 neuch 2255 19.9.2022, 7:51
автор: neuch


 



RSS Текстовая версия Сейчас: 19.3.2024, 12:27
Дизайн