Доводим до ума социальную сеть на Pligg
Метки: pligg
Воскресенье, 29 июля 2007 г.
Просмотров: 627
Подписаться на комментарии по RSS
Появилась необходимость в создании еще одного dig-like сайта. На этот раз решил его делать на cms Pligg. Почему не на Drupal, о котором я рассказывал в предыдущей статье? Потому что для этого проекта хватит и возможностей Pligg.
Для начала решил посмотреть русифицированную версию (http://pliggrse.com/). Собственно создателей я могу только похвалить за их труд. Они добавили к оригинальному Pligg два дополнительных метода формирования url, но, к сожалению, ни один из них сразу после установки у меня не заработал как надо (два новых и один из стандартных).
Под «как надо» я подразумеваю то, что при переходе в какую-либо категорию, перехода туда на самом деле не происходит. Об исправлении этого бага будет написано чуть ниже.
Сразу скажу, что первоначальную настройку я делаю на пакете denwer. На хостинге лично я не проверял, но на форуме кто-то оставил ссылку на свой сайт на Pligg – там тоже не работало как надо.
Кстати, если Вы тоже будете настраивать на denwer, не забудьте скачать в дополнении к базовому пакету также и пакет расширений (http://www.denwer.ru/packages/php4.html). В нем есть любимое многими расширение curl. Для Pligg из этого пакета нужен модуль mb_string. Также на забудьте добавить в файл .htaccess следующую строку:
php_value error_reporting 7
Вернемся к Pligg. Добавленные в русской версии Pligg’а методы формирования url заключаются в транслитерации названий категорий или обозначении их цифрами. Собственно по SEO-соображениям это не очень подходит.
Таким образом, я решил настроить английскую версию (чтобы не было на сайте лишнего кода, касающегося транслитерации), а потом взять файл перевода из русский. Английскую версию можно взять на официальном сайте: http://www.pligg.com . На момент написания статьи последняя версия 9.7 Beta.
Про установку говорить не буду – она простая, опишу лишь изменения в модулях.
Разбираясь, почему именно не происходит перехода в нужный раздел, я добрался и до базы:) Собственно, баг заключался в том, что поле category_safe_name, в котором хранится название категории для ссылки сильно короткое – всего 64 символа. Так как в Pligg используется Unicode и в category_safe_name название записывается, прогнанное через функцию urlencode, то на один символ категории приходится 6 символов в ссылке.
Таким образом категории, в названии которых больше 10 символов, работали некорректно.
Для исправления этого просто увеличьте длину поля category_safe_name в таблице pligg_categories до 256 символов – это позволит создавать категории с длиной до 42-ух символов. Если Вы затрудняетесь в увеличении длины поля – выполните следующий sql-запрос:
ALTER TABLE `pligg_categories` CHANGE `category_safe_name` `category_safe_name` VARCHAR( 256 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL
Следующий баг, присутствующий как в английской, так и русской версии (хоть и заявлено, что его там исправили) это кракозябры в отображении букв «И» и «ш».
Исправить его можно следующим образом: добавить в файл libs/db.php в функцию connect после
$this->dbhost = $dbhost;
$return_val = true;
}
и перед return следующие строки
mysql_query("SET NAMES utf8_general_ci");
mysql_query("SET CHARSET utf8");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET SESSION collation_connection = 'utf8_general_ci'");
Вот собственно и все, что меня не устраивало в функциональности стандартной поставки. В качестве примера настройки по этой статье могу привести этот сайт.
Ну и напоследок я очень рекомендую удалить следующую строку (из английской версии):
< div class="footer" style="display:none" >Powered By < a h ref="http://www.pligg.com/" >Pligg< /a >< /div >
из файла templates\yget\footer.tpl.
PS на всякий случай: оригинал статьи доступен по адресу
http://photonblog.net/posts/dovodim-do-uma-socialnuyu-set-na-pligg/


Оставьте комментарий!