MyBB Hacks

Full Version: xthreads error
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3
bad news. Frown i tried setting the live board copy on my localhost, but it didnt allowed and gave errors as most of the plugins settings are enabled by default.
I think you need to download all plugin files from your live board, and copy it to your board copy (test forum).
yep, i had done it. got the error when making the live board's database copy restore on localhost. mybbpublisher is activated on live forum and its errors are more when trying the restore on localhost
this is the code causing the error from xt_forumdhooks.php


Code:
function xthreads_forumdisplay_dbhook(&$s, &$db) {
            global $threadfield_cache, $fid, $plugins, $threadfields;
            //if(empty($threadfield_cache)) return;
            
            $fields = '';
            foreach($threadfield_cache as &$v)
                $fields .= ', tfd.`'.$v['field'].'` AS `xthreads_'.$v['field'].'`';
            
            $s = strtr($s, array(
                'SELECT t.*, ' => 'SELECT t.*'.$fields.', ',
                'WHERE t.fid=' => 'LEFT JOIN `'.$db->table_prefix.'threadfields_data` tfd ON t.tid=tfd.tid WHERE t.fid=',
            ));
            $plugins->add_hook('forumdisplay_thread', 'xthreads_forumdisplay_thread');
            $threadfields = array();
        }

Upload your forumdisplay.php here.
Here it is rateu, http://pastebin.com/wCk6xh3W

As suggested some other mybb techie, i changed the tfd to t in the xt_forumdhooks.php. But it also gave the same error.
Do you have a plugin that pull out forum announcement and can be viewed in forumdisplay?
proportal and clear news bar.
clear news bar do display the threads from selected forums on forum display.
and proportal displays in separate portal templates
RateU, I <3 you man. You are my hero Tongue

Yeah, that news bar plugin is the cause. I just deactivated it and the problem solved. Well, here is the clear news bar plugin code. Can you please rectify the error in the below news bar code so that it will not reproduce that error? I wanna use this plugin though.

PHP Code:
<?php

/*
A clear news bar plugin for MyBB

* v. 1.0
* Last edit: 5 August 2010
* Shows a clear news bar on your forum pages.
* Copyright (C) 2009 & 2010 Mateusz Grzesiukiewicz also known as Ajdija 
* Website: http://www.ajdija.com

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

if(!defined('IN_MYBB'))
{
    die();
}

$plugins->add_hook('pre_output_page','aclearnewsbar');

function aclearnewsbar_info()
{
    return array
    (
        "name"=>"A clear news bar",
        "description"=>"Shows a clear bar with latest news from your portal page.",
        "website"=>"http://www.ajdija.com",
        "author"=>"Mateusz Grzesiukiewicz",
        "authorsite"=> "http://www.ajdija.com",
        "version"=>"1.0",
        "guid"=>"7dc27e3041bfe6e412f1a9b2f7634db2",
        "compatibility"=>"16*"
    );
}

function aclearnewsbar($page)
{
    global $mybb,$theme, $db;
        if(THIS_SCRIPT!='portal.php') // do not show news bar on portal(news) page
        {
        $announcementsfids = explode(',', $mybb->settings['portal_announcementsfid']);
if(is_array($announcementsfids))
{
    foreach($announcementsfids as $fid)
    {
        $fid_array[] = intval($fid);
    }
    $announcementsfids = implode(',', $fid_array);
}
$query = $db->simple_select("forums", "*", "fid IN (".$announcementsfids.")");
while($forumrow = $db->fetch_array($query))
{
    $forum[$forumrow['fid']] = $forumrow;
}

$pids = '';
$tids = '';
$comma = '';
$query = $db->query("
    SELECT p.pid, p.message, p.tid
    FROM ".TABLE_PREFIX."posts p
    LEFT JOIN ".TABLE_PREFIX."threads t ON (t.tid=p.tid)
    WHERE t.fid IN (".$announcementsfids.") AND t.visible='1' AND t.closed NOT LIKE 'moved|%' AND t.firstpost=p.pid
    ORDER BY t.dateline DESC 
    LIMIT 0, ".$mybb->settings['portal_numannouncements']
);
while($getid = $db->fetch_array($query))
{
    $pids .= ",'{$getid['pid']}'";
    $tids .= ",'{$getid['tid']}'";
    $posts[$getid['tid']] = $getid;
}
$pids = "pid IN(0{$pids})";
$query = $db->simple_select("attachments", "*", $pids);
while($attachment = $db->fetch_array($query))
{
    $attachcache[$attachment['pid']][$attachment['aid']] = $attachment;
}

if(is_array($forum))
{
    foreach($forum as $fid => $forumrow)
    {
        $forumpermissions[$fid] = forum_permissions($fid);
    }
}

$announcements = '';
$query = $db->query("
    SELECT t.*, t.username AS threadusername, u.username, u.avatar
    FROM ".TABLE_PREFIX."threads t
    LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid = t.uid)
    WHERE t.fid IN (".$announcementsfids.") AND t.tid IN (0{$tids}) AND t.visible='1' AND t.closed NOT LIKE 'moved|%'
    ORDER BY t.dateline DESC
    LIMIT 0, ".$mybb->settings['portal_numannouncements']
);

$news = '--- ';
while($announcement = $db->fetch_array($query))
{
    $announcement['threadlink'] = get_thread_link($announcement['tid']);
    $announcement['subject'] = htmlspecialchars_uni($announcement['subject']);
    $news = $news.'<a href="'.htmlspecialchars_uni($announcement['threadlink']).'">'.htmlspecialchars_uni(        $announcement['subject']).'</a> --- ';
}
        
            $page=preg_replace('#<div class="navigation">(.*)</div>#Usi','<table border="0" cellspacing="'.$theme["borderwidth"].'" cellpadding="'.$theme["tablespace"].'" class="newsborder">
    <thead>
        <tr> 
            <td class="newshead" width="100px">Latest '.
            /* Use below code and set ^^(width) higher if you want board name to be said:
            $mybb->settings['bbname'] 
            */
            'News: </td><td class="newhead"><div class="horizontal_scroller" style="font-weight: bold;"><div class="scrollingtext">'.$news.'</div></div></td>
        </tr>
    </thead>
</table><br /><div class="navigation">$1</div>',$page);
        return $page;
        }
    }

?>

Try to edit line (line #102), replace it with:

PHP Code:
    SELECT u.username, u.avatar, t.*, t.username AS threadusername

Thank you very much RateU. <3
Pages: 1 2 3
Reference URL's