<?php
/**
* ------------------------------------------------------------------
* Author : Sumal T.Jayaranga
* Date Created : 2016-07-01
* Last Modified :
* Brief :
* ------------------------------------------------------------------
**/
include_once get_include_path().'cls/database/cls_dbconnection.php';
include_once get_include_path().'cls/misc/cls_images.php';
include_once get_include_path().'cls/misc/cls_session.php';
include_once get_include_path().'cls/business/cls_users.php';
class _ads
{
public $_adid = "";
public $_userid = "";
public $_subcatid = "";
public $_typeid = "";
public $_title = "";
public $_description = "";
public $_price = "";
public $_city = "";
public $_pictures = null;
public $_message = "";
public function _open()
{
try
{
$classDB = new database();
$dbcon = $classDB->_getDBconnection();
$resultset = null;
if($dbcon)
{
$resultset = $dbcon->prepare("SELECT * FROM tbl_ads WHERE _adid=:_adid AND _status=1;");
$resultset->execute(array(':_adid'=>$this->_adid));
$rows = $resultset->fetch(PDO::FETCH_ASSOC);
$this->_adid = $rows['_adid'];
$this->_userid = $rows['_userid'];
$this->_subcatid = $rows['_subcatid'];
$this->_typeid = $rows['_typeid'];
$this->_title = $rows['_title'];
$this->_description = $rows['_description'];
$this->_price = $rows['_price'];
$this->_city = $rows['_city'];
$resultset = null;
$resultset = $dbcon->prepare("SELECT * FROM tbl_ads_images WHERE _adid=:_adid;");
$resultset->execute(array(':_adid'=>$this->_adid));
if(!$resultset->rowCount()==0)
{
$this->_pictures = $resultset;
}
$dbcon = null;
$classDB->close_db();
return(true);
}
}
catch(exception $e)
{
$this->_message="Unexpected error:_open";
return (false);
}
}
public function _save($userinfo="")
{
try
{
$classDB = new database();
$classImage = new _images();
$dbcon = $classDB->_getDBconnection();
$resultset = null;
if($dbcon)
{
$dbcon->beginTransaction();
//Check user
$resultset = $dbcon->prepare("SELECT * FROM tbl_users WHERE _userid=:_userid AND _status=1;");
$resultset->execute(array(':_userid'=>$this->_userid));
if($resultset->rowCount()!==1)
{
$this->_message="Invalid user!!";
$dbcon->rollBack();
return (false);
}
//Generate new id
$resultset = $dbcon->prepare("SELECT _adid FROM tbl_parameters;");
$resultset->execute();
$rows = $resultset->fetch(PDO::FETCH_ASSOC);
$this->_adid = $rows['_adid']+1;
$resultset=null;
//Update new id
$resultset = $dbcon->prepare("UPDATE tbl_parameters SET _adid=:_adid;");
$resultset->execute(array(':_adid'=>$this->_adid));
if($resultset->rowCount()!==1)
{
$this->_message="System error: Parameter cannot be updated.";
$dbcon->rollBack();
return (false);
exit;
}
$resultset=null;
$resultset = $dbcon->prepare("INSERT INTO tbl_ads (_adid, _userid, _subcatid, _typeid, _title, _description, _price, _city, _status) VALUES (?,?,?,?,?,?,?,?,1);");
$resultset->bindParam(1, $this->_adid);
$resultset->bindParam(2, $this->_userid);
$resultset->bindParam(3, $this->_subcatid);
$resultset->bindParam(4, $this->_typeid);
$resultset->bindParam(5, $this->_title);
$resultset->bindParam(6, $this->_description);
$resultset->bindParam(7, $this->_price);
$resultset->bindParam(8, $this->_city);
$resultset->execute();
if($resultset->rowCount()!=1)
{
$this->_message = 'Duplicate rows';
$dbcon->rollBack();
return(false);
}
$resultset = null;
//Update image table
$tmpFilePath = '';
$filename = '';
$i = 0;
$uploadingpath = get_include_path().'images';
$allowedFileTypes = array("image/jpg","image/jpeg","image/bmp","image/gif","image/png");
$resultset = $dbcon->prepare("INSERT INTO tbl_ads_images (_adid, _imagepath, _order) VALUES (?,?,?);");
$resultset->bindParam(1, $this->_adid);
$resultset->bindParam(2, $filename);
$resultset->bindParam(3, $i);
for($i=0; $i<count($this->_pictures['name']); $i++)
{
$tmpFilePath = $this->_pictures['tmp_name'][$i];
if($tmpFilePath == "")
{
$this->_message = 'Duplicate rows';
$dbcon->rollBack();
return(false);
}
$fileType = $this->_pictures['type'][$i];
$ext = end((explode(".", $this->_pictures['name'][$i])));
$filename = $_SESSION['_user']['id'].'-'.time().'-'.$i.'.'.$ext;
$shortname = $this->_pictures['name'][$i];
$filePath = "$uploadingpath/uploaded/$filename";
if(!in_array($fileType,$allowedFileTypes))
{
$this->_message = 'Image type not allowed! Please upload JPG, JPEG, BMP, GIF or PNG images';
$dbcon->rollBack();
return(false);
}
if ($this->_pictures['error'][$i] > 0)
{
$this->_message = 'Invalid Image! Unreadable or Damaged picture';
$dbcon->rollBack();
return(false);
}
if(!move_uploaded_file($tmpFilePath, $filePath))
{
$this->_message = 'Internal Error! Please contact webmaster';
$dbcon->rollBack();
return(false);
}
//100px resized images
$classImage->_load("$uploadingpath/uploaded/$filename");
$classImage->_resizeToWidth(100);
$classImage->_save("$uploadingpath/processed/100/$filename");
//400px resized images
$classImage->_load("$uploadingpath/uploaded/$filename");
$classImage->_resizeToWidth(400);
$classImage->_save("$uploadingpath/processed/400/$filename");
//800px resized images
$classImage->_load("$uploadingpath/uploaded/$filename");
$classImage->_resizeToWidth(800);
$classImage->_save("$uploadingpath/processed/800/$filename");
$resultset->execute();
}
$dbcon->commit();
Return (True);
exit;
}
else
{
$this->_message="No active database connection ";
return (false);
exit;
}
}
catch(exception $e)
{
$this->_message="Unexpected error:_open ".$e;
//$dbcon->rollBack();
return (false);
exit;
}
}
public function _update()
{
}
public function _delete()
{
}
}
?>