Changeset 14
- Timestamp:
- 12/05/05 10:42:02 (7 years ago)
- Files:
-
- trunk/data/fixtures/test_data.yml (modified) (2 diffs)
- trunk/frontend/config/app.yml (modified) (1 diff)
- trunk/frontend/config/routing.yml (modified) (1 diff)
- trunk/frontend/lib/helper (added)
- trunk/frontend/lib/helper/AnswerHelper.php (added)
- trunk/frontend/lib/helper/QuestionHelper.php (added)
- trunk/frontend/modules/question/actions/actions.class.php (modified) (1 diff)
- trunk/frontend/modules/question/templates/_question_list.php (added)
- trunk/frontend/modules/question/templates/listSuccess.php (modified) (1 diff)
- trunk/frontend/modules/question/templates/showSuccess.php (modified) (3 diffs)
- trunk/frontend/modules/user (added)
- trunk/frontend/modules/user/actions (added)
- trunk/frontend/modules/user/actions/actions.class.php (added)
- trunk/frontend/modules/user/config (added)
- trunk/frontend/modules/user/config/.sf (added)
- trunk/frontend/modules/user/lib (added)
- trunk/frontend/modules/user/lib/.sf (added)
- trunk/frontend/modules/user/templates (added)
- trunk/frontend/modules/user/templates/loginSuccess.php (added)
- trunk/frontend/modules/user/validate (added)
- trunk/frontend/modules/user/validate/.sf (added)
- trunk/frontend/templates/layout.php (modified) (1 diff)
- trunk/lib/model/AnswerPeer.php (modified) (1 diff)
- trunk/lib/model/QuestionPeer.php (modified) (1 diff)
- trunk/test/frontend/userActionsTest.php (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/data/fixtures/test_data.yml
r12 r14 63 63 seen eating with their fingers - although it's nice. 64 64 65 a3_q 1:65 a3_q2: 66 66 question_id: q2 67 67 user_id: fabien … … 71 71 lose. 72 72 73 a4_q 1:73 a4_q3: 74 74 question_id: q3 75 75 user_id: fabien trunk/frontend/config/app.yml
r2 r14 1 1 # default values 2 2 all: 3 pager: 4 homepage_max: 2 5 answers_max: 1 trunk/frontend/config/routing.yml
r12 r14 1 # question 1 2 question: 2 3 url: /question/:stripped_title 3 4 param: { module: question, action: show } 5 6 popular_questions: 7 url: /index/:page 8 param: { module: question, action: list } 9 10 # answers 11 answers: 12 url: /question/:stripped_title/page/:page 13 param: { module: question, action: show, page: 1 } 14 15 # login 16 login: 17 url: /login 18 param: { module: user, action: login } 4 19 5 20 # default rules trunk/frontend/modules/question/actions/actions.class.php
r12 r14 13 13 public function executeList () 14 14 { 15 $this->question s = QuestionPeer::doSelect(new Criteria());15 $this->question_pager = QuestionPeer::getHomepagePager($this->getRequestParameter('page', 1)); 16 16 } 17 17 18 18 public function executeShow() 19 19 { 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); 23 22 24 $this-> forward404Unless($this->question);23 $this->answer_pager = AnswerPeer::getPager($this->question->getId(), $this->getRequestParameter('page', 1)); 25 24 } 26 25 } trunk/frontend/modules/question/templates/listSuccess.php
r12 r14 1 < ?php use_helper('Text') ?>1 <h1>popular questions</h1> 2 2 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') ?> 2 2 3 3 <div class="interested_block"> … … 12 12 13 13 <div id="answers"> 14 <?php foreach ($question->getAnswers() as $answer): ?>14 <?php foreach ($answer_pager->getResults() as $answer): ?> 15 15 <div> 16 16 <?php echo $answer->getRelevancyUpPercent() ?>% UP <?php echo $answer->getRelevancyDownPercent() ?> % DOWN … … 23 23 <?php endforeach ?> 24 24 </div> 25 26 <?php if ($answer_pager->haveToPaginate()): ?> 27 <div id="answers_pager"> 28 29 <?php echo answer_pager_link('«', $question, 1) ?> 30 <?php echo answer_pager_link('<', $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('>', $question, $answer_pager->getNextPage()) ?> 38 <?php echo answer_pager_link('»', $question, $answer_pager->getLastPage()) ?> 39 40 </div> 41 <?php endif ?> trunk/frontend/templates/layout.php
r6 r14 18 18 <div id="header"> 19 19 <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> 21 27 </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> 23 29 </div> 24 30 trunk/lib/model/AnswerPeer.php
r4 r14 19 19 * @package model 20 20 */ 21 class AnswerPeer extends BaseAnswerPeer { 21 class 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(); 22 33 23 } // AnswerPeer 34 return $pager; 35 } 36 } 37 38 ?> trunk/lib/model/QuestionPeer.php
r4 r14 19 19 * @package model 20 20 */ 21 class QuestionPeer extends BaseQuestionPeer { 21 class QuestionPeer extends BaseQuestionPeer 22 { 23 public static function getQuestionFromTitle($title) 24 { 25 $c = new Criteria(); 26 $c->add(self::STRIPPED_TITLE, $title); 22 27 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 ?>
