Личный опыт подгонки скрипта к дизайну сайтаНа каком-то этапе процесса освоения мной методов разработки вебсайтов я понял необходимость использования некиех шаблонов, благо мой хостинг провайдер разрешал SSI, для удобного внесения корректив в дизайн. От фреймов я давно отказался. Представьте себе, что Вам нужно добавить новый пункт в главное меню, присутствующее на каждой странице. А сайт скажем из 20 страниц. Вы поменяли все 20, выложили на сервер, посмотрели и поняли, что этот пункт меню надо выделить другим цветом. Уф. Я стал делить страницы на состовляющие. Получалось примерно следующее
Это решило мои проблемы, пока на сайте у меня не очутилось множество бесплатных скриптов различных разработчиков, которые либо вообще не преусматривали запуск скрипта через SSI, либо только часть только отдельные функции скрипта можно было запускать в SSI. Каждый из них приходилось отдельно подгонять к дизайну. При всей своей неискушенности в программировании, я таки научился это делать, но при этом в каждый скрипт, совершающий вывод на экран мне приходилось вставлять html-код трех файлов (header.txt, menu.txt, footer.txt). Типичный пример - гостевая книга. Запускается непосредственным вызовом скрипта: //www.your_server.ru/cgi-bin/gb/gb.cgi Создаете файл "guestbook.html", например, в той же директории, где у Вас index.html.
В скрипте Вам необходимо вычистить все попытки генерирования html документа, напрямую не относящиеся к самой гостевой книге. Т.е. то что обычно бывает в верхней части html-документа <body> и нижней (то, что у Вас в файлах header.txt, menu.txt, footer.txt) В самом скрипте необходимо URL скрипта (т.е. "//www.your_server.ru/cgi-bin/gb/gb.cgi" или "/cgi-bin/gb/gb.cgi") заменить на URL созданного Вами html-документа (т.е "//www.your_server.ru/guestbook.html" или просто "/guestbook.html"). Т.е. при построении формы для ввода сообщений данные должны передаваться не gb.cgi (<form action="//www.your_server.ru/cgi-bin/gb/gb.cgi" method=POST>) а html-документу (<form action="//www.your_server.ru/guestbook.html" method=POST>) В свою очередь guestbook.html передаст уже в gb.cgi данные, считанные при помощи переменной SSI ${QUERY_STRING}. Однако это может не сработать если gb.cgi при считывании данных обрабатывает только переменную $ENV{'CONTENT_LENGTH'}. В самом распространенном варианте это выглядит и исправляется так:
Кто знает варианты лучше и проще, или обнаружил, что я ошибся в чем-то - пишите. |