MyBB.de Forum
ThankYou - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Veröffentlichungen und -Support (https://www.mybb.de/forum/forum-82.html)
+--- Thema: ThankYou (/thread-20719.html)

Seiten: Seiten: 1 2 3 4 5 6 7 8


RE: ThankYou 3.0.6 - StefanT - 07.11.2008

Kannst du deinen Code posten?


RE: ThankYou 3.0.6 - Susanne - 08.11.2008

Ja, gerne.

PHP-Code:
<?php

/**
 * Thank you Thank you 3.0.2
 *
 * Thank you 3.0.1b
 *  Arash_j13
 *  
 Email:     Arash.j13@gmail.com
 WebSite:  WWW.CodeCorona.com
*       
*  April 13, 2007

* **************************
*  Mod:         Thank You 3.0.4
*  Fixed by:    Hamid Nozari
*  Website:        www.shceg.com

*  March 6, 2008

* **************************
*
*  Mod:         Thank You 3.0.6
*  Upgraded for MyBB 1.4 by:    AmirH Hassaneini,Hamed Arfaee
*  Website:        www.iranvig.com

*  September 3, 2008
*
*/ 

if(!defined("IN_MYBB"))
{
    die(
"Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
}
//thx_activate();

$plugins->add_hook("postbit""thx");
$plugins->add_hook("xmlhttp""do_action");
$plugins->add_hook("showthread_start","direct_action");

function 
thx_info() 
{
    return array(
        
'name'            => '<font color=Red>ThankYou</font>',
        
'description'    => 'Add a thank you note to a certain post.<br />',
        
'website'        => 'http://mods.mybboard.com/',
        
'author'        => 'Arash_j13<br />Update: Hamid Nozari<br>Upgrade: AmirH Hassaneini,Hamed Arfaee',
        
'authorsite'    => 'http://www.iranvig.com/',
        
'version'        => '3.0.6',
        
'guid'            => 'bd86a7a0c79639aff902e44187902c76'
    
);
}

function 
thx_activate()
{
    global 
$db;
    
$db->query("CREATE TABLE IF NOT EXISTS ".TABLE_PREFIX."thx (
        txid INT UNSIGNED NOT NULL AUTO_INCREMENT ,
        uid int( 10 ) NOT NULL ,
        adduid int( 10 ) NOT NULL ,
        pid int( 10 ) NOT NULL ,
        time bigint(30) NOT NULL,
        PRIMARY KEY ( txid ) 
        ) TYPE = MYISAM ;"
    
);

    
    if(!
$db->field_exists("thx","users"))        
        
$db->query("ALTER TABLE ".TABLE_PREFIX."users ADD `thx` INT NOT NULL DEFAULT 0 ,
            ADD `thxcount` INT NOT NULL DEFAULT 0 "
);

    if(!
$db->field_exists("thx","posts"))
        
$db->query("ALTER TABLE ".TABLE_PREFIX."posts ADD `thx` INT(1) NOT NULL DEFAULT '0'");
    
    
    
$db->query("UPDATE ".TABLE_PREFIX."users u SET 
            u.thx=(SELECT COUNT(*) FROM "
.TABLE_PREFIX."thx t WHERE t.adduid=u.uid) ,
            u.thxcount=(SELECT COUNT(*) FROM "
.TABLE_PREFIX."thx t WHERE t.uid=u.uid)"); 
    
    
$db->query("UPDATE ".TABLE_PREFIX."posts p SET
            p.thx=(SELECT COUNT(*) FROM "
.TABLE_PREFIX."thx t WHERE t.pid=p.pid)");
    require 
'../inc/adminfunctions_templates.php';    
    
find_replace_templatesets("postbit_classic"'#'.preg_quote('        </table>').'#''        </table>{$post[\'thxdsp\']}');
    
find_replace_templatesets("postbit"'#'.preg_quote('</tbody>').'#''<table>{$post[\'thxdsp\']}</table></tbody>');
    
    
find_replace_templatesets("postbit_classic"'#'.preg_quote('{$post[\'button_quote\']}').'#''{$post[\'button_quote\']}{$post[\'thanks\']}');
    
find_replace_templatesets("postbit"'#'.preg_quote('{$post[\'button_quote\']}').'#''{$post[\'button_quote\']}{$post[\'thanks\']}');

        
// Templates für dieses Plugin einfügen
    
$templatearray = array(
        
"tid" => "0",
        
"title" => "postbit_thxcount",
        
"template" => "<br><br><span class=\"smalltext\">{\$lang->thx_thank} {\$post[\'thank_count\']}<br />
                                                    {\$post[\'thanked_count\']}<br /></span>"
,
        
"sid" => "-1",
        );
    
    
$db->insert_query("templates"$templatearray);

    
find_replace_templatesets("headerinclude","#".preg_quote('{$newpmmsg}').'#',
                            
'<script type="text/javascript" src="jscripts/thx.js?ver=1400"></script>
                            {$newpmmsg}'
);
                        
    
//installing settings
    
$thx_group = array(
        
"gid"            => "0",
        
"name"            => "Thank you",
        
"title"            => "Thank you",
        
"description"    => "Displays ThankYou note below each post.",
        
"disporder"        => "3",
        
"isdefault"        => "no",
    );
            
    
$db->insert_query("settinggroups"$thx_group);
    
$gid $db->insert_id();    
    
    
$thx_setting_1 = array(
        
"sid"            => "0",
        
"name"            => "thx_active",
        
"title"            => "Activate/Deactivate plugin",
        
"description"    => "Activate or Deactivate plugin but dont delete table",
        
"optionscode"    => "onoff",
        
"value"            => 'on',
        
"disporder"        => '1',
        
"gid"            => intval($gid),
    );
    
    
$thx_setting_2 = array(
        
"sid"            => "0",
        
"name"            => "thx_count",
        
"title"            => "Show/Hide Counter",
        
"description"    => "Show/Hide ThankYou Counter in user profile",
        
"optionscode"    => "onoff",
        
"value"            => 'on',
        
"disporder"        => '2',
        
"gid"            => intval($gid),
    );
    
    
$db->insert_query("settings"$thx_setting_1);
    
$db->insert_query("settings"$thx_setting_2);
    
rebuild_settings();
}

function 
thx_deactivate()
{
    global 
$db;
    require 
'../inc/adminfunctions_templates.php';

    
//$db->query("drop TABLE ".TABLE_PREFIX."thx");
    
    
find_replace_templatesets("postbit_classic"'#'.preg_quote('{$post[\'thxdsp\']}').'#'''0);
    
find_replace_templatesets("postbit"'#'.preg_quote('<table>{$post[\'thxdsp\']}</table>').'#'''0);
    
find_replace_templatesets("postbit_classic"'#'.preg_quote('{$post[\'thanks\']}').'#'''0);
    
find_replace_templatesets("postbit"'#'.preg_quote('{$post[\'thanks\']}').'#'''0);
    
find_replace_templatesets("postbit_classic"'#'.preg_quote('{$post[\'thxcount\']}').'#'''0);
    
find_replace_templatesets("headerinclude","#".
                    
preg_quote('<script type="text/javascript" src="jscripts/thx.js?ver=1400"></script>').'#','',0);


    
$db->delete_query("settings","name='thx_count'");
    
$db->delete_query("settings","name='thx_active'");
    
$db->delete_query("settinggroups","name='Thank you'");
    
$db->delete_query("templates","title='postbit_thxcount'");
    if(
$db->field_exists("thx","posts"))
        
$db->query("ALTER TABLE ".TABLE_PREFIX."posts DROP thx");
    if(
$db->field_exists("thx","users"))
        
$db->query("ALTER TABLE ".TABLE_PREFIX."users DROP thx , DROP thxcount");
    
    
rebuild_settings();
    
}


function 
thx($post) {
    
    
    global 
$db$mybb$lang $altbg,$templates;
    if(
$mybb->settings['thx_active']=="off")
        return;
        
    
$lang->load("thx");

    
$b=0//dose user thank this post?
    
$entries=build_thank($post['pid'],$b);
    
     global 
$thread;
if(
$mybb->user['uid'] != && $mybb->user['uid'] != $post['uid'] && $thread['firstpost'] == $post['pid'])
    {
        if(!
$b)  //show thank button 
            
$post['thanks'] = "<a id=\"a{$post['pid']}\" onclick=\"javascript: ThankYou.thx({$post['pid']}); return false; \" href=\"showthread.php?action=thank&tid={$post['tid']}&pid={$post['pid']}\">
            <img 
            src=\"images/
{$lang->language}/postbit_thx.gif\" border=\"0\" alt=\"$lang->thx_main\" id=\"i{$post['pid']}\" /></a>";
        else 
            
$post['thanks'] = "<a id=\"a{$post['pid']}\" onclick=\"javascript: ThankYou.rthx({$post['pid']}); return false; \" href=\"showthread.php?action=remove_thank&tid={$post['tid']}&pid={$post['pid']}\">
            <img src=\"images/
{$lang->language}/postbit_rthx.gif\" border=\"0\" 
                alt=\"
$lang->thx_remove\" id=\"i{$post['pid']}\" /></a>";
    
    }


    
    
        
    
$display$entries ?  """none" ;
        
    
    
$post['thxdsp'] =  "<tr class=\"$altbg\" id=\"thx{$post['pid']}\" style=\"display:$display\"><td align=\"center\">
                            <span class=\"smalltext\">
$lang->thx_givenby</span></td>
                            <td id=\"thx_list
{$post['pid']}\">$entries</td></tr>";
    
    if(
$mybb->settings['thx_count']=="on")
    {
        
$query=$db->simple_select("users","thx ,thxcount ","uid={$post['uid']}");
        
$count1=$db->fetch_array($query);
        
        
$query=$db->simple_select("posts","count(*) as count","thx > '0' AND uid={$post['uid']}"); 
        
$count3=$db->fetch_array($query);
        
        
$post['thank_count']=$count1['thx'];

        
$post['thanked_count']=$lang-> sprintf($lang->thx_thanked_count,$count1['thxcount'],$count3['count']);
        eval(
"\$post['thxcount'] = \"".$templates->get("postbit_thxcount")."\";");
        
$post['user_details'].=$post['thxcount'];
    }
    
    
}

function 
do_action() {
    global 
$mybb$db$lang;
    
    if( (
$mybb->input['action'] != "thankyou"  &&  $mybb->input['action'] != "remove_thankyou")
        || 
$mybb->request_method != "post")
        return;
        
    
    
$lang->load("thx");
    
$pid=intval($mybb->input['pid']);
    

    if (
$mybb->input['action'] == "thankyou")
    {
        
do_thank($pid);
    } 
    else 
        
del_thank($pid);
        
    
$nonead=0;
    
$list=build_thank($pid,$nonead);
    
header('Content-Type: text/xml');
    
$output="<thankyou>
                <list><![CDATA[
$list]]></list>
                <display>"
.($list "1" "0")."</display>
                <image>
{$mybb->settings['bburl']}/images/{$lang->language}/";
    
$output.=$mybb->input['action'] == "thankyou" "postbit_rthx.gif""postbit_thx.gif";              
    
$output.="</image>
             </thankyou>"
;
    echo 
$output;
    
}

function 
direct_action()
{
    
    global 
$mybb,$lang;
    if(
$mybb->input['action'] != "thank"  &&  $mybb->input['action'] != "remove_thank")
        return;
        
    
$lang->load("thx");
    
$pid=intval($mybb->input['pid']);
    
    if (
$mybb->input['action'] == "thank" )
        
do_thank($pid); 
    else
        
del_thank($pid);
        
    
redirect($_SERVER['HTTP_REFERER']);
    
}

function 
build_thank($pid,&$is_thx)
{
    
$is_thx=0;
    global 
$db,$mybb;
    
$query=$db->query"SELECT  th.* , u.username ,u.usergroup ,u.displaygroup
                        FROM "
.TABLE_PREFIX."thx th
                        JOIN "
.TABLE_PREFIX."users u ON(th.adduid=u.uid)
                        WHERE th.pid='
$pid'
                        ORDER BY th.time ASC"
);
    
    

    while(
$record $db->fetch_array($query))
    {
        
$is_thx+=$record['adduid']==$mybb->user['uid'];
        
$date=my_date($mybb->settings['dateformat'].' '.$mybb->settings['timeformat'],$record['time']);
        
$url=get_profile_link($record['adduid']);
        
$name=format_name($record['username'], $record['usergroup'], $record['displaygroup']);
        
$entries .= "".$r1comma."<a title=\".$date.\" href=\"$url\"><img src=\"./images/lecker.gif\" alt=\"Danke\" width=\"32\" height=\"29\">$name</a>";
            
        
$r1comma =", ";
    }
    
    return 
$entries;
}

function 
do_thank($pid)
{
    global 
$db,$mybb;
    
    
$pid=intval($mybb->input['pid']);
    
    
$query=$db->query("SELECT uid FROM ".TABLE_PREFIX."posts WHERE pid=".$pid);
            
    
$user=$db->fetch_array($query);
        
    if (
$user['uid']==$mybb->user['uid'])
        return;

    
$check_query $db->simple_select("thx","*" ,"adduid='{$mybb->user['uid']}' AND pid='$pid'");
    if(
$db->num_rows($check_query))
        return;
    
$check_query $db->simple_select("thx","*" ,"adduid='{$mybb->user['uid']}' AND pid='$pid'");
    if(
$db->num_rows($check_query))
        return;
    
$check_query $db->simple_select("posts","uid","pid='$pid'");
    if(
$db->num_rows($check_query)==1)//  post exsits
    
{
        
$tmp=$db->fetch_array($check_query);    
        
$database = array (
            
"uid" =>$tmp['uid'], 
            
"adduid" => $mybb->user['uid'],
            
"pid" => $pid,
            
"time" => time()
        );
        
$db->insert_query("thx"$database); //add thank to thx table
        
        
        //update user inforamtion
        
$query=$db->simple_select("users","thx","uid={$mybb->user['uid']}");
        
$tmp=$db->fetch_array($query);
        
        
$update1['thx']=++$tmp['thx'];
        
$db->update_query("users",$update1,"uid={$mybb->user['uid']}",1);
        
        
$query=$db->simple_select("users","thxcount","uid={$database['uid']}");
        
$tmp=$db->fetch_array($query);

        
$update2['thxcount']=++$tmp['thxcount'];
        
$db->update_query("users",$update2,"uid={$database['uid']}",1);
        
        
//update post information
        
$update3['thx']="1";
        
$db->update_query("posts",$update3,"pid={$database['pid']}",1);
    }    
}

function 
del_thank($pid)
{
    global 
$mybb,$db;
    
$check_query $db->simple_select("thx","*" ,"adduid='{$mybb->user['uid']}' AND pid='$pid'");
    if(
$db->num_rows($check_query))
    {
        
$data=$db->fetch_array($check_query);
        
$query=$db->simple_select("users","thx","uid={$mybb->user['uid']}");
        
$tmp=$db->fetch_array($query);

        
$update1['thx']=--$tmp['thx'];
        
$db->update_query("users",$update1,"uid={$mybb->user['uid']}",1);
                
        
$query=$db->simple_select("users","thxcount","uid={$data['uid']}");
        
$tmp=$db->fetch_array($query);
        --
$tmp['thxcount'];
        
$update2['thxcount']="{$tmp['thxcount']}";
        
$db->update_query("users",$update2,"uid={$data['uid']}",1);

        
        
$db->delete_query("thx","adduid='{$mybb->user['uid']}' AND pid='$pid'");
        
        
        
/*$db->query("UPDATE ".TABLE_PREFIX."posts p SET p.thx=(SELECT count(*) FROM ".
                TABLE_PREFIX."thx t WHERE t.pid='{$pid}') WHERE p.pid='{$pid}'");*/

        
$query=$db->simple_select("thx","count(*) as c","pid='{$pid}'");
        
$tmp=$db->fetch_array($query);
        
$update3['thx']=$temp['c'];
        
$db->update_query("posts",$update3,"pid='{$pid}'",1);
    }
}

if(!
function_exists("rebuild_settings"))
{
    function 
rebuild_settings()
    {
        global 
$db;
        
$query $db->query("SELECT * FROM ".TABLE_PREFIX."settings ORDER BY title ASC");
        while(
$setting $db->fetch_array($query))
        {
            
$setting['value'] = addslashes($setting['value']);
            
$settings .= "\$settings['".$setting['name']."'] = \"".$setting['value']."\";\n";
        }
        
$settings "<?php\n/*********************************\ \n  DO NOT EDIT THIS FILE, PLEASE USE\n  THE SETTINGS EDITOR\n\*********************************/\n\n$settings\n?>";
        
$file fopen("../inc/settings.php""w");
        
fwrite($file$settings);
        
fclose($file);
    }
}
?>



RE: ThankYou 3.0.6 - StefanT - 08.11.2008

Wo hast du etwas verändert?


RE: ThankYou 3.0.6 - Susanne - 08.11.2008

nein, ich dachte du möchtest den originalen Code um sehen zu können, was man machen muss.


RE: ThankYou 3.0.6 - StefanT - 08.11.2008

Den kann ich auch selber runterladen. Toungue
An welcher Stelle hast du was verändert hast. Den Fehler zu suchen ist meist einfacher als das selber einzubauen.


RE: ThankYou 3.0.6 - Susanne - 11.11.2008

So, da bin ich wieder. Hier bei mir geht im Moment alles drunter und drüber.

Jajaja, ich komme mir ja jetzt auch blöd vor. Toungue

Also, ich hatte alles frustriert gelöscht, als es nicht klappte. Aber ich habe im Prinzip zwei Varianten gehabt, die ich in verschiedensten Konstellationen ausprobiert habe. :undecided:

Das Original ist ungefähr bei Zeile 187
PHP-Code:
if($mybb->user['uid'] != && $mybb->user['uid'] != $post['uid'] && $thread['firstpost'] == $post['pid']) 

Es war ungefähr so:
PHP-Code:
if($mybb->user['uid'] != && $mybb->user['uid'] != $post['uid'] && $thread['firstpost'] == $post['pid']) == $forum['fid'] != 11 && $forum ['fid'] != 46

und die andere Variante war ungefähr
PHP-Code:
if($mybb->user['uid'] != && $mybb->user['uid'] != $post['uid'] && $thread['firstpost'] == $post['pid'])
if(
$forum['fid'] != 11 && $forum['fid'] != 46

Dann habe ich noch versucht es unter
PHP-Code:
//show thank button 
einzusetzen.

Übrigens, muss ich da jetzt nicht die fid-Nummern der Foren eintragen, in denen das ThankYou gezeigt werden soll? Ich wollte eigentlich lieber eintragen, wo es nicht gezeigt werden soll. Das ist weniger. Shy


RE: ThankYou 3.0.6 - StefanT - 11.11.2008

PHP-Code:
if($mybb->user['uid'] != && $mybb->user['uid'] != $post['uid'] && $thread['firstpost'] == $post['pid'] && $forum['fid'] != 11 && $forum['fid'] != 46



RE: ThankYou 3.0.6 - Susanne - 16.11.2008

Ach klar,
PHP-Code:
&& 
habe ich natürlich auch geschrieben.
Aber es ging nicht. Dann kommt folgende Fehlermeldung
Zitat:Parse error: syntax error, unexpected T_BOOLEAN_AND in /xxx/xxx/xx/xx/xxx/htdocs/xxx/inc/plugins/thx.php on line 187



RE: ThankYou 3.0.6 - StefanT - 16.11.2008

Da war ein Fehler im Code, der sich durch das Kopieren eingeschlichen hatte.


RE: ThankYou 3.0.6 - Susanne - 17.11.2008

Jetzt habe ich zwar keine Fehlermeldung mehr, aber wieder das Gleiche wie bei meinen eigenen Versuchen: Man kann sich weiterhin überall bedanken, egal was für Nummern ich eintrage oder nicht.