Список репозитории бесплатных расширений

LiveStreet
Шаблоны:

Плагины:

Все собирался запостить сборку 0.5.1

LiveStreet
Самая последняя версия. И самые нужные/актуальные/рабочие плагины.
С старого топика уже дохуя времени ушло же.
Обозначим этот топик, чистка накопившегося мусора и подведение итогов 2011 года, в папке livestreet.

Залит и проверен такой набор плагинов.


Скачать:

Раскрашиваем комментарии в LS, как на бонине например

LiveStreet
Выделяем цветом комментарии топикстартера

1. В файле comment.tpl находим следующие строчки:
<div id="comment_id_{$oComment->getId()}" class="comment {if !$oUserCurrent or ($oUserCurrent and !$oUserCurrent->isAdministrator())}not-admin{/if} {if $oComment->getDelete()} deleted{elseif $oUserCurrent and $oComment->getUserId()==$oUserCurrent->getId()} self{elseif $sDateReadLast<=$oComment->getDate()} new{/if}" >

и добавляем:
{if $oTopic and $oComment->getUserId() == $oTopic->getUserId()}topicstart{/if}

получаем:
<div id="comment_id_{$oComment->getId()}" class="comment {if !$oUserCurrent or ($oUserCurrent and !$oUserCurrent->isAdministrator())}not-admin{/if} {if $oComment->getDelete()} deleted{elseif $oUserCurrent and $oComment->getUserId()==$oUserCurrent->getId()} self{elseif $sDateReadLast<=$oComment->getDate()} new{/if} {if $oTopic and $oComment->getUserId() == $oTopic->getUserId()}topicstart{/if}" >

2. В файле comments.css добавляем стиль:
.comment.topicstart  { background: #желаемый цвет; }

При должной сноровке и смекалке можно изменить не только цвет блока.

Другой цвет у комментариев админа
Можно получить другое визуальное оформление комментариев оставленных администратором сайта.
1. В файле comment.tpl в следующие строчки:
<div id="comment_id_{$oComment->getId()}" class="comment {if !$oUserCurrent or ($oUserCurrent and !$oUserCurrent->isAdministrator())}not-admin{/if} {if $oComment->getDelete()} deleted{elseif $oUserCurrent and $oComment->getUserId()==$oUserCurrent->getId()} self{elseif $sDateReadLast<=$oComment->getDate()} new{/if}" >

добавляем:
{if $oUser->isAdministrator()}admin{else}user{/if}

получаем:
<div id="comment_id_{$oComment->getId()}" class="comment {if !$oUserCurrent or ($oUserCurrent and !$oUserCurrent->isAdministrator())}not-admin{/if} {if $oComment->getDelete()} deleted{elseif $oUserCurrent and $oComment->getUserId()==$oUserCurrent->getId()} self{elseif $sDateReadLast<=$oComment->getDate()} new{/if} {if $oUser->isAdministrator()}admin{else}user{/if}"  >

2. В файле comments.css добавляем стиль:
.comment.admin  { background: #желаемый цвет; }

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

Кому-ниб, нужно раскрасить его комменты? :)))

Установка reCAPTCHA на LiveStreet

LiveStreet


Итак, идем сюда и получаем ключи: Public Key и Private Key. Public будем вставлять в JavaScript и он может быть найден в исходном коде, Private нужно хранить в секрете и использовать только на стороне сервера.
Итак, приступаем к замене каптчи. Идем в /templates/skin/название-темы/actions/ActionRegistration и открываем файл index.tpl, в котором заменяем
<img src="{cfg name='path.root.engine_lib'}/external/kcaptcha/index.php?{$_sPhpSessionName}={$_sPhpSessionId}" onclick="this.src='{cfg name='path.root.engine_lib'}/external/kcaptcha/index.php?{$_sPhpSessionName}={$_sPhpSessionId}&n='+Math.random();" />
 
		<p><input type="text" name="captcha" value="" maxlength="3" class="input-100" /></p>

на
<script type="text/javascript" src="http://api.recaptcha.net/challenge?k=ЗДЕСЬ_ВАШ_Public_Key">
</script><noscript>Включите JavaScript или обновите ваш браузер!</noscript>

Только не забудьте заменить ЗДЕСЬ_ВАШ_Public_Key на полученный ранее Public Key. Перед этим еще можно добавить
<script type="text/javascript">
        var RecaptchaOptions = {
                custom_translations : {
                        instructions_visual : "Введите два слова:",
                        instructions_audio : "Введите что вы слышите",
                        play_again : "Включить заново",
                        cant_hear_this : "Скачать в формате MP3",
                        visual_challenge : "Визуальный режим",
                        audio_challenge : "Режим аудио",
                        refresh_btn : "Обновить",
                        help_btn : "Помощь",
                        incorrect_try_again : "Неверно. Пожалуйста, попробуйте еще раз.",
                },
                lang : 'ru', // Unavailable while writing this code (just for audio challenge)
                theme : 'white' // Make sure there is no trailing ',' at the end of the RecaptchaOptions dictionary
        };
		</script>

для русификации. Подробнее о кастомизации каптчи смотрите здесь.

Далее качаем саму библиотеку каптчи отсюда, распаковываем и кладем её содержимое в /engine/lib/external/recaptcha. Далее идем в /classes/actions, открываем файл ActionRegistration.class.php. Добавляем в начало файла подключение библиотеки
require_once ($_SERVER['DOCUMENT_ROOT']."/engine/lib/external/recaptcha/recaptchalib.php");

Затем удаляем или комментируем
if (!isset($_SESSION['captcha_keystring']) or $_SESSION['captcha_keystring']!=strtolower(getRequest('captcha'))) {
				$this->Message_AddError($this->Lang_Get('registration_captcha_error'),$this->Lang_Get('error'));
				$bError=true;

и добавляем
$resp = null;
if (array_key_exists('recaptcha_response_field',$_POST)){
$resp = recaptcha_check_answer ('ЗДЕСЬ_ВАШ_Private_Key',$_SERVER["REMOTE_ADDR"],$_POST["recaptcha_challenge_field"],$_POST["recaptcha_response_field"]);}
if ($resp==null or !$resp->is_valid){
$this->Message_AddError($this->Lang_Get('registration_captcha_error'),$this->Lang_Get('error'));
$bError=true;
}

Ad units

LiveStreet
Плагин «Ad units»
Рекламные блоки для LS


Добавляет пользователям возможность размещать на сайте рекламные блоки на страницах своих блогов и топиков в виде ссылок, банеров, медиа контента.
для управления рекламными блоками переходим в настройки профиля и добавляем свою рекламу или по ссылке _ваш_сайт_/settings/adunits/

/plugins/localflv/config/config.php:
/* включение/отключение возможности размещать рекламу всем пользователям: all - для всех, admin - только для админов*/
    Config::Set('config.adunits.permit.user', 'all');


При успешной акитивации в БД добавится таблица prefix_adunits из /plugins/adunits/dump.sql
в противном случае выполните sql-запрос из файла /plugins/adunits/dump.sql
CREATE TABLE `prefix_adunits` (
    `adunits_id` int(11) NOT NULL auto_increment,
    `user_id` int(11) NOT NULL,
    `adunits_code` longtext character set utf8,
    `adunits_setting` text character set utf8,
    `adunits_setting_more` longtext character set utf8,
    `adunits_date_add` datetime NOT NULL,
    `adunits_date_edit` datetime NOT NULL,
    PRIMARY KEY  (`adunits_id`)
  ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Скачать: 2me.be/z/adunits.zip

Яндекс.Карты / Google Maps

LiveStreet
Например, если вы захотите сделать что-то типо, gdecasino.org и подобных.


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

Что такое категория маркеров?
Категория маркеров это некоторое свойство маркера, в котором определяется как будет выглядеть иконка маркера на карте.
Свойства категории:
— Название — любое текстовое название. Например, Офисы компании;
— Имя стиля — требуется для генерации карты, набор символов на латинице. Например, offices.
— Ссылка на иконку маркеров в категории — иконка маркера, которая появляется на карте при выборе категории. Здесь удобно пользоваться стандартными иконками Яндекс.Карт.

Что такое маркер?
Это значек и балун на карте, который задается следующими свойствами:
Название, широта, долгота, категория, адрес, телефон, ссылка на подробную информацию и ссылка на изображение в балуне. Увидеть где и какие свойства проявляются достаточно просто — поиграйтесь с демками.

Как можно настроить карту?
Для карты можно задать API ключ Яндекс.Карт, ширину, высоту, координаты центра, начальное приближение, любые из стандартных инструментов управления на выбор, которые сейчас включены на демке, а также строку поиска по объектам на карте.

Как работает поиск?

Стандартный элемент управления поиска ищет адреса в видимой области карты, а если ничего не найдено, то везде.


Поиск объекта на карте ищет объекты (маркеры) по названию маркера. При клике на результат поиска, на карте открывается балун найденного маркера.
Поиск объекта на карте использует для предложения результатов плагин jQuery, однако подключать дополнительную библиотеку не требуется — jQuery подгружается вместе с Яндекс.Картами.



Скачать последнюю стабильную, и которая помоему ушла в архив, т.е. наконец все лаги отточились: 2me.be/z/ymap_0.1.4.zip

Приветственное лс, если вдруг нужно, при реги

LiveStreet
Итак, добавляем в ActionRegistration.class.php
после действия, где создается персональный блог (строка 172 помоему)
public function SendWelcomeMessage(UserEntity_User $oUserTo,UserEntity_User $oUserFrom) {

$this->oViewerLocal->Assign('oUserTo',$oUserTo);
$this->oViewerLocal->Assign('oUserFrom',$oUserFrom);

$sBody=$this->oViewerLocal->Fetch("pm_reg.tpl"); 
$oTalk=new TalkEntity_Talk(); 
$oTalk->setUserId($oUserFrom->getId()); 
$oTalk->setTitle("Добро пожаловать!"); 
$oTalk->setText($sBody); 
$oTalk->setDate(date("Y-m-d H:i:s"));
$oTalk->setDateLast(date("Y-m-d H:i:s"));
$oTalk->setUserIp(func_getIp());
if ($oTalk=$this->Talk_AddTalk($oTalk)) {
$oTalkUser=new TalkEntity_TalkUser();
$oTalkUser->setTalkId($oTalk->getId());
$oTalkUser->setUserId($oUserTo->getId());
$oTalkUser->setDateLast(null);
$this->Talk_AddTalkUser($oTalkUser); 
}

}

и создаем соответсвующий notify.pm_reg.tpl в ВАШЕМ templates/skin/SKIN/
Привет!
Вы зарегистрировались на сайте <a href="{$DIR_WEB_ROOT}">123</a>!
У нас есть, это, это, а вот тут faq и т.д :)