Szablony w phpBB3 dają możliwość używania własnych zmiennych. W tym artykule stworzymy zmienną, która wygeneruje nam pełny odnośnik do tematu na forum. Zostanie on wykorzystany we wtyczce portalu Facebook do "polubienia" wybranego wątku. Aby stworzyć zmienną wykonujemy poniższe czynności.
Otwieramy plik viewtopic.php w którym odnajdujemy komentarz:
// Send vars to template
Komentarz znajduje się w okolicach linii numer 614. Zaraz pod nim zdefiniowana jest tablica:
$template->assign_vars( array() );
Naszym zadaniem jest dodanie do niej nowego elementu.
Odnajdujemy element o kluczu:
'U_VIEW_TOPIC'
Przechowuje on zmienną $viewtopic_url, która to zawiera adres do tematu na forum. Adres ten jest jednak adresem względnym, który generuje wartość w postaci np.:
./viewtopic.php?f=24&t=4100
Wtyczka "Like" od Facebook'a wymaga od nas podania adresu bezwzględnego. W tym celu dodajemy swoją zmienną, która będzie zawierała w sobie adres łącznie z domeną na której znajduje się forum:
'U_VIEW_TOPIC_FULL_URL' => "http://localhost/viewtopic.$phpEx?f=$forum_id&t=$topic_id",
Klucz:
U_VIEW_TOPIC_FULL_URL
To nasza unikalna nazwa, którą wymyślimy i którą będziemy się posługiwać w szablonie. Pod zmienne $phpEx, $forum_id oraz $topic_id szablon podstawi odpowiednie identyfikatory działu oraz wątku. W efekcie zmienna "U_VIEW_TOPIC_FULL_URL" zwracać będzie np.:
http://localhost/viewtopic.php?f=12&t=3456
Taki adres przekażemy do szablonu używając konwencji:
{NAZWA_NASZEJ_ZMIENNEJ}
czyli:
{U_VIEW_TOPIC_FULL_URL}
Plugin z przyciskiem "Like" wstawimy pod tytułem w widoku wątku. Otwieramy zatem plik viewtopic_body.html gdzie odnajdujemy kod:
<h2><a class="titles" href="{U_VIEW_TOPIC}">{TOPIC_TITLE}</a></h2>
Następnie wstawiamy kod dostarczony przez Facebook, np.:
<div class="fb-like" data-href="{U_VIEW_TOPIC_FULL_URL}" data-send="false"
data-layout="button_count" data-width="450" data-show-faces="false" data-font="arial"></div>
W dalszej części do atrybutu "data-href" wstawiamy naszą własną zmienną. Inicjalizacja samego modułu sprawdza się do wstawienia (w pliku overall_header.html) po znaczniku <body>, kodu:
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=APP_ID";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
Cały kod wygenerujemy pod tym odnośnikiem. Na koniec czyścimy cache szablonów w phpBB3. Od teraz każdy z forumowiczów będzie mógł "polubić" wybrane tematy dzieląc się nimi ze społecznością serwisu Facebook.