+4.43
Рейтинг
20.94
Сила

Статус онлайн в профиле (и не только) [реализация]




Спасибо ort и PSNet

Загорелся идеей вывести в профиль статус онлайн/оффлайн для пользователей. Понял, что по сути можно сделать напрямую в шаблоне примерно такой схемой
{если «текущее время в секундах» — «дата последнего визита в секундах» < 900 секунд} онлайн {иначе} оффлайн {/если}

Под катом инструкция

Плагин "User Templates" for 0.5x

Плагин позволяет для личных страниц пользователей (профиль пользователя, избранное пользователя, публикации пользователя) устанавливать шаблоны отличные от основного шалона сайта.

Список шаблонов создается на основе загруженных в \templates\skin\.

Возможности загружать собственные шаблоны нет.

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

Информеры или подсказки в LS на jQuery

Собственно прочитал пост про, то чегож не хватает в шаблонах и решил описать возможное решение пункта №2, а именно:
К каждому объекту на ЛС можно было бы добавить справку, например в виде значка ?, при наведении указателя мыши на который выводилась бы краткая справка в попап окне для чего нужен тот или иной блок/элемент.
И так, приступим.
У нас LS ведь дружит с jQuery, вот и им и будем пользоваться.
По сути дела знаю два способа вывести подобные подсказки, оба способа нельзя назвать простыми, но расскажу и покажу суть, может кто потом воспользуется.
Способ номер РАЗ… информеры
Начнем с приветствия:
Окно выводится при попадании на главную страницу сайта.
<script type="text/javascript">
	guider.createGuider({
		id:          "first",
		title:       "Подсказки с помощью jQuery",
		description: "Подсказки позволяют указывать на определенные части веб-интерфейса. Это окошко, например, показывает приветственное сообщение.",
		overlay:     true,
		width:       500
	}).show();
</script>

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

Запрет на hotlinking

Сегодня нас качественно досили, перекрыли ботов фильтрами, но CPU до положенного уровня не сбросилось, ставить апач статус не хотелось.
Стали смотреть почему не падает CPU до положенных нашему серверу 1-3%.
Оказалось проблема с выдачей статистики, (в нашем случае изображений) другим сайтам.
Другими словами, запретим hotlinking для всех, кроме othersite.com — «дружественного» сайта. В конфиг nginx дописываем:
location ~ \.(jpg|jpeg|bmp|jif|bmp|gif|png)$ {
                root   /path/to/public_html/;
                valid_referers server_names none blocked www.othersite.com *.othersite.com;
                if ($invalid_referer) {
                return 403;
                }
            }

В общем после этого CPU упала, и разгрузилось 10% RAM.
Но после дидоса думаю снимать, так как картинки все же картинками, это беклинки и трафик, которые мы так любим.

Система блоков

Если пробежаться глазами по сайтам, созданным с ее помощью несложно заметить, что большинство из них наследует две колонки стандартных шаблонов.
Но ведь LS может похвастаться простой, но от этого не менее функциональной системой блоков. Почему владельцы сайтов не используют ее? Возможно, дело в документации?
Это я сегодня с Вашей помощью и попробую исправить.


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

Поддомены для юзеров и коллективных блогов под 0.5

— Все посты располагаются в субдоменах
— Ссылки из заголовков топиков с главной страницы, rss, прямого эфира, топа, хороших и тд ведут на полный текст, располагающийся в субдомене
— Ссылки из пользовательских профилей ведут на профили друзей, а не на их блоги, например, user.site.ru/profile;
— Ссылки из списка блогов и из пользовательских профилей (состоит/администрирует) ведут на субдомены, являющимися коллективными блогами.
— по адресу user.site.ru показываем публикации (блог пользователя), а не его профиль;
— по адресу blog.site.ru показываем непосредственно сам коллективный блог;
— ссылки на субдомены, для которых нет алиасов среди блогов и пользователей, переадресовываются на основной домен и по ним выводится ошибка 404;
— обеспечение предупреждения коллизий путём проверки существования алиасов при регистрации пользователей и создания коллективных блогов.

livestreetcms.com/addons/view/242/

Исправления для модуля "DokuWiki integration" + обновление DokuWiki

Исправляем досадный баг с совпадающими именами и id-шниками сессий у DokuWiki и LiveStreet. Выглядело это так что сайт переставал отвечать на запросы пока не очистим куки или пока не разорвем сессию. (кстати тут и вина PHP есть т.к. ее поведение при возникновении этой ситуации не очень забавное, надо бы багрепорт оформить)
Обновляем DokuWiki до последней стабильной версии.

Нам понадобятся:
0. LiveStreet 0.4.2
1. Плагин DokuWiki integration
2. Свежая и стабильная сборка DokuWiki (на данный момент это Release 2011-05-25 «Rincewind»)

Последовательность:
1. Устанавливаете плагин «DokuWiki integration».
2. Переименовываете папку wiki в wiki_old
3. Создаем папку wiki и копируем в нее свежую DokuWiki
4. В папке wiki удаляем папки conf и data
5. Копируем в папку wiki папки conf и data из папки wiki_old
6. В папку wiki/inc/auth/ копируем файл livestreet.class.php из папки wiki_old/inc/auth/
7. В папку wiki/lib/tpl/ копируем папку livestreet из папки wiki_old/lib/tpl/
8. В файл wiki/doku.php в самом начале после "<?php" добавляем
if ($_SERVER['REQUEST_METHOD'] == 'GET' && !$_SERVER['HTTP_REFERER'])
{
        $_SERVER['HTTP_REFERER'] = 'http://' . $_SERVER['HTTP_HOST'] .'/wiki/';
}

9. Правим файл wiki/inc/load.php

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

Необходимо перенести профили пользователей на поддомены (Решено)

Необходимо перенести профили пользователей на поддомены, т.е. чтобы профили были доступны по адресу login.site.ru

Решение написал в комментарии пользователь xyz

Не добавляются комментарии в IE 9 (в том числе на livestreet.ru)

Не добавляются комментарии на livestreet.ru через браузер IE9 (9.0.8112.16421).

При открытии странцы с топиком возникает ошибка
SCRIPT5022: DOM Exception: INVALID_CHARACTER_ERR (5) 
1e8db4b28f453855087a0b9de0237404.js, строка 120 символ 1


Ошибка при попытке добавить сообщение:
SCRIPT5007: Не удалось получить значение свойства "addComment": значением объекта является NULL или он не определен 
7667.html, строка 700 символ 1


Если включить «представление совместимости» — всё будет работать.

Кто знает как лечить?

Хак ReVote повторное голосование, изменение своего голоса.

В Tips&Tricks почему-то не пускает. тогда здесь наиболее уместно, пожалуй.
На примере топика, решил составить краткую инструкцию, как добавить пользователям возможность менять свой голос. Вообще, странно, что нет такой возможности по умолчанию
Сразу оговорюсь, должен быть установлен ACEAdminPanel!
Итак, нам потребуется файл /include/ajax/voteTopic.php;
Любое изменение начинаем с сохранения копии исходного файла.
находим код:

} else {
$sMsgTitle=$oEngine->Lang_Get('attention');
$sMsg=$oEngine->Lang_Get('topic_vote_error_already');
}

заменяем его на:
Читать дальше →