Правила сетевого этикета гласят, что если вы сами решили свою проблему — вам стоит опубликовать подробное решение.
Ну раз так гласят правила.... тогда да... Интересно... а что гласят эти правила по поводу ответов на заданные вопросы? Нужно ли на них отвечать? или можно просто так.... ну задали и х... с ними... отвечать не обязательно?
Решение получилось не совсем то, которое я хотел, но и это устроило практически полностью.
И так:
1. Создаем файл active-topic.html с таким кодом:
- Код: Выделить всё
<!-- IF .activetopic -->
<ul class="news-forum">
<!-- BEGIN activetopic -->
<li class="content-corners">
<dl>
<dt>
<!-- IF activetopic.S_UNREAD_TOPIC -->
<a href="forum/{activetopic.U_NEWEST_POST}">{NEWEST_POST_IMG}</a> <!-- ENDIF -->
<a href="forum/{activetopic.U_VIEW_TOPIC}" class="topictitle">{activetopic.TOPIC_TITLE}</a>
<!-- IF activetopic.S_TOPIC_UNAPPROVED or activetopic.S_POSTS_UNAPPROVED -->
<a href="forum/{activetopic.U_MCP_QUEUE}">{activetopic.UNAPPROVED_IMG}</a> <!-- ENDIF -->
<!-- IF activetopic.S_TOPIC_REPORTED -->
<a href="forum/{activetopic.U_MCP_REPORT}">{REPORTED_IMG}</a><!-- ENDIF --><br />
<!-- IF activetopic.PAGINATION --><strong class="pagination"><span>{activetopic.PAGINATION}</span></strong><!-- ENDIF -->
Опубликовано: » {activetopic.FIRST_POST_TIME}
<!-- IF not activetopic.S_TOPIC_GLOBAL -->{L_IN}
<a href="forum/{activetopic.U_VIEW_FORUM}">{activetopic.FORUM_TITLE}</a><!-- ELSE --> ({L_GLOBAL})<!-- ENDIF -->
</dt>
</dl>
</li>
<!-- END activetopic -->
</ul>
<!-- ENDIF -->
и помещаем его в папку шаблонов стиля форума. Тут изменения были такими: Поскольку форум находится не в корне сайта, а в папке "forum", то в каждой ссылке я добавил к пути "forum/". Потому, что при выводе на главной странице, все ссылки вели в несуществующие места, так как в шаблоне се пути прописываются от корня форума, а не от корня сайта. Еще один момент... У меня так и не получилось исправить ссылку на автора поста(она представлена в шаблоне как переменная...и как в нее добавить недостающий путь я не знаю), поэтому я просто удалил авторов из шаблона, оставив только название форума, название темы и дату публикации. Кстати... еще я изменил классы UL и LI, поставив те, которые использаутся не форумом, а сайтом, что дало возможность оформить все в стиле сайта.
2. Создаем файл active-topic.php с таким кодом:
- Код: Выделить всё
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');
// Last active topics
display_active_topics('activetopic', $config['active_topics_on_index']);
page_header($user->lang['SEARCH_ACTIVE_TOPICS']);
$template->set_filenames(array(
'body' => 'active-topic.html')
);
page_footer();
и сохраняем его в корне форума.
3. Прямо в теле страницы, в том месте, куда в хотите поместить блок новостей форума вставьте следующий код:
- Код: Выделить всё
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
jQuery( function($){
$("#last-topics").load("forum/active-topic.php");
});
</script>
<div class="h-menu">
<h1>НОВОЕ НА ФОРУМЕ</h1>
</div>
<div id="last-topics">Загрузка...</div>
</div>
Поменяйте классы div на свои... и все будет работать....
На то, что получилось у меня можете посмотреть
тутТеперь о том, что меня не устаивает (хотя это уже мелочь)... Выдается только тема.... Например тема на форуме создана 01.01.2013, она оттобразилась в новостях... вроде все отлично. но... через 10 дней кто-то написал сообщение в этой теме.... в данной реализации в выдаче будет опять же присутствовать тема с той-же датой создания.... а не датой последней публикации... Другими словами в выдаче всегда будет присутствовать только тема и название форума с новыми сообщениями. а не сами новые сообщения ....
Ну вот как-то так )))))