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

Вывод в окно одного сообщения из топика


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

Иногда бывает нужно по линку получить всего одно нужное сообщение.

Сделал даже чуть больше: вывод $limit сообщений начиная с сообщения номер $limin

 

sources/misc/print_page.php находим:

		$max_posts = 300;

	$DB->query( "SELECT * FROM ibf_posts WHERE topic_id='".$this->topic['tid']."'".
				" and queued !='1' ORDER BY pid LIMIT 0, ".$max_posts);

Заменяем на:

if(IsSet($ibforums->input['limit']) and is_numeric($ibforums->input['limit']))
$max_posts = $ibforums->input['limit'];
else
$max_posts = 300;

if(IsSet($ibforums->input['limin']) and is_numeric($ibforums->input['limin']))
$min_posts = $ibforums->input['limin'];
else
$min_posts = 0;

	$DB->query( "SELECT * FROM ibf_posts WHERE topic_id='".$this->topic['tid']."'".
				" and queued !='1' ORDER BY pid LIMIT ".$min_posts.", ".$max_posts);

Ссылка берется из "версии для печати", пример в действии, выводящий третье сообщение топика: www.pharm-forum.ru/index.php?act=Print&client=printer&f=33&t=254&limin=2&limit=1

 

limin=0 - выведет первое сообщение;

limit - количество выводимых сообщений.

 

Заодно появилась дополнительная возможность: выводить в версии для печати (и при скачивании) не 300 первых постингов больших тем, а столько, сколько нужно.

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

Теперь вывод кликабельных ссылок в форуме. Я решил заменить этой ссылкой малонужную функцию "копировать ссылку на этот топик в буфер обмена", повешенный на слово "Дата".

 

 

skin_topic.php

Найти:

{$post['post_icon']}<span class='postdetails'><b><script type="text/javascript">
if(location.href.split('st=')!=location.href)post_number_cor=location.href.split('st=')[1].split('&')[0]
else post_number_cor=0
document.write("<a href='{$ibforums->base_url}act=Print&amp;client=printer&amp;f={$ibforums->input[f]}&amp;t={$ibforums->input[t]}&amp;limin="+(post_number_str+(post_number_cor*1))+"&amp; limit=1' target='_blank' title='Îòêðûòü ýòî ñîîáùåíèå â íîâîì îêíå'>{$ibforums->lang['posted_on']}</a>")
post_number_str++
</script></b>{$post['post_date']}</span>

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

1) ты забыл что-то в своём сообщении взять в ббкоды :D

2) не понял что делает второе

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

1) ты забыл что-то в своём сообщении взять в ббкоды :D

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

Сорри, попробую поправить.

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

  • 2 месяца спустя...
  • 1 месяц спустя...

Позволю себе глупый вопрос :D

А надо еще делать защиту от SQL-инъекции или данный метод уже относительно безопасен?

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

Позволю себе глупый вопрос :D

А надо еще делать защиту от SQL-инъекции или данный метод уже относительно безопасен?

В основе лежит act=Print , он вроде бы защищен от инъекций.

Я добавил лишь одну переменную $limin, которая проверяется на is_numeric.

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

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

так как насчет версии 2.2-2.3?

 

в 2.2 этот файл находится в sources/action public/misc

 

и код там

 

		$max_posts   = 300;
	$attach_pids = array();

	$this->ipsclass->DB->simple_construct( array ( 'select' => '*',
												   'from'   => 'posts',
												   'where'  => "topic_id={$this->topic['tid']} and queued=0",
												   'order'  => 'pid',
												   'limit'  => array(0, $max_posts)
											   )   );
	$this->ipsclass->DB->simple_exec();

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

  • 5 месяцев спустя...
  • 1 год спустя...
  • 8 месяцев спустя...

Есть один глюк.

В случае если установлен мод закрепления первого сообщения в шапке тему, то ссылка выдаёт следующее сообщение... Вот так то :D

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

  • 2 месяца спустя...

Всем привет Я новичок в Second Life -ском скриптинге. Очень нужен скрипт разделения одного прима на два тоесть создание из одного - два отдельных прима.

Разделение происходит по какому-то событию, хотя бы при таче.

Заранее благодарен.

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

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

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

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