Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как решить проблему с кодировкой Хака последних сообщений с форума?

Как решить проблему с кодировкой Хака последних сообщений с форума?


     13.12.2015    Общие вопросы, Хаки    1871

вопрос
Доброго времени суток.
Помогите пожалуйста с кодировкой Хака последних сообщений с форума.
Создаётся сайт vrc.one, главная страница которого на движке Dle 10.4, а форум на XenForo.
Нам нужно, чтобы последние сообщения форума выводились на главной странице сайта. В гугле нашёл только один способ - это хак "xf-topics", но в нем кракозябры вместо русских букв.
Как решить проблему с кодировкой Хака последних сообщений с форума?

Dle в кодировке UTF-8 и форум XenForo тоже в UTF-8.
Все три файла из этого хака я перекодировал через программку UTFCast Express, и заголовки столбцов превратились в русский буквы, а вот темы с форума так и остались с вопросиками.
Попытался найти решения в гугле, но не смог, т.к даже не представляю от чего оттолкнуться .
На всякие пожарные вот эти три файла.

1.
<style type="text/css">
.xf_topics td { border: 1px solid #d8d8d8; padding: 2px; background-color: #fff; }
.xf_topics thead td { font-size: 0.9em; background: #fff url("/engine/modules/xf_topics/bg.png") repeat-x 0 50%; height: 22px; padding: 0; font-weight: bold; text-align: center; color: #4e4e4e; }
table.xf_topics { border-collapse: collapse; border-spacing: 0; }
</style>

<div style="padding: 0 15px 13px 15px;border-bottom: 1px solid #dadada;">

<table width="100%" class="xf_topics">

<thead>
<td align="center">Раздел</td>
<td align="center">Название темы</td>
<td align="center">Ответов</td>
<td align="center">Последний</td>
</thead>

{xf_topics}

</table>

{copyright}

</div>

<br />


2.
<?php

/*====================================================
Author: RooTM
------------------------------------------------------
Web-site: http://weboss.net/
=====================================================*/

if (!defined('DATALIFEENGINE')) {
    die("Hacking attempt!");
}

/*================================================================*/
   $config['db']['host'] = 'localhost'; // Сервер MySQL
   $config['db']['username'] = 'root'; // Имя пользователя
   $config['db']['password'] = 'qwerty'; // Пароль
   $config['db']['dbname'] = 'forum'; // Имя базы данных
/*=================================================================*/

/*====================================================================================*/
   $max_topics = 10; // Максимальное количество тем
/*------------------------------------------------------------------------------------*/
   $max_topic_name = 50; // Максимальная длина названия темы
/*------------------------------------------------------------------------------------*/
   $encode_urls = 'yes'; // Кодировать URL? yes - да; no - нет
/*-------------------------------------------------------------------------------------*/
   $friendly_urls = 'yes'; // На форуме используются ЧПУ-ссылки? yes - да; no - нет
/*-------------------------------------------------------------------------------------*/
   $forum_url = 'http://forum.ws/'; // Ссылка на ваш форум
/*=====================================================================================*/

$is_change = false;

if ($config['allow_cache'] != "yes") {$config['allow_cache'] = "yes";$is_change = true;}

$xf_topics = dle_cache("xf_topics", $config['skin']);

if ($xf_topics === false) {

function encode_url($url,$encode_urls) {
if ($encode_urls == 'yes') return '/engine/go.php?url='.rawurlencode(base64_encode($url));
   else return $url;
}

    $tpl = new dle_template();
    $tpl->dir = ENGINE_DIR . '/modules/xf_topics/';
    define('TEMPLATE_DIR', $tpl->dir);

mysql_connect($config['db']['host'], $config['db']['username'], $config['db']['password']);
mysql_select_db($config['db']['dbname']);

$sql = "SELECT thread.thread_id, thread.node_id, thread.title, thread.reply_count, thread.last_post_date, thread.last_post_id, thread.last_post_user_id, thread.last_post_username, node.node_id, node.title AS forum_name FROM xf_thread as thread, xf_node as node WHERE node.node_id=thread.node_id ORDER BY thread.last_post_date DESC LIMIT 0, " . $max_topics;

   $sql = mysql_query($sql);
    
  while ($row = mysql_fetch_assoc($sql)){

if($friendly_urls == 'yes'){
$topic_link = $forum_url.'posts/'.$row['last_post_id'].'/';
$forum_link = $forum_url.'forums/'.urlencode($row['forum_name']).'.'.$row['node_id'].'/';
$user_link = $forum_url.'members/'.urlencode($row['last_post_username']).'.'.$row['last_post_user_id'].'/';
    }else{
$topic_link = $forum_url.'index.php?posts/'.$row['last_post_id'].'/';
$forum_link = $forum_url.'index.php?forums/'.urlencode($row['forum_title']).'.'.$row['node_id'].'/';
$user_link = $forum_url.'index.php?members/'.urlencode($row['last_post_username']).'.'.$row['last_post_user_id'].'/';
}

if( dle_strlen( $row['title'], $config['charset'] ) > $max_topic_name ) $topic_name = dle_substr( $row['title'], 0, $max_topic_name, $config['charset'] ) . " ...";
        else $topic_name = $row['title'];

        $tpl->load_template('topic.tpl');

        $tpl->set( '{user_name}', $row['last_post_username'] );
        $tpl->set( '{user_link}', encode_url($user_link,$encode_urls) );
        
        $tpl->set( '{topic_name}', $topic_name );
        $tpl->set( '{topic_link}', encode_url($topic_link,$encode_urls) );

        $tpl->set( '{forum_name}', $row['forum_name'] );
        $tpl->set( '{forum_link}', encode_url($forum_link,$encode_urls) );
        
        $tpl->set( '{reply_count}', $row['reply_count'] );

     $tpl->compile('topic');

     $xf_topics .= $tpl->result['topic'];

     $tpl->global_clear();

  }

$tpl->load_template ( 'box.tpl' );

$tpl->set ( '{xf_topics}', $xf_topics );

$tpl->set ( '{copyright}', '<div align="right" style="font-size: 9px; padding-right: 3px;">Copyright &copy; WEBoss.Net</div>' );

$tpl->compile ( 'box' );

$xf_topics = $tpl->result['box'];

$tpl->global_clear ();

    create_cache("xf_topics", $xf_topics, $config['skin']);
    
}

echo  $xf_topics;

if ($is_change) $config['allow_cache'] = false;

?>


3.
<tr>
<td align="center"><a href='{forum_link}'>{forum_name}</a></td>
<td align="center"><a href='{topic_link}'>{topic_name}</a></td>
<td align="center">{reply_count}</td>
<td align="center"><a href='{user_link}'>{user_name}</a></td>
</tr>


Может в одном из файле , что то можно заменить.

Ответа пока нет


3 комментария

alex83
Юзер

alex83 - 15 декабря 2015 17:16 -

идей нет? Выручайте плиз

alex83
Юзер

alex83 - 15 декабря 2015 20:42 -

в run.php
после кода
Код:
mysql_connect($config['db']['host'], $config['db']['username'], $config['db']['password']);
mysql_select_db($config['db']['dbname']);
добавь строку
Код:
mysql_query ("set character_set_results='utf8'");

это если вывод нужен в UTF-8

проблема решил

alex83
Юзер

alex83 - 21 декабря 2015 17:48 -

Подскажите пожалуйста, как сделать запрос Базы данных, если модуль последних сообщений не обновляется. ?

вот описание к модулю
Полное кэширование(если нет кэша только 1 запрос к БД).


Суть проблемы

Добавляется сообщение на форуме, а на главной странице не отображается. Перезагрузил комп и произошли обновления, и так постоянно.

Так же и по изменениям в дизайне сайта.

только после чистки кэша видны изменения на главной странице сайта.

Адрес сайта и фаилы модуля "Последние сообщения" в первом посте.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

наверх