Перейти к контенту
  • 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.

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

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

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

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

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

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

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

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

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