Već sam ranije tražio rješenje za navedeni problem, ali ga nije bilo, tražio sam na službenom forumu da možda koji developer napiše mod, ali i od toga ništa. Radi se o tome da prilikom logiranja (prijavljivanja) na SMF (Simple Machines Forum) neovisno koliko vi na njemu bili, on će vas izbaciti (točnije samo napraviti LogOff) nakon X minuta. Tako nešto već postoji integrirano u samom forumu, a naziva se “Stay logged in for: X minutes”. Stvar je u tome da tu varijablu (vrijeme nakon kojeg će napraviti LogOff) može mijenjati sam korisnik te također može odabrati unlimited tj. da je uvijek logiran kada pristupa forumu. Pošto moda za to nije bilo, problemu sam doskočio na pomalo seljački način, ali glavno da – funkcionira. Potrebno je maknuti opciju “Stay logged in for: X minutes” te “Always stay logged in” iz Login forme te u Admin(istrator) panelu podesiti vrijeme na 5/10/30 minuta (koliko god vi želite). Na taj način korisnik neće moći odabrati željeno vrijeme (duljinu) prijave, a već unaprijed će biti defirnirano/zadano navedeno vrijeme te će ga nakon isteka tog vremena jednostavno odlogirati.
Glavna datoteka koju je potrebno editirati je u folderu \Themes\default imena Login.template.php. U navedenoj datoteci redak 36-50 glasi ovako
// Now just get the basic information - username, password, etc. echo ' </tr><tr class="windowbg"> <td width="50%" align="right"><b>', $txt[35], ':</b></td> <td><input type="text" name="user" size="20" value="', $context['default_username'], '" /></td> </tr><tr class="windowbg"> <td align="right"><b>', $txt[36], ':</b></td> <td><input type="password" name="passwrd" value="', $context['default_password'], '" size="20" /></td> </tr><tr class="windowbg"> <td align="right"><b>', $txt[497], ':</b></td> <td><input type="text" name="cookielength" size="4" maxlength="4" value="', $modSettings['cookieTime'], '"', $context['never_expire'] ? ' disabled="disabled"' : '', ' /></td> </tr><tr class="windowbg"> <td align="right"><b>', $txt[508], ':</b></td> <td><input type="checkbox" name="cookieneverexp"', $context['never_expire'] ? ' checked="checked"' : '', ' class="check" onclick="this.form.cookielength.disabled = this.checked;" /></td> </tr><tr class="windowbg">';
Vjerojatno ćete već i sami prepoznati, trebate samo obrisati redak 45-49 tako da dobijete slijedeće (NAPOMENA: obratite pozornost na posljednji točka-zarez ; na krajnjem retku).
// Now just get the basic information - username, password, etc. echo ' </tr><tr class="windowbg"> <td width="50%" align="right"><b>', $txt[35], ':</b></td> <td><input type="text" name="user" size="20" value="', $context['default_username'], '" /></td> </tr><tr class="windowbg"> <td align="right"><b>', $txt[36], ':</b></td> <td><input type="password" name="passwrd" value="', $context['default_password'], '" size="20" /></td> </tr><tr class="windowbg"> </tr><tr class="windowbg">';
Spremite datoteku te zamijenite onom na serveru. Za custom teme morat ćete malo i po njima prokopati. Naprimjer, ja sam imao temu gdje sam trebao otvoriti datoteku index.template.php u glavnom direktoriju teme te sam morao promijeniti slijedeće
<input id="loginbutton" type="submit" value="" name="submit" /> <input type="hidden" name="cookielength" value="-1" />
u
<input id="loginbutton" type="submit" value="" name="submit" /> <input type="hidden" name="cookielength" value="5" />
To je zasebna Login forma u samoj temi (nalazi se na vrhu/dnu i slično) i koristi svoj template (predložak) za prijavu. U gornjem (originalnom) primjeru trajanje (value) je postavljeno na -1 što je u prijevodu – unlimited tj. negraničeno. Treba jednostavno vrijednost -1 promijeniti u željeni broj (preporučljivo isti onaj koji ste podesili u Admin panelu) i to je to. Ukoliko napravite samo prvi korak, korisnici koji će se logirati na zasebnom Login prozoru /index.php?action=login bit će automatski odlogirani nakon 5 minuta dok će ovi koji će se logirati na glavnoj/prednjoj stranici pomoću custom forme ostati prijavljeni zauvijek.