Select Git revision
ViewTimeModel.php
ViewTimeModel.php 3.03 KiB
<?php
class Requests_ViewTimeModel extends Unl_Model
{
static public function find($id)
{
$db = Zend_Registry::get('db');
$select = new Zend_Db_Select($db);
$select->from(array('t' => 'creqRequestViewTimes'));
if (Unl_Util::isArray($id)) {
$select->where('t.requestViewTimeId IN (?)', $id);
} else {
$select->where('t.requestViewTimeId = ?', $id);
}
$records = $select->query()->fetchAll();
$objects = new Unl_Model_Collection(__CLASS__);
foreach ($records as $record) {
$object = Unl_Model_Registry::getInstance()->getOrAdd(new self($record));
$objects[$object->getId()] = $object;
}
// if we were passed an array of users, return an array for each user
if (Unl_Util::isArray($id)) {
return $objects;
// otherwise, return an array of groups for the single user we were passed
} else {
return $objects[$id];
}
}
static public function findByUserAndRequest($user, $request)
{
$db = Zend_Registry::get('db');
$requestId = $request->getId();
$userId = $user->getId();
$select = new Zend_Db_Select($db);
$select->from(array('t' => 'creqRequestViewTimes'), array('requestViewTimeId', 'user', 'request'));
if (Unl_Util::isArray($requestId)) {
$select->where('request IN (?)', $requestId);
} else {
$select->where('request = ?', $requestId);
}
if (Unl_Util::isArray($userId)) {
$select->where('user IN (?)', $userId);
} else {
$select->where('user = ?', $userId);
}
$records = $select->query()->fetchAll();
$viewTimeIds = array();
foreach ($records as $record) {
$viewTimeIds[] = $record['requestViewTimeId'];
}
self::find($viewTimeIds);
$objects = array();
foreach ($records as $record) {
$uId = $record['user'];
$rId = $record['request'];
$vId = $record['requestViewTimeId'];
if (Unl_Util::isArray($user) && Unl_Util::isArray($request)) {
$objects[$uId][$rId] = Unl_Model_Registry::getInstance()->get(__CLASS__, $vId);