rendered paste bodyfrontend/modules/user/action/actions.class.php
class userActions extends sfActions
{
public function executeVote()
{
$this->answer = AnswerPeer::retrieveByPk($this->getRequestParameter('id'));
$this->forward404Unless($this->answer);
// $user = $this->getUser()->getSubscriber();
$this->user = $this->getUser()->getSubscriber();
$relevancy = new Relevancy();
$relevancy->setAnswer($this->answer);
$relevancy->setUser($user);
$relevancy->setScore($this->getRequestParameter('score') == 1 ? 1 : -1);
$relevancy->save();
}
}
frontend/modules/user/templates/voteSuccess.php
<?php include_partial('answer/vote_user', array('answer' => $answer, 'user' => $user)) ?>
frontend/modules/answer/templates/_vote_user.php
<?php use_helper('Answer') ?>
span class="vote_up_mark" id="vote_up_<?php echo $answer->getId() ?>">
<?php echo $answer->getRelevancyUpPercent() ?>%
</span> <?php echo link_to_user_relevancy_up($user, $answer) ?>
<span class="vote_down_mark" id="vote_down_<?php echo $answer->getId() ?>">
<?php echo $answer->getRelevancyDownPercent() ?>%
</span> <?php echo link_to_user_relevancy_down($user, $answer) ?>
frontend/lib/helper/AnswerHelper.php
<?php
function link_to_user_relevancy_up($user, $answer)
{
return link_to_user_relevancy('up', $user, $answer);
}
function link_to_user_relevancy_down($user, $answer)
{
return link_to_user_relevancy('down', $user, $answer);
}
function link_to_user_relevancy($name, $user, $answer)
{
use_helper('Javascript');
if ($user->isAuthenticated())
{
$has_already_voted = RelevancyPeer::retrieveByPK($answer->getId(), $user->getSubscriberId());
if ($has_already_voted)
{
//already voted for relevancy
return $name;
}
else
{
//didn't declare interest yet
return link_to_remote($name, array(
'url' => 'user/vote?id='.$answer->getId().'&score='.($name == 'up' ? 1 : -1),
'update' => array('success' => 'vote_'.$answer->getId()),
'loading' => "Element.show('indicator')",
'complete' => "Element.hide('indicator');".visual_effect('highlight', 'vote_'.$name.'_'.$answer->getId()),
));
}
}
else
{
return link_to_function($name, visual_effect('blind_down', 'login', array('duration' => 0.5)));
}
}
?>
frontend/lib/myUser.class.php
<?php
class myUser extends sfBasicSecurityUser
{
public function signIn($user)
{
$this->setAttribute('subscriber_id', $user->getId(), 'subscriber');
$this->setAuthenticated(true);
$this->addCredential('subscriber');
$this->setAttribute('nickname', $user->getNickname(), 'subscriber');
}
public function signOut()
{
$this->getAttributeHolder()->removeNamespace('subscriber');
$this->setAuthenticated(false);
$this->clearCredentials();
}
public function getSubscriberId()
{
return $this->getAttribute('subscriber_id', ' ', 'subscriber');
}
public function getSubscriber()
{
return UserPeer::retrieveByPk($this->getSubscriberId());
}
public function getNickname()
{
return $this->getAttribute('nickname', ' ', 'subscriber');
}
}
Notice: Undefined variable: user in frontend/modules/answer/templates/_vote_user.php on line 5