Changeset 14

Show
Ignore:
Timestamp:
12/05/05 10:42:02 (3 years ago)
Author:
fabien
Message:

day 5 modifications

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/data/fixtures/test_data.yml

    r12 r14  
    6363      seen eating with their fingers - although it's nice.  
    6464 
    65   a3_q1
     65  a3_q2
    6666    question_id: q2 
    6767    user_id:     fabien 
     
    7171      lose. 
    7272 
    73   a4_q1
     73  a4_q3
    7474    question_id: q3 
    7575    user_id:     fabien 
  • trunk/frontend/config/app.yml

    r2 r14  
    11# default values 
    22all: 
     3  pager: 
     4    homepage_max: 2 
     5    answers_max:  1 
  • trunk/frontend/config/routing.yml

    r12 r14  
     1# question 
    12question: 
    23  url:   /question/:stripped_title 
    34  param: { module: question, action: show } 
     5 
     6popular_questions: 
     7  url:   /index/:page 
     8  param: { module: question, action: list } 
     9 
     10# answers 
     11answers: 
     12  url:   /question/:stripped_title/page/:page 
     13  param: { module: question, action: show, page: 1 } 
     14 
     15# login 
     16login: 
     17  url:   /login 
     18  param: { module: user, action: login } 
    419 
    520# default rules 
  • trunk/frontend/modules/question/actions/actions.class.php

    r12 r14  
    1313  public function executeList () 
    1414  { 
    15     $this->questions = QuestionPeer::doSelect(new Criteria()); 
     15    $this->question_pager = QuestionPeer::getHomepagePager($this->getRequestParameter('page', 1)); 
    1616  } 
    1717 
    1818  public function executeShow() 
    1919  { 
    20     $c = new Criteria(); 
    21     $c->add(QuestionPeer::STRIPPED_TITLE, $this->getRequestParameter('stripped_title')); 
    22     $this->question = QuestionPeer::doSelectOne($c); 
     20    $this->question = QuestionPeer::getQuestionFromTitle($this->getRequestParameter('stripped_title')); 
     21    $this->forward404Unless($this->question); 
    2322 
    24     $this->forward404Unless($this->question); 
     23    $this->answer_pager = AnswerPeer::getPager($this->question->getId(), $this->getRequestParameter('page', 1)); 
    2524  } 
    2625} 
  • trunk/frontend/modules/question/templates/listSuccess.php

    r12 r14  
    1 <?php use_helper('Text') ?
     1<h1>popular questions</h1
    22 
    3 <?php foreach($questions as $question): ?> 
    4   <div class="interested_block"> 
    5     <?php echo include_partial('interested_user', array('question' => $question)) ?> 
    6   </div> 
    7  
    8   <h2><?php echo link_to($question->getTitle(), 'question/show?stripped_title='.$question->getStrippedTitle()) ?></h2> 
    9  
    10   <div class="question_body"> 
    11     <?php echo truncate_text($question->getBody(), 200) ?> 
    12   </div> 
    13 <?php endforeach ?> 
     3<?php echo include_partial('question_list', array('question_pager' => $question_pager)) ?> 
  • trunk/frontend/modules/question/templates/showSuccess.php

    r12 r14  
    1 <?php use_helper('Date') ?> 
     1<?php use_helpers('Date', 'Answer') ?> 
    22 
    33<div class="interested_block"> 
     
    1212 
    1313<div id="answers"> 
    14 <?php foreach($question->getAnswers() as $answer): ?> 
     14<?php foreach ($answer_pager->getResults() as $answer): ?> 
    1515  <div> 
    1616    <?php echo $answer->getRelevancyUpPercent() ?>% UP <?php echo $answer->getRelevancyDownPercent() ?> % DOWN 
     
    2323<?php endforeach ?> 
    2424</div> 
     25 
     26<?php if ($answer_pager->haveToPaginate()): ?> 
     27  <div id="answers_pager"> 
     28 
     29  <?php echo answer_pager_link('&laquo;', $question, 1) ?> 
     30  <?php echo answer_pager_link('&lt;', $question, $answer_pager->getPreviousPage()) ?> 
     31 
     32  <?php foreach ($answer_pager->getLinks() as $page): ?> 
     33    <?php echo ($page == $answer_pager->getPage()) ? $page : answer_pager_link($page, $question, $page) ?> 
     34    <?php echo ($page != $answer_pager->getCurrentMaxLink()) ? '-' : '' ?> 
     35  <?php endforeach ?> 
     36 
     37  <?php echo answer_pager_link('&gt;', $question, $answer_pager->getNextPage()) ?> 
     38  <?php echo answer_pager_link('&raquo;', $question, $answer_pager->getLastPage()) ?> 
     39 
     40  </div> 
     41<?php endif ?> 
  • trunk/frontend/templates/layout.php

    r6 r14  
    1818  <div id="header"> 
    1919    <ul> 
    20       <li><?php echo link_to('about', '@homepage') ?></li> 
     20      <?php if ($user->hasAttribute('nickname', 'subscriber')): ?> 
     21        <li><?php echo link_to('sign out', 'user/logout') ?></li> 
     22        <li><?php echo link_to($user->getAttribute('nickname', '', 'subscriber').' profile', 'user/profile') ?></li> 
     23      <?php else: ?> 
     24        <li><?php echo link_to('sign in/register', 'user/login') ?></li> 
     25      <?php endif ?> 
     26      <li><?php echo link_to('about', 'question/list') ?></li> 
    2127    </ul> 
    22     <h1><?php echo link_to(image_tag('askeet_logo.gif', 'alt=askeet'), '@homepage') ?></h1> 
     28    <h1><?php echo link_to(image_tag('askeet_logo.gif', 'alt=askeet'), 'question/list') ?></h1> 
    2329  </div> 
    2430 
  • trunk/lib/model/AnswerPeer.php

    r4 r14  
    1919 * @package model 
    2020 */  
    21 class AnswerPeer extends BaseAnswerPeer { 
     21class AnswerPeer extends BaseAnswerPeer 
     22
     23  public static function getPager($question_id, $page) 
     24  { 
     25    $pager = new sfPager('Answer', APP_PAGER_ANSWERS_MAX); 
     26    $c = new Criteria(); 
     27    $c->add(self::QUESTION_ID, $question_id); 
     28    $c->addDescendingOrderByColumn(self::RELEVANCY_UP); 
     29    $c->addDescendingOrderByColumn(self::CREATED_AT); 
     30    $pager->setCriteria($c); 
     31    $pager->setPage($page); 
     32    $pager->init(); 
    2233 
    23 } // AnswerPeer 
     34    return $pager; 
     35  } 
     36
     37 
     38?> 
  • trunk/lib/model/QuestionPeer.php

    r4 r14  
    1919 * @package model 
    2020 */  
    21 class QuestionPeer extends BaseQuestionPeer { 
     21class QuestionPeer extends BaseQuestionPeer 
     22
     23  public static function getQuestionFromTitle($title) 
     24  { 
     25    $c = new Criteria(); 
     26    $c->add(self::STRIPPED_TITLE, $title); 
    2227 
    23 } // QuestionPeer 
     28    $questions = self::doSelectJoinUser($c); 
     29 
     30    return $questions ? $questions[0] : null; 
     31  } 
     32 
     33  public static function getHomepagePager($page) 
     34  { 
     35    $pager = new sfPager('Question', APP_PAGER_HOMEPAGE_MAX); 
     36    $c = new Criteria(); 
     37    $c->addDescendingOrderByColumn(self::INTERESTED_USERS); 
     38    $pager->setCriteria($c); 
     39    $pager->setPage($page); 
     40    $pager->setPeerMethod('doSelectJoinUser'); 
     41    $pager->init(); 
     42 
     43    return $pager; 
     44  } 
     45
     46 
     47?>