Exemple #1
0
function mx_mnfandir($page, $option, $action)
{
    global $mxdb, $mxuser;
    $mode = array('alpha' => _('Alphabetical'), 'genres' => _('By Genres'), 'subs' => _('Subscribers'), 'super' => _('SuperFans'), 'random' => _('Random Selection'));
    $selsub = '';
    if ($action) {
        if (preg_match('%([^:]+):?(.*)%', $action, $modes)) {
        }
        $selmode = $modes[1];
        $selsub = $modes[2];
    } else {
        $selmode = 'subs';
    }
    echo '<div class="directory">';
    echo '<table class="dirtabs"><tr>';
    foreach ($mode as $ord => $ordname) {
        $dis = false;
        if (substr($ord, 0, 1) == '-') {
            $dis = true;
        }
        $class = $ord == $selmode ? 'dirtabsel' : (substr($ord, 0, 1) == '-' ? 'dirtabdis' : 'dirtab');
        echo '<td class="' . $class . '">';
        if (!$dis) {
            echo '<a href="' . mx_actionurl($page, $option, $ord) . '">' . $ordname . '</a>';
        } else {
            echo $ordname;
        }
        echo '</td>';
    }
    //echo '<td class="dirtablast"></td>';
    echo '</tr>';
    echo '</table>';
    $fanfilter = '(a.acctype=' . MXACCOUNTFAN . ' OR 0 < (SELECT count(b.id) FROM mx_subscriptions b WHERE b.fanid=a.id' . ' AND b.subcat=' . MXARTSUB . ' AND b.subtype!=' . MXSUBLIKE . ' AND b.status!=' . MXEXPIREDSUB . ' AND b.status!=' . MXENDEDSUB . ') )';
    switch ($selmode) {
        case 'random':
            // pure fans or subscribers
            $filter = $fanfilter;
            // pure fan or subscriber
            break;
        case 'subs':
            // subs only
            $filter = '0 < (SELECT count(b.id) FROM mx_subscriptions b WHERE b.fanid=a.id' . ' AND b.subcat=' . MXARTSUB . ' AND b.subtype!=' . MXSUBLIKE . ' AND b.status!=' . MXEXPIREDSUB . ' AND b.status!=' . MXENDEDSUB . ')';
            break;
        case 'super':
            // 5 subs mini
            $filter = '4 < (SELECT count(b.id) FROM mx_subscriptions b WHERE b.fanid=a.id' . ' AND b.subcat=' . MXARTSUB . ' AND b.subtype!=' . MXSUBLIKE . ' AND b.status!=' . MXEXPIREDSUB . ' AND b.status!=' . MXENDEDSUB . ')';
            break;
        case 'genres':
            $genres = $mxdb->listgenres();
            $cats = array();
            $subgenres = array();
            foreach ($genres as $genre) {
                if (!$genre->cat) {
                    $cats[$genre->hash] = $genre->id;
                    $subgenres[$genre->id] = array();
                }
            }
            foreach ($genres as $genre) {
                if ($genre->cat) {
                    $subgenres[$cats[$genre->cat]][] = $genre->id;
                    $catgenre[$genre->id] = $cats[$genre->cat];
                }
            }
            /*
            $str='<script language="javascript">'.CRLF;
            $str.='var cats=new Array();'.CRLF;
            $str.='var subcats=new Array();'.CRLF;
            $str.='var subcatsndx=new Array();'.CRLF;
            foreach($cats as $cat) {
            	$n=1;
            	$str.='cats['.$cat.']=\''.$genres[$cat]->genre.'\';'.CRLF;
            	$str.='subcats['.$cat.']=new Array();'.CRLF;
            	$str.='subcatsndx['.$cat.']=new Array();'.CRLF;
            	$str.='subcats['.$cat.'][0]=\''._('Any').'\';'.CRLF;
            	$str.='subcatsndx['.$cat.'][0]='.$cat.';'.CRLF;
            	foreach($subgenres[$cat] as $subcat) {
            		$str.='subcats['.$cat.']['.$n.']=\''.$genres[$subcat]->genre.'\';'.CRLF;
            		$str.='subcatsndx['.$cat.']['.$n++.']=\''.$subcat.'\';'.CRLF;
            	}
            }
            $str.='</script>'.CRLF;
            echo $str;
            */
            if ($selsub && $genres[$selsub]->cat) {
                $cat = $catgenre[$selsub];
            } else {
                $cat = $selsub;
            }
            $subcat = $selsub;
            echo '<table class="dirgen"><tr>';
            echo '<td class="dirgencat"><table class="dirgencat">';
            foreach ($cats as $catid) {
                $class = $catid == $cat ? 'dirgensel' : 'dirgentab';
                echo '<tr><td class="' . $class . '"><a href="' . mx_actionurl($page, $option, $selmode . ':' . $catid) . '">' . $genres[$catid]->genre . '</a></td><td class="dirarrow">' . ($catid == $cat ? '&rarr;' : '') . '</td></tr>';
            }
            echo '</table></td>';
            echo '<td class="dirgenre"><div class="dirgenre"><table id="dirgenre" class="dirgenre">';
            if ($selsub) {
                echo _('<div class="genrehelp">&darr; Select a subcategory below [optional]</div>');
                $col = 0;
                foreach ($subgenres[$cat] as $subcatid) {
                    if (!$col) {
                        echo '<tr>';
                    }
                    $class = $subcatid == $selsub ? 'dirgensel' : 'dirgentab';
                    echo '<td class="' . $class . '"><a href="' . mx_actionurl($page, $option, $selmode . ':' . $subcatid) . '">' . $genres[$subcatid]->genre . '</a></td>';
                    $col = ++$col % 3;
                    if (!$col) {
                        echo '</tr>';
                    }
                }
                if ($col) {
                    echo '<td colspan="' . (3 - $col) . '"></td></tr>';
                }
            } else {
                echo '<tr><td><div class="genrehelp">' . _('&larr; Select a genre on the left<br/>to show subcategories') . '</div></td></tr>';
            }
            echo '</table></div></td>';
            echo '</tr></table>';
            if ($cat && $cat == $subcat) {
                // main cat
                $filter = array('mx_acc2tast c', 'c.genre=' . $selsub . ' AND a.id=c.userid AND ' . $fanfilter, sprintf(_('Listed in %s'), $genres[$cat]->genre));
                // sub cats
                $filter2 = array('mx_acc2tast c, mx_genres d', 'd.cat=\'' . $genres[$cat]->hash . '\' AND c.genre=d.id AND a.id=c.userid' . ' AND ' . $fanfilter, sprintf(_('Listed in subcategories of %s'), $genres[$cat]->genre));
            } else {
                if ($cat) {
                    // main subcat
                    $filter = array('mx_acc2tast c', 'c.genre=' . $selsub . ' AND a.id=c.userid AND ' . $fanfilter, sprintf(_('Listed in %s'), $genres[$selsub]->genre));
                    // top cat
                    $filter2 = array('mx_acc2tast c', 'c.genre=' . $cat . ' AND a.id=c.userid AND ' . $fanfilter, sprintf(_('Listed in %s'), $genres[$cat]->genre));
                    $filter3 = array('mx_acc2tast c, mx_genres d', '(d.cat=\'' . $genres[$cat]->hash . '\' AND d.id!=' . $selsub . ') AND c.genre=d.id AND a.id=c.userid AND ' . $fanfilter, sprintf(_('Listed in other subcategories of %s'), $genres[$cat]->genre));
                }
            }
            break;
        case 'alpha':
        default:
            $ndx = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_";
            if (!$selsub) {
                $selsub = substr($ndx, rand(0, strlen($ndx) - 1), 1);
            }
            echo '<table class="diralpha"><tr>';
            for ($i = 0; $i < strlen($ndx); $i++) {
                $letter = substr($ndx, $i, 1);
                $class = $letter == $selsub ? 'diralphasel' : 'diralphatab';
                echo '<td class="' . $class . '"><a href="' . mx_actionurl($page, $option, $selmode . ':' . $letter) . '">' . ($letter == '_' ? _('Others') : $letter) . '</a></td>';
            }
            //echo '<td class="diralphalast"></td>';
            echo '</tr>';
            echo '</table>';
            if ($selsub == '_') {
                $selsub = '[^a-zA-Z0-9]';
            }
            $filter = $fanfilter . ' AND fullname RLIKE \'^' . $selsub . '.*\'';
            // 'OR lastname RLIKE \'^'.$selsub.'.*\'';
            break;
    }
    if ($filter) {
        $afilter[] = $filter;
    }
    if ($filter2) {
        $afilter[] = $filter2;
    }
    if ($filter3) {
        $afilter[] = $filter3;
    }
    foreach ($afilter as $flt) {
        if (is_array($flt)) {
            echo '<h5>' . $flt[2] . '</h5>';
        }
        $fansqr = $mxdb->fanlist($flt);
        echo '<table class="fanlist"><tr>';
        $c = 0;
        if ($fansqr['count'] == 30) {
            echo '<td colspan="6">' . _('(30 fans chosen at random...)') . '</td></tr><tr>';
        }
        for ($i = 0; $i < $fansqr['count']; $i++) {
            $fan = $mxdb->fanlist(null, $fansqr['mxq']);
            if ($fan) {
                echo '<td class="friend">';
                // onclick="window.location=\''.mx_actionurl('fans','fanprof',$fan->id).'\';">';
                echo '<a href="' . mx_actionurl('fans', 'fanprof', $fan->id) . '" title="' . mx_getname($fan) . ' - ' . _('See Page') . '" class="pictooltip">';
                echo '<img tag="' . $fan->id . '" class="dirpic" src="' . mx_fanpic($fan->id, 'square', $fan->gender) . '">';
                echo '</a>';
                echo '<br/>' . mx_getname($fan);
                echo '</td>';
                $c = ++$c % 6;
                if (!$c) {
                    echo '</tr><tr>';
                }
            }
        }
        if (!$i) {
            echo '<td colspan="6">' . _('No fan listed here.') . '</td>';
        }
        echo '</tr></table>';
    }
    echo '</div>';
}
function mx_sharetools($userid, $artist = true)
{
    global $s3, $mxdb;
    $user = mx_getuserpublicinfo($userid);
    mx_checkvalues($user);
    //die(print_r($user,true));
    if ($artist) {
        $name = $user->artistname;
        $page = 'artists';
        $opt = 'artprof';
    } else {
        $name = mx_getname($user);
        $page = 'fans';
        $opt = 'fanprof';
    }
    if (!$name) {
        return _('Available Soon');
    }
    //die(print_r($user,true));
    //if (!is_admin()) return _('Available Soon');
    // big badges
    $fmt = array('large' => '150px wide', 'small' => '100px wide', 'square' => '80px x 96px');
    // smaller on-musxpand badges
    $badgesize = array(_('Small') => '-small', _('Large') => '');
    $badgecolor = array(_('White') => '', _('Black') => '-black');
    if (!$user->badges) {
        // QR codes generation
        /*
        $xcard=new XMLWriter();
        $xcard->openMemory();
        $xcard->startDocument('1.0','UTF-8');
        $xcard->startElementNs(null,'vcards','urn:ietf:params:xml:ns:vcard-4.0');
        $xcard->startElement('vcard');
        
        $xcard->startElement('n'); // name
        $xcard->startElement('surname'); // family name
        $xcard->text($user->lastname);
        $xcard->endElement(); // surname
        $xcard->startElement('given'); // first name
        $xcard->text($user->firstname);
        $xcard->endElement(); // given
        $xcard->endElement(); // n
        
        $xcard->startElement('fn'); // fullname
        $xcard->startElement('text'); // text
        $xcard->text($name);
        $xcard->endElement(); // text
        $xcard->endElement(); // fn
        
        $xcard->startElement('org'); // org
        $xcard->startElement('text'); // text
        $xcard->text('MusXpand');
        $xcard->endElement(); // text
        $xcard->endElement(); // org
        
        $xcard->startElement('title'); // shortbio
        $xcard->startElement('text'); // text
        $xcard->text($user->about);
        $xcard->endElement(); // text
        $xcard->endElement(); // shortbio
        
        $xcard->startElement('photo'); // photo
        $xcard->startElement('uri'); // URI
        $xcard->text(mx_fanpic($user->id,'small',$user->gender,$isartist));
        $xcard->endElement(); // URI
        $xcard->endElement(); // photo
        
        $xcard->startElement('adr'); // address
        $xcard->startElement('parameters'); // parameters
        $xcard->startElement('type'); // type
        $xcard->text($isartist?'work':'home');
        $xcard->endElement(); // type
        $xcard->startElement('label'); // label
        $location='';
        if ($user->city) $location.=$user->city;
        if ($user->state) $location.=($location?', ':'').$user->state;
        if ($user->country) $location.=($location?'\n':'').mx_getcountryname($user->country);
        $xcard->text($location);
        $xcard->endElement(); // label
        $xcard->startElement('locality'); // locality
        $xcard->text($user->city);
        $xcard->endElement(); // locality
        $xcard->startElement('region'); // region
        $xcard->text($user->state);
        $xcard->endElement(); // region
        $xcard->startElement('country'); // country
        $xcard->text(mx_getcountryname($user->country));
        $xcard->endElement(); // country
        $xcard->endElement(); // parameters
        $xcard->endElement(); // address
        
        $xcard->startElement('email'); // country
        $xcard->startElement('text'); // text
        $xcard->text($user->email);
        $xcard->endElement(); // text
        $xcard->endElement(); // email
        
        $xcard->startElement('rev'); // revision
        $xcard->startElement('timestamp'); // date
        $xcard->text(gmdate('Ymd\THis\Z'));
        $xcard->endElement(); // date
        $xcard->endElement(); // rev
        
        $xcard->endElement(); // vcard
        $xcard->endElement(); // vcards
        
        $xvcard=$xcard->flush();
        */
        $saveart = $artist;
        foreach (array(true, false) as $artist) {
            $vcard = 'BEGIN:VCARD' . CRLF . 'VERSION:4.0' . CRLF;
            //$vcard.='SOURCE:'.mx_option('siteurl').'/vcf.php?a='.$user->id.CRLF;
            $vcard .= 'KIND:individual' . CRLF;
            //$vcard.='XML:'.$xvcard.CRLF;
            if ($artist) {
                $vcard .= 'FN:' . $name . CRLF;
                $vcard .= 'N:' . $user->lastname . ';' . $user->firstname . CRLF;
            } else {
                $vcard .= 'FN:' . $user->fullname . CRLF;
                $vcard .= 'N:' . $user->lastname . ';' . $user->firstname . CRLF;
            }
            $vcard .= 'PHOTO:' . mx_fanpic($user->id, 'small', $user->gender, $artist) . CRLF;
            if ($user->gender != MXNOSEX) {
                $vcard .= 'GENDER:' . ($user->gender == MXSEXMALE ? 'M' : 'F') . CRLF;
            }
            if ($user->birthdate) {
                $vcard .= 'BDAY:' . str_replace('-', '', $user->birthdate) . CRLF;
            }
            $vcard .= 'ADR;TYPE=' . ($artist ? 'work' : 'home') . ':;;;' . $user->city . ';' . $user->state . ';;' . mx_getcountryname($user->country) . CRLF;
            $vcard .= 'EMAIL:' . $user->email . CRLF;
            if ($user->timezone) {
                $vcard .= 'TZ:' . $user->timezone . CRLF;
            }
            if ($user->about) {
                $vcard .= 'TITLE:"' . $user->shortbio . '"' . CRLF;
            }
            $vcard .= 'LOGO:' . mx_option('logoURL') . CRLF;
            //$vcard.='ORG:'.CRLF;
            $vcard .= 'UID:urn:uuid:' . $user->hashdir . CRLF;
            $vcard .= 'URL:' . mx_actionurl($artist ? 'artists' : 'fans', $artist ? 'artprof' : 'fanprof', $user->id) . CRLF;
            $vcard .= 'REV:' . gmdate('Ymd\\THis\\Z') . CRLF;
            $vcard .= 'END:VCARD' . CRLF;
            QRcode::png($vcard, mx_option('usersdir') . '/tmp/' . $user->hashdir . '_QR' . ($artist ? 'a' : 'f') . '.png', 'L', 2, 4);
            $keyname = 'users/' . $user->hashdir . '/pics/qr_' . ($artist ? 'a' : 'f') . '.png';
            $res = $s3->create_object(MXS3BUCKET, $keyname, array('fileUpload' => mx_option('usersdir') . '/tmp/' . $user->hashdir . '_QR' . ($artist ? 'a' : 'f') . '.png', 'acl' => AmazonS3::ACL_PUBLIC));
            //@unlink(mx_option('usersdir').'/tmp/'.$user->hashdir.'_'.$value.'.jpg');
            file_put_contents(mx_option('usersdir') . '/tmp/' . $user->hashdir . '_vCard' . ($artist ? 'a' : 'f') . '.vcf', $vcard);
            $keyname = 'users/' . $user->hashdir . '/pics/vCard_' . ($artist ? 'a' : 'f') . '.vcf';
            $res = $s3->create_object(MXS3BUCKET, $keyname, array('fileUpload' => mx_option('usersdir') . '/tmp/' . $user->hashdir . '_vCard' . ($artist ? 'a' : 'f') . '.vcf', 'acl' => AmazonS3::ACL_PUBLIC));
            @unlink(mx_option('usersdir') . '/tmp/' . $user->hashdir . '_vCard' . ($artist ? 'a' : 'f') . '.vcf');
        }
        $artist = $saveart;
    }
    if (!$user->badges) {
        // badges generation
        ini_set('allow_url_fopen', 1);
        $keyname = 'users/' . $user->hashdir . '/pics/me_large.jpg';
        $picurl = mx_secureurl(gets3url($keyname, '2 minutes'));
        // load pic
        $pic = imagecreatefromjpeg($picurl);
        if (!$pic) {
            $pic = imagecreatefrompng(mx_fanpic($user->id, 'large', $user->gender, false));
        }
        $w = imagesx($pic);
        $h = imagesy($pic);
        $nhl = round($h * 150 / $w);
        $nhs = round($h * 100 / $w);
        $mwh = min($w, $h);
        $imlarge = imagecreatetruecolor(150, $nhl + 16);
        $imsmall = imagecreatetruecolor(100, $nhs + 16);
        $imsquare = imagecreatetruecolor(80, 80 + 16);
        $fgl = imagecolorallocate($imlarge, 255, 255, 255);
        $fgs = imagecolorallocate($imsmall, 255, 255, 255);
        $fgq = imagecolorallocate($imsquare, 255, 255, 255);
        $bgl = imagecolorallocate($imlarge, 0xff, 0xff, 0x99);
        $bgs = imagecolorallocate($imsmall, 0xff, 0xff, 0x99);
        $bgq = imagecolorallocate($imsquare, 0xff, 0xff, 0x99);
        //imagefill($imlarge,0,0,$fcl);
        //imagefill($imsmall,0,0,$fcs);
        //imagefill($imsquare,0,0,$fcq);
        //imagefilledrectangle($imlarge,1,$nhl,148,$nhl+14,$bgl);
        //imagefilledrectangle($imsmall,1,$nhs,98,$nhs+14,$bgs);
        //imagefilledrectangle($imsquare,1,80,78,80+14,$bgq);
        imageline($imlarge, 0, $nhl - 1, 150 - 1, $nhl - 1, $fgl);
        imageline($imsmall, 0, $nhs - 1, 100 - 1, $nhs - 1, $fgs);
        imageline($imsquare, 0, 80 - 1, 80 - 1, 80 - 1, $fgq);
        imageantialias($imlarge, true);
        imageantialias($imsmall, true);
        imageantialias($imsquare, true);
        imagecopyresampled($imlarge, $pic, 1, 1, 0, 0, 150 - 2, $nhl - 2, $w, $h);
        imagecopyresampled($imsmall, $pic, 1, 1, 0, 0, 100 - 2, $nhs - 2, $w, $h);
        imagecopyresampled($imsquare, $pic, 1, 1, $mwh == $h ? ($w - $mwh) / 2 : 0, $mwh == $w ? ($h - $mwh) / 2 : 0, 80 - 2, 80 - 2, $mwh, $mwh);
        // add artistname
        $font = mx_option('rootdir') . '/fonts/HoboStd.otf';
        $textl = $texts = $textq = strtoupper($name);
        while (($factl = 16 / max(array(16, strlen($textl)))) < 0.6) {
            $textl = substr($textl, 0, strrpos($textl, ' ')) . '...';
        }
        while (($facts = 12 / max(array(12, strlen($texts)))) < 0.6) {
            $texts = substr($texts, 0, strrpos($texts, ' ')) . '...';
        }
        while (($factq = 9 / max(array(9, strlen($textq)))) < 0.6) {
            $textq = substr($textq, 0, strrpos($textq, ' ')) . '...';
        }
        $szl = 9.4 * $factl;
        $szs = 9.4 * $facts;
        $szq = 9.4 * $factq;
        $txtl = imagettfbbox($szl, 0, $font, $textl);
        $txts = imagettfbbox($szs, 0, $font, $texts);
        $txtq = imagettfbbox($szq, 0, $font, $textq);
        imagettftext($imlarge, $szl, 0, (150 - $txtl[2] - $txtl[0]) / 2 - 1, $nhl + (16 - $txtl[1] - $txtl[7]) / 2, $fgl, $font, $textl);
        imagettftext($imsmall, $szs, 0, (100 - $txts[2] - $txts[0]) / 2 - 1, $nhs + (16 - $txts[1] - $txts[7]) / 2, $fgs, $font, $texts);
        imagettftext($imsquare, $szq, 0, (80 - $txtq[2] - $txtq[0]) / 2 - 1, 80 + (16 - $txtq[1] - $txtq[7]) / 2, $fgq, $font, $textq);
        /*
        $logo=imagecreatefrompng(mx_option('rootdir').'/images/general/musxpand-logo.png');
        $imlogo=imagerotate($logo,90,0);
        $lw=imagesx($imlogo);
        $lh=imagesy($imlogo);
        imagecopyresampled($imlarge,$imlogo,129,0,0,0,$lw/2,$lh/2,$lw,$lh);
        */
        imagejpeg($imlarge, mx_option('usersdir') . '/tmp/' . $user->hashdir . '_large.jpg');
        imagejpeg($imsquare, mx_option('usersdir') . '/tmp/' . $user->hashdir . '_square.jpg');
        imagejpeg($imsmall, mx_option('usersdir') . '/tmp/' . $user->hashdir . '_small.jpg');
        foreach ($fmt as $value => $desc) {
            $keyname = 'users/' . $user->hashdir . '/pics/badge_' . $value . '.jpg';
            $res = $s3->create_object(MXS3BUCKET, $keyname, array('fileUpload' => mx_option('usersdir') . '/tmp/' . $user->hashdir . '_' . $value . '.jpg', 'acl' => AmazonS3::ACL_PUBLIC));
            @unlink(mx_option('usersdir') . '/tmp/' . $user->hashdir . '_' . $value . '.jpg');
        }
        // mini-badges
        $keyname = 'users/' . $user->hashdir . '/pics/me_square.jpg';
        $picurl = mx_secureurl(gets3url($keyname, '2 minutes'));
        // load pic
        $pic = imagecreatefromjpeg($picurl);
        if (!$pic) {
            $pic = imagecreatefrompng(mx_fanpic($user->id, 'large', $user->gender, false));
        }
        $pw = imagesx($pic);
        $ph = imagesy($pic);
        $badgepref = 'badge-on-musxpand';
        foreach ($badgesize as $sname => $ssuf) {
            switch ($ssuf) {
                case '':
                    $offx = 9;
                    $offy = 1;
                    break;
                case '-small':
                default:
                    $offx = -2;
                    $offy = 1;
                    break;
            }
            foreach ($badgecolor as $cname => $csuf) {
                $badgemask = imagecreatefrompng(mx_option('rootdir') . '/images/badges/' . $badgepref . $ssuf . $csuf . '.png');
                $bw = imagesx($badgemask);
                $bh = imagesy($badgemask);
                $badge = imagecreatetruecolor($bw, $bh);
                //imagepalettecopy($badge, $badgemask);
                $transp = imagecolorallocatealpha($badge, 0, 0, 0, 127);
                imagefill($badge, 0, 0, $transp);
                imageantialias($badge, true);
                //imagealphablending($badge,false);
                //imagealphablending($badgemask,false);
                imagecopyresampled($badge, $pic, floor(($bh - 72) / 2) + $offx, floor(($bh - 72) / 2) + $offy, 0, 0, 72, 72, $pw, $ph);
                imagecopyresampled($badge, $badgemask, 0, 0, 0, 0, $bw, $bh, $bw, $bh);
                imagesavealpha($badge, true);
                $tmpfile = mx_option('usersdir') . '/tmp/' . $user->hashdir . '_mini' . $ssuf . $csuf . '.png';
                imagepng($badge, $tmpfile);
                $keyname = 'users/' . $user->hashdir . '/pics/minibadge' . $ssuf . $csuf . '.png';
                $res = $s3->create_object(MXS3BUCKET, $keyname, array('fileUpload' => $tmpfile, 'acl' => AmazonS3::ACL_PUBLIC));
                @unlink($tmpfile);
            }
        }
        ini_set('allow_url_fopen', 0);
        $user->badges = 1;
        $mxdb->updateuser($user, 'badges');
    }
    $str = '<div class="badges"><table><tr>';
    foreach ($fmt as $value => $desc) {
        $str .= '<th>' . sprintf(_('Badge %s'), $desc) . '</th>';
    }
    $str .= '</tr><tr>';
    foreach ($fmt as $value => $desc) {
        $keyname = 'users/' . $user->hashdir . '/pics/badge_' . $value . '.jpg';
        $str .= '<td><img src="' . mx_secureurl(gets3url($keyname)) . '" /></td>';
    }
    $str .= '</tr><tr>';
    foreach ($fmt as $value => $desc) {
        $str .= '<th>' . _('Code') . '</th>';
    }
    $str .= '</tr><tr>';
    foreach ($fmt as $value => $desc) {
        $keyname = 'users/' . $user->hashdir . '/pics/badge_' . $value . '.jpg';
        $str .= '<td>';
        $str .= '<textarea id="b_' . $value . '" onmouseover="this.select(); setcopybtn(\'bt_' . $value . '\',\'b_' . $value . '\');">';
        $str .= '<a href="' . mx_actionurl($page, $opt, $user->id) . '" alt="' . $name . '">' . '<img src="' . mx_secureurl(gets3url($keyname)) . '" />' . '</a>';
        $str .= '</textarea><br/>';
        $str .= '<a style="display:none;" href="#" class="toclipbtn" id="bt_' . $value . '">' . _('Copy') . '</a>';
        $str .= '</td>';
    }
    $str .= '</tr></table>';
    //$str.='<center><a href="'.mx_actionurl('artists','artprof',$user->id).'">'.$user->artistname.'</a></center>';
    $str .= '</div>';
    // smaller on-musxpand badges
    $str .= '<div class="badges"><table>';
    $i = 0;
    foreach ($badgesize as $sname => $ssuf) {
        $i++;
        $j = 0;
        foreach ($badgecolor as $cname => $csuf) {
            $j++;
            $value = $i . '_' . $j;
            $str .= '<tr><th>' . sprintf(_('MX Badge, %s, %s'), $sname, $cname) . '</th>' . '<th>' . _('Code') . '</th></tr>';
            $keyname = 'users/' . $user->hashdir . '/pics/minibadge' . $ssuf . $csuf . '.png';
            $str .= '<tr><td><img src="' . mx_secureurl(gets3url($keyname)) . '" /></td>';
            $str .= '<td>';
            $str .= '<textarea id="b_' . $value . '" onmouseover="this.select(); setcopybtn(\'bt_' . $value . '\',\'b_' . $value . '\');">';
            $str .= '<a href="' . mx_actionurl($page, $opt, $user->id) . '" alt="' . $name . '">' . '<img src="' . mx_secureurl(gets3url($keyname)) . '" />' . '</a>';
            $str .= '</textarea><br/>';
            $str .= '<a style="display:none;" href="#" class="toclipbtn" id="bt_' . $value . '">' . _('Copy') . '</a>';
            $str .= '</td>';
            $str .= '</tr>';
        }
    }
    $str .= '</table>';
    $str .= '</div>';
    return $str;
}
Exemple #3
0
function mx_sitetitle()
{
    global $mxuser;
    $page = $_GET['p'];
    $option = $_GET['o'];
    $action = $_GET['a'];
    if (!$page) {
        echo 'MusXpand - ' . mx_option('title');
        return;
    }
    if (!$option) {
        echo 'MusXpand - ' . mx_pagename($page);
        return;
    }
    if (($page == 'artists' && $option == 'artprof' || $page == 'fans' && $option == 'fanprof') && $action) {
        $user = $mxuser->getuserinfo($action);
        if ($option == 'fanprof') {
            echo sprintf(_('%s - MusXpand'), mx_getname($user));
        } else {
            echo sprintf(_('%s - MusXpand'), mx_getartistname($user));
        }
        return;
    } else {
        if ($page == 'media' && $option == 'medprof') {
            $media = $mxuser->getmediainfo($action);
            echo sprintf(_('%s by %s - MusXpand'), $media->title, $media->artistname);
            return;
        }
    }
    echo 'MusXpand - ' . mx_pagename($page) . ' - ' . mx_optionname($page, $option);
}
Exemple #4
0
function mx_getartistname($user)
{
    if ($user->artistname) {
        return $user->artistname;
    }
    return mx_getname($user);
}
Exemple #5
0
function mx_mncart($page, $option, $action)
{
    global $mxuser, $prodtypes, $mxdb, $prodprice;
    $prodlist = array();
    $progress = $mxuser->cart->progress;
    if ($mxuser->cart->lines) {
        foreach ($mxuser->cart->lines as $line) {
            //if ($mxuser->cart->orderinfo || $mxuser->cart->orderconfirm)
            if ($mxuser->cart->progress > 1) {
                $line->select = '<img height="12px" src="' . mx_iconurl('okmark') . '">';
            } else {
                $line->select = '<input type="checkbox" name="cartline[]" value="' . $line->id . '">';
            }
            $line->proddesc = mx_proddesc($line);
            /*if ($line->prodtype==MXARTSUB) {
            			$user=$mxuser->getuserinfo($line->prodref);
            			$line->prodref='<div class="cartline"><img class="cartpic" src="'.mx_fanpic($user->id).'" /> '.mx_getartistname($user).'</div>';
            		}*/
            $line->prodvar = $prodtypes[$line->prodtype][1][$line->prodvar];
            $line->prodtype = $prodtypes[$line->prodtype][0];
            $prodlist['cart'][] = $line;
        }
    }
    if ($mxuser->cart->wishes) {
        foreach ($mxuser->cart->wishes as $line) {
            $line->select = '<input type="checkbox" name="wishline[]" value="' . $line->id . '">';
            $line->proddesc = mx_proddesc($line);
            /*if ($line->prodtype==MXARTSUB) {
            			$user=$mxuser->getuserinfo($line->prodref);
            			$line->prodref=mx_getartistname($user);
            		}*/
            $line->prodvar = $prodtypes[$line->prodtype][1][$line->prodvar];
            $line->prodtype = $prodtypes[$line->prodtype][0];
            $prodlist['wishlist'][] = $line;
        }
    }
    if ($mxuser->cart->items > 0) {
        $contshoppinglabel = _('Continue Shopping');
    } else {
        $contshoppinglabel = _('Go Shopping');
    }
    $yourehere = _('** YOU\'RE HERE **');
    $progresstable = '<table class="form progress"><tr class="top">' . '<td class="' . ($progress == 1 ? 'current' : 'done') . '">' . _('Shopping Cart') . '</td>' . '<td' . ($progress > 1 ? ' class="done"' : ' class="todo"') . '>&rarr;</td>' . '<td class="' . ($progress == 2 ? 'current' : ($progress < 2 ? 'next' : 'done')) . '">' . _('Shipping/Billing') . '</td>' . '<td' . ($progress > 2 ? ' class="done"' : ' class="todo"') . '>&rarr;</td>' . '<td class="' . ($progress == 3 ? 'current' : ($progress < 3 ? 'next' : 'done')) . '">' . _('Order Review') . '</td>' . '<td' . ($progress > 3 ? ' class="done"' : ' class="todo"') . '>&rarr;</td>' . '<td class="' . ($progress == 4 ? 'current' : 'next') . '">' . _('Order Confirmation') . '</td>' . '<td class="last"></td>' . '</tr><tr class="bottom">' . '<td>' . ($progress == 1 ? $yourehere : '') . '</td>' . '<td></td>' . '<td>' . ($progress == 2 ? $yourehere : '') . '</td>' . '<td></td>' . '<td>' . ($progress == 3 ? $yourehere : '') . '</td>' . '<td></td>' . '<td>' . ($progress == 4 ? $yourehere : '') . '</td>' . '<td class="last"></td>' . '</tr></table>';
    if ($mxuser->cart->err) {
        $progresstable .= mx_warningstr(implode('<br/>', $mxuser->cart->err));
    }
    if ($mxuser->cart->info) {
        $progresstable .= mx_infomsgstr($mxuser->cart->info);
    }
    //echo $progresstable;
    if ($mxuser->cart->orderinfo) {
        // checkcout confirmation
        $ckoutbuttons = array('canckout' => _('Cancel Checkout'), 'confckout' => _('Confirm PAYPAL Payment'));
        $cartlist = array('cart' => array('select' => array(0, '', 'text', 3), 'prodtype' => array(0, _('Item'), 'text', 20), 'proddesc' => array(0, _('Description'), 'html', 30), 'prodvar' => array(0, _('Type'), 'text', 20), 'price' => array(0, _('Price'), 'price', 10)));
        $salesterms = mx_windowedpage('salesterms', _('Terms & Conditions'));
        $ckoutlist = array('checkout', 0, _('Checkout Review Page'), $progresstable, $ckoutbuttons, array('cart' => array(-1, _('Checking out these products'), _('The following items are currently in your cart')), 'cartcontent' => array(-2, $cartlist, $prodlist, 'cart', array(), 'cart'), 'billing' => array(-1, _('Billing Information'), ''), 'FIRSTNAME' => array(0, _('Firstname'), 'text', 30), 'LASTNAME' => array(0, _('Lastname'), 'text', 30), 'COUNTRYCODE' => array(0, _('Country'), 'text', 3), 'EMAIL' => array(0, _('Billing E-Mail'), 'text', 40), 'shipping' => array(-1, _('Shipping Information'), _('Please check your shipping information')), 'SHIPTONAME' => array(0, _('Ship To'), 'text', 30), 'SHIPTOSTREET' => array(0, _('Address'), 'text', 30), 'SHIPTOCITY' => array(0, _('City'), 'text', 20), 'SHIPTOSTATE' => array(0, _('State/Province'), 'text', 20), 'SHIPTOZIP' => array(0, _('Zip Code'), 'text', 10), 'SHIPTOCOUNTRYNAME' => array(0, _('Country'), 'text', 20), 'salesterms' => array(-1, _('Sales Terms And Conditions'), sprintf(_('Please read and agree with our %s before' . ' confirming your payment'), $salesterm)), 'agreement' => array(1, _('Agreement'), 'checkbox', sprintf(_('I accept MusXpand\'s sales %s'), mx_windowedpage('salesterms', _('terms & conditions'))), _('You have to agree to continue...')), 'a' => array(1, 'none', 'hidden'), 'PAYERID' => array(1, 'none', 'hidden'), 'cartid' => array(1, $mxuser->cart->id, 'hidden'), 'paymentoption' => array(1, 'PayPal', 'hidden')));
        mx_showform($ckoutlist, $mxuser->cart->orderinfo, true, true);
        //echo print_r($mxuser->cart->orderinfo);
    } else {
        if ($mxuser->cart->progress == 4) {
            // order confirmation
            if ($action != 'printorder') {
                $ckoutbuttons = array('printorder' => _('Print this Confirmation Page'));
            } else {
                $ckoutbuttons = array();
            }
            $cartlist = array('cart' => array('select' => array(0, '', 'text', 3), 'prodtype' => array(0, _('Item'), 'text', 20), 'proddesc' => array(0, _('Description'), 'html', 30), 'prodvar' => array(0, _('Type'), 'text', 20), 'price' => array(0, _('Price'), 'price', 10)));
            $values = $mxuser->cart->orderconfirm;
            $values['invoicenum'] = $mxuser->cart->invoicenum;
            //sprintf(_('%06d'),$mxuser->cart->id);
            $billing = $mxuser->getaddress($mxuser->cart->billingid);
            $shipping = $mxuser->getaddress($mxuser->cart->shippingid);
            $values['FIRSTNAME'] = $billing['first'];
            $values['LASTNAME'] = $billing['last'];
            $values['EMAIL'] = $billing['email'];
            $values['SHIPTONAME'] = $shipping['shiptoname'];
            $values['SHIPTOSTREET'] = $shipping['street1'];
            $values['SHIPTOCITY'] = $shipping['city'];
            $values['SHIPTOSTATE'] = $shipping['state'];
            $values['SHIPTOZIP'] = $shipping['zip'];
            $values['SHIPTOCOUNTRYNAME'] = $shipping['countrycode'];
            $values['termscond'] = mx_showhtmlpagestr('salesterms');
            $ckoutlist = array('checkout', 0, _('Order Confirmation'), $action != 'printorder' ? $progresstable : mx_infomsgstr($mxuser->cart->info), $ckoutbuttons, array('cart' => array(-1, sprintf(_('Invoice # %s'), $mxuser->cart->invoicenum), _('You purchased the following items.')), 'cartcontent' => array(-2, $cartlist, $prodlist, 'cart', array(), 'cart'), 'billing' => array(-1, _('Billing Information'), ''), 'FIRSTNAME' => array(0, _('Firstname'), 'text', 30), 'LASTNAME' => array(0, _('Lastname'), 'text', 30), 'EMAIL' => array(0, _('Billing E-Mail'), 'text', 40), 'shipping' => array(-1, _('Shipping Information'), ''), 'SHIPTONAME' => array(0, _('Ship To'), 'text', 30), 'SHIPTOSTREET' => array(0, _('Address'), 'text', 30), 'SHIPTOCITY' => array(0, _('City'), 'text', 20), 'SHIPTOSTATE' => array(0, _('State/Province'), 'text', 20), 'SHIPTOZIP' => array(0, _('Zip Code'), 'text', 10), 'SHIPTOCOUNTRYNAME' => array(0, _('Country'), 'text', 20), 'confirmation' => array(-1, _('Payment Confirmation'), _('Below are the details of the transaction')), 'invoicenum' => array(0, _('Invoice #'), 'text', 30), 'PAYMENTINFO_0_PAYMENTSTATUS' => array(0, _('Payment Status'), 'text', 20), 'PAYMENTINFO_0_TRANSACTIONID' => array(0, _('Transaction ID'), 'transactionid', 20), 'PAYMENTINFO_0_ORDERTIME' => array(0, _('Order Time'), 'text', 20), 'PAYMENTINFO_0_AMT' => array(0, _('Total Amount'), 'price', 20), 'PAYMENTINFO_0_TAXAMT' => array(0, _('Taxes included'), 'price', 20), 'PAYMENTINFO_0_CURRENCYCODE' => array(0, _('Currency'), 'text', 20), 'terms' => array(-1, _('Sales Terms'), _('Please keep the following sales conditions along with your purchase receipt.')), 'termscond' => array(0, _('Buyer Information'), 'html'), 'a' => array(1, 'none', 'hidden'), 'PAYERID' => array(1, 'none', 'hidden'), 'cartid' => array(1, $mxuser->cart->id, 'hidden'), 'paymentoption' => array(1, 'PayPal', 'hidden')));
            //mx_showform($ckoutlist,$mxuser->cart->orderconfirm,true,true);
            mx_showform($ckoutlist, $values, true, true);
            // confirmation emails
            if ($action != 'printorder') {
                // email to buyer
                $ckoutemail = $ckoutlist;
                $ckoutemail[4] = array();
                $ckoutemail[3] = mx_infomsgstr($mxuser->cart->info);
                $to = $mxuser->fullname . ' <' . $mxuser->email . '>';
                $subj = sprintf(_('Order Confirmation - Invoice # %06d'), $mxuser->cart->id);
                $html = mx_showhtmlpagestr('orderconfirmation');
                $confform = mx_showformstr($ckoutemail, $values, true, true);
                $html = str_replace('{ORDERFORM}', $confform, $html);
                $html = str_replace('{INVOICENUM}', $mxuser->cart->invoicenum, $html);
                // sprintf('%06d',$mxuser->cart->id)
                $txt = sprintf(_('To print your order confirmation, please go to %s'), mx_actionurl('cart', '', 'printorder', '', '', 'secure', 'cartid=' . $mxuser->cart->id));
                mx_sendmail($to, $subj, $txt, $html);
                // email to artists
                foreach ($prodlist['cart'] as $line) {
                    if ($prodtype == MXARTSUB) {
                        $artistid = $line->prodref;
                    } else {
                        if ($prodtype == MXMEDSUB) {
                            $media = $mxuser->getmediainfo($line->prodref);
                            $artistid = $media->owner_id;
                        } else {
                            $artistid = 0;
                        }
                    }
                    $prodtype = $line->prodtype;
                    $prodvar = $line->prodvar;
                    $prodprice = sprintf('US$ %.02f', $line->price);
                    if ($artistid) {
                        $artist = $mxdb->getuserinfo($mxuser->id, $artistid);
                    }
                    if ($artist && $artist->email) {
                        $to = mx_getartistname($artist) . ' <' . $artist->email . '>';
                        if ($prodtype == MXARTSUB) {
                            $subj = _('You just made a new fan');
                            // html version
                            $html = mx_showhtmlpagestr('newfan');
                            // text version
                            $txt = _("Hey {ARTISTNAME}!\n\n" . "We just wanted to give you the good news:\n\n" . "You just made a new fan in {FANNAME}:\n" . "{FANNAME} just purchased a {PRODVAR} {PRODTYPE} from you for {PRICE}\n\n" . "Sales Team,\nMusXpand.\n" . MXSALESEMAIL . "\n" . mx_option('basicsiteurl'));
                            mx_fbaction('musxpand:subscribe_to?artist=' . urlencode(mx_actionurl('artists', 'artprof', $artistid)));
                        } else {
                            if ($prodtype == MXMEDSUB) {
                                $subj = _('Someone bought media from you');
                                // html version
                                $html = mx_showhtmlpagestr('newbuyer');
                                // text version
                                $txt = _("Hey {ARTISTNAME}!\n\n" . "We just wanted to give you the good news:\n\n" . "{FANNAME} bought some media from you:\n" . "{FANNAME} just purchased \"{MEDIANAME}\" from you for {PRICE}\n\n" . "Sales Team,\nMusXpand.\n" . MXSALESEMAIL . "\n" . mx_option('basicsiteurl'));
                            }
                        }
                        $fan = '<a href="' . mx_actionurl('fans', 'fanprof', $mxuser->id) . '">' . mx_getname($mxuser) . '</a>';
                        $html = str_replace('{ARTISTNAME}', mx_getartistname($artist), $html);
                        $html = str_replace('{PRICE}', $prodprice, $html);
                        $html = str_replace('{FANNAME}', $fan, $html);
                        $html = str_replace('{MEDIANAME}', $media->title, $html);
                        $html = str_replace('{PRODVAR}', $prodvar, $html);
                        $html = str_replace('{PRODTYPE}', $prodtype, $html);
                        $siteurl = '<a href="' . mx_option('basicsiteurl') . '">MusXpand</a>';
                        $html = str_replace('{SITEURL}', $siteurl, $html);
                        $html = str_replace('{SALESEMAIL}', MXSALESEMAIL, $html);
                        $txt = str_replace('{ARTISTNAME}', mx_getartistname($artist), $txt);
                        $txt = str_replace('{PRICE}', $prodprice, $txt);
                        $fan = mx_getname($mxuser);
                        $txt = str_replace('{FANNAME}', $fan, $txt);
                        $txt = str_replace('{MEDIANAME}', $media->title, $txt);
                        $txt = str_replace('{PRODVAR}', $prodvar, $txt);
                        $txt = str_replace('{PRODTYPE}', $prodtype, $txt);
                        mx_sendmail($to, $subj, $txt, $html);
                    }
                }
            } else {
                // purchase
                ?>

<!-- Google Code for Bought Conversion Page -->
<script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = 949396365;
var google_conversion_language = "en";
var google_conversion_format = "3";
var google_conversion_color = "ffffff";
var google_conversion_label = "f7QfCNPfzwMQjcfaxAM";
var google_conversion_value = <?php 
                echo $mxuser->cart->total;
                ?>
;
/* ]]> */
</script>
<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="http://www.googleadservices.com/pagead/conversion/949396365/?label=f7QfCNPfzwMQjcfaxAM&amp;guid=ON&amp;script=0"/>
</div>
</noscript>

		<?php 
            }
            /*$ckoutlist[0]='printout';
            		echo '<div id="order"><div class="order">';
            		mx_showform($ckoutlist,$mxuser->cart->orderinfo,false,true);
            		echo '</div></div>';*/
            //echo print_r($mxuser->cart->orderconfirm);
        } else {
            // cart and wishlist display
            $cartbuttons = array('towish' => _('Move to Wishlist'), 'delcart' => _('Remove Checked Items'), 'sep' => null, 'shopmore' => $contshoppinglabel, 'checkout' => _('Proceed to Checkout'));
            $cartlist = array('cartlist', 0, _('Cart & Wishlist Content'), $progresstable, array('cart' => $cartbuttons, 'wishlist' => array('tocart' => _('Move to Cart'), 'delwish' => _('Remove Checked Items'), 'sep' => null, 'shopmore_w' => $contshoppinglabel)), array('cart' => array('cart' => array(-1, _('Your Cart'), _('The following items are currently in your cart')), 'select' => array(0, '<input id="checkallbox" type="checkbox" onclick="javascript:checkall(\'cart\');">', 'text', 3), 'prodtype' => array(0, _('Item'), 'text', 20), 'proddesc' => array(0, _('Description'), 'html', 30), 'prodvar' => array(0, _('Type'), 'text', 20), 'price' => array(0, _('Price'), 'price', 10), 'a' => array(1, 'none', 'hidden'), 'k' => array(1, 'cart', 'hidden')), 'wishlist' => array('wishlist' => array(-1, _('Your Wish List'), _('The following items are currently in your wishlist')), 'select' => array(0, '<input id="checkallbox" type="checkbox" onclick="javascript:checkall(\'wishlist\');">', 'text', 3), 'prodtype' => array(0, _('Item'), 'text', 20), 'proddesc' => array(0, _('Description'), 'html', 30), 'prodvar' => array(0, _('Type'), 'text', 20), 'price' => array(0, _('Price'), 'price', 10), 'a' => array(1, 'none', 'hidden'), 'k' => array(1, 'wishlist', 'hidden'))));
            mx_showlist($cartlist, $prodlist, 'cart', true, true);
            //if ($action=='addfoy' || $action=='adfofa' || $action=='upgfofa') {
            ?>

<!-- Google Code for Added To Cart Conversion Page -->
<script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = 949396365;
var google_conversion_language = "en";
var google_conversion_format = "3";
var google_conversion_color = "ffffff";
var google_conversion_label = "ziXpCNvezwMQjcfaxAM";
var google_conversion_value = <?php 
            echo $prodprice;
            ?>
;
/* ]]> */
</script>
<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="http://www.googleadservices.com/pagead/conversion/949396365/?label=ziXpCNvezwMQjcfaxAM&amp;guid=ON&amp;script=0"/>
</div>
</noscript>

			<?php 
            //}
        }
    }
    //phpinfo();
}