',$id,$default); printf('',$name,'account',$val); printf('
',$id); printf('',$name,$id,$module); } else { printf('
%s
',$module,$default,$val); printf('',$id,$name,$default); } } /** * HTML Account Selector * * If passed a default ID (and it exists), that will be rendered, otherwise a javascript selection box is rendered. */ function osb_html_select_account($params,&$smarty) { if (! $params['name']) { printf('MISSING name:%s',__METHOD__); return; } $module = isset($params['module']) ? $params['module'] : 'account'; $default = isset($params['default']) ? $params['default'] : ''; $id = isset($params['id']) ? $params['id'] : sprintf('%s_id',$params['name']); $val = ''; if ($default) { $db = &DB(); $result = $db->Execute(sqlSelect($db,'account','first_name,last_name',array('id'=>$default))); if ($result->RecordCount() > 0) $val = sprintf('%s %s',$result->fields['first_name'],$result->fields['last_name']); } return osb_html_select($val,$id,$params['name'],$default,$module); } /** * HTML Affiliate Selector * * If passed a default ID (and it exists), that will be rendered, otherwise a javascript selection box is rendered. * @todo need to create autoselect(); */ function osb_html_select_affiliate($params,&$smarty) { if (! $params['name']) { printf('MISSING name:%s',__METHOD__); return; } $module = isset($params['module']) ? $params['module'] : 'affiliate'; $default = isset($params['default']) ? $params['default'] : ''; $id = isset($params['id']) ? $params['id'] : sprintf('%s_id',$params['name']); $val = ''; if ($default) { $db = &DB(); $sql = sprintf('SELECT DISTINCT {p}affiliate.id,{p}account.first_name,{p}account.last_name,{p}account.username FROM {p}account LEFT JOIN {p}affiliate ON {p}account.id={p}affiliate.account_id WHERE {p}affiliate.id=%s AND {p}affiliate.site_id=%s AND {p}account.site_id=%s',$db->qstr($default),DEFAULT_SITE,DEFAULT_SITE); $result = $db->Execute(str_replace('{p}',AGILE_DB_PREFIX,$sql)); if ($result->RecordCount() > 0) $val = sprintf('%s %s',$result->fields['first_name'],$result->fields['last_name']); } return osb_html_select($val,$id,$params['name'],$default,$module); } function osb_html_select_name($params,&$smarty) { if (! $params['name']) { printf('MISSING name:%s',__METHOD__); return; } $module = isset($params['module']) ? $params['module'] : ''; $table = isset($params['table']) ? $params['table'] : ''; $default = isset($params['default']) ? $params['default'] : ''; $id = isset($params['id']) ? $params['id'] : sprintf('%s_id',$params['name']); $val = ''; if ($default) { $db = &DB(); $result = $db->Execute($q=sqlSelect($db,$table,'name',array('id'=>$default))); if ($result && $result->RecordCount() > 0) $val = $result->fields['name']; } return osb_html_select($val,$id,$params['name'],$default,$module); } function osb_autoselect($params,&$smarty) { $module = isset($params['module']) ? $params['module'] : (isset($smarty->_tpl_vars['meth'][0]) ? $smarty->_tpl_vars['meth'][0] : ''); $field = isset($params['field']) ? $params['field'] : ''; $return = isset($params['return']) ? $params['return'] : ''; $default = isset($params['default']) ? $params['default'] : ''; $val = ''; if (! $module || ! $field || ! $return) { printf('MISSING module (%s),field (%s) OR return (%s):%s',$module,$field,$return,__METHOD__); return; } if ($default) { $db = &DB(); $result = $db->Execute($q=sqlSelect($db,$module,$return.',first_name,last_name',array($return=>$default))); if ($result && $result->RecordCount() == 1) $val = sprintf('%s %s',$result->fields['first_name'],$result->fields['last_name']); } printf('',$field,$field,$default); printf('',$field,$field,$val); printf('
',$field); echo ''."\n"; } /** * Get list of files from the filesystem, and present in a select list */ function osb_html_menu_files($params,&$smarty) { if (! $params['name'] || ! $params['path']) { printf('MISSING name OR path:%s',__METHOD__); return; } $id = isset($params['id']) ? $params['id'] : $params['name']; $ext = ''; switch ($params['path']) { case 'affiliate_plugin': $path = sprintf('%s/affiliate/',PATH_PLUGINS); break; case 'checkout_plugin': $path = sprintf('%s/checkout/',PATH_PLUGINS); break; case 'invoice_pdf': $path = sprintf('%s/invoice/PDF/',PATH_MODULES); $ext = '.inc.php'; $pre = 'pdf_invoice_'; break; case 'invoice_pagetype': $path = sprintf('%s%s/invoice/',PATH_THEMES,DEF_THEME_N); $ext = '.pdf'; $pre = 'invoice-'; break; case 'language': $path = sprintf('%s/core/',PATH_LANGUAGE); $ext = '_core.xml'; $cap=1; break; case 'product' : $path = sprintf('%s/product',PATH_PLUGINS); break; case 'product_cat' : $path = sprintf('%s%s/blocks/product_cat',PATH_THEMES,DEF_THEME_N); break; case 'provision_plugin': $path = sprintf('%s/provision/',PATH_PLUGINS); break; case 'static_template': $path = sprintf('%s/default/blocks/static_page/',PATH_THEMES); $ext = '_template.tpl'; $cap=1; break; case 'theme' : $path = PATH_THEMES; break; case 'whois_plugin': $path = sprintf('%s/whois/',PATH_PLUGINS); break; default: printf('Unkonwn path: %s',$params['path']); return; } $count = 0; $arr = array(); $dir = opendir($path); while ($file_name = readdir($dir)) { $display = true; if (! in_array($file_name,array('.','..'))) { if ($ext) { $cute = preg_replace("/{$ext}$/",'',$file_name); if (! preg_match("/{$ext}$/",$file_name)) $display = false; } if ($pre) { $cute = preg_replace("/^{$pre}/",'',$cute); if (! preg_match("/^{$pre}/",$file_name)) $display = false; } if ($display) { $value = str_replace('_',' ',str_replace('-',' ',$cute)); if ($cap==1) $value = ucfirst(strtolower($value)); elseif ($cap==2) $value = ucwords(strtolower($value)); elseif($cap) $value = strtoupper($value); $arr[$cute] = $value; } } } $return = sprintf(''; echo $return; } function osb_html_link($params,&$smarty) { $name = 'submit'; $module = 'CORE'; $_ignore['show'] = true; $_ignore['hide'] = true; $_ignore['name'] = true; # Get the values passed... $vals = ''; foreach ($params as $_key => $_val) if (empty($_ignore[$_key])) $vals .= sprintf(' %s="%s"',$_key,$_val); else $$_key = $_val; foreach ($params as $_key => $_val) $$_key = $_val; # Change state(s) (hide) $t = 0; if ($hide) { if (preg_match('/,/',$hide)) $hides = explode(',',$hide); else $hides = array($hide); foreach ($hides as $element) if (preg_match('/\|/',$element)) { $el = explode('|',$element); $action .= sprintf("new Effect.%s('%s',{duration: %s});",$el[2],$el[0],$el[1]); } else { $action .= sprintf("$('%s').style.display='none';",$element); } } # Change state(s) (show) if ($show) { if (preg_match('/,/',$show)) $shows = explode(',',$show); else $shows = array($show); foreach ($shows as $element) { if (preg_match('/\|/',$element)) { $el = explode('|',$element); $action .= sprintf("new Effect.%s('%s',{duration: %s});",$el[2],$el[0],$el[1]); } else { $action .= sprintf("$('%s').style.display='block';",$element); } } } # translate name global $C_translate; $trans = $C_translate->translate($name,$module); if (! empty($trans)) $name = $trans; if (empty($link)) $link = '#'; return sprintf('%s',$link,$vals,$action ? sprintf(' onclick="%s"',$action) : '',$name); } /** * Hides a div/span element without disabling the view */ function osb_style_hide($params,&$smarty) { echo 'style="display:none;"'; } /** * Displays & Populates an Plug In template * @todo change this to be dynmaic, ie: defined by the instalation of a module and calling a method. */ function osb_plugin($params,&$smarty) { # Some Validation if ((! isset($params['type']) || ! trim($params['type'])) || (! isset($params['name']) || ! trim($params['name']))) return; if (! isset($params['name_prefix'])) $params['name_prefix'] = ''; if (! isset($params['data']) && $params['data']) $smarty->assign('plugin',unserialize($params['data'])); # Pass any other vars to smarty foreach ($params as $var=>$val) $smarty->assign($var,$val); # Get full template file-path: switch ($params['type']) { case 'affiliate': $meth = 'affiliate:plugin'; break; case 'checkout': $meth = 'checkout_plugin:plugin'; break; case 'import': $meth = ''; // @todo break; case 'product': $meth = 'product_plugin:plugin'; break; case 'provision': $meth = 'host_provision_plugin:plugin'; break; case 'registrar': $meth = 'host_registrar_plugin:plugin'; break; case 'whois': $meth = 'host_whois_plugin:plugin'; break; case 'voip_did': $meth = 'voip_did_plugin:config'; break; } $_tpl = sprintf('%s_%s%s',$meth,$params['name_prefix'],$params['name']); # Check if file exists: $_template_full = sprintf('%s%s/blocks/%s.tpl',PATH_THEMES,DEF_THEME_N,str_replace(':','/',$_tpl)); if (! is_file($_template_full)) { $_template_full = sprintf('%s%s/blocks/%s.tpl',PATH_THEMES,'default',str_replace(':','/',$_tpl)); if (! is_file($_template_full)) { if ($debug) printf('Error loading plugin template: %s',$_template_full); return; } } // Load file $smarty->display(sprintf('file:%s',$_template_full)); } /** * Translate a table title */ function osb_tt($params,&$smarty) { require_once(PATH_CORE.'translate.inc.php'); $C_translate = new CORE_translate; echo $C_translate->tt($params,$smarty); } /** * Translate a table field */ function osb_tf($params,&$smarty) { require_once(PATH_CORE.'translate.inc.php'); $C_translate = new CORE_translate; echo $C_translate->tf($params,$smarty); } function osb_html_menu_product_host($params,&$smarty) { $id = $params['id']; $default = unserialize($params['default']); if (empty($id)) $id = $params['name']; $db = &DB(); $result = $db->Execute(sqlSelect($db,'product','id,sku',sprintf('host=1 AND active=1 AND price_type=1 AND id!=%s',$params['exclude']))); if ($result && $result->RecordCount()) { printf(''; } } function osb_html_menu_product_subscription($params,&$smarty) { $id = $params['id']; $default = unserialize($params['default']); if (empty($id)) $id = $params['name']; $db = &DB(); $result = $db->Execute(sqlSelect($db,'product','id,sku',sprintf('(host=0 OR host IS NULL) AND active=1 AND price_type=1 AND id!=%s',$params['exclude']),'sku')); if ($result && $result->RecordCount()) { printf(''; } } ?>