function mx_showpost() { global $mxuser; $msg = null; //die(phpinfo()); $msg->body = mx_securestring($_REQUEST['body']); $filter = $_REQUEST['filter']; if ($filter) { $msg->filter = array_sum($filter); } else { $msg->filter = ''; } $msg->filter = mx_securestring($msg->filter); if ($msg->body) { $mxuser->saveupdate($msg); } else { mx_important(_('Your update is empty...')); } }
function mx_ckmystuff($page, $option, $action) { global $mxuser, $errors; switch ($action) { case 'm_bundle': header('location:' . mx_optionurl('account', 'bundle')); die; case 'mediapublish': $pid = 0; //die(phpinfo()); while ($fid = $_POST['id_' . $pid]) { //$fname=$_POST['name_'.$pid]; $ftitle = $_POST['title_' . $pid]; $ftype = $_POST['type_' . $pid]; $fdesc = $_POST['desc_' . $pid]; $fcomp = $_POST['comp_' . $pid]; $status = $_POST['status_' . $pid]; if ($ftype == MXMEDIABASEBUNDLE) { $status = MXMEDIAVIRTUAL; } if ($status >= MXMEDIAREADY) { $mxuser->publishmedia($fid, $status, $ftitle, $ftype, $fdesc, $fcomp); if ($ftype == MXMEDIAREGULARBUNDLE) { //error_log('bundle publishing!'); $bundledmedia = $mxuser->listmediafrombundle($fid, '', $mxuser->id); foreach ($bundledmedia as $media) { //error_log('publishing '.$media->title); $mxuser->publishmedia($media->id, $status, $media->title, $media->type, $media->description, $media->completion); } } } else { if ($errors) { $errors .= '<br/>'; } $errors .= sprintf(_('[%s] is not ready and cannot be changed at this time'), $ftitle); } $pid++; } $_REQUEST['k'] = 'published'; break; case 'mediaupdate': $pid = 0; //die(phpinfo()); while ($fid = $_POST['id_' . $pid]) { //$fname=$_POST['name_'.$pid]; $ftitle = $_POST['title_' . $pid]; $ftype = $_POST['type_' . $pid]; $fdesc = $_POST['desc_' . $pid]; $status = $_POST['status_' . $pid]; $fcomp = $_POST['comp_' . $pid]; if ($ftype == MXMEDIABASEBUNDLE) { $status = MXMEDIAVIRTUAL; } if ($status >= MXMEDIAREADY) { $mxuser->publishmedia($fid, $status, $ftitle, $ftype, $fdesc, $fcomp); if ($ftype == MXMEDIAREGULARBUNDLE) { //error_log('bundle publishing!'); $bundledmedia = $mxuser->listmediafrombundle($fid, '', $mxuser->id); foreach ($bundledmedia as $media) { //error_log('publishing '.$media->title); $mxuser->publishmedia($media->id, $status, $media->title, $media->type, $media->description, $media->completion); } } } else { if ($errors) { $errors .= '<br/>'; } $errors .= sprintf(_('[%s] is not ready and cannot be changed at this time'), $ftitle); } $pid++; } break; case 'mediadescupdate': $pid = 0; //die(phpinfo()); while ($fid = $_POST['id_' . $pid]) { $fname = $_POST['name_' . $pid]; $ftitle = $_POST['title_' . $pid]; $ftype = $_POST['type_' . $pid]; $fdesc = $_POST['desc_' . $pid]; $fcomp = $_POST['comp_' . $pid]; $fdelete = $_POST['delete_' . $pid]; //if ($status>=MXMEDIAREADY) { if ($fdelete == '1') { $mxuser->deletemedia($fid, $fname); } else { $mxuser->updatemediadesc($fid, $ftitle, $ftype, $fdesc, $fcomp); } /*} else { if ($errors) $errors.='<br/>'; $errors.=sprintf(_('[%s] is not ready and cannot be changed at this time'),$ftitle); }*/ $pid++; } break; case 'newbundle': $bundle = mx_securestring($_REQUEST['bundlename']); if ($bundle) { if (!$mxuser->createbundle($bundle)) { $errors = _('Error: Bundle was not created.'); } } else { $errors = _('You did not inform a name for the new bundle.'); } break; case 'm_movenew': case 'm_movepub': $bid = mx_secureword($_REQUEST['bundleid']); if ($bid) { $selmedia = $_REQUEST['selmedia']; if (!$selmedia) { $errors = _('No media selected.'); break; } $medialist = $mxuser->listselectedmedia($selmedia); if (!$medialist) { $errors = _('No media selected.'); break; } $errors = ''; foreach ($medialist as $id => $media) { if ($res = $mxuser->movetobundle($id, $bid)) { if ($errors) { $errors .= '<br/>'; } switch ($res) { case MXDBERROR: $errors .= sprintf(_('Failed moving [%s] to bundle'), $media->title); break; case MXNOCHANGE: $errors .= sprintf(_('[%s] is shared: cannot be moved to a non-shared bundle.'), $media->title); break; } } } } else { $errors = _('You did not inform the bundle to move your media to.'); } $_REQUEST['k'] = $action == 'm_movenew' ? 'new' : 'published'; break; case 'm_linknew': case 'm_linkpub': $selmedia = $_REQUEST['selmedia']; if (!$selmedia) { $errors = _('No media selected.'); break; } $medialist = $mxuser->listselectedmedia($selmedia); if (!$medialist) { $errors = _('No media selected.'); break; } $errors = ''; // see what we need to link $pic = $trk = $doc = 0; $trkmedia = array(); $picmedia = array(); $docmedia = array(); foreach ($medialist as $id => $media) { switch ($media->type) { case MXMEDIAPIC: case MXMEDIABG: $picmedia[$id] = $media; $pic++; break; case MXMEDIASONG: case MXMEDIAINSTR: case MXMEDIAVIDEO: case MXMEDIAREGULARBUNDLE: case MXMEDIABASEBUNDLE: $trkmedia[$id] = $media; $trk++; break; case MXMEDIADOC: $docmedia[$id] = $media; $doc++; break; } } if ($pic + $doc + $trk < 2) { $errors = _('We need at least two medias for a link, e.g. a picture and a track/bundle'); break; } if (!$pic && !$doc) { $errors = _('You need to select one picture OR one document to link to the tracks/bundles'); break; } if (!$trk && $pic > 1 && $doc > 1) { $errors = _('I\'m a bit confused about what to link to what...?!'); break; } if (!$trk && !$doc) { $errors = _('You cannot link pictures together...'); break; } if (!$trk && !$pic) { $errors = _('You cannot link documents together...'); break; } if ($trk) { // link pics and/or docs to tracks or bundles $linkmedia = array_replace($picmedia, $docmedia); $destmedia = $trkmedia; } else { if ($pic == 1) { // link pic to docs $linkmedia = $picmedia; $destmedia = $docmedia; } else { if ($doc == 1) { // link doc to pics $linkmedia = $docmedia; $destmedia = $picmedia; } } } foreach ($destmedia as $id => $media) { foreach ($linkmedia as $lid => $lmedia) { if ($lmedia->owner_id != $mxuser->id) { // something wrong: linking media from someone else... if ($errors) { $errors .= '<br/>'; } $errors .= sprintf(_('Media [%s] is not yours!'), $lmedia->title); } else { if ($media->owner_id != $mxuser->id) { // idem: media linked to is not ours!! if ($errors) { $errors .= '<br/>'; } $errors .= sprintf(_('Media [%s] is not yours!'), $media->title); } else { if ($res = $mxuser->linkmedia($lid, $id)) { if ($errors) { $errors .= '<br/>'; } switch ($res) { case MXDBERROR: case MXNOLINK: $errors .= sprintf(_('Failed linking [%s] to [%s]'), $lmedia->title, $media->title); break; } } } } } } if ($action == 'm_linknew') { $_REQUEST['k'] = 'new'; } else { $_REQUEST['k'] = 'published'; } break; case 'm_scannew': case 'm_scanpub': case 'm_scanarch': case 'm_scanmed': $selmedia = $_REQUEST['selmedia']; if (!$selmedia) { $errors = _('No media selected.'); break; } $medialist = $mxuser->listselectedmedia($selmedia); if (!$medialist) { $errors = _('No media selected.'); break; } $errors = ''; foreach ($medialist as $id => $media) { if ($media->type == MXMEDIABASEBUNDLE || $media->type == MXMEDIAREGULARBUNDLE) { continue; } $mxuser->rescanmedia($media); //$mxuser->setmediastatus($id,MXMEDIAVALIDATED); } break; case 'm_deletenew': case 'm_deletepub': case 'm_deletearch': $selmedia = $_REQUEST['selmedia']; if (!$selmedia) { $errors = _('No media selected.'); break; } $medialist = $mxuser->listselectedmedia($selmedia); if (!$medialist) { $errors = _('No media selected.'); break; } foreach ($medialist as $id => $media) { $res = $mxuser->deletemedia($id, $media->filename); if (array_key_exists('error', $res)) { if ($errors) { $errors .= '<br/>'; } $errors .= $res['error']; } } break; case 'm_archivepub': $selmedia = $_REQUEST['selmedia']; if (!$selmedia) { $errors = _('No media selected.'); break; } $medialist = $mxuser->listselectedmedia($selmedia); if (!$medialist) { $errors = _('No media selected.'); break; } foreach ($medialist as $id => $media) { $mxuser->archivemedia($id, $media->filename); } $_REQUEST['k'] = 'archived'; break; case 'm_publishnew': case 'm_publisharch': case 'm_editnew': case 'm_editpub': case 'm_editarch': case 'm_editmed': $selmedia = $_REQUEST['selmedia']; if (!$selmedia) { $errors = _('No media selected.'); $_REQUEST['a'] = ''; } break; default: break; } }
function mx_ckprofile($page, $option, $action) { global $mxuser, $msgs, $mxsession, $errors, $usernameerrs; if ($action == 'update' || preg_match('%setup_%', $action) || $action == 'done') { //die(phpinfo()); $section = preg_replace('%[^0-9]%', '', $action); // just step number in case we're in the setup /* if (!$section || $section=='' || $section>count($steps)) { $section=null; } */ //phpinfo(); $msgs = null; // list of fields that should have been posted to check mandatory ones have been filled... $prevsection = mx_secureword($_REQUEST['k']); $oldflds = array(); foreach ($mxuser->infogroups($action == 'done' || $action == 'update' ? null : $prevsection) as $grp => $details) { foreach ($details[1] as $field) { $oldflds[$field] = 1; } } if (array_key_exists('PROid', $_REQUEST) && $_REQUEST['PROid'] == MXNOPROYET) { $_POST['PROmemberid'] = '-'; } //error_log(print_r($oldflds,true)); foreach ($mxuser->infogroups() as $grp => $details) { foreach ($details[1] as $field) { $fldinfo = $mxuser->fielddesc($field); if (!$fldinfo[0]) { continue; } if (array_key_exists($field . '_y', $_POST)) { $_POST[$field] = $_POST[$field . '_y'] . '-' . $_POST[$field . '_m'] . '-' . $_POST[$field . '_d']; } if (!array_key_exists($field, $_POST)) { // field was not posted if ($mxuser->{$field}) { continue; } // field is already set if (!array_key_exists($field, $oldflds)) { continue; } // not in the previous form and not blank if ($fldinfo[0] < 3 || $mxuser->acctype == MXACCOUNTFAN && $fldinfo[0] == 4) { continue; } // not mandatory if ($section && $section < $prevsection) { continue; } // we're back to the previous form: don't bother... $_REQUEST['a'] = 'setup_' . $prevsection; $errors[$field] = _('This field is mandatory!'); continue; } if (!$_POST[$field] && $field != 'PROid') { // field blank if ($fldinfo[0] >= 3 && ($mxuser->acctype != MXACCOUNTFAN || $fldinfo[0] != 4) && ($section == '' || $section > $prevsection)) { // we're going to the next step... if ($prevsection) { $_REQUEST['a'] = 'setup_' . $prevsection; } else { $_REQUEST['a'] = 'edit'; } $errors[$field] = _('This field is mandatory!'); continue; } } switch ($fldinfo[2]) { // CAREFUL: testing types not fields!! case 'legalname': $postfld = ucwords(mx_securestring($_POST[$field])); break; case 'fullname': $postfld = mx_securestring($_POST[$field]); if ($postfld == strtolower($postfld)) { $postfld = ucwords($postfld); } // if all lowercase capitalize initials break; case 'proid': $postfld = mx_secureword($_POST[$field]); if ($postfld == 0) { $proname = mx_securestring($_POST['proname']); $prosite = mx_securestring($_POST['prosite']); if ($proname && $prosite) { $postfld = $mxuser->addpro($proname, $prosite); } else { //$errors[$field]=_('You must inform your PRO organization'); if (!$proname && !$prosite) { $errors[$field] = _('We need this information.'); } else { if (!$proname) { $errors[$field] = _('You must inform the association\'s name/acronym'); } else { $errors[$field] = _('You must inform a website'); } } if ($prevsection) { $_REQUEST['a'] = 'setup_' . $prevsection; } else { $_REQUEST['a'] = 'edit'; } continue; } } break; case 'acctype': // ignore this field if ($mxuser->acctype != MXACCOUNTFAN && $mxuser->status != MXACCTEMAILCONFIRMED) { $postfld = $mxuser->acctype; } else { $postfld = preg_replace('%[^0-9]%', '', $_POST[$field]); } break; case 'date': $postfld = $_POST[$field . '_y'] . '-' . $_POST[$field . '_m'] . '-' . $_POST[$field . '_d']; break; case 'privacy': if (is_array($_POST[$field])) { $postfld = implode(',', $_POST[$field]); } else { $postfld = ''; } break; case 'password': $chkold = hash('sha256', $_POST[$field]); if (!$_POST[$field]) { $postfld = $mxuser->{$field}; // no old password -> don't change :-) } else { if ($chkold != $mxuser->pwdhash) { $msgs->err = _('Wrong password entered.<br/>Your present password was left unchanged.'); $postfld = $mxuser->{$field}; // do not change password! } else { $postfld = hash('sha256', $_POST['new_' . $field]); $chkconf = hash('sha256', $_POST['conf_' . $field]); if ($chkconf != $postfld) { $msgs->err = _('Password confirmation does not match new password!<br/>Your password was left unchanged.'); $postfld = $mxuser->{$field}; // do not change password! } else { $msgs->ok = _('Your password was successfully updated.'); $field = 'pwdhash'; // we'll update the hash! } } } break; case 'username': $postfld = trim(strtolower(preg_replace('![^0-9a-zA-Z-_.]!', '', $_POST[$field]))); if ($postfld != $mxuser->{$field}) { $ckusername = mx_checkusername($mxuser->username, $postfld); if ($ckusername) { $msgs->err .= sprintf(_('Username was not updated: %s'), $ckusername > 0 ? _('Username already used') : $usernameerrs[$ckusername]); $postfld = $mxuser->{$field}; } else { $msgs->ok .= _('Username was updated.'); } } break; case 'agreement': if (!$mxuser->agreement || $mxuser->agreement == '0000-00-00 00:00:00') { $postfld = date('Y-m-d H:i:s'); } else { $postfld = $mxuser->agreement; } break; case 'genre': $postfld = $_POST[$field]; break; default: $postfld = stripslashes($_POST[$field]); break; } if ($postfld != $mxuser->{$field}) { $mxuser->setoption($field, $postfld); //$mxuser->$field=$postfld; // already done in setoption... } if ($field == 'pwdhash') { // needs to clear the session with new password credentials :-) mx_setsession($mxuser, time()); } } } if ($action == 'done' && !$errors) { $mxuser->setoption('status', MXACCTSETUP); } //header('Location: '.mx_actionurl($page,$option,'done')); } //error_log(print_r($errors,true)); }
function mx_showcustompage($page, $user, $media = null, $simul = '') { global $mxuser, $transparencies, $windows, $mxdb; if ($simul == 'public') { $saveuser = $mxuser; $mxuser = new MXUser(-1); $user = $mxuser->getuserinfo($user->id, true); // get public info instead... } mx_checkvalues($user); //error_log(print_r($user,true)); $locale = $mxuser->locale ? $mxuser->locale : 'en_US'; $locpage = mx_option('pagesdir') . '/' . $locale . '/' . $page . '.html'; if (file_exists($locpage)) { $html = file_get_contents(mx_option('pagesdir') . '/' . $locale . '/' . $page . '.html'); } else { $locpage = mx_option('pagesdir') . '/en_US/' . $page . '.html'; if (file_exists($locpage)) { $html = file_get_contents(mx_option('pagesdir') . '/en_US/' . $page . '.html'); //$html='<div class="nottranslated">'. //_('(This page will be translated to your language soon)').'</div>'.$html; } } $html = preg_replace('%{playicon:([^}]+)}%', '<a class="playbutton" href="javascript:play(\'$1\');">' . mx_icon('playsound', 'listen', 16, 'i_$1') . '</a>', $html); $html = preg_replace('%{mail:([^},]+),([^},]+),?([^}]+)}%', '<a href="mailto:$1?Subject=$3" alt="$2">$2</a>', $html); if (preg_match_all('%{menu:([^},]+),?([^}]+)?}%', $html, $menus)) { for ($i = 0; $i < count($menus[0]); $i++) { $html = str_replace($menus[0][$i], mx_optionlink($menus[1][$i], $menus[2][$i]), $html); } } $html = preg_replace('%{aboutimg:([^,}]+)(,([^}]+))?}%', '<img class="about" src="' . mx_option('siteurl') . '/images/about/$1" alt="$3" />', $html); $html = str_replace('{firstname}', $mxuser->firstname ? $mxuser->firstname : $mxuser->fullname, $html); $html = str_replace('[', '<', $html); $html = str_replace(']', '>', $html); // user stuff $user->subs = $mxuser->getsub($user->id); $stotal = $sfoy = $sfofa = $slike = 0; foreach ($user->subs as $k => $sub) { ++$stotal; if ($sub->subtype == MXSUBFOY) { ++$sfoy; } else { if ($sub->subtype == MXSUBFOFA || $sub->subtype == MXUPGFOFA) { ++$sfofa; } else { if ($sub->subtype == MXSUBLIKE) { ++$slike; } } } } $html = str_replace('{PIC}', '<img tag="' . $user->id . '" src="' . mx_fanpic($user->id, 'large') . '" />', $html); $html = str_replace('{ARTISTPIC}', '<img tag="' . $user->id . '" class="artistpic" src="' . mx_artpic($user->id, 'large', $user->gender) . '" itemprop="image"/>', $html); //if ($user->acctype==MXACCOUNTFAN) { if ($sfofa + $sfoy >= 10) { $fanrank = 'n1fan'; } else { if ($sfofa + $sfoy >= 1) { $fanrank = 'truefan'; } else { $fanrank = 'fanlogo'; } } //} $html = str_replace('{FANPIC}', '<img tag="' . $user->id . '" class="fanpic" src="' . mx_fanpic($user->id, 'large', $user->gender) . '" itemprop="image"/>' . '<div class="picstamp"><img class="picstamp" src="' . mx_iconurl($fanrank) . '"/></div>', $html); $html = str_replace('{ARTISTNAME}', mx_getartistname($user), $html); $html = str_replace('{LASTSEEN}', mx_difftime($user->lastseen), $html); $html = str_replace('{NAME}', mx_getname($user), $html); $html = str_replace('{FULLNAME}', mx_getname($user), $html); if (strpos($html, '{BACKGROUND}') > 0) { $bg = $mxuser->getbackgroundurl($user->background_id); $html = str_replace('{BACKGROUND}', $bg, $html); if (!strpos($bg, 'tiled')) { $html = str_replace('{BACKGROUNDSIZE}', 'background-size:100%;', $html); } } // find transparency background $opt = 90; if (array_key_exists($user->transparency, $transparencies)) { $opt = 100 - $user->transparency; } if ($opt < 50) { $opt = 50; } $whitebg = $opt ? mx_option('siteurl') . '/images/background/white-dot-' . $opt . '.png' : ''; $yellowbg = $opt ? mx_option('siteurl') . '/images/background/yellow-dot-' . $opt . '.png' : ''; $html = str_replace('{WHITEBG}', $whitebg, $html); $html = str_replace('{YELLOWBG}', $yellowbg, $html); $html = str_replace('{OPACITY}', 1 - $user->transparency / 100, $html); $html = str_replace('{OPACITY100}', 100 - $user->transparency, $html); $html = str_replace('{BIO}', mx_urls2anchors(mx_cleanhtml($user->longbio)), $html); $html = str_replace('{AGE}', $user->age, $html); $html = str_replace('{BDAY}', $user->birthday, $html); $html = str_replace('{ABOUT}', mx_cleanhtml($user->shortbio), $html); $html = str_replace('{GENDER}', mx_gender($user->gender), $html); $html = str_replace('{WEBSITE}', mx_urls($user->website), $html); $html = str_replace('{EMAIL}', $user->email, $html); $artlinks = '<ul>'; if ($user->username) { foreach (array('artist', 'artists', 'art', 'arts', 'at') as $aurl) { $link = 'http://' . $user->username . '.' . $aurl . '.example.com'; $artlinks .= '<li><a href="' . $link . '">' . $link . '</a></li>'; } $link = 'http://www.example.com/a/' . $user->username; $artlinks .= '<li><a href="' . $link . '">' . $link . '</a></li>'; } $link = 'http://www.example.com/artists/artprof?a=' . $user->id; $artlinks .= '<li><a href="' . $link . '">' . $link . '</a></li>'; $artlinks .= '</ul>'; $html = str_replace('{ARTLINKS}', $artlinks, $html); $fanlinks = '<ul>'; if ($user->username) { foreach (array('fan', 'fans') as $furl) { $link = 'http://' . $user->username . '.' . $furl . '.example.com'; $fanlinks .= '<li><a href="' . $link . '">' . $link . '</a></li>'; } $link = 'http://www.example.com/f/' . $user->username; $fanlinks .= '<li><a href="' . $link . '">' . $link . '</a></li>'; } $link = 'http://www.example.com/fans/fanprof?a=' . $user->id; $fanlinks .= '<li><a href="' . $link . '">' . $link . '</a></li>'; $fanlinks .= '</ul>'; $html = str_replace('{FANLINKS}', $fanlinks, $html); if (strpos($html, '{STYLES}') > 0 || strpos($html, '{TASTES}') > 0) { $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]; } } if (strpos($html, '{STYLES}') > 0) { $value = $user->genres; } else { $value = $user->tastes; } $str = '<table class="genres">'; $ok = 0; for ($i = 0; $i < 5; $i++) { $genre = $value[$i]; if ($genre) { $cat = $catgenre[$genre]; $str .= '<tr><th>' . (!$i ? _('Primary') : ($i == 1 ? _('Secondary') : _('Other'))) . ':</th><td>' . $genres[$genre]->genre . ($cat ? ' (' . $genres[$cat]->genre . ')' : '') . '</td></tr>'; $ok = 1; } } $str .= '</table>'; if (!$ok) { $str = _('Not informed'); } $html = str_replace('{TASTES}', $str, $html); $html = str_replace('{STYLES}', $str, $html); } if (strpos($html, '{MEDIA}') > 0) { //$mediatable=$mxuser->listartistmedia($user->id); //$html=str_replace('{MEDIA}',mx_showmediastr($mediatable),$html); //$mediatable=$mxuser->listartistmedia($user->id); $googlecrawler = mx_securestring($_GET['_escaped_fragment_']); $ob = preg_replace('%[^0-9]%', '', $googlecrawler); //error_log('ob='.$ob.' / media->id='.$media->id); $mediatable = mx_showmediastr($user->id, 'media', $ob ? $ob : $media->id); $html = str_replace('{MEDIA}', $mediatable, $html); } $location = ''; if ($user->city) { $location .= '<span itemprop="addressLocality">' . $user->city . '</span>'; } if ($user->state) { $location .= ($location ? ', ' : '') . '<span itemprop="addressRegion">' . $user->state . '</span>'; } if ($user->country) { $location .= ($location ? ', ' : '') . '<span itemprop="addressCountry">' . mx_getcountryname($user->country) . '</span>'; } $html = str_replace('{LOCATION}', $location, $html); $html = str_replace('{FACELIKE}', '<fb:like href="' . mx_actionurl_prod('artists', 'artprof', $user->id) . '" send="false" show_faces="false" width="60" font=""></fb:like>', $html); $html = str_replace('{PLUSONE}', '<g:plusone size="medium" href="' . mx_actionurl_prod('artists', 'artprof', $user->id) . '" callback="mxpluslike"></g:plusone>', $html); $html = str_replace('{FANFACELIKE}', '<fb:like href="' . mx_actionurl_prod('fans', 'fanprof', $user->id) . '" send="false" show_faces="true" width="60" font=""></fb:like>', $html); $html = str_replace('{FANPLUSONE}', '<g:plusone size="medium" href="' . mx_actionurl_prod('fans', 'fanprof', $user->id) . '"></g:plusone>', $html); $hassub = 0; if (strpos($html, '{SUBSCRIBERS}') > 0) { $html = str_replace('{SUBSCRIBERS}', mx_subscribers($user->id, false), $html); } if (strpos($html, '{LIKERS}') > 0) { $html = str_replace('{LIKERS}', mx_subscribers($user->id, true), $html); } if (strpos($html, '{SUBSCRIPTIONS}') > 0 || strpos($html, '{LIKES}') > 0 || strpos($html, '{SUBSCRIBE}') > 0) { if (strpos($html, '{SUBSCRIPTIONS}') > 0) { $html = str_replace('{SUBSCRIPTIONS}', mx_subscriptions($user->subs, false), $html); } if (strpos($html, '{LIKES}') > 0) { $html = str_replace('{LIKES}', mx_subscriptions($user->subs, true), $html); } } $mysubs = $mxuser->getsub(); foreach ($mysubs as $sub) { if ($sub->subcat == MXARTSUB && $sub->objectid == $user->id && $sub->status != MXEXPIREDSUB) { $hassub = $sub->subtype; $autorenew = $sub->renewal; break; } } if (strpos($html, '{ILOVE}') > 0) { if (!$mxuser->id) { $str = ''; } else { if ($hassub == MXSUBLIKE) { // likers $str = mx_icon('ilove', _('Like!'), '', 'nl_' . $user->id, 'ilovehover', 'class'); } else { if ($hassub) { // fan love $str = mx_icon('fanlove', _('Fan Love'), ''); } else { if ($mxuser->id == $user->id) { $str = mx_icon('melove', _('Love Me'), ''); } else { $str = mx_icon('nolove', _('I LOVE THIS!'), '', 'il_' . $user->id, 'nolovehover', 'class'); } } } } $html = str_replace('{ILOVE}', $str, $html); } if (strpos($html, '{SUBSCRIBE}') > 0 && $mxuser->id && $mxuser->id != $user->id && $user->status != MXACCTDISABLED && ($user->pubcnt >= MXMINIMUMMEDIA || is_admin())) { $subscribefoy = _('1-Year: ${FOY}'); //$subscribefofa=_('{FOFAYRS}: ${FOFA}'); //$upgradefofa=_('Upgrade: ${FOFAUPG}'); $subfoybtn = array(1, $subscribefoy, 'g-button', 'subs1year', '<b>F</b>an <b>O</b>ne <b>Y</b>ear (FOY)<br/>This fanship entitles you to <b>listen to and download all media</b>, <u>from this artist' . ' exclusively</u>, <b>during 1 year</b>. After the first renewal in 1 year, ' . 'you will get access to this artist\'s media forever.'); $subfofabtn = array(1, $subscribefofa, 'g-button', 'subsforever', '<b>F</b>an <b>O</b>nce <b>F</b>an <b>A</b>lways (FOFA)<br/>This fanship entitles you to <b>download all media</b>, <u>from this artist' . ' exclusively</u>, <b>forever</b>'); $subfofaupgbtn = array(1, $upgradefofa, 'g-button', 'subsforeverupg', 'This upgrade entitles you to <b>download all media</b>, <u>from this artist' . ' exclusively</u>, <b>forever</b>'); if ($hassub == MXSUBFOFA || $hassub == MXUPGFOFA) { $subscribetxt = _('You\'re a Fan, FOREVER!'); $cansubfoy = false; $cansubfofa = false; $canupgfofa = false; } else { if ($hassub == MXSUBFOY) { if ($autorenew) { $subscribetxt = _('Auto-Renewal Enabled'); } else { $subscribetxt = _('Auto-Renewal Disabled'); } $cansubfoy = false; $cansubfofa = false; $canupgfofa = false; } else { $subscribetxt = sprintf(_('Subscribe to this %s'), $user->acctype == MXACCOUNTARTIST ? _("Artist") : _("Band")); $cansubfoy = true; $cansubfofa = false; $canupgfofa = false; } } $addcart = '<form style="display:inline" name="addtocart" action="' . mx_pageurl('cart') . '" method="POST">' . '<div class="title"><img src="' . mx_option('templateURL') . '/icons/cart.png" />' . ' ' . $subscribetxt . '</div>' . '<input type="hidden" name="id" value="' . $user->id . '">' . '<input type="hidden" name="a" value="">' . ($cansubfoy ? mx_formfield('addfoy', $subscribefoy, $subfoybtn) : '') . ($cansubfofa ? mx_formfield('addfofa', $subscribefofa, $subfofabtn) : '') . ($canupgfofa ? mx_formfield('upgfofa', $upgradefofa, $subfofaupgbtn) : '') . '</form>'; $html = str_replace('{SUBSCRIBE}', $addcart, $html); } else { if ($user->status == MXACCTDISABLED) { $html = str_replace('{SUBSCRIBE}', _('Sorry, this account is no more active.'), $html); } else { if ($mxuser->id == $user->id) { $html = str_replace('{SUBSCRIBE}', _('Hey! You\'re an artist!!'), $html); } else { $logfirst = '<div class="title"><img src="' . mx_option('templateURL') . '/icons/cart.png" /> ' . _('to become a FAN...') . '</div>' . sprintf(_('%s or %s'), '<a href="' . mx_actionurl('account', 'signin', '', '', 'artists,artprof,' . $user->id) . '" alt="' . _('Sign-in') . '">' . mx_icon('signinbtn', _('Sign-in'), '', 'xx', 'signinbtnhover') . '</a>', '<a href="' . mx_actionurl('account', 'register', '', '', 'artists,artprof,' . $user->id, '', 'i=' . $user->invitecode) . '" alt="' . _('Register') . '">' . mx_icon('registerbtn', _('Register'), '', 'xx', 'registerbtnhover') . '</a>'); $html = str_replace('{SUBSCRIBE}', $logfirst, $html); } } } // fans stats $fanstats = '<table><tr><th>' . _('Stats') . '</th></tr>' . '<tr><td><a href="javascript:tabswitch(\'GENERAL\',\'SUBSCRIPTIONS\');">' . _('Fanships') . '</a>' . '<br/>' . _('FOFA:') . ' ' . $sfofa . '<br/>' . _('FOY:') . ' ' . $sfoy . '<br/>' . _('Likes:') . ' ' . $slike . '<br/><span class="stattotal">' . _('Total:') . ' ' . $stotal . '</span>' . '</td></tr>' . '</table>'; $html = str_replace('{FANSTATS}', $fanstats, $html); // artists stats $stats = '<table><tr><th>' . _('Stats') . '</th></tr>' . '<tr><td class="first"><a href="javascript:tabswitch(\'GENERAL\',\'MEDIA\');">' . _('Media') . '</a>' . '<br/><span class="stathdr">' . _('Uploaded') . '</span><br/>' . $user->mediacnt . ($user->mediacnt != MXNOTINFORMED ? ' (' . mx_size($user->mediasize) . ')' : '') . '<br/><span class="stathdr">' . _('Published') . '</span><br/>' . $user->pubcnt . ' (' . mx_size($user->pubsize) . ')</td></tr>' . '<tr><td><a href="javascript:tabswitch(\'GENERAL\',\'SUBSCRIBERS\');">' . _('Fans') . '</a>' . '<br/>' . _('FOFA:') . ' ' . $user->subfofa . '<br/>' . _('FOY:') . ' ' . $user->subfoy . '<br/>' . _('Likes:') . ' ' . $user->sublike . '<br/><span class="stattotal">' . _('Total:') . ' ' . $user->subcnt . '</span>' . '</td></tr>' . '</table>'; $html = str_replace('{STATS}', $stats, $html); $html = str_replace('{FOY}', MXFEEFOY, $html); $html = str_replace('{FOFA}', MXFEEFOFA, $html); $html = str_replace('{FOFAUPG}', sprintf('%.2d', MXFEEFOFA - MXFEEFOY), $html); $html = str_replace('{FOFAYRS}', MXFOFAYRS, $html); $html = str_replace('{FREE}', MXFEEFREE, $html); $html = str_replace('{BASIC}', MXFEEBASIC, $html); $html = str_replace('{PLUS}', MXFEEPLUS, $html); $html = str_replace('{PREMIUM}', MXFEEPREMIUM, $html); $html = str_replace('{1SONG}', MXFEE1SONG, $html); $html = str_replace('{SONGS}', MXFEESONGS, $html); $html = str_replace('{SETUPFEE}', MXFEESETUP, $html); $html = str_replace('{siteurl}', mx_option('siteurl'), $html); $html = str_replace('{WALL}', mx_showuserwallstr($user), $html); $html = str_replace('{MYREVIEWS}', _('Available Soon'), $html); $chats = '<iframe class="chat" src="../ext_includes/chat/index.php"></iframe>'; $html = str_replace('{SHOWS}', _('Available Soon'), $html); $html = str_replace('{CHATS}', _('Available Soon'), $html); $html = str_replace('{MENTIONS}', _('Available Soon'), $html); $fbreviews = '<div class="fb-comments" data-href="' . mx_actionurl('artists', 'artprof', $user->id) . '" data-num-posts="10" data-width="540"></div>'; $html = str_replace('{REVIEWS}', $fbreviews, $html); if (strpos($html, '{SHARE}') > 0) { $tools = mx_sharetools($user->id, true); } // artists tools if (strpos($html, '{SHAREFAN}') > 0) { $tools = mx_sharetools($user->id, false); } // fans tools $html = str_replace('{SHARE}', $tools, $html); // for artists $html = str_replace('{SHAREFAN}', $tools, $html); // for fans $html = str_replace('{QRCODE}', mx_qrcode($user, true), $html); // for artists $html = str_replace('{QRCODEFAN}', mx_qrcode($user, false), $html); // for fans // build tabs if needed $realnames = array('MEDIA' => _('Media'), 'GENERAL' => _('Info'), 'WALL' => _('Wall'), 'SHOWS' => _('Shows'), 'MENTIONS' => _('Mentions'), 'REVIEWS' => _('Reviews'), 'SUBSCRIBERS' => _('Fans'), 'LIKERS' => _('Likers'), 'MYREVIEWS' => _('My Reviews'), 'SUBSCRIPTIONS' => _('Fanships'), 'LIKES' => _('Likes'), 'FRIENDS' => _('Friends'), 'CHATS' => _('Chats'), 'SHARE' => _('Share!'), 'RESTRICTED' => _('RESTRICTED')); if (strpos($html, '{TABS}') > 0) { $html = str_replace('{TABS}', '<div class="form"><table><tr><td>', $html); $html = str_replace('{/TABS}', '</td></tr></table></div>', $html); $tabs = preg_match_all('%{TAB:([*+]?)([^}]+)}%', $html, $tabnames); $group = mx_secureword($_REQUEST['k']); if (!$group || !array_search($group, $tabnames[2])) { $group = $tabnames[2][0]; } for ($i = 0; $i < $tabs; $i++) { //$newtab='<div id="artist_'.($form?'f_':'').$i.'" class="'.$style.((($i==$group) && !$form)?'':' hidden').'">'; $newtab = '<div id="' . $tabnames[2][$i] . ($form ? '_f' : '') . '" class="' . $style . ($tabnames[2][$i] == $group && !$form ? '' : ' hidden') . '">'; //$newtab.='<form name="artist_'.$i.'" method="POST" enctype="multipart/form-data"' . // ' onsubmit="return checkform(\'artist_'.$i.'\');">'; $newtab .= '<table><tr><td>'; $newtab .= '<fieldset>'; for ($j = 0; $j < $tabs; $j++) { $tabclass = ''; if ($tabnames[1][$j] == '*') { if (!is_admin()) { continue; } $tabclass = ' admin'; } else { if ($tabnames[1][$j] == '+') { if ($mxuser->id != $user->id && !is_admin()) { continue; } if ($mxuser->id == $user->id) { $tabclass = ' owner'; } else { $tabclass = ' admin'; } } } if ($i == $j) { $newtab .= '<legend class="seltab' . $tabclass . '">' . $realnames[$tabnames[2][$i]] . '</legend>'; } else { $newtab .= '<legend class="tab' . $tabclass . '"><a href="javascript:tabswitch(\'' . $tabnames[2][$i] . '\',\'' . $tabnames[2][$j] . '\');"' . ' alt="' . $realnames[$tabnames[2][$j]] . '">' . $realnames[$tabnames[2][$j]] . '</a></legend>'; } } $html = str_replace($tabnames[0][$i], $newtab, $html); } //$html=str_replace('{/TAB}','</td></tr></table></fieldset></td></tr>',$html); $str = '</fieldset></td></tr></table>'; //$str.='</form>'; $str .= '</div>'; $html = str_replace('{/TAB}', $str, $html); } // link to add as a friend if ($user->id == $mxuser->id) { $befriend = _('Hey, this is you!!'); } else { if ($mxuser->isfriend($user->id)) { $befriend = sprintf('%s<br/>%s', _('This is one of your friends'), '<a href="' . mx_actionurl('account', 'messages', 'sm:' . $user->id, 'writemsg') . '">' . _('Send a Message') . '</a>'); if ($user->acctype == MXACCOUNTARTIST) { $befriend .= '<br/><a href="' . mx_actionurl('artists', 'artprof', $user->id) . '">' . _('See Artist Page') . '</a>'; } } else { $befriend = '<a href="' . mx_actionurl('account', 'messages', 'af:' . $user->id, 'writemsg') . '">' . _('Request Friendship') . '</a>'; /* if (is_admin()) { $befriend.='<br/><a href="'.mx_actionurl('artists','artprof',$user->id).'">'._('See Artist Page [ADM]').'</a>'; } */ } } $html = str_replace('{BEFRIEND}', $befriend, $html); $friends = $mxuser->getfriends($user->id); if (!$friends) { $friendslist = _('This person\'s friends list is hidden.'); } else { if (!count($friends['confirmed'])) { $friendslist = _('This person\'s friends list is empty.'); } else { $friendslist = mx_showdirstr($friends['confirmed']); } } $html = str_replace('{FRIENDS}', $friendslist, $html); $html = preg_replace('%\\r?\\n\\r?\\n%', '<br/><br/>', $html); // graphic stats if (strpos($html, '{MYSTATS}') > 0 && ($user->id == $mxuser->id || is_admin())) { $mystats = mx_statsstr($user); $html = str_replace('{MYSTATS}', $mystats, $html); } $html = str_replace('{PRICE}', '<table class="buymedia"><tr><td>', $html); $html = str_replace('{PRICE2}', '</td><td>', $html); $html = str_replace('{PRICE3}', '</td></tr></table>', $html); $media->purchase = str_replace('{PRICE}', '<table class="buymedia"><tr><td>', $media->purchase); $media->purchase = str_replace('{PRICE2}', '</td><td>', $media->purchase); $media->purchase = str_replace('{PRICE3}', '</td></tr></table>', $media->purchase); // media pages $html = str_replace('{MEDIASCHEMA}', $media->schema, $html); $html = str_replace('{BUYTAG}', $media->pricetag, $html); $html = str_replace('{BUYMEDIA}', $media->purchase, $html); $html = str_replace('{MEDIAMETA}', $media->meta, $html); $html = str_replace('{MEDIA_TITLE}', $media->title, $html); $html = str_replace('{MEDIA_DESC}', $media->description . $media->content, $html); $html = str_replace('{MEDIA_PIC}', $media->mediapic, $html); $html = str_replace('{MEDIA_BUTTONS}', $media->buttons ? '<div class="mediabuttons"><div id="player">' . $media->buttons . '</div></div>' : '', $html); if (strpos($html, '{MEDIA_CONTENT}') > 0) { if ($media->type == MXMEDIABASEBUNDLE || $media->type == MXMEDIAREGULARBUNDLE) { $mediatable = mx_xmlbundle($media->id, 'media', '', false); $mediatable = str_replace('pubmed', 'pubmed bundled bun_' . $media->id, $mediatable); $mediatable = preg_replace('%input_.%', 'bundled', $mediatable); $submedia = '<table class="mediadetails">'; $submedia .= '<tr><td><h5>' . _('Medias') . '</h5></td></tr>'; $submedia .= $mediatable . '</table>'; } else { $submedia = '<table class="mediadetails">'; $submedia .= '<tr><td><h5>' . (count($media->bundles) > 1 ? _('Bundles') : _('Bundle')) . '</h5></td></tr>'; foreach ($media->bundles as $bundle) { $submedia .= '<tr class="pubmed bundled"><td class="msgcell bundled media_mediadata">' . '<div class="bundledetails" itemprop="inAlbum" itemscope itemtype="http://schema.org/MusicAlbum">' . '<div class="bundleminipic">' . '<a href="' . mx_actionurl('media', 'medprof', $bundle->id) . '" title="' . $bundle->title . ' - ' . _('See Media Page') . '" class="pictooltip" itemprop="url">' . $bundle->mediapic . '</a>' . '</div>' . '<div class="bundletitle" itemprop="name">' . $bundle->title . '</div>' . '<div class="bundledesc" itemprop="description">' . $bundle->description . '</div>' . '</div></td>' . '</tr>'; } $submedia .= '</table>'; } $html = str_replace('{MEDIA_CONTENT}', $submedia, $html); } $html = str_replace('{ARTISTLINK}', mx_actionurl('artist', 'artprof', $user->id), $html); if (strpos($html, '{ARTISTBUTTON}') > 0) { $artistbutton = '<div class="artistpic" itemprop="byArtist" itemscope itemtype="http://www.schema.org/MusicGroup">' . '<a href="' . mx_actionurl('artists', 'artprof', $user->id) . '" title="' . mx_getartistname($user) . ' - ' . _('See Page') . '" class="pictooltip" itemprop="url">' . '<img tag="' . $user->id . '" class="artistpic" src="' . mx_artpic($user->id, 'large', $user->gender) . '" itemprop="image">' . '</a>' . '<br/><span itemprop="name">' . mx_getartistname($user) . '</span>' . '</div>'; $html = str_replace('{ARTISTBUTTON}', $artistbutton, $html); } if (strpos($html, '{USERSHARE}') > 0) { $url = $user->acctype == MXACCOUNTFAN ? mx_actionurl('fans', 'fanprof', $user->id) : mx_actionurl('artists', 'artprof', $user->id); if (!is_logged()) { $sharebutton = mx_sharebuttons('u_' . $user->id, $url, mx_artpic($user->id, 'large', $user->gender), $user->shortbio); } else { $sharebutton = ''; } $html = str_replace('{USERSHARE}', $sharebutton, $html); } if (strpos($html, '{MEDIASHARE}') > 0) { $url = mx_option('basicsiteurl') . '/m/' . $media->id; if (!is_logged()) { $sharebutton = mx_sharebuttons('m' . $media->id, $url, $media->pic, $media->description); } else { $sharebutton = ''; } $html = str_replace('{MEDIASHARE}', $sharebutton, $html); } // -end user stuff if ($html) { echo $html; } else { __('(Content not yet ready)'); } if ($simul == 'public') { ?> <script> simul=$('<div class="simulation"><?php __('Public View'); ?> </div>'); simul.appendTo($('.artisttmpl1')); </script> <?php $mxuser = new MXUser(); } }
function mx_content() { global $mxuser; $locale = $mxuser->locale ? $mxuser->locale : 'en_US'; // message and media frame echo '<div id="contentframe" class="contentframe form list">'; echo '<div></div>'; //media or message will be inserted here echo '</div>'; // contentframe echo '<div id="overlay"></div>'; if (array_key_exists('q', $_REQUEST)) { $query = mx_securestring(urldecode($_REQUEST['q'])); } if ($query) { $page = 'search'; $option = ''; $action = $query; } else { $page = mx_secureword($_REQUEST['p']); if (!$page) { $page = 'main'; } $option = mx_secureword($_REQUEST['o']); $action = mx_secureword($_REQUEST['a']); } // log it! $referer = $_SERVER['HTTP_REFERER']; if (preg_match('%^https?://[^.]+.musxpand.[^/]+%', $referer) > 0) { $referer = ''; } $mxuser->logme($page, $option, $action, $referer); // define page and option functions $pagefunc = 'mx_mn' . $page; $optionfunc = 'mx_mn' . $option; if (MXDEFFEATURES & MXFTDROPMENU) { if (function_exists($pagefunc)) { $pagefunc($page, $option, $action); } if (function_exists($optionfunc)) { $optionfunc($page, $option, $action); } return; } if ($mxuser->id || $page != 'main') { mx_pagetitle($page, mx_pagename($page)); } if ($page == 'artists' && $option == 'artprof' || $page == 'fans' && $option == 'fanprof') { $pagefunc($page, $option, $action); $optionfunc($page, $option, $action); return; } if (function_exists($pagefunc)) { $pagefunc($page, $option, $action); $ok = 1; } else { mx_showhtmlpage($page); } if ($option) { mx_optiontitle($option, mx_optionname($page, $option)); if (function_exists($optionfunc)) { $optionfunc($page, $option, $action); $ok = 1; } else { mx_showhtmlpage($option); } } }
You should have received a copy of the GNU General Public License along with musxpand. If not, see <http://www.gnu.org/licenses/>. Copyright � 2010 by Philippe Hilger */ require 'includes/mx_walls.php'; if (basename($_SERVER['PHP_SELF']) == basename(__FILE__)) { if (!$mxuser->id) { return; } $msgid = trim(strtolower(preg_replace('![^0-9]!', '', mx_secureword($_REQUEST['m'])))); $like = mx_secureword($_REQUEST['l']); $dislike = mx_secureword($_REQUEST['d']); $b = mx_securestring($_REQUEST['b']); $a = mx_securestring($_REQUEST['a']); $k = mx_securestring($_REQUEST['k']); if (!$msgid) { return; } if ($a == 'd') { // delete wall die($mxuser->markwalldeleted($msgid)); } //$fld=mx_securestring($_REQUEST['f']); if ($b) { $msg = new StdClass(); $msg->body = $b; $msg->filter = MXSHAREALL; $msg->refid = mx_getrefid('wallid', $msgid); $mxuser->saveupdate($msg); $like = 0;
function mx_sendmessage() { global $mxuser, $status; $msg = new StdClass(); //die(phpinfo()); $msg->to = mx_securestring($_REQUEST['h_to']); $msg->subject = mx_securestring($_REQUEST['subject']); $msg->body = mx_securestring($_REQUEST['body']); $msg->flags = mx_securestring($_REQUEST['flags']); $msg->priority = mx_securestring($_REQUEST['priority']); $receiver = $mxuser->getuserinfo($msg->to); if ($mxuser->sendmessage($msg)) { $status = sprintf(_('Your %s to %s was just sent!'), $msg->flags & MXREQUEST ? _('request') : _('message'), $receiver->fullname); } else { $status = sprintf(_('Your %s to %s was not sent...'), $msg->flags & MXREQUEST ? _('request') : _('message'), $receiver->fullname); } }
GNU General Public License for more details. You should have received a copy of the GNU General Public License along with musxpand. If not, see <http://www.gnu.org/licenses/>. Copyright � 2010 by Philippe Hilger */ require 'includes/mx_artists.php'; if (basename($_SERVER['PHP_SELF']) == basename(__FILE__)) { if (!$mxuser->id) { return; } $aid = trim(strtolower(preg_replace('![^0-9]!', '', mx_secureword($_REQUEST['i'])))); $like = mx_secureword($_REQUEST['l']); $dislike = mx_secureword($_REQUEST['d']); $r = mx_securestring($_REQUEST['r']); if (!$aid) { return; } if ($r) { //TODO review /* $msg=new StdClass(); $msg->body=$b; $msg->filter=MXSHAREALL; $msg->refid=$msgid; $mxuser->saveupdate($msg); $like=0; $dislike=0; */ }
function mx_dropmenu() { global $mx_dropmenu, $mxuser; $page = mx_secureword($_GET['p']); $option = mx_secureword($_GET['o']); $action = mx_securestring($_REQUEST['a']); if ($option == 'signin' || $option == 'register') { $tag = 'l'; } else { if ($page == 'artists' && $option == 'artprof') { $tag = 'a:' . $action; } else { if ($page == 'fans' && $option == 'fanprof') { $tag = 'f:' . $action; } else { if ($page == 'account') { $tag = 'p:' . $mxuser->id; } else { if ($page == 'media' && $option == 'medprof') { $tag = 'm:' . $action; } else { if ($page == '' || $page == 'main') { $tag = 'l'; } else { $tag = ''; } } } } } } echo '<div class="dropmenu" tag="' . $tag . '"><ul>'; foreach ($mx_dropmenu as $action => $actiondetails) { if (!$actiondetails[0] || $actiondetails[0] == 3 && is_logged() || $actiondetails[0] == 10 && is_artist()) { echo '<li>'; if ($action == 'cartdrop' && $mxuser->cart->items) { echo '<div class="number"><div id="cartitems">' . $mxuser->cart->items . '</div></div>'; } else { if ($action == 'maildrop' && $mxuser->newmsgs) { echo '<div class="number"><div id="newmsgs">' . $mxuser->newmsgs . '</div></div>'; } else { if ($action == 'lovedrop' && $mxuser->subs['changed'] > 0) { echo '<div class="number"><div id="newmsgs">' . $mxuser->subs['changed'] . '</div></div>'; } } } echo mx_icon($action, $actiondetails[1], 48, 'act_' . $action, $action . 'hover'); echo '</li>'; } } echo '</ul></div>'; }
function mx_ckcart($page, $option, $action) { global $mxuser, $prodtypes, $subtypes, $prodprice; $cartid = mx_secureword($_REQUEST['cartid']); $token = mx_securestring($_GET['token']); $cart = $mxuser->getcart($cartid ? $cartid : null, $action == 'printorder' || $action == 'confckout'); // get informed cart, pending cart or open new one if ($token && $action == '') { $action = 'ppcall'; } //if ($action=='pp-checkout' || $action=='confckout') { $cart->lines = $mxuser->getcartdetails($cart->id); $cart->total = 0; foreach ($cart->lines as $line) { //if ($line->prodtype!=MXARTSUB || $line->prodvar!=MXSUBFOY) $cart->total += $line->price; if ($line->prodtype == MXARTSUB) { $user = $mxuser->getuserinfo($line->prodref); $line->name = htmlentities(substr(mx_getartistname($user), 0, 80)); } else { if ($line->prodtype == MXSITESUB) { $line->name = sprintf('Account #%d', $mxuser->id); } else { if ($line->prodtype == MXMEDSUB) { $media = $mxuser->getmediainfo($line->prodref); $line->name = htmlentities(substr($media->title, 0, 80)); } else { $line->name = _('Unnamed Product'); } } } $line->desc = $prodtypes[$line->prodtype][0] . ', ' . $prodtypes[$line->prodtype][1][$line->prodvar]; } switch ($cart->taxcountrycode) { // Add for CANADIAN TAXES /* case 'CA': $cart->taxes=$cart->total*MXTAXHST; break; */ default: $cart->taxes = 0; break; } $cart->items = count($cart->lines); //} switch ($action) { // adding to cart case 'addfoy': case 'addfofa': case 'upgfofa': $subnum = 0; $artistid = mx_secureword($_REQUEST['id']); $prodvar = $action == 'addfoy' ? MXSUBFOY : ($action == 'addfofa' ? MXSUBFOFA : MXUPGFOFA); $price = $action == 'addfoy' ? MXFEEFOY : ($action == 'addfofa' ? MXFEEFOFA : MXFEEFOFA - MXFEEFOY); foreach ($cart->lines as $line) { $subnum += $line->prodtype == MXARTSUB && $line->prodref != $artistid ? 1 : 0; } if ($subnum < 10) { $mxuser->addcart($cart->id, MXARTSUB, $artistid, $prodvar, $price); $prodprice = $price; } else { $cart->err = array('sorry' => _('We\'re sorry but our payment processing' . ' company<br/>limits the number of yearly fanships per order to 10.<br/>' . ' In case you would like to become a fan of more than 10 artists,<br/>' . ' please do it in separate orders. Thank you.')); } //$mxuser->addwish(MXARTSUB,$artistid,$prodvar,$price); $cart->progress = 1; break; //case 'freesub': //case 'freesub': case 'basicsub': case 'plussub': case 'premsub': $subnum = 0; $prodref = -1; // site wide (no ref) $prodvar = $subtypes[$action]; // site subscription type if ($action == 'freesub') { $price = MXFEEFREE; } else { if ($action == 'basicsub') { $price = MXFEEBASIC; } else { if ($action == 'plussub') { $price = MXFEEPLUS; } else { if ($action == 'premsub') { $price = MXFEEPREMIUM; } } } } foreach ($cart->lines as $line) { $subnum += $line->prodtype != MXSITESUB ? 1 : 0; } if ($subnum < 10) { $mxuser->addcart($cart->id, MXSITESUB, $prodref, $prodvar, $price); $prodprice = $price; } else { $cart->err = array('sorry' => _('We\'re sorry but our payment processing' . ' company<br/>limits the number of subscriptions per order to 10.<br/>' . ' In case you would like to make more than 10 subscriptions,<br/>' . ' please do so in separate orders. Thank you.')); } //$mxuser->addwish(MXSITESUB,$artistid,$prodvar,$price); $cart->progress = 1; break; case 'medbuy': $prodref = preg_replace('%[^0-9]%', '', mx_secureword($_REQUEST['m'])); $media = $mxuser->getmediainfo($prodref); if ($media->type == MXMEDIABASEBUNDLE || $media->type == MXMEDIAREGULARBUNDLE) { $price = $media->cartprice; //round(MXFEESONGS*($media->tracks+($media->bigpics>4?($media->bigpics-4):0)+$media->videos),2); $prodvar = MXBUYBUNDLE; } else { if ($media->type == MXMEDIAINSTR || ($media->type = MXMEDIASONG)) { $price = $media->cartprice; //MXFEE1SONG; $prodvar = MXBUYMEDIA; } else { $price = $media->cartprice; //MXFEE1SONG; $prodvar = MXBUYMEDIA; } } $mxuser->addcart($cart->id, MXMEDSUB, $prodref, $prodvar, $price); $cart->progress = 1; break; case 'medunbuy': $prodref = preg_replace('%[^0-9]%', '', mx_secureword($_REQUEST['m'])); $prodline = 0; foreach ($cart->lines as $line) { if ($line->prodtype == MXMEDSUB && $line->prodref == $prodref) { $prodline = $line->id; } } if ($prodline) { $mxuser->deletecart($cart->id, array($prodline)); } $cart->progress = 1; break; case 'delcart': $cartlines = $_POST['cartline']; $mxuser->deletecart($cart->id, $cartlines); $cart->progress = 1; break; case 'delwish': $wishlines = $_POST['wishline']; $mxuser->deletewish($wishlines); $cart->progress = 1; break; case 'tocart': $wishlines = $_POST['wishline']; $mxuser->wishtocart($cart->id, $wishlines); $_REQUEST['k'] = 'cart'; $cart->progress = 1; break; case 'towish': $cartlines = $_POST['cartline']; $mxuser->carttowish($cart->id, $cartlines); $cart->progress = 1; break; case 'shopmore': case 'shopmore_w': header('location: ' . mx_optionurl('artists', 'artsdir')); $cart->progress = 1; break; case 'checkout': $cart->progress = 2; $mxuser->setcart($cart->id, 'status', MXCARTCHECKOUTADDRESS); break; case 'pp-checkout': $mxuser->setcart($cart->id, 'status', MXCARTCHECKOUTPAYPAL); $cart->err = mx_checkout($cart); // at this point we should have been redirected to paypal, otherwise: not good :( $cart->progress = 2; break; case 'ppcall': /* die(phpinfo()); preg_match_all('%([a-zA-Z0-9_]+)=([^&]+)%',$_SERVER['REQUEST_URI'],$ppparams); foreach ($ppparams[1] as $key => $elem) { $ppal[$elem]=$ppparams[2][$key]; } */ $orderinfo = mx_orderreview(); $cart->orderinfo = $orderinfo; $billadd = array('addresstype' => MXBILLINGADDRESS, 'cartid' => $cart->id, 'email' => $orderinfo['EMAIL'], 'salutation' => $orderinfo['SALUTATION'], 'first' => $orderinfo['FIRSTNAME'], 'middle' => $orderinfo['MIDDLENAME'], 'last' => $orderinfo['LASTNAME'], 'suffix' => $orderinfo['SUFFIX'], 'business' => $orderinfo['BUSINESS'], 'pppayerid' => $orderinfo['PAYERID'], 'pppayerstatus' => $orderinfo['PAYERSTATUS']); $shipadd = array('addresstype' => MXSHIPPINGADDRESS, 'cartid' => $cart->id, 'shiptoname' => $orderinfo['SHIPTONAME'], 'street1' => $orderinfo['SHIPTOSTREET'], 'street2' => $orderinfo['SHIPTOSTREET2'], 'city' => $orderinfo['SHIPTOCITY'], 'state' => $orderinfo['SHIPTOSTATE'], 'countrycode' => $orderinfo['SHIPTOCOUNTRYCODE'], 'zip' => $orderinfo['SHIPTOZIP'], 'addressstatus' => $orderinfo['ADDRESSSTATUS'], 'phone' => $orderinfo['SHIPTOPHONENUM']); $mxuser->clearaddresses($cart->id); $billid = $mxuser->addaddress($billadd); $shipid = $mxuser->addaddress($shipadd); $mxuser->setcart($cart->id, 'billingid', $billid); $mxuser->setcart($cart->id, 'shippingid', $shipid); $mxuser->setcart($cart->id, 'status', MXCARTCONFIRM); $mxuser->setcart($cart->id, 'memo', $orderinfo['PAYMENTREQUEST_0_NOTETEXT']); $mxuser->setcart($cart->id, 'invoicenum', $orderinfo['INVNUM']); $mxuser->setcart($cart->id, 'taxcountrycode', $shipadd['countrycode']); $cart->taxcountrycode = $shipadd['countrycode']; $cart->progress = 3; break; case 'ppcancel': // cancelled in paypal // cancelled in paypal case 'canckout': // cancelled at order review /* preg_match_all('%([a-zA-Z0-9_]+)=([^&]+)%',$_SERVER['REQUEST_URI'],$ppparams); foreach ($ppparams[1] as $key => $elem) { $ppal[$elem]=$ppparams[2][$key]; } */ //die(phpinfo()); $cart->progress = 1; // cancel token for paypal session $mxuser->setcart($cart->id, 'token', ''); $mxuser->setcart($cart->id, 'status', $action == 'ppcancel' ? MXCARTCANCELLEDFROMPAYPAL : MXCARTCANCELLEDFROMCONFIRM); // remove billing/shipping addresses $mxuser->deladdress($cart->billingid); $mxuser->deladdress($cart->shippingid); $mxuser->setcart($cart->id, 'billingid', ''); $mxuser->setcart($cart->id, 'shippingid', ''); $cart->info = _('You just canceled the checkout process.<br/>' . 'You can make changes to your cart, adding new items to it<br/>' . ' or moving some items to your wish list for a later purchase.'); break; case 'confckout': case 'printorder': /* die(phpinfo()); preg_match_all('%([a-zA-Z0-9_]+)=([^&]+)%',$_SERVER['REQUEST_URI'],$ppparams); foreach ($ppparams[1] as $key => $elem) { $ppal[$elem]=$ppparams[2][$key]; } */ $cart->paymentoption = mx_securestring($_POST['paymentoption']); if (!$cart->transactionid) { // first submit (saving payment to DB) if ($cart->total > 0) { $orderconfirm = mx_orderconfirmation($cart); $cart->orderconfirm = $orderconfirm; $paymentinfo = array('transactionid' => $orderconfirm['PAYMENTINFO_0_TRANSACTIONID'], 'ordertime' => preg_replace('%[^0-9]%', '', $orderconfirm['PAYMENTINFO_0_ORDERTIME']), 'total' => $orderconfirm['PAYMENTINFO_0_AMT'], 'paypalfee' => $orderconfirm['PAYMENTINFO_0_FEEAMT'], 'taxes' => $orderconfirm['PAYMENTINFO_0_TAXAMT'], 'currency' => $orderconfirm['PAYMENTINFO_0_CURRENCYCODE'], 'paymentstatus' => $orderconfirm['PAYMENTINFO_0_PAYMENTSTATUS'], 'pendingreason' => $orderconfirm['PAYMENTINFO_0_PENDINGREASON'], 'reasoncode' => $orderconfirm['PAYMENTINFO_0_REASONCODE'], 'receiptid' => $orderconfirm['PAYMENTINFO_0_RECEIPTID'], 'status' => MXCARTCONFIRMED); } else { // subscriptions only $cart->orderconfirm = array(); $paymentinfo = array('paymentstatus' => 'Pending', 'pendingreason' => 'RecurrentPaymentValidation', 'status' => MXCARTCONFIRMED); } $mxuser->setcartbatch($cart->id, $paymentinfo); mx_addsubs($mxuser->id, $cart->id); if ($paymentinfo['paymentstatus'] == 'Completed') { mx_confirmcart($mxuser->id, $cart->id); } foreach ($cart->lines as $line) { if ($line->prodtype == MXARTSUB && $line->prodvar == MXSUBFOY || $line->prodtype == MXSITESUB && $line->prodvar != MXSUBFREE) { $ppinfo = mx_recurrentpayment($cart, $line); mx_setsubinfo($mxuser->id, $line, $ppinfo); } } } else { // already confirmed do not submit again, but get the data from the DB instead... if ($cart->total > 0) { $orderconfirm = array('PAYMENTINFO_0_PAYMENTSTATUS' => $cart->paymentstatus, 'PAYMENTINFO_0_TRANSACTIONID' => $cart->transactionid, 'PAYMENTINFO_0_ORDERTIME' => $cart->ordertime, 'PAYMENTINFO_0_AMT' => $cart->total, 'PAYMENTINFO_0_TAXAMT' => $cart->taxes, 'PAYMENTINFO_0_CURRENCYCODE' => $cart->currency); } else { // subscriptions only $orderconfirm = array(); } $cart->orderconfirm = $orderconfirm; } $cart->info = _('Thanks for your order.<br/>We will activate your subscriptions and purchases' . '<br/>as soon as we get the confirmation of your payment.<br/>' . 'Please print this page for your records'); $cart->progress = 4; break; default: $cart->progress = 1; break; } // get new cart details if ($action != 'pp-checkout' && $action != 'confckout') { $cart->lines = $mxuser->getcartdetails($cart->id); } foreach ($cart->lines as $ndx => $line) { $note = ''; if ($line->prodtype == MXMEDSUB) { $media = $mxuser->getmediainfo($line->prodref); foreach ($cart->lines as $other) { //error_log('other: '.$other->prodtype.' '.$other->prodref); //error_log('bun[0]: '.$media->bundles[0]->id); if ($other->prodtype == MXARTSUB && $other->prodref == $media->owner_id) { $note = buywarn(sprintf(_('This media is already included in your subscription to %s'), $media->artistname)); //error_log('included sub!!'); } else { if ($other->prodtype == MXMEDSUB && $other->prodref == $media->bundles[0]->id) { $note = buywarn(sprintf(_('This media is already part of bundle "%s"'), $media->bundles[0]->title)); //error_log('included bundle!!'); } } } if ($media->owner_id == $mxuser->id) { $note = buywarn(_('Buying your own media...?')); } } else { if ($line->prodtype == MXARTSUB) { if ($line->prodref == $mxuser->id) { $note = buywarn(_('Hey! That\'s your own account...')); } } } $cart->lines[$ndx]->note = $note; } $cart->items = count($cart->lines); $cart->wishes = $mxuser->getwishlist(); //$cart->items=count($cart->lines); $mxuser->cart = $cart; }
musxpand is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. musxpand is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with musxpand. If not, see <http://www.gnu.org/licenses/>. Copyright � 2010 by Philippe Hilger */ require 'includes/mx_init.php'; if (basename($_SERVER['PHP_SELF']) == basename(__FILE__)) { if (!$mxuser->id) { return; } $bloc = trim(strtolower(preg_replace('![^a-z]!', '', mx_secureword($_REQUEST['b'])))); // bloc name $mods = trim(strtolower(preg_replace('![^a-z,_]!', '', mx_securestring($_REQUEST['m'])))); // modules error_log('id:' . $mxuser->id . ' b:' . $bloc . ' m:' . $mods); if (!$mods || !$bloc) { return; } die(json_encode($mxuser->setmodules($bloc, $mods))); }