Рейтинг
+6.78

LiveStreet

8 читателей, 51 топик

Иногда важно, чтобы люди увидели ЛС

LiveStreet
Этим способом, можно ЗАЕБАТЬ СУКА ЛЮДЕЙ :)
Появление окна при начальной загрузке браузера, куки удаляются при закрытии.


В случае наличия сообщений выдает предупреждения. Необходимо включить обновление для новых писем.


Как включить обновление значков при появлении сообщений?
Правим код в конфиге:
// Модуль Talk
$config['module']['talk']['reload']     = true;

*это увеличит нагрузку на сервер.

Скачать и активировать: 2me.be/z/message.zip

про ограничение длинны топика

LiveStreet
Длинна топика не может превышать 15000 симоволов. ©
Конечно сразу ответ, что нужно изменить параметр в config.php
$config['module']['topic']['max_length'] = 50000;  // на 50000 символов

Но это не поможет ;)

Открываем ActionTopic.class.php и находим блок
/**
                 * Проверяем есть ли содержание топика
                 */
                if (!func_check(getRequest('topic_text',null,'post'),'text',2,30000)) {
                        $this->Message_AddError($this->Lang_Get('topic_create_text_error'),$this->Lang_Get('error'));
                        $bOk=false;
                }

меняем на
/**
                 * Проверяем есть ли содержание топика
                 */
                if (!func_check(getRequest('topic_text',null,'post'),'text',2,Config::Get('module.topic.max_length'))) {
                        $this->Message_AddError($this->Lang_Get('topic_create_text_error'),$this->Lang_Get('error'));
                        $bOk=false;
                }

Красивый номер инвайтов

LiveStreet
Кому не нравится код инвайтов вида 5884804e763972972042b1fccd6f1d13.
Можно сделать красивые номера вида Y8EC-HRF-9I5.

Для этого открываем файл include/function.php и находим там функцию func_generator (81 строка). Не будем ее менять, так как она используется в других местах, а сделаем под ней свою:
/**
 * генерирует код инвайта
 */
function func_generator_invite() {
        $allowable_characters = "ABCDEFGHIJKLMNPQRSTUVWXYZ123456789";
        $ps_len = strlen($allowable_characters);
        mt_srand((double)microtime()*1000000);
        $pass = "";
        for($i = 0; $i < 12; $i++) {
                if(($i == 4) || ($i == 8)) {
                        $pass .= '-';
                } else {
                        $pass .= $allowable_characters[mt_rand(0,$ps_len-1)];
                }
        }
        return $pass;
}


Затем идем в файл classes/modules/user/User.class.php и находим функцию GenerateInvite (строка 444) и меняем там строку:
$oInvite->setCode(func_generator(32));

на
$oInvite->setCode(func_generator_invite());


Чтобы пользователи могли вводить код в любом регистре сделаем небольшое изменение в файле classes/modules/user/mapper/User.mapper.class.php изменив функцию GetInviteByCode (строка 444). Меняем строку:
if ($aRow=$this->oDb->selectRow($sql,$sCode,$iUsed)) {

на
if ($aRow=$this->oDb->selectRow($sql,strtoupper($sCode),$iUsed)) {

Поиск Яндекса вместо Sphinx

LiveStreet
Настраиваем форму поиска Яндекса site.yandex.ru/new_info.xml
Выбираем «оформление результатов поиска — в iframe странице» и пишем желаемый адрес страницы результатов поиска, например yoursite.ru/page/poisk

Копируем полученный html-код поисковой формы и вставляем его в sidebar.tpl вместо строк
<div class="block">
        <form action="{router page='search'}topics/" method="GET">
        <input class="text" type="text" onblur="if (!value) value=defaultValue" onclick="if (value==defaultValue) value=''" value="{$aLang.search}" name="q" />
        <input class="button" type="submit" value="{$aLang.search_submit}" />
        </form>
</div>

заключаем этот код в тег {literal}{/literal}

Создаем статическую страницу poisk(или же через запись, не суть важно). Для этого нужно активировать плагин static page. В поле «Текст» новой страницы снова вставляем код поисковой формы и затем второй код от Яндекса, примерно такой:
<div id="yandex-results-outer" onclick="return {encoding: ''}"></div>
<script type="text/javascript" src="http://site.yandex.net/load/site.js" charset="utf-8"></script>


Если с css проблемы.
в начале кода, в редакторе статической страницы
<div class="yandexform" style="width: 960px;" onclick="return {type: 2, logo: 'rb', arrow: false, webopt: false, websearch: false, bg: '#CCE5FF', fg: '#000000', fontsize: 14, suggest: true, site_suggest: true, encoding: ''}">

Кланвары

LiveStreet
Плагин кланваров, для каких-ниб кс-сообществ раз.
Скачать и активировать: 2me.be/z/clans.zip

И парочка других кланваров.
2me.be/z/clanwars_for_all.rar

Еще, плагин, вывода мониторинга игровых серверов. Просто в отдельный блок сайдбара.
Скачать и активировать: 2me.be/z/gameservers.rar

Настройка игровых серверов осуществляется в файле config/config.php
Новый сервер нужно добавить в массив gs.servers
Config::Set('gs.servers', array(
	'cs16' => array(								// - Уникальный идентификатор (для внутреннего использования в плагине)
		'title'		=> "Counter-Strike 1.6",		// - Название для отображения
		'host'		=> array("host"),				// - Список IP-адресов сервера (в случае, если один и тот же сервер доступен по разным адресам)
		'port'		=> array("port"),				// - Список соответствующих IP-адресам портов
		'class' 	=> "CounterStrike16",			// - Имя класса обработчика сервера (для данного обработчика, например, модуль называется PluginGameServers_ModuleCounterStrike16)
		'link'		=> "http://cs16.example.com"	// - Ссылка на страницу с описанием сервера
	),
));

Автоподключение свежерегнутых юзеров к коллективным блогам, по выбору

LiveStreet
Иногда есть домены c livestreet, где владельцу сайта хотелось бы сделать так, чтобы все новые пользователи автоматически присоединялись бы к заданным блогам. (а это и авто-рассылка на email и прочее, если включено в настройках)

После установки, админам будет доступна страничка вашсайт/mhb на которой в списке блогов можно проставить галочки какие блоги автоподключать и от каких запретить отключаться. :)

Плагин: 2me.be/z/mhb-1.0.0.zip

Sticky Topics

LiveStreet
сайт/admin/stickytopics – Админка.
Зайти могут не только администраторы всего сайта, но и пользователи, являющиеся администраторами в каких-либо блогах. А так же и обычные пользователи — администраторы своих персональных блогов.

Можно запретить админам блогов использовать настройку прикрепления, отредактировав файл config/config.php и установив параметр allow_blog_admins в значение false. Для запрета обычным пользователям прикреплять записи в их персональных блогах, следует установить параметр allow_personal_blogs в false.

В двигле.
Прикрепленные топики на главной странице сайта.
Открываем файл из каталога шаблона actions/ActionIndex/index.tpl
Перед строчкой
{include file='topic_list.tpl'}

Вставить строчку
{hook run='get_sticky_topics' aTopics=$aTopics}

Чтобы убрать прикрепленные топики со страниц после первой, следует использовать такой вызов хука:
{hook run='get_sticky_topics' aTopics=$aTopics aPaging=$aPaging}

Еще может быть случай, когда прикрепленные топики требуется вывести как-то по-другому, нежели стандартной лентой. Может быть просто названия. Тогда к вызову хука надо добавить параметр outName, который задает имя массива, в который будут помещаться прикрепленные записи.
{hook run='get_sticky_topics' aTopics=$aTopics aPaging=$aPaging outName=aSticky}
{if $aSticky}
{foreach from=$aSticky item=oTopic}
{$oTopic->getTitle()|escape:html}
{/foreach}
{/if}

Тогда в результате работы хука в массиве шаблона aSticky окажутся прикрепленные топики, а массив aTopics останется неизменным. Если, все же, из массива aTopics требуется убрать прикрепленные топики, то хуку надо задать параметр removeSticky
{hook run=’get_sticky_topics’ aTopics=$aTopics aPaging=$aPaging outName=aSticky removeSticky=true}

Прикрепленные топики на странице конкретного блога.
Для того, чтобы вывести прикрепленные топики для каждого блога надо редактировать файл шаблона action/ActionBlog/blog.tpl
Единственное, чем отличается использование хука в конкретных блогах это, собственно, указание из какого, конкретно, блога брать записи. Делается это с помощью параметра blog_id:
{hook run='get_sticky_topics' aTopics=$aTopics blog_id=$oBlog->getId()}

Такой вызов хука в шаблоне блога прикрепит топики для текущего блога.
Все случаи, описанные для главной страницы сайта применимы и для конкретного блога, при добавлении параметра blog_id

Прикрепленные топики в персональном блоге пользователя
Тут надо менять шаблон action/ActionMy/blog.tpl
Для вывода прикрепленных топиков к персональному блогу требуется задать параметр blog_id равным -1 и указать дополнительный параметр oUser в который передать объект профиля пользователя. Для экшена ActionMy это объект oUserProfile
{hook run='get_sticky_topics' aTopics=$aTopics blog_id=-1 oUser=$oUserProfile}

Плагин: 2me.be/z/stickytopics-1.0.6.zip

Каптчу делаем хорошую

LiveStreet
livestreet captcha yandex

Скачиваем и распаковываем архив.
Папку Zloy_Taburet кладем в engine/lib/external/
Изображения zloy_taburet_arrow.gif и zloy_taburet_post.gif кладем в папку images вашего шаблона:
для шаблона new — \templates\skin\new\images\

Находим в файле \templates\language\russian.php строчку:
'registration_captcha' => 'Введите цифры и буквы',

и меняем на:
'registration_captcha' => 'Введите цифры слева',


Вставляем капчу в шаблон:

Для шаблона NEW
Находим в файле \templates\skin\new\actions\ActionRegistration\index.tpl:
{$aLang.registration_captcha}:<br />
                        <img src="{$DIR_WEB_ROOT}/classes/lib/external/kcaptcha/index.php?{$_sPhpSessionName}={$_sPhpSessionId}">
                        <p><input type="text" class="input-text" style="width: 80px;" name="captcha" value="" maxlength=3 /></p>

и меняем на:
<div class="zloy_taburet">
             <img class="taburet" src="{cfg name='path.root.engine_lib'}/external/Zloy_Taburet/index.php?{$_sPhpSessionName}={$_sPhpSessionId}" onclick="this.src='{cfg name='path.root.engine_lib'}/classes/lib/external/Zloy_Taburet/index.php?{$_sPhpSessionName}={$_sPhpSessionId}&n='+Math.random(); return false;" alt="" />
                                <img class="captcha" src="{cfg name='path.static.skin'}/images/zloy_taburet_arrow.gif" alt="" />
                                <div class="zloy_taburet_license">
                                        <label for="zloy_taburet_name">{$aLang.registration_captcha}:</label><br />
                                        <p><input type="text" class="input-text" style="width:80px;" name="zloy_taburet_name" value="" maxlength="6" /></p>
                                </div>
                                <div class="clear"></div>
                        </div>


Находим в файле \templates\skin\developer\css\style.css строчку:
.center-block .error { color: #f20909; }

и после нее добавляем это:
.center-block .zloy_taburet { height:74px; background:url("../images/zloy_taburet_post.gif") no-repeat 0px 0px; }
.center-block .zloy_taburet img.taburet { width:200px; height:60px; float:left; padding:7px 0 7px 5px; cursor:pointer; }
.center-block .zloy_taburet img.captcha { float:left; margin:30px 8px 0 15px; }
.center-block .zloy_taburet .zloy_taburet_license { float:left; margin-top:4px;}
.center-block .zloy_taburet .clear { clear:both; }


Находим в файле \classes\actions\ActionRegistration.class.php строчку:
if (!isset($_SESSION['captcha_keystring']) or $_SESSION['captcha_keystring']!=strtolower(getRequest('captcha'))) {

и меняем на:
if (!isset($_SESSION['captcha_keystring']) or $_SESSION['captcha_keystring']!=strtolower(getRequest('zloy_taburet_name'))) {


Если вам не нужна старая капча, то удалите папку \engine\lib\external\kcaptcha\

{literal}код{/literal}

LiveStreet
Наверняка у вас будет проблема, с вставками в стиль, каких-либо элементов.

Например код яндекс метрики.

Нада. В фаиле стиля обрамиь через {literal}
например /templates/skin/new/header.tpl
<body onload="prettyPrint()">

{literal}
<!-- Yandex.Metrika -->

её код

<!-- /Yandex.Metrika -->
{/literal}

{hook run='body_begin'}

Если надо вставить в другое место, то просто вставляем в теги {literal}код_счетчика{/literal}