Adaptive Hide BBcodes - как в этом моде добавить возможность, чтобы текст был виден только для пользователя с определённым ником?
http://www.phpbb.com/community/viewtopic.php?t=1501835
Adaptive Hide BBcodes
- Distructor
- Администратор
- Сообщения: 1607
- Зарегистрирован: 28.12.2009
такой возможности у этого мода нет, только если допиливать.
но если нужно что бы было видно только одному конкретному пользователю, то можешь создать отдельную группу и добавить нужного пользователя в нее. ну и в тегах уже указывать номер этой группы.
но если нужно что бы было видно только одному конкретному пользователю, то можешь создать отдельную группу и добавить нужного пользователя в нее. ну и в тегах уже указывать номер этой группы.
Придется искать пилу. А в группу помещать не вариант
-- добавлено 09 май 2012, 21:27 --
В моде есть несколько bbcode таких как: [hide], [ghide]
У меня есть модифицированный, т.е. +2 кода: [thide], [phide]
Теперь проблема заключается в следующем: нужно объединить все под один bbcode [hide], т.е. чтобы было так:
[hide=x1,x2,x3,x4]{TEXT}[/hide]
x1,x2,x3,x4 - кол-во сообщений, айди группы, количество тем, количество спасибок.
Возможно такое сделать? Если да, то в какую сторону копать? Видел такое в ipb и булке.
-- добавлено 09 май 2012, 21:27 --
В моде есть несколько bbcode таких как: [hide], [ghide]
У меня есть модифицированный, т.е. +2 кода: [thide], [phide]
Теперь проблема заключается в следующем: нужно объединить все под один bbcode [hide], т.е. чтобы было так:
[hide=x1,x2,x3,x4]{TEXT}[/hide]
x1,x2,x3,x4 - кол-во сообщений, айди группы, количество тем, количество спасибок.
Возможно такое сделать? Если да, то в какую сторону копать? Видел такое в ipb и булке.
- Distructor
- Администратор
- Сообщения: 1607
- Зарегистрирован: 28.12.2009
возможно если переделать весь код мода.
но есть ли смысл? если нужно ограничение по 2м параметрам то вложи просто теги друг в друга, да и путаницы будет меньше с разными тегами.
но есть ли смысл? если нужно ограничение по 2м параметрам то вложи просто теги друг в друга, да и путаницы будет меньше с разными тегами.
У меня по 7 параметрам идет ограничение. А 7 тегов друг в друге это не мало, поэтому и хотел как то сделать получше.
А на вскидку какой кусок нужно переделать? Там в принципе сам мод маленький.
А на вскидку какой кусок нужно переделать? Там в принципе сам мод маленький.
- Вложения
-
- Adaptive_Hide_BBcodes_1_0_2 (1).zip 61.1 КБ • 101 скачивание
- Distructor
- Администратор
- Сообщения: 1607
- Зарегистрирован: 28.12.2009
переделывать в основном надо часть добавляемую в includes/bbcode.php
но и остальные файлы надо будет переделывать
но и остальные файлы надо будет переделывать
- Distructor
- Администратор
- Сообщения: 1607
- Зарегистрирован: 28.12.2009
будет время попробую что получится, а там и обсудим
- Distructor
- Администратор
- Сообщения: 1607
- Зарегистрирован: 28.12.2009
ну как бы я работаю днем, а вечером не всегда есть желание чем-то заниматься.
пока не смотрел
пока не смотрел
Наверное это надолго
Вот такие у меня вопросы:
1. Как сделать хайд под имя?
2. Как сделать хайд под репу? User Reputation Points 0.3.5
3. Как сделать хайд под количество приглашенных? phpBB Invite 2.0
4. Как сделать хайд под это viewtopic.php?t=899 "4)К выплате: =1-2-3+5 (поле должно отражаться в темах)" ?
includes/bbcode.php
Вот код под количество спасибок
Вот код под количество тем:
Distructor, поможешь доделать? А то вообще ничего не понимаю в этом
Остальные файлы которые нужно поправить - я поправлю, там легко. А вот с includes/bbcode.php все гораздо сложнее
Вот такие у меня вопросы:
1. Как сделать хайд под имя?
2. Как сделать хайд под репу? User Reputation Points 0.3.5
3. Как сделать хайд под количество приглашенных? phpBB Invite 2.0
4. Как сделать хайд под это viewtopic.php?t=899 "4)К выплате: =1-2-3+5 (поле должно отражаться в темах)" ?
includes/bbcode.php
Вот код под количество спасибок
Код: Выделить всё
if (substr_count($preg['search'][0], '[bhide\=') && !$auth->acl_get('m_edit', $row['forum_id']) && $user->data['user_id'] != $poster_id)
{
$sql = 'SELECT group_id
FROM ' . USER_GROUP_TABLE . '
WHERE user_id = ' . (int)$poster_id . '
AND user_pending = 0';
$result = $db->sql_query($sql);
$poster_groups = array();
while ($sql_row = $db->sql_fetchrow($result))
{
$poster_groups[] = $sql_row['group_id'];
}
$db->sql_freeresult($result);
$ignore_groups = explode(',', ADAPT_HIDE_IGNORE_LIMIT_GROUPS);
$ignore_limit = false;
foreach ($poster_groups as $poster_group)
{
if (in_array($poster_group, $ignore_groups))
{
$ignore_limit = true;
break;
}
}
$sql = 'SELECT poster_id, COUNT(*) AS user_receive_count
FROM ' . THANKS_TABLE . "
WHERE poster_id = " . (int) $user->data['user_id']. '
GROUP BY poster_id';
$result = $db->sql_query($sql);
$user_receive_count = (int) $db->sql_fetchfield('user_receive_count');
$db->sql_freeresult($result);
$hide_matches = array();
preg_match_all($preg['search'][0], $message, $hide_matches);
foreach ($hide_matches[1] as $key => $thanks)
{
if (!$ignore_limit)
{
$thanks = min($thanks, ADAPT_HIDE_LIMIT_POSTS, $user_receive_count);
}
$hide_cause = false;
if ($user->data['user_id'] == ANONYMOUS || $user->data['is_bot'] == 1)
{
if ($thanks == 0)
{
$hide_cause = $user->lang('ADAPT_HIDE_GUEST');
}
else
{
$hide_cause = sprintf($user->lang('ADAPT_HIDE_GUEST_THANKS'), $thanks);
}
}
elseif ($user_receive_count < $thanks)
{
$hide_cause = sprintf($user->lang('ADAPT_HIDE_THANKS'), $thanks);
}
if ($hide_cause)
{
$hide_submatches = array();
preg_match_all('/<!\-\- ia([0-9]+) \-\->(.*?)<!\-\- ia\1 \-\->/', $hide_matches[0][$key], $hide_submatches);
foreach ($hide_submatches[1] as $ia_index)
{
$hide_ia_indexes[] = $ia_index;
}
$message = str_replace($hide_matches[0][$key], '[bhide=' . $thanks . ':' . $this->bbcode_uid . ']' . $hide_cause . '[/bhide:' . $this->bbcode_uid . ']', $message);
}
}
}
Код: Выделить всё
if (substr_count($preg['search'][0], '[thide\=') && !$auth->acl_get('m_edit', $row['forum_id']) && $user->data['user_id'] != $poster_id)
{
$sql = 'SELECT group_id
FROM ' . USER_GROUP_TABLE . '
WHERE user_id = ' . (int)$poster_id . '
AND user_pending = 0';
$result = $db->sql_query($sql);
$poster_groups = array();
while ($sql_row = $db->sql_fetchrow($result))
{
$poster_groups[] = $sql_row['group_id'];
}
$db->sql_freeresult($result);
$ignore_groups = explode(',', ADAPT_HIDE_IGNORE_LIMIT_GROUPS);
$ignore_limit = false;
foreach ($poster_groups as $poster_group)
{
if (in_array($poster_group, $ignore_groups))
{
$ignore_limit = true;
break;
}
}
$sql = 'SELECT topic_poster, COUNT(*) AS user_topics
FROM ' . TOPICS_TABLE . "
WHERE topic_poster = " . (int) $user->data['user_id']. '
GROUP BY topic_poster';
$result = $db->sql_query($sql);
$user_topics = (int) $db->sql_fetchfield('user_topics');
$db->sql_freeresult($result);
$hide_matches = array();
preg_match_all($preg['search'][0], $message, $hide_matches);
foreach ($hide_matches[1] as $key => $topics)
{
if (!$ignore_limit)
{
$topics = min($topics, ADAPT_HIDE_LIMIT_POSTS, $user_topics);
}
$hide_cause = false;
if ($user->data['user_id'] == ANONYMOUS || $user->data['is_bot'] == 1)
{
if ($topics == 0)
{
$hide_cause = $user->lang('ADAPT_HIDE_GUEST');
}
else
{
$hide_cause = sprintf($user->lang('ADAPT_HIDE_GUEST_TOPICS'), $topics);
}
}
elseif ($user_topics < $topics)
{
$hide_cause = sprintf($user->lang('ADAPT_HIDE_TOPICS'), $topics);
}
if ($hide_cause)
{
$hide_submatches = array();
preg_match_all('/<!\-\- ia([0-9]+) \-\->(.*?)<!\-\- ia\1 \-\->/', $hide_matches[0][$key], $hide_submatches);
foreach ($hide_submatches[1] as $ia_index)
{
$hide_ia_indexes[] = $ia_index;
}
$message = str_replace($hide_matches[0][$key], '[thide=' . $topics . ':' . $this->bbcode_uid . ']' . $hide_cause . '[/thide:' . $this->bbcode_uid . ']', $message);
}
}
}
Остальные файлы которые нужно поправить - я поправлю, там легко. А вот с includes/bbcode.php все гораздо сложнее