sNews — крихітна система управління сайтом
Липень 31, 2010 Автор: adminМабуть, читаючи записи з цього блоґу, ви помітили мою «слабість» до простеньких CMS. Ні, я не проти використання систем Joomla, Drupal, WordPress і т.д. На свій захист можу навести даний блоґ, що успішно працює на WordPress’і. Просто я прихильник «розумного» використання програмного забезпечення: функціоналу має бути в міру і додаткові функції мають бути лише ті, які дійсно потрібні. Тому, коли потрапляє до рук CMS’ка типу «мал, да удал», при нагоді завжди пробую знахідку «на зуб». Благо, знань і досвіду «поколупатися» в коді вистачає.
Про систему керування сайтом sNews я дізнався із зарубіжних блоґів, на яких не раз зустрічав схвальні відгуки про неї.
Дозволю собі позбавити вас від необхідності читати перекладений з офіційного сайту на українську мову опис системи, а зупинюсь лише на деяких моментах, з якими я зіштовхнувся в процесі використання sNews на практиці. Тим паче, сам опис ви можете знайти в одній із моїх статей.
Але для початку короткі тези про sNews, які вважаю вартими вашої уваги.
Особливості sNews
- 100%-ва гарантія того, що ваш сайт, з мінімальними витратами на хостинг, буде доступний практично завжди (навіть тоді, коли навантаження на сервер вашого хостера пікове).
- Ядро системи складається з одного файлу «snews.php» розміром біля 100 Кб. Код відносно простий, тому його можна легко допрацьовувати й змінювати навіть початківцям не вникаючи в складну логіку (мова звісно йде про PHP-програмістів).
- Інтегрувати готовий шаблон (XHTML+CSS) в sNews надзвичайно легко. Все оформлення закладено в єдиний файл «index.php», а в тих місцях, де повинен формуватися динамічний контент, ставляться спеціальні теґи, що представляють собою невеличкий код PHP.
Наприклад, щоб вивести на сторінці список категорій, необхідно у потрібному місці вашого шаблону вставити наступний код:
<?php categories(); ?>
Всі «теґи шаблону» (а їх там не так багато) є в шаблоні за замовчування, вам достатньо скористатися ними по аналогії. Або можна ознайомитися з коротенькою статтею «Теги шаблона CMS sNews» (рос).
- Структура сайту формується за допомогою категорій, сторінок, статей і додаткового вмісту.
- Система доволі грамотно оптимізована під пошукові системи («чисті URL», формування заголовків і т.д.).
- CMS sNews дозволяє також виконувати завантаження файлів на сервер, переглянути завантажені файли чи видалити непотрібні.
- Інтерфейс системи вже перекладений на українську і російську мови. Є також російськомовний форум, присвячений цій CMS — http://snewscms.su/forum/.
- sNews дозволяє «причепити» на веб-сайті мапу сайту та архів статей, є форма для зворотного зв’язку та простенький пошук.
Зауваження! Я все ж не берусь рекомендувати вам цю CMS, якщо ви ніколи до цього не встановлювати подібне програмне забезпечення. Чудес не буває, якісь базові знання та вміння все ж мусять бути, щоб впоратися з цією крихіткою.
sNews v1.7 з незначними виправленнями (кому цікаво, про них можна почитати нижче) вже використовується мною на сайті http://goodcoffee.org.ua/. Ось, вам і демонстраційний приклад роботи цієї системи.
Ну, і на останок трохи «роботи з напильником», а для тих, кого не цікавить порпання в коді, внизу є посилання на кінцевий варіант.
Мої виправлення в sNews 1.7
- Прибрав зайві слеші, які появляються лише, якщо sNews встановлювати на сервері під керування ОС Windows.
Коли це можливо? Наприклад, коли ви з метою тестування і відлагодження сайту інсталюєте цю CMS на «Денвері» в себе на локальному комп’ютері (що я першим ділом і робив).
Як я це виправив? Трохи модифікував функцію site() з файлу «snews.php», яка генерує URL сайту, і вона набула вигляду:
function site() { $host = 'http://'.$_SERVER['HTTP_HOST']; $directory = dirname($_SERVER['SCRIPT_NAME']); if ($directory == "/" || $directory == "\\" ) { $website = $host.'/'; } else { $website = $host.$directory.'/'; } return $website; } - Доробив правильну генерацію «чистих URL»: за замовчуванням sNews недобре транслітерувала українські літери, а кожного разу при створенні матеріалу не хотілось виправляти транслітеровану назву для URL. Для цього були внесені зміни в файл «/js/admin.js», а саме відредаговано функцію getSEF()
// generate SEF (Search Engines Friendly) URL function genSEF(from, to) { if (allowsef == true) { // var str = from.value.toLowerCase(); var str = deLocalize(from.value); str = str.toLowerCase(); str = str.replace(/[^a-z 0-9]+/g,''); str = str.replace(/\s+/g, "-"); to.value = str; } }і додав нову функцію deLocalize(), яка необхідна для роботи модифікованої getSEF().
Примітка: якщо ви робитимете цю дію самотужки, то не забудьте файл «admin.js» зберегти в кодуванні UTF-8.
- На тестовому сайті в секції (блоці) «Нові коментарі» кирилиця обрізалася не добре, а саме останній символ коментаря при обрізанні показувався як «ромбик». Тому в функції new_comments() замінив substr() на mb_substr().
- В пакет (нагадаю, нижче є посилання для його завантаження) в додаток до базової англійської включено два мовних файли з українською та російською мовами.
Мова змінюється в адмін. частині (уточню, за замовчуванням логін і пароль — «test»), для цього виберіть Settings (Налаштування) → Time and Locale settings (Час, дата та регіональні настройки):

І у відповідному полі пропишіть мову, яка вам потрібна: UK — українська, RU — російська.
- Також додав вивід часу генерації сторінки і споживання пам’яті, але то вже на любителя. На тестовому сайті внизу сторінки це виглядає так:

Вразі, якщо ви виявите бажання скористатися моїми виправленнями CMS sNews v1.7, ось посилання на zip-архів зі всіма зміненими файлами, які попередньо «залиті» на сервіс для зберігання файлів Box.net:
(збірка sNews 1.7 адаптована під українську/російську мови; 64,2 Кб).
Популярність: 5%
Теґи до статті: CMS sNews, sNews, sNews v1.7.

