Jump to content
  • 0

SSI при верстке shtml документов


DMGaster
 Share

Question

Здраствуйте, недавно, при прочтении одной из статей посвящ?нной использованию SSI на citforum.ru, я решил использовать некоторые его элементы в сво?м проекте. Собственно эта темя является продолжение вот этой темы.

Так как я не могу найти ту самую статью, то приведу код и основную идею.

Идея заключается в том, что создаются несколько html файлов в которых прописываются некоторые переменые с помощью условий ( #expr var="" #echo var="" ), а в результирующем файле задаются значения этим переменным. Вот код:

[b]_head.html[/b]

<html><head>
<title>Web Club Repository. <!--#echo var="TITLE" --></title>
<meta http-equiv="Content-Type" content="text/html">
<meta http-equiv="author" content="Andrey G. Novikov + Andrew Yourtchenko">
<meta http-equiv="distribution" content="global">
<meta http-equiv="resource-type" content="document">
<meta name="keywords" content="WebClub, <!--#echo var="KEYWORDS" -->">
<meta name="description" content="WebClub. Кладовая. <!--#echo var="DESCRIPTION" -->">
<link rel="stylesheet" type="text/css" href="/webclub2.css">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000A8" vlink="#000040" alink="#FF0000">
<h1 align="center"><font color="#CCCCCC"><h></font>КЛАДОВАЯ<font color="#CCCCCC"></h></font>

<img src="/images/bar.gif" width=587 height=19 border=0></h1>
<h2 align="center"><!--#echo var="TITLE" --></h2>

[b]_item.html[/b]

<table cellspacing=0 cellpadding=3 border=0 width="100%"><tr><td bgcolor="#CCCCFF">
<b><!--#echo var="I_TITLE" --></b>
</td></tr></table>
<!--#if expr="$I_PIC" -->


<table cellspacing=1 cellpadding=3 border=1 align="right" bgcolor="#CCCCFF">
<tr><td align="center" valign="middle">
<img src="<!--#echo var="I_PIC" -->" width="<!--#echo var="I_PIC_W" -->"
height="<!--#echo var="I_PIC_H" -->" border=0>
</td></tr></table>
<!--#endif -->
<p>
<!--#if expr="$I_SITE" -->
<b>Узел поддержки</b>:<a href="<!--#echo var="I_SITE" -->"><!--#echo var="I_SITE" --></a>

<!--#endif -->

<!--#if expr="$I_PAGE" -->
<b>Домашняя страница</b>:<a href="<!--#echo var="I_PAGE" -->"><!--#echo var="I_PAGE" --></a>

<!--#endif -->

<!--#if expr="$I_ARCHIVE" -->
<b>Она сама</b>:<a href="<!--#echo var="I_ARCHIVE" -->"><!--#echo var="I_ARCHIVE" --></a>

<!--#endif -->

<!--#if expr="$I_LOCALARCHIVE" -->
<b>Она сама у нас</b>: <a href="<!--#echo var="I_LOCALARCHIVE" -->"><!--#echo var="I_LOCALARCHIVE" --></a>

<!--#endif -->

<!--#if expr="$I_PLATFORM" -->
<b>Платформа</b>: <!--#echo var="I_PLATFORM" -->

<!--#endif -->
<!--#if expr="$I_STATUS" -->
<b>Статус</b>: <!--#echo var="I_STATUS" -->

<!--#endif -->
</p>
<p align="justify">
<!--#if expr="$I_DESCRIPTION" -->
<!--#echo var="I_DESCRIPTION" -->
<!--#else -->
No description.
<!--#endif -->
</p>
<br clear="right">


[b]_foot.html[/b]

</body>
</html>

[b]index.shtml[/b]

<!--#set var="TITLE" value="HTML редакторы и утилиты" -->
<!--#set var="KEYWORDS" value="HTML,editor,редактор,утилита,utilities,freeware,shareware,free" -->
<!--#set var="DESCRIPTION" value="HTML редакторы и утилиты" -->
<!--#include virtual="_head.html" -->
<!--#set var="I_TITLE" value="Prime Style 1.2" -->
<!--#set var="I_RATING" value="1" -->
<!--#set var="I_PIC" value="ps.gif" -->
<!--#set var="I_PIC_W" value="300" -->
<!--#set var="I_PIC_H" value="225" -->
<!--#set var="I_SITE" value="" -->
<!--#set var="I_PAGE" value="http://www.northnet.com.au/~hardy/prime/" -->
<!--#set var="I_ARCHIVE" value="" -->
<!--#set var="I_LOCALARCHIVE" value="" -->
<!--#set var="I_PLATFORM" value="Windows 95/NT" -->
<!--#set var="I_STATUS" value="Free" -->
<!--#set var="I_DESCRIPTION" value="Простой и наглядный редактор каскадных
стилей. Простой и понятный интерфейс." -->
<!--#include virtual="_item.html" -->
<!--#set var="I_TITLE" value="Web-O-Rama v.4.00" -->
<!--#set var="I_RATING" value="" -->
<!--#set var="I_PIC" value="weborama.gif" -->
<!--#set var="I_PIC_W" value="300" -->
<!--#set var="I_PIC_H" value="225" -->
<!--#set var="I_SITE" value="" -->
<!--#set var="I_PAGE" value="" -->
<!--#set var="I_ARCHIVE" value="" -->
<!--#set var="I_LOCALARCHIVE" value="" -->
<!--#set var="I_PLATFORM" value="Windows 95/NT" -->
<!--#set var="I_STATUS" value="Free" -->
<!--#set var="I_DESCRIPTION" value="Весьма удобный интерфейс, возможность
внешнего просмотра файлов через браузер, открывает сразу много файлов.
Есть встроенный индикатор контроля системных ресурсов." -->
<!--#include virtual="_item.html" -->
<!--#set var="I_TITLE" value="HTML Font Colorizer" -->
<!--#set var="I_RATING" value="3" -->
<!--#set var="I_PIC" value="" -->
<!--#set var="I_PIC_W" value="100" -->
<!--#set var="I_PIC_H" value="100" -->
<!--#set var="I_SITE" value="" -->
<!--#set var="I_PAGE" value="http://home1.inet.tele.dk/theill/hfc.htm" -->
<!--#set var="I_ARCHIVE" value="" -->
<!--#set var="I_LOCALARCHIVE" value="" -->
<!--#set var="I_PLATFORM" value="Windows 95/NT" -->
<!--#set var="I_STATUS" value="Freeware" -->
<!--#set var="I_DESCRIPTION" value="Эта великолепная утилита, котороя
позволит вам создать цветовое перетекание в тексте любым цветом. Достаточно
нажать несколько кнопок." -->
<!--#include virtual="_item.html" -->
<!--#include virtual="_foot.html" -->

Я попытался применить подобную конструкцию к своей страничке.

[b]head.html[/b]

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Союз Художников России <!--#echo var="TITLE" --></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta name="description" content="Обзорные статьи о СХР <!--#echo var="DESCRIPTION" -->">
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>

[b]content.html[/b]

<table width="700" border="0" cellspacing="1" cellpadding="0" bgcolor="#5F604B" height="100%" align="center">

<!--#if expr var="$I_HEAD" -->
<tr>
<td valign="top" height="100"><table width="700" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" valign="top" height="100" bgcolor="#FFFFFF"><a href="/index.shtml" title="На титульную страницу"><img name="<!--#echo var="I_HEAD" -->" src="" width="700" border="0" height="100" alt="Будущий логотип/заголовок" style="background-color: #000" ></a></td>
</tr>
</table></td>
</tr>
<!--#endif -->

<!--#if expr var="$I_MENU" -->
<tr>
<td valign="top">
<table width="700" border="0" cellspacing="5" cellpadding="0" align="center" height="100%" bgcolor="#BDBCAF">
<tr>
<td width="<!--#echo var="I_MENU" -->" valign="top" rowspan="2">

<table width="100%" border="0" cellspacing="1" cellpadding="1" bgcolor="#5F604B">
<tr>
<td class="nav"><a href="/articles/articles.shtml">Статьи</a></td>
</tr>
<tr>
<td class="nav"><a href="/fotoalbum/album.shtml">Галерея</a></td>
</tr>
<tr>
<td class="nav">Энциклопедия</td>
</tr>
<tr>
<td class="nav"><a href="/fotoalbum/chronicle.shtml">Фотохроника</a></td>
</tr>
<tr>
<td class="nav"><a href="/contacts/contacts.shtml">Контакты</a></td>
</tr>
</table></td>
<!--#endif -->

<!--#if expr var="$I_CONTENT" -->
<td valign="top"><table width="100%" border="0" cellspacing="1" cellpadding="4" height="100%" bgcolor="#5F604B">
<tr>
<td valign="bottom" bgcolor="#D3D2C4" class="text_article"><div id="<!--#echo var="I_CONTENT" -->"></div></td>
</tr>
<tr>
<td bgcolor="#D3D2C4" class="text_article">Статья вторая</td>
</tr>
<tr>
<td bgcolor="#D3D2C4" class="text_article">Статья третья</td>
</tr>
<tr>
<td bgcolor="#D3D2C4" class="text_article">Статья четв?ртая</td>
</tr>
<tr>
<td bgcolor="#D3D2C4" class="text_article">Статья пятая</td>
</tr>
<tr>
<td bgcolor="#D3D2C4" class="text_article">Статья шестая</td>
</tr>
<tr>
<td bgcolor="#D3D2C4" class="text_article">Статья седьмая</td>
</tr>
</table></td>

</tr>
</table></td>
</tr>
<!--#endif -->
<!--#if expr var="$I_FOOT" -->
<tr><td align="center" valign="bottom" height="10">
<table width="100%" border="0" cellspacing="1" cellpadding="2" bgcolor="#D3D2C4">
<tr>
<td align="center" valign="bottom" bgcolor="#5F604B" class="copyright">Powered
by Union Artists of Russia

Copyright ©<!--#echo var="I_FOOT" --></td>
</tr>
</table></td></tr><!--#endif -->
</table>

[b]basement.html[/b]

</body>
</html>

index.shtml

<!--#set var="TITLE" value="Статьи о СХР" -->
<!--#set var="DESCRIPTION" value="Статьи о жизни Новосибирского регионального отделения СХР" -->

<!--#include virtual="/ssi/head.html" -->

<!--#set var="I_HEAD" value="logo" -->
<!--#set var="I_MENU" value="130" -->
<!--#set var="I_CONTENT" value="text" -->
<!--#set var="I_FOOT" value="2007" -->

<!--#include virtual="/ssi/content.html" -->

<!--#include virtual="/ssi/basement.html" -->

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

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Ага только сейчас врубился! Приеду домой попробую, может получится. Т.о. получается, что:

объявление переменной+условие

вывод переменной

присвоение переменной какого-либо значения

Link to comment
Share on other sites

  • 0

Здраствуйте, есть ещ? один вопрос.

Значит, захотел я разделить оформление от содержания. И загнал вс? оформление в ssi

есть файлы header.ntml и footer.html - в них описаны начало и конец страницы.

файл text_article.html описывает содержимое так:

<td valign="top"><table width="100%" border="0" cellspacing="1" cellpadding="4" bgcolor="#5F604B">
<tr>
<td valign="top" bgcolor="#D3D2C4"><div class="text_article" id="text"><!--#echo var="text" --></div></td>
</tr>
</table></td>

И в конечном файле:

<!--#set var="title" value="Статьи." -->
<!--#include virtual="/ssi/header.html" -->
<!--#set var="text" value="<!--#include virtual="/articles/1/birthday.html" -->" -->
<!--#include virtual="/ssi/text_article.html" -->
<!--#include virtual="/ssi/footer.html" -->

Я объявляю значение переменной text, как

в файле birthday.html соответственно находится вс? содержимое. Так вот это не работает - выводится только header.html, дальше вс? просто повисает. Опытным пут?м было выяснено, что если в значении переменной встречаются теги (любые) то она отказывается выводиться.

Подскажите что же делать в этом случае и как заставить этот способ работать.

Link to comment
Share on other sites

  • 0

И не будет работать ибо полная безсмыслица.

<!--#set var="title" value="Статьи." -->
<!--#include virtual="/ssi/header.html" -->
<!--#include virtual="/articles/1/birthday.html" -->
<!--#include virtual="/ssi/text_article.html" -->
<!--#include virtual="/ssi/footer.html" -->

Вы не можете переменной text передать содержимое файла /articles/1/birthday.html, либо сразу делайте include virtual, либо юзайте php, asp, perl и ещ? бзч

p.s. складывается впечатление что в школе вы не англизкий учили ...

Link to comment
Share on other sites

  • 0
Так вот это не работает - выводится только header.html, дальше вс? просто повисает. Опытным пут?м было выяснено, что если в значении переменной встречаются теги (любые) то она отказывается выводиться.

Подскажите что же делать в этом случае и как заставить этот способ работать.

Во-первых: внутри =" " вы не можете использовать " - сразу выдаст ошибку у обработчика

ну и

Во-вторых: соответственно вот эти <> - это не обязательно теги но и кавычки и треуголный скобочки являються служебными символами.

Link to comment
Share on other sites

  • 0

Evgeny

p.s. складывается впечатление что в школе вы не англизкий учили ...

С какой это стати?

:) кстати правильно пишется английский :)

По остальному вс? в принципе и так понятно, буду использовать php...

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