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


Фотография

[2.3.x] Pinned Post in the topic

Форумы IBResource

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 173
Vic'er
  • Участники
  • Cообщений: 1 212
  • http://team-madalf.com/
  • Город:Киев, Украина

Отправлено

Название: 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, то я взял на себя ответственность выложить новую версию. Эта версия основана на старых модах, но не является их копией или непосредстввенной переработкой.

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

dfc_darkman
  • Участники
  • Cообщений: 1 050
  • http://darkman.kiev.ua
  • Город:Украина, Киев
  • Интересы:Internet, House music, Night Clubs & Girls :)

Отправлено

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

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

Vic'er
  • Участники
  • Cообщений: 1 212
  • http://team-madalf.com/
  • Город:Киев, Украина

Отправлено

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

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

Phil10
  • Участники
  • Cообщений: 92

Отправлено

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

Vic'er
  • Участники
  • Cообщений: 1 212
  • http://team-madalf.com/
  • Город:Киев, Украина

Отправлено

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

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

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

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

TOIIOP
  • Участники
  • Cообщений: 838

Отправлено

Будет ли поддержка мода для 2.1.x ? Очень бы хотелось )

Vic'er
  • Участники
  • Cообщений: 1 212
  • http://team-madalf.com/
  • Город:Киев, Украина

Отправлено

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

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

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

Еve
  • Участники
  • Cообщений: 315
  • http://www.alternate.net.ru
  • Город:Минск
  • Интересы:WEB-дизайн и Аниме

Отправлено

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

Vic'er
  • Участники
  • Cообщений: 1 212
  • http://team-madalf.com/
  • Город:Киев, Украина

Отправлено

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

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

========

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

Phil10
  • Участники
  • Cообщений: 92

Отправлено

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

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

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

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

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

TOIIOP
  • Участники
  • Cообщений: 838

Отправлено

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

Особо не тестил, но на первый взгляд все работает =)

Dinamo
  • Участники
  • Cообщений: 163

Отправлено

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

Vic'er
  • Участники
  • Cообщений: 1 212
  • http://team-madalf.com/
  • Город:Киев, Украина

Отправлено

ссылку на форум с этой темой, эккаунт с возможностью пришпиливать посты. лучше в ПМ.

Dinamo
  • Участники
  • Cообщений: 163

Отправлено

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

/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: 02 Июль 2007 - 00:05


Vic'er
  • Участники
  • Cообщений: 1 212
  • http://team-madalf.com/
  • Город:Киев, Украина

Отправлено

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

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

olmer2002
  • Участники
  • Cообщений: 289

Отправлено

----------------------------------------------------------------------
Найти:
----------------------------------------------------------------------
(англ. версия)
----------------
$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: 02 Июль 2007 - 11:08


Vic'er
  • Участники
  • Cообщений: 1 212
  • http://team-madalf.com/
  • Город:Киев, Украина

Отправлено

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

olmer2002
  • Участники
  • Cообщений: 289

Отправлено

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


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

Vic'er
  • Участники
  • Cообщений: 1 212
  • http://team-madalf.com/
  • Город:Киев, Украина

Отправлено

а мануальчик поправьте

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

Williams
  • Участники
  • Cообщений: 30

Отправлено

в файле ./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}-->' => '') );
			 }

			}
				
		}

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




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных