コード例 #1
0
ファイル: item.php プロジェクト: kidaa30/lojinha
    function saveBid()
    {
        header("Content-type: text/html; charset=utf-8");
        $app = JFactory::getApplication();
        $id = JRequest::getInt('id', 0);
        $bid = JRequest::getFloat('bid', 0);
        $db = JFactory::getDBO();
        $user = JFactory::getUser();
        $itemid = JRequest::getVar('Itemid');
        $par = JComponentHelper::getParams('com_djclassifieds');
        $bid_error = 0;
        $error_show_form = 0;
        $error_price = 0;
        $bid_message = JText::_('COM_DJCLASSIFIEDS_OFFER_PUBLISHED');
        if ($user->id > 0) {
            $date_now = date("Y-m-d H:i:s");
            $query = "SELECT * FROM #__djcf_items i " . "WHERE i.id = " . $id . " AND i.published=1 AND i.date_start <= '" . $date_now . "' AND i.date_exp >= '" . $date_now . "' ";
            $db->setQuery($query);
            $item = $db->loadObject();
            if ($item) {
                if ($bid > 0) {
                    $query = "SELECT a.*, u.name as u_name FROM #__djcf_auctions a, #__users u " . " WHERE a.user_id=u.id AND a.item_id=" . $id . " ORDER BY a.date DESC LIMIT 1";
                    $db->setQuery($query);
                    $last_bid = $db->loadObject();
                    if ($item->buynow) {
                        $min_bid = $item->price_start;
                    } else {
                        $min_bid = $item->price;
                    }
                    if ($last_bid) {
                        if ($last_bid->user_id == $user->id) {
                            $bid_error = 1;
                            $bid_message = JText::_('COM_DJCLASSIFIEDS_YOUR_OFFER_IS_LAST_YOU_CAN_BID_ONLY_OTHER_USERS');
                        }
                        $min_bid = $last_bid->price;
                    }
                    if ($item->user_id == $user->id) {
                        $bid_error = 1;
                        $bid_message = JText::_('COM_DJCLASSIFIEDS_YOU_CANT_BID_YOUR_ADVERT');
                    }
                    if ($bid_error == 0) {
                        if (!$item->bid_min) {
                            $item->bid_min = 1;
                        }
                        $min_bid = $min_bid + $item->bid_min;
                        if ($bid < $min_bid) {
                            $bid_error = 1;
                            $error_show_form = 1;
                            $error_price = $min_bid;
                            $bid_message = JText::_('COM_DJCLASSIFIEDS_OFFER_SMALLER_THAN_LIMIT') . ' ' . DJClassifiedsTheme::priceFormat($error_price, $item->currency);
                        }
                        if ($bid_error == 0) {
                            if ($item->bid_max > 0) {
                                $max_bid = $min_bid + $item->bid_max;
                                if ($item->bid_max && $bid > $max_bid) {
                                    $bid_error = 1;
                                    $error_show_form = 1;
                                    $error_price = $max_bid;
                                    $bid_message = JText::_('COM_DJCLASSIFIEDS_OFFER_BIGGER_THAN_LIMIT') . ' ' . DJClassifiedsTheme::priceFormat($error_price, $item->currency);
                                }
                            }
                        }
                        if ($bid_error == 0) {
                            $user_ip = $_SERVER['REMOTE_ADDR'];
                            $win = 0;
                            if ($bid >= $item->price_reserve && $item->bid_autoclose == 1) {
                                $win = 1;
                            }
                            $query = "INSERT INTO #__djcf_auctions (`item_id`, `user_id`, `ip_address`, `price`,`win`)" . " VALUES ( '" . $id . "', '" . $user->id . "','" . $user_ip . "', '" . $bid . "', '" . $win . "' )";
                            $db->setQuery($query);
                            $db->query();
                            $price_start = '';
                            if (!$last_bid) {
                                $price_start = " price_start='" . $item->price . "' ";
                            }
                            $win_notifi = '';
                            if ($win) {
                                if ($price_start || $item->buynow) {
                                    $win_notifi = ", ";
                                }
                                $win_notifi .= "notify=2 ";
                            }
                            $price_new = '';
                            if ($item->buynow == 0) {
                                $price_new = " price='" . $bid . "' ";
                                if ($price_start) {
                                    $price_start = ',' . $price_start;
                                }
                            }
                            if ($price_start || $win_notifi || $price_new) {
                                $query = "UPDATE #__djcf_items SET " . $price_new . $price_start . $win_notifi . " WHERE id=" . $item->id;
                                $db->setQuery($query);
                                $db->query();
                            }
                            DJClassifiedsNotify::notifyAuctionsBidAuthor($id, $user, $bid);
                            DJClassifiedsNotify::notifyAuctionsBidBidder($id, $user, $bid);
                            if ($last_bid) {
                                DJClassifiedsNotify::notifyAuctionsBidOutbid($id, $user, $bid, $last_bid);
                            }
                            if ($win) {
                                DJClassifiedsNotify::notifyAuctionsWinAuthor($id, $user, $bid);
                                DJClassifiedsNotify::notifyAuctionsWinBidder($id, $user, $bid);
                            }
                        }
                    }
                } else {
                    $bid_error = 1;
                    $bid_message = JText::_('COM_DJCLASSIFIEDS_PLEASE_ENTER_PRICE_VALUE');
                }
                $query = "SELECT a.*, u.name as u_name FROM #__djcf_auctions a, #__users u " . " WHERE a.user_id=u.id AND a.item_id=" . $id . " ORDER BY a.date DESC LIMIT " . $par->get('bids_displayed', 5);
                $db->setQuery($query);
                $bids = $db->loadObjectList();
                ?>
				<div class="auction" id="djauctions">
				<div class="auction_bids">
					<div class="bids_title"><h2><?php 
                echo JText::_('COM_DJCLASSIFIEDS_CURRENT_BIDS');
                ?>
</h2></div>
						<?php 
                if (isset($bids[0]) && $item->price_reserve) {
                    if ($bids[0]->price < $item->price_reserve) {
                        ?>
								<div class="bids_subtitle"><?php 
                        echo JText::_('COM_DJCLASSIFIEDS_RESERVE_PRICE_NOT_REACHED');
                        ?>
</div>
						<?php 
                    }
                }
                ?>
						<div class="bids_list">
							<?php 
                if ($bids) {
                    ?>
								<div class="bids_row bids_row_title">
									<div class="bids_col bids_col_name"><?php 
                    echo JText::_('COM_DJCLASSIFIEDS_NAME');
                    ?>
:</div>
									<div class="bids_col bids_col_date"><?php 
                    echo JText::_('COM_DJCLASSIFIEDS_DATE');
                    ?>
:</div>
									<div class="bids_col bids_col_bid"><?php 
                    echo JText::_('COM_DJCLASSIFIEDS_BID');
                    ?>
:</div>
									<div class="clear_both"></div>
								</div>
								<?php 
                    foreach ($bids as $bid) {
                        if ($bid->price > $min_bid) {
                            $min_bid = $bid->price;
                        }
                        if ($par->get('mask_bidder_name', '0') == 1) {
                            $bid->u_name = substr($bid->u_name, 0, 1) . '.....' . substr($bid->u_name, -1, 1);
                        }
                        ?>
 
									<div class="bids_row">
										<div class="bids_col bids_col_name"><?php 
                        echo $bid->u_name;
                        ?>
</div>
										<div class="bids_col bids_col_date"><?php 
                        echo DJClassifiedsTheme::formatDate(strtotime($bid->date));
                        ?>
</div>
										<div class="bids_col bids_col_bid"><?php 
                        echo DJClassifiedsTheme::priceFormat($bid->price, $item->currency);
                        ?>
</div>
										<div class="clear_both"></div>
									</div>		
								<?php 
                    }
                    ?>
			
							<?php 
                } else {
                    ?>
								<div class="bids_row no_bids_row"><?php 
                    echo JText::_('COM_DJCLASSIFIEDS_NO_SUBMITTED_BIDS');
                    ?>
</div>	
							<?php 
                }
                ?>
							<div class="clear_both"></div>
						</div>
					</div>
					
					<?php 
                if ($error_show_form) {
                    ?>
					
						<div class="bids_form" id="djbids_form">
							<div class="bids_box">
								<div class="bids_info">
									<span class="bid_label"><?php 
                    echo JText::_('COM_DJCLASSIFIEDS_PLACE_BID');
                    ?>
</span>					
								</div>
								<div class="bids_input">
									<?php 
                    if ($par->get('unit_price_position', '0') == 1) {
                        echo $item->currency ? $item->currency : $par->get('unit_price');
                    }
                    ?>
     	
									<input class="inputbox" id="djbid_value" type="text" name="bid_max" id="bid_max" size="30" maxlength="250" value="<?php 
                    echo $error_price;
                    ?>
" />
									<?php 
                    if ($par->get('unit_price_position', '0') == 0) {
                        echo $item->currency ? $item->currency : $par->get('unit_price');
                    }
                    ?>
				
								</div>
								<div class="bids_button">
									<button class="button" id="bid_submit"><?php 
                    echo JText::_('COM_DJCLASSIFIEDS_PLACE_BID');
                    ?>
</button>
								</div>								
								<div class="clear_both"></div>
							</div>
							<div class="clear_both"></div>
						</div>
						
					
					<?php 
                }
                ?>
					
					
									
					<div id="djbid_alert">
						<?php 
                if ($bid_error) {
                    echo $bid_message;
                }
                ?>
					</div>
					<div id="djbid_message">
						<?php 
                if (!$bid_error) {
                    echo $bid_message;
                }
                ?>
					</div>
				</div>
				
				
				
				
				
				
				
				
				
				
				
			<?php 
            } else {
                echo '<div class="auction" id="djauctions"><div id="djbid_alert" >';
                echo JText::_('COM_DJCLASSIFIEDS_WRONG_AD');
                echo '</div></div>';
            }
        } else {
            echo '<div class="auction" id="djauctions"><div id="djbid_alert" >';
            echo JText::_('COM_DJCLASSIFIEDS_PLEASE_LOGIN');
            echo '</div></div>';
        }
        die;
    }