Jump to content
  • 0

Средства отделения логической разметки страницы от действительной.


tolik89u
 Share

Question

Механизмы CSS разработаны, чтобы хранить сами страницы отдельно от стилей форматирования. Это логично. Сделано это, чтобы избежать избыточности, ведь на сайте сотни страниц могут быть отформатированы одними стилями, для которых нужен одинаковый код. Удобно хранить его в одном файле. Изменил файл — изменился весь сайт.

Но что делать, когда нужно, чтобы одинаковым было не только форматирование, но и другое. Не знаю, как это «другое» назвать, так что буду приводить примеры — сколько придумаю.

  • Одинаковый футер для всех страниц сайта.
    И/или хэдер (имею в виду, допустим, логотип фирмы, дополнительные ссылки там и так далее).
  • Или навигационную панель, скажем, слева…
    То есть, я хочу, чтобы код панели хранился в одном файле, а во всём сайте она отображалась.
  • Допустим, возле каждого большого заголовка добавление ссылки на якорь в этом же документе возле содержания:
    <h3> Глава 11. Как создать сайт. (К содержанию, Следующая глава, Предыдущая глава)
    Причём хочется не вручную прописывать эти ссылки, а чтобы они сами появлялись там, где появляется заголовок.
    То есть, я хочу в одном месте описать этот стиль заголовка, чтобы там указать, что возле него нужно ставить ссылки на якоря, а на всём сайте, где в странице появляется этот заголовок, чтобы ссылки появлялись автоматически.

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

Помогите! Что-то уже придумали для этого? Или нужно самому писать программу, которая будет создавать автоматически эти страницы-копии как текстовые файлы, беря нужную информацию из файлов-оригиналов?

Я думаю, эту проблему можно было бы решить, если бы был доступен механизм включения отдельных файлов как кусков кода в некоторую страницу. Например, если у фирмы есть логотип, то это одна картинка, и она везде вставляется с помощью <img src="...">. Но это работает только для картинок. Хорошо было бы вставлять и другие куски страниц: <kusok_koda src="panel_navigacii.html">.

Такой механизм есть?

Link to comment
Share on other sites

20 answers to this question

Recommended Posts

  • 0
Есть такой механизм и он называется шаблонизаторы. Впрочем, SSI тоже с задачей успешно справляется.

Как я понимаю, шаблонизаторы — программы, которые могут изменять html-файлы. А я говорю о средствах языка, которые могут быть задействованы в самом файле, чтобы код не пришлось менять.

То есть, шаблонизатор — программа, которая скопирует шапку моего сайта и вставит во все страницы, так? А мне нужно, чтобы в начале каждой страницы было написано что-то вроде:

<insert_code src="/header.html">

и браузер сам закачивал код хэдера из нужного файла, а не шаблонизатор добавлял его в код страницы.

Или я неправильно понял, что такое шаблонизатор?

Link to comment
Share on other sites

  • 0

Шаблонизатор это технология, которая является промежуточной между программой (PHP) и конечными файлами (HTML). Все это делается на стороне сервера, поэтому пользователь в любом случае получит результат в виде html-файла.

То что ты хочешь, это уже на стороне клиента. Браузер не умеет вставлять файлы один в другой, разве что через JS.

Link to comment
Share on other sites

  • 0
Шаблонизатор это технология, которая является промежуточной между программой (PHP) и конечными файлами (HTML). Все это делается на стороне сервера, поэтому пользователь в любом случае получит результат в виде html-файла.

То что ты хочешь, это уже на стороне клиента. Браузер не умеет вставлять файлы один в другой, разве что через JS.

То есть, шаблонизатор, подобно SSI, формирует итоговый HTML-файл каждый раз, когда сервер получает очередной клиентский запрос?

К примеру, на Вашем сайте все странички «Шаг за шагом» имеют одинаковую структуру: сверху header, снизу footer, по бокам ещё какие-то панели, а в середине — основной контент, каждый раз разный. Было бы логично контент хранить в разных файлах отдельно, а структуру страницы, шаблон, — отдельно от контента в одной странице. Как я понял, именно чтобы реализовать концепцию хранения контента отдельно от структуры (так, чтобы структура хранилась в единственном экземпляре, а не в каждой странице), и применяются шаблонизаторы, правильно?

Edited by tolik89u
Link to comment
Share on other sites

  • 0

Черт! Ну что опять за баталии пошли? Все кто мне отвечал вообще вдумывались в фразу:

Применяй лучше для этих целей PHP - хостинг очень дешево обойдется (PHP сейчас установлен везде, в отличие от той же Java)

?

И почему собственно после нее я именно так ответил? Читаем внимательно первоначальный вопрос и сравниваем этот ответ! :)

Link to comment
Share on other sites

  • 0

2 rus: ты дурачок чтоли? Я понятно написал "Java", а не "JavaScript". А без PHP (эт как минимум) ты нормально не сделаешь того, что хочет автор (представляешь, для того, чтобы просто ходить по страницам, надо держать включенным JavaScript, хуясе правда?).

Java может исполнятся как на стороне клиента, так и на сервере - http://ru.wikipedia.org/wiki/Java

Правда значительно чаще используется для создания клиентских приложений.

да вы что...

Edited by HatoL
Link to comment
Share on other sites

  • 0

2Hatol Для начала, давай обойдемся без оскорблений и перехода на личности?

Уже выяснили что автору поста нужно применить для его цели либо ssi, либо cms так?

То что нужен хостинго с поддержкой php 4 и выше - это понятно, ну а раз вопрос шел именно на эту тему, то при чем здесь java?

Вот я и подумал что ты имел ввиду javascript. Собственно и все и че из мухи слона раздувать?

Если хочешь чтоб нормально с тобой общались - контролируй свои эмоции, если хочешь мне конкретно что-то предъявить - я тебе даже свой адресок дам, приезжай перетрем! :)

Link to comment
Share on other sites

  • 0
2 rus: ты дурачок чтоли? Я понятно написал "Java", а не "JavaScript". А без PHP (эт как минимум) ты нормально не сделаешь того, что хочет автор (представляешь, для того, чтобы просто ходить по страницам, надо держать включенным JavaScript, хуясе правда?).

да вы что...

Да Вы хотя-бы примерно подсчитайте количество серверов поддерживающих Java и мобильных телефонов использующих Java-приложения. :)

Не оскорбляйте форумчан!

Link to comment
Share on other sites

  • 0
2Hatol Для начала, давай обойдемся без оскорблений и перехода на личности?

Уже выяснили что автору поста нужно применить для его цели либо ssi, либо cms так?

То что нужен хостинго с поддержкой php 4 и выше - это понятно, ну а раз вопрос шел именно на эту тему, то при чем здесь java?

Вот я и подумал что ты имел ввиду javascript. Собственно и все и че из мухи слона раздувать?

Если хочешь чтоб нормально с тобой общались - контролируй свои эмоции, если хочешь мне конкретно что-то предъявить - я тебе даже свой адресок дам, приезжай перетрем! :)

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

P.S. лол, "дурачок" - не оскорбление, если для тебя это оскорбление, то покидай интернет, сделаешь мир лучше.

Link to comment
Share on other sites

  • 0

Интерсно вообще о чё сыр-бор? (это не вопрос это повествования с такими эмоциями)

Тема одна, как ... и чем ... сделать.

Ответ был дан SSI, PHP, ASP кому начём удобно...

Да хоть на PYTHON, PERL, или COLD Fusion наконец ...

Цель и средства задана ... Выбирайте сами и ниго не слушайте, ежели конечно других вопросов нет :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy