Перейти к контенту
  • 0

Мод Закрепление Постов


Detomir

Вопрос

На многих форумах я видел такую вещь: первый пост в теме, можно закрепить, так что он будет автоматически появлятся в начале всех последующих страниц топика. Искал, но не чего не нашёл =( помогите, мод очень нужен.

====

P.S. И ещё... нужен мод, благодаря которому, можно посмотреть в голосованиях, кто за что проголосовал.

P.S.S. Если на форуме уже есть ответы на эти вопросы, не убивать =) Я два дня лазял, не чего не нашёл... =( не на форуме, не в Файловом Архиве.

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

TOIIOP

 

Нет, именно мод. Создав тему, жмёшь редактировать и внизу будет опция "Закрепить Пост", ставишь галку и пост "закрепляется". Такое можно проделать с любым постом в теме.

 

Если нужно, могу привести в доказательство скрин этой опции, с другого форума =)

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Да. тоже давно ищу подобный мод. Подумайте над этим, уважаемые IPB Team'щики. :D

О.. мы должны упасть ниц? ;)

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Есть более простая версия этого мода, там можно только первый пост закреплять

+---------------------------------------------------------------------

| Invision Power Board v2.1.x

| =================================================================

+---------------------------------------------------------------------

|

| > First pinned post mod

| > by Alex/AT

|

| > Version: 1.0

| > Date: 03.12.2006

| > Last Update: 03.12.2006

|

+---------------------------------------------------------------------

|

| > Version 1.0

| > - Initial release

|

+---------------------------------------------------------------------

|

| > This mod adds users and moderators possibility to pin and unpin

| > first post in any thread they have open/close rights.

|

+---------------------------------------------------------------------

|

| > Author is not responsible for any consequences of using this

| > forum modification, including those caused by this module

| > Use at your own risk

|

+---------------------------------------------------------------------

 

######################################################################

Execute the following SQL query on the database

======================================================================

ALTER TABLE `ibf_topics` ADD `pinned_post` TINYINT( 1 ) DEFAULT '0';

======================================================================

 

######################################################################

./sources/action_public/moderate.php

======================================================================

FIND

----------------------------------------------------------------------

//-----------------------------------------

// Edit member

//-----------------------------------------

case 'editmember':

$this->edit_member();

break;

----------------------------------------------------------------------

BELOW, ADD

----------------------------------------------------------------------

// [bEGIN] Alex/AT Mod: Pinning first post in the topics

case 'pinpost':

$this->pin_post();

break;

case 'unpinpost':

$this->unpin_post();

break;

// [END] Alex/AT Mod: Pinning first post in the topics

----------------------------------------------------------------------

FIND

----------------------------------------------------------------------

?>

----------------------------------------------------------------------

ABOVE, FIND

----------------------------------------------------------------------

}

----------------------------------------------------------------------

ABOVE, ADD

----------------------------------------------------------------------

// [bEGIN] Alex/AT Mod: Pinning first post in the topics

 

/*-------------------------------------------------------------------------*/

// PIN POST:

/*-------------------------------------------------------------------------*/

 

function pin_post()

{

if ($this->topic['pinned_post'])

{

$this->moderate_error();

}

 

$passed = 0;

 

if ($this->ipsclass->member['g_is_supmod'] == 1)

{

$passed = 1;

}

else if ($this->moderator['pin_topic'] == 1)

{

$passed = 1;

}

else if ($this->topic['starter_id'] == $this->ipsclass->member['id'])

{

$passed = 1;

}

else

{

$passed = 0;

}

 

if ($passed != 1) $this->moderate_error();

 

$this->modfunc->post_pin($this->topic['tid']);

 

$this->moderate_log("Первое сообщение темы «закреплено»");

 

$this->ipsclass->print->redirect_screen( $this->ipsclass->lang['p_pinned_post'], "showtopic=".$this->topic['tid']."&st=".$this->ipsclass->input['st'] );

 

}

 

/*-------------------------------------------------------------------------*/

// UNPIN POST:

/*-------------------------------------------------------------------------*/

 

function unpin_post()

{

if (! $this->topic['pinned_post'])

{

$this->moderate_error();

}

 

$passed = 0;

 

if ($this->ipsclass->member['g_is_supmod'] == 1)

{

$passed = 1;

}

else if ($this->moderator['unpin_topic'] == 1)

{

$passed = 1;

}

else if ($this->topic['starter_id'] == $this->ipsclass->member['id'])

{

$passed = 1;

}

else

{

$passed = 0;

}

 

if ($passed != 1) $this->moderate_error();

 

$this->modfunc->post_unpin($this->topic['tid']);

 

$this->moderate_log("Первое сообщение темы «откреплено»");

 

$this->ipsclass->print->redirect_screen( $this->ipsclass->lang['p_unpinned_post'], "act=ST&f=".$this->forum['id']."&t=".$this->topic['tid']."&st=".$this->ipsclass->input['st'] );

}

 

// [END] Alex/AT Mod: Pinning first post in the topics

======================================================================

 

######################################################################

./sources/action_public/topics.php

======================================================================

FIND

----------------------------------------------------------------------

//-----------------------------------------

// Post number

//-----------------------------------------

 

if ( $this->topic_view_mode == 'linearplus' and $this->topic['topic_firstpost'] == $row['pid'])

{

$row['post_count'] = 1;

 

if ( ! $this->first )

{

$this->post_count++;

}

}

----------------------------------------------------------------------

BELOW, ADD

----------------------------------------------------------------------

// [bEGIN] Alex/AT Mod: Pinning first post in the topics

elseif ($this->topic_view_mode == 'linear' and $this->topic['pinned_post'] and $this->topic['topic_firstpost'] == $row['pid'])

{

$row['post_count'] = '1 '.$this->ipsclass->lang['post_pinned'];

 

if ( $this->first < 1 )

{

$this->post_count++;

}

}

// [END] Alex/AT Mod: Pinning first post in the topics

----------------------------------------------------------------------

FIND

----------------------------------------------------------------------

$actions = array( 'MOVE_TOPIC', 'CLOSE_TOPIC', 'OPEN_TOPIC', 'DELETE_TOPIC', 'EDIT_TOPIC', 'PIN_TOPIC', 'UNPIN_TOPIC', 'MERGE_TOPIC', 'UNSUBBIT' );

----------------------------------------------------------------------

REPLACE WITH

----------------------------------------------------------------------

// Alex/AT Mod: Pinning first post in the topics

$actions = array( 'MOVE_TOPIC', 'CLOSE_TOPIC', 'OPEN_TOPIC', 'DELETE_TOPIC', 'EDIT_TOPIC', 'PIN_TOPIC', 'UNPIN_TOPIC', 'MERGE_TOPIC', 'PIN_POST', 'UNPIN_POST', 'UNSUBBIT' );

----------------------------------------------------------------------

FIND

----------------------------------------------------------------------

elseif ($key == 'OPEN_TOPIC' or $key == 'CLOSE_TOPIC')

{

if ($this->ipsclass->member['g_open_close_posts'])

{

$mod_links .= $this->append_link($key);

}

}

----------------------------------------------------------------------

BELOW, ADD

----------------------------------------------------------------------

// [bEGIN] Alex/AT Mod: Pinning first post in the topics

elseif ($key == 'PIN_POST' or $key == 'UNPIN_POST')

{

if ($this->ipsclass->member['g_open_close_posts'])

{

$mod_links .= $this->append_link($key);

}

}

// [END] Alex/AT Mod: Pinning first post in the topics

----------------------------------------------------------------------

FIND

----------------------------------------------------------------------

if ($this->topic['pinned'] == 1 and $key == 'PIN_TOPIC') return "";

if ($this->topic['pinned'] == 0 and $key == 'UNPIN_TOPIC') return "";

----------------------------------------------------------------------

BELOW, ADD

----------------------------------------------------------------------

// [bEGIN] Alex/AT Mod: Pinning first post in the topics

if (($key == 'PIN_POST' or $key == 'UNPIN_POST') and $this->topic['state'] != 'open') return "";

if ($this->topic['pinned_post'] == 1 and $key == 'PIN_POST') return "";

if ($this->topic['pinned_post'] == 0 and $key == 'UNPIN_POST') return "";

// [END] Alex/AT Mod: Pinning first post in the topics

----------------------------------------------------------------------

FIND

----------------------------------------------------------------------

'PIN_TOPIC' => '15',

'UNPIN_TOPIC' => '16',

'UNSUBBIT' => '30',

'MERGE_TOPIC' => '60',

'TOPIC_HISTORY' => '90',

----------------------------------------------------------------------

BELOW, ADD

----------------------------------------------------------------------

// [bEGIN] Alex/AT Mod: Pinning first post in the topics

'PIN_POST' => 'pinpost',

'UNPIN_POST' => 'unpinpost',

// [END] Alex/AT Mod: Pinning first post in the topics

======================================================================

 

######################################################################

./sources/lib/func_mod.php

======================================================================

FIND

----------------------------------------------------------------------

?>

----------------------------------------------------------------------

ABOVE, FIND

----------------------------------------------------------------------

}

----------------------------------------------------------------------

ABOVE, ADD

----------------------------------------------------------------------

// [bEGIN] Alex/AT Mod: Pinning first post in the topics

 

//-----------------------------------------

// @post_pin: pin topic first post

// -----------

// Accepts: Array ID's | Single ID

// Returns: NOTHING (TRUE/FALSE)

//-----------------------------------------

 

function post_pin($id)

{

$this->stm_init();

$this->stm_add_post_pin();

$this->stm_exec($id);

return TRUE;

}

 

//-----------------------------------------

// @post_unpin: unpin topic first post

// -----------

// Accepts: Array ID's | Single ID

// Returns: NOTHING (TRUE/FALSE)

//-----------------------------------------

 

function post_unpin($id)

{

$this->stm_init();

$this->stm_add_post_unpin();

$this->stm_exec($id);

return TRUE;

}

 

//-----------------------------------------

// @stm_add_post_pin: add post pin command to statement

// -----------

// Accepts: NOTHING

// Returns: NOTHING (TRUE/FALSE)

//-----------------------------------------

 

function stm_add_post_pin()

{

$this->stm[] = array( 'pinned_post' => 1 );

 

return TRUE;

}

 

//-----------------------------------------

// @stm_add_post_unpin: add post unpin command to statement

// -----------

// Accepts: NOTHING

// Returns: NOTHING (TRUE/FALSE)

//-----------------------------------------

 

function stm_add_post_unpin()

{

$this->stm[] = array( 'pinned_post' => 0 );

 

return TRUE;

}

 

// [END] Alex/AT Mod: Pinning first post in the topics

======================================================================

 

######################################################################

./sources/lib/func_topic_linear.php

======================================================================

FIND

----------------------------------------------------------------------

//-----------------------------------------

// Run query

//-----------------------------------------

 

$this->lib->topic_view_mode = 'linear';

----------------------------------------------------------------------

BELOW, ADD

----------------------------------------------------------------------

// [bEGIN] Alex/AT Mod: Pinning first post in the topics

if ($this->topic['pinned_post'] and $first > 0)

{

$this->pids = array( 0 => $this->topic['topic_firstpost'] );

}

// [END] Alex/AT Mod: Pinning first post in the topics

----------------------------------------------------------------------

FIND

----------------------------------------------------------------------

//-----------------------------------------

// Show end first post

//-----------------------------------------

 

if ( $this->lib->topic_view_mode == 'linearplus' and $this->first_printed == 0 and $row['pid'] == $this->topic['topic_firstpost'] and $this->topic['posts'] > 0)

{

$this->output .= $this->ipsclass->compiled_templates['skin_topic']->topic_end_first_post( array( 'TOPIC' => $this->topic, 'FORUM' => $this->forum ) );

}

----------------------------------------------------------------------

BELOW, ADD

----------------------------------------------------------------------

// [bEGIN] Alex/AT Mod: Pinning first post in the topics

if ( $this->lib->topic_view_mode == 'linear' and $this->first_printed == 0 and $row['pid'] == $this->topic['topic_firstpost'] and $first > 0)

{

$this->output .= $this->ipsclass->compiled_templates['skin_topic']->topic_end_outline( array( 'TOPIC' => $this->topic, 'FORUM' => $this->forum ) );

$this->output .= $this->ipsclass->compiled_templates['skin_topic']->topic_page_top( array( 'TOPIC' => $this->topic, 'FORUM' => $this->forum ), 1 );

}

// [END] Alex/AT Mod: Pinning first post in the topics

======================================================================

 

######################################################################

./cache/lang_cache/*/lang_mod.php

======================================================================

FIND

----------------------------------------------------------------------

$lang = array (

----------------------------------------------------------------------

BELOW, ADD

----------------------------------------------------------------------

// [bEGIN] Alex/AT Mod: Pinning first post in the topics

'p_pinned_post' => 'Первое сообщение закреплено',

'p_unpinned_post' => 'Первое сообщение откреплено',

// [END] Alex/AT Mod: Pinning first post in the topics

----------------------------------------------------------------------

======================================================================

 

######################################################################

./cache/lang_cache/*/lang_topic.php

======================================================================

FIND

----------------------------------------------------------------------

$lang = array (

----------------------------------------------------------------------

BELOW, ADD

----------------------------------------------------------------------

// [bEGIN] Alex/AT Mod: Pinning first post in the topics

'PIN_POST' => 'Закрепить первое сообщение',

'UNPIN_POST' => 'Открепить первое сообщение',

'post_pinned' => '(закреплено)',

// [END] Alex/AT Mod: Pinning first post in the topics

----------------------------------------------------------------------

======================================================================

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Установил всё, как написано в 14 посте. Теперь, когда хочу закрепить первый пост, то пишет ошибку:

 

Fatal error: Call to undefined function: pin_post() in x:\home\wsego.com\www\forum\sources\action_public\moderate.php on line 338

 

Вот код 337-339 строк:

 

case 'pinpost':
$this->pin_post();
break;

 

Подскажите, плиз, в чём пробема =(

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Уважаемые знатоки, помогите плиз. Очень нужен этот мод, а есть одна проблемка (см. пост выше).

Переделывал мод 2 раза, но всё одно и то же.

Буду очень благодарен за помощь!

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Уважаемые знатоки, помогите плиз. Очень нужен этот мод, а есть одна проблемка (см. пост выше).

Переделывал мод 2 раза, но всё одно и то же.

Буду очень благодарен за помощь!

 

Рискну спросить. ещё никто не сделал такой мод для версии 2.1.7 ???

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Уважаемые знатоки, помогите плиз. Очень нужен этот мод, а есть одна проблемка (см. пост выше).

Переделывал мод 2 раза, но всё одно и то же.

Буду очень благодарен за помощь!

Не туда вставили функцию pin_post. Нужно до фигурной скобки('}') закрывающей класс!

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Не туда вставили функцию pin_post. Нужно до фигурной скобки('}') закрывающей класс!
после данного уточнения мод работает? есть, кто-то у кого он установлен?
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.