Commit f514e8fb by Tobin

dc

parent d7c0856b
......@@ -104,17 +104,17 @@ class Webservice extends CI_Controller {
public function events_details($event_id = null) {
$data['event_id'] = $_GET['event_id'];
$data['auth_token'] = $this->auth_token;
$data['event_date_id'] = '';
if($data['event_id'] == null) {
$this->errorResponse("ER16","Event id is null or empty");
die;
$this->errorResponse("ER16","Event id is null or empty");die;
}
if (isset($_GET['event_date_id']) && !empty($_GET['event_date_id'])){
$data['event_date_id'] = $_GET['event_date_id'];
}
$res = $this->Webservice_model->event($data);
if($res['status']!=0){
$this->response($res['data']);
}
else{
} else{
$this->errorResponse($res['code'],$res['message']);
}
}
......
......@@ -232,8 +232,9 @@ class Webservice_model extends CI_Model {
$per_page = 10;
$user_id = $this->auth_token_get($data['auth_token']);
if($user_id > 0) {
$where = '';
$lang = $this->getUserLang($user_id);
$cityField = "region.name AS city";
if($lang == 'ar') {
$cityField = 'region.name_ar AS city';
......@@ -242,22 +243,14 @@ class Webservice_model extends CI_Model {
INNER JOIN region ON customer.city=region.id
WHERE customer.customer_id='$user_id' AND region.status='1'";
$cityName = $this->db->query($sql)->row_array();
if(empty($cityName)){
$cityName['city'] = 'null';
}
$where = '';
$case = "AND event_date_time.date >= DATE_FORMAT(NOW(),'%Y-%m-%d')";
/******************* CATEGORY *********************/
$cityName['city'] = (empty($cityName))?'null':$cityName['city'];
if(isset($data['category_id'])) {
$where = ' AND events.category_id = '.$data['category_id'];
}
/******************* END CATEGORY *********************/
/******************* LATITUDE AND LONGITUDE *********************/
$case = "AND event_date_time.date >= DATE_FORMAT(NOW(),'%Y-%m-%d')";
if(isset($data['latitude']) && isset($data['longitude'])) {
$radius = 25;
$res = $this->db->query("SELECT events.event_id,venue.id,venue.status, (((acos(sin((".$data['latitude']."*pi()/180)) * sin((venue.location_lat*pi()/180)) + cos((".$data['latitude']."*pi()/180)) * cos((venue.location_lat*pi()/180)) * cos(((".$data['longitude']." - venue.location_lng)*pi()/180))))*180/pi())*60*1.1515) as distance FROM venue RIGHT JOIN events ON events.venue_id = venue.id HAVING distance < ".$radius." AND venue.status = '1'")->result_array();
......@@ -274,13 +267,9 @@ class Webservice_model extends CI_Model {
}
}
/******************* END LATITUDE AND LONGITUDE ***/
/******************* CITY ID *********************/
if(isset($data['city_id'])) {
$where = ' AND venue.region_id = '.$data['city_id'];
}
/******************* END CITY ID *********************/
/******************* FILTER ***************************/
if(isset($data['filters'])){
$filtersElement = json_decode($data['filters'], true);
......@@ -295,8 +284,6 @@ class Webservice_model extends CI_Model {
$where = ' AND events.category_id='.$categoryId;
}
//$case = "AND event_date_time.date >= DATE_FORMAT(NOW(),'%Y-%m-%d')";
if($dateId != '') {
switch ($dateId) {
case '1':
......@@ -335,47 +322,95 @@ class Webservice_model extends CI_Model {
}
}
if($locality_id!=''){
$venue_res = $this->db->select('id')->where('locality_id',$locality_id)->get('venue')->result_array();
$list = implode(',', array_map(function($v) { return $v['id']; }, $venue_res));
$where .= ' AND events.venue_id IN('.$list.')';
}
// $count = $this->db->query("SELECT events.event_id FROM events INNER JOIN event_date_time ON events.event_id = event_date_time.event_id $case WHERE events.status = 1 $where GROUP BY events.event_id")->num_rows();
}
/******************* END FILTER *********************/
/******************* PAGINATION *********************/
$count = $this->db->query("SELECT events.event_id FROM events INNER JOIN event_date_time ON events.event_id = event_date_time.event_id $case INNER JOIN venue on venue.id = events.venue_id WHERE events.status = 1 $where GROUP BY events.event_id")->num_rows();
//echo "hai";exit();
if($count > 0) {
$resCount = $this->db->query("
SELECT GROUP_CONCAT(DISTINCT CONCAT_WS('#',event_date_time.id,event_date_time.date,
event_date_time.time)) AS date_time
FROM events
INNER JOIN event_date_time ON events.event_id = event_date_time.event_id $case
LEFT JOIN event_gallery ON events.event_id=event_gallery.event_id AND
event_gallery.media_type = 0
LEFT JOIN booking ON booking.event_id = events.event_id
LEFT JOIN event_category ON events.category_id = event_category.cat_id
LEFT JOIN review ON review.event_id = events.event_id
INNER JOIN venue ON venue.id = events.venue_id
LEFT JOIN favourite ON favourite.event_id = events.event_id AND
favourite.user_id = $user_id AND favourite.status = 1
WHERE events.status = 1 $where
GROUP BY events.event_id")->result();
if(empty($resCount)){
return array('status'=>1,'data'=>array('city_name'=>$cityName['city']));
}
if(isset($data['page'])) {
$page = $data['page'];
foreach ($resCount AS $key => $rs) {
if(!empty($dates = explode(',',$rs->date_time))){
$checkTime = 0;
foreach ($dates as $date) {
if(empty($date)){
unset($resCount[$key]);
continue;
}
$dArr = explode('#', $date);
if($dArr[1] == date("Y-m-d") &&
$dArr[1].' '.$dArr[2] < date("Y-m-d H:i", strtotime('+15 minutes'))){
$checkTime += 1;
}
}
if($checkTime == count($dates)){
unset($resCount[$key]);
}
} else {
$page = 1;
unset($resCount[$key]);
}
}
$count = count($resCount);
if($count > 0) {
$page = (isset($data['page']))?$data['page']:1;
$page_limit = ($page - 1)*$per_page;
if($lang == 'ar') {
$cat_field = 'event_category.category_ar';
} else {
$cat_field = 'event_category.category';
}
// End
$page_limit = ($page - 1)*$per_page;
if($count > $page_limit) {
/******************* END PAGINATION *********************/
$result = $this->db->query("SELECT events.seat_pricing,events.custom_seat_layout,venue.location_lat AS latitude,venue.location_lng AS longitude,venue.layout,venue.layout_details,events.event_id AS event_id, events.event_name AS name,events.event_name_ar AS name_ar,`event_gallery`.`media_url` AS image, (SELECT SUM(booking.no_of_ticket) FROM booking WHERE booking.event_id = events.event_id AND booking.status IN (1,2)) AS attendees, $cat_field AS category, CAST(AVG (review.rate) AS DECIMAL (12,1)) AS rating, venue.venue_name, venue.location, IF(events.avg_price = 0, '100','150') AS rate, IF(events.provider_id = 1,'true','false') AS is_editors_choice, IF(favourite.is_favorite = 1, 'true','false') AS is_favorite FROM events INNER JOIN event_date_time ON events.event_id = event_date_time.event_id ".$case." LEFT JOIN `event_gallery` ON `events`.`event_id` = `event_gallery`.`event_id` AND `event_gallery`.`media_type` = 0 LEFT JOIN booking ON booking.event_id = events.event_id LEFT JOIN event_category ON events.category_id = event_category.cat_id LEFT JOIN review ON review.event_id = events.event_id INNER JOIN venue ON venue.id = events.venue_id LEFT JOIN favourite ON favourite.event_id = events.event_id AND favourite.user_id = ".$user_id." AND favourite.status = 1 WHERE events.status = 1 ".$where." GROUP BY events.event_id LIMIT ". $page_limit.", ".$per_page)->result();
$result = $this->db->query("
SELECT events.seat_pricing,events.custom_seat_layout,venue.location_lat AS latitude,venue.location_lng AS longitude,venue.layout,venue.layout_details,events.event_id AS event_id, events.event_name AS name,events.event_name_ar AS name_ar,`event_gallery`.`media_url` AS image, (SELECT SUM(booking.no_of_ticket) FROM booking WHERE booking.event_id = events.event_id AND booking.status IN (1,2)) AS attendees, $cat_field AS category, CAST(AVG (review.rate) AS DECIMAL (12,1)) AS rating, venue.venue_name, venue.location, IF(events.avg_price = 0, '100','150') AS rate, IF(events.provider_id = 1,'true','false') AS is_editors_choice, IF(favourite.is_favorite = 1, 'true','false') AS is_favorite, GROUP_CONCAT(DISTINCT CONCAT_WS('#',event_date_time.id,event_date_time.date,event_date_time.time)) AS date_time
FROM events
INNER JOIN venue ON venue.id = events.venue_id
INNER JOIN event_date_time ON events.event_id = event_date_time.event_id
LEFT JOIN event_gallery ON events.event_id=event_gallery.event_id AND
event_gallery.media_type = 0
LEFT JOIN booking ON booking.event_id=events.event_id
LEFT JOIN event_category ON events.category_id=event_category.cat_id
LEFT JOIN review ON review.event_id=events.event_id
LEFT JOIN favourite ON favourite.event_id=events.event_id AND
favourite.user_id=$user_id AND favourite.status=1
WHERE events.status = 1 $where $case
GROUP BY events.event_id
LIMIT $page_limit,$per_page")->result();
$response = array();
foreach ($result as $key=>$rs) {
if(!empty($dates = explode(',',$rs->date_time)) && count($dates) > 0){
$checkTime = 0;
foreach ($dates as $date) {
$dArr = explode('#', $date);
if($dArr[1] == date("Y-m-d") && $dArr[1].' '.$dArr[2]<date("Y-m-d H:i",strtotime('+15 minutes'))){
$checkTime += 1;
}
}
if($checkTime == count($dates)) continue;
} else continue;
if($rs->layout!=''){
if($rs->custom_seat_layout!=''){
$pricelist = json_decode($rs->custom_seat_layout, TRUE);
......@@ -402,7 +437,6 @@ class Webservice_model extends CI_Model {
'is_favorite'=>$rs->is_favorite === 'true'? true: false,
'latitude'=>$rs->latitude,
'longitude'=>$rs->longitude
);
array_push($response, $resData);
}
......@@ -458,7 +492,6 @@ class Webservice_model extends CI_Model {
function event($data) {
try {
$user_id = $this->auth_token_get($data['auth_token']);
if($user_id > 0) {
......@@ -467,98 +500,39 @@ class Webservice_model extends CI_Model {
$this->db->query("SET SESSION group_concat_max_len = 20000");
$rs = $this->db->query("SELECT IF(host_categories.show_layout = 0,'false','true') AS is_layout,IF(events.has_payment = 0,'false','true') AS is_payment_required,IF(favourite.is_favorite = 1,'true','false') AS is_favorite,events.event_id, CAST(AVG (review.rate) AS DECIMAL (12,1)) AS rate, (SELECT SUM(no_of_ticket) FROM booking WHERE event_id = events.event_id AND status IN (1,2)) AS attendees, events.event_name,events.event_name_ar,events.event_discription AS event_description,events.event_discription_ar,events.seat_pricing, events.custom_seat_layout, venue.layout, venue.layout_details,venue.venue_name,venue.venue_details,venue.location,venue.location_lat AS lat,venue.location_lng AS lng,venue.venue_name AS address_name,venue.venue_name_ar AS address_name_ar,venue.location AS address, GROUP_CONCAT(DISTINCT `event_gallery`.`media_url`) AS media_url,IF(favourite.status = 1,'true','false') AS fav_status, GROUP_CONCAT(DISTINCT tags.tag_name) AS tag, GROUP_CONCAT(DISTINCT tags.tag_name_ar) AS tag_ar, GROUP_CONCAT(DISTINCT CONCAT_WS('#',event_date_time.id,event_date_time.date,event_date_time.time)) AS date_time, events.max_booking FROM events INNER JOIN event_date_time ON events.event_id = event_date_time.event_id INNER JOIN venue ON venue.id = events.venue_id LEFT JOIN `event_gallery` ON `events`.`event_id` = `event_gallery`.`event_id` AND `event_gallery`.`status` != 0 LEFT JOIN booking on booking.event_id = events.event_id LEFT JOIN favourite ON favourite.event_id = events.event_id AND favourite.user_id = ".$user_id." AND favourite.status = 1 LEFT JOIN event_tags ON events.event_id = event_tags.event_id LEFT JOIN tags on tags.tag_id = event_tags.tag_id LEFT JOIN review ON events.event_id = review.event_id INNER JOIN host_categories ON venue.host_cat_id = host_categories.host_cat_id WHERE event_date_time.date>='".date('Y-m-d')."' AND events.event_id = ".$event_id." GROUP BY events.event_id, event_date_time.event_id")->row();
if(count($rs)>0){
$resultData = array();
$event_layout = '';
$colorData = array();
$booking = $this->db->where('event_id',$event_id)->select('ticket_details')->get('booking')->result();
if(count($booking) > 0){
foreach ($booking as $row) {
$priceData[] = json_decode($row->ticket_details);
if(count($priceData) > 0){
foreach ($priceData as $value) {
// $colorData[$value->color] = isset($colorData[$value->color]) ? + $colorData[$value->color] + $value->no_ticket: $value->no_ticket;
}
}
}
}
$resultData = array();
if($rs->layout!=''){
if($rs->custom_seat_layout!=''){
$pricelist = json_decode($rs->custom_seat_layout, TRUE);
$price = min(array_column($pricelist, 'price'));
$event_layout = $rs->custom_seat_layout;
} else {
$pricelist = json_decode($rs->layout_details, TRUE);
$price = min(array_column($pricelist, 'price'));
$event_layout = $rs->layout_details;
}
} else {
$pricelist = json_decode($rs->seat_pricing, TRUE);
$price = $pricelist['price'];
$event_layout = $rs->seat_pricing;
}
$bookedCount = 0;
$sql = "SELECT SUM(no_of_ticket) AS bookCount
FROM booking AS BOK
WHERE event_id='$event_id' AND customer_id='$user_id' AND status IN (1)";
$result = $this->db->query($sql)->row_array();
if(!empty($result)){
$bookedCount = $result['bookCount'];
}
$event_layout = json_decode($event_layout);
$event_layouts = array();
if(is_array($event_layout)){
foreach ($event_layout as $value) {
if(isset($colorData[$value->color])) {
$avaliable = $value->capacity - $colorData[$value->color];
} else {
$avaliable = $value->capacity;
}
$priceLayout = array('class_name' => $value->color,
'rate'=>$value->price,
'total_tickets'=>$value->capacity,
'available_tickets'=>$avaliable,
"max_ticket"=>$rs->max_booking-$bookedCount
);
array_push($event_layouts, $priceLayout);
}
} else {
$event_layouts[] = array('class_name' => null,
'rate'=>$event_layout->price,
'total_tickets'=>null,
'available_tickets'=>null,
"max_ticket"=>$rs->max_booking-$bookedCount
);
}
$dates = explode(',', $rs->date_time);
$time_spec = array();
$data_array = array();
foreach ($dates as $rss) {
list($id,$date,$time) = explode('#', $rss);
$sTime = $date.' '.$time;
$cTime = date("Y-m-d H:i", strtotime('+15 minutes'));
if($cTime < $sTime){
$time_spec[] = array('id'=>$id, 'date'=>$date, 'time'=>$time);
$data_array[$date][] = array('id'=>$id, 'time'=>$time);
}
}
$date_list = array();
foreach ($data_array as $key => $value) {
$date_list[] = array('date'=>$key, 'time'=>$value);
}
$lang = $this->getUserLang($user_id);
if($rs->is_layout && !empty($pData = json_decode($rs->seat_pricing, TRUE))){
if($lang == 'en'){
$rs->event_description .= '<p>'.$pData['price_details'].' '.'(SAR '.$pData['price'].')'.'</p>';
......@@ -567,6 +541,13 @@ class Webservice_model extends CI_Model {
$rs->event_discription_ar .= '<p>'.$pData['price_details_ar'].' '.'(SAR '.$pData['price'].')'.'</p>';
}
}
$event_layouts = [];
if(isset($data['event_date_id']) && !empty($eDateId = $data['event_date_id'])){
$param = array('user_id'=>$user_id,'event_id'=>$event_id,'time_id'=>$eDateId);
$event_layouts = $this->checkSeatAvailability($param);
}
$tags = ($lang == 'en')? explode(',', $rs->tag) : explode(',', $rs->tag_ar);
$media_url = explode(',', $rs->media_url);
$resData = array(
......@@ -1056,25 +1037,59 @@ class Webservice_model extends CI_Model {
try {
$user_id = $this->auth_token_get($data['auth_token']);
if($user_id > 0) {
$where = array(
'favourite.status'=>1,
'favourite.is_favorite'=>1,
'favourite.user_id'=>$user_id,
'events.status'=>1
);
$lang = $this->db->select('language')->where('customer_id', $user_id)->get('customer')->row();
if($lang->language == 'ar') {
$lang = $this->getUserLang($user_id);
if($lang == 'ar') {
$cat_field = 'event_category.category_ar AS category';
$cat_field .= ',events.event_name_ar AS event_name';
} else {
$cat_field = 'event_category.category AS category';
$cat_field .= ',events.event_name AS event_name';
}
$result = $this->db->select("events.event_id,event_gallery.media_url,(SELECT COUNT(booking.id) FROM booking WHERE booking.event_id = events.event_id) AS attendees,
$cat_field,CAST(AVG (review.rate) AS DECIMAL (12,1)) AS rating,venue.location,IF(favourite.is_favorite = 0,'false','true') AS is_favorite,IF(events.provider_id = 0,'false','true') AS is_editors_choice,events.seat_pricing,events.custom_seat_layout,venue.layout,venue.layout_details")->where($where)->from('favourite')->join('review', 'review.event_id = favourite.event_id','LEFT')->join('events', 'events.event_id = favourite.event_id')->join('booking', 'booking.event_id = events.event_id','LEFT')->join('venue', 'venue.id = events.venue_id')->join('event_category', 'events.category_id = event_category.cat_id')->join('event_gallery', 'events.event_id = event_gallery.event_id AND event_gallery.media_type = 0', 'LEFT')->group_by('events.event_id')->get()->result();
$result = $this->db->query("
SELECT events.event_id, event_gallery.media_url, (SELECT COUNT(booking.id) FROM booking WHERE booking.event_id = events.event_id) AS attendees, event_category.category AS category, events.event_name AS event_name, CAST(AVG (review.rate) AS DECIMAL (12, 1)) AS rating, venue.location, IF(favourite.is_favorite = 0, 'false', 'true') AS is_favorite, IF(events.provider_id = 0, 'false', 'true') AS is_editors_choice, events.seat_pricing, events.custom_seat_layout, venue.layout, venue.layout_details, GROUP_CONCAT(DISTINCT CONCAT_WS('#', event_date_time.id, event_date_time.date, event_date_time.time)) AS date_time
FROM favourite
INNER JOIN events ON events.event_id=favourite.event_id
INNER JOIN venue ON venue.id=events.venue_id
INNER JOIN event_date_time ON event_date_time.event_id=events.event_id
INNER JOIN event_category ON events.category_id=event_category.cat_id
LEFT JOIN review ON review.event_id=favourite.event_id
LEFT JOIN booking ON booking.event_id=events.event_id
LEFT JOIN event_gallery ON events.event_id=event_gallery.event_id AND
event_gallery.media_type=0
WHERE favourite.status=1 AND favourite.is_favorite=1 AND
favourite.user_id='$user_id' AND events.status=1 AND
event_date_time.date>=DATE_FORMAT(NOW(),'%Y-%m-%d')
GROUP BY events.event_id")->result();
if(empty($result)){
return array('status'=>1,'data' => []);
}
if(count($result)>0){
foreach ($result AS $key => $rs) {
if(!empty($dates = explode(',',$rs->date_time))){
$checkTime = 0;
foreach ($dates as $date) {
if(empty($date)){
unset($result[$key]);
continue;
}
$dArr = explode('#', $date);
if($dArr[1] == date("Y-m-d") &&
$dArr[1].' '.$dArr[2] < date("Y-m-d H:i", strtotime('+15 minutes'))){
$checkTime += 1;
}
}
if($checkTime == count($dates)){
unset($result[$key]);
}
} else {
unset($result[$key]);
}
}
if(($count = count($result)) > 0){
$response = array();
foreach ($result as $rs) {
if($rs->layout!=''){
......@@ -1447,6 +1462,10 @@ class Webservice_model extends CI_Model {
GROUP BY EVT.event_id";
$resCount = $this->db->query($sql)->result();
if(empty($resCount)){
return array('status'=>0,'message'=>'No Data Found','code'=>'ER18');
}
foreach ($resCount AS $key => $rs) {
if(!empty($dates = explode(',',$rs->date_time))){
$checkTime = 0;
......@@ -1534,6 +1553,92 @@ class Webservice_model extends CI_Model {
}
return $res;
}
public function checkSeatAvailability($data = ''){
$user_id = $data['user_id'];
$event_id = $data['event_id'];
$evtTimeId = $data['time_id'];
$lyCapacity = array();
$capacity = $usrBooked = $maxBooking = 0;
$sql = "SELECT EDATE.date,EDATE.time,EVT.custom_seat_layout,EVT.seat_pricing,
EVT.max_booking,VEN.layout_details,HST.show_layout
FROM events AS EVT
INNER JOIN venue AS VEN ON (VEN.id=EVT.venue_id)
INNER JOIN event_date_time AS EDATE ON (EVT.event_id=EDATE.event_id)
INNER JOIN host_categories AS HST ON (VEN.host_cat_id=HST.host_cat_id)
WHERE EVT.event_id='$event_id' AND EDATE.id='$evtTimeId' AND
EDATE.date >= DATE_FORMAT(NOW(),'%Y-%m-%d')";
$evtSql = $this->db->query($sql);
$evtData = $evtSql->row_array();
if(!empty($user_id)){
$sql = "SELECT SUM(BOK.no_of_ticket) AS bookCount
FROM booking AS BOK
INNER JOIN event_date_time AS EDATE ON (BOK.event_date_id=EDATE.id)
WHERE BOK.event_id='$event_id' AND BOK.customer_id='$user_id' AND
EDATE.id='$evtTimeId' AND BOK.status IN (1,2)";
$result = $this->db->query($sql)->row_array();
$usrBooked = (!empty($result))?$result['bookCount']:0;
}
$maxBooking = $evtData['max_booking']-$usrBooked;
if($evtData['show_layout'] == 0){
$lyout = json_decode($evtData['seat_pricing'],true);
$lyCapacity['price'] = $lyout['price'];
$lyCapacity['capacity'] = $lyout['capacity'];
} else {
$lyout = (!empty($evtData['custom_seat_layout']))
?json_decode($evtData['custom_seat_layout'],true)
:json_decode($evtData['layout_details'],true);
foreach($lyout AS $custLy) {
$lyCapacity[$custLy['color']] = array('price'=>$custLy['price'],
'capacity'=>$custLy['capacity'],
'weekend_price'=>$custLy['weekend_price']);
}
}
$sql = "SELECT BOOK.no_of_ticket,BOOK.ticket_details
FROM booking AS BOOK
INNER JOIN event_date_time AS EDATE ON (BOOK.event_date_id=EDATE.id)
WHERE BOOK.event_id='$event_id' AND BOOK.event_date_id='$evtTimeId'";
if(!empty($result = $this->db->query($sql)->result_array())){
foreach($result AS $value) {
if($evtData['show_layout'] == 0){
$lyCapacity['capacity'] = $lyCapacity['capacity']-$value['no_of_ticket'];
} else {
$tkDtls = json_decode($value['ticket_details'],true);
$aval = $lyCapacity[$tkDtls['color']]['capacity'];
$aval = ($tkDtls['no_ticket']>$aval)?0:$aval-$tkDtls['no_ticket'];
$lyCapacity[$tkDtls['color']]['capacity'] = $aval;
}
}
}
$event_layouts = array();
if($evtData['show_layout'] == 0){
$capacity = $lyCapacity['capacity'];
$lyCapacity['capacity'] = ($capacity < $maxBooking)? $capacity : $maxBooking;
$event_layouts[] = array('rate' => $lyCapacity['price'],
'class_name' => null,
'max_ticket' => $lyCapacity['capacity']);
} else {
foreach($lyCapacity AS $block => $sData) {
$capacity = $sData['capacity'];
$lyCapacity[$block]['capacity'] = ($capacity < $maxBooking)? $capacity : $maxBooking;
$event_layouts[] = array('rate' => $lyCapacity[$block]['price'],
'class_name' => $block,
'max_ticket' => $lyCapacity[$block]['capacity']);
}
}
return $event_layouts;
}
}
?>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment