О себе
Вы можете связаться со мной, зайдя в раздел Обратная связь
Что делаю?
Пишу
- Textpattern: больше чем просто блог
- На связи у Skype
Когда размер не имеет значения
Честно говоря, тема обзора различных CMS довольно скучна: в большинстве, у всех движков однотипная установка, а настройка через администраторский интерфейс не дает возможности «развернуться». Поэтому мне захотелось найти «джентльменский набор», в который включен только необходимый минимум для управления сайтом. Движок должен быть компактным и желательно … слегка не доведенным до лада, что ли. На мой взгляд, такой системой в итоге можно будет удобнее всего управлять, не отвлекаясь на мелочи, и, во-вторых, ее реально привести в порядок и сделать интересной в плане дизайна (то, что более чем на 50% привлекает посетителя).
В результате непродолжительного поиска в Интернете я смог «выловить» две разработки: Snews и Textpattern. Обе замечательно поддаются модификации, как выявилось позже, и все же TXP придется оставить в стороне – это совсем «не из той оперы». А вот Snews – как раз то, что нужно. Это, к слову, совсем не популярный движок, я даже не помню, по какой ссылке его скачал, только не на офсайте. Размер Snews не превышает 30 Kb (в архиве, а в распаковке – 120 Kb), для CMS-скрипта размер очень маленький. Распространяется движок по лицензии Creative Commons и, таким образом, он бесплатен и делать мы с ним можем все, что душа пожелает.
При ближайшем рассмотрении
Итак, скрипт скачан, что дальше? Ознакомимся со списком возможностей, чтобы понять, с чем мы вообще имеем дело. Перечисленный «фичи» стандартны для небольшого движка, но некоторые встро-енные функции все же выделю:
Что касается системных требований, то они типичны: Apache с модулем mod_rewrite, PHP 4.3.x и MySQL. В базе данных будут храниться без малого пять таб-лиц, из пяти же файлов состоит сам Snews. В readme.HTML – инструкция по уста-новке. Она, установка, трехшаговая: выполнение SQL запроса (подробности в readme), редактирование snews.php и закачка файлов на сервер с назначением прав доступа «777». Главный файл snews.php, по сути, и есть движок. В начале его содержания прописана секция DATABASE VARIABLES – ее следует подкорректиро-вать. Не забудьте о параметре $db[‘website’]! Логин/пароль для входа в админку будут «test/test» соответственно :).
На заглавной странице сайта нас встречает надпись «Content not found», что не столь важно. Первым делом зайдите в настройки (путь ‘Snews’/settings/), по ходу решив несложную арифметическую задачу, и поменяйте эти test/test на что-нибудь более безопасное. Затем скорректируйте остальные настройки, но тут вы разберетесь и сами.
Шкурный вопрос, или использование XHTML шаблонов
Согласитесь, интерфейс Snews слишком минималистский – по крайней мере, хоро-ших эмоций не вызывает. Но это не беда – разработчики предусмотрели в движке поддержку шаблонов. Достоинство (а может и недостаток – смотря как подойти) Snews в том, что он работает не на сравнительно громоздком Smarty (к примеру), а собственно на XHTML (eXtensible HyperText Markup Language – расширенный язык разметки гипертекста). Я уже упоминал функцию Template Independency – хороша она тем, что интеграция с шаблонами благодаря ей стала предельно простой. Полагаю, что базовые знания HTML/CSS у вас имеются? Тогда приступим к практике, и вы во всем убедитесь сами.
В readme.HTML для реализации наших целей ничего полезного не найдете при всем желании, зато на сайте лежит руководство «News Tips and Tricks». В дальнейшем оно вам и нам очень поможет.
Я не упоминал, что в Snews входит файл index.php – это разметка нашего сайта. От-крыв для наглядности index.php в HTML-редакторе (я использую Adobe Dreamweaver, чего и вам советую), помимо разметки, вы обнаружите помеченные прямоугольниками php-вставки. Так вот, эти вставки и есть функции. Они как раз и описываются в «News Tips and Tricks» с пояснениями. Функций не так уж и много, по ходу мы рассмотрим их поподробнее.
Сайтов, где можно раздобыть HTML-шаблоны – бесчисленное множество. Если у вас есть что-нибудь от Templatemonster.com, так вообще отлично ;). Что касается меня, то я взял бесплатный HTML-шаблон под названием Modern World. Смотрится он приятно, да и размер небольшой (20 Kb). Далее по тексту подразумевается, что и вы его скачали :).
А сейчас приступаем к практике.
Скопируем содержимое архива папку с Snews и переименуем index.HTML в index.php (с заменой старого файла). Предварительно до этого момента я создал несколько публикаций, чтобы затем проконтролировать, как выводится содержание на заглавную страницу. Очень важно к index.php прикрепить CSS-файл style.CSS из папки images/. Для этого проверяем и исправляем соответствующую строку в index.php. Я использовал абсолютный путь к style.CSS – так надежнее.
Если на странице появились все изображения, значит адрес стилевого файла указан правильно. Нет – значит нет, и проблема очевидна. Старый style.CSS в директории Snews можно удалять, так как он больше не понадобится.
Одной из самых важных функций, без которой не работает корректно, в частности, админ-панель, является
Поэтому вписываем ее где-то вначале нашего индексного файла.
Переменная website_title отвечает за название сайта. Чтобы оное отображалось в логотипе, находим в index.php строку
и заменяем ее на
Это же название мы выведем в заголовок окна:
Сейчас попробуем вывести на заглавную страницу контент, точнее, первые несколько статей. Выделяем и удаляем все от
до
Тэги <p> и </p> оставляем: сюда мы вписываем код
Далее обратим внимание на боковую колонку. Что в ее можно вместить: список новых статей? Нет, не это очень экономно. Ведь у нас уже есть раздел «Новые публикации», а, во-вторых, в Snews предусмотрена карта сайта. Лучше поместим сюда список категорий, комментарии, ссылки и поиск (blogroll) – как в блоге, да и не только в нем.
Поисковую строку, на мой взгляд, правильнее расположить сверху, на виду у посетителя (признак хорошего тона):
Внедрение списка категорий в боковую панель:
Пишем
, а в <p> и </p> заключаем
, где 5 – количество комментариев, 30 – количество символов на строку. Кстати, желательно написать пару комментариев ДО этого – чтобы проверить, как они будут «смотреться».
Приведем в порядок навигацию. В нашем понятии навигация – это несколько ссылок. Сверху страницы мы видим поле со ссылками Home, Modern world, Behind the idea, Join the movement и Contact. Если заглянуть в код, то в соответствующем порядке несложно обнаружить <a href="#">Home</a> и далее по списку. Вместо “#” выставим адрес, абсолютный либо относительный (относительно корня сайта (!), а не главной страницы). Разделов, к которым можно указать пути, не так уж и много:
Вот пример моего списка:
Перечень всех разделов находится в snews.php после комментария #SITE LANGUAGE VARIABLES, в #categories.
Структуру сайта завершает «подвал» (footer). Вся его информативность – копирайты, год, автор и т. д. Сюда же я вынес ссылку для входа на сайт (админу – панель администрирования).
Начало уже есть :).
Каскадные трюки, или Special Styling
В недрах Snews (папка images) лежит стилевой файл style.CSS, который мы привязали к index.php и который мы сейчас подвергнем правке. Знакомы или незнакомы вы с каскадными стилями – не столь важно. Скоро поймете сами, и безо всяких справочников, для чего нам это нужно.
Редактировать CSS-код удобно в программе Adobe Dreamweaver в режиме “Split” – с предосмотром и изменением в «реальном времени». Вот примеры из моего style.CSS:
Впрочем, о вкусах не спорят: в Интернете несложно найти и «»препарировать» приглянувшийся CSS стиль. Главное сильно не увлекаться, т. к. размер >10 Kb уже заставляет задуматься…
Прикручиваем WYSIWYG
Форматировать текст при наборе в Snews станет гораздо удобнее, если интегрировать в его какой-нибудь wysiwyg-редактор. В качестве примера возьмем TinyMCE. Скачав, распакуйте архив в любую директорию на сайте. Затем в файл движка index.php в контейнер <head> впишите следующее:
Особое внимание обратите на путь к tiny_mce.js – он должен быть правильным, поскольку этот файл инициализирует TinyMCE. Следующее, что нужно сделать – найти и удалить в snews.php строки, начинающиеся с echo HTML_input(‘button’ (секция ARTICLES FORM). Этим действием мы убрали стандартные кнопки редактирования. Вот и все, теперь материал можно создавать через wysiwyg.
Сам себе локализатор
Эту идею реализовал в своей модификации Snews некий Shiaprogrammer. Ничего сверхоригинального он не сделал – просто вынес строки, касающиеся локализации, из snews.php в отдельный rus-lang.php. Тем самым использовал функции движка External language file support и Easy external files inclusion (впрочем, последняя – функция PHP в целом). Просто и удобно. А идея такова:
1) В snews.php в самом начале содержания вставляем строку
2) Из этого же файла вырезаем строки от // LANGUAGE VARIABLES до …#SYSTEM VARIABLES и вставляем их в rus-lang.php.
3) В начало rus-lang.php впишем <?php, в конец – ?>
… и начинаем самостоятельно (ну, или с помощью словаря :) переводить значение каждой переменной, не забывая о кодировке (должна совпадать с кодировкой index.php). Если лень заниматься переводом, скачайте Snews Shiaprogrammer’а и скопируйте rus-lang.php себе (никакой лицензии я не нашел – значит, копировать не запрещено :).
Закручиваем гайки
К моменту публикации сайта все кажется почти идеальным. Но, поверьте, любая ошибка так или иначе всплывет на поверхность, если ее не предупредить. Поэтому, прежде чем предъявить свое «чудо» широкой общественности, обязательно протестируйте его. Как это сделать? Проверьте, правильно ли отображается содержание сайта во всех браузерах («всех» – это, прежде всего, Firefox, Opera, IExplorer) в различных разрешениях, начиная от 800×600. Немаловажно, чтобы весь HTML- и CSS-код соответствовал стандартам. Эти стандарты вполне конкретны, и их устанавливает организация The World Wide Web Consortium. На сайте этой организации доступны валидаторы – специальные программы для проверки правильности кода. Ими я и рекомендую воспользоваться. Как вариант – встроенный в Dreamweaver валидатор, коим я предпочитаю искать ошибки.
***
Набор инструментов (где скачать Trial-версии программ):
Adobe Dreamweaver CS 3 – www.adobe.com/go/downloads/
GridinSoft Notepad – http://gridinsoft.com
Ссылки:
www.solucija.com/forum/ – официальный форум Snews
www.snews-cms.life89.ru – русская модифицированная версия Snews от Shiaprogrammer’а
http://validator.w3.org – валидатор HTML
http://jigsaw.w3.org/CSS-validator – валидатор CSS