| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | <?php/** * * PHP Pro Bid $Id$ MgG7FR96oeZh/MiAsxNz9tZgf6ZkJ1NpP3tQ34aquhc= * * @link        http://www.phpprobid.com * @copyright   Copyright (c) 2015 Online Ventures Software & CodeCube SRL * @license     http://www.phpprobid.com/license Commercial License * * @version     7.4 *//** * listings watch table service class */namespace Ppb\Service;use Cube\Db\Expr,    Ppb\Db\Table\ListingsWatch as ListingsWatchTable;class ListingsWatch extends AbstractService{    /**     *     * class constructor     */    public function __construct()    {        parent::__construct();        $this->setTable(            new ListingsWatchTable());    }    /**     *     * create or update a row in the listings watch table     *     * @param array $data     *     * @return $this     */    public function save($data)    {        $row = null;        $data = $this->_prepareSaveData($data);        if (array_key_exists('id', $data)) {            $select = $this->_table->select()                ->where("id = ?", $data['id']);            unset($data['id']);            $row = $this->_table->fetchRow($select);        }        if (count($row) > 0) {            $this->_table->update($data, "id='{$row['id']}'");        }        else {            $data['created_at'] = new Expr('now()');            $this->_table->insert($data);        }        return $this;    }    /**     *     * delete data from the table     *     * @param int|array $listingIds the id of the listing(s)     * @param int       $userId     the id of the user that is watching the listing     * @param string    $userToken  user token cookie     *     * @return int returns the number of affected rows     */    public function delete($listingIds, $userId, $userToken)    {        $adapter = $this->_table->getAdapter();        if (!is_array($listingIds)) {            $listingIds = array($listingIds);        }        $where[] = $adapter->quoteInto('listing_id IN (?)', $listingIds);        if ($userId !== null) {            $where[] = 'user_token = "' . $userToken . '" OR user_id = "' . $userId . '"';        }        else {            $where[] = $adapter->quoteInto('user_token = ?', $userToken);        }        return $this->_table->delete($where);    }}
 |