Пример #1
0
function ciniki_artistprofiles_linkUpdate(&$ciniki)
{
    //
    // Find all the required and optional arguments
    //
    ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'prepareArgs');
    $rc = ciniki_core_prepareArgs($ciniki, 'no', array('business_id' => array('required' => 'yes', 'blank' => 'no', 'name' => 'Business'), 'link_id' => array('required' => 'yes', 'blank' => 'no', 'name' => 'Link'), 'artist_id' => array('required' => 'no', 'blank' => 'no', 'name' => 'Artist'), 'name' => array('required' => 'no', 'blank' => 'no', 'name' => 'Name'), 'url' => array('required' => 'no', 'blank' => 'no', 'name' => 'URL'), 'description' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Description')));
    if ($rc['stat'] != 'ok') {
        return $rc;
    }
    $args = $rc['args'];
    //
    // Make sure this module is activated, and
    // check permission to run this function for this business
    //
    ciniki_core_loadMethod($ciniki, 'ciniki', 'artistprofiles', 'private', 'checkAccess');
    $rc = ciniki_artistprofiles_checkAccess($ciniki, $args['business_id'], 'ciniki.artistprofiles.linkUpdate');
    if ($rc['stat'] != 'ok') {
        return $rc;
    }
    //
    // Check for link type
    //
    if (isset($args['url'])) {
        ciniki_core_loadMethod($ciniki, 'ciniki', 'artistprofiles', 'private', 'linkType');
        $rc = ciniki_artistprofiles_linkType($ciniki, $args['business_id'], $args['url']);
        if ($rc['stat'] != 'ok') {
            return $rc;
        }
        $args['link_type'] = $rc['link_type'];
    }
    //
    // Start transaction
    //
    ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbTransactionStart');
    ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbTransactionRollback');
    ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbTransactionCommit');
    ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbAddModuleHistory');
    $rc = ciniki_core_dbTransactionStart($ciniki, 'ciniki.artistprofiles');
    if ($rc['stat'] != 'ok') {
        return $rc;
    }
    //
    // Update the Link in the database
    //
    ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'objectUpdate');
    $rc = ciniki_core_objectUpdate($ciniki, $args['business_id'], 'ciniki.artistprofiles.link', $args['link_id'], $args, 0x4);
    if ($rc['stat'] != 'ok') {
        ciniki_core_dbTransactionRollback($ciniki, 'ciniki.artistprofiles');
        return $rc;
    }
    //
    // Commit the transaction
    //
    $rc = ciniki_core_dbTransactionCommit($ciniki, 'ciniki.artistprofiles');
    if ($rc['stat'] != 'ok') {
        return $rc;
    }
    //
    // Update the last_change date in the business modules
    // Ignore the result, as we don't want to stop user updates if this fails.
    //
    ciniki_core_loadMethod($ciniki, 'ciniki', 'businesses', 'private', 'updateModuleChangeDate');
    ciniki_businesses_updateModuleChangeDate($ciniki, $args['business_id'], 'ciniki', 'artistprofiles');
    return array('stat' => 'ok');
}
function ciniki_artistprofiles_dropboxDownloadLinks(&$ciniki, $business_id, $client, $artist, $details)
{
    ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dropboxOpenWebloc');
    ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'objectAdd');
    ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'objectUpdate');
    ciniki_core_loadMethod($ciniki, 'ciniki', 'artistprofiles', 'private', 'linkType');
    foreach ($details as $link) {
        $name = '';
        $url = '';
        $description = '';
        if (preg_match('/^.*\\/([^\\/]*)\\.webloc$/', $link['filename'], $matches)) {
            $name = $matches[1];
            $rc = ciniki_core_dropboxOpenWebloc($ciniki, $business_id, $client, $link['path']);
            if ($rc['stat'] != 'ok') {
                ciniki_core_dbTransactionRollback($ciniki, 'ciniki.artistprofiles');
                return $rc;
            }
            $url = $rc['url'];
        }
        if ($url != '') {
            $found = 'no';
            $found_link = null;
            $link_type = 1000;
            $rc = ciniki_artistprofiles_linkType($ciniki, $business_id, $url);
            if ($rc['stat'] != 'ok') {
                return $rc;
            }
            $link_type = $rc['link_type'];
            foreach ($artist['links'] as $artist_link) {
                if ($artist_link['url'] == $url && $artist_link['link_type'] == $link_type) {
                    $found = 'yes';
                    $found_link = $artist_link;
                    break;
                }
            }
            if (isset($artist['videos'])) {
                foreach ($artist['videos'] as $artist_link) {
                    if ($artist_link['url'] == $url && $artist_link['link_type'] == $link_type) {
                        $found = 'yes';
                        $found_link = $artist_link;
                        break;
                    }
                }
            }
            if ($found == 'no') {
                $rc = ciniki_core_objectAdd($ciniki, $business_id, 'ciniki.artistprofiles.link', array('artist_id' => $artist['id'], 'name' => $name, 'link_type' => $link_type, 'url' => $url, 'description' => $description), 0x4);
                if ($rc['stat'] != 'ok' && $rc['stat'] != 'exists') {
                    ciniki_core_dbTransactionRollback($ciniki, 'ciniki.artistprofiles');
                    return $rc;
                }
            } elseif ($found == 'yes') {
                $update_args = array();
                if ($found_link['url'] != $url) {
                    $update_args['url'] = $url;
                }
                if ($found_link['name'] != $name) {
                    $update_args['name'] = $name;
                }
                if (count($update_args) > 0) {
                    $rc = ciniki_core_objectUpdate($ciniki, $business_id, 'ciniki.artistprofiles.link', $found_link['id'], $update_args, 0x4);
                    if ($rc['stat'] != 'ok') {
                        ciniki_core_dbTransactionRollback($ciniki, 'ciniki.artistprofiles');
                        return $rc;
                    }
                }
            }
        }
    }
    return array('stat' => 'ok');
}