+1.14
Рейтинг
2.77
Сила

Новая система безопасности ядра

UPDATE. По результатам обсуждений в систему защиты внесены изменения — откорректировал описание в топике. Особенно большое спасибо benone, Wizard, onthefly за активное обсуждение проблемы.

Раньше в движке для обеспечения защиты от несанкционированных действий использовалась проверка переменной $_SERVER['HTTP_REFERER']. Но иногда это создавало дополнительные проблемы, поэтому было решено ввести новый механизм защиты (готов к использованию начиная с ревизии #551).

Защита данных, полученных через GET-запрос.

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

Основная идея решения такова:
Читать дальше →

Импорт RSS лент (платный модуль)

В связи с релизом, создаю отдельную ветку обсуждений для платного модуля.

Заявленный функционал:

1. парсить RSS =)
2. возможно задавать более одного рсс потока
3. у каждого потока есть три поля для заполнения
3.1 урл потока
3.2 частота обновления
3.3 блог в который постим
3.4 имя пользователя от которого постим
3.5 в конфиге выбираем куда постить, сразу на сайт, или в черновики.
4. постинг идет в виде топика, в указанный блог.
5. запуск по крону
6. работает с яху пайпс и другими RSS со стандартными полями

Модуль для 0.3.1 тут — livestreet.ru/addons/94/
Цена на версию для 0.3.1 — 900руб.
Цена на версию для 0.4.2 — 1300руб.


Поддержка будет осуществляться на релизной основе. По мере поступления запросов на доп. функционал.
Для тех кто желает парсить полнотекст, готов в комплекте дать Yahoo Pipes =)
Вобщем поддержке быть как положено платному модулю.

UPD в версии 1.1 добавлено:
1. картинки забираються теперь на сервер (в релизе 1.0 были ссылки)
в конфиг вынесено куда прижимать картинку (право, лево, оставить как было в рсс)

2. теперь ставиться тег «кат», в конфиге настройка сколько символов отступить от начала топика до ката. (с проверкой непопал ли кат в открытый тег, если попал то кат ищет конец тега и стаиться после него)

3. смастерили хитрую систему подбора тегов к топику (автотег) работает по такой схеме: (слово более трех букв) проверяем какие слова из тайтла встречаються в тексте топика, за каждое совпадение начисляем +10 очков слову, выбираем самые популярные, и ставим их тегами
ну качество канечно не как тыбы сам руками ставил но всеже. кол-во тегов вынесено в конфиг. по умолчанию 3 тега на пост

4. из конфига забрано в админку, настройка куда постить рсс (черновики или сразу на сайт), теперь для каждого потока можно настройку ставить. пока было в конфиге была настройка одна для всего модуля.

5. в админке добавлена возможность редактировать уже добавленные рсс
В конфиге добавлено:
6. включить выключить автотэги
7. сколько тегов на пост вешать
8. включить выключить кат
9. постить простой топик или постить топики топикссылкой

UPD2: Вобщем готова версия под 0.4.2 =)

Модификаторы Smarty в шаблонах - ранг пользователей

Помимо стандартных модификаторов (truncate,default etc.) в шаблонах Smarty можно использовать свои. Синтаксис для них в точности такой же.
Для примера — определим ранг пользователя в зависимости от его рейтинга с помощью модификатора rating.
smarty.php5.com.ua/plugins.naming.conventions/ — соглашение об именах плангинов можно посмотреть тут.

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

Проблемы с установкой

Залил движок на хост, использовал модуль-инсталлятор, после установки получилось следующее:

сайт работает, по страницам переходит, но вверху, ещё до шапки LiveStreet вылезает следующее:


Deprecated: Assigning the return value of new by reference is deprecated in /home/userdir/public_html/classes/lib/external/DbSimple/Generic.php on line 113

Deprecated: Assigning the return value of new by reference is deprecated in /home/userdir/public_html/classes/lib/external/DbSimple/Generic.php on line 133

Deprecated: Assigning the return value of new by reference is deprecated in /home/userdir/public_html/classes/lib/external/DbSimple/Mysql.php on line 70


В чём может быть проблема? В какую сторону капать, файлы эти перезаливал из дистрибутива — не помогло. Поиском не нашёл похожих проблем :(

Мобильная версия

Предистория: анализируя статистику посещений своего сайта, который крутится на LS стало ясно, что довольно большая часть пользователей ходит на него с мобильных устройств. Так как я сам один из таких пользователей, было решено сделать мобильную версию шаблона сайта.

Ситуация: сейчас довольно много страниц для сайта сверстано в пда версию, но на данный момент все эти страницы нужны только для моего сайта, т.е. это шаблоны тех экшенов, которые есть только у меня. Сейчас приступаю к верстке стандартных модулей, т.е. тех, которые есть у всех из коробки. Сейчас сделано все тупо: на поддомене pda.сайт.ру установлена точная копия системы сайт.ру и в качестве шаблона используется потихоньку верстаемый pda-шаблон.

Вопрос: можно ли сделать так, чтобы сама по себе система и все ее рабочие файлы находились на основном сервере, а на pda только другой шаблон? Или как-то еще, но чтобы добиться требуемого результата, может как-то эмулировать, что это поддомен, я не знаю.

З.Ы. Сразу оговорюсь — всякие штуки типа автоматического определения ОС и разрешения экрана и на основе этих данных показ нужного шаблона не подходит. Нужно, чтобы для pda версия был отдельный поддомен со своей адесацией. Может у кого-то уже есть наработки по этому вопросу и нет смысла изобретать велосипед…

Реферальная система начисления рейтинга

Навеяно http://livestreet.ru/blog/2375.html#comment29060
4. Сюдаже сотворил бы партнерку по привлечению «писателей», привел %юзернейм% друга, друг написал 50 годных постов, %юзернейм% получил балы

Только я сделал немного иначе. Просто начисляю копеечку с каждого поста того, кого инвайтили.

см начало в http://livestreet.ru/blog/2379.html

ls\classes\actions\ActionTopic.class.php

		// добавляем рейтинг пригласившему нас по инвайту
		$oUserInviteFrom=$this->User_GetUserInviteFrom($this->oUserCurrent->getId());
		if ($oUserInviteFrom!=NULL) {
			$oUserInviteFrom->setSkill($oUserInviteFrom->getSkill()+0.02);
			$oUserInviteFrom->setRating($oUserInviteFrom->getRating()+0.001);
			$this->User_Update($oUserInviteFrom);
		}

Модуль мотивации пользователей

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