I have tried this and it works fine for me. Have you tried spitting out your last query to see if it is correct?
This is incorrect:
PHP Code:
$geturl_text = vB::$vbulletin->db->query_first("SELECT url_text FROM " . TABLE_PREFIX . "cms_node WHERE nodeid = " . $this->nodeid);
$geturl_pdf = vB::$vbulletin->db->query_first("SELECT url_pdf FROM " . TABLE_PREFIX . "cms_node WHERE nodeid = " . $this->nodeid);
$geturl_audio = vB::$vbulletin->db->query_first("SELECT url_audio FROM " . TABLE_PREFIX . "cms_node WHERE nodeid = " . $this->nodeid);
$pub_view->url_text = $geturl_text['url_text'];
$pub_view->url_pdf = $geturl_text['url_pdf'];
$pub_view->url_audio = $geturl_text['url_audio'];
You are using $geturl_text for all three of them. I would actually do this:
PHP Code:
$geturl_text = vB::$vbulletin->db->query_first("SELECT url_text, url_pdf, url_audio FROM " . TABLE_PREFIX . "cms_node WHERE nodeid = " . $this->nodeid);
$pub_view->url_text = $geturl_text['url_text'];
$pub_view->url_pdf = $geturl_text['url_pdf'];
$pub_view->url_audio = $geturl_text['url_audio'];