/** * Smarty {sendmusic} function plugin * * Type: function<br> * Name: sendmusic<br> * Purpose: "送歌"按钮, 连同脚本过程及对话框 * * @author XU Jian <*****@*****.**> * @param array * @param Smarty * */ function smarty_function_sendmusic($params, &$smarty) { global $current_user_id; $number = $params['number']; if (!isset($number)) { $smarty->trigger_error('Smarty plugin confirm error: parameter "number" expected.'); } $title = $params['title']; if (!isset($title)) { $title = '(未知)'; } $artist = $params['artist']; if (!isset($artist)) { $artist = '(未知)'; } $method = $params['method']; if (!isset($method) || $method == '') { $method = 'light'; } //送歌的link文字 $text = isset($params['text']) ? $params['text'] : ''; //送歌的css class $cssclass = isset($params['class']) ? $params['class'] : ''; $oncomplete = $params['oncomplete']; if (!isset($oncomplete) || $oncomplete == '') { $oncomplete = 'void(0);'; } $html = Template::RequireJsCode('<link href="' . Asset::GetAssetUrl('/css/components/matchbox.css') . '" rel="stylesheet" type="text/css" />'); $html .= "<a title=\"送歌\" href=\"javascript:void(0);\" onclick=\"__openSendMusicDialog('{$number}', '{$title}', '{$artist}')\" class=\"{$cssclass}\">{$text}</a>"; $script = <<<EOF <script type="text/javascript"> function __openSendMusicDialog(number, title, artist){ \t\$('#sendmusic-dialog').dialog({title: '送歌'}); \t\$('#jquery-interactive-box form input[name="music_id"]').val(number); \t\$('#jquery-interactive-box .song-title').text(title); \t\$('#jquery-interactive-box .song-artist').text(artist); \t\$('#jquery-interactive-box .matchbox').matchbox({name: 'friend_id', userid: {$current_user_id}}); \t\$('#jquery-interactive-box form input.default').unbind('click'); \t\$('#jquery-interactive-box form').ajaxForm({ \t\tbefroeSumit: function(){ \t\t\tif(!\$('#jquery-interactive-box form input[name="friend_id"]').val()){ \t\t\t\talert('请选择朋友'); \t\t\t\treturn false \t\t\t} \t\t}, \t\tsuccess: function(r){ \t\t\tif(r.substr(0,1)=='0'){ \t\t\t\t\$('#jquery-interactive-box').hide(); \t\t\t\t\$.alert('送出了一首歌'); \t\t\t}else{ \t\t\t\talert(r.substr(2)); \t\t\t\t\$(this).attr('disabled', false); \t\t\t} \t\t} \t}); } </script> EOF; $script = Template::RequireJsCode($script); Template::ScriptHolder('', $script); $html_dialog = '<div id="sendmusic-dialog" style="display:none;">'; $html_dialog .= Template::Render('section/music_send_user.tpl'); $html_dialog .= '</div>'; $html_dialog = Template::RequireJsCode($html_dialog); Template::ScriptHolder('', $html_dialog); $script = Template::RequireJs('/scripts/jquery.matchbox.js'); $script .= Template::RequireJs('/scripts/jquery.peoplepicker.js'); Template::ScriptHolder('', $script); return $html; }
/** * Smarty {privacee} function plugin * * Type: function<br> * Name: privacee<br> * Purpose: * @link * @author 许健 (xujianmac@gmail.com) * @param array * @param Smarty * */ function smarty_function_privacee($params, &$smarty) { $link = $params['link']; if (!isset($link)) { $smarty->trigger_error('Smarty plugin privacee error: parameter "link" expected.'); } $origin = $params['origin']; if (!isset($origin)) { $origin = 'null'; } $oncomplete = $params['oncomplete']; if (!isset($oncomplete) || $oncomplete == '') { $oncomplete = 'function(){ return;}'; } else { if (strchr($oncomplete, '(') || strchr($oncomplete, 'return')) { $oncomplete = 'function(){' . $oncomplete . '}'; } } $onengage = $params['onengage']; if (strchr($onengage, '(') || strchr($onengage, 'return')) { $onengage = 'function(){' . $onengage . '}'; } $ondismiss = $params['ondismiss']; if (strchr($ondismiss, '(') || strchr($ondismiss, 'return')) { $ondismiss = 'function(){' . $ondismiss . '}'; } //var_dump($origin); $onload = $params['onload']; $onabort = $params['onabort']; $onerror = $params['onerror']; $origin = explode(';', $origin); //var_dump($origin); $html = '<link href="' . Asset::GetAssetUrl('/css/components/privacy.css') . '" rel="stylesheet" type="text/css" />'; $html .= "\n"; Template::Assign('oringin', $origin); Template::Assign('oringin_type', $origin[0]); Template::Assign('oringin_data', $origin[1]); $html .= Template::Render('section/privacy_setting.tpl'); $html = Template::RequireJsCode($html); Template::ScriptHolder('', $html); $script = Template::RequireJs('/lib/jquery/jquery.form.js'); $script .= "\n"; $script .= <<<EOF <script type="text/javascript"> EOF; if (isset($onengage)) { $script .= "\n__privacee__onengage = {$onengage};"; } if (isset($ondismiss)) { $script .= "\n__privacee__ondismiss = {$ondismiss};"; } $script .= <<<EOF \$('{$link}').click(function(){ \t\$(this).blur(); \tvar p = \$(this).position(); \$('#privacy-spring').show().css('left', p.left + 44).css('top', p.top - 3); __privacee__onengage.call(); \t__privacee__oncomplete = {$oncomplete}; \twindow.setTimeout(function(){ \t\t\$(window).resize(function(){ \t\t\t\$('#privacy-spring').hide(); \t\t}); \t}, 500); \treturn false; }); </script> EOF; Template::ScriptHolder('', $script); return ''; }