Добавление кнопки для предупреждения во всплывающий профиль и блок сообщения - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы оформления форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Оформление форумов IPB 2.x.
Настройка форумов, включая установку и техническую настройку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

Добавление кнопки для предупреждения во всплывающий профиль и блок сообщения

#1 Пользователь не на сайте   tasker ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 145
  • Регистрация: 01-Август 13
  • Репутация: 12
  • IPB version:3.4.x
 

Отправлено 03 Август 2013 - 13:55

Здравствуйте.

По просьбе пользователей сайта опубликую инструкцию по добавлению кнопки предупреждения пользователя во всплывающем профиле пользователя (шаблон showCard) и в блоке сообщения темы (шаблон post).

Итак, в шаблоне showCard надо найти код
<li><a href='{parse url="app=members&amp;module=profile&amp;section=friends&amp;do=add&amp;member_id={$member['member_id']}&amp;secure_key={$this->member->form_hash}" base="public"}' title='{$this->lang->words['add_friend']}'>{parse replacement="add_friend"}/a></li>								
				</if>
			</if>

и после него вставить следующий код
<if test="$this->memberData['is_mod']">
			<li><a href='{parse url="app=members&module=profile&section=warnings&do=add&member={$member['member_id']}&from_app={$this->request['from_app']}&from_id1={$this->request['from_id1']}&from_id2={$this->request['from_id2']}" base="public"}' title='{$this->lang->words['warnings_add']}'>{parse replacement="t_announcement"}</a></li>
</if>

Это добавит кнопку для предупреждения пользователя из всплывающего мини-профиля. Кнопка будет отображаться только у админов.
Вложение  warn1.JPG (2,32К)
Количество загрузок: 6

В начало шаблона post надо вставить
<php>ipsRegistry::getClass('class_localization')->loadLanguageFile( array( 'public_profile' ), 'members' );</php>

А это код самой кнопки для предупреждения пользователя
<if test="$this->memberData['is_mod']">
			<li><a href='{parse url="app=members&module=profile&section=warnings&do=add&member={$post['author']['member_id']}&from_app={$this->request['from_app']}&from_id1={$this->request['from_id1']}&from_id2={$this->request['from_id2']}" base="public"}' title='{$this->lang->words['warnings_add']}' class='ipsButton_secondary'>{$this->lang->words['warnings_add']}</a></li>
</if>

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

Это добавит кнопку для предупреждения пользователя из блока сообщения. Кнопка будет отображаться только у админов.
Вложение  warn2.JPG (2,79К)
Количество загрузок: 6
2

#2 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 166
  • Регистрация: 26-Октябрь 11
  • Репутация: 814
  • IPB version:I have no IPB
 

Отправлено 03 Август 2013 - 16:46

Просмотреть сообщениеtasker сказал(а):

Кнопка будет отображаться только у админов.

А также у супермодераторов и модераторов форумов, исходя из условия
<if test="$this->memberData['is_mod']">

Что-то (условия) можете взять из этой темы http://ipbskins.ru/f.../topic7101.html
+
&from_app={$this->request['from_app']}&from_id1={$this->request['from_id1']}&from_id2={$this->request['from_id2']

значения параметров в 99% будут пустыми.

П.С. А почему ссылка сразу на форму выдачи предупреждений? Неудобно ведь. Один админ выдал пред, другой, перейдя по ссылке, не посмотрев историю, нажав на новую кнопку.
1

#3 Пользователь не на сайте   tasker ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 145
  • Регистрация: 01-Август 13
  • Репутация: 12
  • IPB version:3.4.x
 

Отправлено 03 Август 2013 - 17:18

Просмотреть сообщениеnewbie 03 Август 2013 - 16:46 сказал(а):

А также у супермодераторов и модераторов форумов


Да. Так и задумывалось.

Просмотреть сообщениеnewbie 03 Август 2013 - 16:46 сказал(а):

значения параметров в 99% будут пустыми.


Насколько понял, эти конкретные параметры особо на вынесение предупреждения не влияют. Позже ещё изучу код.

Просмотреть сообщениеnewbie 03 Август 2013 - 16:46 сказал(а):

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


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

#4 Пользователь не на сайте   tasker ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 145
  • Регистрация: 01-Август 13
  • Репутация: 12
  • IPB version:3.4.x
 

Отправлено 03 Август 2013 - 17:32

Цитата

from_app={$this->request['app']}
использовал, однако после вынесения предупреждения из форума в истории предупреждений не пишет где оно сделано. Надо изучать код вынесений и отображения предупреждений.
0

#5 Пользователь на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 720
  • Регистрация: 20-Март 09
  • Репутация: 2 269
  • IPB version:3.1.x
 

Отправлено 03 Август 2013 - 19:12

Просмотреть сообщениеtasker сказал(а):

from_app={$this->request['app']}

{$this->request['app']} можно заменить сразу на members раз это showCard
1

#6 Пользователь не на сайте   tasker ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 145
  • Регистрация: 01-Август 13
  • Репутация: 12
  • IPB version:3.4.x
 

Отправлено 03 Август 2013 - 19:43

Прикол в том, что при from_app=forums в описании вынесенного предупреждения не указывается где оно вынесено. Надо изучить код обработки параметра from_app и уж потом думать, что туда вставлять. В оригинальной кнопке было from_app=members и при просмотре предупреждения выводило, что оно вынесено в разделе "Профиль".
0

#7 Пользователь на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 720
  • Регистрация: 20-Март 09
  • Репутация: 2 269
  • IPB version:3.1.x
 

Отправлено 03 Август 2013 - 20:29

Для forums требуется еще и ид поста (from_id1). Так что нет смысла его указывать в showCard
Для post можно, $this->request['from_id1'] поменять на ид поста и $this->request['from_app'] сразу захардкоть на forums
1

#8 Пользователь не на сайте   tasker ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 145
  • Регистрация: 01-Август 13
  • Репутация: 12
  • IPB version:3.4.x
 

Отправлено 03 Август 2013 - 20:58

siv1987, спасибо, что не заставил лезть в код. Для post сделал {$post['post']['pid']} работает отлично - в истории предупреждений видно где предупредили.
0

#9 Пользователь не на сайте   tasker ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 145
  • Регистрация: 01-Август 13
  • Репутация: 12
  • IPB version:3.4.x
 

Отправлено 03 Август 2013 - 21:21

Дальше поинтереснее задачи есть - расширить функционал списка "Кто в онлайне", улучшить инструменты модеров и админа по работе с IP пользователя. Скажем, если пользователь входил, но ничего при этом не писал, то стандартные инструменты не выводят IP использовавшийся для входа. Видимо, IP фиксируется только при регистрации и написании постов. Это не есть хорошо.

Ещё нужен хук для слежения за активностью пользователя. Не уверен, что IPB хранит все разделы и темы, которые посещал конкретный пользователь. А по куску лога web-сервера не установить какой это пользователь залогинился, чтобы по IP из лога выбоать его активность. Разве что по ID сессии что-то поковырять.

Буду изучать понемногу.
0

#10 Пользователь на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 720
  • Регистрация: 20-Март 09
  • Репутация: 2 269
  • IPB version:3.1.x
 

Отправлено 03 Август 2013 - 21:31

Просмотреть сообщениеtasker сказал(а):

Скажем, если пользователь входил, но ничего при этом не писал, то стандартные инструменты не выводят IP использовавшийся для входа. Видимо, IP фиксируется только при регистрации и написании постов. Это не есть хорошо.

В базе не предусмотрено хранения ip-адресов с каких пользователь зашел на форум. И смотря что считать входом - авторизацию, или создания новой сессии.
0

#11 Пользователь не на сайте   tasker ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 145
  • Регистрация: 01-Август 13
  • Репутация: 12
  • IPB version:3.4.x
 

Отправлено 03 Август 2013 - 21:39

Просмотреть сообщениеsiv1987 сказал(а):

В базе не предусмотрено хранения ip-адресов с каких пользователь зашел на форум.


Зачем тогда писать что-то типа "Этот IP использовался для входа" если на самом деле этот IP использовался для входа и написания сообщений?

Просмотреть сообщениеsiv1987 сказал(а):

И смотря что считать входом - авторизацию, или создания новой сессии.


Как и когда создаются и обновляются сессии мне ещё предстоит изучить. Время жизни сессии задаётся в настройках, значение её хранится в куках и в самом значении что-то зашифровано. Ну и в таблицах она по идее хранится. Сессии от PHP форум не использует, так понял.

Ладно, это уже для другого раздела.
0

#12 Пользователь на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 720
  • Регистрация: 20-Март 09
  • Репутация: 2 269
  • IPB version:3.1.x
 

Отправлено 03 Август 2013 - 22:50

Просмотреть сообщениеtasker сказал(а):

Зачем тогда писать что-то типа "Этот IP использовался для входа" если на самом деле этот IP использовался для входа и написания сообщений?

Ну логично же, что если написал пост значит этот айпи использовался и для входа.

Просмотреть сообщениеtasker сказал(а):

Как и когда создаются и обновляются сессии мне ещё предстоит изучить.

Создается при первом заходе после 15 минут простаивания (или другое время указанное в настройках).
Обновляется каждый раз при обновлении страницы.

Просмотреть сообщениеtasker сказал(а):

Сессии от PHP форум не использует, так понял.

Да, сессии хранятся в БД.
0

#13 Пользователь на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 720
  • Регистрация: 20-Март 09
  • Репутация: 2 269
  • IPB version:3.1.x
 

Отправлено 04 Июль 2015 - 11:50

Помогите с кнопкой "Предупреждения" в теме
0

Сообщить об этой теме:


Страница 1 из 1
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна