1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
<?php
class JobeetUser
{
static public function methodNotFound(sfEvent $event)
{
if (method_exists('JobeetUser', $event['method']))
{
$event->setReturnValue(call_user_func_array(
array('JobeetUser', $event['method']),
array_merge(array($event->getSubject()), $event['arguments'])
));
return true;
}
}
static public function isFirstRequest(sfUser $user, $boolean = null)
{
if (is_null($boolean))
{
return $user->getAttribute('first_request', true);
}
else
{
$user->setAttribute('first_request', $boolean);
}
}
static public function addJobToHistory(sfUser $user, JobeetJob $job)
{
$ids = $user->getAttribute('job_history', array());
if (!in_array($job->getId(), $ids))
{
array_unshift($ids, $job->getId());
$user->setAttribute('job_history', array_slice($ids, 0, 3));
}
}
static public function getJobHistory(sfUser $user)
{
$ids = $user->getAttribute('job_history', array());
if (!empty($ids))
{
return Doctrine::getTable('JobeetJob')
->createQuery('a')
->whereIn('a.id', $ids)
->execute();
} else {
return array();
}
}
static public function resetJobHistory(sfUser $user)
{
$user->getAttributeHolder()->remove('job_history');
}
}
|