+80.16
Рейтинг
207.74
Сила

Степан Танасийчук

Иная система рейтинга Live Street

В модуле рейтинга мне не понравились минимальные значения для влияния на силу и репутацию других пользователей — любой пользователь, сколь незначительным была бы его сила может повлиять на другого пользователя соизмеримо с влиянием более рейнтингового пользователя.
В качестве кривой для расчета рейтинга была взята кривая логарифмического распределения с основанием 10 чтоб про прошествии определенного времени в системе небыло многотысячных рейтингов и огромного влияния старых пользователей по сравнению с новыми.

В новой системе рейтинга отсутвуют минимальные значения влияния на силу и пользователь с 0 силой не может повлиять на силу других пользователей и голосовать за топики, что на мой взгляд кажется логичным. В связи с этим при регистрации всем пользователям присваивается определенная сила, в моем случае равная 1. Рейтинг нового пользователя равен 0 т.к. новый пользователь не может иметь авторитета в сообществе.
Читать дальше →

Пример создания модуля

Попробуем на примере создать очень простой модуль/дополнение для LiveStreet. Сразу стоит оговориться, что под модулем в LiveStreet подразумевается некая библиотека дополнительного функционала, а не какой то законченный блок функционала. Модуль это только его часть. Надеюсь понятно смог объяснить, а теперь приступим!

Читать дальше →

Новый механизм евентов

Изменил механизм регистрации и выполнения евентов в экшене.
Теперь можно регистрировать евент используя регулярные выражения, как для самого евента, так и для всех параметров, передаваемых в URL. Это позволяет избавиться от переопределения метода EventNotFound() при динамических евентах.

$this->AddEvent('edit','EventEditBlog');
$this->AddEventPreg('/^(\d+)\.html$/i','EventShowTopicPersonal');
$this->AddEventPreg('/^\w+$/i','/^(\d+)\.html$/i','EventShowTopic');
$this->AddEventPreg('/^\w+$/i','/^bad$/i','/^$/i','EventShowBlogBad');
$this->AddEventPreg('/^\w+$/i','/^bad$/i','/^page(\d+)$/i','EventShowBlogBad');

Так же осталась возможность использовать старый вариант с методом AddEvent(), он просто является оберткой для AddEventPreg().
Изменения здесь — http://trac.lsdev.ru/livestreet/changeset/35, просьба кто может протестить новый механизм :)

Sitemap-генаратор

Написал на коленке небольшой Sitemap-генератор для Livestreet и готов им поделиться с общественностью, однако есть вопросы…
Update: доступен сам генератор

Читать дальше →

Описание ядра LiveStreet

Данная документация прежде всего для людей знакомых с PHP(объектной моделью) и желающих модифицировать движок.

Общее представление


Движок LiveStreet построен на базе собственного фреймворка с использованием модульности и модели MVC.
Фреймворк представляет из себя каркас из абстрактных классов(абстракции module, action, block, mapper, entity), ядро(engine), роутер(route) и набор системных модулей(модули с префиксом sys_).
Читать дальше →