Страница 1 из 2

Как выводить в phpBB тексты из файла ?

Добавлено: 17.03.2005 16:06
Сергей Секирин
Нет ли какой пристройки к phpBB, чтобы по ссылке (например по ссылке в постинге), открывался к-л файл, но также между колонтитулов форума?

Поясню: чтобы phpBB брал тело текста из к-л файла формата txt или html, добавлял колонтитулы и, если это возможно, основное форматирование типа шрифта (гарнитуры и кегля) текста и цвета фона?

Может есть мод?

Добавлено: 18.03.2005 12:24
Сергей Секирин
Никто не ответил - это значит эта пристройка, нужная для очень длинных текстов (не в БД же их совать по частям!) невозможна полностью??? Гуру - ответьте :(

Добавлено: 18.03.2005 12:45
[R: R@m$e$ :U]
Сергей Секирин
тогда посторайся дать подробное описание того, что ты хочешь...

Добавлено спустя 2 минуты 4 секунды:

очень не безопасный мод получается...

Добавлено: 18.03.2005 16:44
Сергей Секирин
Если небезопасный - то, конечно, не нужно.

А подробнее объясню:
  • у меня на хосте в папке libs лежат файлы формата *.txt или *.htm - крупные файлы по 0,5 - 1 Мб. В сообщение их вставлять - дело неблагодарное (рост БД) и невозможное (ограничение размера поля) и ненужное.

    Вот и думаю - а можно ли сотворить, чтобы ссылка на такой файл открывала его (в новом, конечно, окне !) как отдельный документ, но только с колонтитулами форума, т.е., чтобы внешний вид почти не отличался.

    Может быть можно как-нибудь обеспечить безопасность, например задав только одну или две папки на хосте, из которых возможна загрузка файла и/или файл сделать к-л безопасного формата, типа TXT


Добавлено спустя 7 минут 6 секунд:

Может быть мне не нужно ничего с форумом делать, а прописать что-нибудь в самом открываемом файле, чтобы он, при открытии, принимал колонтитулы (а ещё бы и стили форума? Впрочем, такое, кажется, невозможно.

Добавлено: 18.03.2005 17:58
[R: R@m$e$ :U]
Сергей Секирин
может лучше подумать о несколько иной реализации? в бд название файла и название(или что-то вроде), и вставлять в шаблон текст из файла?

Добавлено: 18.03.2005 20:00
Сергей Секирин
Можно и так! Реализовать бы :?

Добавлено: 22.03.2005 18:08
[R: R@m$e$ :U]
[R: R@m$e$ :U]
ну так реализую... только щас четверть закончу....

Добавлено: 22.03.2005 18:29
BorMan
Сергей Секирин
Как одно из решений проблемы - посмотри мод Rules
Там один php-ник + один tpl .... Ссылка на php делается из оллхедера... В tpl впихиваешь свой текст в html и все выводится между колонтитулов.
Довольно просто переделать под несколько страничек...

http://www.phpbbguru.net/community/viewtopic.php?t=376

Добавлено: 22.03.2005 22:06
Сергей Секирин
BorMan
Спасибо за совет! Однако, просто - это, наверное тому, кто понимает :? Я же - чайник :(

Добавлено спустя 5 минут 38 секунд:

Если я впихну в TPL весь текст, то Редактору (Front Page) дурно станет от его размера - это же не .txt :? Попробую Rules, спасибо!

Добавлено спустя 1 минуту 34 секунды:

К тому же если таких текстов будет 50 :D , то и php будет 50? Как я в них тогда разгребуся??? :)

Добавлено: 22.03.2005 23:16
BorMan
Сергей Секирин писал(а):Если я впихну в TPL весь текст, то Редактору (Front Page) дурно станет от его размера
Дурно ему не станет..., просто он сам по жизни дурной и генерирует весьма корявый html код... :(
Сергей Секирин писал(а):К тому же если таких текстов будет 50 , то и php будет 50?
Так нумеруй их... :) Типа page_01.php и page_01_body.tpl и т.д. :)
Вообще когда таких страниц много, то либо плодить кол-во отдельных файлов в двойном размере прийдется при использовании за основу данного мода, либо искать или писать новый мод с одним файликом php и все той-же кучей файлов с данными в формате html, чтобы они голимые где-то лежали... А использование БД для уменьшения их количества не вариант, т.к. и саму структуру таблиц это затронет, и внесет ограничения на предмет возможностей html.
Вот болванки работающих вариантов:
файл rules.php :
<?php
/***************************************************************************
* rules.php
* -------------------
* begin : Saturday, Dec 20, 2003
* copyright :GamingXtreme.net, Sniper12p
* email : sniper12p@gamingxtreme.net
* other : This mod was made by Mod Studio of http://phpbb.com
* $Id: $
*
*
***************************************************************************/

/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//

//
// Start output of page
//
$page_title = $lang['Index'];
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

$template->set_filenames(array(
'body' => 'rules_body.tpl')
);

//
// Generate the page
//
$template->pparse('body');

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>
файл page_01.php :
<?php
/***************************************************************************
* rules.php
* -------------------
* begin : Saturday, Dec 20, 2003
* copyright :GamingXtreme.net, Sniper12p
* email : sniper12p@gamingxtreme.net
* other : This mod was made by Mod Studio of http://phpbb.com
* $Id: $
*
*
***************************************************************************/

/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//

//
// Start output of page
//
$page_title = $lang['Index'];
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

$template->set_filenames(array(
'body' => 'page_01_body.tpl')
);

//
// Generate the page
//
$template->pparse('body');

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>
файл rules_body.tpl :
<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
<tr>
<td align="left"><span class="nav"><a href="{U_INDEX}" class="nav">{L_INDEX}</a>&nbsp;->&nbsp;<a href="rules.php" class="nav">Правила работы форумов на "Бородатой странице"</a></span></td>
</tr>
</table>

<table width="99%" cellpadding="4" cellspacing="1" border="0" align="center" class="forumline">
<tr>
<th class="thHead" width="100%">Правила работы форумов на "Бородатой странице"</th>
</tr>
<tr>
<td class="row1" width="100%">
<!-- ---------------------------------------- start of rules --------------------------------- -->
<p align="left"><span class="gen"><b>Общие правила работы на форумах:</b><br>
1. ...................<br>
2. ...................<br>
3. ...................<br>
4. ...................<br>
<i>(Правила находятся на стадии оформления)</i>
<!-- ---------------------------------------- end of rules --------------------------------- -->
</span></p>
</td>
</table>
</div>
файл page_01_body.tpl :
<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
<tr>
<td align="left"><span class="nav"><a href="{U_INDEX}" class="nav">{L_INDEX}</a>&nbsp;->&nbsp;<a href="page_01.php" class="nav">Прежде, чем закачать картинку...</a></span></td>
</tr>
</table>

<table width="99%" cellpadding="4" cellspacing="1" border="0" align="center" class="forumline">
<tr>
<th class="thHead" width="100%">Прежде, чем закачать картинку...</th>
</tr>
<tr>
<td class="row1" width="100%">
<p align="left"><span class="gen">
<!-- ---------------------------------------- start of text --------------------------------- -->
<b>Прежде, чем закачать картинку на форумы, ее необходимо соответствующим образом подготовить:</b><br>
(Материал по подготовке фоток находится на стадии оформления)
<!-- ---------------------------------------- end of text --------------------------------- -->
</span></p>
</td>
</table>
</div>
фрагмент кода в файле overall_header.tpl :
<a name="top"></a>

<table width="100%" cellspacing="0" cellpadding="10" border="0" align="center">
<tr>
<td class="bodyline"><table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td align="center" valign="top"><a href="{U_INDEX}"><img src="templates/subSilver/images/logo_phpBB.gif" border="0" alt="{L_INDEX}" vspace="1" /></a><br>
<table cellspacing="0" cellpadding="1" border="0">
<tr>
<td align="left" valign="top" nowrap="nowrap"><a href="{U_FAQ}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_faq.gif" width="12" height="13" border="0" alt="{L_FAQ}" hspace="3" />{L_FAQ}</a></span><span class="mainmenu">&nbsp; &nbsp;<a href="{U_SEARCH}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_search.gif" width="12" height="13" border="0" alt="{L_SEARCH}" hspace="3" />{L_SEARCH}</a>&nbsp; &nbsp;<a href="{U_MEMBERLIST}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_members.gif" width="12" height="13" border="0" alt="{L_MEMBERLIST}" hspace="3" />{L_MEMBERLIST}</a>&nbsp; &nbsp;<a href="{U_GROUP_CP}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_groups.gif" width="12" height="13" border="0" alt="{L_USERGROUPS}" hspace="3" />{L_USERGROUPS}</a>&nbsp;
</td>
</tr>
<tr>
<td align="left" valign="top" nowrap="nowrap"><a href="rules.php" class="mainmenu"><img src="templates/subSilver/images/icon_mini_faq.gif" border="0" alt="Правила работы на форумах" hspace="3" />Правила работы на форумах</a></span>
</td>
</tr>
<tr>
<td align="left" valign="top" nowrap="nowrap"><a href="page_01.php" class="mainmenu"><img src="templates/subSilver/images/icon_mini_faq.gif" border="0" alt="Подготовка графики для размещения на форуме" hspace="3" />Прежде, чем закачать картинку...</a></span>
</td>
</tr>
<tr>
<!-- BEGIN switch_user_logged_out -->
<a href="{U_REGISTER}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_register.gif" width="12" height="13" border="0" alt="{L_REGISTER}" hspace="3" />{L_REGISTER}</a></span>&nbsp;
<!-- END switch_user_logged_out -->
<td align="left" valign="top" nowrap="nowrap"><span class="mainmenu"><a href="{U_PROFILE}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_profile.gif" width="12" height="13" border="0" alt="{L_PROFILE}" hspace="3" />{L_PROFILE}</a>&nbsp; &nbsp;<a href="{U_PRIVATEMSGS}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_message.gif" width="12" height="13" border="0" alt="{PRIVATE_MESSAGE_INFO}" hspace="3" />{PRIVATE_MESSAGE_INFO}</a>&nbsp; &nbsp;<a href="{U_LOGIN_LOGOUT}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_login.gif" width="12" height="13" border="0" alt="{L_LOGIN_LOGOUT}" hspace="3" />{L_LOGIN_LOGOUT}</a>&nbsp;</span>
</td>
</tr>
</table></td>
</tr>
</table>
<hr />
Ну а далее по образу и подобию... :)

Добавлено: 23.03.2005 2:20
avm
Сергей Секирин, именно для таких целей:
http://www.phpbbguru.net/community/viewtopic.php?t=1478

если "не админ" будет цитировать сообщение "с инклудом", то ссылка вставится как текст - не более...

ставьте относительные пути "инклудуемых" файлов и тогда никакие сер-хакеры не узнают в какой именно папке на хостинге лежит ваш форум...

Добавлено: 23.03.2005 11:11
Сергей Секирин
avm
Спасибо за участие и за помощь! Хотя я почти ничего не понял в Моде, но у меня родились вопросы:

1. Код, данный в теме http://www.phpbbguru.net/community/viewtopic.php?t=1478 - уже с учётом исправлений? т.е. это последняя версия, которая опробована?

2. Объясните пожалуйста чайнику - как ставить относительный путь инклудируемого файла?

3. Как так, хакеры не узнают пути? ведь путь к самому форуму www.site.ru/forum - как тут не узнать путь? :? Или я чего-то очень сильно не понимаю?

4. Как практически использовать Мод после установки? В смысле - что писать в тексте сообщения? :?

5. И последнее - пока писал, подумал - ведь текст если очень большой (f.e. 700 Кб), он выведется в сообщении полностью? Есть ли этот лимит для вывода сообщения или это только ограничение БД?

Добавлено спустя 1 минуту 1 секунду:

BorMan
Не-ет! По коду я понял, что это не для того, чтобы вставить в СООБЩЕНИЕ текст из файла. А мне нужно именно что-то одно из двух:

1. Вставлять в любое сообщение!!! текст из внешнего файла (чтобы не хранить его в БД), либо

2. По ссылке из СООБЩЕНИЯ открыть внешний файл под колонтитулами форума, т.е. по виду похоже на сообщение или к-л документ форума.

А ссылки на Главной типа правил форума мне не подходят, потому, что у меня будет их много, причём - тематических текстов, которые в разных форумах свои. Всё равно спасибо за помощь. К тому-же может я чего-то не понял :?

Добавлено: 23.03.2005 13:29
BorMan
Сергей Секирин писал(а):1. Вставлять в любое сообщение!!! текст из внешнего файла (чтобы не хранить его в БД),
Так это и обыкновенный attach mod уже делает...
Заливаешь в формате txt и в сообщении появляется ссылочка на этот файл... кликнул на нее - в новом окошке показан документик в txt ...
Какак файлы закачивать и как их отображать - это в настройке мода...
По умолчанию файло с расширением html устанавливают, как незакачиваемое, чтобы повысить безопасность..., но если есть желание - можно и его закачивать и показывать...
... и в БД это файло храниться не будет...

Добавлено: 23.03.2005 14:09
Сергей Секирин
BorMan писал(а): Так это и обыкновенный attach mod уже делает...
Заливаешь в формате txt и в сообщении появляется ссылочка на этот файл... кликнул на нее - в новом окошке показан документик в txt ...
Какак файлы закачивать и как их отображать - это в настройке мода...
Я об этом думал. А там файл отображается меж колонтитулов форума, как обычно?

Мне нужно (наконец дошло до чёткой формулировки), чтобы текст самого сообщения формировался из файла.
По-моему avm об этом как раз и говорит.
Да вот я только не могу понять как это работает :? Кажется там прописывать полные пути типа domains/site.ru/public_html/admin/file.php или т.п. в постинге не рекомендуетс. Но это и всё, что мне ясно :? Буду ждать пояснений.
Спасибо!

Добавлено: 24.03.2005 20:25
avm
1. Этот мод установлен на форуме моей городской сети. Успешно использется для отображения динамически меняющегося контента, сообщений различного дизайна (чего не добиться стандартными средствами), вывода объявлений расчитанных лишь на определенных посетителей, и т.д.

2. Относительный путь - это путь относительно текущей корневой папки форума, например если у вас форум лежит в папке /home/www/superforum (там где лежат файлы viewtopic.php и др.), а документ лежит в папке которую вы специально создали для выкладывания внешних файлов /home/www/superforum/files/mydoc.txt, то относительный путь к этому файлу - files/mydoc.txt

3. Говоря про "хакеры не узнают пути", имел ввиду что они при цитировании вашего сообщения "с инклудом" (в случае указания относительного пути) увидят только files/mydoc.txt, а не весь путь /home/www/superforum/files/mydoc.txt. От чего это защитит? да не от чего! (как и не создаст никакой дополнительной угрозы) - просто утешит параною...

4. После установки мода, имея привилегии админа! вы создаете сообщение вида [include(files/mydoc.txt)] - и вместо этой инструкции все увидят содержимое файла...

5. Этот мод не делает никаких ограничений на длину текста (он сделан для других целей) - он просто выведет все что ему поручили... для контроля и планирования есть постящий сообщение админ.

P.S. Мод не ограничивает администратора в способах указания аргумента. Например можно сделать так - [include(http://vneshniysite.ru/mydoc.php)]... но это - на страх и риск того администратора, который запостит такое сообщение на свой форум!