Пример #1
0
/**
	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;
    }
}
Пример #2
0
 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;
 }
Пример #3
0
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;
}
Пример #4
0
     } 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'));
Пример #5
0
         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.
Пример #6
0
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']);
                                }
                            }
Пример #7
0
    }
}
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);
Пример #8
0
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;
}
Пример #9
0
/**
 */
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);
            }
        }
    }
}