Ručno instaliranje modova
Zašto je potrebno ručno instalirati modove? Iz prostog razloga što 1.1.x verzije smf-a nemaju ugrađen sistem za automatsko instaliranje moda za custom teme, tj modul će se instalirati kako treba samo na default temi, što je problem ako koristite neku drugu temu.
Za primer ćemo uzeti Ajax Chat Integration modul, koji je trenutno jedan od top 5 modova na smfu.
Da bi ručno instalirali mod najpre je potrebno videti source, tj videti kodove koji čine mod, i koje je potrebno uneti u fajlove smf skripte. To ćemo postići klikom na "parse", kao što je prikazano na slici. Pre klika odaberite verziju vašeg foruma (i verziju modula ukoliko ih ima više. Uvek izaberite poslednju verziju modula)
Klikom na parse, dobijamo stranicu sa pregledom Readme fajla, kompletnog upustva za editovanje/menjanje dodavanje kodova, kao i izmene na bazi podataka, jezičkih stringova i uploada novih fajlova.
Prvi korak Pročitajte readme odeljak.
Readme sadrži podatke o samom modulu i njegovom funkcionisanju, načinu aktiviranja modula, i eventualne napomene, moguće probleme i slično. Napomena: Ukoliko u readme fajlu ne pronadjete neophodne podatke, uvek možete pregledati support topic datog moda, i eventualno postaviti pitanje ili komentar.
Drugi korak Ovo je ujedno i najvažniji korak i potrebno je posebno obratiti pažnju na njega. Evo kako izgleda upustvo:
Dakle, kao što se vidi na slici, najpre je potrebno editovati fajl BoardIndex.php, koji se nalazi u direktorijumu Sources. Fajl preuzmite preko nekog ftp klijenta, i obavezno sačuvajte originalan fajl, tj napravite backup pre bilo kakvih izmena na fajlu.
Fajl otvorite u nekom tekst editoru. Preporučujem Notepad++, ne preporučujem ("obični") notepad iz više razloga.
Ono što nam je rečeno jeste to da je potrebno naći sledeći kod:
// Track most online statistics?
if (!empty($modSettings['trackStats']))
i pre njega dodati kod:
$context['num_users_online'] = count($context['users_online']) + $context['num_users_hidden'];
//users in chat if (!WIRELESS){ $userIDs = chatOnlineUsers(); $context['chat_links'] = array(); if (count($userIDs) > 0){ $query = "SELECT mem.ID_MEMBER, mem.realName, mem.ID_GROUP, mg.onlineColor, mg.ID_GROUP FROM {$db_prefix}members AS mem LEFT JOIN {$db_prefix}membergroups AS mg ON (mg.ID_GROUP = IF(mem.ID_GROUP = 0, mem.ID_POST_GROUP, mem.ID_GROUP))WHERE "; foreach ($userIDs as $ID) $query .= 'ID_MEMBER = '. $ID . ' OR '; //remove the last OR $query = substr($query, 0, strlen($query)-3);
$result = db_query($query, __FILE__, __LINE__); while ($row = mysql_fetch_assoc($result)) { $link = '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER']; if($row['onlineColor'] != ""){ $link.= '" style="color: ' . $row['onlineColor']; } $link.= '">' . $row['realName'] . '</a>'; array_push($context['chat_links'], $link); } mysql_free_result($result); } //set the flag true for home page $context['chat_isHome'] = true; }
Pošto ste izvršili izmene, sačuvajte fajl, i krenite na sledeći.
Bitno je napomenuti da ne uploadujete fajlove jedan po jedan na server, već da najpre izmenite sve fajlove koji su potrebni pa ih onda sve ubacite na date putanje. Ovo je bitno jer delimično instaliran mod može uzrokovati prekid u funkcionisanju softvera, pa korisnici neće moći da pristupe forumu.
U daljem pregledu stranice parse, vidimo nastavak upustva za edit koda, u sledećem fajlu. U pitanju je ovaj put, fajl Load.php, koji se takodje nalazi u Sources direktorijumu. Izmene se vrše isto kao i kod prvog fajla, s tim što kod ovog fajla ima 3 izmene u kodu, kao što se vidi na slici.
Pošto se fajl editovali, sačuvajte ga.
Ostali fajlovi se edituju kao i prva dva, potrebno je samo pratiti upustva na parse strani. Za one koji se ne snalaze sa engleskim, da pojasnimo potrebne pojmove: Find - Naći ( koristite opciju find u text editoru) Find (at the end of the file) - Ista opcija, sa napomenom da je kod pozicioniran na kraju datog fajla. Add Before - Dodati pre, kazuje da kod treba dodati pre koda koji se traži. Add After - Dodati posle, kazuje da kod treba dodati posle koda koji se traži. Replace - Zameniti, kazuje da kod treba zameniti sa kodom koji se traži.
Pri kraju file edits odeljka, nalaze se uglavnom jezički stringovi modula. U nekim modulima postoje i stringovi za više jezika, kao u našem slučaju. Ukoliko dati jezik ne koristite, samo preskočite tu izmenu.
Engleski jezik obavezno ubacite bez obzira da li ga koristite kao default ili ne. Ono što je problem, jeste ako koristite srpski/hrvatski jezik, a stringova za te jezike nema. U tom slučaju možete uzeti engleske stringove i prevesti ih, pa ubaciti u vaš jezik (modification.serbian.php...) ili ih ubaciti bez izmena. Stringovi moraju postojati da bi mod radio kako treba.
Treći korak
Došli smo do izmena u bazi podataka. U ovom slučaju imamo napomenu da fajl Tables_1.1.X.php treba uploadovati u root foruma, i pokrenuti ga kako bi bile izvršene izmenene na bazi podataka. Fajl ćete pronaći u instalacionom paketu koji možete preuzeti sa linka modula: http://custom.simplemachines.org/mods/index.php?mod=1319
Četvrti korak ...i poslednji korak. Govori nam o putanji na koju trebamo uploadovati odredjene fajlove. (iz instalacionog paketa)
Move the included file "Shout.template.php" to "./Themes/default".
Znači da fajl Shout.template.php treba uploadovati u /Themes/default/ direktorijum.
Move the included directory "chat" to "the root directory".
Znači da ceo folder chat, treba uploadovati u root direktorijum foruma.
Napomena:
- Ukoliko koristite custom temu, izmene u okviru teme je potrebno preduzeti u fajlovima custom i default teme. Ukoliko potreban fajl ne postoji u custom temi - edituje se fajl default teme.
- Napravite backup fajlova pre izmena. Ukoliko podje po zlu, bitno je imati backup kako bi se eventualni problemi izbegli.
Sva pitanja vezana za instalaciju modula možete postaviti u originalnoj temi na forumu.
[1]