protected function generateAddonsJs() { header('Content-Type: text/javascript'); $type = JRequest::GetCmd('addontype'); $db = oseDB::instance(); $user = JFactory::getUser(); $array = array(); $output = ''; if ($type == 'registerOS') { $headerObjs = oseMscAddon::getAddonList('registerOS_header', false, null, 'obj'); $bodyObjs = oseMscAddon::getAddonList('registerOS_body', false, null, 'obj'); $footerObjs = oseMscAddon::getAddonList('registerOS_footer', false, null, 'obj'); if ($user->guest) { $headerObjs = $this->filter($headerObjs, array('welcome', 'login'), false); } else { $headerObjs = $this->filter($headerObjs, array('login'), false); $bodyObjs = $this->filter($bodyObjs, array('juser', 'juser_e', 'mailing', 'jomsocial'), false); } $array['header'] = $headerObjs; $array['body'] = $bodyObjs; $array['footer'] = $footerObjs; $formItems = array(); foreach ($array as $a) { foreach ($a as $obj) { if (!empty($obj->addon_name)) { $formItems[] = array('xtype' => $obj->name); } } } $output .= "var getFormItems = function() {return " . oseJson::encode($formItems) . "};"; $output .= "\r\n"; } elseif ($type == 'member') { $user = JFactory::getUser(); $member = oseRegistry::call('member'); $view = $member->getInstance('PanelView'); $member->instance($user->id); $result = $member->getMemberPanelView('Member', 'member_user'); $columns = array(); $columns[] = array('type' => 'user', 'title' => JText::_('MEMBER_USER_ACCOUNT')); if (oseObject::getValue($result, 'tpl', false)) { switch ($result['tpl']) { case ('master'): case ('expired'): $columns[] = array('type' => 'billing', 'title' => JText::_('BILLING_INFORMATION')); ; $columns[] = array('type' => 'msc', 'title' => JText::_('MY_MEMBERSHIP')); ; break; default: $columns[] = 'billing'; break; } } $output .= "var getMemTypes = function() {return " . oseJson::encode($columns) . "};"; $output .= "\r\n"; foreach ($columns as $column) { $result = $member->getMemberPanelView('Member', 'member_' . $column['type']); $array[$column['type']] = array_values($result['addons']); } } $output .= "var getAddons = function() {return " . oseJson::encode($array) . "};"; return $output; }