Webboard

Pełna wersja: Wstawienie czegoś w miejsce {costam}
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Piona, szukałem i szukałem, ale nic nie znalazłem - po prostu szukać nie umiem, piszę sobie taki plugin do wyświetlania postaci w profilu, chciałbym aby za {costam} był wstawiony mój kod odpowiedzialny za wyświetlanie właśnie postaci, jak takie coś wykonać?
W pluginie możesz cośtakiego zrobić.

Np.:

Kod PHP:
function threads_postbit (&$post) {
    global 
$db;
    static 
$cache;
    
    if (empty(
$cache[$post['uid']]))
    {
        
$sql "SELECT COUNT(tid) as num_threads 
                FROM "
.TABLE_PREFIX."threads 
                WHERE uid = '
{$post['uid']}'"
        
$query $db->query($sql);
        
$cache[$post['uid']] = (int) $db->fetch_field($query'num_threads');
        }
        
    
$post['num_threads'] = $cache[$post['uid']];
    
$post['user_details'] = str_replace('<!--tematy-->'$post['num_threads'],  $post['user_details']); 
    return 
$post;


Wtedy pod zmienną {$post['num_threads']} będzie wyświetlała się ilość napisanych tematów przez użytkownika.
pokaz kod
nie {custom}
tylko {$custom}

$custom = 'kod';
@up: Przeczytaliście chociaż co autor chce zrobić?
Jeden z was podaje mu kod na gotowy plugin (który robi w ogóle coś innego niż autor chce osiagnać), a drugi poprawia zmienną...


Najpierw trzeba podpiąć hook z nazwą funkcji pluginu która będzie daną rzecz wyświetlała np.
Kod:
$plugins->add_hook("index_start", "mojplugin_show");

A później w pluginie
Kod:
$mojplugin = "Wyświetl w szablonie";
i w tym szablonie co został podpięty hook
Kod:
{$mojplugin}
Piona, a więc:
Kod:
function roleplay_show()
{
    global $db, $mybb, $templates;
    $query = $db->query("SELECT * FROM postacie_gracza WHERE owner=".$mybb->user['uid']);
    while($result = $db->fetch_array($query))
    {
        $roleplay = $result['nick'];
    }
    
    return $roleplay;
}
I nic nie wyświetla, podpięty jest pod hook member_profile_end, w szablonie mam {$roleplay} i nie działa, co jest?
Jeszcze zmienna do linijki z global.

Kod PHP:
function roleplay_show()
{
    global 
$db$mybb$templates$roleplay;
    
$query $db->query("SELECT * FROM postacie_gracza WHERE owner=".$mybb->user['uid']);
    while(
$result $db->fetch_array($query))
    {
        
$roleplay $result['nick'];
    }
    
    return 
$roleplay;


Nie jestem zaawansowanym developerem, ale powinno działać.
Okej, normalnie mi wyświetla - teraz taki problem że pokazuje tylko jedną postać, nie wiem dlaczego - oto kod:
Kod:
function roleplay_show()
{
    global $db, $mybb, $roleplay;
    $query = $db->query("SELECT * FROM postacie_gracza WHERE owner=".$mybb->user['uid']);
    if($db->num_rows($query) > 0)
    {
    while($result = $db->fetch_array($query))
    {
        $roleplay = '<div class="pole"><div class="avek"><img src="images/Skins/Skin_'.$result['skin'].'.png" /></div><div class="dane">'.$result['nick']."<br />".czas($result['onlinetime'])."</div></div>";
    }
    }
    
    return $roleplay;
}

Okej, zrobiłem: "$roleplay =" zamienić na "$roleplay .="