/**
 * 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;
}
Example #2
0
/**
 * 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 '';
}