/** * Render menu contents. */ function renderMenu() { $template = e107::getTemplate('nodejs_online'); $sc = e107::getScBatch('nodejs_online', true); $tp = e107::getParser(); e107_require_once(e_PLUGIN . 'nodejs_online/includes/nodejs_online.php'); $users = nodejs_online_get_online_users(); $sc->setVars(array('count' => count($users))); $text = $tp->parseTemplate($template['MENU']['HEADER'], true, $sc); foreach ($users as $uid => $user) { $sc->setVars(array('user' => $user)); $text .= $tp->parseTemplate($template['MENU']['ITEM'], true, $sc); } $text .= $tp->parseTemplate($template['MENU']['FOOTER'], true); e107::getRender()->tablerender(LAN_NODEJS_ONLINE_MENU_01, $text); unset($text); }
/** * Send messages to clients for updating online menu. */ public function nodejs_update_online_menu() { e107_require_once(e_PLUGIN . 'nodejs/nodejs.main.php'); e107_require_once(e_PLUGIN . 'nodejs_online/includes/nodejs_online.php'); $template = e107::getTemplate('nodejs_online'); $sc = e107::getScBatch('nodejs_online', true); $tp = e107::getParser(); $users = nodejs_online_get_online_users(); $message = (object) array('broadcast' => true, 'callback' => 'nodejsOnlineMenu', 'type' => 'nodejsOnlineMenuBadge', 'markup' => count($users)); nodejs_enqueue_message($message); $list = '<li role="presentation" class="nav-header dropdown-header">' . LAN_NODEJS_ONLINE_MENU_01 . '</li>'; foreach ($users as $uinfo => $row) { $sc->setVars(array('user' => $row)); $list .= $tp->parseTemplate($template['MENU']['ITEM'], true, $sc); } $message = (object) array('broadcast' => true, 'callback' => 'nodejsOnlineMenu', 'type' => 'nodejsOnlineMenuList', 'markup' => $list); nodejs_enqueue_message($message); }