Strony: [1]   Bottom Do dołu
   Drukuj   
ico Autor    
[EN] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [RU]
     Topic: Invite mod  [Przeczytany 16116 razy]
0 użytkowników i 1 Gość przegląda ten wątek.
Full Member
***
Offline
14.12.2019 23:26:16
Topic Starter
 Poland Mężczyzna
Poland
  WWW
DATA: [23.01.2010 13:21:16] Invite mod
Link:  http://poligon.ricoroco.com/fora/smf/index.php?topic=679.msg1704#msg1704  
witam mam problem z tym modem do zaprosze?
jako tako instalk? upgradowa?em do smf 2 natomiast jak zawsze problem z baz? danych
roco wielka pro?ba mo?esz zerkn?? jak to przerobi? na wersje 2.0
w 1.x dzia?a bez problemów

GeSHi -› Code: [select]
<?php

if (!defined(&#39;SMF&#39;))
    die(&#39;Hacking attempt...&#39;);

db_query("CREATE TABLE IF NOT EXISTS {db_prefix}invites (
  ID_INVITE mediumint(8) unsigned NOT NULL auto_increment,
  ID_MEMBER mediumint(8) unsigned NOT NULL default &#39;0&#39;,
  ID_REGISTRATION mediumint(8) unsigned NOT NULL default &#39;0&#39;,
  inviteTime int(10) unsigned NOT NULL default &#39;0&#39;,
  inviteKey varchar(64) NOT NULL default &#39;&#39;,
  PRIMARY KEY  (ID_INVITE),
  KEY ID_MEMBER (ID_MEMBER),
  KEY inviteTime (inviteTime),
  KEY inviteKey (inviteKey)
)"
, __FILE__, __LINE__);



$request = db_query("
    SHOW COLUMNS
    FROM {db_prefix}invites
    "
, __FILE__, __LINE__);

$columns = array();
while ($row = mysql_fetch_assoc($request))
    $columns[] = $row[&#39;Field&#39;];

if (!in_array(&#39;inviteEmail&#39;, $columns))
    db_query("ALTER TABLE {db_prefix}invites ADD inviteEmail TINYTEXT NOT NULL", __FILE__, __LINE__);

?>
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.017s | speed:53.56 KB/s



link do moda http://custom.simplemachines.org/mods/index.php?mod=653



Attention! Testing modifications - Steam Profile

IP IP Zapisane

W?adczy, choleryczny, wybuchowy, radykalny we wszystkim, z
rozpustnym wyobra?eniem upodoba? które nigdy nie by?y widziane,
ateistyczny pod wzgl?dem fanatyzmu, tutaj masz mnie w pigu?ce
i zabij mnie znowu albo we? mnie takim jaki jestem,
bo Ja si? nie zmieni?.
Administrator
*****
Imagination is more Important than Knowledge
Offline
08.05.2017 21:24:16
 United States Mężczyzna
United States
  WWW
DATA: [23.01.2010 19:47:58] Odp: Invite mod
Link:  http://poligon.ricoroco.com/fora/smf/index.php?topic=679.msg1708#msg1708 Post #1 
Hi Nice and Warm U?miech

Wiesz, lubi? ludzi zakr?conych, mam tez s?abo?? do huncwotów hehe, ale Ty jeste? porz?dnie zakr?cony. Masz u mnie plucha, za swoj? determinacj? i niespo?yt? energi?. To oczywi?cie fajna zabawa z tym przerabianiem modów..
Jednak.. uwa?am autorytatywnie.. hmm co za j?zyk mamy, ?e tak? zabaw? mo?na uskutecznia?, w momencie, kiedy znasz dobrze silnik i semantyk? wersji 1.xx i wersji 2.xx oraz widzisz ró?nice pomi?dzy nimi. je?li przyjrza?by? si? silnikom ostatnich bet'ek, do zobaczy?by? ile by?o zmian konceptu i w ogóle zmian.

Zobacz wrzucasz, od moda to co ma si? wykona? na bazie danych, ok, za?ó?my ?e zostanie to tak przepisane, ?e "wejdzie" znaczy si? - zaskoczy i kod si? wykona. Jednak to do?? skomplikowany mod, który miesza w wielu plikach. W tych plikach s? odwo?ania do bazy, w tym wypadku wg. procedur wy??cznych dla smf 1.1.x. Nie chodzi tylko o to, ?e wywo?ania spowoduj? powa?ne b??dy, tylko chodzi o to, ?e taki mod musi zosta? Przemodelowany! W wersji 2.0 pewne "rzeczy" dzia?aj? w inny sposób, s? inne funkcje, tj. i uleg?o zmianie nazewnictwo i dosz?y nowe funkcje a z niektórych starych zrezygnowano. Osobi?cie mam ?al, ?e celowo, pewne pozytywne zmiany, jak lepsze rozwi?zania wielu kwestii, s? jakby tylko dla smf2.0, podczas, gdy cz??? z nich mog?aby by? z powodzeniem zaimplementowana w smf 1.1.x.
Najpierw trzeba bardzo dok?adnie zrozumie?, co ten mod wyprawia, w plikach i w bazie, co z czym i do czego, poniewa? pewne rozwi?zania z smf 1.1.x zosta?y zmienione, zrezygnowano z kilku, czy "wykonuj? inn? robot?". Nie mo?na tego zrobi? na tzw. "pa??" owszem mo?e zaskoczy?, co? tam zadzia?a?, ale tylko dok?adne testy, wiedza gdzie co ma pój?? i dlaczego, mo?e pozwala? na przekszta?cenie / przemodelowanie tego moda, ?eby by? kompatybilny z smf 2.0.

Pisz? Ci to wszystko, ?eby zaoszcz?dzi? Ci czasem niepotrzebnej walki z wiatrakami. Przemy?l to co napisa?em, zanim zabierzesz si? za d?ubanko w kodzie.
Najpierw to przemy?l, sprawd? gdzie co idzie, zainstaluj na smf 1.1.11 zobacz zmiany w plikach, zobacz o ile si? zwi?ksza ilo?? odwo?a? do bazy, bo to te? wa?ne i niepozorny modzio mo?e by? niez?? obci?gw? dla serva..

Ten kod, od instalki, który poda?e?, to nie wszystko, np. ./Sources/Register.php

Zobacz, to kod, który ma si? tam dopisa?:

GeSHi -› Code: [select]

    // Invite MOD; looks like registration went ok, let's mark the invite key as used and who it was used by.
    if ($context['invite_key'] !== false)
    {
        db_query("
            UPDATE {$db_prefix}invites
            SET ID_REGISTRATION = '$memberID'
            WHERE inviteKey = '{$context['invite_key']}'
            LIMIT 1"
, __FILE__, __LINE__);
    }
    elseif (!empty($_REQUEST['inviter']) && (int)$_REQUEST['inviter'] !== 0)
    {
        db_query("
            INSERT INTO {$db_prefix}invites (ID_MEMBER, ID_REGISTRATION, inviteTime)
            VALUES ('"
. (int)$_REQUEST['inviter'] . "', '$memberID', " . time() . ")
            "
, __FILE__, __LINE__);
    }

// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.015s | speed:38.01 KB/s



Jak widac stary typ odwo?a? do bazy.

Teraz plik ./Sources/Memberlist.php

GeSHi -› Code: [select]

    // Invite MOD.  Not really a user search, just using the fine table and such that's already here for the invitees list...
    if (isset($_REQUEST['inviter']) && loadMemberData(array($_REQUEST['inviter'])))
    {
        global $user_profile;

        if (($_REQUEST['inviter'] == $context['user']['id'] && !allowedTo('invitees_own')) || !allowedTo('invitees_any'))
            fatal_lang_error('invitees_any', false);

        // Just to let the members know it's not really a search.
        $context['page_title'] = $txt['invited_by'] . ' ' . $user_profile[$_REQUEST['inviter']]['realName'];
        $context['sort_links'][1]['label'] = $context['page_title'];

        // We need this so it thinks it's a regular search and won't be all bitchy about variables...
        $context['old_search'] = '';
        $context['old_search_value'] = '';

        // Find the number of results.
        $request = db_query("
            SELECT COUNT(*)
            FROM {$db_prefix}members AS mem
                LEFT JOIN {$db_prefix}invites AS inv ON (inv.ID_REGISTRATION = mem.ID_MEMBER)
            WHERE inv.ID_MEMBER = $_REQUEST[inviter]
                AND is_activated = 1"
, __FILE__, __LINE__);
        list ($numResults) = mysql_fetch_row($request);
        mysql_free_result($request);

        $context['page_index'] = constructPageIndex($scripturl . '?action=mlist;sa=search;inviter=' . $_GET['inviter'], $_REQUEST['start'], $numResults, $modSettings['defaultMaxMembers']);

        // Find the members from the database.
        // !!!SLOW This query is slow.
        $request = db_query("
            SELECT mem.ID_MEMBER
            FROM {$db_prefix}members AS mem
                LEFT JOIN {$db_prefix}invites AS inv ON (inv.ID_REGISTRATION = mem.ID_MEMBER)
                LEFT JOIN {$db_prefix}log_online AS lo ON (lo.ID_MEMBER = mem.ID_MEMBER)
                LEFT JOIN {$db_prefix}membergroups AS mg ON (mg.ID_GROUP = IF(mem.ID_GROUP = 0, mem.ID_POST_GROUP, mem.ID_GROUP))
            WHERE inv.ID_MEMBER = $_REQUEST[inviter]
                AND is_activated = 1
            LIMIT $_REQUEST[start], $modSettings[defaultMaxMembers]"
, __FILE__, __LINE__);
        printMemberListRows($request);
        mysql_free_result($request);
    } // End Invite MOD.
    // They're really doing a search.
    elseif (isset($_REQUEST['search']) && isset($_REQUEST['fields']))

// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.018s | speed:111.71 KB/s



Pó?niej mamy ./Sources/Profile.php

GeSHi -› Code: [select]

        // Invite MOD.  Change the number of inviter.
        if (!empty($_POST['inviter']) && (int)$_POST['inviter'] != 0 && (int)$_POST['inviter'] != $memID && allowedTo('moderate_forum'))
        {
            global $sourcedir;
            require_once($sourcedir . '/Invite.php');

            if (inviter($memID))
                db_query("
                    UPDATE {$db_prefix}invites SET ID_MEMBER = {$_POST['inviter']}
                    WHERE ID_REGISTRATION = $memID
                    LIMIT 1"
, __FILE__, __LINE__);
            else
                db_query("
                    INSERT INTO {$db_prefix}invites (ID_MEMBER, ID_REGISTRATION)
                        VALUES ({$_POST['inviter']}, $memID)"
, __FILE__, __LINE__);
        }
        elseif (isset($_POST['inviter']) && empty($_POST['inviter']))
        {
            db_query("
                DELETE FROM {$db_prefix}invites
                WHERE ID_REGISTRATION = $memID
                LIMIT 1"
, __FILE__, __LINE__);
        }

// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.019s | speed:40.27 KB/s



Jak wida? troch? wi?cej zmian potrzeba. Ale to nie wszystko, jest inny sposób przekazywania akcji skryptom, przekazywania z pó? input, textarea czy js itd.. Mo?e nie dopisywa? zapraszanych do bazy itd.. Dodatkowo trzeba si? przyjrze? gdzie wizualnie ma co pój??, bo tu te? troch? zmian.. i mo?e warto to jeszcze przemy?le?, zastanowi? si?, czy mo?e nie wrzuci? pewnych "cz??ci" moda w inne miejsca?

My?l?, ?e je?li to prosta modyfikacja, która nie d?ubie za bardzo w bazie i nie dolepia si? do innych plików, to mo?na si? pobawi?. W takim wypadku jak ten mod, trzeba podej?? bardziej na powa?nie. Mo?e nawet si? zastanowi?, czy nie lepiej napisa? to od nowa? cz?sto to ?atwiejsze ni? przeróbki.

Ten kod, który poda?e?, musi w 100% zadzia?a? z tym kodem który poda?em, wi?c w ka?dym wypadku to trzeba przepisa?. Tu nie chodzi tylko o kod odwo?a? do bazy, jak pisa?em to skomplikowany mod, który "czepia" si? wielu plików z silnika i ma to ogromny wp?yw na dzia?anie ca?ego forum. Tak przemodelowanie to jedno, ale bezwzgl?dnie musz? by? porobione wszystkie mo?liwe testy.

Tak na szybko z g?owy tego Ci nie podam. Ja te? zmieniaj?c taki kod, musz? sprawdzi? czy dodaje go do bazy, gdzie i jak. Musisz mi wybaczy?, ale do ko?ca m-ca mam takie ob?o?enie niedoko?czonych spraw, ?e mog? straci? kask?, za nie wykonane projekty. ok? Rozumiesz to?

Oczywi?cie nie poddawaj si? i rób swoje! Tylko w tym wypadku co? mam skojarzenia.. z tym ..koniem, co go odzwyczajano od jedzenia, i prawie im si? uda?o, tylko niestety kó? zdech?..

Tym nie mniej ?ycz? powodzenia w przeróbach, w sumie to te? szko?a i mo?esz si? dzi?ki temu wielu rzeczy nauczy? i napewno przybli?a Ci? to do g??bszego poznania idei i samego dzia?ania SMF

Pozdrówka U?miech
roco



Attention! Testing modifications - Steam Profile

IP IP Zapisane
Full Member
***
Offline
14.12.2019 23:26:16
Topic Starter
 Poland Mężczyzna
Poland
  WWW
DATA: [24.01.2010 00:17:17] Odp: Invite mod
Link:  http://poligon.ricoroco.com/fora/smf/index.php?topic=679.msg1714#msg1714 Post #2 
roco ja to przemy?la?em w?a?nie w ten sposób  Cool
poligon na smf 1.1.11 wszystko ?miga
odszuka?em podobny kod w plikach dla smf 2.0 rc1-2 na 2 nie bo za mocno zakr?cona i mam obawy
mod si? instaluje wykonywany jest kod w bazie ale s? problemy ... source/themes.php i jeszcze pare miejsc
jak jeste? zainteresowany ma?ym lookiem to w za??czniku moje wypociny ... dzia?aj? ale nie do ko?ca mo?e ty co? poradzisz.
Pewno co? gdzie? zapomnia?em doda?

pozdrówka i pomocy



Attention! Testing modifications - Steam Profile

: : Attachment : :
Attachment Invite_1.14.zip   -› 12.41 KB - pobrany 1424 razy

IP IP Zapisane

W?adczy, choleryczny, wybuchowy, radykalny we wszystkim, z
rozpustnym wyobra?eniem upodoba? które nigdy nie by?y widziane,
ateistyczny pod wzgl?dem fanatyzmu, tutaj masz mnie w pigu?ce
i zabij mnie znowu albo we? mnie takim jaki jestem,
bo Ja si? nie zmieni?.
Administrator
*****
Imagination is more Important than Knowledge
Offline
08.05.2017 21:24:16
 United States Mężczyzna
United States
  WWW
DATA: [24.01.2010 00:59:45] Odp: Invite mod
Link:  http://poligon.ricoroco.com/fora/smf/index.php?topic=679.msg1716#msg1716 Post #3 
Okay, rozumiem Ci?.

Powiem Ci jak ja to robi?, jak ju? zmusza mnie ?ycie.. Otó? mam wykonan? instalk? na smf 1.1.11 patrz? gdzie co posz?o i edytuj? pliki, wcze?niej w testowalni na localho?cie dodaje potrzebne tabele do bazy. Porównuje pliki, je?li funkcje lub odwo?ania s? innego typu, to poprawiam, na te od smf 2.0 i jest to co prawda m?czenie bu?y, ale step by step nanosz? wpisy do plików (i to z czystej instalki!) na smf 2.0, kiedy mam ju? komplet i wsio hula a? mi?o, czyli sukces, to w edytorze mam po dwie wersje plików z czystej instalki i z czystej instalki po modyfikacji. Wtedy do moda wrzucam bardzo dok?adnie miejsce, gdzie ma si? wykona? kod i z drugiego pliku, tego ju? zmodyfikowanego, przeklejam bardzo uwa?nie i dok?adnie go, do instalki moda.

Czyli, najpierw musisz hehe pojecha? na r?cznym i dopiero kiedy jest ok, brak b??dów i w logach serva i w PA, to tworzysz sam? instalk?.
Niby proste, ale trzeba by? bardzo skrupulatnym, dok?adnym itd.. potrzeba te? odrobiny wyobra?ni i cierpliwo?ci.
Trzeba rozwa?y? wszelkie mo?liwo?ci, np. niektóre rzeczy z smf 2.0 w ?adnym wypaku nie zadzia?aj? na smf 1.x.x itd.. Czyli potrzeba troch? wiedzy..
Oczywi?cie podstawa to wiedza nawet podstawowa z zakresu php, html i sql.

Tyle szybkich tipsów.. jak to mówi? "j?zykiem, jak smykiem" hehe gorzej gdy przychodzi co do czego..

Nie mog? obieca?, ?e znajd? wystarczaj?co du?o czasu, ?eby si? temu szybko przyjrze?, ale plik pobra?em i uczciwie mog? rzec - postaram si? nic wi?cej nic mniej. Niestety brak mo?liwo?ci czasowych uniemozliwia mi zaj?cie si? tym per sofort, sorka

Po lookam tam troch?, mo?e to jaki bzdet?, ale wg. mnie te wszystkie odwo?ania do bazy musz? by? pod wersj? smf 2.0 bez tego ani rusz.

Pozdrówka U?miech
roco

Sorry, ?e nie mog? si? tym od razu zaj??, to troch? powa?niejsze i wymaga ode mnie dyspozycyjno?ci, mam jednak nadziej?, ?e to rozumiesz..
narka



Attention! Testing modifications - Steam Profile

IP IP Zapisane
Full Member
***
Offline
14.12.2019 23:26:16
Topic Starter
 Poland Mężczyzna
Poland
  WWW
DATA: [24.01.2010 09:48:34] Odp: Invite mod
Link:  http://poligon.ricoroco.com/fora/smf/index.php?topic=679.msg1721#msg1721 Post #4 
roco luzik to nie sprawa gard?owa ot fanaberia i mi?y modzik dla smf 2
jak znajdziesz czas to mo?esz popatrze? ja co potrafi?em z mojej strony to zrobi?em
nie znam si? na php, html robi? to wszystko na wyczucie - czasem trafie a czasem nie



Attention! Testing modifications - Steam Profile

IP IP Zapisane

W?adczy, choleryczny, wybuchowy, radykalny we wszystkim, z
rozpustnym wyobra?eniem upodoba? które nigdy nie by?y widziane,
ateistyczny pod wzgl?dem fanatyzmu, tutaj masz mnie w pigu?ce
i zabij mnie znowu albo we? mnie takim jaki jestem,
bo Ja si? nie zmieni?.
Administrator
*****
Imagination is more Important than Knowledge
Offline
08.05.2017 21:24:16
 United States Mężczyzna
United States
  WWW
DATA: [25.01.2010 17:25:06] Odp: Invite mod
Link:  http://poligon.ricoroco.com/fora/smf/index.php?topic=679.msg1729#msg1729 Post #5 
Cieplutki, spoko, ja doskonale rozumiem co robisz. To te? jest jaka? nauka i si? nie poddawaj.
Zajrze? ?eby zajrze?, to nie bardzo, musz? znale?? spokojn? chwilk?, ?eby to przemy?le? i to z tym mam problem.
Zajrz? jednak na pewno, ok?

Pozdrawiam U?miech
roco



Attention! Testing modifications - Steam Profile

IP IP Zapisane
Strony: [1]   TOP^Do góry
   Drukuj   
On-Line: 56 Gości, 0 Użytkowników
 
Skocz do:  

Podobne Tematy
  Temat Zaczęty przez Odpowiedzi Wyświetleń Ostatnia wiadomość
normal_post RSS [PL] Invite 1.14 Draco 3 13866 Ostatnia wiadomość 02.06.2009 00:45:35
Autor roco
* Share this topic...
In a forum
[BBCode]
Code: [select]  -› [ Topic: Invite mod ]
[url=http://poligon.ricoroco.com/fora/smf/index.php?topic=679.0]Invite mod[/url]
In a site/blog
[xHTML]
Code: [select]  -› [ Topic: Invite mod ]
<a href="http://poligon.ricoroco.com/fora/smf/index.php?topic=679.0" target="_blank">Invite mod</a>
Geo Visitors Map