Witam!
Przyciśnięty kolanem przez Cieplutkiego, postanowiłem napisać taki mini tutorial, - o tym jak zintegrować skrypt SteamProfile ze skryptem SMF
- (na razie w wersji 1.1.10).
To wersja robocza, ponieważ planuję utworzenie kompletnej modyfikacji. Tutek potrzebny, ponieważ dużo się działo w tym topie i pewne kwestie mogły umknąć..
Okay, więc do dzieła! Ale najpierw skompletujmy zabawki..
Pobieramy skrypt StreamProfile stąd:
http://code.google.com/p/steamprofile/Będzie to wersja aktualnie wersja:
steamprofile_ajax-2.0.2.zipRozpakowujemy i w środku znajduje się katalog "steamprofile". Cały ten katalog kopiujemy do gł. katalogu naszego forum.
np. nasze forum mamy w domenie -
domena.com w katalodu
forum, czyli adres byłby taki -->
http://domena.com/forum to po wrzuceniu tam katalogu "steamprofile" będzie on miał taki adres: -->
http://domena.com/forum/steamprofileTo oczywiście tylko przykład, każdy ma własną domenę, a przykład ma zobrazować ew. linki w tutorialu....
Zajmiemy się integracją skryptu SteamProfile z naszym forum na skrypcie SMF, na początek bazując na instalacji tego moda "seam" z smf.org.
Dlatego, że gł. poruszamy się w tym topie po takiej możliwości.
Sam mod instaluje pseudo kontrolkę do steama, ale tak naprawę dodaje tylko mini graficzkę, gdzie po kliknięciu łączymy się z profilem usera na steamie.. ot bzdet..
Jednak ten mod dodaje w profilu pole, do którego możemy dopisać nasze ID ze steama i my ten fakt wykorzystamy po to, żeby obie modyfikacje odnosiły się do tego samego wpisu z ID ze steama.
Jeśli, więc, zainstalowaliśmy moda, to nic więcej nie robimy, (zakładam, że wpisy językowe są uzupełnione), w innych plikach tylko skupimy się na pliku Display.template.php, ponieważ naszym zamiarem jest doprowadzić do tego, żeby wpisywane ID ze steama wyświetlały banerki ze steama w postach.
Ja umiejscowiłem wpisy od steama w dzivie z klasą post, czyli w samych postach, na górze po prawej (to może być dowolna lokalizacja)
Pokażę to na stylu default i interesującym nas pliku Display.template.php,
oczywiście to żaden problem powtórzyć tę operację dla wszystkich styli, jakie mamy zainstalowane.
Plik:
Display.template.phpZnajdujemy w kodzie na samym początku m/w ten kawałek:
function template_main
(){ global $context, $settings, $options, $txt, $scripturl, $modSettings; // Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.026s | speed:3.71 KB/s
Dodamy na końcu przed średnikiem ; $boardurl, żeby później łatwo odnieść się do samego skryptu.
Zamieniamy powyższy kod na ten:
function template_main
(){ global $context, $settings, $options, $txt, $scripturl, $modSettings, $boardurl; // Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.037s | speed:2.86 KB/s
Teraz przenieśmy się w kodzie do diva z klasą "post" do którego wrzucę zabawkę ze steamprofile
Znajdź w kodzie ten kawałek: (około linii ~430 na oryginalnym pliku)
// Show the post itself, finally! echo '
</td
> </tr
></table
> <hr width
="100%" size
="1" class="hrcolor" /> <div
class="post"', $message['can_modify'] ? ' id="msg_' . $message['id'] . '"' : '', '>', $message['body'], '</div>', $message['can_modify'] ? '
<img src
="' . $settings['images_url'] . '/icons/modify_inline.gif" alt
="" align
="right" id
="modify_button_' . $message['id'] . '" style
="cursor: pointer; display: none;" onclick
="modify_msg('' . $message['id'] . '', '' . $context['session_id'] . '')" />' : '' , '
</td
> </tr
>';
// Now for the attachments, signature, ip logged, etc... // Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.036s | speed:22.44 KB/s
Trzeba zaznaczyć u siebie dokładnie cały ten kawałek i zamienić na ten:
// Show the post itself, finally! echo '
</td
> </tr
></table
> <hr width
="100%" size
="1" class="hrcolor" /> <div
class="post"', $message['can_modify'] ? ' id="msg_' . $message['id'] . '"' : '', '>';
// SteamProfile by roco if (!empty($message['member']['options']['steam']))
{ echo
'
<script type
="text/javascript" src
="' ,$boardurl , '/steamprofile/jquery-1.3.2.min.js"></script> <script type
="text/javascript" src
="' ,$boardurl , '/steamprofile/steamprofile.js"></script> <div
class="steamprofile" title
="' . $message['member']['options']['steam'] . '" style
="float:right; margin-top:0; margin-right:0; width:250px;"></div
> '; flush();
} echo '
', $message['body'], '</div>', $message['can_modify'] ? '
<img src
="' . $settings['images_url'] . '/icons/modify_inline.gif" alt
="" align
="right" id
="modify_button_' . $message['id'] . '" style
="cursor: pointer; display: none;" onclick
="modify_msg('' . $message['id'] . '', '' . $context['session_id'] . '')" />' : '' , '
</td
> </tr
>';
// Now for the attachments, signature, ip logged, etc... // Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.039s | speed:34.82 KB/s
Celowo podałem więcej kodu, żeby łatwo się zorientować gdzie to miejsce..
W sumie to mamy już z głowy, jeśli wcześniej zainstalowaliśmy moda.
Informacje dodatkowe..
Skrypt wymaga, żeby w katalogu "steamprofile" na folderze "cache" były ustawione chmody na 777 (lub w zależności od klienta ftp - 0777) Ten folder musi byc zapisywalny, ponieważ będą gromadzić się w nim cachowane dane ze steama.
Zdarza się, że na hostingach mamy do wyboru php5 i php4, najlepiej to można sprawdzić wyświetlając info o php jakie mamy włączone na naszym hostingu.
Robi się to w ten sposób. Tworzymy plik
info.php z taką zawartością:
<?php
phpinfo();
?>
I jako info.php wrzucamy do katalogu steamprofile, następnie wpisujemy adres tego pliku w przeglądarce -->
http://domena.com/forum/steamprofile/info.phpWtedy zobaczymy ustawienia naszego php. Może się okazać że nie ma ani włączonego cURL ani biblioteki GD 2.0, ani to nie jest php5
Jeśli na hostingu są obie wersje to włączymy php5 za pomocą pliku .htaccess. php5 ma jednak więcej możliwości, już nie wspomnę, że SMF zdecydowanie bardziej stabilnie pracuje na wersji 5.
Poniżej podaje zawartość pliku
.htaccess (w tym topie jest załącznik z tym plikiem)
AddHandler application/x-httpd-php5 .php .inc
Action application/x-httpd-php5 "/php/php"
RewriteEngine on
RewriteRule ^id/(. )/?$ steamprofile.php?id=$1 [L]
// Created by GeSHi 1.0.8.10 | code: -› [code=Apache configuration] | load:0.004s | speed:35.43 KB/s
Jeśli coś nie działa to wyłączamy drugą linię "kratką" -->
# stawiając ją na początku wiersza, jeśli dalej źle to wyłączamy w ten sposób pierwszą linię.
Pozostała zawartość powinna pozostać, ponieważ pomaga w komunikacji z serwerem steama ect
Okay, to chwilowo tyle, mam nadzieję, że w miarę przejrzyście. tyle, ponieważ to jeszcze nie koniec, modyfikacja jest w fazie testów i być może powstanie z niej mod do obu wersji SMF.
Pozdrawiam
roco
PS. Oczywiście, jeśli dalej jest coś nie jasne, to należy bez obciachu pytać.