ЖЕМЧУЖНЫЙ САЙТ - cкриптинг на перле Леха ББ ака Alexys Спецвыпуск Xakep, номер #027, стр. 027-026-5 Обработка текста статей Для начала создай папку, где будут находиться тексты статей (например, папка arts). Если их много и у них есть свои тематики, то можно раскидать их по рубрикам, точнее по вложенным папкам. Картинки, прилагаемые к статьям, запихни в папку arts/screens. В верхней строке файла с текстом статьи на всякий случай оставь ее название - если потом кто-то найдет ошибку в статье, то ее придется исправить ручками, а с указанным вверху названием статьи ты наверняка не ошибешься с выбором файла. В местах, где идут картинки, укажи имя файла картинки и через ;; напиши к ней комментарий: library.gif;;Библиотеки разные бывают Это, конечно, утомительная работенка, но это лучше, чем писать полностью пути к картинкам: <img src="/screens/library.gif" border=0><br>Библиотеки разные бывают Немного ниже расскажу, как все обрабатывать. if ($input{'act'} eq "read") { $chart=$input{'art'}; # $input{'art'} - значение параметра art, который был передан скрипту из списка # это уже знакомо $artindfile=$homedir.'index.txt'; open(AA1, "$artindfile"); @ind=<AA1>; close(AA1); for ($q=0; $q<@ind; $q++) { chomp($ind[$q]); } ($date, $folder, $chname, $chauthor, $fname)=split(/;;/,$ind[$chart]); # присваивание переменным значений из выбранной строки индексного файла # $folder - имя папки (вложенной в arts), к которой относится статья # $chname - название выбранной статьи # $fname - имя файла выбранной статьи # $chauthor - автор статьи $artfolder=$homedir.$folder; # путь к папке с выбранной статьей $artfile=$artfolder.'/'.$fname.'.txt'; # путь к файлу с выбранной статьей open(AA2, "$artfile"); @arts=<AA2>; close(AA2); print "<center>\n"; print "<h1>$chname</h1>\n"; print "<div><b>Автор статьи</b>: $chauthor</div>\n"; print "<br></center>\n"; print "<div>\n"; for ($qw=0; $qw<@arts; $qw++) { chomp($arts[$qw]); # так как имена файлов картинок идут с расширением gif или jpg, находятся они на отдельных строках, а следом через ;; идет комментарий, то все подобное, что встретится в тексте статьи, будет преобразовано в тэги с подставленными путями к картинкам и комментариям к ним if (($arts[$qw]=~".gif;;") || ($arts[$qw]=~".jpg;;")) { ($imgname, $subscr) = split(/;/,$arts[$qw]); print "<center>\n"; print "<img src=$mydir\/arts/screens\/$imgname border=0 alt=\"$subscr \">\n"; print "<div style=\"font-size: 11px;\">"; print "$subscr"; print "</div>\n"; print "</center>\n"; $qw++; } print " $arts[$qw]\n<br>\n"; } print "</div>\n"; print "<br><center>\n"; print "<a class=\"a1\" href=\"$script\">Вернуться к списку статей</a>\n"; print "</center>\n"; } В результате имеем быстро генерящийся список статей с линками на них и сами статьи, которые весьма неплохо выглядят. Осталось только вниз страниц запихнуть дубль навигации. Это, конечно, прибавит веса html-страницам, которые выдаются в ответе, но разницу в килобайт, а то и еще меньше, мало кто заметит. А не прокручивать страницу наверх для перехода в другой раздел - это уже хоть какая-то забота о посетителях сайта. Тебе это теперь сделать легко, а другим приятно будет. Менюшка опять будет браться из файла navi.txt, как и верхняя. Но для внесения разнообразия можно немного поменять цвет фона меню. Для этого в свойствах таблицы просто укажи другой цвет. |