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

[1.x.x]Topic Hints для IPB v1.3


urisoft

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

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

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

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

phenix

А я до сихпор не понимаю, где это!!! Help, please!!!

По русски:

Центр Администрирования ("Админка") -> слева меню "Скины и Шаблоны" -> в нем подменю "Стили" (нажать). В появившемся справа списке доступных стилей на каждом нажать "Редактировать", вставить нужное в конец текста и сохранить.

 

In english:

Administration Center -> see on the left panel menu "Skins & Templates" -> submenu "Style Sheets" (click once). In the right panel for each stylesheet press "Edit". Insert at the end of text and save.

 

Вроде ничего не напутал... :D

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

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

Доброго!

 

Поставил мод TopicHints v1.2b на форум 1.3. Мод замечательно работает, спасибо создателю.

 

Одна лишь проблема: после установки мода невозможно ни удалить сообщение в теме, ни удалить саму тему. Ошибка, которая появляется при попытке удаления сообщения:

 

 

Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /home/nikola/www/html/1p3Final/upload/sources/lib/modfunctions.php on line 989

 

Fatal error: Cannot instantiate non-existent class: modfunctions in /home/nikola/www/html/1p3Final/upload/sources/Moderate.php on line 169

 

 

Строка 989 в modfunctions.php - это самый конец файла. В этой строке лишь ?>

Строка 169 в Moderate.php -

 

167 require( ROOT_PATH.'sources/lib/modfunctions.php');

168

169 $this->modfunc = new modfunctions();

170

171 $this->modfunc->init($this->forum);

 

 

 

Подскажите, что нужно/можно сделать для исправления этой баги?

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

zasada

Насколько я знаю. Мод никакого отношения к файлам Moderate.php и modfunctions.php не имеет.

Уверен, что после установки именно этого мода ?

 

Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /home/nikola/www/html/1p3Final/upload/sources/lib/modfunctions.php on line 989

Похоже где-то скобку забыл закрыть.

Вспоминай что еще ставил ...

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

  • 4 недели спустя...
В мод нужно добавить возможность его включения / выключения конкретным юзером. Кому-то нравится, кому-то — нет.
Ссылка на комментарий
Поделиться на других сайтах

metro

А версия под 2.0 будит?

Бета тут: http://www.ocmo.ru/hints_2.0beta.zip

Проверялось только на PDR4.

Dr.Freddy

В мод нужно добавить возможность его включения / выключения конкретным юзером. Кому-то нравится, кому-то — нет.

Пока этого нет. :D

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

IPx

Да, работает :)

Dimitron0077

Типа "Последнее сообщение" - да, это было бы круто :)

urisoft

Было бы здорово, если можно было бы в профиле выбирать - показывать эту фишку или нет... :D

All Кто нить, подскажите - такое можно сделать? ;)

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

lossen

Хак прикольный, но у меня в Опере 7.50, показывает (в том же месте) ссылку темы. И плохо видно...

А хак хороший...

 

А ты этот пункт выполнил?

// *************************************************************
// Пункт 2.
// скопировать в папку ./jscripts файл hints.js
// добавить нижеуказанные стили во все скины из панели администратора
// -------------------------------------------------------------

.hintshead { font-family: Verdana, Arial, Helvetica, sans-serif; font-size:10px; background-color:#D1DCEB; border: 1px solid #97A2B0; }
.hintstext { font-family: Verdana, Arial, Helvetica, sans-serif; font-size:10px; background-color:#F5F9FD; color: #000; }

// *************************************************************

Особенно добавить нижеуказанные стили во все скины из панели администратора

 

У меня в Опере 7.50 всё отлично отображается

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

Поставил сабж на PF2, в результате получил сильную перегрузку БД, техподдержка ругается. В оригинальном варианте. без установленных хинтов, все работает нормально. Варианты?
Ссылка на комментарий
Поделиться на других сайтах

Хак прикольный, но у меня в Опере 7.50, показывает (в том же месте) ссылку темы. И плохо видно...

А хак хороший...

у кого Opera - лезем в Tools-->Preferences-->Windows и убираем глочку у Show ToolTips --- Для красоты

 

осталось добавить чтоб всплывало и на главной странице и в поиске новых сообщений.

Кстати, может сделать чтоб всплывало и первое и последнее сообщение вместе? было б вообще класс.

Да, работает

да, я уже поставил

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

мне тоже хак понравился, установил...

ну что делать - ну люблю я смотреть ссылочку "Новые сообщения", решил добавить туда же и данный хак...

...

 

собственно , если кому тоже надобно, инструкция:

 

1. В файле sources/search.php

найти:

 	$DB->simple_construct( array( 'select' => '*, title as topic_title',
           'from'   => 'topics',
           'where'  => "approved=1 AND forum_id IN($forums) AND last_post > {$last_time}",
           'order'  => "last_post DESC" ) );

и заменить на:

 	$DB->simple_construct( array( 'select' => 't.*, t.title as topic_title, p.post',
           'from'   => 'topics t, ibf_posts p',
           'where'  => "t.approved=1 AND t.forum_id IN($forums) AND t.last_post > {$last_time} AND p.topic_id=t.tid AND p.new_topic=1",
           'order'  => "t.last_post DESC" ) );

 

 

Найти:

 	return $topic;

и добавить после:

// Topic Hints
  $topic['post'] = preg_replace( "'<br>|<br \/>'i", "\n", $topic['post'] );
  $topic['post'] = preg_replace( "/\r/", "", $topic['post'] );
  $topic['post'] = strip_tags($topic['post']);

  $topic['post'] = preg_replace("'(&|&|&)'i","&",$topic['post']);
  $topic['post'] = preg_replace("'(<|<|<)'i","<",$topic['post']);
  $topic['post'] = preg_replace("'(>|>|>)'i",">",$topic['post']);
  $topic['post'] = preg_replace("'("|"|")'i","\"",$topic['post']);
  $topic['post'] = preg_replace("'('|')'i","'",$topic['post']);
  $topic['post'] = preg_replace("'(!|!)'i","!",$topic['post']);
  $topic['post'] = preg_replace("'(|)'i","|",$topic['post']);
  $topic['post'] = preg_replace("'($|$)'i","$",$topic['post']);
  $topic['post'] = preg_replace("'(\|\)'i","\\",$topic['post']);

  $g_add = false;
// максимум 5 новых строк
  $split_array = explode("\n",$topic['post']);
  if (count($split_array) > 5) $g_add = true;
  $topic['post'] = implode("\n",array_slice($split_array,0,5));

// обрезаем строку (150 символов максимум)
  if (strlen($topic['post']) > 150) $g_add = true;
  $topic['post'] = substr( $topic['post'], 0,150 );

  $topic['post'] = str_replace("<","<",$topic['post']);
  $topic['post'] = str_replace(">",">",$topic['post']);
  $topic['post'] = str_replace("\"",""",$topic['post']);
  $topic['post'] = str_replace("'","'",$topic['post']);
  $topic['post'] = str_replace("!","!",$topic['post']);
  $topic['post'] = str_replace("|","|",$topic['post']);
  $topic['post'] = str_replace("$","$",$topic['post']);
  $topic['post'] = str_replace("\\","\",$topic['post']);
  $topic['post'] = str_replace("&","&",$topic['post']);
  $topic['post'] = str_replace("\n","<br />", $topic['post'] );

  if ($g_add) $topic['post'] .= "...»»";
// Topic Hints

 

 

2. В файле skin_cache/cacheid_X/skin_search.php

Найти:

<script type="text/javascript" src='jscripts/ipb_forum.js'></script>

и добавить после:

<script language='javascript' src="jscripts/hints.js"></script>
<DIV id='hints' style="Z-INDEX: 33; LEFT: 0px; VISIBILITY: hidden; POSITION: absolute; TOP: 0px"></DIV>

 

 

Найти:

            <td width='100%'>{$data['prefix']} <a href='{$ibforums->base_url}showtopic={$data['tid']}&hl={$data['keywords']}'>{$data['title']}</a>  {$data[PAGES]}</td>

и заменить на:

            <td width='100%'><div id="hint{$data['tid']}">{$data['prefix']} <a href='{$ibforums->base_url}showtopic={$data['tid']}&hl={$data['keywords']}' OnMouseOver='javascript:showHints("hint{$data['tid']}","{$ibforums->lang['hints_head']}","{$data['post']}");' OnMouseOut='javascript:hideHints();' OnMouseMove='javascript:moveHints();'>{$data['title']}</a>  {$data[PAGES]}</td>

 

3. Все, готово :D

 

p.s. >> отдельное спасибо автору хака - urisoft

Добавлено в [mergetime]1091709081[/mergetime]

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

Добавлено в [mergetime]1091709183[/mergetime]

p.p.s. вопрос к Nuclear[gornet] - какая там "сильная перегрузка БД"? шутить изволите?;)

ни одного нового запроса... лишь чуть модифированный старый

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

К сожалению никаких шуток. База постов сильно загружена (20000 строк), и после конвертации с 1,3 до 2,0 сильно тормозит. И вот теперь при запросе к базе постов из forums.php идут дикие тормоза.

Ну в общем я понял, что поможет мне только новый сервер.

А так мод очень хороший, пользователи сильно просили, но вот незадача :D

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

хм... тогда, возможно, проблема в количестве preg_replace и str_replace , т.к. каждый реплейсер занимает кучу времени... а если это еще и помножить на количество постов :) неудивительно :D

 

оптимизируем код...

первую партию прег_реплейс меняем на:

$tsearch = array(
"'(&|&|&)'i",
"'(<|<|<)'i",
"'(>|>|>)'i",
"'("|"|")'i",
"'('|')'i",
"'(!|!)'i",
"'(|)'i",
"'($|$)'i",
"'(\|\)'i"
);
$treplace = array(
"&",
"<",
">",
"\"",
"'",
"!",
"|",
"$",
"\\"
);
$topic['post'] = preg_replace($tsearch, $treplace, $topic['post']);

вторую партию стр_реплейс заменим на:

$tsearch = array(
"<",
">",
"\"",
"'",
"!",
"|",
"$",
"\\",
"&",
"\n"
);
$treplace = array(
"<",
">",
""",
"'",
"!",
"|",
"$",
"\",
"&",
"<br />"
);
$topic['post'] = str_replace($tsearch, $treplace, $topic['post'] );

Добавлено в [mergetime]1091723226[/mergetime]

имхо, это обязательно надо делать в любом случае ;)

я всегда удивлялся, как же это куча процедур подряд идет в таг-реплейсерной функции , а не одной...

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

хорошо было что бы не в этом всплывающем сообщении показывало, а справа вот здесь:

http://thepantera.at.tut.by/screen.gif

когда наводишь на "посл. сообщение" всплывал бы последнее сообщение!

 

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

может кому понадобится вот такая модификация!

http://thepantera.at.tut.by/update.gif

 

для этого нужно

 

1. открыть ./skin_cache/cacheid_*/skin_forum.php

и найти

 

<div align='left' style='padding:2px 0px 2px 0px' id="hint{$data['tid']}">
          {$data['go_new_post']}{$data['prefix']} {$data['attach_img']}<a href="{$ibforums->base_url}showtopic={$data['tid']}" OnMouseOver='javascript:showHints("hint{$data['tid']}","{$ibforums->lang['hints_head']}","{$data['post']}");' OnMouseOut='javascript:hideHints();' OnMouseMove='javascript:moveHints();'>{$data['title']}</a> {$data[PAGES]}

 

заменить на:

 

<div align='left' style='padding:2px 0px 2px 0px' id="hint{$data['tid']}">

          {$data['go_new_post']}{$data['prefix']} {$data['attach_img']}<a href="{$ibforums->base_url}showtopic={$data['tid']}" OnMouseOver='javascript:showHints("hint{$data['tid']}","{$ibforums->lang['topic_started_on']}<font color=062D6C> {$data['start_date']}</font><br>{$ibforums->lang['by']}: <font color=062D6C>{$data['author_name']}</font><br>{$ibforums->lang['hints_head']}","{$data['post']}<b><br>______________<br>{$ibforums->lang['last_post_by']} <br><font color=062D6C>{$data['last_post']} {$ibforums->lang['to_leave']} {$data['last_poster_name']}</font></b>");' OnMouseOut='javascript:hideHints();' OnMouseMove='javascript:moveHints();'>{$data['title']}</a> {$data[PAGES]}

 

 

2. открыть ./lang/*/lang_forum.php

и найти

?>

 

добавить ВЫШЕ:

 

 

$lang['to_leave']	= "оставил(а):";

 

ну вот и все!

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

IPx

вы устанавливайте этот мод изначально как он писался!

т.е. скачивайте из архива..... а вместо того что там написано... поменяйте мод на мой!!!

seba

на 1.3 не проверял..... но может и пойти и на 1.3!!

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

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

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

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

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