Szál lezárva 
 
A téma értékelése:
  • 0 Szavazatok - 0 Átlag
  • 1
  • 2
  • 3
  • 4
  • 5
Thanks hack
2008-03-14, 17:10 (Üzenet szerkesztésének időpontja: 2008-06-15 - 18:48. Szerkesztette: tommy.)
Üzenet: #1
Thanks hack
Sziasztok,

Ebben a kis tutorialban leírom, hogyan lehet a "köszi" hacket hozzáadni a fórumunkhoz.

A hackért köszönet meo-nak.

FIGYELEM!!! Ennek a hack-nek az alkalmazása megkíván egy minimális php és mysql tudást, így ha nem vagy elég gyakorlott előbb javaslom, hogy üzemelj be egy gyakorló oldalt és azon próbálkozz mielőtt élesben is nekikezdenél.

1. lépés: adatbázis tábla létrehozása

A phpmyadmin-ban futtasd le a következő mysql parancsot. (ha a prefix nem mybb_ akkor írd át arra amit használsz)

Kód:
CREATE TABLE mybb_post_thanks (
  id int(10) NOT NULL auto_increment,
  userid int(10) NOT NULL default '0',
  username varchar(50) NOT NULL default '',
  `date` int(10) NOT NULL default '0',
  postid int(10) NOT NULL default '0',
  PRIMARY KEY  (id)
);

Kód:
ALTER TABLE `mybb_users` ADD `thanks_r` INT( 10 ) DEFAULT '0';

Készítsd el a "Köszi" gombot és töltsd fel az images mappába az alábbi néven: images/postbit_thanks.gif

*******************************************************

2. lépés: sablon módosítás

Nyisd meg a postbit templatet és keresd meg a következő részt:

Kód:
{$post['button_find']}</span></td>
        <td align="right">

Közvetlenül utána másold be a következő kódot:

Kód:
{$thanks_button}

Ugyanennek a sablonnak a végén keresd meg ezt:

Kód:
{$seperator}

ELÉ másold be a következő kódot:

Kód:
{$thanks_postbit}

********

A következő sablon amit módosítani kell: postbit_author_user

Keresd meg a következő részt:

Kód:
{$lang->postbit_posts} {$post['postnum']}<br />

Utána másold be ezt:

Kód:
{$thank_times}<br />

********

Nyisd meg a következő sablont: member_profile

Keresd meg a következő részt:

Kód:
<td class="trow2">{$timeonline}</td>
</tr>

Utána másold be a következőt:

Kód:
<tr>
<td class="trow2"><strong>Thanked</strong></td>
<td class="trow2">{$thank_times}</td>
</tr>

*********

Nyisd meg a következő sablont: showthread

Keresd meg a következő részt:

Kód:
<body>

Utána másold be a következő részt:

Kód:
<script type="text/javascript">
<!--

function meo_createRequestObject() {  
     var ro;  
     var browser = navigator.appName;  
     if(browser == "Microsoft Internet Explorer"){  
         ro = new ActiveXObject("Microsoft.XMLHTTP");  
     }else{  
         ro = new XMLHttpRequest();  
     }  
     return ro;  
}  

var meo_http = meo_createRequestObject();

function meo_sndReq(action, arg, arg1, arg2) {
this.spinner = new ActivityIndicator("body", {image: "images/spinner_big.gif"});
     meo_http.open('get', 'showthread.php?action='+action+'&arg='+arg+'&arg1='+arg1+'&arg2='+arg2);
     meo_http.onreadystatechange = meo_handleResponse;  
     meo_http.send(null);
}  


function meo_handleResponse() {
     if(meo_http.readyState == 4){  
         var response = meo_http.responseText;  
         var update = new Array();
         if(response.indexOf('|' != -1)) {  
             update = response.split('|');
            document.getElementById(update[0]).innerHTML = update[1];
            var update2 = update[0] + 'b';
        document.getElementById(update2).innerHTML = "";
Element.remove(document.getElementById("spinner"));
            this.spinner = '';
         }  
     }  
}

//-->
</script>

*******************************************************

3. lépés: fájl módosítás

Nyisd meg a következő fájlt: inc/funcion_post.php

Keresd meg a következő részt:

Kód:
$post['postnum'] = my_number_format($post['postnum']);

Utána másold be ezt:

Kód:
// thanks hack
        if (! $post['thanks_r']) {
             $post['thanks_r'] = 0;
        }
        $thank_times = "Thanked <span style='color:red;'>". $post['thanks_r']."</span> times";
//End thanks hack

Ugyanebben a fájlban keresd meg ezt a részt:

Kód:
default: // Regular post
$plugins->run_hooks_by_ref("postbit", $post);

Utána másold be ezt a kódot:

Kód:
// thanks hack
$thank_pid = $post['pid'];
$thanks_button = "<a id=\"thank_".$post['pid']."b\" href=\"javascript:meo_sndReq('thanks', '{$post['pid']}', '{$post['username']}','{$post['uid']}')\"><img src=\"images//postbit_thanks.gif\" alt=\"Thanks\" title=\"Thanks\" /></a>";
if ($mybb->user['uid'] == $post['uid'] || !$mybb->user['uid'])  {
        $thanks_button = "";
}
$thank_text = "";
$thank_text1 = "";
$query = $db->query("SELECT * FROM " .TABLE_PREFIX. "post_thanks WHERE postid = '$thank_pid' ORDER BY username ASC");
$thank_tot = $db->num_rows($query);
if ($thank_tot) {
$thank_text1 = "<div class=\"trow2\" colspan=\"2\" align=\"top\"><strong>The Following {$thank_tot} Users Say Thank You to {$post['username']} For This Useful Post:</strong></div>";
while($row = $db->fetch_array($query))
{
    if ($mybb->user['uid'] == $row['userid'])  {
        $thanks_button = "";
    }
    $tannk_date = my_date($mybb->settings['dateformat'], $row['date']);
    $thank_text .= "<a href=\"member.php?action=profile&uid=".$row['userid']."\">".$row['username']."</a> (".$tannk_date."), ";
}
$thank_text = preg_replace( "/,\s+$/", "" , $thank_text);
}
$thanks_postbit .= "<tr>
<td class=\"trow1\" colspan=\"2\" align=\"top\"><div id=\"";
$thanks_postbit .= "thank_".$post['pid']."\"> \n
{$thank_text1}
{$thank_text}
</div></td></tr>\n";
//End thanks hack

**********

Nyisd meg ezt a fájlt: showthread.php

Keresd meg ezt a részt:

Kód:
$parser = new postParser;

Utána másold be a következő kódot:

Kód:
// Thanks Hack
if($mybb->input['action'] == "thanks")
{
    $output = "";
    $thpid = $mybb->input['arg'];
    $divid = "thank_".$mybb->input['arg'];
    $userpost = $mybb->input['arg1'];
    $userpostid = $mybb->input['arg2'];
    if (!$thpid || !$mybb->user['uid']) {
        return;
    }
    $curdate = time();
    $userid = $mybb->user['uid'];
    $username = $mybb->user['username'];
    $db->query("INSERT INTO " .TABLE_PREFIX. "post_thanks (userid, username, date, postid) VALUES('$userid', '$username', '$curdate', '$thpid')");
    $query = $db->query("SELECT  thanks_r FROM " .TABLE_PREFIX. "users WHERE uid = '$userpostid'");
    $row = $db->fetch_array($query);
    $thanks_r = $row['thanks_r'];
    ++$thanks_r;
    $db->query("UPDATE " .TABLE_PREFIX. "users SET  thanks_r ='$thanks_r'  where uid = '$userpostid'");

    $query = $db->query("SELECT * FROM " .TABLE_PREFIX. "post_thanks WHERE postid = '$thpid' ORDER BY username ASC");
    $thank_tot = $db->num_rows($query);
    if ($thank_tot) {
        $thank_text1 = "<div class=\"trow2\" colspan=\"2\" align=\"top\"><strong>The Following {$thank_tot} Users Say Thank You to {$userpost} For This Useful Post:</strong></div>";
        while($row = $db->fetch_array($query)) {
            $tannk_date = my_date($mybb->settings['dateformat'], $row['date']);
            $thank_text .= "<a href=\"member.php?action=profile&uid=".$row['userid']."\">".$row['username']."</a> (".$tannk_date."), ";
        }
        $thank_text = preg_replace( "/,\s+$/", "" , $thank_text);
        $output =    "{$thank_text1}
        {$thank_text}";
        $output = str_replace("|", "", $output);
    }
        //echo "$divid|foo done".$mybb->input['arg'];
    echo "$divid|$output";
    exit;
}
// End Thanks Hack

**********

Nyisd meg a következő fájlt: member.php

Keresd meg ezt a részt:

Kód:
$plugins->run_hooks("member_profile_start");

Utána másold be ezt a kódot:

Kód:
// thanks hack
        if (! $memprofile['thanks_r']) {
             $memprofile['thanks_r'] = 0;
        }
        $thank_times = "<span style='color:red;'>".$memprofile['thanks_r']."</span> times";
//End thanks hack

És kész is vagy!!!
Szerző weblapjának megtekintése Szerző üzeneteinek keresése
Szál lezárva 


Hasonló témák...
Téma: Szerző Válaszok: Megtekintések: Utolsó üzenet
  Ajax instant chat hack tommy 11 4,614 2008-06-10 16:41
Utolsó üzenet: atomjani

Fórumra ugrás:


Jelenlevő felhasználók ebben a témában: 1 Vendég

Kapcsolat | WeboldalKészítés Fórum | Vissza a lap tetejére | Vissza a tartalomhoz | Könnyített (Archív) Mód | RSS Hírforrás