Webboard

Pełna wersja: Jak dodać zmienną na wiadomość?
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Jak dodać pole tekstowe do ustawień w ACP, którego wartość wpisana będzie zmienną {$plugin} umieszczaną w szablonie?
Kod PHP:
<?php

define
("IN_MYBB"1);

$plugins->add_hook('index_start''plugin');

function 
plugin_info() {



    return array(
        
"name"            =>    "Zamiana tekstu w index",
        
"description"    =>    "Zamienia zmienną header na header i nasz tekst.",
        
"website"        =>    "https://webboard.pl/",
        
"author"        =>    "Poftorek",
        
"authorsite"    =>    "https://webboard.pl/",
        
"version"        =>    "1.0",
        
"compatibility" =>  "18*"
    
);
}
//Aktywacja pluginu Zamiany
function plugin_activate() {
    global 
$db$mybb;
    
    
//nazwa pluginu w zakladce pluginow
    
$plugin_group_settings = array(
        
"gid"               => NULL,
        
"name"              => "plugin_option_category",
        
"title"             => "Zamiana tekstu w index",
        
"description"       => "Ustawienia pluginu Zamiana tekstu w index",
        
"disporder"         => "50",
        
"isdefault"         => "no"
 
                       );
    
$db->insert_query("settinggroups"$plugin_group_settings);
    
    
$gid $db->insert_id();
    
//ustawienie wlaczania w acp
    
$option_1 = array(
 
       "sid"               => NULL,
 
       "name"              => "plugin_enabled",
 
       "title"             => "Włączyć/Wyłączyć wtyczkę?",
 
       "description"       => "Ma plugin działać czy ma plugin nie działać?",
 
       "optionscode"       => "yesno",
 
       "value"             => "yes",
        
"isdefault"         => "yes",
 
       "disporder"         => "1",
 
       "gid"               => intval($gid)
                        );
    
    
$db->insert_query("settings"$option_1);

    
                         
  
    
require MYBB_ROOT."/inc/adminfunctions_templates.php";
    
find_replace_templatesets('index''#{\$header}#'"{\$header}\n{\$plugin}");
    
// header - zmienna z index, podmiena ją  na header <br>zmienna_moja
}

function 
plugin_deactivate() {

    global 
$db$mybb;
    
    
$db->delete_query('settinggroups''name = "plugin_option_category"');
    
$db->delete_query('settings''name IN("plugin_enabled")');

    require 
MYBB_ROOT."/inc/adminfunctions_templates.php";
    
find_replace_templatesets('index''#(\n?){\$plugin}#'''0);
}

function 
plugin() 
{
    global 
$db$mybb$templates$plugin;

    
            
$plugin =
                
' <table border="0" class="tborder">
<thead>
<tr>
<td class="thead">
<div><strong><center>Ogloszenie</strong></div></center>
</td>
</tr>
</thead>
<td>Drogi użytkowniku! Prosimy o zapoznanie się z naszym regulaminem, pomoże Ci to w uniknięciu otrzymania ostrzeżenia.</td>
</table>
<br />'
;
            }
        
?>
Musisz dodać nowe ustawienie typu text lub textarea (w optionscode) - zależy, czy chcesz coś większego, czy tylko jedną linijkę.
https://docs.mybb.com/1.8/development/pl...n-settings

Następnie już w funkcji podpiętej do hooka wystarczy zamiast tak jak masz teraz wrzucić:

Kod PHP:
$plugin $mybb->settings['nazwa_twojego_ustawienia']; 

EDIT:
A na dobrą sprawę, to raczej mógłbyś od razu do szablonu dodać zamiast $plugin po prostu $mybb->settings['nazwa_twojego_ustawienia']. Wtedy nie potrzebujesz w ogóle funkcji podpinanej do hooka, choć oczywiście pokazywałoby się na każdej stronie.