Автоподписка на темы на e107.

12
D
На сайте с 22.10.2007
Offline
90
1063

Помогите организовать автоподписку пользователем на темы, в которых он ответил (не создавал). Пробовал просить помощи на русско-язычном форуме поддержки, но там ответа в последнее время дождаться не просто. В лучшем случае ответят, что "никто никого учить не будет"

В общем, половина работы уже сделана создателями е107, но почему-то они не довели работу до конца. При загрузке страницы форума проверка на то подписан ли пользователь на тему или нет, происходит с помощью шоткода {track} и, в зависимости от результата, выдается строка "Отслеживать тему" или "Отписаться от темы".

Я предполагаю, что для решения моего вопроса нужно, чтобы пользователь в момент нажатия кнопки "Ответить" выполнял ещё дополнительно вот такой код:

//проверка на подписку на тему пользователя


if {пользователь == не подписан : пользователя -> подписать } ;

В последний момент нашел, что в CMS есть функция function track , которую я так понимаю можно прикрутить в код и которая ещё больше упрощает нам работу и код можно упростить к такому:

//проверка на подписку на тему пользователя


if {пользователь == не подписан : function track } ;

В общем, информации полно, но не могу это всё собрать в единое целое и правильно вставить в CMS. Прошу прощения за синтаксис - в php не силен :(

VHS-1980
На сайте с 21.05.2010
Offline
91
#1

а по какому условию выводятся подписи о подписке темы и отслеживании? )))

If(!'пользователь.подписан') {

track();

}

осталось найти чуток )

D
На сайте с 22.10.2007
Offline
90
#2

VHS-1980, пользователь может быть подписан только по двум условиям :

1. Создавал тему и поставил галочку "подписаться"

2. Зашел в тему, которая ему понравилась и нажал вверху кнопку подписаться на тему.

может и ещё есть условия, н эти основные.

Но суть не в том, а в том, что в движке уже вставлена проверка на то подписан ли пользователь или нет, поэтому писать её не нужно. Эта проверка осуществляется при загрузке пользователем страницы. В коде страницы вставлен так называемый "шоткод" с названием {track} (не знаю используется ли такое понятие в других CMS, поэтому больше ничего сказать не могу) , а вот этот шоткод я так понимаю основан на функции function track

function track($thread_id, $from)
{
$thread_id = intval($thread_id);
global $sql;
return $sql->db_Update("user", "user_realm='".USERREALM."-".$thread_id."-' WHERE user_id=".USERID);
}

вот вроде она в файле классов форума. Но может быть и не она - я говорю, что не сильно разбираюсь :D

---------- Добавлено 16.12.2012 в 02:26 ----------

ох.. я так понимаю, что ответил не по теме, завтра попробую ответить точнее, но не знаю получится ли - я не в курсе как идет проверка на подписку (всё, что я знаю - это шоткодом {track} ) . Если бы знал, то и сам бы написал... :) поэтому и тему создавал.

P.s. вот может поможет - кусочек кода страницы где идет проверка :

<td style='text-align:right'>&nbsp;{TRACK}&nbsp;</td>

обратите внимание на {TRACK} в строке - это и есть проверка.

WebAlt
На сайте с 02.12.2007
Offline
262
#3

Ух ты, e107 возвратился? Я бы прошел мимо, чем его использовать. ИМХО

D
На сайте с 22.10.2007
Offline
90
#4
WebAlt:
Ух ты, e107 возвратился? Я бы прошел мимо, чем его использовать. ИМХО

да там непонятная ситуация. Вроде уже полным ходом готовят версию 2, хотя только недавно вышла 1. Но с другой стороны из 5-ти разрабов работают только 2 :( А переходить на другой не хочу пока, слишком много работы придется выполнять, да и не вижу нормальной альтернативы. Думал о Джумле, но почитал ветку о ней с её постоянными частыми обновлениями и запоздалым обновлением расширений и передумал.

D
На сайте с 22.10.2007
Offline
90
#5

VHS-1980, не могу найти точное описание шоткода {TRACK} , который и является я так понимаю условием. Ищу.. не думайте, что я по вас забыл ☝

D
На сайте с 22.10.2007
Offline
90
#6

VHS-1980, не могу найти , задал вопрос на е107club Если ответят, то отпишусь. У самого ничего не получается - искал и с помощью pspad, нашел более 140 файлов , где есть упоминание, просмотрел их, но ничего не нашел того, что нужно :( гугл тоже не помог..

---------- Добавлено 16.12.2012 в 22:16 ----------

VHS-1980, вот такой код ещё нашел, может это оно , первая половина ? ))

if ($action == "track" && USER)

{
$forum->track($thread_id);
header("location:".e_SELF."?{$thread_id}.{$topic_from}");
exit;
}

if ($action == "untrack" && USER)
{
$forum->untrack($thread_id);
header("location:".e_SELF."?{$thread_id}.{$topic_from}");
exit;
}
VHS-1980
На сайте с 21.05.2010
Offline
91
#7

Ну значит при ответе юзера надо добавить код

if (USER)
{
$forum->track($thread_id);

}
// $thread_id должно быть объявлено в коде ответа, может иметь иное имя

Данный код надо вставить после отправки запроса на запись ответа в БД. Ну и проверить результат конечно.

D
На сайте с 22.10.2007
Offline
90
#8

VHS-1980, не пойму где тут проверка подписан пользователь или нет, повторюсь - я в php не силён. В слове USER ? Может так должно быть?


if ($action == "untrack" && USER)

{
$forum->track($thread_id);

}

или может вообще так нужно:


if (!'untrack' && USER)

{
$forum->track($thread_id);

}

Ок, завтра проверю и отпишусь, сегодня уже поздновато. Попробую все 3 варианта.

webrock
На сайте с 05.04.2010
Offline
261
#9
disker:


В общем, половина работы уже сделана создателями е107, но почему-то они не довели работу до конца.

на сколько мне помнится, по трэкбэк там было всё сделано от А до Я.

посмотрите в самом плагине форума, его настройках ... все ли соответствующие

галочки стоят? ну и в самой дизайнерской теме шорткод должен стоять в нужных

местах


Включить отслеживание
Выбрать для включения слежения за темой. При появлении новых сообщений в такой теме, пользователь будет получать сообщение на email
Полный аудит сайтов. (/ru/forum/765361)
D
На сайте с 22.10.2007
Offline
90
#10

webrock, это не трекбэк, это просто track и у него функция подписки на темы форума, а не отслеживания. А есть и трэкбэк , но это из другой оперы :)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий