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

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

Pluglin MyBB a zapytanie Sql

SQL  Założony przez  adi888.

Witam, przeszukałem google, różne fora i nie znalazłem odpowiedzi na swoje pytanie. Otóż w pluglinie mybb który próbuję tworzyć chciałbym aby po kliknięciu w księżyc wysyłane było zapytanie do bazy danych w mybb (mybb_users) (UPDATE mybb_users SET style = '%d' WHERE uid = '%d';). Moim problemem w tym wszystkim jest to że nie bardzo wiem jak ugryźć to w pluglinie. W zwykłem skrypcie php nie ma problemu, natomiast jako że nie mam jeszcze doświadczenia z pluglinami to zastanawiam się jak to zrobić. Jeżeli plgulin ma nazwę xxx.php to wywołać go nw np. <a href="xxx.php?update_style=123">Update</a>? Czy może w jakiś inny sposób? Formularz metodą POST? Hmm no właśnie tutaj mam problem :(


$plugins-> add_hook('global_start','styl_forum');
function styl_forum()
{
global $db,$mybb,$TrybNocny;

$uid = $mybb->user['uid'];


$mysql = mysqli_connect('xxx','xxx','xxx','xxx');
if(mysqli_connect_errno())
{
echo 'Błąd połączenia z bazą danych!';
}
$sql = sprintf("SELECT `style` FROM `mybb_users` WHERE `uid` = '%d';",$uid);
$result=$mysql->query($sql);
if($result->num_rows>0)
{
$row = $result->fetch_assoc();
if($row['style'] != 10) 
{
$TrybNocny = '<i class="fas fa-moon"></i>';
}
else
{
$TrybNocny = '<i class="far fa-moon"></i>';
}
}
mysqli_free_result($result);
mysqli_close($mysql);
return 1;

}
Jak chcesz zrobić nową stronę to masz 2 opcje.
1. Podłączyć się pod hooka misc_start i odwołanie do twojej strony wyglądałoby
misc.php?action=twoja_akcja
$plugins->add_hook('misc_start', 'my_action');

// In the body of your plugin
function my_action()
{
    global $mybb, $templates, $lang, $header, $headerinclude, $footer;

    if($mybb->get_input('action') == 'myaction')
    {
        // Do something, for example I'll create a page using the hello_world_template

        // Add a breadcrumb
        add_breadcrumb('My Action', "misc.php?action=myaction");

        $hello_world = 'This text will appear on the page';
        eval('$sections  = "' . $templates->get('hello_world_template') . '";');

        // Using the misc_help template for the page wrapper
        eval("\$page = \"".$templates->get("misc_help")."\";");
        output_page($page);
    }
}
2. Tworzysz nowy oddzielny plik
<?php

// Set some useful constants that the core may require or use
define("IN_MYBB", 1);
define('THIS_SCRIPT', 'my_plugin.php');

// Including global.php gives us access to a bunch of MyBB functions and variables
require_once "./global.php";

// Only required because we're using misc_help for our page wrapper
$lang->load("misc");

// Add a breadcrumb
add_breadcrumb('My Page', "my_plugin.php");

$hello_world = 'This text will appear on the page';
eval('$sections  = "' . $templates->get('hello_world_template') . '";');

// Using the misc_help template for the page wrapper
eval("\$page = \"".$templates->get("misc_help")."\";");

// Spit out the page to the user once we've put all the templates and vars together
output_page($page);

?>
https://docs.mybb.com/1.8/development/pl...-new-page/

PS. Nie twórz nowego połączenia z bazą w pluginie tylko, używaj do tego zmiennej globalnej $db



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

1 gości