Уважаемые пользователи, по техническим причинам загрузка файлов временно недоступна. Приносим извинения за временные неудобства.
Скачать сообщение
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
Slash
- phpBB 2.0.10
- Сообщения: 794
- Стаж: 15 лет 8 месяцев
- Благодарил (а): 101 раз
- Поблагодарили: 79 раз
Скачать сообщение
На одном форуме видел такую штуку: над каждым сообщение есть ссылка: Скачать сообщение, нажимаешь и на компьютер пользователя загружается документ формата .txt с текстом сообщения. Может кто даст ссылку или закинет в своё сообщение такой мод.
Спасибо.
Спасибо.
-
bear9
- phpBB 1.4.0
- Сообщения: 39
- Стаж: 15 лет 7 месяцев
- Благодарил (а): 1 раз
Re: Скачать сообщение
ну если уж совсем в "лоб" - я бы так сделал:
ну а дальше, собственно, полет фантазии не ограничен - хочешь скачивай, хочешь нет )
Ну а по сабжу:
создать в phpBB3/download_post.php примерно такого содержания:
P.S. Код не проверял.
P.P.S. Думаю, уважаемые гуру, сейчас подправят сообщение с учетом требований к модам - я их не учитывал - просто дал решение вашего вопроса.
Код: Выделить всё
в 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.P.S. Думаю, уважаемые гуру, сейчас подправят сообщение с учетом требований к модам - я их не учитывал - просто дал решение вашего вопроса.
-
MIT
- Former team member
- Сообщения: 2500
- Стаж: 17 лет 7 месяцев
- Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
- Благодарил (а): 3 раза
- Поблагодарили: 351 раз
Re: Скачать сообщение
bear9, не обижайся, но решение хреновое.
Почему не использован конфиг форума?
Почему не использован функционал форума по работе с базой?
Почему входящие данные не фильтруются?
Почему ты работаешь с числовым идентификатором как со строкой?
Почему текст сообщения не очищается от BB-кодов?
Почему нет проверки прав доступа?
Почему не использован конфиг форума?
Почему не использован функционал форума по работе с базой?
Почему входящие данные не фильтруются?
Почему ты работаешь с числовым идентификатором как со строкой?
Почему текст сообщения не очищается от BB-кодов?
Почему нет проверки прав доступа?
-
bear9
- phpBB 1.4.0
- Сообщения: 39
- Стаж: 15 лет 7 месяцев
- Благодарил (а): 1 раз
Re: Скачать сообщение
Полностью согласен с Вами - но Вы говорите, что нужно сделать с моим решением, чтоб получился полноценный мод, а я не пытался сделать мод, я просто дал решение на поставленный вопрос, причем решение - рабочее (сегодня сам проверил), если у кого-то есть желание превратить его в полноценный мод - то пожалуйста ).
Насчет $post_id - как строка, согласен... поздно было, че-то протупил.
Насчет $post_id - как строка, согласен... поздно было, че-то протупил.
-
Slash
- phpBB 2.0.10
- Сообщения: 794
- Стаж: 15 лет 8 месяцев
- Благодарил (а): 101 раз
- Поблагодарили: 79 раз
Re: Скачать сообщение
Вот мод для второй версии 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 ]------------------------------------------
#
<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: Скачать сообщение
У себя проверил, скачал тему с 2 страницами, вроде бы полностью.Пчелкин писал(а):Он берет тока страницу...
Добавлено спустя 2 минуты 46 секунд:
[ABD] Download Topics and Posts v1.0

