Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions 404.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@

use App\Http\Controllers\Controller;
use Rareloop\Lumberjack\Http\Responses\TimberResponse;
use Timber\Timber;
use Rareloop\Lumberjack\Http\TimberContext;

/**
* Class names can not start with a number so the 404 controller has a special cased name
*/
class Error404Controller extends Controller
{
public function handle()
public function handle(TimberContext $context)
{
return new TimberResponse('templates/errors/404.twig', Timber::context(), 404);
return new TimberResponse('templates/errors/404.twig', $context, 404);
}
}
50 changes: 31 additions & 19 deletions archive.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,33 +13,45 @@

use App\Http\Controllers\Controller;
use Rareloop\Lumberjack\Http\Responses\TimberResponse;
use Rareloop\Lumberjack\Post;
use Timber\Timber;
use Rareloop\Lumberjack\Http\PostQuery;
use Rareloop\Lumberjack\Http\TimberContext;

class ArchiveController extends Controller
{
public function handle()
public function handle(PostQuery $posts, TimberContext $context)
{
$data = Timber::context();
$data['title'] = 'Archive';
return new TimberResponse('templates/posts.twig', $context->merge([
'title' => $this->getPageTitle(),
'posts' => $posts,
]));
}

private function getPageTitle()
{
if (is_day()) {
$data['title'] = 'Archive: ' . get_the_date('D M Y');
} elseif (is_month()) {
$data['title'] = 'Archive: ' . get_the_date('M Y');
} elseif (is_year()) {
$data['title'] = 'Archive: ' . get_the_date('Y');
} elseif (is_tag()) {
$data['title'] = single_tag_title('', false);
} elseif (is_category()) {
$data['title'] = single_cat_title('', false);
} elseif (is_post_type_archive()) {
$data['title'] = post_type_archive_title('', false);
return 'Archive: ' . get_the_date('D M Y');
}

if (is_month()) {
return 'Archive: ' . get_the_date('M Y');
}

if (is_year()) {
return 'Archive: ' . get_the_date('Y');
}

// TODO: Currently only works for posts, fix for custom post types
$data['posts'] = Post::query();
if (is_tag()) {
return single_tag_title('', false);
}

if (is_category()) {
return single_cat_title('', false);
}

if (is_post_type_archive()) {
return post_type_archive_title('', false);
}

return new TimberResponse('templates/posts.twig', $data);
return 'Archive';
}
}
26 changes: 9 additions & 17 deletions author.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,18 @@

use App\Http\Controllers\Controller;
use Rareloop\Lumberjack\Http\Responses\TimberResponse;
use Rareloop\Lumberjack\Post;
use Timber\Timber;
use Timber\User as TimberUser;
use Rareloop\Lumberjack\Http\PostQuery;
use Rareloop\Lumberjack\Http\TimberContext;
use Rareloop\Lumberjack\User;

class AuthorController extends Controller
{
public function handle()
public function handle(User $user, PostQuery $posts, TimberContext $context)
{
global $wp_query;

$data = Timber::context();
$author = new TimberUser($wp_query->query_vars['author']);

$data['author'] = $author;
$data['title'] = 'Author Archives: ' . $author->name();

$data['posts'] = Post::query([
'author' => $author->ID
]);

return new TimberResponse('templates/posts.twig', $data);
return new TimberResponse('templates/posts.twig', $context->merge([
'author' => $user,
'title' => 'Author Archives: ' . $user->name(),
'posts' => $posts,
]));
}
}
13 changes: 6 additions & 7 deletions index.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,15 @@

use App\Http\Controllers\Controller;
use Rareloop\Lumberjack\Http\Responses\TimberResponse;
use Rareloop\Lumberjack\Post;
use Timber\Timber;
use Rareloop\Lumberjack\Http\PostQuery;
use Rareloop\Lumberjack\Http\TimberContext;

class IndexController extends Controller
{
public function handle()
public function handle(PostQuery $posts, TimberContext $context)
{
$context = Timber::context();
$context['posts'] = Post::all();

return new TimberResponse('templates/posts.twig', $context);
return new TimberResponse('templates/posts.twig', $context->merge([
'posts' => $posts,
]));
}
}
18 changes: 8 additions & 10 deletions page.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,17 @@

use App\Http\Controllers\Controller;
use Rareloop\Lumberjack\Http\Responses\TimberResponse;
use Timber\Timber;
use Rareloop\Lumberjack\Page;
use Rareloop\Lumberjack\Http\TimberContext;

class PageController extends Controller
{
public function handle()
public function handle(Page $page, TimberContext $context)
{
$context = Timber::context();
$page = Timber::get_post();

$context['post'] = $page;
$context['title'] = $page->title;
$context['content'] = $page->content;

return new TimberResponse('templates/generic-page.twig', $context);
return new TimberResponse('templates/generic-page.twig', $context->merge([
'post' => $page,
'title' => $page->title,
'content' => $page->content,
]));
}
}
17 changes: 7 additions & 10 deletions search.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,18 @@

use App\Http\Controllers\Controller;
use Rareloop\Lumberjack\Http\Responses\TimberResponse;
use Rareloop\Lumberjack\Post;
use Timber\Timber;
use Rareloop\Lumberjack\Http\PostQuery;
use Rareloop\Lumberjack\Http\TimberContext;

class SearchController extends Controller
{
public function handle()
public function handle(PostQuery $posts, TimberContext $context)
{
$context = Timber::context();
$searchQuery = get_search_query();

$context['title'] = 'Search results for \'' . htmlspecialchars($searchQuery) . '\'';
$context['posts'] = Post::query([
's' => $searchQuery,
]);

return new TimberResponse('templates/posts.twig', $context);
return new TimberResponse('templates/posts.twig', $context->merge([
'title' => 'Search results for \'' . htmlspecialchars($searchQuery) . '\'',
'posts' => $posts,
]));
}
}
18 changes: 8 additions & 10 deletions single.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,17 @@

use App\Http\Controllers\Controller;
use Rareloop\Lumberjack\Http\Responses\TimberResponse;
use Timber\Timber;
use Rareloop\Lumberjack\Post;
use Rareloop\Lumberjack\Http\TimberContext;

class SingleController extends Controller
{
public function handle()
public function handle(Post $post, TimberContext $context)
{
$context = Timber::context();
$post = Timber::get_post();

$context['post'] = $post;
$context['title'] = $post->title;
$context['content'] = $post->content;

return new TimberResponse('templates/generic-page.twig', $context);
return new TimberResponse('templates/generic-page.twig', $context->merge([
'post' => $post,
'title' => $post->title,
'content' => $post->content,
]));
}
}