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'); }