+0.33
Рейтинг
1.40
Сила

Прикрепляем топик без плагина

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

Допустим мы хотим реализовать следующий функционал: на главной странице для гостей сверху всегда выводится определенный топик. Конечно мы можем написать под эту задачу несложный плагин, повесить его на хук в шаблоне и радоваться, но мы поступим проще (на все про все уйдет 4 строчки c учетом замечаний kpoxas три строчки). Сделаем все в шаблоне, написав при этом минимальное кол-во кода. Итак.

Нас интересует главная страница, а значит экшен Index, шаблон вывода которого находится в файле templates/skin/synio/actions/ActionIndex/index.tpl который и будем изменять.

Сразу приведу код
{if !LS::CurUsr() and !Router::GetActionEvent()}
	{include file='topic_topic.tpl' oTopic=$LS->Topic_GetTopicById(8)}
{/if}
Да-да, больше ничего не нужно, результат достигнут ;)


А теперь подробности того как это все работает

Спам атака на сайт на базе livestreet

Всем привет!

Очень нужна помощь сообщества. Практически на регулярной основе происходит спам атака на сайт на базе livestreet. Как бороться — не знаю, могу только после «драки» помахать руками и поудалять посты. Увеличение времени постинга между постами, удаление пользователей ни к чему хорошему не приводит.

Спам — пользователи продолжают безнаказанно лить сотнями лить посты. Маленькая тонкость — в логах post запросов нет.

Кто сталкивался и ка с этим бороться?

UPD:
  • Спам идет сразу с нескольких ip адресов, при бане одного ip(deny from xx.xx.xx.xx) тут же идет авторизация из под другого и продолжение атаки.
  • Время между топиками($config['acl']['create']['topic']['limit_time']) стоит нормальное, но спамят из под нескольких пользователей и в «личные» блоги, поэтому — не спасает
  • В связи с тем, что «поймал» момент непосредственного спама пока добавил правило:
    Redirect seeother /topic/add http://ru.wikipedia.org/wiki/%D1%EF%E0%EC
    , но безусловно это не выход. Просто проще заблокировать на время, чем потом удалять сотни топиков.
  • За время атаки было создано 1948 топиков

Плагин для управления рекламными компаниями на сайте.

Приветствую,

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


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

Встречайте: Alto CMS – первый релиз форка LiveStreet'а

6 фото
Встроенная админпанель
image
Говорят, настоящий успех к мастеру приходит тогда, когда начинают делать копии его произведений.

Вот и дорос LiveStreet до того, что настала пора делать первый настоящий форк от него. И зовется этот форк – Alto CMS.

Вообще-то, если верить статистике GitHub'а, то ЛС форкнули уже 99 раз. Но Alto CMS – это первый форк, который вышел в свой первый официальный релиз, и который отныне начинает жить своей собственной жизнью. Сейчас мы постараемся дать ответы на вопросы, которые наверняка возникнут в первую очередь. И, пожалуй, самый первый вопрос…


Подробнее об Alto

Релиз LiveStreet 1.0.3

Сообщаем о выходе новой версии LS 1.0.3. Версия носит багфиксный характер.
Были закрыты две XSS уязвимости(спасибо HiMiC и PSNet ) и исправлено раскрытие директории в сессиях(еще раз спасибо PSNet ).

Обновленный дистрибутив уже доступен для загрузки — livestreetcms.ru/download/
Для закрытия этих багов для версий 1.0.2, 0.5.1 и 0.4.2 достаточно скачать этот патч и залить его поверх вашей версии LS.

Важное замечание! Настоятельно рекомендуем обновиться с версий 0.5 и 0.4 до актуальной 1.0.3. Т.к. помимо исправлений этого патча старые версии содержать множество других бед, в том числе и потенциальные уязвимости.

Изменения коснулись 4-х файлов:
config/jevix.php
engine/lib/external/Jevix/jevix.class.php
engine/lib/external/swfupload/swfupload.swf
engine/modules/session/Session.class.php

Подробнее можно посмотреть на гитхабе — github.com/livestreet/livestreet/commit/83c15587388dec02f8b97eac8a0d809a3233702c

Теперь все наши плагины совместимы с LS v1.0.*!

Хочу поделиться хорошей новостью — теперь все наши плагины совместимы с LS v1.0.* :))
Также плагины покрыты тестовыми сценариями и основной функционал должен работать без ошибок (тесты бегают на чистой сборке LiveStreet).
 
 

Плагин «LSGallery»

Плагин «LSGallery» предназначен для создания пользователем альбомов и загрузки в них фотографий. Поддерживает пакетную загрузку фотографий и различные настройки приватности для альбомов. Также позволяет отмечать друзей на фотографиях.

Плагин «Sitemap» (важен для SEO)

Предназначен для автоматической генерации карты сайта в виде файла sitemap.xml. Карта сайта включает в себя ссылки на блоги, топики и профили пользователей. Совместим с плагинами «LSGallery», «Page», «L10n» и другими.

Плагин «SEO»

Основное предназначение плагина это автоматическая генерация мета тегов keywords и description в зависимости от контента страницы. Это положительно влияет на индексацию сайта поисковыми системами и ранжирование их выдачи.

Плагин «OpenID Comments»

При отправке комментария гость увидит всплывающее окошко авторизации/регистрации, а после авторизации/регистрации его комментарий появится на сайте.
Плагин может работать совместно с плагином OpenId (что удобней для гостей сайта) или без него.

Плагин «Banneroid (баннерокрутилка)»

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

Плагин «Similar topics»

Выводит список похожих записей как блок в сайдбаре. Записи сортирует по количеству совпавших тегов и дате/рейтингу.
 

Плагин «L10n (для мультиязычности)»

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

Плагин «Mailing»

Плагин для рассылок сообщений на LiveStreet сайтах с большим количеством пользователей. Есть возможность фильтра получателей по свойству «Пол» («мужчины», «женщины», «не указан») и по свойству «Язык» (интеграция с плагином «L10n»). Можно посмотреть список рассылок и статус хода рассылки. Полное описание функционала на странице плагина.

Плагин «LSDigest»

Плагин предназначен для рассылки дайджестов лучших записей за определенное время. Для работы плагина требуется плагин рассылок «Mailing». Совместим с плагином L10n (разные дайджесты в зависимости от языка указанного в профиле пользователя).

Плагин «Use watermark»

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

Плагин «Greeting (приветствие новым пользователям)»

Плагин предназначен для рассылки приветсвий новым пользователя в LiveStreet CMS. Например, в тексте сообщения можно благодарить пользователя за регистрацию и дать ему ссылки на страницу помощи или общих вопросов по работе с сайтом. Cовместим с плагином многоязычности l10n. Т.е. вы можете создавать разные шаблоны сообщений для разных языков.

Плагин «Пингатор (исправленный)»

Исправленный пингатор для оправки сообщений Яндексу и Google. Эта штука дает возможность поисковым системам практически моментально индексировать добавленный контент.
 

Плагин «Debug Toolbar»

Плагин «Debug Toolbar» предназначен для вывода технической информации о работе сайта на LiveStreet.
 
 
 

Просьба!

Идеи по улучшению и бегрепорты (сообщения о ошибках) пишите в трекерах плагинов (значек  на странице плагина).
Спасибо ;)

Плагин «Мастер блоков сайдбара, тулбара и хуков (Blocks Master)»


ОПИСАНИЕ


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

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

Плагин "Управление рекламными компаниями на сайте". Ваше мнение.

Приветствую,

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


Ваше мнение ?

Тонкая настройка почты

Столкнулся с тем, что при добавлении топиков, происходят достаточно сильные тормоза. После проведённого анализа выяснилось, что проблема тормозов ПОЧТА. При публикации топика происходит рассылка по всем пользователям, которые имеют отношение к блогу, в который происходит размещение материала.

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

В конфиге config/config.local.php добавляем следующие настройки

// Указывает на необходимость использовать режим отложенной рассылки сообщений на email
$config['module']['notify']['delayed'] = true;
// Если опция установлена в true, систему будет собирать записи заданий удаленной публикации, для вставки их в базу единым INSERT
$config['module']['notify']['insert_single'] = true;
// Количество отложенных заданий, обрабатываемых одним крон-процессом
$config['module']['notify']['per_process'] = 10;


Далее исправляем файл classes/modules/notify/Notify.class.php

Находим в нём функцию

public function Send($oUserTo,$sTemplate,$sSubject,$aAssign=array(),$sPluginName=null) {


В этой функции находим строчку

if(Config::Get('module.notify.delayed')) {


И заменяем её на

$isNotifyDelayed = Config::Get('module.notify.delayed');
if (($sTemplate == "notify.registration_activate.tpl") || ($sTemplate == "notify.registration.tpl") || ($sTemplate == "notify.reactivation.tpl") || ($sTemplate == "notify.reminder_code.tpl") || ($sTemplate == "notify.reminder_password.tpl")) { $isNotifyDelayed = false; }
if($isNotifyDelayed) {


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

Небольшое дополнение:
Кто-то может забыть, поэтому напоминаю, что необходимо по крону запускать скрипт include/cron/notify.php

есть 2 варианта запуска.

1. используя HTTP.

для этого необходимо поправить .htaccess в папке include/cron/
содержание должно быть

Order Deny,Allow
Deny from all
Allow from XXX.XXX.XXX.XXX


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

*/5 * * * *   wget -O- http://www.livestreet.ru/include/cron/notify.php >> /dev/null


2. либо из консоли.

и в крон можно внести следующую запись

*/5 * * * *   /usr/bin/php /vhosts/site.ru/www/include/cron/notify.php


Пути указывайте в соответствии с настройками вашего сервера.