Szál lezárva 
 
A téma értékelése:
  • 0 Szavazatok - 0 Átlag
  • 1
  • 2
  • 3
  • 4
  • 5
Ajax instant chat hack
2007-11-05, 17:59 (Üzenet szerkesztésének időpontja: 2008-06-15 - 18:02. Szerkesztette: tommy.)
Üzenet: #1
Ajax instant chat hack
A hack-ért köszönet meo-nak!

[Kép: chat_www.kepfeltoltes.hu_.gif]

1. lépés

Futtasd le a következő mysql parancsot (ha a prefix-ed nem mybb_ akkor asszerint változtasd):

Kód:
CREATE TABLE `mybb_instchat` (
  `id` int(11) NOT NULL auto_increment,
  `idaut` int(10) NOT NULL default '0',
  `name` varchar(40) NOT NULL default '',
  `message` text NOT NULL,
  `time` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ;

2. lépés (Sablon módosítás)

index template

keresd meg a következőt:

Kód:
{$forumstats}

Közvetlenül utána másold be az alábbi kódot:

Kód:
<script type="text/javascript" src="jscripts/thread.js?ver=121"></script>
<a name="instchatmeo"> </a>
<tr><td class="tcat"><strong>Instant Chat</strong></td></tr>
<tr>
<td class="trow1"><span class="smalltext">
<div id="instchat_2">{$mybb->instchat} </div>
<form>
<div style="clear: both;">
            <div>
                <textarea style="width: 99%; padding: 1px; margin-top: 5px;" rows="1" cols="80" id="instchat_1" /></textarea>
            </div>
            {$mybb->instchat_button}
        </div>
</form>

</span>
</td>
</tr>

Természetesen máshová is rakhatod ezt a kódot asszerint, hogy hol szeretnéd megjeleníteni a chatet.

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

jscripts/thread.js

Keresd meg a következőt:

Kód:
quickEditCancel: function(pid)
    {
        $("pid_"+pid).innerHTML = Thread.qeCache[pid];
        Thread.qeCache[pid] = "";
        if(this.spinner)
        {
            this.spinner.destroy();
            this.spinner = '';
        }
    },

utána másold be az alábbi kódot:

Kód:
instchatSave: function()
    {
        message = $("instchat_1").value;
        if(message == "")
        {
            return false;
        }
        this.spinner = new ActivityIndicator("body", {image: "images/spinner_big.gif"});
        
        postData = "value="+encodeURIComponent(message).replace(/\+/g, "%2B");
        new ajax('xmlhttp.php?action=ShowInstchat', {method: 'post', postBody: postData, onComplete: function(request) { Thread.instchatSaveComplete(request); }});        
    },

    instchatRefresh: function()
    {
        message = "meo_refresh";
        this.spinner = new ActivityIndicator("body", {image: "images/spinner_big.gif"});
        
        postData = "value="+encodeURIComponent(message).replace(/\+/g, "%2B");
        new ajax('xmlhttp.php?action=ShowInstchat', {method: 'post', postBody: postData, onComplete: function(request) { Thread.instchatSaveComplete(request); }});        
    },

    instchatDelete: function(message)
    {
        this.spinner = new ActivityIndicator("body", {image: "images/spinner_big.gif"});
        
        postData = "value="+encodeURIComponent(message).replace(/\+/g, "%2B");
        new ajax('xmlhttp.php?action=ShowInstchat&act=deleteinst', {method: 'post', postBody: postData, onComplete: function(request) { Thread.instchatSaveComplete(request); }});        
    },

    instchatSaveComplete: function(request)
    {
        if(request.responseText.match(/<error>(.*)<\/error>/))
        {
            message = request.responseText.match(/<error>(.*)<\/error>/);
            if(!message[1])
            {
                message[1] = "An unknown error occurred.";
            }
            alert('There was an error performing the update.\n\n'+message[1]);
        }
        else if(request.responseText)
        {
            $("instchat_2").innerHTML = request.responseText;
             $("instchat_1").value = "";
        }
        this.spinner.destroy();
        this.spinner = '';
    },

xmlhttp.php

Keresd meg a következő kódot:

Kód:
// Fetch the list of multiquoted posts which are not in a specific thread
else if($mybb->input['action'] == "get_multiquoted")

ELÉ másold be az alábbi kódot:

Kód:
// Instchat hack
else if($mybb->input['action'] == "ShowInstchat")
{
    if(!$mybb->user['uid']) {
        exit();
    }
     if($mybb->input['act'] == "deleteinst") {
        if ($mybb->usergroup['issupermod'] == "no") {
            exit;
        }
        $instid = $mybb->input['value'];
        $db->query("DELETE FROM " .TABLE_PREFIX. "instchat WHERE id = '$instid'");
        $mybb->input['value'] = "meo_refresh";
    }
    if ($mybb->input['value'] != "meo_refresh") {
        $message = addslashes($mybb->input['value']);
        $message = str_replace("\n"," ", $message);
        $curdate = time();
        $userid = $mybb->user['uid'];
        $username = $mybb->user['username'];
        $db->query("INSERT INTO " .TABLE_PREFIX. "instchat (idaut, name, message, time) VALUES('$userid', '$username', '$message', '$curdate')");
        $query = $db->query("SELECT  id FROM " .TABLE_PREFIX. "instchat ORDER BY `id`");
        $count = $db->num_rows($query);
        while($count > 100) {
            $query = $db->query("SELECT  id FROM " .TABLE_PREFIX. "instchat ORDER BY `id`");
            $row = $db->fetch_array($query);
            $id = $row['id'];
            $db->query("DELETE FROM " .TABLE_PREFIX. "instchat WHERE id = '$id'");
            --$count;
        }
    }    
        require_once MYBB_ROOT."inc/class_parser.php";
        $parser = new postParser;
        
        $parser_options = array(
            "allow_html" => "no",
            "allow_mycode" =>"yes",
            "allow_smilies" => "yes",
            "allow_imgcode" => "no",
            "me_username" => "no"
        );

    $out = "";
    $msg_canc = "";
    $query = $db->query("SELECT  id, idaut, name, message, time FROM " .TABLE_PREFIX. "instchat ORDER BY `id` DESC LIMIT 10");
    while($row = $db->fetch_array($query)) {
            if ($mybb->usergroup['issupermod'] != "no") {
                $idims = $row['id'];
                $msg_canc = "<a href=\"#\" onclick=\"Thread.instchatDelete($idims);\">[ Delete ]</a>";
            }
            $chat_date = my_date("M j,  H:i", $row['time']);
            $chat_us = "<a href=\"member.php?action=profile&uid=".$row['idaut']."\">".$row['name']."</a>";
            $message = stripslashes($row['message']);
            $message = $parser->parse_message($message, $parser_options);
            $out .= "[ $chat_date ] $chat_us $message $msg_canc <br />";
    }


    header("Content-type: text/plain; charset={$charset}");
        echo $out;

}
//End instchat hack

index.php

Keresd meg a következő kódrészletet:

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

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

Kód:
// Instchat hack
if($mybb->user['uid']) {
$mybb->instchat_button = "<div class=\"editor_control_bar\" style=\"width: 99%; padding: 1px; margin-top: 3px; text-align: left;\">
<input type=\"button\" class=\"button\" onclick=\"Thread.instchatSave('instchat_1');\" value=\"Send\" />
<input type=\"button\" class=\"button\" onclick=\"Thread.instchatRefresh('instchat_1');\" value=\"Refresh\" />
</div>";
} else  {
$mybb->instchat_button = "";
}

$parser_options = array(
            "allow_html" => "no",
            "allow_mycode" =>"yes",
            "allow_smilies" => "yes",
            "allow_imgcode" => "no",
            "me_username" => "no"
        );

    $mybb->instchat = "";
    $query = $db->query("SELECT  id, idaut, name, message, time FROM " .TABLE_PREFIX. "instchat ORDER BY `id` DESC LIMIT 10");
    $msg_canc = "";
    while($row = $db->fetch_array($query)) {
            if ($mybb->usergroup['issupermod'] != "no") {
                $idims = $row['id'];
                $msg_canc = "<a href=\"#\" onclick=\"Thread.instchatDelete($idims);\">[ Delete ]</a>";
            }
            $chat_date = my_date("M j,  H:i", $row['time']);
            $chat_us = "<a href=\"member.php?action=profile&uid=".$row['idaut']."\">".$row['name']."</a>";
            $message = stripslashes($row['message']);
            $message = $parser->parse_message($message, $parser_options);
            $mybb->instchat .= "[ $chat_date ] $chat_us $message $msg_canc <br />";
    }
// end instchat hack

Ennyi!!!

Ha archívumot is akarsz hozzáadni, hogy megtekinthesd a régebbi üzeneteket akkor tedd az alábbiakat:

1. index.php fájlban keresd meg a következő részt:

Kód:
<input type=\"button\" class=\"button\" onclick=\"Thread.instchatRefresh('instchat_1');\" value=\"Refresh\" />

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

Kód:
<input type=\"button\" class=\"button\" onclick=\"MyBB.popupWindow('misc.php?action=chatpopup', 'InstchatHistory', 700, 500);\" value=\"History\" />

2. misc.php

Keresd meg a következő részt:

Kód:
elseif($mybb->input['action'] == "buddypopup")

ELÉ szúrd be a következő kódot:

Kód:
elseif($mybb->input['action'] == "chatpopup")
{
    if($mybb->user['uid'] == 0)
    {
        error_no_permission();
    }
    require_once MYBB_ROOT."/inc/class_parser.php";
        $parser = new postParser();
        $parser_options = array(
            "allow_html" => 'no',
            "allow_mycode" => 'yes',
            "allow_smilies" => 'yes',
            "allow_imgcode" => 'no'
        );
    $mybb->input['popup'] = 1;
    $mybb->instchat = "<html>
<head>
<title>Instant Chat History</title>
{$headerinclude}
</head>
<table width='100%'>";
    $chatclass = "trow1";
    $query = $db->query("SELECT  id, idaut, name, message, time FROM " .TABLE_PREFIX. "instchat ORDER BY `id` DESC");
    while($row = $db->fetch_array($query)) {
            $chat_date = my_date("M j,  H:i", $row['time']);
            $chat_us = "<a href=\"#\">".$row['name']."</a>";
            $message = stripslashes($row['message']);
            $message = $parser->parse_message($message, $parser_options);
            $mybb->instchat .= "<tr><td width='100%' class='$chatclass' align='left'>[ $chat_date ] $chat_us $message $msg_canc </td></tr>\n";
            if($chatclass == "trow1") {
                $chatclass = "trow2";
            } else {
                $chatclass = "trow1";
            }
    }
$mybb->instchat .= "</table>";
    output_page($mybb->instchat);
}
Szerző weblapjának megtekintése Szerző üzeneteinek keresése
2007-11-06, 23:20 (Üzenet szerkesztésének időpontja: 2008-06-15 - 18:03. Szerkesztette: tommy.)
Üzenet: #2
RE: Ajax instant chat hack
Szia.
Köszönöm hogy ennyit bajlódsz vele. Tényleg dicséretre méltó.
Sikerült megoldani. nemrossz. egyszerü. de ez benne a jó.
viszont sajnos nem regisztráltak is látják.
Szerző üzeneteinek keresése
2008-05-26, 09:18 (Üzenet szerkesztésének időpontja: 2008-06-15 - 18:05. Szerkesztette: tommy.)
Üzenet: #3
RE: Ajax instant chat hack
Nekem is az a bajom,hogy a vendégek láthatják. Nem lehetne úgy megoldani,hogy a chat csak akkor jelenjen meg,ha az illettő be van lépve? Valahogy úgy kéne,mint itt a témában a "Gyors válasz". Ez is csak akkor látszik,ha belépett az illettő.
A "Vezérlőpult" milyen php kód közé van illesztve,hogy csak a regisztrált felhasználók láthatják? Pont ezt kéne a chathez is.
Szerző weblapjának megtekintése Szerző üzeneteinek keresése
2008-06-10, 07:15 (Üzenet szerkesztésének időpontja: 2008-06-15 - 18:06. Szerkesztette: tommy.)
Üzenet: #4
RE: Ajax instant chat hack
A második lépést kérhetném kicsit pontosabban? Milyen nevű fájlban van?
Szerző weblapjának megtekintése Szerző üzeneteinek keresése
2008-06-10, 10:11 (Üzenet szerkesztésének időpontja: 2008-06-15 - 18:06. Szerkesztette: tommy.)
Üzenet: #5
RE: Ajax instant chat hack
atomjani Írta:A második lépést kérhetném kicsit pontosabban? Milyen nevű fájlban van?

Nem fájlban van. Az admin felületen a sablonodat nyisd meg és az index template-ben végezd el a módosítást.
Szerző weblapjának megtekintése Szerző üzeneteinek keresése
2008-06-10, 10:53 (Üzenet szerkesztésének időpontja: 2008-06-15 - 18:07. Szerkesztette: tommy.)
Üzenet: #6
RE: Ajax instant chat hack
Kezdőlap Sablonokban van olyan, hogy index. Rámentem a módosít gombra.
A "forumstats"-ra rákeresve ezt dobta ki:
Kód:
href="stats.php">{$lang->forumstats}</a></span>
{$loginform}
</td>
Egyébként a headerinclude-be raktam az egyik kósot, amit meglehetett választani,hogy hova rakja az ember. Nem tudom,hogy ez probléma e. Egyedül a gombok nem látszanak.
Az aláirásomban szerepel a órum.
Szerző weblapjának megtekintése Szerző üzeneteinek keresése
2008-06-10, 11:15 (Üzenet szerkesztésének időpontja: 2008-06-15 - 18:07. Szerkesztette: tommy.)
Üzenet: #7
RE: Ajax instant chat hack
Ott kell lenie a {$forumstats}-nak. Igazából nem fontos pontosan oda beszúrni a kódot. ne a headerinclude-ba rakd be. Mindenképp az index-be rakd mert az a kezdő oldal. Itt elvileg bárhová berakhatod attól függően, hogy hol akarod, hogy megjelenjen a chat.
Szerző weblapjának megtekintése Szerző üzeneteinek keresése
2008-06-10, 11:28 (Üzenet szerkesztésének időpontja: 2008-06-15 - 18:08. Szerkesztette: tommy.)
Üzenet: #8
RE: Ajax instant chat hack
Hát a {$forumstats}-ot nem találom ilyen formában. Ezek közül melyikben nézzem meg?
Kód:
announcement     
Naptár Sablonok     
changeuserbox     
codebuttons     
Üzenet módosítás Sablonok     
Hiba üzenet Sablonok     
footer    
Fórum Bit Sablonok     
Fórum Megjelenítés Sablonok     
Fórum Ugrás Sablonok     
global_bannedwarning     
global_boardclosed_warning     
global_unreadreports     
gobutton     
header    
header_welcomeblock_guest    
header_welcomeblock_member    
header_welcomeblock_member_admin     
headerinclude    
htmldoctype     
Kezdőlap Sablonok     
loginbox     
managegroup     
managegroup_adduser     
managegroup_joinrequests     
managegroup_joinrequests_request     
managegroup_removeusers     
managegroup_requestnote     
managegroup_user     
managegroup_user_checkbox     
Tag Sablonok     
Tagok listája Sablonok     
misc_buddypopup     
misc_buddypopup_user_offline     
misc_buddypopup_user_online     
misc_buddypopup_user_sendpm     
misc_help     
misc_help_helpdoc     
misc_help_section     
misc_help_section_bit     
misc_imcenter_aim     
misc_imcenter_icq     
misc_imcenter_msn     
misc_imcenter_yahoo     
misc_rules_forum     
misc_smilies     
misc_smilies_popup     
misc_smilies_popup_smilie     
misc_smilies_smilie     
misc_syndication     
misc_syndication_feedurl     
misc_whoposted     
misc_whoposted_poster     
Moderáció Sablonok     
Többszörös oldal lapszámozás Sablonok     
Navigáció Sablonok     
Új válasz Sablonok     
Új téma Sablonok     
Ki van itt Sablonok     
polls_editpoll     
polls_editpoll_option     
polls_newpoll     
polls_newpoll_option     
polls_showresults     
polls_showresults_resultbit     
Portál Sablonok     
post_attachments     
post_attachments_attachment     
post_attachments_attachment_mod_approve     
post_attachments_attachment_mod_unapprove     
post_attachments_attachment_postinsert     
post_attachments_attachment_unapproved     
post_attachments_new     
post_captcha     
post_captcha_hidden     
post_savedraftbutton     
Üzenet Bit Sablonok     
posticons     
previewpost     
printthread     
printthread_post     
Privát Üzenetek Sablonok     
Átirányítás Sablonok     
report     
report_error     
report_noreason     
report_thanks     
Hírnév Sablonok     
Keresés Sablonok     
sendthread     
sendthread_guest     
Fórum Üzemeltetők mutatása Sablonok     
Témák megjelenítése Sablonok     
      showthread    
      showthread_inlinemoderation     
      showthread_inlinemoderation_custom     
      showthread_inlinemoderation_custom_tool     
      showthread_moderationoptions     
      showthread_moderationoptions_custom     
      showthread_moderationoptions_custom_tool     
      showthread_multipage     
      showthread_newreply     
      showthread_newreply_closed     
      showthread_newthread     
      showthread_poll     
      showthread_poll_option     
      showthread_poll_option_multiple     
      showthread_poll_resultbit     
      showthread_poll_results     
      showthread_quickreply     
      showthread_ratethread     
      showthread_ratingdisplay     
      showthread_similarthreads     
      showthread_similarthreads_bit     
      showthread_threaded_bit     
      showthread_threaded_bitactive     
      showthread_threadedbox     
smilieinsert     
smilieinsert_getmore     
stats     
stats_thread
És mért nem jó, ha az instant chat a headerinclude-ban van? Elvileg ott is kellenne müködnie.
Szerző weblapjának megtekintése Szerző üzeneteinek keresése
2008-06-10, 11:35 (Üzenet szerkesztésének időpontja: 2008-06-15 - 18:09. Szerkesztette: tommy.)
Üzenet: #9
RE: Ajax instant chat hack
Ha minden igaz, és jól gondolom, akkor a kezdőlap sablonok - és ott lesz az index
Szerző weblapjának megtekintése Szerző üzeneteinek keresése
2008-06-10, 11:40 (Üzenet szerkesztésének időpontja: 2008-06-15 - 18:09. Szerkesztette: tommy.)
Üzenet: #10
RE: Ajax instant chat hack
akee Írta:Ha minden igaz, és jól gondolom, akkor a kezdőlap sablonok - és ott lesz az index
Az igaz. De a fájl tartalom a következő:
Kód:
<html>
<head>
<title>{$mybb->settings['bbname']}</title>
{$headerinclude}
</head>
<body>
{$header}
<sf_shoutbox>
{$wm}
{$forums}
{$boardstats}
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
    <tr>
        <td class="trow1">
            <table width="100%">
                <tr>
                    <td>
                        <img src="{$theme['imgdir']}/on.gif" alt="{$lang->new_posts}" style="vertical-align: middle; padding-bottom: 4px;" /> <span class="smalltext">{$lang->new_posts}</span><br />
                        <img src="{$theme['imgdir']}/off.gif" alt="{$lang->no_new_posts}" style="vertical-align: middle; padding-bottom: 4px;" /> <span class="smalltext">{$lang->no_new_posts}</span><br />
                        <img src="{$theme['imgdir']}/offlock.gif" alt="{$lang->forum_locked}" style="vertical-align: middle;" /> <span class="smalltext">{$lang->forum_locked}</span>
                    </td>
                    <td style="vertical-align: top; text-align: right;"><span class="smalltext">{$logoutlink}<a href="misc.php?action=markread">{$lang->markread}</a> | <a href="showteam.php">{$lang->forumteam}</a> | <a href="stats.php">{$lang->forumstats}</a>
</span>

                        {$loginform}
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>
{$footer}
</body>
</html>
De igazából nem ennek kéne lennie:
Kód:
{$lang->forumstats}
hanem ennek:
Kód:
{$forumstats}
De igazából nem tudom,hogy hova szúrjam be. És én az alap sablont használom.
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
  Thanks hack tommy 0 1,426 2008-03-14 17:10
Utolsó üzenet: tommy

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