Webboard

Pełna wersja: deinstalacja pluginu Only Show Links to Repliers (1.0.2)
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
wersja skryptu MyBB: 1.8.5
adres forum: http://www.handsupowo.pl
na czym polega problem (screen, opis, komunikaty, nazwa i wersja wtyczki):

witam, podczas próby deinstalacji pluginu Only Show Links to Repliers (1.0.2) wyskakuje mi taki błąd

SQL Error:
1146 - Table 'admin_handsupowo.mybb_mybb_settinggroups' doesn't exist
Query:
SELECT gid FROM mybb_mybb_settinggroups WHERE name="hidelinkreply"

mam usunąć z bazy wpis hidelinkreply?
Nie ma rakiej tabeli.
usunąłem z mybb_settinggroups wartość hidelinkreply
po usunięciu problem nadal występuje
admin_handsupowo.mybb_mybb_settinggroups' doesn't exist znaczy ze to nie istnieje. A jakbys usunal plik pluginu z inc/plugins
, usuwanie pliku z serwera nie jest dobrym rozwiązaniem. Zniknie on z ACP, ale w bazie pozostaną po nim ślady.

Dziwi mnie trochę ten prefix tabel, ale jeśli usunąłeś już tą tabelę ręcznie to przejrzyj jeszcze kod pluginu jakie tabele tworzy przy instalacji, odnajdź je i też pousuwaj wpisy. Potem dopiero wywal plik jako taka kropka nad i :)
Albo zreinstaluj mybb xd
podaję kod pluginu, nie jestem specjalistą w tym więc liczę na Waszą pomoc
i chcę całkowicie usunąć bo podczas wyłączenia pluginu w konfiguracji niestety w niektórych działach np albumy nadal trzeba skomentować by pobrać

Kod PHP:
<?php

$plugins
->add_hook('parse_message''hidelinkreply_parser');
$plugins->add_hook('showthread_start''hidelinkreply_run');
$plugins->add_hook('newreply_start''hidelinkreply_run');
$plugins->add_hook('printthread_start''hidelinkreply_run');
$plugins->add_hook('portal_start''hidelinkreply_run_portal');

//$plugins->add_hook('newreply_end', 'hidelinkreply_newreply_quotefix');
$plugins->add_hook('xmlhttp''hidelinkreply_xmlhttp_hack');
$plugins->add_hook('newreply_start''hidelinkreply_newreply_quotefix');
$plugins->add_hook('newreply_end''hidelinkreply_newreply_quotefix_end');

function 
hidelinkreply_info()
{
 
   return array(
 
       'name'            => 'Only Show Links to Repliers',
 
       'description'    => 'Hide all links in threads to users who haven\'t replied.',
 
       'website'        => 'http://cardingwith.us',
 
       'author'        => 'ArberVR',
 
       'authorsite'    => 'http://cardingwith.us',
 
       'version'        => '1.0.2'
 
   );
}

function 
hidelinkreply_activate()
{
 
   global $db;
 
   $db->insert_query("settinggroups", array(
 
       'name' => 'hidelinkreply'
 
       'title' => 'Only Show Links to Repliers Options',
 
       'description' => '',
 
       'disporder' => 200
 
       'isdefault' => MY_NO
    
));
 
   $gid $db->insert_id();
 
   $db->insert_query('settings', array(
 
       'name' => 'hidelinkreply_firstpost',
 
       'title' => 'Only hide links in first post',
 
       'description' => 'If yes, will only hide links in the first post of a thread.',
 
       'optionscode' => 'yesno',
 
       'value' => 'no',
 
       'disporder' => 1,
 
       'gid' => $gid
    
));
 
   $db->insert_query('settings', array(
 
       'name' => 'hidelinkreply_postmsg',
 
       'title' => 'Link Replacement (posts, HTML)',
 
       'description' => 'Hidden links in posts will be replaced with this text.',
 
       'optionscode' => 'text',
 
       'value' => '<span style="color: red; font-weight: bold;">You must reply to this thread to see hidden links.</span>',
 
       'disporder' => 3,
 
       'gid' => $gid
    
));
 
   $db->insert_query('settings', array(
 
       'name' => 'hidelinkreply_quotemsg',
 
       'title' => 'Link Replacement (quotes, MyCode)',
 
       'description' => 'Hidden links in quotes will be replaced with this text.',
 
       'optionscode' => 'text',
 
       'value' => '[Link Hidden]',
 
       'disporder' => 4,
 
       'gid' => $gid
    
));
 
   /*$db->insert_query(TABLE_PREFIX.'settings', array(
        'name' => 'hidelinkreply_allowmods',
        'title' => 'Always show links to Moderators',
        'description' => 'If yes, links will never be hidden to moderators/administrators.',
        'optionscode' => 'yesno',
        'value' => 'no',
        'disporder' => 2,
        'gid' => $gid
    ));*/
 
   
    
    
    
    rebuild_settings
();
}
function 
hidelinkreply_deactivate()
{
 
   global $db;
 
   $gid $db->fetch_field($db->simple_select(TABLE_PREFIX.'settinggroups''gid''name="hidelinkreply"'), 'gid');
 
   if($gid)
 
   {
 
       $db->delete_query('settings''gid='.$gid);
 
       $db->delete_query('settinggroups''gid='.$gid);
 
       rebuild_settings();
 
   }
}

function 
hidelinkreply_parser($message)
{
 
   global $hidelinks$mybb;
 
   //if(strpos($message, '[hide]'))
 
   //    die($message);
 
   if($hidelinks)
 
       return preg_replace(array('#\<a href=".*?" target="_blank"\>.*?\</a\>#''#\[hide\].*?\[/hide\]#si'), array($mybb->settings['hidelinkreply_postmsg'], $mybb->settings['hidelinkreply_postmsg']), $message);
 
   else
        return preg_replace
('#\[hide\](.*?)\[/hide\]#si''$1'$message);
}

function 
hidelinkreply_run()
{
 
   global $mybb$plugins;
 
   hidelinkreply_run_portal();
 
   if($mybb->settings['hidelinkreply_firstpost'] == 'yes')
 
   {
 
       $plugins->add_hook('postbit''hidelinkreply_unhide');
 
       $plugins->add_hook('printthread_post''hidelinkreply_unhide');
 
   }
}
function 
hidelinkreply_unhide()
{
 
   global $hidelinks;
 
   $hidelinks false;
}
function 
hidelinkreply_run_portal()
{
 
   global $hidelinks$db$mybb$tid$fid$thread$forum$foruminfo;
 
   //if($mybb->settings['hidelinkreply_allowmods'] == 'yes')
 
   //{
 
       if(!$fid)
 
       {
 
           if($thread['fid']) $fid $thread['fid'];
 
           if($forum['fid']) $fid $forum['fid'];
 
           if($foruminfo['fid']) $fid $foruminfo['fid'];
 
       }
 
       if(is_moderator($fid) == 'yes')
 
           return;
 
   //}
 
   // check if user has posted in thread
 
   $posttest $db->fetch_array($db->simple_select('posts''pid''uid='.$mybb->user['uid'].' AND tid='.intval($tid)));
 
   if(!$posttest)
 
       $hidelinks true;
 
   
}

function 
hidelinkreply_newreply_quotefix()
{
 
   /*global $hidelinks, $message;
    if(!$hidelinks) return;
    
    $message = hidelinkreply_remove_quoted_links($message);*/
 
   global $mybb$reply_errors$external_quotes$multiquote_external$db$templates$tid$parser$plugins$ourmessage$lang;
 
   if($mybb->input['previewpost'] || $reply_errors || $mybb->input['action'] == "editdraft") return;
 
   $message '';
 
   $quoted_posts = array();
 
   // Handle multiquote
 
   if($_COOKIE['multiquote'] && $mybb->settings['multiquote'] != "off")
 
   {
 
       $multiquoted explode("|"$_COOKIE['multiquote']);
 
       foreach($multiquoted as $post)
 
       {
 
           $quoted_posts[$post] = intval($post);
 
       }
 
   }
 
   // Handle incoming 'quote' button
 
   if($mybb->input['pid'])
 
   {
 
       $quoted_posts[$mybb->input['pid']] = $mybb->input['pid'];
 
   }

 
   // Quoting more than one post - fetch them
 
   if(count($quoted_posts) > 0)
 
   {
 
       $external_quotes 0;
 
       $quoted_posts implode(","$quoted_posts);
 
       $unviewable_forums get_unviewable_forums();
 
       if($unviewable_forums)
 
       {
 
           $unviewable_forums "AND t.fid NOT IN ({$unviewable_forums})";
 
       }
 
       if(is_moderator($fid) == "yes")
 
       {
 
           $visible_where "AND p.visible != 2";
 
       }
 
       else
        
{
 
           $visible_where "AND p.visible > 0";
 
       }
 
       $query $db->query("
            SELECT p.subject, p.message, p.pid, p.tid, p.username, u.username AS userusername, t.fid, t.firstpost
            FROM "
.TABLE_PREFIX."posts p
            LEFT JOIN "
.TABLE_PREFIX."threads t ON (t.tid=p.tid)
            LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=p.uid)
            WHERE p.pid IN (
$quoted_posts{$unviewable_forums} {$visible_where}
        "
);
 
       $quoted_posts = array();
 
       $tids = array();
 
       while($quoted_post $db->fetch_array($query))
 
       {
 
           $quoted_posts[$quoted_post['pid']] = $quoted_post;
 
               $tids[$quoted_post['tid']] = $quoted_post['tid'];
 
       }
 
       // check participation
 
       $query $db->simple_select("posts""DISTINCT tid""uid='{$mybb->user['uid']}' AND tid IN (".implode(',',$tids).")");
 
       $tids = array();
 
       while($t $db->fetch_field($query'tid'))
 
       {
 
           $tids[$t] = $t;
 
       }
 
       
        foreach
($quoted_posts as $quoted_post)
 
       {
 
           // Only show messages for the current thread
 
           if($quoted_post['tid'] == $tid)
 
           {
 
               // If this post was the post for which a quote button was clicked, set the subject
 
               if($pid == $quoted_post['pid'])
 
               {
 
                   $subject preg_replace('#RE:\s?#i'''$quoted_post['subject']);
 
                   $subject "RE: ".$subject;
 
               }
 
               if($quoted_post['userusername'])
 
               {
 
                   $quoted_post['username'] = $quoted_post['userusername'];
 
               }
 
               $quoted_post['message'] = preg_replace('#(^|\r|\n)/me ([^\r\n<]*)#i'"\\1* {$quoted_post['username']} \\2"$quoted_post['message']);
 
               $quoted_post['message'] = preg_replace('#(^|\r|\n)/slap ([^\r\n<]*)#i'"\\1* {$quoted_post['username']} {$lang->slaps} \\2 {$lang->with_trout}"$quoted_post['message']);
 
               $quoted_post['message'] = preg_replace("#\[attachment=([0-9]+?)\]#i"''$quoted_post['message']);
 
               $quoted_post['message'] = $parser->parse_badwords($quoted_post['message']);
 
               if(is_moderator($quoted_post['fid']) != 'yes' && !isset($tids[$quoted_post['tid']]) && ($mybb->settings['hidelinkreply_firstpost'] != 'yes' || $quoted_post['firstpost'] == $quoted_post['pid']))
 
                   $quoted_post['message'] = hidelinkreply_remove_quoted_links($quoted_post['message']);
 
               $message .= "[quote={$quoted_post['username']}]\n{$quoted_post['message']}\n[/quote]\n\n";
 
               $quoted_ids[] = $quoted_post['pid'];
 
           }
 
           // Count the rest
 
           else
            
{
 
               ++$external_quotes;
 
           }
 
       }
 
       $ourmessage $message;
 
       unset($quoted_posts);
//        $plugins->add_hook('newreply_end', 'hidelinkreply_newreply_quotefix_end');
 
       if($external_quotes 0)
 
       {
 
           if($external_quotes == 1)
 
           {
 
               $multiquote_text $lang->multiquote_external_one;
 
               $multiquote_deselect $lang->multiquote_external_one_deselect;
 
               $multiquote_quote $lang->multiquote_external_one_quote;
 
           }
 
           else
            
{
 
               $multiquote_text sprintf($lang->multiquote_external$external_quotes);
 
               $multiquote_deselect $lang->multiquote_external_deselect;
 
               $multiquote_quote $lang->multiquote_external_quote;
 
           }
 
           eval("\$multiquote_external = \"".$templates->get("newreply_multiquote_external")."\";");
 
       }
 
       if(count($quoted_ids) > 0)
 
       {
 
           $quoted_ids implode("|"$quoted_ids);
 
       }
 
   }
 
   // turn multi-quote off
 
   $mybb->settings['multiquote'] = 'off';
 
   //unset($mybb->input['pid']);
 
   

}
function 
hidelinkreply_newreply_quotefix_end()
{
 
   global $message$ourmessage;
 
   if($ourmessage)
 
       $message $ourmessage;
}

function 
hidelinkreply_remove_quoted_links($message)
{
 
   global $mybb;
 
   // try to filter out links
 
   return preg_replace(array(
 
       "#\[url\]([a-z]+?://)([^\r\n\"\[<]+?)\[/url\]#i""#\[url\]([^\r\n\"\[<]+?)\[/url\]#i",
 
       "#\[url=([a-z]+?://)([^\r\n\"\[<]+?)\](.+?)\[/url\]#si",
 
       "#([\s\(\)])(https?|ftp|news){1}://([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^\"\s\(\)<\[]*)?)#i",
 
       "#([\s\(\)])(www|ftp)\.(([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^\"\s\(\)<\[]*)?)#i",
 
       '#\[hide\].*?\[/hide\]#si'
 
   ), array(
 
       $mybb->settings['hidelinkreply_quotemsg'],
 
       $mybb->settings['hidelinkreply_quotemsg'],
 
       $mybb->settings['hidelinkreply_quotemsg'],
 
       $mybb->settings['hidelinkreply_quotemsg'],
 
       $mybb->settings['hidelinkreply_quotemsg'],
 
       $mybb->settings['hidelinkreply_quotemsg'],
 
   ), $message);
}
function 
hidelinkreply_xmlhttp_hack()
{
 
   global $mybb$db$hidelinks;
 
   if($mybb->input['action'] != "get_multiquoted") return;
 
   if($mybb->usergroup['cancp'] == 'yes' || $mybb->usergroup['issupermod'] == 'yes') return;
 
   // If the cookie does not exist, exit
 
   if(!array_key_exists("multiquote"$_COOKIE))
 
   {
 
       exit;
 
   }
 
   // Divide up the cookie using our delimeter
 
   $multiquoted explode("|"$_COOKIE['multiquote']);
 
   
    
// No values - exit
 
   if(!is_array($multiquoted))
 
   {
 
       exit;
 
   }
 
   
    
// Loop through each post ID and sanitize it before querying
 
   foreach($multiquoted as $post)
 
   {
 
       $quoted_posts[$post] = intval($post);
 
   }

 
   // Join the post IDs back together
 
   $quoted_posts implode(","$quoted_posts);
 
   
    
// Fetch unviewable forums
 
   $unviewable_forums get_unviewable_forums();
 
   if($unviewable_forums)
 
   {
 
       $unviewable_forums "AND t.fid NOT IN ({$unviewable_forums})";
 
   }
 
   $message '';
 
   
    
// Are we loading all quoted posts or only those not in the current thread?
 
   if(!$mybb->input['load_all'])
 
   {
 
       $from_tid "p.tid != '".intval($mybb->input['tid'])."' AND ";
 
   }
 
   else
    
{
 
       $from_tid '';
 
   }

 
   require_once MYBB_ROOT."inc/class_parser.php";
 
   $parser = new postParser;

 
   // Query for any posts in the list which are not within the specified thread
 
   $query $db->query("
        SELECT p.subject, p.message, p.pid, p.tid, p.username, t.fid, p.visible, u.username AS userusername, t.firstpost
        FROM "
.TABLE_PREFIX."posts p
        LEFT JOIN "
.TABLE_PREFIX."threads t ON (t.tid=p.tid)
        LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=p.uid)
        WHERE 
{$from_tid}p.pid IN ($quoted_posts{$unviewable_forums}
    "
);
 
   $quoted_posts = array();
 
   $tids = array();
 
   while($quoted_post $db->fetch_array($query))
 
   {
 
       $quoted_posts[$quoted_post['pid']] = $quoted_post;
 
           $tids[$quoted_post['tid']] = $quoted_post['tid'];
 
   }
 
   // check participation
 
   $query $db->simple_select("posts""DISTINCT tid""uid='{$mybb->user['uid']}' AND tid IN (".implode(',',$tids).")");
 
   $tids = array();
 
   while($t $db->fetch_field($query'tid'))
 
   {
 
       $tids[$t] = $t;
 
   }
 
   
    foreach
($quoted_posts as $quoted_post)
 
      
        if
(is_moderator($quoted_post['fid']) != 'yes' && $quoted_post['visible'] == 0)
 
       {
 
           continue;
 
       }
 
       
        
// Swap username over if we have a registered user
 
       if($quoted_post['userusername'])
 
       {
 
           $quoted_post['username'] = $quoted_post['userusername'];
 
       }
 
       // Clean up the message
 
       $quoted_post['message'] = preg_replace('#(^|\r|\n)/me ([^\r\n<]*)#i'"\\1* {$quoted_post['username']} \\2"$quoted_post['message']);
 
       $quoted_post['message'] = preg_replace('#(^|\r|\n)/slap ([^\r\n<]*)#i'"\\1* {$quoted_post['username']} {$lang->slaps} \\2 {$lang->with_trout}"$quoted_post['message']);
 
       $quoted_post['message'] = preg_replace("#\[attachment=([0-9]+?)\]#i"''$quoted_post['message']);
 
       $quoted_post['message'] = $parser->parse_badwords($quoted_post['message']);    
        if
(is_moderator($quoted_post['fid']) != 'yes' && !isset($tids[$quoted_post['tid']]) && ($mybb->settings['hidelinkreply_firstpost'] != 'yes' || $quoted_post['firstpost'] == $quoted_post['pid']))
 
           $quoted_post['message'] = hidelinkreply_remove_quoted_links($quoted_post['message']);
 
       // Tack on to list of messages
 
       $message .= "[quote={$quoted_post['username']}]\n{$quoted_post['message']}\n[/quote]\n\n";
 
   }
 
   
    
// Send our headers.
 
   header("Content-type: text/plain; charset={$charset}");
 
   echo $message;
 
   exit;
}
?>
pomoże ktoś?
odświeżam
odświeżam
problem rozwiązany ;)
znowu miałem ten problem musiałem chwilę pogrzebać / poszukać daję rozwiązanie:

Kod:
$gid = $db->fetch_field($db->simple_select(TABLE_PREFIX.'settinggroups', 'gid', 'name="hidelinkreply"'), 'gid');

zmienić na


Kod:
$gid = $db->fetch_field($db->simple_select('settinggroups', 'gid', 'name="hidelinkreply"'), 'gid');