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

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


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

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

Сделал даже чуть больше: вывод $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 -ском скриптинге. Очень нужен скрипт разделения одного прима на два тоесть создание из одного - два отдельных прима.

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

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

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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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

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

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