Dołącz do zespołu ekspertów! Backend lub Frontend Developer?

Sprawdź najnowsze oferty pracy naszego partnera - 8lines.io!

Problem z własnym pluginem wyświetlającym grupy

Założony przez  maxerxxl.

Cześć. Dzisiaj wziąłem się za własny plugin, który wyświetla listę grup na stronie głównej. Problem jest taki że nie wyświetla tych grup a forum nie działa.

<?
if (!defined('IN_MYBB'))
{
die('Direct initialization of this file is not allowed.');
}

function viewGroups_info()
{
return array(
'name' => 'x',
'description' => 'x',

'website' => 'x',
'author' => 'x',
'authorsite' => 'x',
'version' => 'x',

'compatibility' => '18*'
);
}

// Variables - global
$plugins -> add_hook('index_global', 'viewGroups_index');
//$plugins -> run_hooks('index_global');

// Functions - global
function viewGroups_global()
{
global $db;

$query=$db->query('SELECT * FROM mybb_usergroups');

while($result=$db->fetch_array($query)) {
$group_format = str_replace('{username}', $result['title'], $result['namestyle']);

$groups .= $group_format . ' | ';
}
}

eval("\$viewGroups = \"".$templates->get("viewGroups")."\";");
output_page($viewGroups);
?>

Proszę o pomoc.
Aha..

//To była odpowiedź adekwatna do przedstawionej sytuacji.
Jakiś błąd Ci wyskakuje albo cokolwiek?
Żadnego błędu nie ma po prostu forum nie otwiera się. Obsługę błędów włączyłem i także mi nie pokazuje. Ale z tego co widzę problem powoduje:

eval("\$viewGroups = \"".$templates->get("viewGroups")."\";");
output_page($viewGroups);
Szablon viewGroups w szablonach globalnych masz dodany? Jak tak to pokaz jego zawartość. Musisz też zglobalizowac zmienne $templates, $groups oraz nie potrzebna jest funkcja 
output_page($viewGroups);
[Obrazek: Ie3BAVP.png]
Powinieneś bardziej się przyłożyć do estetyki kodu, wtedy jest łatwiej odnaleźć błąd.

Używasz hooka, który nie istnieje (lista tutaj) i funkcja również.
(11.12.2017, 20:18)maxerxxl napisał(a): Problem jest taki że nie wyświetla tych grup a forum nie działa
Forum działa. Nie używaj tutaj funkcji output_page(), bo zwraca Ci zmienną do której przypisany jest szablon (nie będący strukturą HTML), w którym jest zmienna "niewidoczna dla niego", stąd pusta strona.

Odnośnie zapytania, to raczej nie ma sensu pobierać wszystkich pól, skoro tylko 2 są Ci potrzebne. Do tego zaleca się stosowanie TABLE_PREFIX, bądź $db->table_prefix w celu odniesienia do prefixu tabeli.

<?
if (!defined('IN_MYBB'))
{
    die(
'Direct initialization of this file is not allowed.');
}

// Variables - global
$plugins->add_hook('index_start''viewGroups_index');

function 
viewGroups_info()
{
    return [
        
'name' => 'x',
        
'description' => 'x',
        
'website' => 'x',
        
'author' => 'x',
        
'authorsite' => 'x',
        
'version' => 'x',
        
'compatibility' => '18*'
    
];
}

// jeszcze funkcje aktywacji / dezaktywacji itd jeśli potrzeba

// Functions - global
function viewGroups_index()
{
    global 
$db$templates$groups$viewGroups;

    
$query $db->query("SELECT title, namestyle FROM " TABLE_PREFIX "usergroups");

    while(
$result $db->fetch_array($query)) {
        
$group_format str_replace('{username}'htmlspecialchars_uni($result['title'], $result['namestyle']));
        
$groups .= $group_format ' | ';
    }
    eval(
"\$viewGroups = \"".$templates->get("viewGroups")."\";");


Zmienna do użycia w szablonie index - {$viewGroups}.
Prośby na PW dotyczące wsparcia z problemami będą ignorowane. Pomoc poza forum - odpłatna; kontakt: snakemybboard@gmail.com.



Użytkownicy przeglądający ten wątek:

2 gości