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

Скачать сообщение

У вас есть идея для расширения функциональности phpBB 3.0.x? Расскажите о ней здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Slash
phpBB 2.0.10
Сообщения: 794
Стаж: 15 лет 8 месяцев
Благодарил (а): 101 раз
Поблагодарили: 79 раз

Скачать сообщение

Сообщение Slash »

На одном форуме видел такую штуку: над каждым сообщение есть ссылка: Скачать сообщение, нажимаешь и на компьютер пользователя загружается документ формата .txt с текстом сообщения. Может кто даст ссылку или закинет в своё сообщение такой мод.
Спасибо.
bear9
phpBB 1.4.0
Сообщения: 39
Стаж: 15 лет 7 месяцев
Благодарил (а): 1 раз

Re: Скачать сообщение

Сообщение bear9 »

ну если уж совсем в "лоб" - я бы так сделал:

Код: Выделить всё

в viewtopic_body.html
после:
<ul class="profile-icons">
вставить:
<li><a href="download_post.php?post_id={postrow.POST_ID}">скачать</a>
ну а дальше, собственно, полет фантазии не ограничен - хочешь скачивай, хочешь нет )
Ну а по сабжу:
создать в phpBB3/download_post.php примерно такого содержания:

Код: Выделить всё

<?php
$dbms = 'mysql';
$db_order_server = 'localhost';
$db_order_port = '';
$db_order_name = 'phpbb_mydb';   //название БД
$db_order_user = 'root';                  //имя пользователя для подключения
$db_passwd = '123456789';            //пароль
$table_prefix = '';
if (!mysql_connect($db_order_server, $db_order_user, $db_passwd)) {
	echo "Ошибка подключения к серверу MySQL";
exit;
};
mysql_select_db($db_order_name);
mysql_query("SET NAMES utf8");
$post_id=mysql_real_escape_string(htmlspecialchars($_GET['post_id']));
$sql=mysql_query("SELECT post_text FROM phpbb_posts WHERE post_id='$post_id'");
if ($sql==false){exit;}
$tmp=mysql_fetch_assoc($sql);
$file_type = "msword";
$file_ending = "doc";

header("Content-Type: application/$file_type;");
header("Content-Disposition: attachment; filename=database_dump.$file_ending");
header("Pragma: no-cache");
header("Expires: 0");

echo "<head>";
echo "<meta http-equiv='Content-Type' content='text/html; charset=utf8'>";
echo "<meta http-equiv='Content-Language' content='ru'>";
echo "<meta http-equiv='Expires' content='0'>";
echo "</head>";
echo "<body>";
echo $tmp['post_text'];
echo "</body>";
?>
P.S. Код не проверял.
P.P.S. Думаю, уважаемые гуру, сейчас подправят сообщение с учетом требований к модам - я их не учитывал - просто дал решение вашего вопроса.
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 17 лет 7 месяцев
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 3 раза
Поблагодарили: 351 раз

Re: Скачать сообщение

Сообщение MIT »

bear9, не обижайся, но решение хреновое.

Почему не использован конфиг форума?
Почему не использован функционал форума по работе с базой?
Почему входящие данные не фильтруются?
Почему ты работаешь с числовым идентификатором как со строкой?
Почему текст сообщения не очищается от BB-кодов?
Почему нет проверки прав доступа?
bear9
phpBB 1.4.0
Сообщения: 39
Стаж: 15 лет 7 месяцев
Благодарил (а): 1 раз

Re: Скачать сообщение

Сообщение bear9 »

Полностью согласен с Вами - но Вы говорите, что нужно сделать с моим решением, чтоб получился полноценный мод, а я не пытался сделать мод, я просто дал решение на поставленный вопрос, причем решение - рабочее (сегодня сам проверил), если у кого-то есть желание превратить его в полноценный мод - то пожалуйста ).
Насчет $post_id - как строка, согласен... поздно было, че-то протупил.
Аватара пользователя
Slash
phpBB 2.0.10
Сообщения: 794
Стаж: 15 лет 8 месяцев
Благодарил (а): 101 раз
Поблагодарили: 79 раз

Re: Скачать сообщение

Сообщение Slash »

Вот мод для второй версии phpBB, может кто сможет перебрать по трёшку?

Код: Выделить всё

##############################################################
## MOD Title:		Download Topics and Posts
## MOD Author: OXPUS < webmaster@oxpus.de > (Karsten Ude) http://www.oxpus.de
## MOD Description:	Insert links on viewtopic to save the whole topic or one post of it in a textfile
## MOD Version:		1.0.6
##
## Installation Level:	Easy
## Installation Time:	5-10 Minutes
## Files To Edit:	4
##			viewtopic.php
##			language/lang_english/lang_main.php
##			language/lang_german/lang_main.php
##			templates/subSilver/viewtopic_body.tpl
##
## Included Files:	n/a
##############################################################
## For Security Purposes, Please Check: http://www.phpbb.com/mods/ for the
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered
## in our MOD-Database, located at: http://www.phpbb.com/mods/
##############################################################
## Author Notes:
##
##############################################################
## MOD History:
##
##   2005-04-11 - Version 1.0.6
##      - Fix security issue to prevent downloading not allowed topics or posts
##	  For update replace in viewtopic.php all after "if ( $download )"
##
##   2005-04-09 - Version 1.0.5
##      - Fix security issue
##	  For update replace in viewtopic.php all after "if ( $download )"
##
##   2005-03-18 - Version 1.0.4
##      - Fix filename for downloading textfile
##	  For update replace in viewtopic.php all after "if ( $download )"
##
##   2005-01-12 - Version 1.0.3
##      - Fix HTML-Chars on saved Text
##	  For update replace in viewtopic.php all after "if ( $download )"
##
##   2004-06-13 - Version 1.0.2
##      - Fix missing include in viewtopic.php
##	  For update insert after
##		include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
##	  this line:
##		include($phpbb_root_path . 'includes/functions_post.'.$phpEx);
##
##   2004-05-29 - Version 1.0.1
##      - Remove BBCodes and HTML-Chars from saved Text.
##	  For update replace in viewtopic.php all after "if ( $download )"
##
##   2004-05-27 - Version 1.0.0
##      - First release
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################

#
#-----[ OPEN ]------------------------------------------
#
viewtopic.php

#
#-----[ FIND ]------------------------------------------
#
include($phpbb_root_path . 'includes/bbcode.'.$phpEx);

#
#-----[ AFTER, ADD ]------------------------------------------
#
include($phpbb_root_path . 'includes/functions_post.'.$phpEx);

#
#-----[ FIND ]------------------------------------------
#
$start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;

#
#-----[ AFTER, ADD ]------------------------------------------
#
$download = ( isset($HTTP_GET_VARS['download']) ) ? $HTTP_GET_VARS['download'] : '';

#
#-----[ FIND ]------------------------------------------
#
//
// End session management
//

#
#-----[ AFTER, ADD ]------------------------------------------
#
if ( $download )
{
	$sql_download = ( $download != -1 ) ? " AND p.post_id = " . intval($download) . " " : '';

	$orig_word = array();
	$replacement_word = array();
	obtain_word_list($orig_word, $replacement_word);

	$sql = "SELECT u.*, p.*,  pt.post_text, pt.post_subject, pt.bbcode_uid
		FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt
		WHERE p.topic_id = $topic_id
			$sql_download
			AND pt.post_id = p.post_id
			AND u.user_id = p.poster_id
			ORDER BY p.post_time ASC, p.post_id ASC";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, "Could not create download stream for post.", '', __LINE__, __FILE__, $sql);
	}

	$download_file = '';

	$is_auth_read = array();

	while ( $row = $db->sql_fetchrow($result) )
	{
		$is_auth_read = auth(AUTH_ALL, $row['forum_id'], $userdata);

		$poster_id = $row['user_id'];
		$poster = ( $poster_id == ANONYMOUS ) ? $lang['Guest'] : $row['username'];

		$post_date = create_date($board_config['default_dateformat'], $row['post_time'], $board_config['board_timezone']);

		$post_subject = ( $row['post_subject'] != '' ) ? $row['post_subject'] : '';

		$bbcode_uid = $row['bbcode_uid'];
		$message = $row['post_text'];
		$message = strip_tags($message);
		$message = preg_replace("/\[.*?:$bbcode_uid:?.*?\]/si", '', $message);
		$message = preg_replace('/\[url\]|\[\/url\]/si', '', $message);
		$message = preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message);

		$message = unprepare_message($message);
		$message = preg_replace('/(/', '(', $message);
		$message = preg_replace('/)/', ')', $message);
		$message = preg_replace('/:/', ':', $message);
		$message = preg_replace('/[/', '[', $message);
		$message = preg_replace('/]/', ']', $message);
		$message = preg_replace('/{/', '{', $message);
		$message = preg_replace('/}/', '}', $message);

		if (count($orig_word))
		{
			$post_subject = preg_replace($orig_word, $replacement_word, $post_subject);

			$message = str_replace('\"', '"', substr(preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "preg_replace(\$orig_word, \$replacement_word, '\\0')", '>' . $message . '<'), 1, -1));
		}

		$break = "\n\r";
		$line = '-----------------------------------';
		$download_file .= $break.$line.$break.$poster.$break.$post_date.$break.$break.$post_subject.$break.$line.$break.$message.$break;
	}

	$disp_folder = ( $download == -1 ) ? 'Topic_'.$topic_id : 'Post_'.$download;

	if (!$is_auth_read['auth_read'])
	{
		$download_file = sprintf($lang['Sorry_auth_read'], $is_auth_read['auth_read_type']);
		$disp_folder = 'Download';
	}

	$filename = $board_config['sitename']."_".$disp_folder."_".date("Ymd",time()).".txt";
	header('Content-Type: text/x-delimtext; name="'.$filename.'"');
	header('Content-Disposition: attachment;filename="'.$filename.'"');
	header('Content-Transfer-Encoding: plain/text');
	header('Content-Length: '.strlen($download_file));
	print $download_file;

	exit;
}

#
#-----[ FIND ]------------------------------------------
#
//
// Send vars to template
//
$template->assign_vars(array(

#
#-----[ AFTER, ADD ]------------------------------------------
#
	'L_DOWNLOAD_POST' => $lang['Download_post'],
	'L_DOWNLOAD_TOPIC' => $lang['Download_topic'],
	'DOWNLOAD_TOPIC' => append_sid("viewtopic.$phpEx?download=-1&".POST_TOPIC_URL."=".$topic_id),

#
#-----[ FIND ]------------------------------------------
#
	$template->assign_block_vars('postrow', array(

#
#-----[ AFTER, ADD ]------------------------------------------
#
		'DOWNLOAD_POST' => append_sid("viewtopic.$phpEx?download=".$postrow[$i]['post_id']."&".POST_TOPIC_URL."=".$topic_id),

#
#-----[ OPEN ]------------------------------------------
#
language/lang_english/lang_main.php

#
#-----[ FIND ]------------------------------------------
#
//
// Viewtopic
//

#
#-----[ AFTER, ADD ]------------------------------------------
#
$lang['Download_post'] = 'Download Post';
$lang['Download_topic'] = 'Download Topic';

#
#-----[ OPEN ]------------------------------------------
#
language/lang_german/lang_main.php

#
#-----[ FIND ]------------------------------------------
#
//
// Viewtopic
//

#
#-----[ AFTER, ADD ]------------------------------------------
#
$lang['Download_post'] = 'Beitrag speichern';
$lang['Download_topic'] = 'Topic speichern';

#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/viewtopic_body.tpl

#
#-----[ FIND ]------------------------------------------
#
{PAGINATION}

#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
<br /><a href="{DOWNLOAD_TOPIC}" class="genmed">{L_DOWNLOAD_TOPIC}</a>

#
#-----[ FIND ]------------------------------------------
# // Or find another position
{postrow.POST_DATE}

#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
&nbsp;<a href="{postrow.DOWNLOAD_POST}" class="genmed">{L_DOWNLOAD_POST}</a>

#
#-----[ FIND ]------------------------------------------
#
{PAGINATION}

#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
<br /><a href="{DOWNLOAD_TOPIC}" class="genmed">{L_DOWNLOAD_TOPIC}</a>


#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
Аватара пользователя
sdakasadist
phpBB 2.0.0
Сообщения: 236
Стаж: 13 лет 10 месяцев
Благодарил (а): 62 раза
Поблагодарили: 20 раз

Re: Скачать сообщение

Сообщение sdakasadist »

Ещё такой мод есть pdf24 Posts to PDF v3
Изображение
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11372
Стаж: 16 лет 9 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Скачать сообщение

Сообщение Пчелкин »

Он берет тока страницу...
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
sdakasadist
phpBB 2.0.0
Сообщения: 236
Стаж: 13 лет 10 месяцев
Благодарил (а): 62 раза
Поблагодарили: 20 раз

Re: Скачать сообщение

Сообщение sdakasadist »

Пчелкин писал(а):Он берет тока страницу...
У себя проверил, скачал тему с 2 страницами, вроде бы полностью.

Добавлено спустя 2 минуты 46 секунд:
[ABD] Download Topics and Posts v1.0
Изображение
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11372
Стаж: 16 лет 9 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Скачать сообщение

Сообщение Пчелкин »

Этот - да... ПДФшный - нет...
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
sdakasadist
phpBB 2.0.0
Сообщения: 236
Стаж: 13 лет 10 месяцев
Благодарил (а): 62 раза
Поблагодарили: 20 раз

Re: Скачать сообщение

Сообщение sdakasadist »

Пчелкин писал(а):ПДФшный - нет
Я про PDF и написал что скачивается вся тема.
Изображение

Вернуться в «Запросы модов для phpBB 3.0.x»