SQL Abfrage Group name immer in Englisch

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
pierre63
Mitglied
Beiträge: 58
Registriert: 28.03.2018 07:41

SQL Abfrage Group name immer in Englisch

Beitrag von pierre63 »

Hallo
Vorab ich bin neuling in php und html.

Ich habe in eine php folgende abfrage erstellt:

Code: Alles auswählen

$sql = 'SELECT * FROM ' . GROUPS_TABLE . ' WHERE group_id = ' . (int) $user->data['group_id'];
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);

$template->assign_vars(array(
        'GROUP_NAME'    => $row['group_name'],
		'GROUP_COLOR'    => $row['group_colour'],
		));
Dann im ein Template folgendes:

Code: Alles auswählen

 <font color="#{GROUP_COLOR}"> {GROUP_NAME}</font>     
Das funktioniert auch soweit aber der Gruppen Name erscheint immer in Englisch weil es ja so in die db hinterlegt ist.
Es soll aber in Deutsch erscheinen

Habe es mit {L_GROUP_NAME} und L_{GROUP_NAME} versucht und auch zb in ein Sprachpaket
folgendes angelegt:

'ADMINISTRATORS' => 'Administratoren',

Aber es will nicht klappen, kann mir jemanden vielleicht weiter helfen?
Benutzeravatar
canonknipser
Ehemaliges Teammitglied
Beiträge: 2053
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: SQL Abfrage Group name immer in Englisch

Beitrag von canonknipser »

Versuch es mal nicht selber, sondern überlasse es den dafür vorhandenen Funktionen in phpBB ;)

Für die Ermittlung der Gruppennamen gibt es eine Funktion get_group_name in includes/functions_user.php

Code: Alles auswählen

/**
* Get group name
*/
function get_group_name($group_id)
{
    global $db, $phpbb_container;

    $sql = 'SELECT group_name, group_type
        FROM ' . GROUPS_TABLE . '
        WHERE group_id = ' . (int) $group_id;
    $result = $db->sql_query($sql);
    $row = $db->sql_fetchrow($result);
    $db->sql_freeresult($result);

    if (!$row)
    {
        return '';
    }

    /** @var \phpbb\group\helper $group_helper */
    $group_helper = $phpbb_container->get('group_helper');

    return $group_helper->get_name($row['group_name']);
}
Die ist dafür vorgesehen, für die Standard-Gruppen die sprachangepassten Namen zurückzuliefern.
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;) - Bilder
Kein Support via PN, nur im Board und (manchmal) im IRC
pierre63
Mitglied
Beiträge: 58
Registriert: 28.03.2018 07:41

Re: SQL Abfrage Group name immer in Englisch

Beitrag von pierre63 »

Hallo

Und wie gebe ich das ein im Template?
Benutzeravatar
canonknipser
Ehemaliges Teammitglied
Beiträge: 2053
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: SQL Abfrage Group name immer in Englisch

Beitrag von canonknipser »

z.B. so (du musst natürlich die includes vorher einbinden):

Code: Alles auswählen

// nur noch für group_colour und group_name
$sql = 'SELECT group_colour, group_name FROM ' . GROUPS_TABLE . ' WHERE group_id = ' . (int) $user->data['group_id'];
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);

// Name über helper-Klasse
$template->assign_vars(array(
        'GROUP_NAME'    =>  $group_helper->get_name($row['group_name']),
      'GROUP_COLOR'    => $row['group_colour'],
      ));
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;) - Bilder
Kein Support via PN, nur im Board und (manchmal) im IRC
pierre63
Mitglied
Beiträge: 58
Registriert: 28.03.2018 07:41

Re: SQL Abfrage Group name immer in Englisch

Beitrag von pierre63 »

Super danke, es geht :grin: :grin:
Antworten

Zurück zu „Coding & Technik“