diff --git a/404.php b/404.php index c2842723..dfffbdd2 100755 --- a/404.php +++ b/404.php @@ -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); } } diff --git a/archive.php b/archive.php index ea01b619..f0450c77 100755 --- a/archive.php +++ b/archive.php @@ -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'; } } diff --git a/author.php b/author.php index 16a9b764..3ca4dc5d 100755 --- a/author.php +++ b/author.php @@ -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, + ])); } } diff --git a/index.php b/index.php index 0d993258..1c1fd7bc 100755 --- a/index.php +++ b/index.php @@ -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, + ])); } } diff --git a/page.php b/page.php index 6be5ec13..e5a7bafd 100755 --- a/page.php +++ b/page.php @@ -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, + ])); } } diff --git a/search.php b/search.php index 4b46724b..3072b779 100755 --- a/search.php +++ b/search.php @@ -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, + ])); } } diff --git a/single.php b/single.php index 301cd386..a3ab312d 100755 --- a/single.php +++ b/single.php @@ -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, + ])); } }