node iframe username

makgab képe

Üdv,

Egy node-ba beszúrtam egy iframe-t "webchat.freenode.net" hivatkozással:

<div>
<iframe src="http://webchat.freenode.net?nick=akarki&amp;channels=mychannel" width="700" height="550"></iframe>
</div>

A "nick=akarki" helyett lehet valahogy automatizálni, hogy az aktuális Drupal usernév kerüljön oda?

Gondolom PHP filter kell hozzá (ez bekapcs.).

Drupal verzió: 
aboros képe

<?php
global $user;
$chat = '<div><iframe src="http://webchat.freenode.net?nick=' . $user->name . '&amp;channels=mychannel" width="700" height="550"></iframe></div>';
print $chat;
?>

de ezt már nem biztos, hogy egy node bodyjába csinálnám, lehet inkább írnék egy picike kis modult ami egy blokkot hoz létre a webchat iframel és azt tenném egy régióba.

0
0

-
clear: both;

makgab képe

ok, kösz.

0
0
aboros képe

itt egy nagyon egyszerű kis modul ami blokkosítja ezt a dolgot. bekapcsolod a modult, létrehoz neked egy freenode webchat nevű blokkot, a többi már gyerekjáték.

freenodewebchat.info

name = Freenode Webchat
description = Provides a block with an iframe containing the freenode webchat qwebirc application.
core = 6.x
version = 6.x-dev

freenodewebchat.module

<?php
 
/**
 * Implementation of hook_block().
 */
 
function freenodewebchat_block($op = 'list', $delta = 0, $edit = array()) {
	if ($op == 'list') {
		$blocks[0] = array(
			'info' => 'Freenode Webchat client',
		);
		return $blocks;
	} else if ($op == 'view') {
		switch ($delta) {
			case 0:
				global $user;
				$block = array(
					'subject' => t('Freenode Webchat'),
					'content' => '<div><iframe src="http://webchat.freenode.net?nick=' . $user->name . '&amp;channels=mychannel" width="700" height="550"></iframe></div>',
				);
				break;
		}
		return $block;
	}
}
?>

a .module végére nem kell '?>' csak itt a fórumban kell, hogy színezzen a filter. aztán ebből persze lehet menni tovább, hogy legyen beállító képernyő ahol be tudod állítani a szélességet/Magasságot, meg hogy melyik csatornát mutassa a blokk, vagy lehetne egy olyan beállító képernyő ahol hozzá tudsz adogatni csatornákat és akkor minden ilyen csatornának külön blokk jön létre mondjuk, ilyesmi.

0
0

-
clear: both;

aboros képe

ircn jól rávilágítottak, hogy ez így nem lesz jó, a $user->name nem tisztított adat, check_plain() -en át kell kergetni mielőtt kiírnánk.

szóval akkor a .module így:

/**
* Implementation of hook_block().
*/
 
function freenodewebchat_block($op = 'list', $delta = 0, $edit = array()) {
    if ($op == 'list') {
        $blocks[0] = array(
            'info' => 'Freenode Webchat client',
        );
        return $blocks;
    } else if ($op == 'view') {
        switch ($delta) {
            case 0:
                global $user;
                $block = array(
                    'subject' => t('Freenode Webchat'),
                    'content' => '<div><iframe src="http://webchat.freenode.net?nick=' . check_plain($user->name) . '&amp;channels=mychannel" width="700" height="550"></iframe></div>',
                );
                break;
        }
        return $block;
    }
}
0
0

-
clear: both;

makgab képe

Köszi a segítő szándékot! :)
Ne publikáljuk a drupal.org-on? Továbbfejlesztem(?). :)

0
0
aboros képe

én itt publikáltam, te ott publikálod, ahol akarod ;)

0
0

-
clear: both;