function ciniki_merchandise_imageList($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'))); if ($rc['stat'] != 'ok') { return $rc; } $args = $rc['args']; // // Check access to business_id as owner, or sys admin. // ciniki_core_loadMethod($ciniki, 'ciniki', 'merchandise', 'private', 'checkAccess'); $rc = ciniki_merchandise_checkAccess($ciniki, $args['business_id'], 'ciniki.merchandise.imageList'); if ($rc['stat'] != 'ok') { return $rc; } // // Get the list of images // $strsql = "SELECT ciniki_merchandise_images.id, " . "ciniki_merchandise_images.product_id, " . "ciniki_merchandise_images.name, " . "ciniki_merchandise_images.permalink, " . "ciniki_merchandise_images.sequence, " . "ciniki_merchandise_images.flags, " . "ciniki_merchandise_images.image_id, " . "ciniki_merchandise_images.description " . "FROM ciniki_merchandise_images " . "WHERE ciniki_merchandise_images.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . ""; ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQueryArrayTree'); $rc = ciniki_core_dbHashQueryArrayTree($ciniki, $strsql, 'ciniki.merchandise', array(array('container' => 'images', 'fname' => 'id', 'fields' => array('id', 'product_id', 'name', 'permalink', 'sequence', 'flags', 'image_id', 'description')))); if ($rc['stat'] != 'ok') { return $rc; } if (isset($rc['images'])) { $images = $rc['images']; } else { $images = array(); } return array('stat' => 'ok', 'images' => $images); }
function ciniki_conferences_presentationHistory($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'), 'presentation_id' => array('required' => 'yes', 'blank' => 'no', 'name' => 'Presentation'), 'field' => array('required' => 'yes', 'blank' => 'no', 'name' => 'field'))); if ($rc['stat'] != 'ok') { return $rc; } $args = $rc['args']; // // Check access to business_id as owner, or sys admin // ciniki_core_loadMethod($ciniki, 'ciniki', 'conferences', 'private', 'checkAccess'); $rc = ciniki_conferences_checkAccess($ciniki, $args['business_id'], 'ciniki.conferences.presentationHistory'); if ($rc['stat'] != 'ok') { return $rc; } if ($args['field'] == 'registration') { $strsql = "SELECT ciniki_conferences_attendees.id " . "FROM ciniki_conferences_presentations, ciniki_conferences_attendees " . "WHERE ciniki_conferences_presentations.id = '" . ciniki_core_dbQuote($ciniki, $args['presentation_id']) . "' " . "AND ciniki_conferences_presentations.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . "AND ciniki_conferences_presentations.customer_id = ciniki_conferences_attendees.customer_id " . "AND ciniki_conferences_presentations.conference_id = ciniki_conferences_attendees.conference_id " . "AND ciniki_conferences_attendees.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . ""; $rc = ciniki_core_dbHashQuery($ciniki, $strsql, 'ciniki.conferences', 'attendee'); if ($rc['stat'] != 'ok') { return $rc; } ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbGetModuleHistory'); return ciniki_core_dbGetModuleHistory($ciniki, 'ciniki.conferences', 'ciniki_conferences_history', $args['business_id'], 'ciniki_conferences_attendees', $rc['attendee']['id'], 'status'); } ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbGetModuleHistory'); return ciniki_core_dbGetModuleHistory($ciniki, 'ciniki.conferences', 'ciniki_conferences_history', $args['business_id'], 'ciniki_conferences_presentations', $args['presentation_id'], $args['field']); }
function ciniki_conferences_attendeeList($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'))); if ($rc['stat'] != 'ok') { return $rc; } $args = $rc['args']; // // Check access to business_id as owner, or sys admin. // ciniki_core_loadMethod($ciniki, 'ciniki', 'conferences', 'private', 'checkAccess'); $rc = ciniki_conferences_checkAccess($ciniki, $args['business_id'], 'ciniki.conferences.attendeeList'); if ($rc['stat'] != 'ok') { return $rc; } // // Get the list of attendees // $strsql = "SELECT ciniki_conferences_attendees.id, " . "ciniki_conferences_attendees.conference_id, " . "ciniki_conferences_attendees.customer_id, " . "ciniki_conferences_attendees.status " . "FROM ciniki_conferences_attendees " . "WHERE ciniki_conferences_attendees.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . ""; ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQueryArrayTree'); $rc = ciniki_core_dbHashQueryArrayTree($ciniki, $strsql, 'ciniki.conferences', array(array('container' => 'attendees', 'fname' => 'id', 'fields' => array('id', 'conference_id', 'customer_id', 'status')))); if ($rc['stat'] != 'ok') { return $rc; } if (isset($rc['attendees'])) { $attendees = $rc['attendees']; } else { $attendees = array(); } return array('stat' => 'ok', 'attendees' => $attendees); }
function ciniki_library_loadTags($ciniki, $business_id, $item_type) { // // Get the list of genres // $strsql = "SELECT DISTINCT CONCAT_WS('-', tag_type, tag_name) AS fname, tag_type, tag_name " . "FROM ciniki_library_items, ciniki_library_tags " . "WHERE ciniki_library_items.business_id = '" . ciniki_core_dbQuote($ciniki, $business_id) . "' " . "AND ciniki_library_items.item_type = '" . ciniki_core_dbQuote($ciniki, $item_type) . "' " . "AND ciniki_library_items.id = ciniki_library_tags.item_id " . "AND ciniki_library_tags.business_id = '" . ciniki_core_dbQuote($ciniki, $business_id) . "' " . ""; $strsql .= "GROUP BY fname "; $strsql .= "ORDER BY tag_type, tag_name "; $rsp = array('stat' => 'ok', 'genres' => array(), 'tags' => array(), 'lists' => array()); ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQueryTree'); $rc = ciniki_core_dbHashQueryTree($ciniki, $strsql, 'ciniki.library', array(array('container' => 'types', 'fname' => 'tag_type', 'name' => 'type', 'fields' => array('type' => 'tag_type')), array('container' => 'tags', 'fname' => 'fname', 'name' => 'tag', 'fields' => array('type' => 'tag_type', 'name' => 'tag_name')))); if ($rc['stat'] != 'ok') { return $rc; } if (isset($rc['types'])) { foreach ($rc['types'] as $tid => $type) { if ($type['type']['type'] == '20') { $rsp['genres'] = $type['type']['tags']; } elseif ($type['type']['type'] == '40') { $rsp['tags'] = $type['type']['tags']; } elseif ($type['type']['type'] == '60') { $rsp['lists'] = $type['type']['tags']; } } } return $rsp; }
function ciniki_artistprofiles_web_subMenuItems(&$ciniki, $settings, $business_id, $args) { if (!isset($ciniki['business']['modules']['ciniki.artistprofiles'])) { return array('stat' => '404', 'err' => array('pkg' => 'ciniki', 'code' => '3040', 'msg' => "I'm sorry, the file you requested does not exist.")); } // // Return nothing if the page format doesn't have a submenu // if (isset($settings['page-artistprofiles-submenu']) && $settings['page-artistprofiles-submenu'] != 'yes') { return array('stat' => 'ok', 'submenu' => array()); } $submenu = array(); // // Check if Categories is enabled // if (ciniki_core_checkModuleFlags($ciniki, 'ciniki.artistprofiles', 0x100)) { // // Load the settings for categories // ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbDetailsQueryDash'); $rc = ciniki_core_dbDetailsQueryDash($ciniki, 'ciniki_artistprofiles_settings', 'business_id', $business_id, 'ciniki.artistprofiles', 'settings', 'tag-category'); if ($rc['stat'] != 'ok') { return $rc; } if (isset($rc['settings'])) { $psettings = $rc['settings']; } else { $psettings = array(); } if (ciniki_core_checkModuleFlags($ciniki, 'ciniki.artistprofiles', 0x200)) { $submenu['featured'] = array('sequence' => 1, 'title' => 'Featured', 'sequence' => isset($psettings['tag-category-sequence-featured']) && $psettings['tag-category-sequence-featured'] != '' ? $psettings['tag-category-sequence-featured'] : 1, 'title' => isset($psettings['tag-category-title-featured']) && $psettings['tag-category-title-featured'] != '' ? $psettings['tag-category-title-featured'] : 'Featured', 'image_id' => isset($args['content']) && $args['content'] == 'yes' && isset($psettings['tag-category-image-featured']) ? $psettings['tag-category-image-featured'] : '', 'content' => isset($args['content']) && $args['content'] == 'yes' && isset($psettings['tag-category-content-featured']) ? $psettings['tag-category-content-featured'] : '', 'permalink' => 'featured'); } // // Load the list of tags // $strsql = "SELECT DISTINCT tag_name, permalink " . "FROM ciniki_artistprofiles_tags " . "WHERE business_id = '" . ciniki_core_dbQuote($ciniki, $business_id) . "' " . "AND tag_type = 10 " . ""; $rc = ciniki_core_dbHashQuery($ciniki, $strsql, 'ciniki.artistprofiles', 'category'); if ($rc['stat'] != 'ok') { return $rc; } if (isset($rc['rows'])) { $categories = $rc['rows']; foreach ($categories as $cat) { $submenu[$cat['permalink']] = array('sequence' => isset($psettings['tag-category-sequence-' . $cat['permalink']]) && $psettings['tag-category-sequence-' . $cat['permalink']] != '' ? $psettings['tag-category-sequence-' . $cat['permalink']] : 10, 'title' => isset($psettings['tag-category-title-' . $cat['permalink']]) && $psettings['tag-category-title-' . $cat['permalink']] != '' ? $psettings['tag-category-title-' . $cat['permalink']] : $cat['tag_name'], 'image_id' => isset($args['content']) && $args['content'] == 'yes' && isset($psettings['tag-category-image-' . $cat['permalink']]) ? $psettings['tag-category-image-' . $cat['permalink']] : '', 'content' => isset($args['content']) && $args['content'] == 'yes' && isset($psettings['tag-category-content-' . $cat['permalink']]) ? $psettings['tag-category-content-' . $cat['permalink']] : '', 'permalink' => $cat['permalink']); } } // // Sort the submenu // uasort($submenu, function ($a, $b) { if ($a['sequence'] == $b['sequence']) { return strcmp($b['title'], $a['title']); } return $a['sequence'] < $b['sequence'] ? -1 : 1; }); } return array('stat' => 'ok', 'submenu' => $submenu); }
function ciniki_library_itemListWanted($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'), 'item_type' => array('required' => 'yes', 'blank' => 'yes', 'name' => 'Item Type'), 'item_format' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Item Format'), 'tag_type' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Tag Type'), 'tag_permalink' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Tag Permalink'), 'flags' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Flags'), 'purchased_place' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Purchased Place'))); 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', 'library', 'private', 'checkAccess'); $rc = ciniki_library_checkAccess($ciniki, $args['business_id'], 'ciniki.library.itemListWanted'); if ($rc['stat'] != 'ok') { return $rc; } ciniki_core_loadMethod($ciniki, 'ciniki', 'businesses', 'private', 'intlSettings'); $rc = ciniki_businesses_intlSettings($ciniki, $args['business_id']); if ($rc['stat'] != 'ok') { return $rc; } $intl_timezone = $rc['settings']['intl-default-timezone']; $intl_currency_fmt = numfmt_create($rc['settings']['intl-default-locale'], NumberFormatter::CURRENCY); $intl_currency = $rc['settings']['intl-default-currency']; ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbQuote'); ciniki_core_loadMethod($ciniki, 'ciniki', 'users', 'private', 'datetimeFormat'); $datetime_format = ciniki_users_datetimeFormat($ciniki); ciniki_core_loadMethod($ciniki, 'ciniki', 'users', 'private', 'dateFormat'); $date_format = ciniki_users_dateFormat($ciniki); // // Get the number of faqs in each status for the business, // if no rows found, then return empty array // $strsql = "SELECT ciniki_library_items.id, " . "ciniki_library_items.item_type, " . "ciniki_library_items.item_format, " . "ciniki_library_items.title, " . "ciniki_library_items.author_display, " . "ciniki_library_items.author_sort, " . "ciniki_library_items.year, " . "DATE_FORMAT(ciniki_library_items.purchased_date, '" . ciniki_core_dbQuote($ciniki, $date_format) . "') AS purchased_date, " . "ciniki_library_items.purchased_price, " . "ciniki_library_items.purchased_place, " . "IF(ciniki_library_items.flags&0x01>0, 'yes', 'no') AS owned, " . "IF(ciniki_library_items.flags&0x02>0, 'yes', 'no') AS wanted, " . "ciniki_library_reviews.user_id, " . "IFNULL(ciniki_library_reviews.rating, 0) AS rating " . "FROM ciniki_library_items " . "LEFT JOIN ciniki_library_reviews ON (" . "ciniki_library_items.id = ciniki_library_reviews.item_id " . "AND ciniki_library_items.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . ") " . "WHERE ciniki_library_items.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . "AND item_type = '" . ciniki_core_dbQuote($ciniki, $args['item_type']) . "' " . "AND (flags&0x02) > 0 " . ""; $strsql .= "ORDER BY author_sort, title COLLATE latin1_general_cs " . ""; ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQueryTree'); $rc = ciniki_core_dbHashQueryTree($ciniki, $strsql, 'ciniki.library', array(array('container' => 'items', 'fname' => 'title', 'name' => 'item', 'fields' => array('id', 'item_type', 'item_format', 'title', 'author_display', 'author_sort', 'year', 'purchased_date', 'purchased_price', 'purchased_place', 'owned', 'wanted')), array('container' => 'ratings', 'fname' => 'user_id', 'name' => 'rating', 'fields' => array('user_id', 'rating')))); if ($rc['stat'] != 'ok') { return $rc; } if (!isset($rc['items']) || !is_array($rc['items'])) { return array('stat' => 'ok', 'items' => array()); } $items = $rc['items']; foreach ($items as $iid => $item) { if (isset($item['item']['ratings'])) { foreach ($item['item']['ratings'] as $rid => $rating) { $items[$iid]['item']['user-' . $rating['rating']['user_id'] . '-rating'] = $rating['rating']['rating']; } unset($items[$iid]['item']['ratings']); } } return array('stat' => 'ok', 'items' => $items); }
function ciniki_library_purchasedStats($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'), 'item_type' => array('required' => 'yes', 'blank' => 'yes', 'name' => 'Item Type'))); 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', 'library', 'private', 'checkAccess'); $rc = ciniki_library_checkAccess($ciniki, $args['business_id'], 'ciniki.library.purchasedStats'); if ($rc['stat'] != 'ok') { return $rc; } ciniki_core_loadMethod($ciniki, 'ciniki', 'businesses', 'private', 'intlSettings'); $rc = ciniki_businesses_intlSettings($ciniki, $args['business_id']); if ($rc['stat'] != 'ok') { return $rc; } $intl_timezone = $rc['settings']['intl-default-timezone']; $intl_currency_fmt = numfmt_create($rc['settings']['intl-default-locale'], NumberFormatter::CURRENCY); $intl_currency = $rc['settings']['intl-default-currency']; ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbQuote'); ciniki_core_loadMethod($ciniki, 'ciniki', 'users', 'private', 'datetimeFormat'); $datetime_format = ciniki_users_datetimeFormat($ciniki); ciniki_core_loadMethod($ciniki, 'ciniki', 'users', 'private', 'dateFormat'); $date_format = ciniki_users_dateFormat($ciniki); // // Get the number of faqs in each status for the business, // if no rows found, then return empty array // $strsql = "SELECT purchased_place AS name, " . "SUM(purchased_price) AS total_amount " . "FROM ciniki_library_items " . "WHERE business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . "AND purchased_place <> '' " . "AND item_type = '" . ciniki_core_dbQuote($ciniki, $args['item_type']) . "' " . "AND (flags&0x01) = 1 " . "GROUP BY purchased_place " . "ORDER BY purchased_place " . ""; ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQueryTree'); $rc = ciniki_core_dbHashQueryTree($ciniki, $strsql, 'ciniki.library', array(array('container' => 'places', 'fname' => 'name', 'name' => 'place', 'fields' => array('name', 'total_amount')))); if ($rc['stat'] != 'ok') { return $rc; } if (!isset($rc['places']) || !is_array($rc['places'])) { return array('stat' => 'ok', 'places' => array()); } $places = $rc['places']; $totals = array('total_amount' => 0); foreach ($places as $pid => $place) { $place = $place['place']; $totals['total_amount'] = bcadd($totals['total_amount'], $place['total_amount'], 4); $places[$pid]['place']['total_amount'] = numfmt_format_currency($intl_currency_fmt, $place['total_amount'], $intl_currency); } $totals['total_amount'] = numfmt_format_currency($intl_currency_fmt, $totals['total_amount'], $intl_currency); return array('stat' => 'ok', 'places' => $places, 'totals' => $totals); }
function ciniki_artistprofiles_artistList($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'), 'category_permalink' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Category'))); if ($rc['stat'] != 'ok') { return $rc; } $args = $rc['args']; // // Check access to business_id as owner, or sys admin. // ciniki_core_loadMethod($ciniki, 'ciniki', 'artistprofiles', 'private', 'checkAccess'); $rc = ciniki_artistprofiles_checkAccess($ciniki, $args['business_id'], 'ciniki.artistprofiles.artistList'); if ($rc['stat'] != 'ok') { return $rc; } // // Get the list of artists // if (ciniki_core_checkModuleFlags($ciniki, 'ciniki.artistprofiles', 0x100) && isset($args['category_permalink']) && $args['category_permalink'] != '') { if (ciniki_core_checkModuleFlags($ciniki, 'ciniki.artistprofiles', 0x200) && $args['category_permalink'] == 'featured') { $strsql = "SELECT ciniki_artistprofiles.id, " . "ciniki_artistprofiles.name, " . "ciniki_artistprofiles.sort_name, " . "ciniki_artistprofiles.permalink, " . "ciniki_artistprofiles.status, " . "ciniki_artistprofiles.flags " . "FROM ciniki_artistprofiles " . "WHERE ciniki_artistprofiles.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . "AND (flags&0x01) = 0x01 " . "ORDER BY sort_name " . ""; } else { $strsql = "SELECT ciniki_artistprofiles.id, " . "ciniki_artistprofiles.name, " . "ciniki_artistprofiles.sort_name, " . "ciniki_artistprofiles.permalink, " . "ciniki_artistprofiles.status, " . "ciniki_artistprofiles.flags " . "FROM ciniki_artistprofiles_tags, ciniki_artistprofiles " . "WHERE ciniki_artistprofiles_tags.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . "AND ciniki_artistprofiles_tags.tag_type = 10 " . "AND ciniki_artistprofiles_tags.permalink = '" . ciniki_core_dbQuote($ciniki, $args['category_permalink']) . "' " . "AND ciniki_artistprofiles_tags.artist_id = ciniki_artistprofiles.id " . "AND ciniki_artistprofiles.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . "ORDER BY sort_name " . ""; } } else { $strsql = "SELECT ciniki_artistprofiles.id, " . "ciniki_artistprofiles.name, " . "ciniki_artistprofiles.sort_name, " . "ciniki_artistprofiles.permalink, " . "ciniki_artistprofiles.status, " . "ciniki_artistprofiles.flags " . "FROM ciniki_artistprofiles " . "WHERE ciniki_artistprofiles.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . "ORDER BY sort_name " . ""; } ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQueryArrayTree'); $rc = ciniki_core_dbHashQueryArrayTree($ciniki, $strsql, 'ciniki.artistprofiles', array(array('container' => 'artists', 'fname' => 'id', 'fields' => array('id', 'name', 'sort_name', 'permalink', 'status', 'flags')))); if ($rc['stat'] != 'ok') { return $rc; } if (isset($rc['artists'])) { $artists = $rc['artists']; } else { $artists = array(); } $rsp = array('stat' => 'ok', 'artists' => $artists); // // Return list of categories // if (ciniki_core_checkModuleFlags($ciniki, 'ciniki.artistprofiles', 0x100)) { ciniki_core_loadMethod($ciniki, 'ciniki', 'artistprofiles', 'web', 'subMenuItems'); $rc = ciniki_artistprofiles_web_subMenuItems($ciniki, array(), $args['business_id'], array()); if ($rc['stat'] != 'ok') { return $rc; } $rsp['categories'] = $rc['submenu']; } return $rsp; }
function ciniki_conferences_presentationList($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'), 'conference_id' => array('required' => 'yes', 'blank' => 'no', 'name' => 'Conference'), 'status' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Status'))); if ($rc['stat'] != 'ok') { return $rc; } $args = $rc['args']; // // Check access to business_id as owner, or sys admin. // ciniki_core_loadMethod($ciniki, 'ciniki', 'conferences', 'private', 'checkAccess'); $rc = ciniki_conferences_checkAccess($ciniki, $args['business_id'], 'ciniki.conferences.presentationList'); if ($rc['stat'] != 'ok') { return $rc; } // // Load conference maps // ciniki_core_loadMethod($ciniki, 'ciniki', 'conferences', 'private', 'maps'); $rc = ciniki_conferences_maps($ciniki); if ($rc['stat'] != 'ok') { return $rc; } $maps = $rc['maps']; // // Get the list of presentations // $strsql = "SELECT ciniki_conferences_presentations.id, " . "ciniki_conferences_presentations.conference_id, " . "ciniki_conferences_presentations.customer_id, " . "ciniki_customers.display_name, " . "ciniki_customer_emails.email, " . "ciniki_conferences_presentations.presentation_number, " . "ciniki_conferences_presentations.presentation_type, " . "ciniki_conferences_presentations.status, " . "ciniki_conferences_presentations.status AS status_text, " . "ciniki_conferences_presentations.submission_date, " . "ciniki_conferences_presentations.field, " . "ciniki_conferences_presentations.title, " . "ciniki_conferences_presentations.permalink, " . "ciniki_conferences_presentations.description " . "FROM ciniki_conferences_presentations " . "LEFT JOIN ciniki_customers ON (" . "ciniki_conferences_presentations.customer_id = ciniki_customers.id " . "AND ciniki_customers.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . ") " . "LEFT JOIN ciniki_customer_emails ON (" . "ciniki_customers.id = ciniki_customer_emails.id " . "AND ciniki_customer_emails.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . ") " . "WHERE ciniki_conferences_presentations.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . ""; if (isset($args['status']) && $args['status'] > 0) { $strsql .= "AND ciniki_conferences_presentations.status = '" . ciniki_core_dbQuote($ciniki, $args['status']) . "' "; } $strsql .= "ORDER BY submission_date "; ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQueryArrayTree'); $rc = ciniki_core_dbHashQueryArrayTree($ciniki, $strsql, 'ciniki.conferences', array(array('container' => 'presentations', 'fname' => 'id', 'fields' => array('id', 'conference_id', 'customer_id', 'presentation_number', 'presentation_type', 'status', 'status_text', 'submission_date', 'field', 'title', 'display_name', 'permalink', 'description'), 'maps' => array('status_text' => $maps['presentation']['status'])))); if ($rc['stat'] != 'ok') { return $rc; } $email_list = ''; if (isset($rc['presentations'])) { $presentations = $rc['presentations']; foreach ($presentations as $pid => $presentation) { $presentations[$pid]['display_title'] = sprintf("#%03d: ", $presentation['presentation_number']) . $presentation['title']; $email_list .= ($email_list != '' ? ', ' : '') . '"' . $presentation['display_name'] . '" ' . $presentation['email']; } } else { $presentations = array(); } return array('stat' => 'ok', 'presentations' => $presentations, 'emails' => $email_list); }
function ciniki_library_itemUpdateReviews($ciniki, $business_id, $item_id) { ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbQuote'); ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQueryIDTree'); ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'objectAdd'); ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'objectUpdate'); // // Get the existing ratings and employees // $strsql = "SELECT ciniki_business_users.user_id, " . "IFNULL(ciniki_library_reviews.id, 0) AS review_id, " . "IFNULL(ciniki_library_reviews.rating, 0) AS rating " . "FROM ciniki_business_users " . "LEFT JOIN ciniki_library_reviews ON (" . "ciniki_business_users.user_id = ciniki_library_reviews.user_id " . "AND ciniki_library_reviews.item_id = '" . ciniki_core_dbQuote($ciniki, $item_id) . "' " . "AND ciniki_library_reviews.business_id = '" . ciniki_core_dbQuote($ciniki, $business_id) . "' " . ") " . "WHERE ciniki_business_users.business_id = '" . ciniki_core_dbQuote($ciniki, $business_id) . "' " . "AND ciniki_business_users.status = 10 " . ""; $rc = ciniki_core_dbHashQueryIDTree($ciniki, $strsql, 'ciniki.customers', array(array('container' => 'employees', 'fname' => 'user_id', 'fields' => array('user_id', 'review_id', 'rating')))); if ($rc['stat'] != 'ok') { return $rc; } if (!isset($rc['employees'])) { return array('stat' => 'ok'); } $employees = $rc['employees']; // // Check the args for each employee rating // foreach ($employees as $user_id => $user) { $args = array(); if (isset($ciniki['request']['args']['user-' . $user_id . '-rating'])) { if ($ciniki['request']['args']['user-' . $user_id . '-rating'] != $user['rating']) { $args['rating'] = $ciniki['request']['args']['user-' . $user_id . '-rating']; } } if (count($args) > 0) { // // Update the review member // if ($user['review_id'] > 0) { $rc = ciniki_core_objectUpdate($ciniki, $business_id, 'ciniki.library.review', $user['review_id'], $args, 0x4); if ($rc['stat'] != 'ok') { return $rc; } } else { $args['item_id'] = $item_id; $args['user_id'] = $user_id; if (!isset($args['review'])) { $args['review'] = ''; } $rc = ciniki_core_objectAdd($ciniki, $business_id, 'ciniki.library.review', $args, 0x4); if ($rc['stat'] != 'ok') { return $rc; } } } } return array('stat' => 'ok'); }
function ciniki_artistprofiles_linkGet($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'))); 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.linkGet'); if ($rc['stat'] != 'ok') { return $rc; } // // Load business settings // ciniki_core_loadMethod($ciniki, 'ciniki', 'businesses', 'private', 'intlSettings'); $rc = ciniki_businesses_intlSettings($ciniki, $args['business_id']); if ($rc['stat'] != 'ok') { return $rc; } $intl_timezone = $rc['settings']['intl-default-timezone']; $intl_currency_fmt = numfmt_create($rc['settings']['intl-default-locale'], NumberFormatter::CURRENCY); $intl_currency = $rc['settings']['intl-default-currency']; ciniki_core_loadMethod($ciniki, 'ciniki', 'users', 'private', 'datetimeFormat'); $datetime_format = ciniki_users_datetimeFormat($ciniki, 'php'); // // Return default for new Link // if ($args['link_id'] == 0) { $link = array('id' => 0, 'artist_id' => '', 'name' => '', 'link_type' => '1000', 'url' => '', 'description' => ''); } else { $strsql = "SELECT ciniki_artistprofiles_links.id, " . "ciniki_artistprofiles_links.artist_id, " . "ciniki_artistprofiles_links.name, " . "ciniki_artistprofiles_links.link_type, " . "ciniki_artistprofiles_links.url, " . "ciniki_artistprofiles_links.description " . "FROM ciniki_artistprofiles_links " . "WHERE ciniki_artistprofiles_links.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . "AND ciniki_artistprofiles_links.id = '" . ciniki_core_dbQuote($ciniki, $args['link_id']) . "' " . ""; ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQuery'); $rc = ciniki_core_dbHashQuery($ciniki, $strsql, 'ciniki.artistprofiles', 'link'); if ($rc['stat'] != 'ok') { return array('stat' => 'fail', 'err' => array('pkg' => 'ciniki', 'code' => '2910', 'msg' => 'Link not found', 'err' => $rc['err'])); } if (!isset($rc['link'])) { return array('stat' => 'fail', 'err' => array('pkg' => 'ciniki', 'code' => '2911', 'msg' => 'Unable to find Link')); } $link = $rc['link']; } return array('stat' => 'ok', 'link' => $link); }
function ciniki_merchandise_imageGet($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'), 'productimage_id' => array('required' => 'yes', 'blank' => 'no', 'name' => 'Image'))); 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', 'merchandise', 'private', 'checkAccess'); $rc = ciniki_merchandise_checkAccess($ciniki, $args['business_id'], 'ciniki.merchandise.imageGet'); if ($rc['stat'] != 'ok') { return $rc; } // // Load business settings // ciniki_core_loadMethod($ciniki, 'ciniki', 'businesses', 'private', 'intlSettings'); $rc = ciniki_businesses_intlSettings($ciniki, $args['business_id']); if ($rc['stat'] != 'ok') { return $rc; } $intl_timezone = $rc['settings']['intl-default-timezone']; $intl_currency_fmt = numfmt_create($rc['settings']['intl-default-locale'], NumberFormatter::CURRENCY); $intl_currency = $rc['settings']['intl-default-currency']; ciniki_core_loadMethod($ciniki, 'ciniki', 'users', 'private', 'datetimeFormat'); $datetime_format = ciniki_users_datetimeFormat($ciniki, 'php'); // // Return default for new Image // if ($args['productimage_id'] == 0) { $image = array('id' => 0, 'product_id' => '', 'name' => '', 'permalink' => '', 'sequence' => '', 'flags' => '1', 'image_id' => 0, 'description' => ''); } else { $strsql = "SELECT ciniki_merchandise_images.id, " . "ciniki_merchandise_images.product_id, " . "ciniki_merchandise_images.name, " . "ciniki_merchandise_images.permalink, " . "ciniki_merchandise_images.sequence, " . "ciniki_merchandise_images.flags, " . "ciniki_merchandise_images.image_id, " . "ciniki_merchandise_images.description " . "FROM ciniki_merchandise_images " . "WHERE ciniki_merchandise_images.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . "AND ciniki_merchandise_images.id = '" . ciniki_core_dbQuote($ciniki, $args['productimage_id']) . "' " . ""; ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQuery'); $rc = ciniki_core_dbHashQuery($ciniki, $strsql, 'ciniki.merchandise', 'image'); if ($rc['stat'] != 'ok') { return array('stat' => 'fail', 'err' => array('code' => 'ciniki.merchandise.7', 'msg' => 'Image not found', 'err' => $rc['err'])); } if (!isset($rc['image'])) { return array('stat' => 'fail', 'err' => array('code' => 'ciniki.merchandise.8', 'msg' => 'Unable to find Image')); } $image = $rc['image']; } return array('stat' => 'ok', 'image' => $image); }
function ciniki_merchandise_productSearch($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'), 'start_needle' => array('required' => 'yes', 'blank' => 'no', 'name' => 'Search String'), 'limit' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Limit'))); if ($rc['stat'] != 'ok') { return $rc; } $args = $rc['args']; // // Check access to business_id as owner, or sys admin. // ciniki_core_loadMethod($ciniki, 'ciniki', 'merchandise', 'private', 'checkAccess'); $rc = ciniki_merchandise_checkAccess($ciniki, $args['business_id'], 'ciniki.merchandise.productList'); if ($rc['stat'] != 'ok') { return $rc; } // // Get the list of products // $strsql = "SELECT ciniki_merchandise.id, " . "ciniki_merchandise.code, " . "ciniki_merchandise.name, " . "ciniki_merchandise.permalink, " . "ciniki_merchandise.status, " . "ciniki_merchandise.sequence, " . "ciniki_merchandise.flags, " . "ciniki_merchandise.unit_amount, " . "ciniki_merchandise.unit_discount_amount, " . "ciniki_merchandise.unit_discount_percentage, " . "ciniki_merchandise.taxtype_id, " . "ciniki_merchandise.inventory, " . "ciniki_merchandise.shipping_other, " . "ciniki_merchandise.shipping_CA, " . "ciniki_merchandise.shipping_US, " . "ciniki_merchandise.primary_image_id, " . "ciniki_merchandise.synopsis, " . "ciniki_merchandise.description " . "FROM ciniki_merchandise " . "WHERE ciniki_merchandise.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . ""; if (ciniki_core_checkModuleFlags($ciniki, 'ciniki.merchandise', 0x1)) { $strsql .= "AND (code LIKE '" . ciniki_core_dbQuote($ciniki, $args['start_needle']) . "%' " . "OR code LIKE '% " . ciniki_core_dbQuote($ciniki, $args['start_needle']) . "%' " . "OR name LIKE '" . ciniki_core_dbQuote($ciniki, $args['start_needle']) . "%' " . "OR name LIKE '% " . ciniki_core_dbQuote($ciniki, $args['start_needle']) . "%' " . ") "; } else { $strsql .= "AND (name LIKE '" . ciniki_core_dbQuote($ciniki, $args['start_needle']) . "%' " . "OR name LIKE '% " . ciniki_core_dbQuote($ciniki, $args['start_needle']) . "%' " . ") "; } if (isset($args['limit']) && is_numeric($args['limit']) && $args['limit'] > 0) { $strsql .= "LIMIT " . ciniki_core_dbQuote($ciniki, $args['limit']) . " "; } else { $strsql .= "LIMIT 25 "; } ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQueryArrayTree'); $rc = ciniki_core_dbHashQueryArrayTree($ciniki, $strsql, 'ciniki.merchandise', array(array('container' => 'products', 'fname' => 'id', 'fields' => array('id', 'code', 'name', 'permalink', 'status', 'sequence', 'flags', 'unit_amount', 'unit_discount_amount', 'unit_discount_percentage', 'taxtype_id', 'inventory', 'shipping_other', 'shipping_CA', 'shipping_US', 'primary_image_id', 'synopsis', 'description')))); if ($rc['stat'] != 'ok') { return $rc; } if (isset($rc['products'])) { $products = $rc['products']; foreach ($products as $pid => $product) { if (ciniki_core_checkModuleFlags($ciniki, 'ciniki.merchandise', 0x1) && $product['code'] != '') { $products[$pid]['display_name'] = $product['code'] . ' - ' . $product['name']; } else { $products[$pid]['display_name'] = $product['name']; } } } else { $products = array(); } return array('stat' => 'ok', 'products' => $products); }
function ciniki_conferences_roomGet($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'), 'room_id' => array('required' => 'yes', 'blank' => 'no', 'name' => 'Conference Room'))); 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', 'conferences', 'private', 'checkAccess'); $rc = ciniki_conferences_checkAccess($ciniki, $args['business_id'], 'ciniki.conferences.roomGet'); if ($rc['stat'] != 'ok') { return $rc; } // // Load business settings // ciniki_core_loadMethod($ciniki, 'ciniki', 'businesses', 'private', 'intlSettings'); $rc = ciniki_businesses_intlSettings($ciniki, $args['business_id']); if ($rc['stat'] != 'ok') { return $rc; } $intl_timezone = $rc['settings']['intl-default-timezone']; $intl_currency_fmt = numfmt_create($rc['settings']['intl-default-locale'], NumberFormatter::CURRENCY); $intl_currency = $rc['settings']['intl-default-currency']; ciniki_core_loadMethod($ciniki, 'ciniki', 'users', 'private', 'datetimeFormat'); $datetime_format = ciniki_users_datetimeFormat($ciniki, 'php'); // // Return default for new Conference Room // if ($args['room_id'] == 0) { $room = array('id' => 0, 'conference_id' => '', 'name' => '', 'sequence' => '1'); } else { $strsql = "SELECT ciniki_conferences_rooms.id, " . "ciniki_conferences_rooms.conference_id, " . "ciniki_conferences_rooms.name, " . "ciniki_conferences_rooms.sequence " . "FROM ciniki_conferences_rooms " . "WHERE ciniki_conferences_rooms.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . "AND ciniki_conferences_rooms.id = '" . ciniki_core_dbQuote($ciniki, $args['room_id']) . "' " . ""; ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQuery'); $rc = ciniki_core_dbHashQuery($ciniki, $strsql, 'ciniki.conferences', 'room'); if ($rc['stat'] != 'ok') { return array('stat' => 'fail', 'err' => array('pkg' => 'ciniki', 'code' => '3593', 'msg' => 'Conference Room not found', 'err' => $rc['err'])); } if (!isset($rc['room'])) { return array('stat' => 'fail', 'err' => array('pkg' => 'ciniki', 'code' => '3594', 'msg' => 'Unable to find Conference Room')); } $room = $rc['room']; } return array('stat' => 'ok', 'room' => $room); }
function ciniki_merchandise_web_productLoad($ciniki, $business_id, $args) { $strsql = "SELECT ciniki_merchandise.id, " . "ciniki_merchandise.uuid, " . "ciniki_merchandise.name, " . "ciniki_merchandise.permalink, " . "ciniki_merchandise.flags, " . "ciniki_merchandise.primary_image_id, " . "'' AS primary_image_caption, " . "ciniki_merchandise.synopsis, " . "ciniki_merchandise.description " . "FROM ciniki_merchandise " . "WHERE ciniki_merchandise.business_id = '" . ciniki_core_dbQuote($ciniki, $business_id) . "' " . ""; if (isset($args['permalink']) && $args['permalink'] != '') { $strsql .= "AND ciniki_merchandise.permalink = '" . ciniki_core_dbQuote($ciniki, $args['permalink']) . "' "; } elseif (isset($args['id']) && $args['id'] > 0) { $strsql .= "AND ciniki_merchandise.id = '" . ciniki_core_dbQuote($ciniki, $args['id']) . "' "; } else { return array('stat' => 'fail', 'err' => array('code' => 'ciniki.merchandise.27', 'msg' => 'No product specified')); } ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQuery'); $rc = ciniki_core_dbHashQuery($ciniki, $strsql, 'ciniki.merchandise', 'product'); if ($rc['stat'] != 'ok') { return array('stat' => 'fail', 'err' => array('code' => 'ciniki.merchandise.28', 'msg' => 'Product not found', 'err' => $rc['err'])); } if (!isset($rc['product'])) { return array('stat' => 'fail', 'err' => array('code' => 'ciniki.merchandise.29', 'msg' => 'Unable to find Product')); } $product = $rc['product']; // // Get the images // if (isset($args['images']) && $args['images'] == 'yes') { $strsql = "SELECT id, " . "name AS title, " . "permalink, " . "flags, " . "image_id, " . "description " . "FROM ciniki_merchandise_images " . "WHERE product_id = '" . ciniki_core_dbQuote($ciniki, $product['id']) . "' " . "AND business_id = '" . ciniki_core_dbQuote($ciniki, $business_id) . "' " . ""; ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQueryArrayTree'); $rc = ciniki_core_dbHashQueryArrayTree($ciniki, $strsql, 'ciniki.merchandise', array(array('container' => 'images', 'fname' => 'id', 'fields' => array('id', 'title', 'permalink', 'flags', 'image_id', 'description')))); if ($rc['stat'] != 'ok') { return $rc; } if (isset($rc['images'])) { $product['images'] = $rc['images']; } else { $product['images'] = array(); } if ($product['primary_image_id'] > 0) { $found = 'no'; foreach ($product['images'] as $image) { if ($image['image_id'] == $product['primary_image_id']) { $found = 'yes'; } } if ($found == 'no') { array_unshift($product['images'], array('title' => '', 'flags' => 1, 'permalink' => $product['uuid'], 'image_id' => $product['primary_image_id'], 'description' => '')); } } } return array('stat' => 'ok', 'product' => $product); }
function ciniki_artistprofiles_hooks_webIndexList($ciniki, $business_id, $args) { $objects = array(); // // Get the list of items that should be in the index // $strsql = "SELECT CONCAT('ciniki.artistprofiles.artist.', id) AS oid, 'ciniki.artistprofiles.artist' AS object, id AS object_id " . "FROM ciniki_artistprofiles " . "WHERE business_id = '" . ciniki_core_dbQuote($ciniki, $business_id) . "' " . "AND status = 10 " . ""; $rc = ciniki_core_dbHashQueryIDTree($ciniki, $strsql, 'ciniki.artistprofiles', array(array('container' => 'objects', 'fname' => 'oid', 'fields' => array('object', 'object_id')))); if ($rc['stat'] != 'ok') { return $rc; } if (isset($rc['objects'])) { $objects = $rc['objects']; } return array('stat' => 'ok', 'objects' => $objects); }
function ciniki_merchandise_web_productList($ciniki, $settings, $business_id, $args) { // // Load INTL settings // ciniki_core_loadMethod($ciniki, 'ciniki', 'businesses', 'private', 'intlSettings'); $rc = ciniki_businesses_intlSettings($ciniki, $business_id); if ($rc['stat'] != 'ok') { return $rc; } $intl_timezone = $rc['settings']['intl-default-timezone']; $intl_currency_fmt = numfmt_create($rc['settings']['intl-default-locale'], NumberFormatter::CURRENCY); $intl_currency = $rc['settings']['intl-default-currency']; // // Load the list of products for an object // if (isset($args['object']) && $args['object'] != '' && isset($args['object_id']) && $args['object_id'] != '') { $strsql = "SELECT ciniki_merchandise_objrefs.id AS ref_id, " . "ciniki_merchandise.id, " . "ciniki_merchandise.code, " . "ciniki_merchandise.name, " . "ciniki_merchandise.permalink, " . "ciniki_merchandise.inventory, " . "ciniki_merchandise.unit_amount, " . "ciniki_merchandise.primary_image_id, " . "ciniki_merchandise.synopsis, "; if (isset($settings['page-merchandise-active']) && $settings['page-merchandise-active'] == 'yes') { $strsql .= "'yes' AS is_details "; } else { $strsql .= "'no' AS is_details "; } $strsql .= "FROM ciniki_merchandise_objrefs " . "LEFT JOIN ciniki_merchandise ON (" . "ciniki_merchandise_objrefs.product_id = ciniki_merchandise.id " . "AND ciniki_merchandise.status = 10 " . "AND (ciniki_merchandise.flags&0x01) = 0x01 " . "AND ciniki_merchandise.business_id = '" . ciniki_core_dbQuote($ciniki, $business_id) . "' " . ") " . "WHERE ciniki_merchandise_objrefs.business_id = '" . ciniki_core_dbQuote($ciniki, $business_id) . "' " . "AND ciniki_merchandise_objrefs.object = '" . ciniki_core_dbQuote($ciniki, $args['object']) . "' " . "AND ciniki_merchandise_objrefs.object_id = '" . ciniki_core_dbQuote($ciniki, $args['object_id']) . "' " . "ORDER BY ciniki_merchandise_objrefs.sequence, ciniki_merchandise.name " . ""; ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQueryArrayTree'); $rc = ciniki_core_dbHashQueryArrayTree($ciniki, $strsql, 'ciniki.merchandise', array(array('container' => 'products', 'fname' => 'id', 'fields' => array('id', 'code', 'name', 'permalink', 'image_id' => 'primary_image_id', 'synopsis', 'is_details')))); if ($rc['stat'] != 'ok') { return $rc; } if (isset($rc['products'])) { foreach ($rc['products'] as $pid => $product) { $rc['products'][$pid]['localurl'] = '/merchandise/' . $product['permalink']; if (ciniki_core_checkModuleFlags($ciniki, 'ciniki.merchandise', 0x1)) { $rc['products'][$pid]['title'] = ($product['code'] != '' ? $product['code'] . ' - ' : '') . $product['name']; } else { $rc['products'][$pid]['title'] = $product['name']; } // $rc['products'][$pid]['unit_amount_display'] = numfmt_format_currency($intl_currency_fmt, $product['unit_amount'], $intl_currency); } return array('stat' => 'ok', 'products' => $rc['products']); } else { return array('stat' => 'ok', 'products' => array()); } } return array('stat' => 'ok', 'products' => array()); }
function ciniki_conferences_sessionList($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'))); if ($rc['stat'] != 'ok') { return $rc; } $args = $rc['args']; // // Check access to business_id as owner, or sys admin. // ciniki_core_loadMethod($ciniki, 'ciniki', 'conferences', 'private', 'checkAccess'); $rc = ciniki_conferences_checkAccess($ciniki, $args['business_id'], 'ciniki.conferences.sessionList'); if ($rc['stat'] != 'ok') { return $rc; } // // Load business settings // ciniki_core_loadMethod($ciniki, 'ciniki', 'businesses', 'private', 'intlSettings'); $rc = ciniki_businesses_intlSettings($ciniki, $args['business_id']); if ($rc['stat'] != 'ok') { return $rc; } $intl_timezone = $rc['settings']['intl-default-timezone']; ciniki_core_loadMethod($ciniki, 'ciniki', 'users', 'private', 'datetimeFormat'); $datetime_format = ciniki_users_datetimeFormat($ciniki, 'php'); // // Get the list of sessions // $strsql = "SELECT ciniki_conferences_sessions.id, " . "ciniki_conferences_sessions.conference_id, " . "ciniki_conferences_sessions.room_id, " . "ciniki_conferences_sessions.name, " . "ciniki_conferences_rooms.name AS room, " . "ciniki_conferences_rooms.sequence, " . "ciniki_conferences_sessions.session_start, " . "ciniki_conferences_sessions.session_end " . "FROM ciniki_conferences_sessions " . "WHERE ciniki_conferences_sessions.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . ""; ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQueryArrayTree'); $rc = ciniki_core_dbHashQueryArrayTree($ciniki, $strsql, 'ciniki.conferences', array(array('container' => 'sessions', 'fname' => 'id', 'fields' => array('id', 'conference_id', 'name', 'room_id', 'room', 'sequence', 'session_start', 'session_end'), 'utctotz' => array('session_start' => array('format' => $datetime_format, 'timezone' => $intl_timezone))))); if ($rc['stat'] != 'ok') { return $rc; } if (isset($rc['sessions'])) { $sessions = $rc['sessions']; } else { $sessions = array(); } return array('stat' => 'ok', 'sessions' => $sessions); }
function ciniki_artistprofiles_artistSearch($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'), 'start_needle' => array('required' => 'yes', 'blank' => 'no', 'name' => 'Search String'), 'limit' => array('required' => 'no', 'blank' => 'no', 'default' => '15', 'name' => 'Limit'))); if ($rc['stat'] != 'ok') { return $rc; } $args = $rc['args']; // // Check access to business_id as owner, or sys admin. // ciniki_core_loadMethod($ciniki, 'ciniki', 'artistprofiles', 'private', 'checkAccess'); $rc = ciniki_artistprofiles_checkAccess($ciniki, $args['business_id'], 'ciniki.artistprofiles.artistSearch'); if ($rc['stat'] != 'ok') { return $rc; } // // Get the list of artists // $strsql = "SELECT ciniki_artistprofiles.id, " . "ciniki_artistprofiles.name, " . "ciniki_artistprofiles.sort_name, " . "ciniki_artistprofiles.permalink, " . "ciniki_artistprofiles.status, " . "ciniki_artistprofiles.flags " . "FROM ciniki_artistprofiles " . "WHERE ciniki_artistprofiles.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . "AND (name like '" . ciniki_core_dbQuote($ciniki, $args['start_needle']) . "%' " . "OR name like '% " . ciniki_core_dbQuote($ciniki, $args['start_needle']) . "%' " . ") " . "ORDER BY sort_name " . ""; if (isset($args['limit']) && is_numeric($args['limit']) && $args['limit'] > 0) { $strsql .= "LIMIT " . ciniki_core_dbQuote($ciniki, $args['limit']) . " "; // is_numeric verified } else { $strsql .= "LIMIT 25 "; } ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQueryArrayTree'); $rc = ciniki_core_dbHashQueryArrayTree($ciniki, $strsql, 'ciniki.artistprofiles', array(array('container' => 'artists', 'fname' => 'id', 'fields' => array('id', 'name', 'sort_name', 'permalink', 'status', 'flags')))); if ($rc['stat'] != 'ok') { return $rc; } if (isset($rc['artists'])) { $artists = $rc['artists']; } else { $artists = array(); } return array('stat' => 'ok', 'artists' => $artists); }
function ciniki_library_itemSearchField($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'), 'field' => array('required' => 'yes', 'blank' => 'no', 'validlist' => array('author_display', 'purchased_place'), 'name' => 'Field'), 'start_needle' => array('required' => 'yes', 'blank' => 'yes', 'name' => 'Search String'), 'limit' => array('required' => 'yes', 'blank' => 'no', 'name' => 'Limit'))); 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', 'library', 'private', 'checkAccess'); $rc = ciniki_library_checkAccess($ciniki, $args['business_id'], 'ciniki.library.itemSearchField'); if ($rc['stat'] != 'ok') { return $rc; } // // Get the number of faqs in each status for the business, // if no rows found, then return empty array // $strsql = "SELECT " . $args['field'] . " AS name, author_display, author_sort " . "FROM ciniki_library_items " . "WHERE ciniki_library_items.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . "AND (" . $args['field'] . " LIKE '" . ciniki_core_dbQuote($ciniki, $args['start_needle']) . "%' " . "AND " . $args['field'] . " <> '' " . ") " . ""; $strsql .= "ORDER BY " . $args['field'] . " COLLATE latin1_general_cs " . ""; if (isset($args['limit']) && $args['limit'] != '' && $args['limit'] > 0) { $strsql .= "LIMIT " . ciniki_core_dbQuote($ciniki, $args['limit']) . " "; } else { $strsql .= "LIMIT 25 "; } ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQueryTree'); $rc = ciniki_core_dbHashQueryTree($ciniki, $strsql, 'ciniki.library', array(array('container' => 'results', 'fname' => 'name', 'name' => 'result', 'fields' => array('name', 'author_display', 'author_sort')))); if ($rc['stat'] != 'ok') { return $rc; } if (!isset($rc['results']) || !is_array($rc['results'])) { return array('stat' => 'ok', 'results' => array()); } return array('stat' => 'ok', 'results' => $rc['results']); }
function ciniki_library_checkAccess(&$ciniki, $business_id, $method) { // // Check if the business is active and the module is enabled // ciniki_core_loadMethod($ciniki, 'ciniki', 'businesses', 'private', 'checkModuleAccess'); $rc = ciniki_businesses_checkModuleAccess($ciniki, $business_id, 'ciniki', 'library'); if ($rc['stat'] != 'ok') { return $rc; } $modules = $rc['modules']; if (!isset($rc['ruleset'])) { return array('stat' => 'fail', 'err' => array('code' => 'ciniki.library.1', 'msg' => 'No permissions granted')); } // // Sysadmins are allowed full access // if (($ciniki['session']['user']['perms'] & 0x1) == 0x1) { return array('stat' => 'ok', 'modules' => $modules); } // // Users who are an owner or employee of a business can see the business alerts // $strsql = "SELECT business_id, user_id FROM ciniki_business_users " . "WHERE business_id = '" . ciniki_core_dbQuote($ciniki, $business_id) . "' " . "AND user_id = '" . ciniki_core_dbQuote($ciniki, $ciniki['session']['user']['id']) . "' " . "AND package = 'ciniki' " . "AND status = 10 " . "AND (permission_group = 'owners' OR permission_group = 'employees' OR permission_group = 'resellers' ) " . ""; ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQuery'); $rc = ciniki_core_dbHashQuery($ciniki, $strsql, 'ciniki.businesses', 'user'); if ($rc['stat'] != 'ok') { return array('stat' => 'fail', 'err' => array('code' => 'ciniki.library.2', 'msg' => 'Access denied.')); } // // If the user has permission, return ok // if (isset($rc['rows']) && isset($rc['rows'][0]) && $rc['rows'][0]['user_id'] > 0 && $rc['rows'][0]['user_id'] == $ciniki['session']['user']['id']) { return array('stat' => 'ok', 'modules' => $modules); } // // By default fail // return array('stat' => 'fail', 'err' => array('code' => 'ciniki.library.3', 'msg' => 'Access denied')); }
function ciniki_merchandise_hooks_productList($ciniki, $business_id, $args) { // // Load INTL settings // ciniki_core_loadMethod($ciniki, 'ciniki', 'businesses', 'private', 'intlSettings'); $rc = ciniki_businesses_intlSettings($ciniki, $business_id); if ($rc['stat'] != 'ok') { return $rc; } $intl_timezone = $rc['settings']['intl-default-timezone']; $intl_currency_fmt = numfmt_create($rc['settings']['intl-default-locale'], NumberFormatter::CURRENCY); $intl_currency = $rc['settings']['intl-default-currency']; // // Load the list of products for an object // if (isset($args['object']) && $args['object'] != '' && isset($args['object_id']) && $args['object_id'] != '') { $strsql = "SELECT ciniki_merchandise_objrefs.id AS ref_id, " . "ciniki_merchandise.id, " . "ciniki_merchandise.code, " . "ciniki_merchandise.name, " . "ciniki_merchandise.inventory, " . "ciniki_merchandise.unit_amount " . "FROM ciniki_merchandise_objrefs " . "LEFT JOIN ciniki_merchandise ON (" . "ciniki_merchandise_objrefs.product_id = ciniki_merchandise.id " . "AND ciniki_merchandise.business_id = '" . ciniki_core_dbQuote($ciniki, $business_id) . "' " . ") " . "WHERE ciniki_merchandise_objrefs.business_id = '" . ciniki_core_dbQuote($ciniki, $business_id) . "' " . "AND ciniki_merchandise_objrefs.object = '" . ciniki_core_dbQuote($ciniki, $args['object']) . "' " . "AND ciniki_merchandise_objrefs.object_id = '" . ciniki_core_dbQuote($ciniki, $args['object_id']) . "' " . "ORDER BY ciniki_merchandise_objrefs.sequence, ciniki_merchandise.name " . ""; ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQueryArrayTree'); $rc = ciniki_core_dbHashQueryArrayTree($ciniki, $strsql, 'ciniki.merchandise', array(array('container' => 'products', 'fname' => 'id', 'fields' => array('ref_id', 'product_id' => 'id', 'code', 'name', 'inventory', 'unit_amount')))); if ($rc['stat'] != 'ok') { return $rc; } if (isset($rc['products'])) { foreach ($rc['products'] as $pid => $product) { if (ciniki_core_checkModuleFlags($ciniki, 'ciniki.merchandise', 0x1) && $product['code'] != '') { $rc['products'][$pid]['display_name'] = $product['code'] . ' - ' . $product['name']; } else { $rc['products'][$pid]['display_name'] = $product['name']; } $rc['products'][$pid]['unit_amount_display'] = numfmt_format_currency($intl_currency_fmt, $product['unit_amount'], $intl_currency); } return array('stat' => 'ok', 'products' => $rc['products']); } else { return array('stat' => 'ok', 'products' => array()); } } return array('stat' => 'fail', 'err' => array('code' => 'ciniki.merchandise.1', 'msg' => 'Unable to get the product list')); }
function ciniki_conferences_hooks_checkObjectUsed($ciniki, $business_id, $args) { ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbCount'); // Set the default to not used $used = 'no'; $count = 0; $msg = ''; if ($args['object'] == 'ciniki.customers.customer') { // // Check the invoice presentation submissions // $strsql = "SELECT 'items', COUNT(*) " . "FROM ciniki_conferences_presentations " . "WHERE customer_id = '" . ciniki_core_dbQuote($ciniki, $args['object_id']) . "' " . "AND business_id = '" . ciniki_core_dbQuote($ciniki, $business_id) . "' " . ""; $rc = ciniki_core_dbCount($ciniki, $strsql, 'ciniki.sapos', 'num'); if ($rc['stat'] != 'ok') { return $rc; } if (isset($rc['num']['items']) && $rc['num']['items'] > 0) { $used = 'yes'; $count = $rc['num']['items']; $msg .= ($msg != '' ? ' ' : '') . "There " . ($count == 1 ? 'is' : 'are') . " {$count} conference presentation" . ($count == 1 ? '' : 's') . " for this customer."; } // // Check the reviewer presentations // $strsql = "SELECT 'items', COUNT(*) " . "FROM ciniki_conferences_presentation_reviewers " . "WHERE customer_id = '" . ciniki_core_dbQuote($ciniki, $args['object_id']) . "' " . "AND business_id = '" . ciniki_core_dbQuote($ciniki, $business_id) . "' " . ""; $rc = ciniki_core_dbCount($ciniki, $strsql, 'ciniki.sapos', 'num'); if ($rc['stat'] != 'ok') { return $rc; } if (isset($rc['num']['items']) && $rc['num']['items'] > 0) { $used = 'yes'; $count = $rc['num']['items']; $msg .= ($msg != '' ? ' ' : '') . "There " . ($count == 1 ? 'is' : 'are') . " {$count} conference review" . ($count == 1 ? '' : 's') . " for this customer."; } } return array('stat' => 'ok', 'used' => $used, 'count' => $count, 'msg' => $msg); }
function ciniki_merchandise_hooks_checkObjectUsed($ciniki, $business_id, $args) { ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbCount'); // Set the default to not used $used = 'no'; $count = 0; $msg = ''; if ($args['object'] == 'ciniki.artcatalog.item') { // // Check for artcatalog items that have merchandise linked to them // $strsql = "SELECT 'items', COUNT(*) " . "FROM ciniki_merchandise_objrefs " . "WHERE business_id = '" . ciniki_core_dbQuote($ciniki, $business_id) . "' " . "AND object = '" . ciniki_core_dbQuote($ciniki, $args['object']) . "' " . "AND object_id = '" . ciniki_core_dbQuote($ciniki, $args['object_id']) . "' " . ""; $rc = ciniki_core_dbCount($ciniki, $strsql, 'ciniki.merchandise', 'num'); if ($rc['stat'] != 'ok') { return $rc; } if (isset($rc['num']['items']) && $rc['num']['items'] > 0) { $used = 'yes'; $count = $rc['num']['items']; $msg = "There " . ($count == 1 ? 'is' : 'are') . " {$count} merchandise product" . ($count == 1 ? '' : 's') . " still linked to this item."; } } return array('stat' => 'ok', 'used' => $used, 'count' => $count, 'msg' => $msg); }
function ciniki_artistprofiles_categoryGet($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'), 'category' => array('required' => 'yes', 'blank' => 'no', 'name' => 'Category'))); 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.categoryGet'); if ($rc['stat'] != 'ok') { return $rc; } // // Grab the settings for the business from the database // $strsql = "SELECT detail_key, detail_value " . "FROM ciniki_artistprofiles_settings " . "WHERE business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . "AND detail_key LIKE 'tag-category-%-" . ciniki_core_dbQuote($ciniki, $args['category']) . "' " . ""; ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbQueryList2'); $rc = ciniki_core_dbQueryList2($ciniki, $strsql, 'ciniki.artistprofiles', 'settings'); if ($rc['stat'] != 'ok') { return $rc; } $settings = array(); if (isset($rc['settings'])) { $settings = $rc['settings']; } $category = array('title' => isset($settings['tag-category-title-' . $args['category']]) ? $settings['tag-category-title-' . $args['category']] : '', 'sequence' => isset($settings['tag-category-sequence-' . $args['category']]) ? $settings['tag-category-sequence-' . $args['category']] : '', 'image' => isset($settings['tag-category-image-' . $args['category']]) ? $settings['tag-category-image-' . $args['category']] : '', 'content' => isset($settings['tag-category-content-' . $args['category']]) ? $settings['tag-category-content-' . $args['category']] : ''); return array('stat' => 'ok', 'category' => $category); }
function ciniki_artistprofiles_hooks_webIndexObject($ciniki, $business_id, $args) { if (!isset($args['object']) || $args['object'] == '') { return array('stat' => 'fail', 'err' => array('pkg' => 'ciniki', 'code' => '3275', 'msg' => 'No object specified')); } if (!isset($args['object_id']) || $args['object_id'] == '') { return array('stat' => 'fail', 'err' => array('pkg' => 'ciniki', 'code' => '3276', 'msg' => 'No object ID specified')); } // // Setup the base_url for use in index // if (isset($args['base_url'])) { $base_url = $args['base_url']; } else { $base_url = '/artists'; } if ($args['object'] == 'ciniki.artistprofiles.artist') { $strsql = "SELECT id, name, subname, sort_name, permalink, status, " . "primary_image_id, synopsis, description " . "FROM ciniki_artistprofiles " . "WHERE business_id = '" . ciniki_core_dbQuote($ciniki, $business_id) . "' " . "AND id = '" . ciniki_core_dbQuote($ciniki, $args['object_id']) . "' " . ""; $rc = ciniki_core_dbHashQuery($ciniki, $strsql, 'ciniki.artistprofiles', 'item'); if ($rc['stat'] != 'ok') { return array('stat' => 'fail', 'err' => array('pkg' => 'ciniki', 'code' => '3280', 'msg' => 'Object not found')); } if (!isset($rc['item'])) { return array('stat' => 'noexist', 'err' => array('pkg' => 'ciniki', 'code' => '3281', 'msg' => 'Object not found')); } // // Check if item is visible on website // if ($rc['item']['status'] != '10') { return array('stat' => 'ok'); } $object = array('label' => 'Artists', 'title' => $rc['item']['name'], 'subtitle' => $rc['item']['subname'], 'meta' => '', 'primary_image_id' => $rc['item']['primary_image_id'], 'synopsis' => $rc['item']['synopsis'], 'object' => 'ciniki.artistprofiles.artist', 'object_id' => $rc['item']['id'], 'primary_words' => $rc['item']['name'], 'secondary_words' => $rc['item']['subname'] . ' ' . $rc['item']['synopsis'], 'tertiary_words' => $rc['item']['description'], 'weight' => 20000, 'url' => $base_url . '/' . $rc['item']['permalink']); return array('stat' => 'ok', 'object' => $object); } return array('stat' => 'ok'); }
function ciniki_merchandise_productDelete(&$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'), 'product_id' => array('required' => 'yes', 'blank' => 'yes', 'name' => 'Merchandise Product'), 'object' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Object'), 'object_id' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Object ID'))); if ($rc['stat'] != 'ok') { return $rc; } $args = $rc['args']; // // Check access to business_id as owner // ciniki_core_loadMethod($ciniki, 'ciniki', 'merchandise', 'private', 'checkAccess'); $rc = ciniki_merchandise_checkAccess($ciniki, $args['business_id'], 'ciniki.merchandise.productDelete'); if ($rc['stat'] != 'ok') { return $rc; } // // Get the current settings for the merchandise product // $strsql = "SELECT id, uuid " . "FROM ciniki_merchandise " . "WHERE business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . "AND id = '" . ciniki_core_dbQuote($ciniki, $args['product_id']) . "' " . ""; $rc = ciniki_core_dbHashQuery($ciniki, $strsql, 'ciniki.merchandise', 'product'); if ($rc['stat'] != 'ok') { return $rc; } if (!isset($rc['product'])) { return array('stat' => 'fail', 'err' => array('code' => 'ciniki.merchandise.16', 'msg' => 'Merchandise Product does not exist.')); } $product = $rc['product']; // // Be default, delete everything // $delete_ref = 'no'; $delete_refs = 'yes'; $delete_product = 'yes'; // // If the delete was done via an object, then check if that was the only object referencing // the product. If multiple objects are referencing the product, only delete the objref, leave the product. // if (isset($args['object']) && $args['object'] != '' && isset($args['object_id'])) { $delete_refs = 'no'; $strsql = "SELECT id, uuid, object, object_id " . "FROM ciniki_merchandise_objrefs " . "WHERE business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . "AND product_id = '" . ciniki_core_dbQuote($ciniki, $args['product_id']) . "' " . ""; $rc = ciniki_core_dbHashQuery($ciniki, $strsql, 'ciniki.merchandise', 'product'); if ($rc['stat'] != 'ok') { return $rc; } if (isset($rc['rows'])) { foreach ($rc['rows'] as $row) { if ($row['object'] == $args['object'] && $row['object_id'] == $args['object_id']) { $delete_ref = 'yes'; $ref_row = $row; } else { // Multiple obj refs, leave the product $delete_product = 'no'; } } } } // // 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', 'dbDelete'); ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'objectDelete'); ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbAddModuleHistory'); $rc = ciniki_core_dbTransactionStart($ciniki, 'ciniki.merchandise'); if ($rc['stat'] != 'ok') { return $rc; } // // Remove the object reference // if ($delete_ref == 'yes' && isset($ref_row)) { $rc = ciniki_core_objectDelete($ciniki, $args['business_id'], 'ciniki.merchandise.objref', $ref_row['id'], $ref_row['uuid'], 0x4); if ($rc['stat'] != 'ok') { ciniki_core_dbTransactionRollback($ciniki, 'ciniki.merchandise'); return $rc; } } if ($delete_refs == 'yes') { // // Remove the objrefs // $strsql = "SELECT id, uuid " . "FROM ciniki_merchandise_objrefs " . "WHERE business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . "AND product_id = '" . ciniki_core_dbQuote($ciniki, $args['product_id']) . "' " . ""; $rc = ciniki_core_dbHashQuery($ciniki, $strsql, 'ciniki.merchandise', 'obj'); if ($rc['stat'] != 'ok') { return $rc; } if (isset($rc['rows'])) { foreach ($rc['rows'] as $row) { $rc = ciniki_core_objectDelete($ciniki, $args['business_id'], 'ciniki.merchandise.objref', $row['id'], $row['uuid'], 0x4); if ($rc['stat'] != 'ok') { ciniki_core_dbTransactionRollback($ciniki, 'ciniki.merchandise'); return $rc; } } } } if ($delete_product == 'yes') { // // Remove the images // $strsql = "SELECT id, uuid " . "FROM ciniki_merchandise_images " . "WHERE business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . "AND product_id = '" . ciniki_core_dbQuote($ciniki, $args['product_id']) . "' " . ""; $rc = ciniki_core_dbHashQuery($ciniki, $strsql, 'ciniki.merchandise', 'product'); if ($rc['stat'] != 'ok') { return $rc; } if (isset($rc['rows'])) { foreach ($rc['rows'] as $row) { $rc = ciniki_core_objectDelete($ciniki, $args['business_id'], 'ciniki.merchandise.image', $row['id'], $row['uuid'], 0x4); if ($rc['stat'] != 'ok') { ciniki_core_dbTransactionRollback($ciniki, 'ciniki.merchandise'); return $rc; } } } // // Remove the product // $rc = ciniki_core_objectDelete($ciniki, $args['business_id'], 'ciniki.merchandise.product', $args['product_id'], $product['uuid'], 0x4); if ($rc['stat'] != 'ok') { ciniki_core_dbTransactionRollback($ciniki, 'ciniki.merchandise'); return $rc; } } // // Commit the transaction // $rc = ciniki_core_dbTransactionCommit($ciniki, 'ciniki.merchandise'); 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', 'merchandise'); return array('stat' => 'ok'); }
function ciniki_library_itemUpdate(&$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'), 'item_id' => array('required' => 'yes', 'blank' => 'no', 'name' => 'Item'), 'item_type' => array('required' => 'no', 'blank' => 'no', 'name' => 'Item Type'), 'item_format' => array('required' => 'no', 'blank' => 'no', 'name' => 'Format'), 'title' => array('required' => 'no', 'blank' => 'no', 'name' => 'Title'), 'permalink' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Permalink'), 'author_display' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Author Display'), 'author_sort' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Author Sort'), 'flags' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Options'), 'isbn' => array('required' => 'no', 'blank' => 'yes', 'name' => 'ISBN'), 'year' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Year'), 'location' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Location'), 'synopsis' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Synopsis'), 'description' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Description'), 'primary_image_id' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Image'), 'primary_image_caption' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Image Caption'), 'notes' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Notes'), 'purchased_date' => array('required' => 'no', 'blank' => 'yes', 'type' => 'date', 'name' => 'Purchased Date'), 'purchased_price' => array('required' => 'no', 'blank' => 'yes', 'type' => 'currency', 'name' => 'Purchased Price'), 'purchased_place' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Purchased Place'), 'genres' => array('required' => 'no', 'blank' => 'yes', 'type' => 'list', 'delimiter' => '::', 'name' => 'Genres'), 'tags' => array('required' => 'no', 'blank' => 'yes', 'type' => 'list', 'delimiter' => '::', 'name' => 'Tags'))); 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', 'library', 'private', 'checkAccess'); $rc = ciniki_library_checkAccess($ciniki, $args['business_id'], 'ciniki.library.itemUpdate'); if ($rc['stat'] != 'ok') { return $rc; } $strsql = "SELECT id, item_type, title, author_display " . "FROM ciniki_library_items " . "WHERE id = '" . ciniki_core_dbQuote($ciniki, $args['item_id']) . "' " . "AND business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . ""; $rc = ciniki_core_dbHashQuery($ciniki, $strsql, 'ciniki.library', 'item'); if ($rc['stat'] != 'ok') { return $rc; } if (!isset($rc['item'])) { return array('stat' => 'fail', 'err' => array('code' => 'ciniki.library.7', 'msg' => 'Item not found')); } $item = $rc['item']; if (isset($args['title']) || isset($args['author_display'])) { ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'makePermalink'); if (isset($args['author_display']) && isset($args['title'])) { $args['permalink'] = ciniki_core_makePermalink($ciniki, $args['author_display'] . '-' . $args['title']); } elseif (isset($args['author_display'])) { $args['permalink'] = ciniki_core_makePermalink($ciniki, $args['author_display'] . '-' . $item['title']); } elseif (isset($args['title'])) { $args['permalink'] = ciniki_core_makePermalink($ciniki, $item['author_display'] . '-' . $args['title']); } else { return array('stat' => 'fail', 'err' => array('code' => 'ciniki.library.8', 'msg' => 'Unable to determine permalink.')); } // // Make sure the permalink is unique // $strsql = "SELECT id, title, permalink FROM ciniki_library_items " . "WHERE business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . "AND permalink = '" . ciniki_core_dbQuote($ciniki, $args['permalink']) . "' " . "AND item_type = '" . ciniki_core_dbQuote($ciniki, $item['item_type']) . "' " . "AND id <> '" . ciniki_core_dbQuote($ciniki, $args['item_id']) . "' " . ""; $rc = ciniki_core_dbHashQuery($ciniki, $strsql, 'ciniki.library', 'item'); if ($rc['stat'] != 'ok') { return $rc; } if ($rc['num_rows'] > 0) { return array('stat' => 'fail', 'err' => array('code' => 'ciniki.library.9', 'msg' => 'You already have a item with this name, please choose another name')); } } // // Turn off autocommit // 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', 'dbQuote'); $rc = ciniki_core_dbTransactionStart($ciniki, 'ciniki.library'); if ($rc['stat'] != 'ok') { return $rc; } // // Update the item // ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'objectUpdate'); $rc = ciniki_core_objectUpdate($ciniki, $args['business_id'], 'ciniki.library.item', $args['item_id'], $args); if ($rc['stat'] != 'ok') { return $rc; } // // Update the genres // if (isset($args['genres'])) { ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'tagsUpdate'); $rc = ciniki_core_tagsUpdate($ciniki, 'ciniki.library', 'tag', $args['business_id'], 'ciniki_library_tags', 'ciniki_library_history', 'item_id', $args['item_id'], 20, $args['genres']); if ($rc['stat'] != 'ok') { ciniki_core_dbTransactionRollback($ciniki, 'ciniki.library'); return $rc; } } // // Update the tags // if (isset($args['tags'])) { ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'tagsUpdate'); $rc = ciniki_core_tagsUpdate($ciniki, 'ciniki.library', 'tag', $args['business_id'], 'ciniki_library_tags', 'ciniki_library_history', 'item_id', $args['item_id'], 40, $args['tags']); if ($rc['stat'] != 'ok') { ciniki_core_dbTransactionRollback($ciniki, 'ciniki.library'); return $rc; } } // // Update the reviews/ratings // if (($ciniki['business']['modules']['ciniki.library']['flags'] & 0x8) > 0) { ciniki_core_loadMethod($ciniki, 'ciniki', 'library', 'private', 'itemUpdateReviews'); $rc = ciniki_library_itemUpdateReviews($ciniki, $args['business_id'], $args['item_id']); if ($rc['stat'] != 'ok') { ciniki_core_dbTransactionRollback($ciniki, 'ciniki.library'); return $rc; } } // // Commit the database changes // $rc = ciniki_core_dbTransactionCommit($ciniki, 'ciniki.library'); 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', 'library'); return array('stat' => 'ok'); }
function ciniki_artistprofiles_imageAdd(&$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'), 'artist_id' => array('required' => 'yes', 'blank' => 'no', 'name' => 'Artist'), 'name' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Name'), 'flags' => array('required' => 'no', 'blank' => 'no', 'name' => 'Options'), 'image_id' => array('required' => 'no', 'blank' => 'no', 'name' => 'Image'), 'description' => array('required' => 'no', 'blank' => 'yes', 'name' => 'Description'))); if ($rc['stat'] != 'ok') { return $rc; } $args = $rc['args']; // // Check access to business_id as owner // ciniki_core_loadMethod($ciniki, 'ciniki', 'artistprofiles', 'private', 'checkAccess'); $rc = ciniki_artistprofiles_checkAccess($ciniki, $args['business_id'], 'ciniki.artistprofiles.imageAdd'); if ($rc['stat'] != 'ok') { return $rc; } // // Get a UUID for use in permalink // ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbUUID'); $rc = ciniki_core_dbUUID($ciniki, 'ciniki.artistprofiles'); if ($rc['stat'] != 'ok') { return array('stat' => 'fail', 'err' => array('pkg' => 'ciniki', 'code' => '2890', 'msg' => 'Unable to get a new UUID', 'err' => $rc['err'])); } $args['uuid'] = $rc['uuid']; // // Determine the permalink // if (!isset($args['permalink']) || $args['permalink'] == '') { ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'makePermalink'); if (isset($args['name']) && $args['name'] != '') { $args['permalink'] = ciniki_core_makePermalink($ciniki, $args['name']); } else { $args['permalink'] = ciniki_core_makePermalink($ciniki, $args['uuid']); } } // // Check the permalink doesn't already exist // $strsql = "SELECT id, name, permalink " . "FROM ciniki_artistprofiles_images " . "WHERE business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . "AND artist_id = '" . ciniki_core_dbQuote($ciniki, $args['artist_id']) . "' " . "AND permalink = '" . ciniki_core_dbQuote($ciniki, $args['permalink']) . "' " . ""; $rc = ciniki_core_dbHashQuery($ciniki, $strsql, 'ciniki.artistprofiles', 'image'); if ($rc['stat'] != 'ok') { return $rc; } if ($rc['num_rows'] > 0) { return array('stat' => 'fail', 'err' => array('pkg' => 'ciniki', 'code' => '2892', 'msg' => 'You already have an image with this name, please choose another name')); } // // 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; } // // Add the image to the database // ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'objectAdd'); $rc = ciniki_core_objectAdd($ciniki, $args['business_id'], 'ciniki.artistprofiles.image', $args, 0x4); if ($rc['stat'] != 'ok') { ciniki_core_dbTransactionRollback($ciniki, 'ciniki.artistprofiles'); return $rc; } $artist_image_id = $rc['id']; // // 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', 'id' => $artist_image_id); }
function ciniki_conferences_sessionGet($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'), 'session_id' => array('required' => 'yes', 'blank' => 'no', 'name' => 'Conference Session'), 'conference_id' => array('required' => 'yes', 'blank' => 'no', 'name' => 'Conference'))); 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', 'conferences', 'private', 'checkAccess'); $rc = ciniki_conferences_checkAccess($ciniki, $args['business_id'], 'ciniki.conferences.sessionGet'); if ($rc['stat'] != 'ok') { return $rc; } // // Load business settings // ciniki_core_loadMethod($ciniki, 'ciniki', 'businesses', 'private', 'intlSettings'); $rc = ciniki_businesses_intlSettings($ciniki, $args['business_id']); if ($rc['stat'] != 'ok') { return $rc; } $intl_timezone = $rc['settings']['intl-default-timezone']; $intl_currency_fmt = numfmt_create($rc['settings']['intl-default-locale'], NumberFormatter::CURRENCY); $intl_currency = $rc['settings']['intl-default-currency']; ciniki_core_loadMethod($ciniki, 'ciniki', 'users', 'private', 'datetimeFormat'); $datetime_format = ciniki_users_datetimeFormat($ciniki, 'php'); // // Return default for new Conference Session // if ($args['session_id'] == 0) { $session = array('id' => 0, 'conference_id' => '', 'room_id' => '', 'name' => '', 'session_start' => '', 'session_end' => ''); } else { $strsql = "SELECT ciniki_conferences_sessions.id, " . "ciniki_conferences_sessions.conference_id, " . "ciniki_conferences_sessions.room_id, " . "ciniki_conferences_sessions.name, " . "ciniki_conferences_sessions.session_start, " . "ciniki_conferences_sessions.session_end " . "FROM ciniki_conferences_sessions " . "WHERE ciniki_conferences_sessions.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . "AND ciniki_conferences_sessions.id = '" . ciniki_core_dbQuote($ciniki, $args['session_id']) . "' " . ""; ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQueryArrayTree'); $rc = ciniki_core_dbHashQueryArrayTree($ciniki, $strsql, 'ciniki.conferences', array(array('container' => 'sessions', 'fname' => 'id', 'fields' => array('id', 'conference_id', 'room_id', 'name', 'session_start', 'session_end'), 'utctotz' => array('session_start' => array('format' => $datetime_format, 'timezone' => $intl_timezone), 'session_end' => array('format' => $datetime_format, 'timezone' => $intl_timezone))))); if ($rc['stat'] != 'ok') { return array('stat' => 'fail', 'err' => array('pkg' => 'ciniki', 'code' => '3599', 'msg' => 'Conference Session not found', 'err' => $rc['err'])); } if (!isset($rc['sessions'][0])) { return array('stat' => 'fail', 'err' => array('pkg' => 'ciniki', 'code' => '3600', 'msg' => 'Unable to find Conference Session')); } $session = $rc['sessions'][0]; } // // Get the list of rooms // $strsql = "SELECT ciniki_conferences_rooms.id, " . "ciniki_conferences_rooms.conference_id, " . "ciniki_conferences_rooms.name, " . "ciniki_conferences_rooms.sequence " . "FROM ciniki_conferences_rooms " . "WHERE ciniki_conferences_rooms.business_id = '" . ciniki_core_dbQuote($ciniki, $args['business_id']) . "' " . "AND ciniki_conferences_rooms.conference_id = '" . ciniki_core_dbQuote($ciniki, $args['conference_id']) . "' " . "ORDER BY ciniki_conferences_rooms.sequence, ciniki_conferences_rooms.name " . ""; ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQueryArrayTree'); $rc = ciniki_core_dbHashQueryArrayTree($ciniki, $strsql, 'ciniki.conferences', array(array('container' => 'rooms', 'fname' => 'id', 'fields' => array('id', 'conference_id', 'name', 'sequence')))); if ($rc['stat'] != 'ok') { return $rc; } if (isset($rc['rooms'])) { $rooms = $rc['rooms']; } else { $rooms = array(); } return array('stat' => 'ok', 'session' => $session, 'rooms' => $rooms); }