Skip to content

Commit

Permalink
Added dynamic page titles for hot/latest listings and profile pages
Browse files Browse the repository at this point in the history
  • Loading branch information
sanjeevan committed Jul 3, 2010
1 parent c0c1d88 commit 9a020ef
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 2 deletions.
30 changes: 30 additions & 0 deletions apps/frontend/modules/article/actions/actions.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ public function executeHot(sfWebRequest $request)

if (in_array($this->flavour, Article::getFlavours())){
$q->where('a.flavour = ?', $this->flavour);
} else {
$this->flavour = 'all';
}

$cache_hash = array(
Expand All @@ -44,6 +46,19 @@ public function executeHot(sfWebRequest $request)
$this->pager->init();

$this->insertCodeFlavouredResources();

// page title
$title = '';
if ($this->flavour != 'all'){
$title .= 'Hot ' . Article::getFlavourName($this->flavour);
$title .= ' - Page ' . $request->getParameter('page', 1);
$title .= ' - ' . sfConfig::get('app_name');
} else {
$title .= sfConfig::get('app_tagline');
$title .= ' - Page ' . $request->getParameter('page', 1);
$title .= ' - ' . sfConfig::get('app_name');
}
$this->getResponse()->setTitle($title);
}

/**
Expand All @@ -62,6 +77,8 @@ public function executeLatest(sfWebRequest $request)

if (in_array($this->flavour, Article::getFlavours())){
$q->where('a.flavour = ?', $this->flavour);
} else {
$this->flavour = 'all';
}

$cache_hash = array(
Expand All @@ -80,6 +97,19 @@ public function executeLatest(sfWebRequest $request)
$this->pager->init();

$this->insertCodeFlavouredResources();

// page title
$title = '';
if ($this->flavour != 'all'){
$title .= 'Latest ' . Article::getFlavourName($this->flavour);
$title .= ' - Page ' . $request->getParameter('page', 1);
$title .= ' - ' . sfConfig::get('app_name');
} else {
$title .= sfConfig::get('app_tagline');
$title .= ' - Page ' . $request->getParameter('page', 1);
$title .= ' - ' . sfConfig::get('app_name');
}
$this->getResponse()->setTitle($title);
}

/**
Expand Down
2 changes: 1 addition & 1 deletion apps/frontend/modules/article/templates/_show_link.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

<div class="summary">
<?php if (strlen($article->getSummary()) > 0): ?>
<?php echo $article->getSummary(); ?>
<?php echo myUtil::markdown($article->getSummary()); ?>
<?php endif; ?>
</div>

Expand Down
12 changes: 12 additions & 0 deletions apps/frontend/modules/profile/actions/actions.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ public function executeIndex(sfWebRequest $request)

if (in_array($this->flavour, Article::getFlavours())){
$q2->andWhere('a.flavour = ?', $this->flavour);
} else {
$this->flavour = 'all';
}

$this->pager = new sfDoctrinePager('Article', sfConfig::get('app_things_perpage'));
Expand All @@ -65,6 +67,16 @@ public function executeIndex(sfWebRequest $request)
}
}
}

// set page title
$fullname = $this->user->getFirstname() . ' ' . $this->user->getLastname();
$flavour_filter = Article::getFlavourName($this->flavour);
$title = $fullname;
if (isset($flavour_filter)){
$title .= ' - ' . $flavour_filter;
}
$title .= ' - ' . sfConfig::get('app_name');
$this->getResponse()->setTitle($title);
}

public function executeAvatar(sfWebRequest $request)
Expand Down
25 changes: 24 additions & 1 deletion lib/model/doctrine/Article.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,34 @@
*/
class Article extends BaseArticle
{
static $valid_flavours = array(
'link' => 'Links',
'code' => 'Code',
'snapshot' => 'Snapshots',
'question' => 'Questions'
);

public static function getFlavourName($flavour)
{
if (isset(self::$valid_flavours[$flavour])){
return self::$valid_flavours[$flavour];
}
}

/**
* Get valid flavours
*
*/
public static function getFlavours()
{
return array('link', 'code', 'snapshot', 'question');
return array_keys(self::$valid_flavours);
}

/**
* Invalidate cache, the actual invalidation of the cache is run in a background
* process
*
*/
public function invalidateCache()
{
/*
Expand Down

0 comments on commit 9a020ef

Please sign in to comment.