1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

XF-Last: Вывод последних тем на главную WordPress, плагин для WP

Тема в разделе "Основные вопросы по XenForo", создана пользователем creativ, 05.05.2011.

Загрузка
  1. creativ

    creativ Местный

    Регистрация:
    27.09.10
    Сообщения:
    43
    Симпатии:
    21
    Версия XF:
    1.1.1
    Заказывал разработку плагина в пору WP 3.0 и XenForo 1.0.0 Beta 1, с ними все работало. Времени на ведение сайта и форума не было, а когда появилось WP и XF обновились, плагин перестал работать. Разработчик не желает поддерживать плагин.
    Теперь о самом XF-Last. XF-Last является плагином для WP и оформлен в ввиде виджета, тема WP должна поддерживать виджеты.
    Cейчас плагин вместо последних тем выдает следующее:
    Код:
    Warning: mysql_affected_rows(): 109 is not a valid MySQL-Link resource in /home/patch/public_html/wp-content/plugins/xf-last/xf-last.php on line 38
    Что нужно поправить в данном плагине?

    xflast.JPG
    Код плагина:
    Код:
    <?php
    /*
    Plugin Name: XF-Last
    Author: xf-russia community
    Version: 1.0.3
    Author URI: http://www.xf-russia.ru
    */
    
    /* if (!function_exists('chkget')) {function chkget($params) {
      $params = explode(',', $params);
      foreach ($params as $param) if (!isset($_GET[trim($param)])) return false;
      return true;
    }}*/
    
    if (!function_exists('chkpost')) {function chkpost($params) {
      $params = explode(',', $params);
      foreach ($params as $param) if (!isset($_POST[trim($param)])) return false;
      return true;
    }}
    
    if (!function_exists('htmltext')) {function htmltext($html) {
      return htmlspecialchars($html, ENT_QUOTES);
    }}
    
    function xf_widget()
    {
    $xf_title = htmltext(get_option('xf_title', 'Обсуждения на форуме'));
    $xf_nheaders = get_option('xf_nheaders', 5);
    $xf_host = get_option('xf_host', 'localhost');
    $xf_user = get_option('xf_user', 'root');
    $xf_pass = get_option('xf_pass', '');
    $xf_name = get_option('xf_name', 'test');
    $xf_query = get_option('xf_query', 'SELECT thread_id, title FROM xf_thread ORDER BY last_post_date DESC LIMIT 0, %%nheaders%%');
    if (!is_resource($xf_conn=@mysql_connect($xf_host, $xf_user, $xf_pass))) return false;
    if (!@mysql_select_db($xf_name, $xf_conn)) return mysql_close($xf_conn);
    mysql_query("SET names utf8");
    $res = @mysql_query(str_replace('%%nheaders%%', $xf_nheaders, $xf_query), $xf_conn);
    $cnt = intval(@mysql_affected_rows($xf_conn));
    if ($cnt<1) return mysql_close($xf_conn);
    $row = mysql_fetch_assoc($res);
    if (!isset($row['title'])) return mysql_close($xf_conn);
    
    <div class=\"section type1\">\r\n<h3>$xf_title</h3><ul>\r\n";
    if (isset($row['thread_id']))
    while (is_array($row) and count($row)>1)
      {
      $url = '/forum/index.php?threads/' . urlencode($row['title']) . '.' . $row['thread_id'] . '/';
      $title = htmltext($row['title']);
      echo "<li><a href=\"$url\">$title</a></li>\r\n";
      $row = mysql_fetch_assoc($res);
      }
    else while (is_array($row) and count($row)>1)
      {echo htmltext($row['title']) . "<br />\r\n";
      $row = mysql_fetch_assoc($res);}
    echo "</ul>\r\n</div>\r\n";
    
    return mysql_close($xf_conn);
    }
    
    function xf_widget_control()
    {
    $xf_title = get_option('xf_title', 'Обсуждения на форуме');
    $xf_nheaders = get_option('xf_nheaders', 5);
    $xf_host = get_option('xf_host', 'localhost');
    $xf_user = get_option('xf_user', 'root');
    $xf_pass = get_option('xf_pass', '');
    $xf_name = get_option('xf_name', 'test');
    $xf_query = get_option('xf_query', 'SELECT thread_id, title FROM xf_thread ORDER BY last_post_date DESC LIMIT 0, %%nheaders%%');
    if (chkpost('xf_title,xf_nheaders,xf_host,xf_user,xf_pass,xf_name,xf_query'))
      {
      if ($_POST['xf_title'])
        update_option('xf_title', $xf_title=stripslashes($_POST['xf_title']));
      if (preg_match('/^[0-9]{1,3}$/', $_POST['xf_nheaders']))
        update_option('xf_nheaders', $xf_nheaders=intval($_POST['xf_nheaders']));
      if ($_POST['xf_host'])
        update_option('xf_host', $xf_host=stripslashes($_POST['xf_host']));
      if ($_POST['xf_user'])
        update_option('xf_user', $xf_user=stripslashes($_POST['xf_user']));
      if ($_POST['xf_pass'])
        update_option('xf_pass', $xf_pass=stripslashes($_POST['xf_pass']));
      if ($_POST['xf_name'])
        update_option('xf_name', $xf_name=stripslashes($_POST['xf_name']));
      if ($_POST['xf_query'])
        update_option('xf_query', $xf_query=stripslashes($_POST['xf_query']));
      }
    $xf_title = htmltext($xf_title);
    $xf_nheaders = htmltext($xf_nheaders);
    $xf_host = htmltext($xf_host);
    $xf_user = htmltext($xf_user);
    $xf_pass = "";
    $xf_name = htmltext($xf_name);
    $xf_query = htmltext($xf_query);
    
    echo <<<XML
    <table>
    <tr><td>Заголовок:</td><td><input name="xf_title" type="text" style="width:100%" value="$xf_title" /></td></tr>
    <tr><td>Заголовков тем:</td><td><input name="xf_nheaders" type="text" size="3" value="$xf_nheaders" /></td></tr>
    <tr><td>Хост БД:</td><td><input name="xf_host" type="text" style="width:100%" value="$xf_host" /></td></tr>
    <tr><td>Пользователь БД:</td><td><input name="xf_user" type="text" style="width:100%" value="$xf_user" value="$xf_nheaders" /></td></tr>
    <tr><td>Пароль БД:</td><td><input name="xf_pass" type="password" style="width:100%" value="$xf_pass" /></td></tr>
    <tr><td>Название БД:</td><td><input name="xf_name" type="text" style="width:100%" value="$xf_name" /></td></tr>
    <tr><td>SQL-запрос:</td><td><input name="xf_query" type="text" style="width:100%" value="$xf_query" /></td></tr>
    </table>
    XML;
    }
    
    wp_register_widget_control('xf_widget', 'XF-Last', 'xf_widget_control', array('description'=>'XF-Last sidebar widget'));
    wp_register_sidebar_widget('xf_widget', 'XF-Last', 'xf_widget', array('description'=>'XF-Last sidebar widget'));
    
    ?>
     

    Вложения:

    • xf-last.zip
      Размер файла:
      1,6 КБ
      Просмотров:
      15
    TAIFUN нравится это.
  2. Slam

    Slam Активный пользователь

    Регистрация:
    28.01.11
    Сообщения:
    79
    Симпатии:
    13
    Версия XF:
    1.1.3
    Сегодня нашел аналогичный (во вложении). Также есть виджет в бридже (пока им пользуюсь).
     

    Вложения:

    TAIFUN нравится это.
  3. Antonio

    Antonio Пользователь

    Регистрация:
    30.08.11
    Сообщения:
    1
    Симпатии:
    0
    Установил, отображается виджет, но сообщения не выводятся. Может есть какие-то моменты?
     

Поделиться этой страницей