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

[2.3.x] Pinned Post in the topic


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

Название: Pinned Post in the topic

Добавил: Vic'er

Добавлен: 30 Июн 2007

Обновлен: 02 Июл 2007

Категория: IP.Board 2.3.x

 

+--------------------------------
|   IP.Board v2.2.x
|   IP.Board v2.3.x
|   ======================
|   > Pinned Post in the topic
|   > Module written by Vic'er
|   > Module based on:
        "Пришпиливание постов!" by SAT (Game-Play.ru)
        "Пришпиливание постов!" by GiV (IBResource.ru)
|   > (c) 2003 MADALF FORUM (http://team-madalf.com/)
|   > (c) 2005 IBResource.ru (http://ibresource.ru/)
|   > Date started: 29 June 2007
|   > Date finished: 30 June 2007
|
|   > Module Version Number: 1.0.0
+-----------------------------------------
|
|   > Модуль позволяет администраторам, супермодераторам, а также
|   > группам, которым выданы права определять сообщение темы, как
|   > основное, которое будет находиться в самом начале списка сообщений
|   > на каждой странице
|
|   > Работа мода внешним видом похожа на режим просмотра топика
|   > в режиме "Линейный", но с одним отличием - основным может быть
|   > любое сообщение темы
|
+-----------------------------------------
|
|   >> Благодарности:
|   > GiV за этот мод для 1.х.х
|   > SAT за этот мод для 2.0.х

 

ps Закрепление/открепление производится в списке сообщенией по нажатию на соответствующую кнопку (русские варианты этих кнопок для стандартного и нового скина прилагаются в архиве)

 

pps Да простит меня SAT, но так как он давно уже не появлялся, да и последняя его модификация была для IPB 2.0, то я взял на себя ответственность выложить новую версию. Эта версия основана на старых модах, но не является их копией или непосредстввенной переработкой.

 

Нажмите здесь, чтобы скачать файл

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

  • Ответы 173
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Загружено фотографий

Мега! :D Спасибо. Поставлю на 2.3.х, как перейду.

 

Vic'er, а раньше же говорили в какой-то теме (наверное, в теме поддержки мода для 2.1.х), что на 2.1.х эту фишку уже реализовать нельзя ввиду там каких-то особенностей. Или неправда?

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

что на 2.1.х эту фишку уже реализовать нельзя ввиду там каких-то особенностей. Или неправда?

конечно неправда :D просто SAT'у было некогда, а я ему не хотел дорогу перебегать просто так, из спортивного интереса... а сейчас уже раз я для себя пишу все моды под переход, почему и не поделиться...

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

А то что "прибитые" сообщения видны только в режиме просмотра "стандартный" - это так и задумано? В остальных двух режимах у меня отображается "родной" пост.
Ссылка на комментарий
Поделиться на других сайтах

А то что "прибитые" сообщения видны только в режиме просмотра "стандартный"

естественно, остальные варианты отображения случат для другого - линейный, для вывода всего от первого сообщения (если на него спроецировать эти изменения, то он перестанет отлтчаться от стандартного совершенно), древовидный, для вывода дерева...

 

или вы хотели бы получить 500 килобайтную инструкцию по изменению огромного кол-ва функционала? :D

 

Я бы запарился потом всех посылать RTFM ))))

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

Будет ли поддержка мода для 2.1.x ?

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

 

только не забудте отписать о результатах :D

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

2 Vic'er

Нашел небольшую ошибку:

Файл: ./sources/lib/func_topic_linear.php

 

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

Заменить:

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

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

// Format and print out the topic list

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

 

// Vic'er -> Pinned Post in the topic {

$_posts = array();

 

if ( $pinned_post['pid'] ) {

$_posts[] = $pinned_post;

}

 

while ( $row = $this->ipsclass->DB->fetch_row( $oq ) ) {

if ( $row['pid'] != $pinned_post['pid'] ) {

$_posts[] = $row;

}

}

foreach ( $_posts as $row ) {

// Vic'er -> Pinned Post in the topic }

Без скобки противно ругается. Форум 2.3.1 EN

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

совершенно правы, там нужно было заменять не

 

		while ( $row = $this->ipsclass->DB->fetch_row( $oq ) ) {

а

		while ( $row = $this->ipsclass->DB->fetch_row( $oq ) )

 

========

 

ошибка исправлена, архив обновлен

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

А то что "прибитые" сообщения видны только в режиме просмотра "стандартный"

естественно, остальные варианты отображения случат для другого - линейный, для вывода всего от первого сообщения (если на него спроецировать эти изменения, то он перестанет отлтчаться от стандартного совершенно), древовидный, для вывода дерева...

 

или вы хотели бы получить 500 килобайтную инструкцию по изменению огромного кол-ва функционала? ;)

 

Я бы запарился потом всех посылать RTFM ))))

Ясно. Тогда всё гуд. Даж работает. :D

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

Хм..... после поднятия сообщения не могу его опустить, а только заменить на другое. пишет что у меня нет прав пользоваться этой функцией.

Форум 221

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

Проблема решил следующим образом

 

/sources/action_public/moderate.php

 

Найти

 

function unpin_post()
{
	if (
		( $this->ipsclass->member['g_is_supmod'] || $this->ipsclass->member['g_pin'] )
		&&
		$this->topic['pinned_post']
		&&
		$this->topic['pinned_post']==$this->ipsclass->input['p']
		) {
		$this->ipsclass->DB->simple_exec_query( array( 'update' => 'topics', 'set' => 'pinned_post=0', 'where' => "tid=".intval($this->topic['tid']) ) );
		$this->ipsclass->DB->simple_exec_query( array( 'update' => 'posts', 'set' => 'post_pinned=0', 'where' => "topic_id=".intval($this->topic['tid']).' AND pid='.intval($this->ipsclass->input['p']) ) );
		$this->ipsclass->print->redirect_screen( $this->ipsclass->lang['cp_unpinned_post'], "showtopic=".$this->topic['tid']."&view=findpost&p=".$this->ipsclass->input['p'] );
	} else {
		$this->moderate_error();
	}

}

 

Заменить на

 

function unpin_post()
{
	if (
		( $this->ipsclass->member['g_is_supmod'] || $this->ipsclass->member['g_pin'] )
		&&
		(  $this->topic['pinned_post'] || ( $this->topic['pinned_post'] && $this->topic['pinned_post']==$this->ipsclass->input['p'] ) )
		) {
		$this->ipsclass->DB->simple_exec_query( array( 'update' => 'topics', 'set' => 'pinned_post=0', 'where' => "tid=".intval($this->topic['tid']) ) );
		$this->ipsclass->DB->simple_exec_query( array( 'update' => 'posts', 'set' => 'post_pinned=0', 'where' => "topic_id=".intval($this->topic['tid']).' AND pid='.intval($this->ipsclass->input['p']) ) );
		$this->ipsclass->print->redirect_screen( $this->ipsclass->lang['cp_unpinned_post'], "showtopic=".$this->topic['tid']."&view=findpost&p=".$this->ipsclass->input['p'] );
	} else {
		$this->moderate_error();
	}

}

 

Всё взято из Вашего же мода. Потестю потом отпишусь

 

 

Всё ок. спасибо за мод :D

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

(  $this->topic['pinned_post'] || ( $this->topic['pinned_post'] && $this->topic['pinned_post']==$this->ipsclass->input['p'] ) )

что-то я не понял, idшка поста который мы говорим отшпилить не совпадает с idшкой пришпиленного поста этой темы? блин, бред какой-то...

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

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

Найти:

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

(англ. версия)

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

$this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Can avoid moderation queues?</b>" ,

$this->ipsclass->adskin->form_yes_no("g_avoid_q", $group['g_avoid_q'] )

) );

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

(рус. версия)

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

$this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Не применять проверку сообщений перед публикацией модераторами для пользователей этой группы?</b>" ,

$this->ipsclass->adskin->form_yes_no("g_avoid_q", $group['g_avoid_q'] )

) );

 

иначе будет

[Mon Jul 2 11:50:00 2007] [error] PHP Parse error: syntax error, unexpected ')' in /sources/action_admin/groups.php on line 2355

 

ну и такой вопрос: по умолчанию мне не разрешено опускать \ поднимать, кнопка активна,попробовал посчелкать результат ноль,и в том и в другом случае кнопка активна ( группа рут-админ)

почему заострил внимание,не хочу модерам давать такую опцию,по умолчанке она вырублена,но как бы не получилось как я описал выше.

проверить щас уже некада,если что напишу вечером.

 

форум 2.2.2 rus/

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

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

возможность всегда доступна админам и супермодерам, всем остальным только тогда, когда в настройках группы это разрешено.

 

ясно спасибо,а мануальчик поправьте,допишите в поиск две скобки и точку с запятой,иначе при просмотре групп из админки будет чистый лист ( там получается двойная пара этих скобок) =)

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

  • 2 недели спустя...

в файле ./sources/lib/func_topic_linear.php нет вот такого куска кода

			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 ) );
		}

есть вот такой (привожу весь блок целиком; уж и не вспомню откель он взялся)

			//-----------------------------------------
		// 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 ) );
		 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 ) );
			 # A little hack to exclude rules/post
			 $this->output .= strtr( $this->ipsclass->compiled_templates['skin_topic']->topic_page_top( array( 'TOPIC' => $this->topic, 'FORUM' => $this->forum ), 1 ) , array( '<!--IBF.FORUM_RULES-->' => '', '<!--{IBF.POLL}-->' => '') );
		 }

		}

	}

 

в нем что и как заменить?

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

Здравствуйте. Попробовал поставить на 2.1.7

В итоге темы перестали отображаться, просто стали "пустыми":

http://keep4u.ru/full/070716/9e35f943adcaa989e6/jpg

 

Но если тут же просмотреть текстовый вариант форума, то текст виден:

http://keep4u.ru/full/070716/78e4d85ba3aa362018/jpg

 

Подскажите где ошибка.

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

  • 2 недели спустя...
когда закрепляешь сообщение, то если в нем прикреплены файлы то они видны только на первой страницы, на других страницах у прикрепленного сообщения нету аттачев. что сделать чтобы они отображались на каждой странице?
Ссылка на комментарий
Поделиться на других сайтах

когда закрепляешь сообщение, то если в нем прикреплены файлы то они видны только на первой страницы

хм... посмотрим что можна сделать :D если траблема есть - апдейт будет на выходных ;)

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


×
×
  • Создать...

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

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