Rambler's Top100

Теория двигателей 3: паровичок на STD-топливе.

31.12.2001
Новая статья в разделе "Язык": Ругайтесь правильно!

15.12.2001
Новая статья в разделе "Дизайн": Мощь SSI

13.11.2001
Новая статья в разделе "Дизайн": Теория двигателей-3

Во-первых, я хотел бы выразить свою благодарность и почтение Станиславу Жаркову из E-notes.ru (бывший Pro.Net.ru) за первые две статьи по теории двигателей, их можно найти на “ Е-нотах”. Именно он сподвиг меня на написание движка (engine) к сайту Жи-Ши и на написание этой статьи.

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

Задача: чтоб работал на любых тарифах и был простым.

Engine состоит из нескольких частей:
1. Собственно статья, которую надо добавить на сайт, поставить ссылку на нее в раздел, для которого она написана и в раздел “Новости”.
2. Скрипт на PERL, который производит перекодировку в HTML, пишет ссылки в разные файлы.
3. Файл раздела (некое подобие базы данных — файл в простом формате с “разделением полей”).

Таким образом, на сервер нужно переписать всего 2 файла: файл раздела (books.txt) и саму статью. К сожалению, этот прекрасный движок работает только на серверах с поддержкой PERL, SSI и прочих радостей жизни. Ну а если их нет, а на другой хостинг не хочется? Ручками до конца жизни все вносить? Да нет, есть выход.

Когда я в первый раз увидел текстовый файл (типа базы данных) одного из разделов “Енотов”, то мне в голову пришла Мысль: “Как все это похоже на STD — файл простых табличных данных!”. Тогда я и решил попробовать извернуться и попробовать вставить эту “БД” не через SSI или скрипт на PERL, а через хитрый элемент управления.

Кстати, вот так выглядит мой STD-файл:

no|date|file|name
4|10.11.2001|unclesam.html|Раскрутка у Дяди Сэма
3|15.10.2001|safecols.html|Безопасные цвета
2|13.10.2001|frames.html|Органайзер броузера (фреймы)
1|12.10.2001|tables.html|16 человек на сундук мертвеца

Думаю, понятны все значения: первое поле — порядковый номер, второй — дата написания, третий — имя файла в HTML, четвертый — само название. Вы мне скажете: это все хорошо, а как все вставить куда надо? Ответ: поскольку ссылки на статьи в рамках раздела идут в таблице, мы и будем вставлять таблицей.
Сначала всунем объект на страницу:

<object id='links' width=200 height=200
classid='CLSID:333C7BC4-460F-11D0-BC04-0080C7055A83'>
<param name='FieldDelim' Value='|'>
<param name='DataURL' Value='design.txt'>
<param name='UseHeader' Value='True'>
</object>

Поясню значение параметров: FieldDelim — разделитель, DataURL — имя вставляемого файла, UseHeader — есть у вас заголовки в базе данных или нет, обратите внимание на ID=“links”, это нам еще пригодится. Объект всунут, теперь надо и ссылочки вставить:

<table id=“data” datasrc=#links border=0 cellpadding=5>
<tr>
<td align=“left” valign=top>
<div datafld=“date”>Загружается...</div></td>
<td align=“left” valign=top>
<a datafld=“file”>
<div datafld=“name”>Загружается...</div></td>
</tr>
</table>

Как вы уже догадались, таблица содержит всего одну строку, в которой помещены ссылки и тэги <DIV>. Параметр включения DATASRC (в тэге таблицы) указывает на ID вставленного объекта, параметры DATAFLD — поля данных. Немного странно, что данные помещаются в тэги <DIV>, но это не слои, а просто поля с данными, если эти тэги окружить любыми другими (A, FONT, IMG, B, I и др.), то получаются данные, вставленные между этими тэгами и никаких слоев. В тэге линка параметр DATAFLD равен параметру href в обычной ссылке. К сожалению, вставлять STD-данные можно только в некоторые тэги, кроме вышеперечисленных — INPUT (из того, что я знаю).

Последняя фишка STD — в тэги слоев можно поместить все что угодно, и после загрузки основных данных это сменится на них. С моей точки зрения, создается впечатление Java-апплета...

Таким образом, без всяких CGI-скриптов и SSI мы получили наипростейший двигатель для сайта, который упростит вам его обновление и сэкономит время. Кстати, на что я буду тратить такую кучу времени?..

jishi.h1.ru/engine3.html

Автор и администратор сайта:
Александр Жешев,
jishi@fromru.com
Рейтинг@Mail.ru Rambler's Top100 Проект
дизайнерской группы
“Снег” neige@pisem.net