/** This function will return a complete table of all links valid for this item_type. This is useful because it allows the use of a site plugin for generating links only, by specifying as the default site type. */ function get_site_plugin_links($page_title, $item_r) { $pageContents = ''; $results = fetch_site_plugin_rs($item_r['s_item_type']); if ($results) { $titleMaskCfg = new TitleMask(); $pageContents = "<ul class=\"sitepluginLinks\">"; while ($site_plugin_type_r = db_fetch_assoc($results)) { if (is_exists_site_plugin($site_plugin_type_r['site_type'])) { $site_plugin_conf_rs = get_site_plugin_conf_r($site_plugin_type_r['site_type']); if (strlen($site_plugin_type_r['image']) > 0) { $link_text = theme_image("images/site/" . $site_plugin_type_r['image'], htmlspecialchars($site_plugin_type_r['title'])); } else { $link_text = $site_plugin_type_r['title']; } $results2 = fetch_site_plugin_link_rs($site_plugin_type_r['site_type'], $item_r['s_item_type']); if ($results2) { while ($site_plugin_link_r = db_fetch_assoc($results2)) { $parse_url = NULL; if (strlen($site_plugin_link_r['url']) > 0 && is_exists_site_item_attribute($site_plugin_type_r['site_type'], $item_r['item_id'], $item_r['instance_no'])) { $parse_url = $site_plugin_link_r['url']; } else { if (strlen($site_plugin_link_r['title_url']) > 0) { $parse_url = $site_plugin_link_r['title_url']; } } if ($parse_url != NULL) { $titleMaskCfg->reset(); $parse_url = trim($titleMaskCfg->expand_title($item_r, $parse_url, $site_plugin_conf_rs)); if (strlen($parse_url) > 0) { $pageContents .= "<li><a href=\"" . $parse_url . "\" target=\"_new\">{$link_text}"; $pageContents .= "<span class=\"sitePluginDescription\">" . $site_plugin_link_r['description'] . "</span>"; $pageContents .= "</a></li>"; } } } //while db_free_result($results2); } } } //while db_free_result($results); $pageContents .= "</ul>"; return $pageContents; } }
public function titleSearch($params_r) { $titleMaskCfg = new TitleMask('item_listing'); // if no limit provided, provide one! if (empty($params_r['limit'])) { $params_r['limit'] = 10; } if (empty($params_r['title_match'])) { $params_r['title_match'] = 'partial'; } $results = fetch_item_listing_rs($params_r, array(), 'title', 'ASC', 0, $params_r['limit']); while ($item_r = db_fetch_assoc($results)) { $item_r['title'] = $titleMaskCfg->expand_item_title($item_r); $jsonResults[] = $item_r; } db_free_result($results); return $jsonResults; }
function format_item_parents_select($HTTP_VARS, $item_r, $filter = null) { $titleMaskCfg = new TitleMask('item_listing'); $possible_parents = fetch_available_item_parents($HTTP_VARS, $item_r, $filter, false); // options will be in format ITEM_ID.INSTANCE_NO, so do not clash with existing parent_item_id / parent_instance_no stuff. $parent_item_list = '<select name="parent_item" id="parent_item">'; if (!is_null($filter) && $filter != '%parent_only%') { if (count($possible_parents) > 0) { $parent_item_list .= '<option value="0">' . get_opendb_lang_var('none') . '</option>'; } else { $parent_item_list .= '<option value="0">' . get_opendb_lang_var('nothing_found') . '</option>'; } } else { $parent_item_list .= '<option value="0">' . get_opendb_lang_var('none') . '</option>'; } foreach ($possible_parents as $parent) { if (!$parent['current_parent']) { $parent['title'] = $titleMaskCfg->expand_item_title($parent); $parent_item_list .= '<option value="' . $parent['item_id'] . '_' . $parent['instance_no'] . '">' . utf8_encode($parent['title']) . '</option>'; } } $parent_item_list .= '</select> <span id="parent_item_loading">' . get_opendb_lang_var('loading') . '...</span>'; return $parent_item_list; }
} else { $result = fetch_owner_reserved_item_rs(get_opendb_session_var('user_id'), $listingObject->getCurrentOrderBy()); } } else { if ($HTTP_VARS['op'] == 'my_item_history') { $show_listings = FALSE; $item_r = fetch_item_instance_r($HTTP_VARS['item_id'], $HTTP_VARS['instance_no']); if (is_not_empty_array($item_r)) { $footer_links_r[] = array(url => "item_display.php?item_id=" . $item_r['item_id'] . "&instance_no=" . $item_r['instance_no'], text => get_opendb_lang_var('back_to_item')); if (is_opendb_session_var('listing_url_vars')) { $footer_links_r[] = array(url => "listings.php?" . get_url_string(get_opendb_session_var('listing_url_vars')), text => get_opendb_lang_var('back_to_listing')); } // Cannot view item history, unless you are admin, or own the item. if (is_user_owner_of_item($item_r['item_id'], $item_r['instance_no'], get_opendb_session_var('user_id')) || is_user_granted_permission(PERM_ADMIN_BORROWER)) { $show_listings = TRUE; $titleMaskCfg = new TitleMask('item_display'); $page_title = get_opendb_lang_var('history_for_title', 'display_title', $titleMaskCfg->expand_item_title($item_r)); $page_image = get_item_image($item_r['s_item_type'], $item_r['item_id']); if (is_numeric($listingObject->getItemsPerPage())) { $listingObject->setTotalItems(fetch_item_instance_history_cnt($item_r['item_id'], $item_r['instance_no'])); if ($listingObject->getTotalItemCount() > 0) { $result = fetch_item_instance_history_rs($item_r['item_id'], $item_r['instance_no'], $listingObject->getCurrentOrderBy(), $listingObject->getCurrentSortOrder(), $listingObject->getStartIndex(), $listingObject->getItemsPerPage()); } } else { $result = fetch_item_instance_history_rs($item_r['item_id'], $item_r['instance_no'], $listingObject->getCurrentOrderBy(), $listingObject->getCurrentSortOrder()); } } else { opendb_not_authorised_page(); } } else { echo _theme_header(get_opendb_lang_var('item_not_found'));
if (!export_row_items($exportPlugin, $page_title, $HTTP_VARS['include_header'], $HTTP_VARS['export_columns'], $HTTP_VARS['s_item_type'], $HTTP_VARS['owner_id'])) { echo _theme_header($page_title); echo "<h2>" . $page_title . "</h2>"; echo format_error_block(array('error' => get_opendb_lang_var('no_records_found'), 'detail' => '')); echo _theme_footer(); } } else { echo _theme_header($page_title); echo "<h2>" . $page_title . "</h2>"; echo "<h3>" . get_opendb_lang_var('choose_export_fields') . "</h3>"; echo get_row_export_column_form($exportPlugin, $HTTP_VARS); echo _theme_footer(); } } else { if ($exportPlugin->get_plugin_type() == 'item') { $titleMaskCfg = new TitleMask('item_display'); // Work out page title. if (strlen($HTTP_VARS['owner_id']) > 0 || is_numeric($HTTP_VARS['item_id'])) { if (strlen($HTTP_VARS['owner_id']) > 0 && strlen($HTTP_VARS['s_item_type']) > 0) { $page_title = get_opendb_lang_var('type_export_for_name_item_type', array('description' => $exportPlugin->get_display_name(), 'fullname' => fetch_user_name($HTTP_VARS['owner_id']), 'user_id' => $HTTP_VARS['owner_id'], 's_item_type' => $HTTP_VARS['s_item_type'])); } else { if (strlen($HTTP_VARS['s_item_type']) > 0) { $page_title = get_opendb_lang_var('type_export_for_item_type', array('description' => $exportPlugin->get_display_name(), 's_item_type' => $HTTP_VARS['s_item_type'])); } else { if (is_numeric($HTTP_VARS['item_id']) && is_numeric($HTTP_VARS['instance_no'])) { $item_r = fetch_item_instance_r($HTTP_VARS['item_id'], $HTTP_VARS['instance_no']); $page_title = get_opendb_lang_var('type_export_for_item_instance', array('description' => $exportPlugin->get_display_name(), 'item_id' => $HTTP_VARS['item_id'], 'instance_no' => $HTTP_VARS['instance_no'], 'title' => $titleMaskCfg->expand_item_title($item_r))); } else { if (is_numeric($HTTP_VARS['item_id'])) { // Not really a child item, but we are not interested in the instance, so use this. It still // returns the right data anyway.
include_once "./lib/item_type.php"; include_once "./lib/listutils.php"; include_once "./lib/status_type.php"; include_once "./lib/export.php"; include_once "./lib/item_attribute.php"; include_once "./lib/TitleMask.class.php"; include_once "./lib/item_display.php"; include_once "./lib/site_plugin.php"; if (is_site_enabled()) { if (is_opendb_valid_session() || is_site_public_access()) { if (is_user_granted_permission(PERM_VIEW_ITEM_DISPLAY)) { if (is_numeric($HTTP_VARS['instance_no'])) { $item_r = fetch_item_instance_r($HTTP_VARS['item_id'], $HTTP_VARS['instance_no']); } if (is_not_empty_array($item_r)) { $titleMaskCfg = new TitleMask('item_display'); $page_title = $titleMaskCfg->expand_item_title($item_r); echo _theme_header($page_title, $HTTP_VARS['inc_menu']); echo "<h2>" . $page_title . " " . get_item_image($item_r['s_item_type'], $item_r['item_id']) . "</h2>"; // ---------------- Display IMAGE attributes ------------------------------------ if (get_opendb_config_var('item_display', 'show_item_image') !== FALSE && is_user_granted_permission(PERM_VIEW_ITEM_COVERS)) { $results = fetch_item_attribute_type_rs($item_r['s_item_type'], 'IMAGE'); if ($results) { $coverimages_rs = NULL; while ($image_attribute_type_r = db_fetch_assoc($results)) { $imageurl_r = fetch_attribute_val_r($item_r['item_id'], $item_r['instance_no'], $image_attribute_type_r['s_attribute_type'], $image_attribute_type_r['order_no']); if ($imageurl_r !== FALSE) { while (list(, $imageurl) = each($imageurl_r)) { $coverimages_rs[] = array('file' => file_cache_get_image_r($imageurl, 'display'), 'prompt' => $image_attribute_type_r['prompt']); } }
} } if (is_site_enabled()) { if (is_opendb_valid_session()) { if (is_user_granted_permission(PERM_USER_REVIEWER)) { if (is_numeric($HTTP_VARS['item_id']) && ($HTTP_VARS['op'] == 'insert' || $HTTP_VARS['op'] == 'add')) { $item_r = fetch_item_r($HTTP_VARS['item_id']); } else { if (is_numeric($HTTP_VARS['sequence_number']) && ($HTTP_VARS['op'] == 'update' || $HTTP_VARS['op'] == 'delete' || $HTTP_VARS['op'] == 'edit')) { $review_r = fetch_review_r($HTTP_VARS['sequence_number']); // Copy reference only. $item_r = $review_r; } } if (is_not_empty_array($item_r)) { $titleMaskCfg = new TitleMask('item_display'); $item_r['title'] = $titleMaskCfg->expand_item_title($item_r); $page_title = get_opendb_lang_var('review_title', 'display_title', $item_r['title']); echo _theme_header($page_title); echo "<h2>" . $page_title . " " . get_item_image($item_r['s_item_type']) . "</h2>\n"; if ($HTTP_VARS['op'] == 'insert') { $HTTP_VARS['comment'] = filter_input_field('htmlarea(55,10)', $HTTP_VARS['comment']); if (validate_review_input($HTTP_VARS, $errors)) { if (insert_review($HTTP_VARS['item_id'], get_opendb_session_var('user_id'), $HTTP_VARS['comment'], $HTTP_VARS['rating'])) { echo "<p class=\"success\">" . get_opendb_lang_var('review_added') . "</p>"; } else { echo "<p class=\"error\">" . get_opendb_lang_var('review_not_added') . "</p>"; } } else { echo format_error_block($errors); echo get_edit_form('insert', array(), $HTTP_VARS);
function get_last_num_items_rs($num_of_items, $owner_id = NULL, $s_item_type = NULL, $update_on = NULL, $not_owner_id = NULL, $site_url_prefix = NULL, $title_mask_id = NULL) { if (strlen($owner_id) > 0) { $search_vars_r['owner_id'] = $owner_id; } if (strlen($s_item_type) > 0) { $search_vars_r['s_item_type'] = $s_item_type; } if (strlen($update_on) > 0) { $search_vars_r['update_on'] = $update_on; } if (strlen($not_owner_id) > 0) { $search_vars_r['not_owner_id'] = $not_owner_id; } $dummy_r = NULL; $results = fetch_item_listing_rs($search_vars_r, $dummy_r, 'update_on', 'DESC', 0, $num_of_items); if ($results) { if ($title_mask_id == 'feeds') { $title_mask_group = array('feeds', 'item_display'); } else { $title_mask_group = array('last_items_list', 'item_listing'); } $titleMaskCfg = new TitleMask($title_mask_group); $image_attribute_type_rs = NULL; while ($item_r = db_fetch_assoc($results)) { $item_r['title'] = $titleMaskCfg->expand_item_title($item_r); $item_r['update_on'] = get_localised_timestamp(get_opendb_config_var('welcome.last_items_list', 'datetime_mask'), $item_r['update_on']); $item_r['item_display_url'] = 'item_display.php?item_id=' . $item_r['item_id'] . '&instance_no=' . $item_r['instance_no']; if ($site_url_prefix != NULL) { $item_r['item_display_url'] = $site_url_prefix . $item_r['item_display_url']; } $item_type_r = fetch_item_type_r($item_r['s_item_type']); $itemtypeimagesrc = theme_image_src($item_type_r['image']); $size = @getimagesize($itemtypeimagesrc); if (is_array($size)) { $item_r['itemtypeimage']['width'] = $size[0]; $item_r['itemtypeimage']['height'] = $size[1]; } $item_r['itemtypeimage']['url'] = $itemtypeimagesrc; if ($site_url_prefix != NULL) { $item_r['itemtypeimage']['url'] = $site_url_prefix . $item_r['itemtypeimage']['url']; } $item_r['itemtypeimage']['title'] = $item_type_r['description']; $item_r['itemtypeimage']['s_item_type'] = $item_r['s_item_type']; if (get_opendb_config_var('welcome.last_items_list', 'show_item_image') !== FALSE) { if (!is_array($image_attribute_type_rs) || !is_array($image_attribute_type_rs[$item_r['s_item_type']])) { $image_attribute_type_rs[$item_r['s_item_type']] = fetch_sfieldtype_item_attribute_type_r($item_r['s_item_type'], 'IMAGE'); } // of a IMAGE s_attribute defined for this s_item_type if (is_array($image_attribute_type_rs[$item_r['s_item_type']])) { $attribute_type_r = $image_attribute_type_rs[$item_r['s_item_type']]; $imageurl = fetch_attribute_val($item_r['item_id'], NULL, $attribute_type_r['s_attribute_type']); $file_r = file_cache_get_image_r($imageurl, 'display'); $item_r['imageurl']['url'] = $file_r['thumbnail']['url']; if ($site_url_prefix != NULL) { $item_r['imageurl']['url'] = $site_url_prefix . $item_r['imageurl']['url']; } $item_r['imageurl']['width'] = $file_r['thumbnail']['width']; $item_r['imageurl']['height'] = $file_r['thumbnail']['height']; $item_r['imageurl']['title'] = $item_r['title']; } } $item_rs[] = $item_r; unset($item_r); } //while db_free_result($results); } return $item_rs; }
/** */ function process_borrow_results($op, $mode, $heading, $success_intro, $failure_intro, $more_information, $success_item_rs, $failure_item_rs, $email_notification = TRUE) { $titleMaskCfg = new TitleMask(array('item_borrow', 'item_display')); if (is_not_empty_array($success_item_rs)) { // Sort the items by user, so we can send emails for multiple // items, instead of individually. $borrowed_item_user_r = array(); while (list(, $borrowed_item_r) = each($success_item_rs)) { $item_r = fetch_item_instance_r($borrowed_item_r['item_id'], $borrowed_item_r['instance_no']); $item_r['title'] = $titleMaskCfg->expand_item_title($item_r); $item_entry_r['display_title'] = get_opendb_lang_var('borrow_item_title_listing', array('display_title' => $item_r['title'], 'item_id' => $item_r['item_id'], 'instance_no' => $item_r['instance_no'])); // A array of item_entries. //$item_entry_r['item'] = $item_r; $item_entry_r['detail'] = get_borrow_details($op, $item_r, $borrowed_item_r); // When reserving or cancelling and the current user is the borrower, we want to // send the email to the owner, in all other cases the email should go to the // borrower. if (($op == 'reserve' || $op == 'cancel_reserve') && get_opendb_session_var('user_id') == $borrowed_item_r['borrower_id']) { $to_user = $item_r['owner_id']; } else { $to_user = $borrowed_item_r['borrower_id']; } // Now add an entry to this user array. $borrowed_item_user_r[$to_user][] = $item_entry_r; } $success_results = array(); while (list($to_user, $item_entry_rs) = each($borrowed_item_user_r)) { $errors = NULL; if (is_valid_opendb_mailer() && $email_notification !== FALSE) { // How can the from user be anything but the currently logged in user! $email_result = send_notification_email($to_user, get_opendb_session_var('user_id'), $heading, $success_intro, $more_information, $item_entry_rs, $errors); } $display_title_r = NULL; reset($item_entry_rs); while (list(, $item_entry_r) = each($item_entry_rs)) { $display_title_r[] = $item_entry_r['display_title']; } $user_name = get_opendb_lang_var('user_name', array('fullname' => fetch_user_name($to_user), 'user_id' => $to_user)); $success_results_rs[] = array(user_name => $user_name, display_titles => $display_title_r, email_result => $email_result, email_errors => $errors); } if (is_not_empty_array($success_results_rs)) { if ($mode == 'job') { display_job_success_borrow_results($success_intro, $success_results_rs); } else { display_html_success_borrow_results($success_intro, $success_results_rs); } } } if (is_not_empty_array($failure_item_rs)) { $failure_results = array(); while (list(, $borrowed_item_r) = each($failure_item_rs)) { $item_r = fetch_item_instance_r($borrowed_item_r['item_id'], $borrowed_item_r['instance_no']); // Expand title mask. $item_r['title'] = $titleMaskCfg->expand_item_title($item_r); $display_title = get_opendb_lang_var('borrow_item_title_listing', array('display_title' => $item_r['title'], 'item_id' => $item_r['item_id'], 'instance_no' => $item_r['instance_no'])); // Now display any errors if present. if (strlen($borrowed_item_r['errors']) > 0) { $borrow_error_details = get_opendb_lang_var('borrow_error_detail', 'error', $borrowed_item_r['errors']); } $failure_results[] = array(display_title => $display_title, errors => array($borrow_error_details)); } if (is_not_empty_array($failure_results)) { if ($mode == 'job') { display_job_failure_borrow_results($failure_intro, $failure_results); } else { display_html_failure_borrow_results($failure_intro, $failure_results); } } } }