Skocz do zawartości
  • Zarejestruj się
  • 0
Zaloguj się, aby obserwować  
TENAZ

Zamiana ID grupy na NAZWE grupy.

Pytanie

Witam,

Wie ktoś może jak zamienić ID grupy na NAZWE grupy?

{$member['mgroup_others']} <- Pokazuje samo ID

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Polecane posty

  • 0

{expression="implode(', ', $secondaryGroups)" raw="true"}

ale z tego kodu nie będzie kolorów, bo pobierana jest sama czysta nazwa z tłumaczenia.

{{$secondaryGroups = [];}}

{{foreach array_filter(explode(',', $comment->author()->mgroup_others)) as $secondaryGroup}}
	{{$secondaryGroups[] = \IPS\Group::load($secondaryGroup)->formattedName;}}
         
{{endforeach}}
{expression="implode(', ', $secondaryGroups)" raw="true"}

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 1
\IPS\Member\Group::load($member['mgroup_others'])->name;

( w szablonie {expression="\IPS\Member\Group::load($member['mgroup_others'])->name"} )

lub

\IPS\Member\Group::load($member['mgroup_others'])->formattedName;

( w szablonie {expression="\IPS\Member\Group::load($member['mgroup_others'])->formattedName" raw="true"} )

lub

\IPS\Member::loggedIn()->language()->addToStack("core_group_{$member['mgroup_others']}");

( w szablonie {lang="core_group_{$member['mgroup_others']}"} )

 

PS: kolumna mgroup_others to tablica, więc będziesz musiał użyć jednego z powyższych kodów w pętli ;) 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 1
12 godzin temu, naXe napisał:

PS: kolumna mgroup_others to tablica, więc będziesz musiał użyć jednego z powyższych kodów w pętli ;) 

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 1

A jak ten kod dodałeś? 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 1

Napisałem Ci, że musisz zrobić pętle, aby pobrać osobno ID grup z kolumny mgroup_others.
Zapoznaj się z pętlą foreach.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 1

ID grup w kolumnie są zapisywane w taki sposób:
 

member_id    name    mgroup_others    member_group_id
    1        Name1      2,3,10              1
    2        Name2      4,5,10              1
    3        Name3      6,7,10              1
    4        Name4       8,9                1

czyli najpierw musisz pobrać zawartość kolumny, zamienić otrzymany string na tablice array i dopiero później przelecieć wszystkie ID w pętli.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 1
<?php
require_once __DIR__.'init.php';

$member = \IPS\Member::load(1);
$secondaryGroups = [];

foreach(array_filter(explode(',', $member->mgroup_others)) as $secondaryGroup):
	$secondaryGroups[] = \IPS\Member::loggedIn()->language()->get('core_group_'.$secondaryGroup);
endforeach;

var_dump($secondaryGroups);

$secondaryGroups to tablica, w której znajdują się nazwy grup.
Stwórz sobie plik PHP w głównym katalogu forum, dodaj do niego tą zawartość i otwórz w przeglądarce.

Edytowano przez naXe

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 1
{{$member = \IPS\Member::load(1);}}
{{$secondaryGroups = [];}}

{{foreach array_filter(explode(',', $member->mgroup_others)) as $secondaryGroup}}
	{{$secondaryGroups[] = \IPS\Member::loggedIn()->language()->get('core_group_'.$secondaryGroup);}}
{{endforeach}}

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 1

Już kolejny kod otrzymałeś ode mnie, którego nie potrafisz dobrze dodać lub uruchomić...
Zastanów się co robisz źle.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 1

Nie ma znaczenia gdzie.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 1
1 godzinę temu, naXe napisał:

$secondaryGroups to tablica, w której znajdują się nazwy grup.

poczytaj o tablicach array i jak je wyświetlać.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 1

\IPS\Member\Group zamiast \IPS\Group

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

To też nie działa

{{$grupy = \IPS\Member\Group::load($member['mgroup_others'])->name;}} ( z wszystkimi robiłem tak )

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

@naXe z wszystkimi spróbowałem i profil się nie ładuje, strona niedostępna jest po wgraniu modyfikacji z tym kodem.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

@naXe

{{$grupao = \IPS\Member::loggedIn()->language()->addToStack("core_group_{$member['mgroup_others']}");}}
{$grupao}

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

 

{{foreach $grupao as $member}}
    
{{$grupao = \IPS\Member::loggedIn()->language()->addToStack("core_group_{$member['mgroup_others']}");}}
{$grupao}

{{endforeach}}

Takie coś? @naXe

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

@naXe a tak trochę jaśniej? :D

{{$grupao = \IPS\Member::loggedIn()->language()->addToStack("core_group_{$member['mgroup_others']}");}}
 // pobieramy z tablicy


{{foreach $grupao as $member}}
    
{$grupao}

{{endforeach}}

Coś takiego +/-?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

@naXe a jeżeli chcę to dodać do pluginu to zrobić w znakach {{, tak?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

@naXe po dodaniu takiego kodu powinny się pokazać już te grupy? Bo dodałem ten kod i nic. (BTW. po wgraniu pliku .PHP z tym kodem to nic się nie pokazuje)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

@naXe no jestem pewny, że wszystko dobrze zrobiłem. Kod został dodany poprawnie. A Tobie wyświetlają się? ( jeżeli próbowałeś )

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

@naXe a dodajesz to gdzie?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

@naXe dodajesz to przez plugin czy wklejasz gdzieś do szablonu?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

@naXe dodaje to np. do postContainer:

{{$member = \IPS\Member::load(1);}}
{{$secondaryGroups = [];}}

{{foreach array_filter(explode(',', $member->mgroup_others)) as $secondaryGroup}}
	{{$secondaryGroups[] = \IPS\Member::loggedIn()->language()->get('core_group_'.$secondaryGroup);}}
{{endforeach}}

I nic. A jak dam zwykły tekst np. aaa to pokazuje się normalnie.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się
Zaloguj się, aby obserwować  

  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.

×

Ważne informacje

W celu świadczenie usług przez nasz Serwis na najwyższym poziomie, w ramach Serwisu wykorzystujemy pliki Cookies (tzw. ciasteczka). Korzystając ze stron Serwisu IPSBEYOND.PL bez zmiany ustawień przeglądarki będą one zapisane w pamięci urządzenia. Jeżeli nie dokonacie Państwo zmiany ustawień przeglądarki internetowej to wyrażacie zgodę na zapisywanie plików Cookies.