Перейти к контенту
  • 0

Последние сообщения на главной


Мехман

Вопрос

Добрый день,уважаемые. У меня есть форум на ipb - exc-pw.ru/excforum  и главная exc-pw.ru(обычный html).

Как мне вывести последние сообщения в блок на html странице? 

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

Вроде выводят с помощью ssi.php используя include. Вот пример ipbmafia.ru/index 

Вы могли бы подсказать мне, как реализовать такую функцию?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

SSI - это и есть интерпретируемый язык, а не обычный html. Т.е. вам придется разрешить апачу проверять .html на наличие SSI-вставок. 

А в целом да, копируете себе ssi.php и папку ssi_templates из папки tools дистрибутива IPB, а как им пользоваться вкратце описано в самом файле.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Все залил. Инклуд прописал. Но не выводитс. Помогите,пожалуйста. Вот код страницы куда надо выводить:

<!DOCTYPE html>

<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Гильдия Excellent сервера Кассиопея игры Perfect World</title>
    <meta name="keywords" content="">
    <meta name="description" content="">


    <link href="/css/main.css" rel="stylesheet" type="text/css" media="all">
    <link href="/css/classes.css" rel="stylesheet" type="text/css" media="all">
    <link href="/css/engine.css" rel="stylesheet" type="text/css" media="all">
    <link href="/css/fancybox.css" rel="stylesheet" type="text/css" media="all">
    <link href="/css/jscrollpane.css" rel="stylesheet" type="text/css" media="all">
    
           <script type="text/javascript" src="//vk.com/js/api/openapi.js?105"></script>
    <script type="text/javascript" src="/js/jquery.js"></script><style></style>
	  <script type="text/javascript" src="/js/stressweb.js"></script>
    <script type="text/javascript" src="/js/countdown.js"></script>
    <script type="text/javascript" src="/js/jscrollpane.js"></script>
    <script type="text/javascript" src="/js/mousewheel.js"></script>
    <script type="text/javascript" src="/js/fancybox.js"></script>
    <script type="text/javascript" src="/js/scripts.js"></script>
    
<link href="/css/css" rel="stylesheet" type="text/css"></head>
<body>


<div class="bg1">
    <div id="wrapper">
        <header><div id="header">
            <div id="navigation">
                <div id="sibling" class="wow">
                    <a href="" class="dba" title="uWOW.biz" target="_blank">Excellent Guild</a>
                </div>
                <ul>
                    <li class="main doubl">
                        <a href="/">Главная</a>
                        <span></span>
                    </li>
                    <li class="about doubl">
                        <a href="">О Гильдии</a>
                        <span style="opacity: 0;"></span>
                    </li>
                    <li class="bonus doubl">
                        <a href="">Дипломатия</a>
                        <span style="opacity: 0;"></span>
                    </li>
                    <li class="stat doubl">
                        <a href="">Вступление</a>
                        <span style="opacity: 0;"></span>
                    </li>
                    <li class="stream doubl">
                        <a href="">Устав</a>
                        <span style="opacity: 0;"></span>
                    </li>
                    <li class="forum doubl">
                        <a href="http://exc-pw.ru/excforum/">Форум</a>
                        <span style="opacity: 0;"></span>
                    </li>
                    
                </ul>
            </div>
            <div id="logo">
                <h1>
                    <a href="" class="dba" title="На главную">Гильдия Excellent </a>
                </h1>
            </div>
            <div id="start-game">
                <a href="http://exc-pw.ru/excforum/" class="dba">Набор открыт</a>
                <span class="dba"></span>
            </div>
			
        </div></header>
        <div id="middle">
            <div id="sidebar" class="fl_l">
                <div id="cp">
                    <div class="login-link doubl">
                        <a href="http://exc-pw.ru/excforum/" class="dba">Регистрация строго под игровыми никами!</a>
                        <span class="dba" style="opacity: 0;"></span>
                    </div>
					
                    <div class="register-link doubl">
                        <a href="http://exc-pw.ru/excforum/index.php?app=core&module=global&section=register" class="dba">Регистрация!</a>
                        <span class="dba" style="opacity: 0;"></span>
                    </div>
                </div>
                <div id="servers-status">
                  



<div class="item">
    <table cellspacing="0" width="100%">
        <tbody><tr>
           


            <td width="70" align="right"> </td>
        </tr>
    </tbody></table>
</div>


<div id="summary-online" class="hide"> 68</div>




                </div>
                <div id="reviews">
                    <div class="main-title">
                        <h3>Последнее на форуме</h3>
                    </div>
				
<? include("//www.exc-pw.ru/excforum/ssi.php?a=news&show=10");?>	                  
	RSS: http://www.exc-pw.ru/excforum/ssi.php?a=out&f=1,2,3,4,5&show=10&type=rss
XML: http://www.exc-pw.ru/excforum/ssi.php?a=out&f=1,2,3,4,5&show=10&type=xml
  <a href="" class="label orange">
                        <span>Узнать больше</span>
                    </a>
                </div>
            </div>
            <div id="mainbar" class="fl_l">
                <div id="content" style="overflow: hidden; padding: 0px; width: 614px;">
    
                <div class="jspContainer" style="width: 614px; height: 690px;"><div class="jspPane" style="padding: 0px; top: 0px; width: 614px;"><div class="jspContainer" style="width: 614px; height: 690px;"><div class="jspPane" style="padding: 0px; top: 0px; width: 614px;"><div class="news">
    <div class="news-image fl_l">
  
    </div>
    <div class="news-content">
        <div class="news-head">
            <div class="main-title">
              
            </div>
        </div>
     
    </div>
</div>
</div></div></div></div></div>
            </div>
        </div>
        <div id="container">
            <div id="info" class="fl_l">
                <div class="main-title">
                    <h2>Информация о Гильдии</h2>
                </div>
                <div class="content">
					<p>Название Гильдии - Excellent (<br>
                    Слаженный коллектив на протяжении уже нескольких лет!<br>
					Excellent - !<br>
					Ник.<br>
					Веселый ,.<br>
					Если<br>
					</p></div>
                <a href="" class="label blue">
                    <span>Узнать больше</span> »
                </a>
            </div>
            <div id="friends" class="fl_l">
                <div class="main-title">
                    <h2>ВКонтакте:</h2>
                </div>
                <div class="content"><div id="vk_groups"></div>
<script type="text/javascript">
VK.Widgets.Group("vk_groups", {mode: 1, wide: 1, width: "220", height: "400"}, 19718749);
</script>
           
                    <ul>
          
                    </ul>
                </div>
            </div>
          
        </div>
  
    </div>
</div>
</body></html>
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Попробуйте открыть блок кода с <?php а не с короткого тега. Может быть выключено открытие коротким тегом в настройках php . Да и инклюд по URL мало где разрешен - дырка бездонная. Надо тогда хоть через file_get_contents или curl .

А вообще, домен-то общий, проще

Только www.exc-pw.ru/excforum/ssi.php?a=news&show=10 дает ошибку. Для проверки надо www.exc-pw.ru/excforum/ssi.php?a=active использовать,
 

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Вот тест http://ibrtest.ru/jsonssi.html , ну там еще ajax прикручен .

 

Для аякса расширил ssi.php новой функцией(почти вся списана с _doSyndication()):

 

 

protected function _doAjax()
	{
		//----------------------------------------
		// Sort out the forum ids
		//----------------------------------------
		$out=array();
		$tmp_forums = array();
		$forums     = array();
		$fwhere="";
		if ( $this->request['f'] )
		{
			$tmp_forums = explode( ",", $this->request['f'] );
			//----------------------------------------
			// Intval the IDs
			//----------------------------------------
			
			foreach ($tmp_forums as $f )
			{
				$f = intval($f);
				
				if ( $f )
				{
					$forums[] = $f;
				}
			}
			//----------------------------------------
			// Check...
			//----------------------------------------
			
			if ( count($forums)){
				$sql_fields = implode( ",", $forums );
				$fwhere="forum_id IN ({$sql_fields}) AND ";
			}
		}
	
		
		
		$offset = intval($this->request['offset'])?intval($this->request['offset']):0;
		
		//----------------------------------------
		// Number of topics to return?
		//----------------------------------------
		
		$perpage = intval($this->request['show']) ? intval($this->request['show']) : 10;
		
		$perpage = ( $perpage > SSI_MAX_SHOW ) ? SSI_MAX_SHOW : $perpage;
		
		
		//----------------------------------------
		// Fix up
		//----------------------------------------
		
		$group = $this->caches['group_cache'][ $this->settings['guest_group'] ];
			
		//----------------------------------------
		// Get the topics, member info and other stuff
		//----------------------------------------
		
		$this->DB->build( array( 'select' => '*',
													  'from'   => 'topics',
													  'where'  => $fwhere . $this->registry->getClass('class_forums')->fetchTopicHiddenQuery( array( 'visible' ), '' ),
													  'order'  => 'last_post DESC',
													  'limit'  => array( $offset, $perpage ) ) );
		
		$this->DB->execute();
				   
		if ( $this->DB->getTotalRows() )
		{
			
			
			while ( $i = $this->DB->fetch() )
			{
				$forum = $this->registry->class_forums->forum_by_id[ $i['forum_id'] ];
				
				if ( $this->registry->permissions->check( 'read', $forum ) != TRUE )
				{
					continue;
				}

				if ( $forum['password'] != "" )
				{
					continue;
				}
				
				$out[] = array ( 'topic_title'    => str_replace( '', '&#', $i['title'] ),
																 'topic_id'       => $i['tid'],
																 'topic_link'     => $this->settings['base_url']."showtopic=".$i['tid'],
																 'forum_title'    => htmlspecialchars($forum['name']),
																 'forum_id'       => $i['forum_id'],
																 'last_poster_id' => $i['last_poster_id'],
																 'last_post_name' => $i['last_poster_name'],
																 'last_post_time' => $this->registry->getClass('class_localization')->getDate( $i['last_post'] , 'LONG', 1 ),
																 'timestamp'      => $i['last_post'],
																 'starter_id'     => $i['starter_id'],
																 'starter_name'   => $i['starter_name'],
																 'board_url'      => $this->settings['board_url']          ,
																 'board_name'     => $this->settings['board_name'],
																 'rfc_date'       => date( 'r', $i['last_post'] ) );
				 
			
			}
		}
		else {
			$out = array('no_data');
		}
		echo json_encode($out);
	}

 

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Вообще не получается(

Так ввел(

		<?php echo $content=file_get_contents('http://www.exc-pw.ru/excforum/ssi.php?a=active');				?>

Может в .htacesss что-то не прописано? У меня там тупо 2 строчки.

RewriteEngine on
RewriteRule ^(.*)\.html $1\.php
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Все выводит. Прописал

	<?
require_once 'excforum/conf_global.php'; // путь до conf_global
$dbhost=$INFO['sql_host'];
$dbuser=$INFO['sql_user'];
$dbpass=$INFO['sql_pass'];
$dbname=$INFO['sql_database'];
$board=$INFO['board_url'];
mysql_connect($dbhost, $dbuser, $dbpass) or die("Couldn't connect to MySQL");
mysql_select_db($dbname) or die("Couldn't open db: $dbname. Error if any was: ".mysql_error() );
?>
<table>
	<tr>
		<td>Тема</td>
		<td>Автор</td>
		<td>Ответов</td>
		<td>Просмотров</td>
		<td>Дата</td>
		<td>Последний</td>
	</tr>
<?
$query="SELECT `tid`,`starter_name`,`title`,`start_date`,`last_poster_name`,`last_post`,`title_seo`,`starter_id`,`posts`,`views`,`forum_id` from `topics` order by `last_post` desc limit 5";
$result=mysql_query($query);
while($row = mysql_fetch_array($result)){
?>
	<tr>
		<td><a href='<?=$board?>/topic/<?=$row['tid']?>-<?=$row['title_seo']?>'><?=$row['title']?></a></td>
		<td><a href='<?=$board?>/user/<?=$row['starter_id']?>-<?=$row['starter_name']?>'><?=$row['starter_name']?></td>
		<td><?=$row['posts']?></td>
		<td><?=$row['views']?></td>
		<td><?=date('d M Y',$row['last_post'])?></td>
		<td><?=$row['last_poster_name']?></td>
	</tr>
<?}?>
</table>

Но выводит с неправильно кодировкой. ЧТо делать тут теперь? И как прописать свой стиль?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Прошу помочь,пожалуйста

 

А база что в 1251? Тогда можно переконвертить результат в UTF через iconv

 

Вопрос про стиль я не понял. Если в css придуман стиль для таблиц, так пропишите его в тег.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Я имел ввиду поменять кодировку результата с помощью команды iconv, как ее использовать написано по ссылке. А про конвертацию всей базы можно почитать в шаге 3 гайда по апгрейду до 3.х, только проверьте сначала в какой кодировке у вас база.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

<?php echo $content=file_get_contents('http://www.exc-pw.ru/excforum/ssi.php?a=active'); ?>

не надо там %content= просто

 

<?php echo file_get_contents('http://www.exc-pw.ru/excforum/ssi.php?a=active');				?>

@MrLite, а откуда инфа про 1251?

Сказано просто про неправильную кодировку. Может надо

mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET character_set_connection = utf8");

дописать перед основным запросом.

У сервера может быть кодировка соединения latin-1 или еще какая, а база может и в UTF при этом быть.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

 

<?php echo $content=file_get_contents('http://www.exc-pw.ru/excforum/ssi.php?a=active'); ?>

не надо там %content= просто

 

<?php echo file_get_contents('http://www.exc-pw.ru/excforum/ssi.php?a=active');				?>

@MrLite, а откуда инфа про 1251?

Сказано просто про неправильную кодировку. Может надо

mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET character_set_connection = utf8");

дописать перед основным запросом.

У сервера может быть кодировка соединения latin-1 или еще какая, а база может и в UTF при этом быть.

 

Перевести не получилось,прописал все это...но увы:-( А вот инклуд вышел  - спасибо.

Как теперь можно еще задать свой стиль для рамки последних сообщений?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Так меняйте сам ssi.php, чтобы получить то, что хочется, в том виде, в котором хочется. Можно например, выдавать из ssi.php сразу html c css-классами, а сами классы описать в том html, в который вставляете результат. 

Странное дело с этими кодировками, вот если в консоли JS в хроме (ctrl+shift+i, esc) на сайте www.exc-pw.ru выполнить JS из моего примера:
 

$.getJSON('http://ibrtest.ru/ssi.php?a=ajax&offset=0&show=10', function(data){
  var items = [];
 if(data=="no_data"){
	return;
 }
  $.each(data, function(key, val){
	var decoded = $("<div/>").html(val.topic_title).text();
    $('<p><a href="'+val.topic_link+'" id=topic_"' + val.topic_id + '">' + decoded + '</a></p>').prependTo('#reviews'); });})

то все нормально вставляется, в нужной кодировке. 


там, я смотрю, и вконтактовский блок тоже в 1251

Изменено пользователем Denis Chursinov
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Функция моего примера полностью дана в этом сообщении . Ну еще её надо вызвать в зависимости от параметра 'a'. делается это в методе __construct в том же файле. Там надо добавить кусок в блок switch. Получится так:

 

 

switch ($this->request['a'])
		{
			case 'active':
				$this->_doActive();
				break;
				
			case 'stats':
				$this->_doStats();
				break;
			case 'ajax':
				$this->_doAjax();
				break;
			case 'out':
				if ( SSI_ALLOW_SYND == 1 )
				{
					$this->_doSyndication();
				}
				else
				{
					exit();
				}
				break;
				
			default:
				echo("An error occurred whilst processing this directive");
				exit();
				break;
		}

 

Это все просто пример, вы можете туда вписывать свое. И вписывать свои запросы в ssi.php намного безопаснее и правильнее, чем инициировать новое соединение с базой форума напрямую из html.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.