Задать вопрос
@timers

Как вывести последние комментарии в модуле DLE?

Стоит модуль DLE Board

Хочу вывести последние комментарии на главную страницу (Не главная страница модуля).

Все функции собственно есть, но эта функция выводит комментарии на главной странице модуля, а мне нужно именно в main.tpl основного шаблона.

И так, сама функция: inc/board/board.class.php
function LastCommentsBlock(){
		global $db, $config, $lang, $tpl, $_TIME;
		
		$return = $this->OpenCache( "", "block.last_comm.tmp" );
		if( !$return )
			{
				$template = file_get_contents( $tpl->dir."/board/main/last.comments.tpl" );
				$result = $db->query( "SELECT ".PREFIX."_board_comments.id as com_id, ".PREFIX."_board_comments.board_id, ".PREFIX."_board_comments.author_id, ".PREFIX."_board_comments.author, ".PREFIX."_board_comments.text, ".PREFIX."_board_comments.ip, ".PREFIX."_board_comments.date, ".PREFIX."_board_post.id, ".PREFIX."_board_post.title, ".PREFIX."_board_post.alt_name, ".PREFIX."_board_post.category FROM ".PREFIX."_board_comments LEFT JOIN ".PREFIX."_board_post ON ".PREFIX."_board_comments.board_id=".PREFIX."_board_post.id WHERE ".PREFIX."_board_comments.del!='1' ORDER BY `date` DESC LIMIT 0,15" );
				if( $db->num_rows( $result ) > 0 )
					{
						while( $row = $db->get_row( $result ) )
							{
								$id = $row['id'];
								$title = stripslashes( $row['title'] );
								$alt_name = $row['alt_name'];
								$category = $row['category'];
								$author = stripslashes( $row['author'] );
								$author_id = intval( $row['author_id'] );
								$text = stripslashes( $row['text'] );
								$date = strtotime( $row['date'] );
								$full_link = $this->ReturnLinkPost( $id, $alt_name, $category );
								$authorLink = $config['allow_alt_url'] ? "/user/".urldecode( $author )."/" : "/index.php?subaction=userinfo&user={$author}";
								
								// Работаем с датой
								if( date( "Ymd", $date ) == date( "Ymd", $_TIME ) )
									$date = $lang['time_heute'].langdate( ", H:i", $date );
								elseif( date( "Ymd", $date ) == date( "Ymd", ( $_TIME - 86400 ) ) )
									$date = $lang['time_gestern'].langdate( ", H:i", $date );
								else
									$date = langdate( $config['timestamp_comment'], $date );
								
								$forReturn = $template;
								$forReturn = str_replace( "{title}", $title, $forReturn );
								$forReturn = str_replace( "{author}", $author, $forReturn );
								$forReturn = str_replace( "{authorLink}", $authorLink, $forReturn );
								$forReturn = str_replace( "{text}", $text, $forReturn );
								$forReturn = str_replace( "{date}", $date, $forReturn );
								$forReturn = str_replace( "{full_link}", $full_link, $forReturn );
								
								$return .= $forReturn;
							}
					}
						else
					{
						$return = "Нет комментариев";	
					}
				
				$this->CreateCache( "", "block.last_comm.tmp", $return );
			}
		
		return $return;
	}


Это код главного файла в modules/board.php

if( !defined( "DATALIFEENGINE" ) ) die( "Hacking attempt!" );

//--------------------------------------------------=-=-=-=-=
//	Запускаем класс
//--------------------------------------------------=-=-=-=-=

if( !class_exists( "Board" ) ) require_once( DLEPlugins::Check(ENGINE_DIR."/inc/board/board.class.php") );

//--------------------------------------------------=-=-=-=-=
//	Настройки модуля
//--------------------------------------------------=-=-=-=-=

$MainLink = $Board->AltUrl ? "/board/" : "/index.php?do=board";
$module['title'] = array( $Board->Config['main_title'] );
$module['speedbar'] = array( "<a href=\"{$MainLink}\">{$Board->Config['main_title']}</a>" );

if( $Board->Config['on'] == "yes" )
	{
		$action = totranslit( $_REQUEST['action'] );
		

		//--------------------------------------------------=-=-=-=-=
		//	Грузим файлы
		//--------------------------------------------------=-=-=-=-=
		
		$BoardLoadMainTpl = false;
		$BoardAllowSearch = true;
		switch( $action ){
			
			case "post":
				include( DLEPlugins::Check(ENGINE_DIR."/modules/board/full.post.php") );
				break;
				
			case "add":
				include( DLEPlugins::Check(ENGINE_DIR."/modules/board/add.post.php") );
				break;
				
			case "edit":
				include( DLEPlugins::Check(ENGINE_DIR."/modules/board/edit.post.php") );
				break;
				
			case "del":
				include( DLEPlugins::Check(ENGINE_DIR."/modules/board/del.post.php") );
				break;
				
			case "my":
				include( DLEPlugins::Check(ENGINE_DIR."/modules/board/my.post.php") );
				break;
				
			case "userpost":
				include( DLEPlugins::Check(ENGINE_DIR."/modules/board/user.post.php") );
				break;
				
			case "notepad":
				include( DLEPlugins::Check(ENGINE_DIR."/modules/board/notepad.post.php") );
				break;
				
			case "boardcat":
				include( DLEPlugins::Check(ENGINE_DIR."/modules/board/category.php") );
				break;
				
			case "fullsearch":
				include( DLEPlugins::Check(ENGINE_DIR."/modules/board/fullsearch.php") );
				break;
				
			case "rss":
				include( DLEPlugins::Check(ENGINE_DIR."/modules/board/rss.php") );
				break;
				
			default:
				$action = "main";
				include( DLEPlugins::Check(ENGINE_DIR."/modules/board/main.php") );
				break;
		}
		
		//--------------------------------------------------=-=-=-=-=
		//	Обработка сгенерированного
		//--------------------------------------------------=-=-=-=-=
		
		if( $BoardLoadMainTpl === true )
			{
				$SelectBoardType = $Board->ReturnSelectBoardType( $BoardType, $BoardCategory );
				$MyBoardPost = $Board->AltUrl ? "/board/my" : "/index.php?do=board&action=my";
				$MyBoardNotepad = $Board->AltUrl ? "/board/notepad" : "/index.php?do=board&action=notepad";
				$AddBoardPost = $Board->ReturnLinkAddPost();
				$FullBoardSearch = "/index.php?do=board&action=fullsearch";
				$SelectCountry = $Board->ReturnSelectCountry( $_SESSION['BoardCountry'] );
				$SelectCity = $Board->ReturnSelectCity( $_SESSION['BoardCountry'], $_SESSION['BoardCity'] );
				
				$LastComm = $Board->LastCommentsBlock();
				
				$Folder = $Folder != "" ? $Folder : "default";
				$tpl->Load_Template( "board/{$Folder}/main.tpl" );
				$tpl->set( "{cats}", $cats );
				$tpl->set( "{my_board}", $MyBoardPost );
				$tpl->set( "{my_notepad}", $MyBoardNotepad );
				$tpl->set( "{add_post}", $AddBoardPost );
				$tpl->set( "{full_search_link}", $FullBoardSearch );
				$tpl->set( "{content}", $tpl->result['board_content'] );
				$tpl->set( "{Search:boardtype}", "<select name=\"board_type\">{$SelectBoardType}</select>" );
				$tpl->set( "{MainLink}", $MainLink );
				$tpl->set( "{rssLink}", $rssLink );
				$tpl->set( "{UserCountry}", $UserCountry );
				$tpl->set( "{UserCity}", $UserCity );
				$tpl->set( "{UserCityID}", intval( $_SESSION['BoardCity'] ) );
				
				$tpl->set( "{LastComm}", $LastComm );
				
				$tpl->set( "{SelectCountry}", "<select name=\"country\" id=\"SelectListCountry\" onkeyup=\"SelectCountry( '', 'Выберите' );\" onkeydown=\"SelectCountry( '', 'Выберите' );\" onchange=\"SelectCountry( '', 'Выберите' );\"><option value=\"\">- Без разницы -</option>{$SelectCountry}</select>" );
				$tpl->set( "{SelectCity}", "<span id=\"FormSelectCity\"><select name=\"city\" id=\"SelectCity\"><option value=\"\">- Без разницы -</option>{$SelectCity}</select> <span id=\"FormSelectCityStatus\"></span></span>" );
				$tpl->set_block( "'\\[SelectRegion\\](.*?)\\[/SelectRegion\\]'si", "<form method=\"post\" action=\"\">\\1</form>" );
				
				$tpl->set_block( "'\\[cats\\](.*?)\\[/cats\\]'si", ( $cats ? "\\1" : "" ) );
				$tpl->set_block( "'\\[rss\\](.*?)\\[/rss\\]'si", ( $rssLink ? "\\1" : "" ) );
				$tpl->set_block( "'\\[allow_search\\](.*?)\\[/allow_search\\]'si", ( $BoardAllowSearch === true ? "\\1" : "" ) );
				
				$SearchTextForm = htmlspecialchars( $SearchTextForm, ENT_QUOTES, $config['charset'] );
				$tpl->set_block( "#{search:text->(.+?)}#is", ( ( $SearchTextForm != "" ) ? $SearchTextForm : "\\1" ) );
				
				$tpl->compile( "board" );
				$tpl->clear();
			}
		
		$tpl->result['content'] = $tpl->result['content'].$tpl->result['board'];
		$tpl->result['content'] = preg_replace_callback( "#\\[(Not|Yes)BoardAllow:(.+?)\\](.+?)\\[/(Not|Yes)BoardAllow\\]#is", function( $matches ) use ( $Board ){
			return $Board->ReplaceTagBlock( $matches[2], $matches[3], $matches[1] );
		}, $tpl->result['content'] );
		$tpl->result['content'] = preg_replace_callback( "#\\[(Not|Yes)BoardAllowCat:(.+?)\\](.+?)\\[/(Not|Yes)BoardAllowCat\\]#is", function( $matches ) use ( $Board ){
			return $Board->ReplaceTagBlockCat( $matches[2], $matches[3], $matches[1] );
		}, $tpl->result['content'] );
		
		if( $Board->Config['region_on'] == "on" )
			{
				$tpl->result['content'] = preg_replace( "#\\[allow_region\\]([^\\[]*)\\[/allow_region\\]#is", "\\1", $tpl->result['content'] );
				$tpl->result['content'] = preg_replace( "#\\[not-allow_region\\]([^\\[]*)\\[/not-allow_region\\]#is", "", $tpl->result['content'] );
			}
				else
			{
				$tpl->result['content'] = preg_replace( "#\\[allow_region\\]([^\\[]*)\\[/allow_region\\]#is", "", $tpl->result['content'] );
				$tpl->result['content'] = preg_replace( "#\\[not-allow_region\\]([^\\[]*)\\[/not-allow_region\\]#is", "\\1", $tpl->result['content'] );
			}
		
		unset( $tpl->result['board'] );
	}
		else
	{
		msgbox( "Информация", "Объявления в данный момент отключены администрацией сайта." );	
	}

//--------------------------------------------------=-=-=-=-=
//	Метатег <title> и модуль SpeedBar
//--------------------------------------------------=-=-=-=-=

$NewTitle = array();
for( $i = count( $module['title'] ); $i > 0; $i-- ) $NewTitle[] = $module['title'][ $i - 1 ];
$metatags['header_title'] = implode( " &raquo; ", $NewTitle )." &raquo; ".$config['home_title'];
$module['speedbar'] = implode( " &raquo; ", $module['speedbar'] );
$module['title'] = "";

?>


Собственно - {LastComm} выводит комменты на главной модуля, как сделать чтобы работало и на главной самого движка?
  • Вопрос задан
  • 305 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы