Hej, chciałbym wam dzisiaj pokazać, jak w prosty sposób zrobić blok powitalny dla zalogowanych użytkowników w IPS4.
Dowiecie się, jak zrobić taki o to blok:
No cóż - czas na krok pierwszy.
1. Wgrywanie pluginu na bloki
Co prawda, na bloki PHP jest chyba opcja w Pages, ale tak czy siak, wolę tego używać, zwłaszcza że Pages nie posiadam
Link do pluginu: https://invisionpower.com/files/file/7337-txt-php-widget/
Po wgraniu, trzeba się upewnić czy plugin ma włączone widżety PHP: wchodzimy w ACP i wybieramy kolejno: System -> Aplikacje i moduły -> Wtyczki -> ołówek (Edytuj) obok pluginu PHP & TXT Widget, po czym zaznaczamy "Active PHP Widget" i klikamy Zapisz.
2. Tworzenie szablonu
Czas na stworzenie szablonu naszego powitania. Wchodzimy w ACP, Wygląd > Wygląd > Style i szablony, klikamy w menu rozwijane stylu w którym chcemy dodać powitanie, a następnie Edytuj HTML i CSS.
Pokaże nam się strona z szablonami i plikami CSS naszego stylu, nas jednak interesują tylko szablony. Przewijamy na dół strony i klikamy "Nowy" i wybieramy "Szablon HTML".
To, jaką nazwę szablonu i lokalizację wybierzecie, to już od Was zależy, ale koniecznie trzeba ustawić zmienne na "$id,$name".
W moim przypadku będzie to wyglądać tak:
A skoro już mamy szablon, to czas dodać do niego zawartość.
Aby uzyskać taką zawartość jak na pierwszym screenie, użyję następującego kodu:
<style>
[data-blockid="plugin_1_sodPhpWidget_3nyvaezqg"] .ipsWidget_inner {padding-left: 5px;}
[data-blockid="plugin_1_sodPhpWidget_3nyvaezqg"] h3 {
padding: 10px !important;
margin: 0;
font-size: 14px;
font-weight: 400 !important;
position: relative;
color: #fff;
background: #3c6994 !important;
border-radius: 2px 2px 0px 0px;
}
</style>
<p>Witaj <a contenteditable="false" data-ipshover="" data-ipshover-target="/profile/{$id}-uzytkownik/?do=hovercard" data-mentionid="{$id}" href="/profile/{$id}-uzytkownik/" rel="">@{$name}</a>!</p>
<p>Radzimy się zapoznać z <a href="/guidelines/">regulaminem</a> oraz życzymy miłego korzystania z forum <img src="/uploads/emoticons/59061d9707cf7_happy(4).png"></p>
{$id} oraz {$name} to zmienne, których wartość ustalimy ładując szablon w następnym kroku
UWAGA: Linki które są w moim szablonie prowadzą do głównej ścieżki strony, jeśli forum jest np. w folderze /forum/ (np. example.com/forum/), trzeba zamiast np. /guidelines/ dać /forum/guildelines/.
Podobnie z <style>, zamiast "plugin_1_sodPhpWidget_3nyvaezqg" wpisujemy nasz blockid - w następnym kroku dowiecie się, jak go uzyskać.
Oraz z emotikoną.
3. Tworzenie widżetu
Gdy już stworzymy szablon, trzeba stworzyć widżet - otwieramy pasek z widżetami i przenosimy w dowolne miejsce na stronie widżet PHP Code z kategorii PHP & TXT Widget.
Następnie edytujemy go i ustawiamy Widget Title (tytuł widżetu) na dowolny tekst. Pomijamy Widget Description i w Widget Contents się zacznie nasza zabawa z PHP.
Na początek zdefiniujmy dwie zmienne, ID i nazwa zalogowanego użytkownika:
<?php
$name = \IPS\Member::loggedIn()->name;
$id = \IPS\Member::loggedIn()->member_id;
?>
Wracamy do ACP i sprawdzamy lokalizację szablonu. Najłatwiej jest wyszukać naszego szablonu: wtedy dokładnie wszystko widać.
Na zdjęciu oznaczyłem napisy poszczególnymi numerkami, aby było łatwiej zrouzmieć poniższy kod:
$template = \IPS\Theme::i()->getTemplate( 'index', 'core', 'front' )->welcome_message($id,$name);
Czyli, zastępując numerkami:
$template = \IPS\Theme::i()->getTemplate( '3', '1', '2' )->4($id,$name);
W ten sposób właśnie uzyskujemy szablon skonwertowany na czysty HTML.
Zostało już tylko wyświetlenie szablonu:
<?php
$name = \IPS\Member::loggedIn()->name;
$id = \IPS\Member::loggedIn()->member_id;
$template = \IPS\Theme::i()->getTemplate( 'index', 'core', 'front' )->welcome_message($id,$name);
print_r($template);
?>
No, i mamy efekt:
Jak widać, nie załadował się tylko CSS - trzeba zmienić wspominany wcześniej blockid w szablonie. Aby go uzyskać, musimy zbadać element, po czym nam wyskoczy coś w tym stylu w przeglądarce:
Strzałka wskazuje wartość, która nas interesuje. Podmieniamy ją w szablonie, zapisujemy, i wszystko działa jak należy: