News:

Want to get involved in developing SMF, then why not lend a hand on our github!

Main Menu

Ručno instaliranje modova

Started by Dzonny, December 30, 2009, 06:03:22 AM

Previous topic - Next topic

Dzonny

:: Ručno instaliranje modova ::

Evo teme u kojoj ću detaljnije objasniti ručnu instalaciju modova na smf forumu.

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 sledeći 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)



QuoteMove the included file "Shout.template.php" to "./Themes/default".
Znači da fajl Shout.template.php treba uploadovati u /Themes/default/ direktorijum.
QuoteMove 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 ovoj temi. (iako mislim da je do detalja objašnjeno sve)

[̲̅J̲̅][̲̅U̲̅][̲̅R̲̅][̲̅E̲̅][̲̅K̲̅] ٩(×̯×)۶


Zoric

Quote from: Dzonny on December 30, 2009, 06:03:22 AM
:: Ručno instaliranje modova ::

Evo teme u kojoj ću detaljnije objasniti ručnu instalaciju modova na smf forumu.

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 sledeći 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)



QuoteMove the included file "Shout.template.php" to "./Themes/default".
Znači da fajl Shout.template.php treba uploadovati u /Themes/default/ direktorijum.
QuoteMove 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 ovoj temi. (iako mislim da je do detalja objašnjeno sve)

Dzonny koliko si vremena utrosio u ovaj trud???

Svaka cast !!!
Nemoramo da vise citamo na eng rucno instaliravanje modova yey!!!

merry M.

ovo je odlicno steta sto nema i kako se ubacuje u bazu kad na kraju parse ima
ovo.  jre dosta modova sadrzi ovakve stvari

Query: [Select]
SHOW COLUMNS FROM {$db_prefix}settings
LIKE 'arrange_mclegend'

Dzonny

Quote from: merry M. on December 30, 2009, 07:44:13 PM
ovo je odlicno steta sto nema i kako se ubacuje u bazu kad na kraju parse ima
ovo.  jre dosta modova sadrzi ovakve stvari

Query: [Select]
SHOW COLUMNS FROM {$db_prefix}settings
LIKE 'arrange_mclegend'

Uglavnom imaju fajlovi, ali u slučaju takvih kodova, jednostavno se kopiraju u phpMyAdmin, opcija SQL.

QuoteDzonny koliko si vremena utrosio u ovaj trud???

Svaka cast !!!
Nemoramo da vise citamo na eng rucno instaliravanje modova yey!!!
Manje nego što bi utrošio na objašnjavanje procesa u svakoj trećoj temi. :P

merry M.

da ali meni nije najjasnije kako zadnji deo se ubacuje od ovog moda

http://custom.simplemachines.org/mods/index.php?mod=1077

ovo sto pise na kraju ne znam:  (ostalo je sve OK)


Code
MCLegendDB114.php
This file should not be able to execute standalone. You may have to run the following queries manually.

Query: [Select]
SHOW COLUMNS FROM {$db_prefix}settings
LIKE 'arrange_mclegend'


Query: [Select]
INSERT IGNORE {$db_prefix}settings
VALUES ('arrange_mclegend', '1,2,8,7,6,5,4')



dali se fajl iz moda MCLegendDB114.php  ubaci u root foruma i pokrene ili se mora ubacivati u bazu rucno i gde? 

zahvaljujem se na odgovoru

Dzonny

Ok, u tom slučaju moraš ručno dodati kodove u bazu podataka, tj preko phpMyAdmina, kao što sam napomenuo.

merry M.

hvala na odgovoru ali ako ti nije tesko u 2-3 koraka kako to da ubacim please .
stvarno nisam to nikad radio pa ne znam.

hvala, srecna nova godina i sve najlepse

Forbs

Puno hvala na tutorialu,koristit ce :D

CaSiNo RoYaLe

odlican dar za novu godinu svim pocetnicima :D

Dzonny

 merry M. - kod koji je naveden, samo prekopiraš u phpMyAdmin, u tab "SQL" i potvrdiš ga.

ostalima hvala na komentarima :D

Skipper.

Jel ima tema u kojoj je objašnjeno kako se ručno brišu modovi. Koristio sam pretragu ali nisam mogao da pronađem ono što mi treba.
It's very simple. Scissors cuts paper, paper covers rock, rock crushes lizard, lizard poisons Spock, Spock smashes scissors, scissors decapitates lizard, lizard eats paper, paper disproves Spock, Spock vaporizes rock, and—as it always has—rock crushes scissors.

Dzonny

Quote from: Skipper_gm on March 14, 2010, 06:22:58 PM
Jel ima tema u kojoj je objašnjeno kako se ručno brišu modovi. Koristio sam pretragu ali nisam mogao da pronađem ono što mi treba.
Nema. Brisanje modula je obrnut proces instaliranju. Dakle, potrebno je ukloniti kodove koji su prethodno dodati.

N1k0l4


luisjanj

hvala za tutorijal
imam dva pitanja:
kako pokrenuti ovaj fajl Tables_1.1.X.php?
gde se nalazi folder shoutBox?ima ga u samom modu mozda se na to misli?
Move the included directory "chat/css" to "./shoutBox".
Move the included directory "chat/flash" to "./shoutBox".
Move the included directory "chat/img" to "./shoutBox".
Move the included directory "chat/js" to "./shoutBox".
Move the included directory "chat/lib" to "./shoutBox".
Move the included directory "chat/socket" to "./shoutBox".
Move the included directory "chat/sounds" to "./shoutBox".
Move the included directory "chat/src" to "./shoutBox".

Founder 2008

Ako ručno instaliraš napravi sam folder shoutbox i stavi te fajlove unutar tog foldera.
Što se tiče ovog drugog fajla ne znam o kom modu je reč ali ako je reč o pokretanju fajla onda pomoću browsera posetiš adresu gde je taj fajl upload-ovan.
tvojsajt/Tables_1.1.X.php

luisjanj

hvala puno carobnjak
sad je sve jasno
pozzz

Founder 2008


barjakpn

hvala majstore na ovako iscrpnom tutorijalu da se covek neznalica kao ja veoma lako moze snaci.Hvala.

Advertisement: