+22.15
Рейтинг
88.90
Сила

Уведомление в личку о принятии (отклонении) приглашения в друзья (Решено)

Если отправляем приглашение дружить, юзер получает уведомление в личку с текстом приглашения и ссылками «Принять, „Отклонить“. При клике по одной из ссылок, друг добавляется или нет.

1. Как можно реализовать чтобы текст приглашения был не только у приглашаемого в личке, но и сохранялся у отправителя приглашения в личке с темой типа „Приглашение дружить“?

2. Как можно реализовать получение уведомления в личку для отправителя приглашения?:
»У вас появился новый друг. Пользователь XXX принял ваше приглашение дружить"
или
«Пользователь XXX отклонил ваше приглашение дружить»
Желательно ответом в то же письмо из п. 1.

3. Также после того как юзеры в друзьях, если кто-то из них удаляет другого из друзей, то «удалившийся» должен получать уведомление в личку «Пользователь XXX удалил вас из друзей». Затем он может вновь добавить (уже без заявки) — опять шлем уведомление «Пользователь XXX добавил вас в друзья»

Решение

Подключение js в плагине (Почти решено)

Есть ли разница в подключении js плагина?:
  1. Через хук:
    public function InitAction() {
        $this ->Viewer_AppendScript (Plugin::GetTemplateWebPath (__CLASS__).'js/somejs.js');
        ...
    }
  2. Или через класс плагина:
    public function Init() {
        $this->Viewer_AppendScript (Plugin::GetWebPath (__CLASS__).'js/somejs.js');
        ...
    }

Может ли это сказаться на слиянии js?

Почему для некоторых js нужно запрещать слияние?
Читать дальше →

"Новые за сутки" и "Непросмотренные"

Стандартно на сайте LS можно видеть количество новых за 24 часа топиков (цифра после «Новые», ведущая на index(blog)/new). Все вместе отображаются по index(blog)/newall

В связи с этим возникли вопросы:

1. Возможно ли реализовать вывод топиков по дате с фильтрами пероида (как в «обсуждаемых», «топ»)? Т.е. ссылки должны быть вида:
Читать дальше →

Адаптация плагина к плагину. Как правильно? (Решено)

Дано:
— плагин «One», который инжектит поле по хуку {hook run='standart_hook'}
— плагин «Two», в котором используется шаблон с нестандартным хуком {hook run='modified_hook'}

Для адаптации плагина к плагину при использовании «нестандартных» хуков нашел 3 варианта:
Читать дальше →

Размещаем сайдбар слева

По мотивам этого топика и многих других.
Если стоит задача расположить сайдбар слева на всем сайте, то все решается через css.

А что если нужно разместить сайдбар слева не на всем сайте, а на определенных экшенах/эвентах?
Читать дальше →

Заголовок ответа сервера

Обнаружил в заголовке ответа сервера
Set-Cookie: LANG_CURRENT=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/
Самое интересное, что при гуглении LANG_CURRENT=deleted в выдаче почти все сайты на livestreet.

По поводу expires вычитал здесь:
Expires — Задает дату истечения срока годности документа. Задание ее в прошлом определяет запрет кэш для данной страницы.

Подскажите что означают эти поля?

UPD: выяснилось, что в данном контексте expires — это время хранения cookie. Если оно в прошлом или не указано, то куки хранятся только 1 сеанс, т.е. до закрытия браузера.

Кнопка с меняющейся по клику иконкой (bootstrap)

Имеется кнопка подписки/отписки в профиле пользователя с иконкой:
<li class="follow">
    <a href="#" onclick="ls.user.followToggle(this, {$oUserProfile->getId()}); return false;" class="btn btn-xs btn-default">
        <i class="icon{if $oUserProfile->isFollow()} icon-minus{else} icon-plus{/if}></i>{if $oUserProfile->isFollow()} {$aLang.profile_user_unfollow}{else} {$aLang.profile_user_follow}{/if}
    </a>
</li>


Чуть выше прогружаютя текстовки:
<script>
    jQuery(function($){
        ls.lang.load({lang_load name="profile_user_unfollow,profile_user_follow"});
    });
</script>


Стоит задача, чтобы иконка менялась в соответствие с текущим статусом подписки.
Получается, но при подписке иконка исчезает и появляется только при перезагрузке страницы. Т.е. if-ы в классах иконки сразу не отрабатывают.

При подписке для li.follow a задется класс followed.
Это делает скрипт из user.js:
this.followToggle = function(obj, iUserId) {
    if ($(obj).hasClass('followed')) {
        ls.stream.unsubscribe(iUserId);
        $(obj).toggleClass('followed').text(ls.lang.get('profile_user_follow'));
    } else {
        ls.stream.subscribe(iUserId);
        $(obj).toggleClass('followed').text(ls.lang.get('profile_user_unfollow'));
    }
    return false;
};

Попробовал задать для li.follow a background-image с нужными координатами в спрайте, а для li.follow a.followed соответствующий background-position. Все работает как надо. Но «рушиться» bootstrap-овская кнопка и надо верстать вручную.

Вопрос: Что необходимо дописать в скрипт выше, чтобы иконке задавался соответствующий класс (icon-plus и icon-minus)?