+60.64
450 читателей, 105 топиков

Меняем компрессор js

Нет, нет — это инструкция не для владельцев Мерседеса.
Речь идет о библиотеке JSMin для сжатия js-файлов.
Я заглянул на репозитарий либы на github, где черным по-белому по-русски написано что мол проект больше не поддерживается, и что не стоить использовать, ведь есть более достойные инструменты, среди которых есть JShrink.

Итак:
Читать дальше →

Как вынести количество публикаций каждого пользователя на страницу пользователей

Данный топик — расширенный ответ на вопрос, заданный в этом топике т.к. мне уже не первый раз задают этот вопрос.

Нужно в файле сущности пользователя \classes\modules\user\entity\User.entity.class.php (например, после 453 строки) дописать метод:
/**
 * Возвращает количество созданных пользователем топиков и комментариев
 *
 * @return int
 */
public function getPublicationsCount() {
  $iCountTopicUser = $this->Topic_GetCountTopicsPersonalByUser($this->getId(), 1);
  $iCountCommentUser = $this->Comment_GetCountCommentsByUserId($this->getId(), 'topic');
  return $iCountTopicUser + $iCountCommentUser;
}


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

Алгоритм начисления силы и рейтинга

Намедни решил сделать кое какие расчеты, для которых нужны данные о начислениях силы и рейтинга в ЛС.
Открыл исходники и для наглядности построил графики зависимости количества начисляемого рейтинга и силы от силы проголосовавшего.

Вот что получилось:
Собственно по оси Y количество чего-то, которое получит юзер за Ваш голос, а по X количество силы голосующего. Значения каждой функции ограничено снизу и сверху. На графике не все точки, а лишь диапазон от 0 до 550, впрочем этого достаточно, чтобы увидеть перепады в приросте веса голоса, полные ограничения указаны ниже.


min = 0,004
max = 0,5

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

Хак. Добавление позиции в рейтинге пользователей


На всеми любимом Хабре есть замечательная возможность просмотра в профиле позиции в рейтинге пользователей сайта.
Сделал подобный хак-модуль, изменения нужно внести только в шаблоне отображения профиля, системные файлы не задеты.
Пример посмотреть можно: ls03.vaktive.ru/profile/admin/
Скачать можно: livestreet.ru/addons/102/
Инструкция в архиве.

хак - доработка "скрытия линков от поисковиков"

На досуге обнаружил, что чуток неправильно работает режим скрытия линков от поисковиков(BLOG_URL_NO_INDEX=true). А именно если в посте идет ссылка на твой же ресурс, то его также LS обрамляет noindex + добавляет rel=nofollow. В общем текущее положение вещей меня не устраивало, так как это для СЕО неправильно. Тут же было мной сделано решение.

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

Облагораживаем статистику производительности вер. 2.0

Продолжаем разговор на тему любви и секса.
На днях освободился от заказов и решил довести до ума сию наработку.

Изменения:
  • Теперь статистику можно свернуть\развернуть (состояние запоминается)
  • Добавлено отобажение потребляемой памяти (by Vladimir3)
  • И по мелочам — замена коротких тегов php на обычные, немного измененная верстка и более темный цвет текста


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

Русский язык в результатах поиска

Не так давно захотелось мне сделать русский язык в результатах поиска, а именно, чтобы количество найденных топиков и комментариев выводилось так: 3 топика, 11 комментариев.

Сделать это проще простого, однако в силу природной лени и версии 0.2 движка у меня, публиковать хак не хочу ;) Привожу текст хака здесь, вдруг кому понадобится (а кому надо — тот разберется).

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

Доработка RSS потока

В RSS до cut

Почти сразу, как поставил движок, передо мной встал вопрос: как отдавать в rss долько до кут? Не хотелось мне отдавать полные топики в ленту, т.к. материалы можно почитать на сайте, а школьникам лентяям отрезать возможность что-то полезное оттуда грабить.

Теперь это решение кажется уже довольно простым. Достаточно в экшене ActionRss.class.php в одной из функций (например RssGood) изменить одну строку на:

$item['description']=$oTopic->getTextShort();


Последние материалы блога в rss

Тут же вылезла проблема, что прочитав анонс пользователю ну совершенно некуда кликнуть. Что согласитесь — форменный бардак. Решил, что нужны «читать далее» и «последние посты топика». Теперь в rss канале футер анонса выглядит так:



Тут порядок такой. В том же файле в той же функции вставлем после:

foreach ($aTopics as $oTopic){


Этот код:

$aFooter="";
$aMyBlogId=$oTopic->getBlogId();
$aMyResult=$this->Topic_GetTopicsByBlogGood($this->Blog_GetBlogById($aMyBlogId),0,1,3);
$aMyTopics=$aMyResult['collection'];
foreach ($aMyTopics as $oMyTopic){
  $aFooter=$aFooter.'<li><a href='.$oTopic->getUrl().'>'.$oMyTopic->getTitle().'</a></li>';
}


А ту переменную, что мы уже меняли выше, заменяем на:

$item['description']=$oTopic->getTextShort().'

<a href='.$oTopic->getUrl().'>читать полностью</a>

<b>Последнее из блога:</b> <a href='.$oTopic->getBlogUrlFull().'>'.$oTopic->getBlogTitle().'</a><br /><br /><ul>'.$aFooter.'</ul>';


Вот собственно и все. У кого есть мысли по поводу развития темы дополнений в rss, пишите — обсудим.

Рабочий пример как обычно можно увидеть на TechFuture RSS — в данном случае в rss хороших топиков.

UPD: Исправлены ошибки, дополнен код.

Использование консоли для создания каркаса плагина под Windows (XP)

Создаем новый файл с расширением .bat, записываем в него:
@echo off
set /p var="Введите имя плагина: "
C:\WebServers\usr\local\bin\php.exe C:\WebServers\home\su\livestreet\engine\console\ls plugin new "%var%"
Pause
меняем пути на свои и сохраняем в кодировке DOS-866. Теперь не нужно прописывать все пути заново — достаточно ввести только название нового плагина.
Читать дальше →