+3.20
Рейтинг

Виталий Никсенкин

Еще немного иногда полезных плагинов

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

Проверка грамотности при помощи Yandex spell API.
Позволяет проверять корректность текстов топиков при помощи яндекса. В данной версии выводит специальный блок, в правой части экрана, при нажатии на нем осуществляется проверка грамотности написания топика.
Скачать и активировать.

Добавление к посту, ссылки на источник.
Пойдет тем, кто прямо батхерит, когда их копипастят через rss или граберами всякими. Теперь копипаститься будет и ссылка на исходный пост ;)
Скачать и активировать.

Список топиков из этого же блога, под постом.
Данный плагин выводит после текста топика, список топиков из этого же блога и переключаться между ними. Что бы им воспользоваться нужно будет поменять файл topic.tpl
найти
<li class="author"><a href="{$oUser->getUserWebPath()}" rel="nofollow">{$oUser->getLogin()}</a></li>
</ul>

после добавить
{hook run='topic_after_tags' oTopic=$oTopic} 

После этого скачать и активировать.

Плагин «Topic Delete»
Плагин решает проблему с удалением записей из таблицы prefix_topic_content при удалении топика. (по умолчанию из sql ничего не удаляется)
В комплекте файл sql.php который чистит записи из prefix_topic_content уже удаленных топиков. (запускается httр://_ваш_сайт_/plugins/topicdelete/sql.php)
Скачать.

Прикрепление файлов к топику
Скачать.

Переключалка скинов
Добавляет меню, переключения стилей.
Скачать плагин.

Переключалка языков
Добавляет меню, переключения установленных языков.
Скачать плагин.

Feedback (Обратная связь)

Обратную связь по сути можно и не делать :) Но если кому-то, хочется, Отдельной Формочкой, как по старинке.
Умеет: анти-флуд контроль; возможность отображени обратной связи для гостей в закрытом режиме работы сайта; возможность вывода ссылки на обратную связь в формы регистрации и авторизации; возможность вывода ссылки на обратную связь в главное меню сайта; возможность замены текстового поля «Тема письма» выпадающим списком; возможность указывать несколько ящиков, на которые будут приходить письма.
Входящий адресс(а) указывается в файле: \plugins\feedback\config\config.php
Все настройки находятся в файле: \plugins\feedback\config\config.php
Добавить элементы в выпадающий список тем можно в файле: \plugins\feedback\templates\language\язык.php
Шаблон письма можно отредактировать в файле: \plugins\feedback\templates\skin\скин\notify\язык\notify.feedback.tpl
Скачать и активировать.

Объединение пользователей двух сайтов livestreet

Есть одна база данных, в ней два сайта с разными префиксами ls_ и ls2_, и нужно объединить таблицу ls_user так чтобы пользователям одного сайта не приходилось регаться второй раз

1. для начала выбираем главную таблицу, пусть будет ls_user,
2. Идем на второй сайт config/config.local.php ищем там строчку
$config['db']['table']['prefix'] = 'ls2_';

3. Ниже неё добавляем
$config['db']['table']['prefix_ls'] = 'ls_';

4. Там-же ищем строчку
$config['db']['table']['user'] = '___db.table.prefix___user';

5. Заменяем ее на
$config['db']['table']['user'] = '___db.table.prefix_ls___user';

Рекламные блоки для LS

Плагин «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 ;


Скачать плагин

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

Кому не нравится код инвайтов вида 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)) {

Напоминание о непрочитанном лс

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


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


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

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

Скачать и активировать.

Редактирование id

Если вам, все же, приспичило страдать хуетой.

То для редактирования Людей, или там Комментариев, есть два плагина.

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

Редактирование комментариев +TinyMCE

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

НО, если все же что-то не так. (у меня не на всех стилях работало)
То делайте вот это.
comment_tree.tpl
на второй строчке, сразу после
<script ... src=".../comments.js"></script>

вставить
{include file='cmtedit_form.tpl'}

comment.tpl
перед кнопкой удаления коммента:
{if !$oComment->getDelete() and $oUserCurrent and $oUserCurrent->isAdministrator()}

вставить
{include file='cmtedit_button.tpl'}

в том же comment.tpl
найти
<div class="text">
        {if $oComment->isBad()}
                <div style="display: none;" id="comment_text_{$oComment->getId()}">
                {$oComment->getText()}
                </div>
                 <a href="#" onclick="$('comment_text_{$oComment->getId()}').style.display='block';$(this).style.display='none';return false;">{$aLang.comment_bad_open}</a>
        {else}  
                {$oComment->getText()}
        {/if}                                                           
</div>

заменить на:
<div class="text" id="comment_text_{$oComment->getId()}" {if $oComment->isBad()}style="display: none;"{/if}>
        {$oComment->getText()}
</div>                          
{if $oComment->isBad()}
        <div class="text-more">
                <a href="#" onclick="$('comment_text_{$oComment->getId()}').style.display='block';this.parentNode.style.display='none';return false;">{$aLang.comment_bad_open}</a>
        </div>
{/if}
{if $oComment->getCommentDateEdit()}
        <div class="text-more edit-info">
                {$oComment->getEditInfo()}
        </div>
{/if}

Отправка подписки через jabber

Все последующие шаги можно делать только если вы добавили поле jabber'а в профиль! :)
Например плагином Социальные контакты.

Берем необходимые файлики, копируем каталоги /classes/, /config/ и /template/languages/ соответственно в каталоги classes/ config/ и languages/ на хосте, где установлен LS.
Потребуется замена файла Notify.class.php

Копируем файлы из каталога templates/skin/new/notify в соответствующий каталог используемой вами темы.
Выполняем sql запрос: (на всякий не забывайте делать бекапы sql, при любой работе с sql, ибо если там что-то накосячится, то это геморой)
alter table prefix_user add user_settings_notice_method enum('mail', 'jabber') not null default 'mail' after user_profile_foto;

Находим в файле /classes/actions/ActionSettings.class.php
if (isset($_REQUEST['submit_settings_tuning'])) {
    $this->Security_ValidateSendForm();

и после этого добавляем:
$sNoticeMethod = getRequest('settings_notice_method');
            if ($sNoticeMethod == "jabber" && is_null($this->oUserCurrent->getProfileJabber())) {
                $this->Message_AddErrorSingle($this->Lang_Get('settings_tuning_no_jid'));
                return;
            }
            $this->oUserCurrent->setSettingsNoticeMethod( $sNoticeMethod );


Находим
$this->oUserCurrent->setProfileJabber(null);
и добавляем после этого:
$this->oUserCurrent->setSettingsNoticeMethod('mail');


в файле: /classes/modules/user/entity/User.entity.class.php находим:
return $this->_aData['user_profile_foto'];
    }

и добавляем после этого:
public function getSettingsNoticeMethod() {
        return $this->_aData['user_settings_notice_method'];
    }

находим:
$this->_aData['user_profile_foto']=$data;
    }

и добавляем после этого:
public function setSettingsNoticeMethod($data) {
        $this->_aData['user_settings_notice_method']=$data;
    }


в файле: /classes/modules/user/mapper/User.mapper.class.php находим:
user_profile_foto = ? ,

и добавляем следом:
user_settings_notice_method = ? ,

находим:
$oUser->getProfileFoto(),

и добавляем следом:
$oUser->getSettingsNoticeMethod(),


в файле /templates/skin/<ваша-тема>/actions/ActionSettings/tuning.tpl находим:
<label for=""><input {if $oUserCurrent->getSettingsNoticeNewFriend()}checked{/if} type="checkbox" id="settings_notice_new_friend" name="settings_notice_new_friend" value="1" class="checkbox" /> — {$aLang.settings_tuning_notice_new_friend}</label>


и после этого добавляем:
<br />
    <select name="settings_notice_method" style="width: 200px;">
        <option value="mail" {if $oUserCurrent->getSettingsNoticeMethod()=='mail'}selected{/if}>{$aLang.settings_tuning_notice_method_mail}</option>
        <option value="jabber" {if $oUserCurrent->getSettingsNoticeMethod()=='jabber'}selected{/if}>{$aLang.settings_tuning_notice_method_jabber}</option>
    </select>


конфиг /config/modules/jabber/config.php надо исправить в соответствии со своими настройками, указав jid от имени которого будут рассылаться уведомления.

Создание рассылок

Создание каких-то любых рассылок, по критериям из профиля юзеров.
Говно хосты, или vps с лимитами на отправку исходящего — не получится. Даже не пытайтесь.

  • Есть возможность фильтра получателей по свойству «Пол» («мужчины», «женщины», «не указан»)
  • Можно посмотреть список рассылок и статус хода рассылки
  • В списке рассылок можно приостановить начатую рассылку или возобновить приостановленную
  • Можно выбирать стартовать или не стартовать рассылку сразу после её сохранения
  • Рассылка производится не сразу, а пачками по 20 писем (количество можно менять в конфиге). Для этого нужно поцепить на cron скрипт рассылки /plugins/mailing/include/cron/send-mail.php
  • Отправленные сообщения не отображаются в вашем списке сообщений до тех пор пока пользователь не ответит на это сообщение (вам ведь важна обратная связь с пользователями?).

Для того, чтобы сообщения отправлялись нужно поцепить на cron скрипт рассылки /plugins/mailing/include/cron/send-mail.php. У нас он запускается каждые 5ть минут:
*/5 * * * * /var/www/domain.ru/www/plugins/mailing/include/cron/send-mail.php

*http://ru.wikipedia.org/wiki/Cron

сайт.ru/mailing/ Рассылка сообщений
сайт.ru/mailing/list Список рассылок

Скачать и активировать.